ES2775070T3 - Interpolación mejorada de cuadros de compresión de vídeo - Google Patents

Interpolación mejorada de cuadros de compresión de vídeo Download PDF

Info

Publication number
ES2775070T3
ES2775070T3 ES10005839T ES10005839T ES2775070T3 ES 2775070 T3 ES2775070 T3 ES 2775070T3 ES 10005839 T ES10005839 T ES 10005839T ES 10005839 T ES10005839 T ES 10005839T ES 2775070 T3 ES2775070 T3 ES 2775070T3
Authority
ES
Spain
Prior art keywords
frame
frames
interpolation
predicted
motion vector
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
ES10005839T
Other languages
English (en)
Inventor
Gary Demos
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.)
Dolby Laboratories Licensing Corp
Original Assignee
Dolby Laboratories Licensing 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=29999364&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2775070(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Dolby Laboratories Licensing Corp filed Critical Dolby Laboratories Licensing Corp
Application granted granted Critical
Publication of ES2775070T3 publication Critical patent/ES2775070T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/18Methods 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 set of transform coefficients
    • 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/182Methods 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 pixel
    • 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/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/187Methods 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 scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • 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
    • 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
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un método de compresión de imágenes de video que comprende: proporcionar una secuencia de cuadros referenciables (I, P) y predichos bidireccionales (B) cada uno que comprende valores de píxeles dispuestos en macrobloques; y determinar al menos un macrobloque dentro de un cuadro predicho bidireccional (B) usando predicción en modo directo en base a un vector de movimiento entre dos cuadros referenciables (I, P) siendo escalado por una fracción de escala de cuadro de más de uno, en donde los dos cuadros referenciables son anteriores en orden de visualización al cuadro predicho bidireccional.

Description

DESCRIPCIÓN
Interpolación mejorada de cuadros de compresión de vídeo
Campo técnico
Esta invención se refiere a un método de compresión de video y, más particularmente, a un método de interpolación mejorada de cuadros de compresión de video en sistemas de codificación de tipo MPEG.
Antecedentes
Compresión de video MPEG
MPEG-2 y MPEG-4 son estándares internacionales de compresión de video que definen sintaxis de video respectivas que proporcionan una forma eficiente de representar secuencias de imágenes en forma de datos codificados más compactos. Una introducción a MPEG-2 se proporciona por Tudor P.N., “MPEG-2 video compression tutorial”, Coloquio del IEE sobre MPEG-2 (Resumen N° 1995/012), Londres, Reino Unido, 24 de enero de 1995, páginas 2/1 a 2/8. El lenguaje de los bits codificados es la “sintaxis”. Por ejemplo, unos pocos testigos pueden representar un bloque entero de muestras (por ejemplo, 64 muestras para MPEG-2). Ambos estándares MPEG también describen un proceso de decodificación (reconstrucción) donde los bits codificados se correlacionan desde la representación compacta a una aproximación del formato original de la secuencia de imágenes. Por ejemplo, una marca en el flujo de bits codificado puede señalar si los siguientes bits han de ser precedidos de un algoritmo de predicción antes de ser decodificados con un algoritmo de transformada de coseno discreto (DCT). Los algoritmos que comprenden el proceso de decodificación están regulados por la semántica definida por estos estándares MPEG. Esta sintaxis se puede aplicar para explotar características de video comunes tales como redundancia especial, redundancia temporal, movimiento uniforme, enmascaramiento espacial, etc. Un decodificador MPEG debe ser capaz de analizar sintácticamente y decodificar un flujo de datos entrantes, pero siempre que el flujo de datos cumpla con la sintaxis MPEG correspondiente, se puede usar una amplia variedad de posibles estructuras de datos y técnicas de compresión (aunque técnicamente esto se desvía del estándar dado que la semántica no es conforme). También es posible llevar la semántica necesaria dentro de una sintaxis alternativa.
Estos estándares MPEG usan una variedad de métodos de compresión, incluyendo métodos intracuadro e intercuadro. En la mayoría de las escenas de video, el fondo permanece relativamente estable mientras que la acción tiene lugar en primer plano. El fondo puede moverse, pero gran parte de la escena a menudo es redundante. Estos estándares MPEG comienzan la compresión creando un cuadro de referencia denominado “intra” cuadro o cuadro “l”. Los cuadros I se comprimen sin referencia a otros cuadros y, de este modo, contienen un cuadro entero de información de video. Los cuadros I proporcionan puntos de entrada en un flujo de bits de datos para acceso aleatorio, pero solamente se pueden comprimir moderadamente. Típicamente, los datos que representan cuadros I se colocan en el flujo de bits cada 12 a 15 cuadros (aunque también es útil en algunas circunstancias usar una separación mucho más amplia entre cuadros I). A partir de e ntonces, dado que solamente una parte pequeña de los cuadros que caen entre los cuadros I de referencia son diferentes de los cuadros I que delimitan, solamente se capturan, comprimen y almacenan las diferencias de imagen. Se usan dos tipos de cuadros para tales diferencias, cuadros predichos (cuadros P) y cuadros predichos (o interpolados) bidireccionales (cuadros B).
Los cuadros P generalmente se codifican con referencia a un cuadro pasado (o bien un cuadro I o bien un cuadro P anterior), y, en general, se usan como referencia para cuadros P posteriores. Los cuadros P reciben una cantidad bastante alta de compresión. Los cuadros B proporcionan la cantidad más alta de compresión pero requieren tanto un cuadro de referencia pasado como uno futuro con el fin de poder ser codificados. Los cuadros P e I son “cuadros referenciables” debido a que se pueden referenciar por cuadros P o B.
Los macrobloques son regiones de píxeles de imagen. Para MPEG-2, un macrobloque es una agrupación de píxeles de 16x16 de cuatro bloques DCT de 8x8, junto con un vector de movimiento para cuadros P, y uno o dos vectores de movimiento para cuadros B. Los macrobloques dentro de los cuadros P se pueden codificar individualmente usando o bien codificación intracuadro o bien intercuadro (predicha). Los macrobloques dentro de los cuadros B se pueden codificar individualmente usando codificación intracuadro, codificación predicha hacia delante, codificación predicha hacia atrás o tanto codificación predicha hacia delante como hacia atrás (es decir, interpolada bidireccionalmente). Se usa una estructura ligeramente diferente pero similar en codificación de video MPEG-4. Después de la codificación, un flujo de bits de datos MPEG comprende una secuencia de cuadros I, P y B. Una secuencia puede consistir en casi cualquier patrón de cuadros I, P y B (hay unas pocas restricciones semánticas menores en su colocación). No obstante, es común en la práctica industrial tener un patrón de cuadros fijo (por ejemplo, IBBPBBPBBPBBPBB).
Predicción de vector de movimiento
En MPEG-2 y MPEG-4 (y estándares similares, tales como H.263), el uso de cuadros de tipo B (predichos bidireccionalmente) ha resultado beneficiar la eficiencia de la compresión. Los vectores de movimiento para cada macrobloque de tales cuadros se pueden predecir mediante uno cualquiera de los tres siguientes métodos: Modo 1: Predicho hacia delante desde el cuadro I o P anterior (es decir, un cuadro predicho no bidireccionalmente). Modo 2: Predicho hacia atrás desde el cuadro I o P posterior.
Modo 3: Predicho bidireccionalmente tanto desde el cuadro I o P posterior como anterior.
El Modo 1 es idéntico al método de predicción hacia delante usado para cuadros P. El Modo 2 es el mismo concepto, excepto que trabaja hacia atrás desde un cuadro posterior. El Modo 3 es un modo interpolativo que combina información tanto de cuadros anteriores como posteriores.
Además de estos tres modos, MPEG-4 también soporta un segundo modo de predicción de vector de movimiento interpolativo para cuadros B: predicción en modo directo usando el vector de movimiento del cuadro P posterior, más un valor delta (si el vector de movimiento del macrobloque P situado conjuntamente se divide en modo 8x8, dando como resultado cuatro vectores de movimiento para el macrobloque de 16x16, entonces la delta se aplica a todos los cuatro vectores de movimiento independientes en el cuadro B). El vector de movimiento del cuadro P posterior apunta al cuadro P o I anterior. Se usa una proporción para ponderar el vector de movimiento del cuadro P posterior. La proporción es la posición de tiempo relativa del cuadro B actual con respecto a los cuadros P posterior y P (o I) anterior.
La FIG. 1 es una línea de tiempo de cuadros y vectores de movimiento en modo directo MPEG-4 según la técnica anterior. El concepto de modo directo MPEG-4 (modo 4) es que el movimiento de un macrobloque en cada cuadro B intermedio probablemente esté cerca del movimiento que se usó para codificar la misma ubicación en el siguiente cuadro P. Una delta se usa para hacer correcciones menores a un vector de movimiento proporcional derivado del vector de movimiento (MV) 103 correspondiente para el cuadro P posterior. Mostrada en la FIG. 1 está la ponderación proporcional dada a los vectores de movimiento 101, 102 para cada cuadro B intermedio 104a, 104b como una función de la “distancia de tiempo” entre el cuadro P o I anterior 105 y el siguiente cuadro P 106. El vector de movimiento 101, 102 asignado a un cuadro B intermedio 104a, 104b correspondiente es igual al valor de ponderación asignado (1/3 y 2/3, respectivamente) de veces el vector de movimiento 103 para el siguiente cuadro P, más el valor delta.
Con MPEG-2, todos los modos de predicción para cuadros B se prueban en la codificación, y se comparan para encontrar la mejor predicción para cada macrobloque. Si ninguna predicción es buena, entonces el macrobloque se codifica autónomo como un macrobloque “I” (para “intra”). El modo de codificación se selecciona como el mejor modo entre hacia delante (modo 1), hacia atrás (modo 2) y bidireccional (modo 3), o intracodificación. Con MPEG-4, no se permite la opción de intracodificación. En su lugar, el modo directo llega a ser la cuarta opción. De nuevo, se elige el mejor modo de codificación, en base a algunos criterios de mejor coincidencia. En los codificadores de software MPEG-2 y MPEG-4 de referencia, la mejor coincidencia se determina usando una coincidencia de DC (Suma de Diferencia Absoluta o “SAD”).
El número de cuadros B sucesivos en un flujo de bits de datos codificados se determina por el valor del parámetro “M” en MPEG. M menos uno es el número de cuadros B entre cada cuadro P y el siguiente P (o I). De este modo, para M=3, hay dos cuadros B entre cada cuadro P (o I), como se ilustra en la FIG. 1. La limitación principal en restringir el valor de M, y por lo tanto el número de cuadros B secuenciales, es que la cantidad de cambio de movimiento entre cuadros P (o I) llega a ser grande. Números altos de cuadros B significa cantidades más largas de tiempo entre cuadros P (o I). De este modo, la eficiencia y las limitaciones del rango de codificación de los vectores de movimiento crean el límite final en el número de cuadros B intermedios.
También es significativo señalar que los cuadros P llevan “energía de cambio” hacia delante con el flujo de imágenes en movimiento, dado que cada cuadro P decodificado se usa como punto de partida para predecir el siguiente cuadro P posterior. Los cuadros B, no obstante, se descartan después de su uso. De este modo, cualquier bit usado para crear cuadros B se usa solamente para ese cuadro, y no proporciona correcciones que ayuden a la decodificación de cuadros posteriores, a diferencia de los cuadros P.
Un documento de Flierl et al. “A locally optimal design algorithm for block-based multi-hypothesis motioncompensated prediction”, Actas de la Conferencia de Compresión de Datos, Snowbird, Ut., EE.UU., 30 de marzo al 1 de abril de 1998, Los Alamitos, Ca., EE.UU., Soc. de Comput. del IEEE, EE.UU., 30 de marzo de 1998, páginas 239 a 248 (ISBN-978-0-8186-8406-7) describe predicción con compensación de movimiento para codificación de video en la que un cuadro predicho se puede codificar por referencia a dos o más cuadros referenciables anteriores en la secuencia, tales como en cuadros predichos bidireccionales (cuadros B). El documento generaliza esto para un marco de distorsión de tasa, y propone el uso de varios cuadros en la operación de predicción.
Los siguientes documentos adicionales fueron citados durante el examen:
BJONTEGAARD G. (ED.): “H.26L TEST MODEL LONG TERM NUMBER 5 (TML-5) DRAFT0”, SECTOR DE ESTANDARIZACIÓN DE TELECOMUNICACIONES UIT-T DE LA UIT, GINEBRA, CH, 11a REUNIÓN, PORTLAND, OR, EE.UU., 22-25 DE AGOSTO DE 2000, 22 de agosto de 2000 (22-08-2000), páginas 1 -31,
GRUPO DE ESTUDIO 16 DE LA ITU - GRUPO DE EXPERTOS DE CODIFICACIÓN DE VIDEO - ISO/IEC MPEG E ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 E ITU-T SG16 Q6), 11a REUNIÓN, PORTLAND, OR, EE.UU., 22-25 DE AGOSTO 2000, N° q15k44, 16 de agosto de 2000 (16-08-2000), páginas 1-2,
HANNUKSELA: “Generalized B/MH-Picture Averaging”, GRUPO DE ESTUDIO 16 DE LA UIT - GRUPO DE EXPERTOS DE CODIFICACIÓN DE VIDEO -I SO/IEC MPEG E ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 E ITU-T SG16 Q6), 3a REUNIÓN, FAIRFAX, VA, EE.UU., 6-10 DE MAYO DE 2002, N° JVT-C077, 6 de mayo de 2002 (06­ 05-2002), páginas 1-8,
GISLE BJOONTEGAARD ET AL: “H.26L Test Model Long Term Number 4 (TML-4)”, 10. REUNIÓN DE VCEG; 16­ 05-2000 - 19-05-2000; OSAKA, JP; (GRUPO DE EXPERTOS DE CODIFICACIÓN DE VIDEO DE LA ITU-T SG.16), N° q 15j72d0, 16 de junio de 2000 (16-06-2000) ISSN: 0000-0464;
KIKUCHI Y.: “Improved multiframe motion compensation using frame interpolation”, GRUPO DE ESTUDIO 16 DE LA UIT - GRUPO DE EXPERTOS DE CODIFICACIÓN DE VIDEO - ISO/IEC MPEG E ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 E ITU-T SG16 Q6), 2a REUNIÓN, GINEBRA, CH, 29 DE ENERO-1 DE FEBRERO DE 2002, N° JVT-B075, 29 de enero de 2002 (29-01-2002), páginas 1-8
Compendio
La invención se dirige a métodos y sistemas que se definen en las reivindicaciones 1, 3, 5 y 6. Las realizaciones preferidas se describen en las reivindicaciones dependientes.
Otros aspectos descritos incluyen métodos que abarcan:
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables que comprende regiones de imagen, en la que al menos una región de imagen de al menos un cuadro predicho se codifica por referencia a uno o más cuadros referenciables en orden de visualización, donde al menos uno de tales cuadros referenciables no es el cuadro referenciable anterior más cercano en orden de visualización al por lo menos un cuadro predicho.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables que comprende macrobloques, en la que al menos un macrobloque dentro de al menos un cuadro predicho se codifica por interpolación de dos o más cuadros referenciables.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables y predichos bidireccionales que comprenden regiones de imagen, en la que al menos una región de imagen de al menos un cuadro predicho bidireccional se codifica para incluir más de dos vectores de movimiento, cada vector de movimiento tal que hace referencia a una región de imagen correspondiente en al menos un cuadro referenciable.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables que comprenden regiones de imagen, en la que al menos una región de imagen de al menos un cuadro predicho se codifica para incluir al menos dos vectores de movimiento, cada uno de tales vectores de movimiento que hace referencia a una región de imagen correspondiente en un cuadro referenciable, donde cada región de imagen tal de tal al menos un cuadro predicho se codifica por interpolación de dos o más cuadros referenciables.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables y predichos bidireccionales que comprenden regiones de imagen, en la que al menos una región de imagen de al menos un cuadro predicho bidireccional se codifica como una ponderación desigual de regiones de imagen seleccionadas de dos o más cuadros referenciables.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables y predichos bidireccionales que comprenden regiones de imagen, en la que al menos una región de imagen de al menos un cuadro predicho bidireccional se codifica por interpolación de dos o más cuadros referenciables, donde al menos uno de los dos o más cuadros referenciables está separado del cuadro predicho bidireccional por al menos un cuadro referenciable intermedio en orden de visualización, y donde tal al menos una región de imagen se codifica como una ponderación desigual de regiones de imagen seleccionadas de tales al menos dos o más cuadros referenciales.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables y predichos bidireccionales que comprenden regiones de imagen, en la que al menos una región de imagen de al menos un cuadro predicho bidireccional se codifica por interpolación de dos o más cuadros referenciables, donde al menos uno de los dos o más cuadros referenciales está separado del cuadro predicho bidireccional por al menos un cuadro referenciable posterior intermedio en orden de visualización.
Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables y predichos bidireccionales que comprenden regiones de imagen, en la que al menos una región de imagen de al menos un cuadro predicho bidireccional se codifica como una ponderación desigual de regiones de imagen seleccionadas de dos o más cuadros referenciables.
Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros predichos y predichos bidireccionales, cada uno que comprende valores de píxeles dispuestos en macrobloques, en donde al menos un macrobloque dentro de un cuadro predicho bidireccional se determina usando predicción en modo directo en base a vectores de movimiento de dos o más cuadros predichos.
Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables y predichos bidireccionales, cada uno que comprende valores de píxeles dispuestos en macrobloques, en donde al menos un macrobloque dentro de un cuadro predicho bidireccional se determina usando predicción en modo directo en base a vectores de movimiento de uno o más cuadros predichos en orden de visualización, en donde al menos uno de tales uno o más cuadros predichos es anterior en orden de visualización al cuadro predicho bidireccional.
Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables y predichos bidireccionales, cada uno que comprende valores de píxeles dispuestos en macrobloques, en donde al menos un macrobloque dentro de un cuadro predicho bidireccional se determina usando predicción en modo directo en base a vectores de movimiento de uno o más cuadros predichos, en donde al menos uno de tales uno o más cuadros predichos es posterior en orden de visualización al cuadro predicho bidireccional y separado del cuadro predicho bidireccional por al menos un cuadro referenciable intermedio.
Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros que comprende una pluralidad de regiones de imagen que tienen un valor de DC, cada región de imagen tal que comprende píxeles cada uno que tiene un valor de píxel de AC, en donde al menos uno del valor de DC y los valores de píxeles de AC de al menos una región de imagen de al menos un cuadro se determina como una interpolación ponderada de los respectivos valores de DC y valores de píxeles de AC correspondientes de al menos otro cuadro.
Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables que comprenden una pluralidad de regiones de imagen que tienen un valor DC, cada región de imagen tal que comprende píxeles, cada uno que tiene un valor de píxel de AC, en el que al menos uno del valor DC y de los valores de píxeles de AC de al menos una región de imagen de al menos un cuadro predicho se interpola de los respectivos valores de DC y los valores de píxeles de AC correspondientes de dos o más cuadros referenciables.
Mejorar la calidad de imagen de una secuencia de dos o más cuadros intermedios predichos bidireccionales en un sistema de compresión de imágenes de video, cada cuadro que comprende una pluralidad de regiones de imagen que tienen un valor de DC, cada región de imagen tal que comprende píxeles cada uno que tiene un valor de píxel de AC, incluyendo al menos uno de los siguientes: determinar los valores de píxeles de AC de cada región de imagen de un cuadro intermedio predicho bidireccional como una primera proporción ponderada de valores de píxeles de AC correspondientes en cuadros referenciables que delimitan la secuencia de cuadros intermedios predichos bidireccionalmente; y determinar el valor de DC de cada región de imagen de tal cuadro intermedio predicho bidireccional como una segunda proporción ponderada de los valores de DC correspondientes en cuadros referenciables que delimitan la secuencia de cuadros intermedios predichos bidireccionales.
Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros que comprende una pluralidad de píxeles que tienen una representación inicial, en la que los píxeles de al menos un cuadro se interpolan de píxeles correspondientes de al menos otros dos cuadros, en donde tales píxeles correspondientes de los al menos otros dos cuadros se interpolan mientras que se transforman a una representación diferente, y los píxeles interpolados resultantes se transforman de nuevo a la representación inicial.
En un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables y predichos bidireccionales, determinar dinámicamente un patrón de código de tales cuadros que tienen un número variable de cuadros predichos bidireccionales, incluyendo: seleccionar una secuencia inicial que comienza con un cuadro referenciable, que tiene al menos un cuadro predicho bidireccional inmediatamente posterior, y que termina en un cuadro referenciable; añadir un cuadro referenciable al final de la secuencia inicial para crear una secuencia de prueba; evaluar la secuencia de prueba frente a unos criterios de evaluación seleccionados; para cada paso satisfactorio de evaluación de la secuencia de prueba, insertar un cuadro bidireccional antes del cuadro referenciable añadido y repetir el paso de evaluación; y si la evaluación de la secuencia de prueba no es satisfactoria, entonces aceptar la secuencia de prueba anterior como patrón de código actual.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables separados por al menos un cuadro predicho bidireccional, en donde el número de tales cuadros predichos bidireccionales varía en tal secuencia, y en donde al menos una región de imagen de al menos un cuadro predicho bidireccional tal se determina usando una ponderación desigual de valores de píxeles correspondientes a al menos dos cuadros referenciables.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros codificados por un codificador para decodificar por un decodificador, en donde al menos una región de imagen de al menos un cuadro se basa en interpolaciones ponderadas de dos o más de otros cuadros, tales interpolaciones ponderadas que se basan en al menos un conjunto de ponderaciones disponibles para el codificador y un decodificador, en donde una designación de uno seleccionado de tal al menos un conjunto de ponderaciones se comunica a un decodificador desde el codificador para seleccionar una o más ponderaciones activas actualmente.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros codificados por un codificador para decodificar por un decodificador, en donde al menos una región de imagen de al menos un cuadro se basa en interpolaciones ponderadas de dos o más de otros cuadros, tales interpolaciones ponderadas que se basan en al menos un conjunto de ponderaciones, en donde al menos un conjunto de ponderaciones se descarga a un decodificador y, a partir de entonces, una designación para uno seleccionado de tal al menos un conjunto de ponderaciones se comunica a un decodificador desde el codificador para seleccionar una o más ponderaciones activas actualmente.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables codificados por un codificador para decodificar por un decodificador, en donde los cuadros predichos en la secuencia de cuadros referenciables se transmiten por el codificador al decodificador en un orden de entrega que difiere del orden de visualización de tales cuadros predichos después de la decodificación. • Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables que comprende píxeles dispuestos en regiones de imagen, en que al menos una región de imagen de al menos un cuadro predicho se codifica por referencia a dos o más cuadros de referencia, en donde cada región de imagen tal se determina usando una ponderación desigual de valores de píxeles correspondientes a tales dos o más cuadros referenciables.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros predichos, predichos bidireccionales e intracuadros, cada uno que comprende regiones de imagen, en donde al menos un filtro seleccionado del conjunto de filtros de nitidez y suavizado se aplica a al menos una región de imagen de un cuadro predicho o predicho bidireccional durante la predicción compensada de vector de movimiento de tal cuadro predicho o predicho bidireccional.
Los detalles de una o más realizaciones de la invención se exponen en los dibujos que se acompañan y la descripción a continuación. Otras características, objetos y ventajas de la invención serán evidentes a partir de la descripción y los dibujos, y de las reivindicaciones.
Descripción de los dibujos
La FIG. 1 es una línea de tiempo de cuadros y vectores de movimiento en modo directo MPEG-4 según la técnica anterior.
La FIG. 2 es una línea de tiempo de cuadros y valores de ponderación de píxeles proporcionales.
La FIG. 3 es una línea de tiempo de cuadros y valores de ponderación de píxeles mezclados, proporcionales e iguales.
La FIG. 4 es un diagrama de flujo que muestra un ejemplo ilustrativo.
La FIG. 5 es un diagrama que muestra un ejemplo de múltiples referencias anteriores por un cuadro P actual a dos cuadros P anteriores, y a un cuadro I anterior.
La FIG. 6A es un diagrama de un patrón de codificación MPEG-2 típico de la técnica anterior, que muestra un número constante de cuadros B entre cuadros I y/o cuadros P que delimitan.
La Figura 6B es un diagrama de un patrón de codificación de video MPEG-4 teóricamente posible de la técnica anterior, que muestra un número variable de cuadros B entre cuadros I y/o cuadros P que delimitan, así como una distancia variable entre cuadros I.
La FIG. 7 es un diagrama de patrones de código.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros referenciables que comprende píxeles dispuestos en regiones de imagen, en que al menos una región de imagen de al menos un cuadro predicho se codifica por referencia a dos o más cuadros de referencia, en donde cada región de imagen tal se determina usando una ponderación desigual de valores de píxeles correspondientes a tales dos o más cuadros referenciables.
• Un sistema de compresión de imágenes de video que tiene una secuencia de cuadros predichos, predichos bidireccionales e intracuadros, cada uno que comprende regiones de imagen, en donde al menos un filtro seleccionado del conjunto de filtros de nitidez y suavizado se aplica a al menos una región de imagen de un cuadro predicho o predicho bidireccional durante la predicción compensada de vector de movimiento de tal cuadro predicho o predicho bidireccional.
Los detalles de una o más realizaciones de la invención se exponen en los dibujos que se acompañan y la descripción a continuación. Otras características, objetos y ventajas de la invención serán evidentes a partir de la descripción y los dibujos, y de las reivindicaciones.
Descripción de los dibujos
La FIG. 1 es una línea de tiempo de cuadros y vectores de movimiento en modo directo MPEG-4 según la técnica anterior.
La FIG. 2 es una línea de tiempo de cuadros y valores de ponderación de píxeles proporcionales según una realización de la invención.
La FIG. 3 es una línea de tiempo de cuadros y valores de ponderación de píxeles mezclados, proporcionales e iguales según una realización de la invención.
La FIG. 4 es un diagrama de flujo que muestra un ejemplo ilustrativo de esta realización de la invención como método que se puede implementar por ordenador.
La FIG. 5 es un diagrama que muestra un ejemplo de múltiples referencias anteriores por un cuadro P actual a dos cuadros P anteriores, y a un cuadro I anterior.
La FIG. 6A es un diagrama de un patrón de codificación MPEG-2 típico de la técnica anterior, que muestra un número constante de cuadros B entre cuadros I y/o cuadros P que delimitan.
La Figura 6B es un diagrama de un patrón de codificación de video MPEG-4 teóricamente posible de la técnica anterior, que muestra un número variable de cuadros B entre cuadros I y/o cuadros P que delimitan, así como una distancia variable entre cuadros I.
La FIG. 7 es un diagrama de patrones de código.
La FIG. 8 es un diagrama de flujo que muestra una realización de un método de interpolación con interpolación de DC que es distinta de interpolación de AC.
La FIG. 9 es un diagrama de flujo que muestra una realización de un método para interpolación de píxeles de luminancia usando una representación alternativa.
La FIG. 10 es un diagrama de flujo que muestra una realización de un método para interpolación de píxeles de croma usando una representación alternativa.
La FIG. 11 es un diagrama que muestra tamaños de regiones de vectores de movimiento únicos para cada uno de dos cuadros P.
La FIG. 12 es un diagrama que muestra una secuencia de cuadros P y B con ponderaciones de interpolación para los cuadros B determinada como una función de la distancia desde un cuadro P posterior a 2 distancias que hace referencia a un cuadro P posterior a 1 distancia.
La FIG. 13 es un diagrama que muestra una secuencia de cuadros P y B con ponderaciones de interpolación para los cuadros B determinada como una función de la distancia desde un cuadro P posterior a 1 distancia que hace referencia a un cuadro P anterior a 2 distancias.
La FIG. 14 es un diagrama que muestra una secuencia de cuadros P y B en que un cuadro P posterior tiene múltiples vectores de movimiento que hacen referencia a cuadros P anteriores.
La FIG. 15 es un diagrama que muestra una secuencia de cuadros P y B en que un cuadro P posterior más cercano tiene un vector de movimiento que hace referencia a un cuadro P anterior, y un siguiente cuadro P posterior más cercano tiene múltiples vectores de movimiento que hacen referencia a cuadros P anteriores.
La FIG. 16 es un diagrama que muestra una secuencia de cuadros P y B en que un cuadro P anterior más cercano tiene un vector de movimiento que hace referencia a un cuadro P anterior.
La FIG. 17 es un diagrama que muestra una secuencia de cuadros P y B en que un cuadro P anterior más cercano tiene dos vectores de movimiento que hacen referencia a cuadros P anteriores.
La FIG. 18 es un diagrama que muestra una secuencia de cuadros P y B en que un cuadro P anterior más cercano tiene un vector de movimiento que hace referencia a un cuadro P anterior.
La FIG. 19 es una secuencia de cuadros que muestra el caso de tres cuadros P P1, P2 y P3, donde P3 usa una referencia interpolada con dos vectores de movimiento, uno para cada uno de P1 y P2.
La FIG. 20 es una secuencia de cuadros que muestra el caso de cuatro cuadros P P1, P2, P3 y P4, donde P4 usa una referencia interpolada con tres vectores de movimiento, uno para cada uno de P1, P2 y P3.
La FIG. 21 es un diagrama que muestra una secuencia de cuadros P y B en que diversos cuadros P tienen uno o más vectores de movimiento que hacen referencia a diversos cuadros P anteriores, y
Descripción detallada
Visión general
Es una práctica común usar un valor para M de 3, que proporciona dos cuadros B entre cada cuadro P (o I). No obstante, M=2, y M=4 o más altos, son todos útiles. Es de particular importancia señalar que el valor de M (el número de cuadros B más 1) también soporta una relación natural con la tasa de cuadros. A 24 cuadros por segundo (fps), la velocidad de las películas, la 1/24 de la segunda distancia de tiempo entre cuadros puede dar como resultado cambios sustanciales de imagen cuadro a cuadro. A 60 fps, 72 fps o a tasas de cuadros más altas, no obstante, la distancia de tiempo entre cuadros adyacentes llega a ser reducida correspondientemente. El resultado es que números más altos de cuadros B (es decir, valores más altos de M) llegan a ser útiles y beneficiosos en la eficacia de compresión a medida que se aumenta la tasa de cuadros.
Tanto la compresión de video MPEG-2 como MPEG-4 utilizan un método de interpolación demasiado simplificado. Por ejemplo, para el modo 3, la predicción bidireccional para cada macrobloque de un cuadro es un promedio igual de los macrobloques de cuadros posteriores y anteriores, a medida que se desplazan por los dos vectores de movimiento correspondientes. Este promedio igual es apropiado para M=2 (es decir, cuadros B intermedios únicos), dado que el cuadro B será equidistante en el tiempo de los cuadros P (o l) anteriores y posteriores. No obstante, para todos los valores más altos de M, solamente los cuadros B centrados simétricamente (es decir, el cuadro intermedio si M=4, 6, 8, etc.) se predecirán de manera óptima usando una ponderación igual. De manera similar, en el modo directo 4 de MPEG-4, incluso aunque los vectores de movimiento se ponderen proporcionalmente, los valores de píxeles predichos para el cuadro B intermedio son una proporción igual de los píxeles correspondientes del cuadro P (o I) anterior y del P posterior.
De este modo, representa una mejora aplicar una ponderación proporcional apropiada, para M>2, a los valores de píxeles predichos para cada cuadro B. La ponderación proporcional para cada píxel en un cuadro B actual corresponde a la posición relativa del cuadro B actual con respecto a los cuadros P (o I) anteriores y posteriores. De este modo, si M=3, el primer cuadro B usaría 2/3 del valor de píxel correspondiente (vector de movimiento ajustado) del cuadro anterior, y 1/3 del valor de píxel correspondiente del cuadro posterior (vector de movimiento ajustado). La FIG. 2 es una línea de tiempo de cuadros y valores de ponderación de píxeles proporcionales. Los valores de píxeles dentro de cada macrobloque de cada cuadro B intermedio 201a, 201b se ponderan como una función de la “distancia” entre el cuadro P o I anterior A y el siguiente cuadro P o I B, con mayor ponderación que se acuerda a cuadros I o P más cercanos. Es decir, cada valor de píxel de un cuadro B predicho bidireccionalmente es una combinación ponderada de los valores de píxeles correspondientes de los cuadros predichos no bidireccionalmente A y B que delimitan. En este ejemplo, para M=3, la ponderación para el primer cuadro B 201a es igual a 2/3A 1/3B; la ponderación para el segundo cuadro B 201b es igual a 1/3A 2/3B. También se muestra la ponderación promedio igual que se asignaría bajo sistemas MPEG convencionales; la ponderación MPEG-1, 2 y 4 para cada cuadro B 201a, 201b sería igual a (A B)/2.
Aplicación a rango dinámico extendido y rango de contraste
Si M es mayor que 2, la ponderación proporcional de los valores de píxeles en cuadros B intermedios mejorará la efectividad de la codificación bidireccional (modo 3) y directa (modo 4 MPEG-4) en muchos casos. Los casos de ejemplo incluyen efectos comunes de edición de películas y videos tales como desvanecimientos y disoluciones cruzadas. Estos tipos de efectos de video son casos de codificación problemática tanto para MPEG-2 como para MPEG-4 debido al uso de un algoritmo de coincidencia de DC simple, y el uso común de M=3 (es decir, dos cuadros B intermedios), dando como resultado proporciones iguales para cuadros B. La codificación de tales casos se mejora usando interpolación de cuadros B proporcional.
La interpolación de cuadros B proporcional también tiene aplicación directa a la mejora de eficiencia de codificación para extender el rango dinámico y de contraste. Un caso común en la codificación de imágenes es un cambio en la iluminación. Esto ocurre cuando un objeto se mueve gradualmente hacia (o fuera de) la sombra (bordes de sombra suaves). Si se usa una representación de codificación logarítmica para el brillo (que se incorpora mediante luminancia Y logarítmica, por ejemplo), entonces un cambio en el brillo de la iluminación será un cambio de desplazamiento de DC. Si el brillo de la iluminación cae a la mitad, los valores de píxeles se reducirán todos en una cantidad igual. De este modo, para codificar este cambio, se debería encontrar una coincidencia de AC, y una diferencia de DC codificada aplicada a la región. Tal diferencia de DC que se codifica en un cuadro P también se debería aplicar proporcionalmente en cada cuadro B intermedio. (Véase la Solicitud de Patente de EE.UU. en tramitación N° 09/905.039, titulada “Method and System for Improving Compressed Image Chroma Information”, publicada como US 2003/0112863 A1, para información adicional sobre representaciones de codificación logarítmica).
Además de los cambios en la iluminación, los cambios en el contraste también se benefician de la interpolación de cuadros B proporcional. Por ejemplo, a medida que un avión se mueve hacia un espectador fuera de una nube o neblina, su contraste aumentará gradualmente. Este aumento de contraste se expresará como una amplitud aumentada en los coeficientes de AC de la DCT en los macrobloques codificados de cuadros P correspondientes. De nuevo, los cambios de contraste en los cuadros B intermedios se aproximarán más estrechamente mediante una interpolación proporcional, mejorando de este modo la eficiencia de codificación.
Las mejoras en el rango dinámico y la eficiencia de codificación de contraste usando interpolación de cuadros B proporcional llega a ser cada vez más significativas a medida que las tasas de cuadros llegan a ser más altas y a medida que se aumenta el valor de M.
Aplicación de valores de M altos a capas temporales
El uso de realizaciones de la invención permite un aumento en el valor de M y, por lo tanto, en el número de cuadros B entre cuadros P y/o I que delimitan, mientras que se mantiene u obtiene eficiencia de codificación. Tal uso beneficia a una serie de aplicaciones, que incluyen capas temporales. Por ejemplo, en nuestra Patente de EE.UU. N° 5.988.863, titulada “Temporal and Resolution Layering for Advanced Television”, se señaló que los cuadros B son un mecanismo adecuado para las tasas (cuadros) temporales en capas. La flexibilidad de tales tasas está relacionada con el número de cuadros B consecutivos disponibles. Por ejemplo, los cuadros B únicos (M=2) pueden soportar una capa temporal decodificada de 36 fps dentro de un flujo de 72 fps o una capa temporal decodificada de 30 fps dentro de un flujo de 60 fps. Los cuadros B triples (M=4) pueden soportar tanto capas temporales decodificadas de 36 fps como de 18 fps dentro de un flujo de 72 fps, y capas temporales decodificadas de 30 fps y 15 fps dentro de un flujo de 60 fps. El uso de M=10 dentro de un flujo de 120 fps puede soportar capas temporales decodificadas de 12 fps, 24 fps y 60 fps. M=4 también se puede usar con un flujo de 144 fps para proporcionar capas temporales decodificadas a 72 fps y 36 fps.
Como una mejora para tomar cada cuadro de orden N, se pueden decodificar y mezclar proporcionalmente múltiples cuadros a 120 fps o 72 fps, como se describe en la Solicitud de Patente de EE.UU. en tramitación N° 09/545.233, titulada “Enhancements to Temporal and Resolution Layering” véase el documento WO 01/17787 A1, para mejorar las características de desenfoque de movimiento de los resultados de 24 fps.
Incluso se pueden sintetizar tasas de cuadros más altas utilizando los métodos descritos en la Solicitud de Patente de EE.UU. en tramitación N° 09/435.277, titulada “System and Method for Motion Compensation and Frame Rate Conversion” (véase el documento WO 01/35657 A1).
Por ejemplo, se puede utilizar una cámara original de 72 fps, con conversión de tasa de cuadros con compensación de movimiento para crear una tasa de cuadros efectiva de 288 cuadros por segundo. Usando M=12, se pueden derivar tanto tasas de cuadro de 48 fps como de 24 fps, así como otras tasas útiles tales como 144 fps, 96 fps y 32 fps (y, por supuesto, los 72 fps originales). Las conversiones de tasa de cuadros que usan este método no necesitan ser múltiplos integrales. Por ejemplo, una tasa efectiva de 120 fps se puede crear a partir de una fuente de 72 fps, y entonces se puede usar como fuente tanto para tasas de 60 fps como de 24 fps (usando M=10).
De este modo, hay beneficios de capas temporales para optimizar el rendimiento de la interpolación de cuadros B. La interpolación de cuadros B proporcional descrita anteriormente hace que números de cuadros B consecutivos más altos funcionen de manera más eficiente, permitiendo por ello estos beneficios.
Proporciones de interpolación de cuadros B mezcladas
Una razón por la que se ha usado una ponderación promedio igual en sistemas convencionales como el predictor de modo de compensación de movimiento para valores de píxeles de cuadro B es que el cuadro P (o I) antes o después de un cuadro B particular puede ser ruidoso y, por lo tanto, representar una coincidencia imperfecta. La mezcla igual optimizará la reducción de ruido en el bloque de compensación de movimiento interpolado. Hay una diferencia residual que se codifica usando la función DCT cuantificada. Por supuesto, cuanto mejor sea la coincidencia de la proporción compensada de movimiento, menor será la diferencia de bits residuales que se requerirá, y mayor será la calidad de imagen resultante.
En los casos en que hay objetos que se mueven dentro y fuera de la sombra o la neblina, una proporción verdadera donde M>2 proporciona una mejor predicción. No obstante, cuando no están ocurriendo cambios de iluminación y contraste, la ponderación igual puede resultar ser un mejor predictor, dado que los errores de mover un macrobloque hacia delante a lo largo de un vector de movimiento se promediarán con los errores del bloque desplazado hacia atrás, reduciendo de este modo los errores en cada uno a la mitad Aun así, es más probable que los macrobloques de cuadros B más cercanos a un cuadro P (o I) se correlacionen más con ese cuadro que con un cuadro P (o I) más distante.
De este modo, es deseable en algunas circunstancias, tales como contraste regional o cambio de brillo, utilizar una proporción verdadera para la ponderación de píxeles de macrobloque de cuadros B (tanto para luminancia como para color), como se ha descrito anteriormente. En otras circunstancias, puede ser más óptimo utilizar proporciones iguales, como en MPEG-2 y MPEG-4.
De este modo, un aspecto ejemplar utiliza una mezcla de estas dos técnicas de proporción (proporción de promedio igual y distancia de cuadro) para interpolación de píxeles de cuadros B. Por ejemplo, en el caso M=3, 3/4 de las proporciones de 1/3 y 2/3 se pueden mezclar con 1/4 del promedio igual, dando como resultado que las dos proporciones sean 3/8 y 5/8. Esta técnica se puede generalizar usando un “factor de mezcla” F:
Ponderación=F * (Ponderación Proporcional de Distancia de Cuadros) (1-F) * (Ponderación Promedio Igual) El rango útil del factor de mezcla F es de 1, que indica interpolación puramente proporcional, a 0, que indica promedio igual puramente (también se puede usar la asignación inversa de valores).
La FIG. 3 es una línea de tiempo de cuadros y valores de ponderación de píxeles mezclados, proporcionales e iguales. Los valores de píxeles de cada macrobloque de cada cuadro B intermedio 301a, 301b se ponderan como una función de la “distancia de tiempo” entre el cuadro P o I anterior A y el siguiente cuadro P o I B, y como una función del promedio igual de A y B. En este ejemplo, para M=3 y un factor de mezcla F=3/4, la ponderación mezclada para el primer cuadro B 301a es igual a 5/8A 3/8B (es decir, 3/4 de la ponderación proporcional de 2/3A 1/3B, más 1/4 de la ponderación promedio igual de (A B)/2). De manera similar, la ponderación para el segundo cuadro B 301 b es igual a 3/8A 5/8B.
El valor del factor de mezcla F se puede establecer en general para una codificación completa, o para cada grupo de imágenes (GOP), un rango de cuadros B, cada cuadro B o cada región dentro de un cuadro B (incluyendo, por ejemplo, tan finamente como para cada macrobloque o, en el caso del modo directo MPEG-4 usando un vector P en modo 8x8, incluso bloques de movimiento 8x8 individuales).
En interés de la economía de bits, y reflejando el hecho de que la proporción de mezcla no es normalmente lo suficientemente importante para ser transportada con cada macrobloque, el uso óptimo de la mezcla se debería relacionar con el tipo de imágenes que se comprimen. Por ejemplo, para imágenes que se desvanecen, se disuelven o donde la iluminación o el contraste general está cambiando gradualmente, un factor de mezcla F cercano o en 1 (es decir, seleccionar la interpolación proporcional) es generalmente el más óptimo. Para imágenes en movimiento sin tales cambios de iluminación o contraste, entonces los valores del factor de mezcla más bajo, tales como 2/3, 1/2 o 1/3, podrían formar la mejor opción, conservando por ello algunos de los beneficios de la interpolación proporcional, así como algunos de los beneficios de la interpolación promedio igual. Todos los valores de factor de mezcla dentro del rango de 0 a 1 serán útiles generalmente, con un valor particular dentro de este rango que resulta óptimo para cualquier cuadro B dado.
Para imágenes de amplio rango dinámico y amplio rango de contraste, el factor de mezcla se puede determinar regionalmente, dependiendo de las características de la región local. En general, no obstante, un amplio rango de luz y contraste se recomienda hacia valores de factor de mezcla que favorecen la interpolación puramente proporcional, en lugar de promedio igual.
Un factor de mezcla óptimo se determina de manera general empíricamente, aunque se puede usar la experiencia con tipos particulares de escenas para crear una tabla de factores de mezcla por tipo de escena. Por ejemplo, se puede usar una determinación de las características de cambio de imagen para seleccionar la proporción de mezcla para un cuadro o región. Alternativamente, los cuadros B se pueden codificar usando una serie de factores de mezcla candidatos (o bien para el cuadro entero, o regionalmente), con cada uno entonces que se evalúa para optimizar la calidad de imagen (determinada, por ejemplo, por la relación señal a ruido, o SNR, más alta) y para el recuento de bits más bajo. Estas evaluaciones candidatas entonces se pueden usar para seleccionar el mejor valor para la proporción de mezcla. También se puede usar una combinación tanto de características de cambio de imagen como de calidad/eficiencia codificada.
Los cuadros B cerca del medio de una secuencia de cuadros B, o que resultan de valores bajos de M, no se ven muy afectados por la interpolación proporcional, dado que las proporciones calculadas ya están cerca del promedio igual. No obstante, para valores más altos de M, las posiciones extremas de cuadros B se pueden ver significativamente afectadas por la elección del factor de mezcla. Señalar que el factor de mezcla puede ser diferente para estas posiciones extremas, utilizando más del promedio, que las posiciones más centrales, que obtienen poco o ningún beneficio de la desviación del promedio, dado que ya tienen altas proporciones de ambos cuadros P (o I) vecinos. . Por ejemplo, si M=5, el primer y cuarto cuadros B podrían usar un factor de mezcla F que mezcla en más del promedio igual, pero el segundo y tercer cuadros B medios pueden usar las proporciones promedio iguales 2/5 y 3/5 estrictas. Si el factor de mezcla de proporción a promedio varía como una función de la posición de un cuadro B en una secuencia, el valor variable del factor de mezcla se puede transportar en el flujo de bits comprimido o como información lateral al decodificador.
Si se requiere un factor de mezcla general estático (debido a la falta de un método para transportar el valor), entonces el valor de 2/3 normalmente es casi óptimo, y se puede seleccionar como valor estático para la interpolación de cuadros B tanto en el codificador como en el decodificador. Por ejemplo, usando F=2/3 para el factor de mezcla, para M=3 las proporciones de cuadros sucesivos serán 7/18 (7/18 = 2/3 * 1/3 1/3 * 1/2) y 11/18 (11/18 = 2/3 * 2/3 1/3 * 1/2).
Interpolación linear
Los valores de píxeles de cuadros de video generalmente se almacenan en una representación particular que correlaciona la información de imagen original con valores numéricos. Tal correlación puede dar como resultado una representación lineal o no lineal. Por ejemplo, los valores de luminancia usados en la compresión no son lineales. El uso de diversas formas de representación no lineal incluye logarítmica, exponencial (a diversas potencias) y exponencial con una corrección de negro (comúnmente usada para señales de video).
En rangos dinámicos estrechos, o para interpolaciones de regiones cercanas, la representación no lineal es aceptable, dado que estas interpolaciones cercanas representan interpolaciones lineales por piezas. De este modo, pequeñas variaciones en el brillo se aproximan razonablemente por interpolación lineal. No obstante, para amplias variaciones en el brillo, tales como ocurren en un rango dinámico amplio e imágenes de rango de contraste amplio, el tratamiento de las señales no lineales como lineales será inexacto. Incluso para imágenes de rango de contraste normal, los desvanecimientos lineales y las disoluciones cruzadas se pueden degradar por una interpolación lineal. Algunos desvanecimientos y disoluciones cruzadas utilizan tasas de desvanecimiento y disolución no lineales, añadiendo complejidad adicional.
De este modo, una mejora adicional al uso de mezclas proporcionales, o incluso interpolaciones promedio proporcionales o iguales simples, es realizar tales interpolaciones en valores de píxeles representados en un espacio lineal, o en otros espacios no lineales optimizados que difieren de la representación de luminancia no lineal original.
Esto se puede lograr, por ejemplo, convirtiendo primero las dos señales de luminancia no lineales (de los cuadros P (o I) anteriores y posteriores a una representación lineal, o una representación no lineal diferente. Entonces, se aplica una mezcla proporcional, después de lo cual se aplica la conversión inversa, produciendo el resultado mezclado en la representación de luminancia no lineal original de la imagen. No obstante, la función de proporción se habrá realizado sobre una representación más óptima de las señales de luminancia.
También es útil aplicar de manera beneficiosa esta conversión lineal o no lineal a valores de color (croma), además de luminancia, cuando los colores se desvanecen o llegan a estar más saturados, como ocurre en los cambios de contraste asociados con las variaciones en la neblina y la nubosidad.
Realización de ejemplo
La FIG. 4 es un diagrama de flujo que muestra un ejemplo ilustrativo como método que se puede implementar por ordenador:
Paso 400: En un sistema de compresión de imágenes de video, para el modo directo e interpolativo para calcular cuadros B, determinar un valor de interpolación a aplicar a cada píxel de una secuencia de entrada de dos o más cuadros intermedios predichos bidireccionalmente usando uno de (1) la proporción de distancia de cuadros o (2) una mezcla de ponderación igual y la proporción de distancia de cuadros, derivada de al menos dos cuadros predichos no bidireccionalmente que delimitan tal entrada de secuencia desde una fuente (por ejemplo, un flujo de imagen de video).
Paso 401: Optimizar el valor de interpolación con respecto a una unidad de imagen (por ejemplo, un grupo de imágenes (GOP), una secuencia de cuadros, una escena, un cuadro, una región dentro de un cuadro, un macrobloque, un bloque DCT , o agrupación útil o selección de píxeles similares). El valor de interpolación se puede establecer estáticamente para toda la sesión de codificación, o dinámicamente para cada unidad de imagen.
Paso 402: Optimizar además el valor de interpolación con respecto al tipo de escena o la simplicidad de codificación. Por ejemplo, se puede establecer un valor de interpolación: estáticamente (tal como proporcional 2/3 y promedio igual 1/3); proporcionalmente para cuadros cerca del promedio igual, pero mezclados con el promedio igual cerca de los cuadros P (o I) adyacentes; dinámicamente en base a las características de escena generales, tales como desvanecimientos y disoluciones cruzadas; dinámicamente (y localmente) en base a las características de región de imagen local, tales como contraste local y rango dinámico local; o dinámicamente (y localmente) en base al rendimiento de codificación (tal como SNR codificada más alta) y bits codificados mínimos generados.
Paso 403: Transportar las cantidades de proporción apropiadas al decodificador, si no se determinan estáticamente. Paso 404: Opcionalmente, convertir la información de luminancia (y, opcionalmente, croma) para cada cuadro en una representación lineal o no lineal alternativa, y transportar esta representación alternativa al decodificador, si no se determina estáticamente.
Paso 405: Determinar los valores de píxeles proporcionales usando el valor de interpolación determinado.
Paso 406: Si es necesario (debido al Paso 404), reconvertir a la representación original.
Referencia de cuadro P extendido
Como se ha señalado anteriormente, en los métodos de compresión MPEG-1, 2 y 4 de la técnica anterior, los cuadros P hacen referencia al cuadro P o I anterior, y los cuadros B hacen referencia a los cuadros P y/o I anteriores y posteriores más cercanos. La misma técnica se usa en los estándares de compresión DCT con compensación de movimiento H.261 y H.263, que abarcan técnicas de compresión de tasa de bits baja.
En el estándar H.263++ y H.26L en desarrollo, la referencia de cuadro B se extendió para apuntar a cuadros P o I que no estaban delimitando directamente un cuadro actual. Es decir, los macrobloques dentro de cuadros B podrían apuntar a un cuadro P o I antes del cuadro P anterior, o a un cuadro P o I después del cuadro P posterior. Con uno o más bits por macrobloque, la omisión del cuadro P anterior o posterior se puede señalar simplemente. Conceptualmente, el uso de cuadros P anteriores para referencia en cuadros B solamente requiere almacenamiento. Para el uso de codificación de baja tasa de bits de H.263++ o H.26L, esta es una cantidad pequeña de memoria adicional. Para referencia de cuadro P posterior, el orden de codificación de cuadros P se debe modificar con respecto a la codificación de cuadros B, de manera que los cuadros P futuros (o posiblemente cuadros I) se deben decodificar antes que los cuadros B intermedios. De este modo, el orden de codificación también es un problema para referencias de cuadros P posteriores.
Las distinciones principales entre los tipos de cuadros P y B son: (1) los cuadros B se pueden referenciar bidireccionalmente (hasta dos vectores de movimiento por macrobloque); (2) los cuadros B se descartan después de su uso (lo que también significa que se pueden omitir durante la decodificación para proporcionar capas temporales); y (3) los cuadros P se usan como “peldaños”, uno al siguiente, dado que cada cuadro P se debe decodificar para su uso como referencia para cada cuadro P posterior.
Como ejemplo los cuadros P (en oposición a los cuadros B) se decodifican con referencia a uno o más cuadros P o I anteriores (excluyendo el caso de cada cuadro P que hace referencia solamente al cuadro P o I anterior más cercano). De este modo, por ejemplo, se pueden usar dos o más vectores de movimiento por macrobloque para un cuadro P actual, todos apuntando hacia atrás en el tiempo (es decir, a uno o más cuadros decodificados anteriormente). Tales cuadros P aún mantienen un carácter de “peldaño”. La FIG. 5 es un diagrama que muestra un ejemplo de múltiples referencias anteriores por un cuadro P actual 500 a dos cuadros P anteriores 502, 504, y a un cuadro I anterior 506.
Además, es posible aplicar los conceptos de interpolación de macrobloques, como se ha descrito anteriormente, en tales referencias de cuadro P. De este modo, además de señalar referencias únicas a más de un cuadro P o I anterior, también es posible mezclar proporciones de múltiples cuadros P o I anteriores, usando un vector de movimiento para cada referencia de cuadro tal. Por ejemplo, la técnica descrita anteriormente de usar un modo de interpolación de cuadros B que tiene dos referencias de cuadro se puede aplicar para permitir que cualquier macrobloque en un cuadro P haga referencia a dos cuadros P anteriores o un cuadro P anterior y un cuadro I anterior, usando dos vectores de movimiento. Esta técnica interpola entre dos vectores de movimiento, pero no es bidireccional en el tiempo (como es el caso con la interpolación de cuadros B), dado que ambos vectores de movimiento apuntan hacia atrás en el tiempo. Los costes de memoria han disminuido hasta el punto en que mantener múltiples cuadros P o l anteriores en la memoria para tal referencia concurrente es bastante práctico. Al aplicar tal interpolación de cuadros P, es constructivo seleccionar y señalar a un decodificador diversas proporciones útiles de los dos o más cuadros P anteriores (y, opcionalmente, un cuadro I anterior). En particular, una mezcla igual de cuadros es una de las proporciones de mezcla útiles. Por ejemplo, con dos cuadros P anteriores como referencias, se puede mezclar una cantidad igual de 1/2 de cada cuadro P. Para tres cuadros P anteriores, se podría usar una mezcla igual de 1/3.
Otra combinación útil de dos cuadros P es 2/3 del cuadro anterior más reciente, y 1/3 del cuadro anterior menos reciente. Para tres cuadros P anteriores, otra mezcla útil es 1/2 del cuadro anterior más reciente, 1/3 del siguiente cuadro anterior más reciente y 1/6 del cuadro anterior menos reciente.
En cualquier caso, se puede utilizar un conjunto simple de mezclas útiles de múltiples cuadros P anteriores (y, opcionalmente, un cuadro I) y señalarlos simplemente desde un codificador a un decodificador. Las proporciones de mezcla específicas utilizadas se pueden seleccionar tan a menudo como sea útil para optimizar la eficiencia de codificación para una unidad de imagen. Se puede seleccionar una serie de proporciones de mezcla usando un número pequeño de bits, que se pueden transportar al decodificador siempre que sea adecuado para una unidad de imagen deseada.
Como ejemplo, también puede ser útil conmutar-seleccionar referencias de cuadro P único a partir del cuadro P (o I) anterior más reciente a un cuadro P (o I) anterior más “distante”. De esta forma, los cuadros P utilizarían un único vector de movimiento por macrobloque (u, opcionalmente, por bloque de 8x8 en codificación de estilo MPEG-4), pero utilizarían uno o más bits para indicar que la referencia se refiere a un único cuadro anterior específico. Los macrobloques de cuadros P en este modo no serían interpolativos, sino que, en su lugar, harían referencia a un cuadro anterior seleccionado, siendo seleccionado de dos, tres o más opciones de cuadros P (o I) anteriores posibles para referencia. Por ejemplo, un código de 2 bits podría designar uno de hasta cuatro cuadros anteriores como el cuadro de referencia único de elección. Este código de 2 bits se podría cambiar en cualquier unidad de imagen conveniente.
Número adaptativo de cuadros B
Es típico en codificación MPEG usar un patrón fijo de tipos de cuadros I, P y B. El número de cuadros B entre cuadros P es típicamente una constante. Por ejemplo, es típico en codificación MPEG-2 usar dos cuadros B entre cuadros P (o I). La FIG. 6A es un diagrama de un patrón de codificación MPEG-2 típico de la técnica anterior, que muestra un número constante de cuadros B (es decir, dos) entre los cuadros I 600 y/o los cuadros P 602 que delimitan.
El estándar de codificación de video MPEG-4 permite conceptualmente un número variable de cuadros B entre los cuadros I y/o los cuadros P que delimitan, y una cantidad variable de distancia entre cuadros I. La FIG. 6B es un diagrama de un patrón de codificación de video MPEG-4 teóricamente posible de la técnica anterior, que muestra un número variable de cuadros B entre los cuadros I 600 y/o los cuadros P 602 que delimitan, así como una distancia variable entre cuadros I 600.
Esta estructura de codificación flexible se puede utilizar teóricamente para mejorar la eficiencia de codificación haciendo coincidir los tipos de codificación de cuadros B y P más efectivos con los cuadros de imágenes en movimiento. Aunque esta flexibilidad se ha permitido específicamente, se ha explorado muy poco y no se conoce ningún mecanismo para determinar realmente la colocación de los cuadros B y P en tal estructura flexible.
Los conceptos descritos en la presente memoria pueden aplicar a esta estructura de codificación flexible así como a los patrones de codificación fijos simples de uso común. Los cuadros B, de este modo, se pueden interpolar usando los métodos descritos anteriormente, mientras que los cuadros P pueden hacer referencia a más de un cuadro P o I anterior y se pueden interpolar según la presente descripción.
En particular, los macrobloques dentro de los cuadros B pueden utilizar mezclas proporcionales apropiadas para una estructura de codificación flexible tan eficazmente como con una estructura fija. Las mezclas proporcionales también se pueden utilizar cuando los cuadros B hacen referencia a cuadros P o I que están más lejos que los cuadros P o I más cercanos que delimitan.
De manera similar, los cuadros P pueden hacer referencia a más de un cuadro P o I anterior en esta estructura de codificación flexible tan eficazmente como con una estructura de patrón fija. Además, las proporciones de mezcla se pueden aplicar a macrobloques en tales cuadros P cuando hacen referencia a más de un cuadro P anterior (más, opcionalmente, un cuadro I).
(A) Determinación de la colocación en patrones de codificación flexibles
El siguiente método permite que un codificador optimice la eficiencia tanto del patrón de codificación de cuadros como de las proporciones de mezcla utilizadas. Para un rango seleccionado de cuadros, se puede intentar un número de patrones de codificación candidatos, para determinar un patrón óptimo o casi óptimo (en relación a criterios específicos). La FIG. 7 es un diagrama de patrones de código que se pueden examinar. Se selecciona arbitrariamente una secuencia inicial 700, que termina en un cuadro P o I, y se usa como base para añadir cuadros P y/o B adicionales, que entonces se evalúan (como se describe a continuación). En una realización, se añade un cuadro P a la secuencia inicial 700 para crear una primera secuencia de prueba 702 para su evaluación. Si la evaluación es satisfactoria, se inserta un cuadro B intermedio para crear una segunda secuencia de prueba 704. Para cada evaluación satisfactoria, se insertan cuadros B adicionales para crear secuencias de prueba cada vez más largas 706-712, hasta que los criterios de evaluación lleguen a ser insatisfactorios. En ese punto, se acepta la secuencia de codificación anterior. Este proceso se repite entonces, usando el cuadro P final para la secuencia de codificación anteriormente aceptada como el punto de partida para añadir un nuevo cuadro P y entonces insertar nuevos cuadros B.
Un patrón de codificación óptimo o casi optimo se puede seleccionar en base a diversos criterios de evaluación, que implican a menudo compromisos de diversas características de codificación, tales como calidad de imagen codificada frente al número de bits de codificación requeridos. Los criterios de evaluación comunes incluyen el menor número de bits usados (en una prueba de parámetros de cuantificación fija), o la mejor relación señal a ruido (en una prueba de tasa de bits fija), o una combinación de ambos.
También es común minimizar una suma de diferencia absoluta (SAD), que forma una medida de coincidencia de DC. Como se describe en la Patente de EE.UU. en tramitación N° 09/904.192, titulada “Motion Estimation for Video Compression Systems”, (publicada como US 2003/0112873 A1), un criterio de coincidencia de AC también es una medida útil de la calidad de una coincidencia candidata en particular (la solicitud de patente también describe otras optimizaciones útiles). De este modo, los criterios de coincidencia de AC y DC, acumulados sobre las mejores coincidencias de todos los macrobloques, se pueden examinar para determinar la calidad de coincidencia general de cada patrón de codificación candidato. Esta técnica de coincidencia de AC/DC puede aumentar o sustituir las pruebas de relación señal a ruido (SNR) y de menos bits usados cuando se usa junto con una estimación del número de bits codificados para cada tipo de patrón de cuadro. Es típico codificar macrobloques dentro de cuadros B con un valor de parámetro de cuantificación (QP) más alto que para los cuadros P, afectando tanto a la calidad (medida a menudo como relación señal a ruido) como al número de bits usados dentro de los diversos patrones de codificación candidatos.
(B) Optimización de proporción de mezcla en patrones de codificación flexibles
Opcionalmente, para cada patrón candidato determinado según el método anterior, las proporciones de mezcla se pueden probar para su idoneidad (por ejemplo, proporciones de mezcla óptimas o casi óptimas) en relación con uno o más criterios. Esto se puede hacer, por ejemplo, probando la mejor calidad (SNR más baja) y/o eficiencia (menos bits usados). El uso de una o más referencias anteriores para cada macrobloque en cuadros P también se puede determinar de la misma forma, probando cada patrón de referencia candidato y proporción de mezcla, para determinar un conjunto de una o más referencias adecuadas.
Una vez que se ha seleccionado el patrón de codificación para este siguiente paso (Paso 700 en la Figura 7), entonces los pasos posteriores (Pasos 702-712) se pueden probar para diversos patrones de codificación candidatos. De esta forma, se puede determinar una codificación más eficiente de una secuencia de imágenes en movimiento. De este modo, la eficiencia se puede optimizar/mejorar como se describe en la subsección (A) anterior; se puede aplicar optimización de mezcla en cada paso de codificación probado.
Interpolación de DC frente a AC
En muchos casos de codificación de imágenes, tales como cuando se usa una representación logarítmica de cuadros de imagen, la interpolación de valores de píxeles de cuadro descrita anteriormente codificará de manera óptima los cambios en la iluminación. No obstante, en representaciones alternativas de “curva gamma” de vídeo, lineal y otras, a menudo resultará útil aplicar diferentes factores de mezcla de interpolación a los valores de DC que a los valores de AC de los píxeles. La FIG. 8 es un diagrama de flujo que muestra una realización de un método de interpolación con la interpolación de DC que es distinta de la interpolación de AC. Para una región de imagen seleccionada (normalmente un bloque DCT o macrobloque) de un primer y segundo cuadros de entrada 802, 802’, el valor de píxeles promedio para cada región tal se resta 804, 804’, separando por ello el valor de DC (es decir, el valor promedio de toda la región seleccionada) 806, 806’ de los valores de AC (es decir, los valores de píxeles señalados restantes) 808, 808’ en las regiones seleccionadas. Los respectivos valores de DC 806, 806’ entonces se pueden multiplicar por ponderaciones de interpolación 810, 810’ diferentes de las ponderaciones de interpolación 814, 814’ usadas para multiplicar los valores de píxeles de AC (señalados) 808, 808’. El valor de DC recién interpolado 812 y los valores de AC recién interpolados 816 entonces se pueden combinar 818, dando como resultado una nueva predicción 820 para la región seleccionada.
Como con los otros valores de interpolación descritos, las ponderaciones apropiadas se pueden señalar a un decodificador por unidad de imagen. Un número pequeño de bits puede seleccionarse entre una serie de valores de interpolación, así como seleccionar la interpolación independiente de los aspectos de AC frente a DC de los valores de píxeles.
Interpolación lineal y no lineal
La interpolación es un promedio ponderado lineal. Dado que la operación de interpolación es lineal, y dado que los valores de píxeles en cada cuadro de imagen a menudo se representan de una forma no lineal (tal como representaciones gamma de video o logarítmicas), llega a ser posible una optimización adicional del proceso de interpolación. Por ejemplo, la interpolación de píxeles para una secuencia de cuadros particular, así como la interpolación de valores de DC por separado de valores de AC, algunas veces será óptima o casi óptima con una representación lineal de píxeles. No obstante, para otras secuencias de cuadros, tal interpolación será óptima o casi óptima, si los píxeles se representan como valores logarítmicos o en otras representaciones de píxeles. Además, las representaciones óptimas o casi óptimas para interpolar los componentes de señal U y V (croma) pueden diferir de las representaciones óptimas o casi óptimas para la componente de señal Y (luminancia). Por lo tanto, es útil convertir una representación de píxeles a una representación alternativa como parte del procedimiento de interpolación.
La FIG. 9 es un diagrama de flujo que muestra una realización de un método para interpolación de píxeles de luminancia usando una representación alternativa. Comenzando con una región o bloque de píxeles de luminancia (Y) en una representación inicial (por ejemplo, gamma de vídeo o logarítmica) (Paso 900), los datos de píxeles se transforman a una representación alternativa (por ejemplo, lineal, logarítmica, gamma de video) diferente de la representación inicial (Paso 902). La región o bloque de píxeles transformados se interpola entonces como se ha descrito anteriormente (Paso 904), y se transforma de nuevo a la representación inicial (Paso 906). El resultado son valores de luminancia de píxeles interpolados (Paso 908).
La FIG. 10 es un diagrama de flujo que muestra una realización de un método para interpolación de píxeles de croma usando una representación alternativa. Comenzando con una región o bloque de píxeles de croma (U, V) en una representación inicial (por ejemplo, gamma de vídeo o logarítmica) (Paso 1000), los datos de píxeles se transforman a una representación alternativa (por ejemplo, lineal, logarítmica, gamma de video) diferente de la representación inicial (Paso 1002). La región o bloque de píxeles transformados entonces se interpola como se ha descrito anteriormente (Paso 1006), y se transforma de nuevo a la representación inicial (Paso 1006). El resultado son valores de croma de píxeles interpolados (Paso 1008).
Las transformaciones entre representaciones se pueden realizar según las enseñanzas de la Solicitud de Patente de EE.UU. N° 09/905.039, titulada “Method and System for Improving Compressed Image Chroma Information”, publicada como US 2003/0112863 A1. Señalar que la transformación de representación alternativa y su inversa a menudo se pueden realizar usando una tabla de búsqueda simple.
Como una variación, el espacio de representación alternativa (lineal o no lineal) para la interpolación de AC puede diferir del espacio de representación alternativa para la interpolación de DC.
Como con las ponderaciones de interpolación, la selección de qué representación de interpolación alternativa se ha de usar para cada una de las representaciones de píxeles de luminancia (Y) y croma (U y V) se puede señalar al decodificador usando un número pequeño de bits para cada unidad de imagen seleccionada.
Número de vectores de movimiento por macrobloque
En MPEG-2, se permite un vector de movimiento por macrobloque de 16x16 en cuadros P. En cuadros B, MPEG-2 permite un máximo de 2 vectores de movimiento por macrobloque de 16x16, correspondiente al modo interpolativo bidireccional. En codificación de video MPEG-4, se permiten hasta 4 vectores de movimiento por macrobloque de 16x16 en cuadros P, correspondientes a un vector de movimiento por bloque DCT de 8x8. En cuadros B MPEG-4, se permiten un máximo de dos vectores de movimiento para cada macrobloque de 16x16, cuando se usa el modo interpolativo. Una delta de vector de movimiento único en modo directo MPEG-4 puede dar como resultado cuatro vectores de movimiento “implícitos” independientes, si el macrobloque de cuadros P posteriores correspondiente se estableció en modo 8x8 teniendo cuatro vectores. Esto se logra añadiendo la delta del vector de movimiento transportada en un macrobloque de cuadros B 16x16 a cada uno de los cuatro vectores de movimiento independientes correspondientes del siguiente macrobloque de cuadros P, después de escalar la distancia en el tiempo (el cuadro B está más cerca en el tiempo que la referencia de cuadro P o I anterior del cuadro P).
Existe la opción de aumentar el número de vectores de movimiento por región de imagen, tal como un macrobloque. Por ejemplo, algunas veces resultará beneficioso tener más de dos vectores de movimiento por macrobloque de cuadros B. Éstos se pueden aplicar haciendo referencia a cuadros P o I adicionales y teniendo tres o más términos de interpolación en la suma ponderada. También se pueden aplicar vectores de movimiento adicionales para permitir vectores independientes para los bloques DCT de 8x8 del macrobloque de cuadros B. También, se pueden usar cuatro deltas independientes para extender el concepto de modo directo aplicando una delta separada a cada uno de los cuatro vectores de movimiento de regiones de 8x8 del cuadro P posterior.
Además, los cuadros P se pueden adaptar usando técnicas de implementación de cuadro B para hacer referencia a más de un cuadro anterior en un modo interpolativo, usando la técnica de dos términos de interpolación de cuadros B descrita anteriormente. Esta técnica se puede extender fácilmente a más de dos cuadros P o I anteriores, con una interpolación resultante que tiene tres o más términos en la suma ponderada.
Como con otros aspectos del método (por ejemplo, representación de píxeles y métodos de interpolación de DC frente a AC), se pueden comunicar sumas ponderadas particulares a un decodificador usando un número pequeño de bits por unidad de imagen.
Al aplicar este aspecto del método, la correspondencia entre los bloques DCT de 8x8 píxeles y el campo de vector de movimiento no necesita ser tan estricta como con MPEG-2 y MPEG-4. Por ejemplo, puede ser útil usar tamaños de regiones alternativos distintos de 16x16, 16x8 (usado solamente con entrelazado en MPEG-4) y 8x8 para vectores de movimiento. Tales alternativas podrían incluir cualquier número de tamaños de regiones útiles, tales como 4x8, 8x12, 8x16, 6x12, 2x8, 4x8, 24x8, 32x32, 24x24, 24x16, 8x24, 32x8, 32x4, etc. Usando un número pequeño de tales tamaños útiles, unos pocos bits pueden señalar a un decodificador la correspondencia entre los tamaños de regiones de vectores de movimiento y los tamaños de bloques DCT. En sistemas donde se usa un bloque DCT de 8x8 convencional, un conjunto simple de correspondencias con el campo de vector de movimiento es útil para simplificar el procesamiento durante la compensación de movimiento. En sistemas donde el tamaño del bloque DCT es diferente de 8x8, entonces se puede lograr una mayor flexibilidad al especificar el campo de vector de movimiento, como se describe en la Solicitud de Patente de EE.UU. en tramitación N° 09/545.233, titulada “Enhanced Temporal and Resolution Layering in Advanced Television”, véase el documento WO 01/177871 A1.
Señalar que los límites de la región de vector de movimiento no necesitan corresponder con los límites de la región DCT. De hecho, a menudo es útil definir regiones de vector de movimiento de tal forma que un borde de la región de vector de movimiento caiga dentro de un bloque DCT (y no en su borde).
También se aplica el concepto de extender la flexibilidad del campo de vector de movimiento a la interpolación. Siempre que se especifique la correspondencia entre cada píxel y uno o más vectores de movimiento a uno o más cuadros de referencia, el método de interpolación descrito anteriormente se puede aplicar a la flexibilidad total de vectores de movimiento útiles usando toda la generalidad de este método. Incluso el tamaño de las regiones correspondientes a cada vector de movimiento puede diferir para cada referencia de cuadro anterior cuando se usan cuadros P, y cada referencia de cuadro anterior y futuro cuando se usan cuadros B. Si los tamaños de regiones para los vectores de movimiento difieren cuando se aplica el método de interpolación mejorado, entonces la interpolación refleja la región común de superposición. La región común de superposición para referencias de vector de movimiento se puede utilizar como la región sobre la cual se determina el término de DC cuando se interpolan por separado los valores de píxeles de DC y de AC.
La FIG. 11 es un diagrama que muestra tamaños de regiones de vectores de movimiento únicos 1100, 1102 para cada uno de los dos cuadros P 1104, 1106. Antes de calcular los valores de interpolación, se determina la unión 1108 de los tamaños de regiones de vectores de movimiento. La unión 1108 define todas las regiones que se consideran que tienen un vector de movimiento asignado.
De este modo, por ejemplo, al interpolar regiones DCT de 4x4 de un cuadro B 1112 hacia atrás con el cuadro P anterior 1104, una región de 4x4 1110 dentro de la unión 1108 usaría el vector de movimiento correspondiente a la región de 8x16 1114 en el cuadro P anterior. Si se predice hacia delante, la región 1110 dentro de la unión 1108 usaría el vector de movimiento correspondiente a la región de 4x16 1115 en el siguiente cuadro P. De manera similar, la interpolación de la región 116 dentro de la unión 1108 hacia atrás usaría el vector de movimiento correspondiente a la región de 8x16 1114, mientras que la predicción de la misma región hacia delante usaría el vector de movimiento correspondiente a la región de 12x161117.
En un método, se usan dos pasos para lograr la interpolación de vectores de movimiento generalizados (es decir, de tamaño no uniforme). El primer paso es determinar las regiones comunes de vector de movimiento, como se describe con respecto a la FIG. 11. Esto establece la correspondencia entre píxeles y vectores de movimiento (es decir, el número de vectores de movimiento por tamaño de región de píxeles especificado) para cada referencia de cuadro anterior o posterior. El segundo paso es utilizar el método de interpolación apropiado y los factores de interpolación activos para cada región de píxeles. Es una tarea del codificador asegurar que se especifiquen regiones de vector de movimiento y métodos de interpolación óptimos o casi óptimos, y que todos los píxeles tengan sus vectores y métodos de interpolación completamente especificados. Esto puede ser muy simple en el caso de un patrón fijo de vectores de movimiento (tales como un vector de movimiento para cada bloque de 32x8, especificado para un cuadro entero), con un único método de interpolación especificado (tal como una mezcla de proporción fija a cada distancia de cuadro referenciado, especificada para el cuadro entero). Este método también puede llegar a ser bastante complejo si se hacen cambios regionales en los tamaños de regiones de vectores de movimiento, y donde los tamaños de región difieren dependiendo de a qué cuadro anterior o posterior se hace referencia (por ejemplo, bloques de 8x8 para el cuadro anterior más cercano y bloques de 32x8 para el siguiente cuadro anterior más cercano). Además, el método de interpolación se puede especificar regionalmente dentro del cuadro.
Cuando se codifica, es el trabajo del codificador determinar el uso óptimo o casi óptimo de los bits para seleccionar entre formas y tamaños de regiones de vectores de movimiento, y para seleccionar el método de interpolación óptimo o casi optimo. También se requiere una determinación para especificar el número y la distancia de los cuadros referenciados. Estas especificaciones se pueden determinar mediante pruebas exhaustivas de una serie de tamaños de regiones de vectores de movimiento candidatos, cuadros candidatos para referencia y métodos de interpolación para cada región de vector de movimiento tal, hasta que se encuentra una codificación óptima o casi óptima. La optimización (en relación con un criterio seleccionado) se puede determinar encontrando la menor SNR después de codificar un bloque o el menor número de bits para un parámetro de cuantificación (QP) fijo después de codificar el bloque, o mediante la aplicación de otra medida adecuada.
Extensión de modo directo
El modo directo convencional, usado en macrobloques de cuadros B en MPEG-4, puede ser eficiente en codificación de vectores de movimiento, proporcionando los beneficios del modo de bloque de 8x8 con una delta común simple. El modo directo pondera cada vector de movimiento correspondiente del cuadro P posterior, que hace referencia al cuadro P anterior, en la ubicación del macrobloque correspondiente en base a la distancia en el tiempo. Por ejemplo, si M=3 (es decir, dos cuadros B intermedios), con interpolación lineal simple, el primer cuadro B usaría -2/3 de veces el vector de movimiento del cuadro P posterior para determinar un desplazamiento de píxeles con respecto a tal cuadro P, y 1/3 de veces el vector de movimiento del cuadro P posterior para determinar un desplazamiento de píxeles con respecto al cuadro P anterior. De manera similar, el segundo cuadro B usaría -1/3 de veces el mismo vector de movimiento de cuadro P para determinar un desplazamiento de píxeles con respecto a tal cuadro P, y 2/3 de veces el vector de movimiento de cuadro P posterior para determinar un desplazamiento de píxeles con respecto al cuadro P anterior. En modo directo, se añade una delta pequeña a cada vector de movimiento correspondiente.
Según la invención, este concepto se puede extender a referencias de cuadro B que apuntan a uno o más cuadros P a n distancias, que a su vez hacen referencia a uno o más cuadros P o cuadros I anteriores o posteriores, teniendo en cuenta la distancia de cuadro para determinar una fracción de escala de cuadro.
La FIG. 12 es un diagrama que muestra una secuencia de cuadros P y B con ponderaciones de interpolación para los cuadros B determinada como una función de la distancia desde un cuadro P posterior a 2 distancias que hace referencia a un cuadro P posterior a 1 distancia. En el ejemplo ilustrado, M=3, que indica dos cuadros B 1200, 1202 consecutivos entre los cuadros P 1204, 1206 que delimitan. En este ejemplo, cada macrobloque de ubicación conjunta en el siguiente cuadro P posterior más cercano 1208 (es decir, n=2) podría apuntar al cuadro P intermedio (es decir, el más cercano) 1204, y los dos primeros cuadros B 1200, 1202 pueden hacer referencia al siguiente cuadro P posterior más cercano 1208 en lugar de al cuadro P posterior más cercano 1204, como en MPEG convencional. De este modo, para el primer cuadro B 1200, la fracción de escala de cuadro 5/3 de veces el vector de movimiento mv del siguiente cuadro P posterior más cercano 1208 se usaría como un desplazamiento de píxeles con respecto al cuadro P 1208, y el segundo cuadro B 1202 usaría un desplazamiento de 4/3 de veces ese mismo vector de movimiento.
Si un cuadro P posterior más cercano referenciado por un cuadro B apunta al siguiente cuadro P anterior más cercano, entonces, de nuevo, la distancia de cuadro simple se puede usar para obtener la fracción de escala de cuadro adecuada a aplicar a los vectores de movimiento. La FIG. 13 es un diagrama que muestra una secuencia de cuadros P y B con ponderaciones de interpolación para los cuadros B determinada como una función de la distancia desde un cuadro P posterior a 1 distancia que hace referencia a un cuadro P anterior a 2 distancias. En el ejemplo ilustrado, M=3, y los cuadros B 1300, 1302 hacen referencia al cuadro P posterior más cercano 1304, que a su vez hace referencia al cuadro P a 2 distancias 1306. De este modo, para el primer cuadro B 1300, la fracción de desplazamiento de píxeles es la fracción de escala de cuadros 2/6 multiplicada por el vector de movimiento mv del cuadro P posterior más cercano 1304, y el segundo cuadro B 1302 tendría un desplazamiento de píxeles de la fracción de escala de cuadros 1/6 multiplicada por ese mismo vector de movimiento, dado que el vector de movimiento del cuadro P posterior más cercano 1304 apunta al cuadro P anterior a 2 distancias 1306, que está distante a 6 cuadros.
En general, en el caso de un cuadro B que hace referencia a un único cuadro P en modo directo, el método de distancia de cuadro establece el numerador de una fracción de escala de cuadro igual a la distancia de cuadro de ese cuadro B a su cuadro P referenciado, u “objetivo”, y establece el denominador igual a la distancia de cuadro del cuadro P objetivo a otro cuadro P referenciado por el cuadro P objetivo. El signo de la fracción de escala de cuadro es negativo para mediciones hechas de un cuadro B a un cuadro P posterior, y positivo para mediciones hechas de un cuadro B a un cuadro P anterior. Este método simple de aplicar una distancia de cuadro o la fracción de escala de cuadro a un vector de movimiento de cuadro P puede lograr una codificación efectiva en modo directo.
Además, es posible permitir que el modo directo se aplique a múltiples referencias de vectores de movimiento interpolados de un cuadro P. Por ejemplo, si un cuadro P se interpoló desde los cuadros P anteriores más cercanos y siguientes más cercanos, una referencia en modo directo permite una mezcla interpolada para cada macrobloque de cuadros B en modo directo de referencia múltiple. En general, los dos o más vectores de movimiento de un cuadro P pueden tener aplicada una fracción de escala de cuadro adecuada. Los dos o más vectores de movimiento modificados de distancia de cuadro entonces se pueden usar con las ponderaciones de interpolación correspondientes para cada cuadro B que hace referencia o que es el destino de ese cuadro P, como se describe a continuación, para generar compensación de movimiento de macrobloque de cuadros B interpolado.
La FIG. 14 es un diagrama que muestra una secuencia de cuadros P y B en que un cuadro P posterior tiene múltiples vectores de movimiento que hacen referencia a cuadros P anteriores. En este ejemplo, un cuadro B 1400 hace referencia a un cuadro P posterior P3. Este cuadro P3 a su vez tiene dos vectores de movimiento, mv1 y mv2, que hacen referencia a los cuadros P anteriores P2, P1, correspondientes. En este ejemplo, cada macrobloque del cuadro B 1400 se puede interpolar en modo directo usando cualquiera de dos términos de ponderación o una combinación de tales términos de ponderación.
Cada macrobloque para el cuadro B 1400 se construiría como una mezcla de:
• píxeles correspondientes del cuadro P2 desplazados por la fracción de escala de cuadro 1/3 de mv1 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional i) más píxeles correspondientes del cuadro P3 desplazado por la fracción de escala de cuadro -2/3 de mv1 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional j); y
• píxeles correspondientes del cuadro P1 desplazados por la fracción de escala de cuadro 2/3 (4/6) de mv2 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional k) más píxeles correspondientes del cuadro P3 desplazados por la fracción de escala de cuadro -1/3 (-2/6) de mv2 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional l).
Como con todos los modos directos, se puede usar una delta de vector de movimiento con cada uno de mv1 y mv2.
Los macrobloques predichos en modo directo en cuadros B también pueden hacer referencia a múltiples cuadros P posteriores, usando la misma metodología de interpolación y aplicación de fracción de escala de cuadro de vector de movimiento que con múltiples cuadros P anteriores. La FIG. 15 es un diagrama que muestra una secuencia de cuadros P y B en que un cuadro P posterior más cercano tiene un vector de movimiento que hace referencia a un cuadro P anterior, y siguiente un cuadro P más cercano tiene múltiples vectores de movimiento que hacen referencia a cuadros P anteriores. En este ejemplo, un cuadro B 1500 hace referencia a dos cuadros P posteriores P2, P3. El cuadro P3 tiene dos vectores de movimiento, mv1 y mv2, que hacen referencia a los cuadros P anteriores P2, P1. El cuadro P2 tiene un vector de movimiento, mv3, que hace referencia al cuadro P anterior P1. En este ejemplo, cada macrobloque del cuadro B 1500 se interpola en modo directo usando tres términos de ponderación. En este caso, las fracciones de escala de cuadro del vector de movimiento pueden ser mayores que 1 o menores que -1.
Las ponderaciones para esta forma de interpolación de macrobloques de cuadros B en modo directo pueden utilizar la generalidad completa de interpolación como se describe en la presente memoria. En particular, cada ponderación, o combinaciones de las ponderaciones, se pueden probar para un mejor rendimiento (por ejemplo, calidad frente a número de bits) para diversas unidades de imagen. La fracción de interpolación establecida para este modo directo mejorado se puede especificar a un decodificador con un número pequeño de bits por unidad de imagen.
Cada macrobloque para el cuadro B 1500 se construiría como una mezcla de:
• píxeles correspondientes del cuadro P3 desplazados por la fracción de escala de cuadro -5/3 de mv1 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional i), más píxeles correspondientes del cuadro P2 desplazados por la fracción de escala de cuadro -2/3 de mv1 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional j);
• píxeles correspondientes del cuadro P3 desplazados por la fracción de escala de cuadro -5/6 de mv2 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional k) más píxeles correspondientes del cuadro P1 desplazados por la fracción de escala de cuadro 1/6 de mv2 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional l); y
• píxeles correspondientes del cuadro P2 desplazados por la fracción de escala de cuadro -2/3 de mv3 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional m) más píxeles correspondientes del cuadro P1 desplazados por la fracción de escala dl cuadro 1/3 de mv3 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional n).
Como con todos los modos directos, se puede utilizar una delta de vector de movimiento con cada uno de mv1, mv2 y mv3.
Señalar que a menudo ocurre un modo de codificación directa particularmente beneficioso cuando el siguiente cuadro P posterior más cercano hace referencia a los cuadros P más cercanos que delimitan un cuadro B candidato. La codificación de modo directo de cuadros B en MPEG-4 siempre usa los vectores de movimiento de cuadro P posterior como referencia. También es posible que un cuadro B haga referencia a los vectores de movimiento de los macrobloques situados conjuntamente del cuadro P anterior, lo que algunas veces resultará una elección beneficiosa de la referencia de codificación en modo directo. En este caso, las fracciones de escala de cuadro del vector de movimiento serán mayores que uno, cuando el siguiente cuadro P anterior más cercano se referencie por el vector de movimiento del cuadro P anterior más cercano. La FIG. 16 es un diagrama que muestra una secuencia de cuadros P y B en los que un cuadro P anterior más cercano tiene un vector de movimiento que hace referencia a un cuadro P anterior. En este ejemplo, un cuadro B 1600 hace referencia al cuadro P anterior a 1 distancia P2. El vector de movimiento mv del cuadro P2 hace referencia al siguiente cuadro P anterior P1 (a 2 distancias en relación con el cuadro B 1600). Se muestran las fracciones de escala de cuadro apropiadas.
Si el cuadro P anterior más cercano se interpola a partir de múltiples vectores y cuadros, entonces métodos similares a los descritos junto con la FIG. 14 se aplican para obtener las fracciones de escala de cuadro del vector de movimiento y las ponderaciones de interpolación. La FIG. 17 es un diagrama que muestra una secuencia de cuadros P y B en los que un cuadro P anterior más cercano tiene dos vectores de movimiento que hacen referencia a cuadros P anteriores. En este ejemplo, un cuadro B 1700 hace referencia al cuadro P anterior P3. Un vector de movimiento mv1 del cuadro P3 anterior hace referencia al siguiente cuadro P anterior P2, mientras que el segundo vector de movimiento mv2 hace referencia al cuadro P anterior a 2 distancias P1. Se muestran las fracciones de escala de cuadro apropiadas.
Cada macrobloque para el cuadro B 1700 se construiría como una mezcla de:
• píxeles correspondientes del cuadro P3 desplazados por la fracción de escala de cuadro 1/3 de mv1 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional i) más píxeles correspondientes del cuadro P2 desplazados por la fracción de escala de cuadro 4/3 de mv1 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional j); y
• píxeles correspondientes del cuadro P3 desplazados por la fracción de escala de cuadro 1/6 de mv2 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional k) más píxeles correspondientes del cuadro P1 desplazados por la fracción de escala de cuadro 7/6 de mv2 (donde los píxeles entonces se pueden multiplicar por alguna ponderación proporcional l).
Cuando el vector de movimiento de un cuadro P anterior (en relación con un cuadro B) apunta al siguiente cuadro P anterior más cercano, no es necesario utilizar solamente el siguiente cuadro anterior más cercano como la referencia de interpolación, como en la FIG. 16. El cuadro P anterior más cercano puede resultar ser una mejor opción para compensación de movimiento. En este caso, el vector de movimiento del cuadro P anterior más cercano se acorta a la fracción de distancia de cuadro desde un cuadro B a ese cuadro P. La FIG. 18 es un diagrama que muestra una secuencia de cuadros P y B en que un cuadro P anterior más cercano tiene un vector de movimiento que hace referencia a un cuadro P anterior. En este ejemplo, para M=3, un primer cuadro B 1800 usaría fracciones de distancia de cuadro de 1/3 y -2/3 de veces el vector de movimiento mv del cuadro P anterior más cercano P2. El segundo cuadro B 1802 usaría fracciones de distancia de cuadro 2/3 y -1/3 (no se muestran). Tal selección se señalaría al decodificador para distinguir este caso del caso mostrado en la FIG. 16.
Como con todos los otros modos de codificación, el uso del modo directo implica preferiblemente probar el modo candidato frente a otros modos disponibles de interpolación y de codificación de un único vector y cuadros de referencia. Para la prueba en modo directo, el cuadro P posterior más cercano (y, opcionalmente, el siguiente cuadro P posterior más cercano o incluso los cuadros P posteriores más distantes, y/o uno o más cuadros P anteriores) se pueden probar como candidatos, y se puede usar un número pequeño de bits (generalmente uno o dos) para especificar la distancia o distancias de cuadro de referencia P en modo directo a ser usadas por un decodificador. Valores de interpolación extendidos
Se especifica en MPEG-1, 2 y 4, así como en los estándares H.261 y H.263, que los cuadros B usan una ponderación igual de valores de píxeles de los cuadros referenciados hacia delante y referenciados hacia atrás, como desplazados por los vectores de movimiento. Esta invención incluye la aplicación de diversas ponderaciones desiguales útiles que pueden mejorar significativamente la eficiencia de codificación de cuadro B, así como la extensión de tales ponderaciones desiguales a más de dos referencias, incluyendo dos o más referencias hacia atrás o hacia delante en el tiempo.
La invención también incluye métodos para que más de un cuadro sea referenciado e interpolado para cuadros P. Además, cuando dos o más referencias apuntan hacia delante en el tiempo, o cuando dos o más referencias apuntan hacia atrás en el tiempo, algunas veces será útil usar ponderaciones negativas, así como ponderaciones superiores a 1,0.
Por ejemplo, la FIG. 19 es una secuencia de cuadros que muestra el caso de tres cuadros P P1, P2 y P3, donde P3 usa una referencia interpolada con dos vectores de movimiento, uno para cada uno de P1 y P2. Si, por ejemplo, está ocurriendo un cambio continuo sobre el lapso de cuadros entre P1 y P3, entonces P2-P1 (es decir, los valores de píxeles del cuadro P2, desplazados por el vector de movimiento para P2, menos los valores de píxeles del cuadro P1, desplazados por el vector de movimiento para P1) igualarán a P3-P2. De manera similar, P3-P1 será el doble de la magnitud de P2-P1 y P3-P2. En tal caso, los valores de píxeles para el cuadro P3 se pueden predecir de manera diferencial a partir de P1 y P2 a través de la fórmula:
P3 = P1 2 x (P2 - P1) = (2 x P2) - P1
En este caso, las ponderaciones interpolativas para P3 son 2,0 para P2 y -1,0 para P1.
Como otro ejemplo, la FIG. 20 es una secuencia de cuadros que muestra el caso de cuatro cuadros P P1, P2, P3 y P4, donde P4 usa una referencia interpolada con tres vectores de movimiento, uno para cada uno de P1, P2 y P3. De este modo, dado que P4 se predice a partir de P3, P2 y P1, se aplicarían tres vectores de movimiento y ponderaciones interpolativas. Si, en este caso, estuviera ocurriendo un cambio continuo sobre este lapso de cuadros, entonces P2- P1sería igual tanto a P3-P2 como a P4-P3, y P4-P1 sería igual tanto a 3 x (P2- P1) como a 3 x (P3-P2).
De este modo, en este caso de ejemplo, una predicción de P4 en base a P2 y P1 sería:
P4 = P1+ 3 x (P2 - P1) = (3 x P2) -(2 x P1) (ponderaciones 3,0 y - 2,0)
La predicción de P4 en base a P3 y P1 sería:
P4 = P1 3/2 x (P3 - P1) = (3/2 x P3) -(1/2 x P1) (ponderaciones 1,5 y -0,5)
La predicción de P4 en base a P3 y P2 sería:
P4 = P2 2 x (P3 - P2) = (2 x P3) - P2 (ponderaciones 2,0 y -1,0)
No obstante, también podría ser probable que el cambio más cercano a P4, que implica a P3 y P2, sea un predictor más fiable de P4 que las predicciones que implican a P1. De este modo, dando 1/4 de ponderación a cada uno de los dos términos anteriores que implican a P1, y 1/2 de ponderación al término que implica solamente a P3 y P2, daría como resultado:
1/2 (2 P3 - P2) 1/4 (3/2 P3 - 1/2 P1) 1/4 (3 P2 - 2 P1) =
13/8 P3 1/4 P2 - 5/8 P1 (ponderaciones 1,375, 0,25 y -0,625)
Por consiguiente, algunas veces será útil usar ponderaciones tanto por encima de 1,0 como por debajo de cero. En otras ocasiones, si hay una variación de tipo ruido de un cuadro al siguiente, un promedio ponderado positivo que tenga coeficientes leves entre 0,0 y 1,0 podría producir el mejor predictor del macrobloque de P4 (u otra región de píxeles). Por ejemplo, una ponderación igual de 1/3 de cada uno de P1, P2 y P3 en la FIG. 20 podría formar el mejor predictor de P4 en algunos casos.
Señalar que el vector de movimiento de la mejor coincidencia se aplica para determinar la región de P1, P2, P3, etc., que se utiliza por los cálculos en este ejemplo. Esta coincidencia podría ser mejor una coincidencia de AC en algunos casos, permitiendo que un término de DC variable se prediga a través de los coeficientes de AC. Alternativamente, si se usa una coincidencia de DC (tal como la Suma de Diferencia Absoluta), entonces a menudo se pueden predecir cambios en los coeficientes de AC. En otros casos, diversas formas de coincidencia de vectores de movimiento formarán una mejor predicción con diversas mezclas de ponderación. En general, el mejor predictor para un caso particular se determina empíricamente usando los métodos descritos en la presente memoria.
Estas técnicas también son aplicables a cuadros B que tienen dos o más vectores de movimiento que apuntan o bien hacia atrás o bien hacia delante en el tiempo. Cuando se apunta hacia delante en el tiempo, el patrón de coeficiente descrito anteriormente para los cuadros P se invierte para predecir con precisión hacia atrás al cuadro P actual. Es posible tener dos o más vectores de movimiento tanto en la dirección hacia delante como hacia atrás, prediciendo por ello en ambas direcciones concurrentemente. Se puede optimizar una mezcla ponderada adecuada de estas diversas predicciones seleccionando la ponderación de mezcla que mejor predice el macrobloque (u otra región de píxeles) de un cuadro B actual.
La FIG. 21 es un diagrama que muestra una secuencia de cuadros P y B en que diversos cuadros P tienen uno o más vectores de movimiento que hacen referencia a diversos cuadros P anteriores, y que muestran diferentes ponderaciones a-e asignadas a las respectivas referencias hacia delante y hacia atrás por un cuadro B particular. En este ejemplo, un cuadro B 2100 hace referencia a tres cuadros P anteriores y a dos cuadros P posteriores.
En el ejemplo ilustrado en la FIG. 21, el cuadro P5 se debe decodificar para que este ejemplo funcione. Algunas veces es útil ordenar cuadros en un flujo de bits en el orden necesario para la decodificación (“orden de entrega”), que no es necesariamente el orden de visualización (“orden de visualización”). Por ejemplo, en una secuencia de cuadros que muestra un movimiento cíclico (por ejemplo, rotación de un objeto), un cuadro P particular puede ser más similar a un cuadro P distante que al cuadro P posterior más cercano. La FIG. 22 es un diagrama que muestra una secuencia de cuadros P y B en la que el orden de entrega del flujo de bits de los cuadros P difiere del orden de visualización. En este ejemplo, el cuadro P3 es más similar al cuadro P5 que al cuadro P4. Por lo tanto, es útil entregar y decodificar P5 antes que P4, pero mostrar P4 antes que P5. Preferiblemente, cada cuadro P debería señalar al decodificador cuándo se puede descartar tal cuadro P (por ejemplo, una expiración de n cuadros en orden de flujo de bits o después del cuadro X en el orden de visualización).
Si las ponderaciones se seleccionan de un conjunto pequeño de opciones, entonces un número pequeño de bits puede señalar al decodificador qué ponderación se ha de usar. Como con todas las otras ponderaciones descritas en la presente memoria, esto se puede señalar a un decodificador una vez por unidad de imagen, o en cualquier otro punto del proceso de decodificación donde sea útil un cambio en las ponderaciones.
También es posible descargar nuevos conjuntos de ponderación. De esta forma, un número pequeño de conjuntos de ponderación pueden estar activos en un momento dado. Esto permite que un número pequeño de bits señale a un decodificador cuál de los conjuntos de ponderación activos se ha de usar en cualquier punto dado en el proceso de decodificación Para determinar conjuntos de ponderación adecuados, se puede probar un número grande de ponderaciones durante la codificación. Si se encuentra que un subconjunto pequeño proporciona alta eficiencia, entonces ese subconjunto se puede señalar a un decodificador para su uso. Un elemento particular del subconjunto se puede señalar, de este modo, al decodificador con sólo unos pocos bits. Por ejemplo, 10 bits pueden seleccionar 1 de 1024 elementos de subconjunto. Además, cuando se debería cambiar un subconjunto pequeño particular para mantener la eficiencia, se puede señalar un nuevo subconjunto al decodificador. De este modo, un codificador puede optimizar dinámicamente el número de bits requeridos para seleccionar entre los elementos del conjunto de ponderación frente al número de bits necesarios para actualizar los conjuntos de ponderación. Además, se puede usar un número pequeño de códigos cortos para señalar ponderaciones útiles comunes, tales como 1/2, 1/3, 1/4, etc. De esta forma, un número pequeño de bits se puede usar para señalar el conjunto de ponderaciones, tal como para una predicción de vector hacia delante K en un cuadro P (donde K = 1, 2, 3, ...), o una predicción de vector hacia delante K y vector hacia atrás L en un cuadro B (donde K y L se seleccionan de 0, 1,2, 3, ...), o una predicción de vector hacia delante K y de vector hacia atrás L en un cuadro P (donde K y L se seleccionan de 0, 1, 2, 3, ...), como una función del valor M actual (es decir, la posición relativa del cuadro B con respecto a los cuadros P (o I) vecinos).
La FIG. 23 es un diagrama que muestra una secuencia de cuadros P y B con ponderaciones asignadas. Un cuadro B 2300 tiene ponderaciones a-e, los valores de las cuales se asignan a partir de una tabla de conjuntos de ponderaciones de cuadro B 2302. Un cuadro P 2304 tiene ponderaciones m, n, los valores de las cuales se asignan a partir de una tabla de conjuntos de ponderaciones de cuadro P 2306. Algunas ponderaciones pueden ser estáticas (es decir, descargadas permanentemente al decodificador), y señaladas por un codificador. Otras ponderaciones se pueden descargar dinámicamente y entonces señalar.
Esta misma técnica se puede usar para actualizar dinámicamente conjuntos de ponderación para seleccionar interpolación de DC frente a interpolación de AC. Además, se pueden señalar valores de código que seleccionan interpolación normal (lineal) (de valores de píxeles normalmente representados en una representación no lineal) frente a interpolación lineal de valores convertidos (en una representación alternativa lineal o no lineal). De manera similar, tales valores de código pueden señalar qué interpolación tal aplicar a los valores de AC o DC o si dividir las partes de AC y DC de la predicción.
El subconjunto activo también se puede usar para minimizar el número de bits necesarios para seleccionar entre los conjuntos de coeficientes de ponderación actualmente en uso. Por ejemplo, si 1024 conjuntos de ponderación descargados se mantuvieron en un decodificador, tal vez 16 pudieran necesitar estar activos durante una parte particular de un cuadro. De este modo, seleccionando qué subconjunto de 16 (de entre 1024) conjuntos de ponderación han de estar activos, solamente necesitan ser usados 4 bits para seleccionar qué conjunto de ponderación de estos 16 está activo. Los subconjuntos también se pueden señalar usando códigos cortos para los subconjuntos más comunes, permitiendo de este modo que un número pequeño de bits se seleccione entre los subconjuntos usados comúnmente.
Suavidad y nitidez
Como con la separación simple de un componente de DC de las señales de AC a través de la resta del valor promedio, también son posibles otras operaciones de filtrado durante la predicción compensada de vector de movimiento. Por ejemplo, se pueden aplicar diversos filtros de paso alto, paso banda y paso bajo a una región de píxeles (tal como un macrobloque) para extraer diversas bandas de frecuencia. Estas bandas de frecuencia entonces se pueden modificar cuando se realiza compensación de movimiento. Por ejemplo, a menudo podría ser útil en una imagen en movimiento ruidosa filtrar las frecuencias más altas con el fin de suavizar (hacer menos nítido o desenfocar ligeramente) la imagen. Los píxeles de imagen más suaves, combinados con una matriz de inclinación más pronunciada para la cuantificación (una matriz de inclinación más pronunciada ignora el ruido de más alta frecuencia en el bloque actual), normalmente formarán un método de codificación más eficiente. Ya es posible señalar un cambio en la matriz de inclinación de cuantificación para cada unidad de imagen. También es posible descargar matrices de inclinación personalizadas para luminancia y croma. Señalar que la efectividad de la compensación de movimiento se puede mejorar si la matriz de inclinación se cambia o no. No obstante, a menudo será más efectivo cambiar tanto la matriz de inclinación como los parámetros de filtro que se aplican durante la compensación de movimiento.
Es una práctica común usar una resolución reducida para la codificación de croma junto con una matriz de inclinación específica de croma. No obstante, la resolución de la codificación de croma es estática en este caso (tal como la media resolución de codificación 4:2:0 vertical y horizontalmente, o la media resolución de codificación 4:2:2 solamente horizontalmente). La efectividad de codificación se puede aumentar aplicando un proceso de filtro dinámico durante la compensación de movimiento tanto a croma como a luminancia (independientemente o en tándem), seleccionados por unidad de imagen.
La Solicitud de Patente de EE.UU. N° 09/545.233, titulada “Enhanced Temporal and Resolution Layering in Advanced Television” (referenciada anteriormente, véase el documento WO 01/17787 A1), describe el uso de filtros de desplazamiento mejorados que tienen lóbulos negativos (una función de sincronismo truncada). Estos filtros tienen la ventaja de que conservan la nitidez cuando se realiza la parte de píxel fraccional del desplazamiento del vector de movimiento. Tanto en el punto de desplazamiento de píxeles enteros como en los puntos fraccionales, algunos macrobloques (u otras regiones de imagen útiles) se desplazan de manera más óptima usando filtros que reducen o aumentan su nitidez. Por ejemplo, para un “enfoque de bastidor” (donde algunos objetos en el cuadro se desenfocan con el tiempo, y otras partes del cuadro se enfocan), la transición es uno de cambio tanto en la nitidez como en la suavidad. De este modo, un filtro de compensación de movimiento que puede tanto aumentar la nitidez en ciertas regiones en una imagen al tiempo que se reduce la nitidez en otras regiones puede mejorar la eficiencia de codificación. En particular, si una región de una imagen se desenfoca, puede ser beneficioso disminuir la nitidez, lo que suavizará la imagen (creando por ello potencialmente una mejor coincidencia) y disminuirá el grano y/o el ruido (mejorando por ello posiblemente la eficiencia de codificación). Si una región de la imagen se enfoca, puede ser beneficioso conservar la nitidez máxima, o incluso aumentar la nitidez usando valores de filtro de lóbulo negativo más grandes.
El filtrado de croma también puede beneficiarse del aumento y la disminución de la nitidez durante la codificación. Por ejemplo, muchos de los beneficios de eficiencia de codificación de la codificación 4:2:0 (croma de media resolución horizontal y verticalmente) se pueden lograr usando filtros de compensación de movimiento más suaves para croma mientras que se conserva la resolución completa en los canales U y/o V. Solamente cuando el detalle de color en los canales U y V es alto, será necesario seleccionar los filtros de desplazamiento más nítidos; los filtros más suaves serán más beneficiosos donde haya alto ruido de color o grano.
Además de los cambios en el enfoque, también es común tener un cambio en la dirección y la cantidad de desenfoque de movimiento de un cuadro al siguiente. A la tasa de cuadros de película en movimiento de 24 fps, incluso una simple escena de diálogo puede tener cambios significativos en el desenfoque de movimiento de un cuadro al siguiente. Por ejemplo, un labio superior podría desenfocarse en un cuadro y hacerse nítido en el siguiente, debido totalmente al movimiento del labio durante el tiempo de apertura del obturador de la cámara. Para tal desenfoque de movimiento, será beneficioso no solamente tener filtros de nitidez y suavizado (desenfoque) durante la compensación de movimiento, sino también tener un aspecto direccional para el enfoque y el suavizado. Por ejemplo, si se puede determinar una dirección de movimiento, se puede usar un suavizado o una nitidez a lo largo de esa dirección para corresponder al movimiento o la detención de un rasgo de la imagen. Los vectores de movimiento usados para la compensación de movimiento pueden proporcionar a ellos mismos alguna información útil acerca de la cantidad de movimiento y el cambio en la cantidad de movimiento (es decir, desenfoque de movimiento), para un cuadro particular (o región dentro de un cuadro) con respecto a cualquiera de los cuadros circundantes (o regiones correspondientes). En particular, un vector de movimiento es la mejor coincidencia de movimiento entre cuadros P, mientras que el desenfoque de movimiento resulta del movimiento durante el tiempo de apertura del obturador dentro de un cuadro.
La FIG. 24 es un gráfico de posición de un objeto dentro de un cuadro frente al tiempo. El obturador de una cámara está abierto solamente durante parte de un tiempo de cuadro. Cualquier movimiento del objeto mientras que el obturador está abierto da como resultado un desenfoque. La cantidad de desenfoque de movimiento se indica por la cantidad de cambio de posición durante el tiempo de apertura del obturador. De este modo, la pendiente de la curva de posición 2400 mientras que el obturador está abierto es una medición del desenfoque de movimiento.
La cantidad de desenfoque de movimiento y la dirección de movimiento también se pueden determinar a partir de una combinación de métricas de nitidez, vectores de movimiento circundantes (donde coinciden regiones de imagen), detección de borrosidad de rasgos y designación asistida por humanos de regiones de cuadro. Se puede seleccionar un filtro en base a la cantidad determinada de desenfoque de movimiento y de dirección de movimiento. Por ejemplo, se puede determinar empíricamente una correlación de diversos filtros frente al desenfoque de movimiento y la dirección determinados.
Cuando se combina con los otros rasgos del método, tales filtros aplicados de manera inteligente pueden mejorar significativamente la eficiencia de codificación de compresión. Se puede seleccionar un número pequeño de tales filtros con un número pequeño de bits señalados al decodificador. De nuevo, esto se puede hacer una vez por unidad de imagen o en otros puntos útiles en el proceso de decodificación. Como con los conjuntos de ponderación, se puede usar un conjunto de filtros cargados dinámicamente, así como un mecanismo de subconjuntos activos, para minimizar el número de bits necesarios a seleccionar entre el conjunto de parámetros de filtro más beneficiosos.
Implementación
El método de compresión de video se puede implementar en hardware o software, o una combinación de ambos (por ejemplo, matrices lógicas programables). A menos que se especifique de otro modo, los algoritmos incluidos como parte de la invención no están inherentemente relacionados con ningún ordenador u otro aparato particular. En particular, se pueden usar diversas máquinas de propósito general con programas escritos según las enseñanzas de la presente memoria, o puede ser más conveniente construir aparatos más especializados (por ejemplo, circuitos integrados) para realizar funciones particulares. De este modo, el método se puede implementar en uno o más programas de ordenador que se ejecutan en uno o más sistemas de ordenador programables, cada uno que comprende al menos un procesador, al menos un sistema de almacenamiento de datos (incluyendo memoria volátil y no volátil y/o elementos de almacenamiento), en al menos un dispositivo o puerto de entrada, y al menos un dispositivo o puerto de salida. El código de programa se aplica a los datos de entrada para realizar las funciones descritas en la presente memoria y generar información de salida. La información de salida se aplica a uno o más dispositivos de salida, de forma conocida.
Cada programa tal se puede implementar en cualquier lenguaje de ordenador deseado (incluyendo lenguajes de programación de máquina, ensamblaje o procedimental de alto nivel, lógico u orientado a objetos) para comunicar con un sistema de ordenador. En cualquier caso, el lenguaje puede ser un lenguaje compilado o interpretado.
Cada programa de ordenador tal se almacena o descarga preferiblemente a un medio o dispositivo de almacenamiento (por ejemplo, memoria o medios de estado sólido, o medios magnéticos u ópticos) legible por un ordenador programable de propósito general o especial, para configurar y operar el ordenador cuando el medio o dispositivo de almacenamiento se lee por el sistema de ordenador para realizar los procedimientos descritos en la presente memoria. También se puede considerar que el sistema se implemente como un medio de almacenamiento legible por ordenador, configurado con un programa de ordenador, donde el medio de almacenamiento así configurado hace que un sistema de ordenador opere de una manera específica y predefinida para realizar las funciones descritas en la presente memoria.
Se han descrito una serie de realizaciones de la invención. Sin embargo, se entenderá que se pueden hacer diversas modificaciones sin apartarse del alcance de la invención como se define por las reivindicaciones. Por ejemplo, algunos de los pasos descritos anteriormente pueden ser independientes del orden, y de este modo se puede realizar en un orden diferente del descrito.

Claims (6)

REIVINDICACIONES
1. Un método de compresión de imágenes de video que comprende:
proporcionar una secuencia de cuadros referenciables (I, P) y predichos bidireccionales (B) cada uno que comprende valores de píxeles dispuestos en macrobloques; y
determinar al menos un macrobloque dentro de un cuadro predicho bidireccional (B) usando predicción en modo directo en base a un vector de movimiento entre dos cuadros referenciables (I, P) siendo escalado por una fracción de escala de cuadro de más de uno, en donde los dos cuadros referenciables son anteriores en orden de visualización al cuadro predicho bidireccional.
2. Un método según la reivindicación 1, en donde los dos cuadros referenciables están en orden de visualización.
3. Un sistema de compresión de imágenes de video adaptado para proporcionar una secuencia de cuadros referenciales (I, P) y predichos bidireccionales (B) cada uno que comprende valores de píxeles dispuestos en macrobloques, en donde al menos un macrobloque dentro de un cuadro predicho bidireccional se determina usando predicción en modo directo en base a un vector de movimiento entre dos cuadros referenciables que se escalan por una fracción de escala de cuadro de más de uno, en donde los dos cuadros referenciables son anteriores en orden de visualización al cuadro predicho bidireccional.
4. Un sistema según la reivindicación 3, en donde los dos cuadros referenciables están en orden de visualización.
5. Un método de descompresión de imágenes de video que comprende: recibir una secuencia de cuadros referenciables (I, P) y predichos bidireccionales (B) cada uno que comprende valores de píxeles dispuestos en macrobloques; y
determinar al menos un macrobloque dentro de un cuadro predicho bidireccional (B) usando predicción en modo directo en base a un vector de movimiento entre dos cuadros referenciables (I, P) siendo escalado por una fracción de escala de cuadro de más de uno, en donde los dos cuadros referenciables son anteriores en orden de visualización al cuadro predicho bidireccional.
6. Un sistema de descompresión de video adaptado para
recibir una secuencia de cuadros referenciables (I, P) y predichos bidireccionales (B) cada uno que comprende valores de píxeles dispuestos en macrobloques; y
determinar al menos un macrobloque dentro de un cuadro predicho bidireccional (B) usando predicción en modo directo en base a un vector de movimiento entre dos cuadros referenciables (I, P) siendo escalado por una fracción de escala de cuadro de más de uno, en donde los dos cuadros referenciables son anteriores en orden de visualización al cuadro predicho bidireccional.
ES10005839T 2002-06-28 2003-06-27 Interpolación mejorada de cuadros de compresión de vídeo Expired - Lifetime ES2775070T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/187,395 US7266150B2 (en) 2001-07-11 2002-06-28 Interpolation of video compression frames

Publications (1)

Publication Number Publication Date
ES2775070T3 true ES2775070T3 (es) 2020-07-23

Family

ID=29999364

Family Applications (2)

Application Number Title Priority Date Filing Date
ES10005839T Expired - Lifetime ES2775070T3 (es) 2002-06-28 2003-06-27 Interpolación mejorada de cuadros de compresión de vídeo
ES10008909T Expired - Lifetime ES2780055T3 (es) 2002-06-28 2003-06-27 Interpolación mejorada de cuadros de compresión de vídeo

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES10008909T Expired - Lifetime ES2780055T3 (es) 2002-06-28 2003-06-27 Interpolación mejorada de cuadros de compresión de vídeo

Country Status (17)

Country Link
US (45) US7266150B2 (es)
EP (6) EP2458864A3 (es)
JP (1) JP2006513592A (es)
KR (1) KR100748194B1 (es)
CN (10) CN102256136B (es)
AU (3) AU2003247759B2 (es)
CA (1) CA2490378C (es)
DK (2) DK2262268T3 (es)
ES (2) ES2775070T3 (es)
HK (8) HK1148888A1 (es)
HU (2) HUE048316T2 (es)
MX (1) MXPA05000065A (es)
MY (9) MY152630A (es)
PT (2) PT2254339T (es)
SI (2) SI2254339T1 (es)
TW (1) TWI231711B (es)
WO (1) WO2004004310A2 (es)

Families Citing this family (189)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US11109114B2 (en) * 2001-04-18 2021-08-31 Grass Valley Canada Advertisement management method, system, and computer program product
US9123380B2 (en) 1998-12-18 2015-09-01 Gvbb Holdings S.A.R.L. Systems, methods, and computer program products for automated real-time execution of live inserts of repurposed stored content distribution, and multiple aspect ratio automated simulcast production
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
US8111754B1 (en) 2001-07-11 2012-02-07 Dolby Laboratories Licensing Corporation Interpolation of video compression frames
US7266150B2 (en) * 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
US20030112863A1 (en) 2001-07-12 2003-06-19 Demos Gary A. Method and system for improving compressed image chroma information
EP2271111B1 (en) * 2001-11-06 2016-08-10 Panasonic Intellectual Property Corporation of America Moving picture coding method and moving picture decoding method
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
CN1606883A (zh) * 2001-12-21 2005-04-13 皇家飞利浦电子股份有限公司 带块丢弃的图像编码
JP4015934B2 (ja) * 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
JP4130783B2 (ja) 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
US20030202590A1 (en) * 2002-04-30 2003-10-30 Qunshan Gu Video encoding using direct mode predicted frames
AU2015218514B2 (en) * 2002-06-28 2015-10-22 Dolby Laboratories Licensing Corporation Region sizing for macroblocks
US8406301B2 (en) 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
US7088776B2 (en) 2002-07-15 2006-08-08 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US8254461B2 (en) * 2002-07-24 2012-08-28 Apple Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
EP1422928A3 (en) * 2002-11-22 2009-03-11 Panasonic Corporation Motion compensated interpolation of digital video signals
JP2004179687A (ja) * 2002-11-22 2004-06-24 Toshiba Corp 動画像符号化/復号化方法及び装置
US8175154B2 (en) * 2003-06-03 2012-05-08 General Instrument Corporation Method for restructuring a group of pictures to provide for random access into the group of pictures
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
BRPI0418527A (pt) 2004-02-12 2007-05-15 Nokia Corp método para relatar uma qualidade de transmissão em fluxo, programa de computação com instruções operáveis, produto de programa de computação, sistema de transmissão em fluxo, cliente em um sistema de transmissão em fluxo, servidor em um sistema de transmissão em fluxo, e, protocolo para um sistema de transmissão em fluxo
JP2005318297A (ja) * 2004-04-28 2005-11-10 Toshiba Corp 動画像符号化・復号方法及び装置
AU2005202715B2 (en) * 2004-06-22 2008-04-24 Canon Kabushiki Kaisha A Method for Detecting and Selecting Good Quality Image Frames from Video
US7916173B2 (en) 2004-06-22 2011-03-29 Canon Kabushiki Kaisha Method for detecting and selecting good quality image frames from video
JP4366277B2 (ja) * 2004-09-21 2009-11-18 キヤノン株式会社 撮像装置及びその制御方法
JP4483501B2 (ja) 2004-09-22 2010-06-16 株式会社ニコン 静止画を動画再生するための前処理を行う画像処理装置、プログラム、および方法
JP4284265B2 (ja) * 2004-11-02 2009-06-24 株式会社東芝 動画像符号化装置、動画像符号化方法、動画像復号化装置および動画像復号化方法
TW200623897A (en) * 2004-12-02 2006-07-01 Seiko Epson Corp Image display method, image display device, and projector
KR100888962B1 (ko) * 2004-12-06 2009-03-17 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
DE102004061906A1 (de) * 2004-12-22 2006-07-13 Siemens Ag Bildencodierverfahren, sowie dazugehöriges Bilddecodierverfahren, Encodiervorrichtung und Decodiervorrichtung
US20060171569A1 (en) * 2005-01-10 2006-08-03 Madhukar Budagavi Video compression with blur compensation
US7496140B2 (en) * 2005-01-24 2009-02-24 Winningstad C Norman Wireless event authentication system
US8548055B2 (en) * 2005-03-10 2013-10-01 Qualcomm Incorporated Encoding of multimedia data
JP2006279573A (ja) * 2005-03-29 2006-10-12 Sanyo Electric Co Ltd 符号化装置と方法、ならびに復号装置と方法
US7751436B2 (en) * 2005-05-24 2010-07-06 Sony Corporation System and method for dynamically establishing PLL speed based on receive buffer data accumulation for streaming video
KR100716999B1 (ko) 2005-06-03 2007-05-10 삼성전자주식회사 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치
US8774272B1 (en) * 2005-07-15 2014-07-08 Geo Semiconductor Inc. Video quality by controlling inter frame encoding according to frame position in GOP
FR2889382A1 (fr) * 2005-07-29 2007-02-02 Canon Res Ct France Soc Par Ac Procede et dispositif de filtrage d'un signal numerique multidimensionnel et procedes et dispositifs de codage et decodage associes
US8054312B2 (en) * 2005-08-26 2011-11-08 Sony Corporation Material for motion capture costumes and props
US8014565B2 (en) * 2005-08-26 2011-09-06 Sony Corporation Labeling used in motion capture
US8780119B2 (en) * 2005-08-26 2014-07-15 Sony Corporation Reconstruction render farm used in motion capture
US7701487B2 (en) * 2005-08-26 2010-04-20 Sony Corporation Multicast control of motion capture sequences
US7606392B2 (en) * 2005-08-26 2009-10-20 Sony Corporation Capturing and processing facial motion data
US7720259B2 (en) * 2005-08-26 2010-05-18 Sony Corporation Motion capture using primary and secondary markers
WO2007030096A1 (en) * 2005-09-02 2007-03-15 Thomson Licensing Improved video effect recall technique
KR100750128B1 (ko) 2005-09-06 2007-08-21 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
JP4534935B2 (ja) * 2005-10-04 2010-09-01 株式会社日立製作所 トランスコーダ、記録装置及びトランスコード方法
CN100386797C (zh) * 2005-11-03 2008-05-07 西安交通大学 一种利于实现数字视频图像缩放插值的行场信号产生方法
BRPI0600823B1 (pt) * 2006-03-14 2018-02-14 Whirlpool S.A. Sistema de programação de equipamentos eletrodomésticos e método de programação de equipamentos eletrodomésticos programáveis em linha de montagem
JP4384130B2 (ja) * 2006-03-28 2009-12-16 株式会社東芝 動画像復号方法及び装置
US20080025390A1 (en) * 2006-07-25 2008-01-31 Fang Shi Adaptive video frame interpolation
JP4410225B2 (ja) * 2006-08-07 2010-02-03 株式会社東芝 動画像復号化装置および方法
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
KR20080022614A (ko) * 2006-09-07 2008-03-12 삼성전자주식회사 글로벌 영상 검출 방법과, 표시 장치 및 이의 구동 방법
KR100842557B1 (ko) * 2006-10-20 2008-07-01 삼성전자주식회사 동영상 처리 장치에서 메모리 액세스 방법
CN105430399A (zh) * 2006-11-08 2016-03-23 汤姆逊许可证公司 用于环内去伪影滤波的方法和设备
DE102006057983A1 (de) * 2006-12-08 2008-06-12 Siemens Ag Verfahren zur Vidoecodierung einer Folge digitalisierter Bilder
GB2445008B (en) * 2006-12-20 2008-12-31 Sony Comp Entertainment Europe Image compression and/or decompression
EP1944978A1 (en) * 2007-01-12 2008-07-16 Koninklijke Philips Electronics N.V. Method and system for encoding a video signal. encoded video signal, method and system for decoding a video signal
EP2120462B1 (en) * 2007-03-05 2018-12-19 NEC Corporation Weighted prediction information calculation method, device, program, dynamic image encoding method, device, and program
JP4853337B2 (ja) * 2007-03-09 2012-01-11 ソニー株式会社 信号変換装置
US7813564B2 (en) * 2007-03-30 2010-10-12 Eastman Kodak Company Method for controlling the amount of compressed data
JP5125294B2 (ja) 2007-07-31 2013-01-23 株式会社ニコン プログラム、画像処理装置、撮像装置および画像処理方法
WO2009095962A1 (ja) * 2008-01-29 2009-08-06 Panasonic Corporation 画像符号化装置、画像符号化方法、画像符号化集積回路および画像符号化プログラム
EP2308233A4 (en) * 2008-06-06 2012-10-24 Agency Science Tech & Res METHOD AND ARRANGEMENTS FOR ESTIMATING THE MOVEMENT IN SEVERAL INDIVIDUAL IMAGES
US10123050B2 (en) 2008-07-11 2018-11-06 Qualcomm Incorporated Filtering video data using a plurality of filters
WO2010017166A2 (en) 2008-08-04 2010-02-11 Dolby Laboratories Licensing Corporation Overlapped block disparity estimation and compensation architecture
JP5200788B2 (ja) * 2008-09-09 2013-06-05 富士通株式会社 映像信号処理装置、映像信号処理方法および映像信号処理プログラム
KR101441903B1 (ko) * 2008-10-16 2014-09-24 에스케이텔레콤 주식회사 참조 프레임 생성 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US8317325B2 (en) 2008-10-31 2012-11-27 Cross Match Technologies, Inc. Apparatus and method for two eye imaging for iris identification
JP4692614B2 (ja) * 2008-11-28 2011-06-01 ブラザー工業株式会社 印刷装置及びプログラム
JP4692615B2 (ja) * 2008-11-28 2011-06-01 ブラザー工業株式会社 印刷装置及びプログラム
JP2010130510A (ja) * 2008-11-28 2010-06-10 Brother Ind Ltd 印刷装置及びプログラム
KR102553787B1 (ko) 2008-12-19 2023-07-11 가부시키가이샤 한도오따이 에네루기 켄큐쇼 헤드 마운트 표시장치
US9143803B2 (en) * 2009-01-15 2015-09-22 Qualcomm Incorporated Filter prediction based on activity metrics in video coding
JP5686499B2 (ja) * 2009-01-22 2015-03-18 株式会社Nttドコモ 画像予測符号化装置、方法及びプログラム、画像予測復号装置、方法及びプログラム、並びに、符号化・復号システム及び方法
JP5372020B2 (ja) * 2009-01-22 2013-12-18 株式会社日立ハイテクノロジーズ 電子顕微鏡
EP2392142B1 (fr) * 2009-01-28 2018-10-24 Orange Procedes de codage et de decodage d'une sequence d'image mettant en oeuvre une compensation en mouvement, dispositifs de codage et de decodage, signal et programmes d'ordinateur correspondants
KR101599872B1 (ko) * 2009-02-25 2016-03-04 삼성전자주식회사 디지털 영상 처리 장치, 그 제어방법 및 이를 실행시키기 위한 프로그램을 저장한 기록매체
US8363722B2 (en) * 2009-03-31 2013-01-29 Sony Corporation Method and apparatus for hierarchical bi-directional intra-prediction in a video encoder
JP5343739B2 (ja) 2009-07-02 2013-11-13 ブラザー工業株式会社 出力装置及びプログラム
US8995526B2 (en) * 2009-07-09 2015-03-31 Qualcomm Incorporated Different weights for uni-directional prediction and bi-directional prediction in video coding
US9161057B2 (en) 2009-07-09 2015-10-13 Qualcomm Incorporated Non-zero rounding and prediction mode selection techniques in video encoding
JP2011024017A (ja) * 2009-07-16 2011-02-03 Sony Corp 動画抽出装置、プログラム、および動画抽出方法
US8633968B2 (en) * 2009-12-11 2014-01-21 Dish Network L.L.C. Three-dimensional recording and display system using near- and distal-focused images
US8885714B2 (en) * 2010-01-14 2014-11-11 Texas Instruments Incorporated Method and system for intracoding in video encoding
US9659353B2 (en) * 2010-03-01 2017-05-23 Stmicroelectronics, Inc. Object speed weighted motion compensated interpolation
JP5212437B2 (ja) * 2010-08-30 2013-06-19 株式会社Jvcケンウッド 画像データ送信装置、画像データ受信装置、画像データ伝送システム、画像データ送信方法および画像データ受信方法
US9319880B2 (en) 2010-09-15 2016-04-19 Intel Corporation Reformatting data to decrease bandwidth between a video encoder and a buffer
CN106131569B (zh) 2010-10-06 2018-09-07 株式会社Ntt都科摩 图像预测解码装置、图像预测解码方法
US9161056B2 (en) * 2010-11-24 2015-10-13 Texas Instruments Incorporated Method for low memory footprint compressed video decoding
CN102035997B (zh) * 2010-12-14 2012-08-08 杭州爱威芯科技有限公司 一种基于模式预测和方向排序的图像锐化方法
US9420294B2 (en) 2011-02-23 2016-08-16 Lg Electronics Inc. Intra-prediction method using filtering, and apparatus using the method
US8989261B2 (en) 2011-02-23 2015-03-24 Qualcomm Incorporated Multi-metric filtering
WO2012176406A1 (ja) * 2011-06-23 2012-12-27 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号装置、画像復号方法及び画像復号プログラム
WO2013006386A1 (en) 2011-07-01 2013-01-10 General Instrument Corporation Motion vector prediction design simplification
US8811756B2 (en) 2011-07-11 2014-08-19 International Business Machines Corporation Image compression
EP2750384B1 (en) 2011-09-21 2020-07-22 LG Electronics Inc. Intra prediction method and an apparatus for decoding an image
US20130083840A1 (en) * 2011-09-30 2013-04-04 Broadcom Corporation Advance encode processing based on raw video data
WO2013067440A1 (en) * 2011-11-04 2013-05-10 General Instrument Corporation Motion vector scaling for non-uniform motion vector grid
JP2013102297A (ja) * 2011-11-07 2013-05-23 Canon Inc 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム
JP5485969B2 (ja) * 2011-11-07 2014-05-07 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
CN105519108B (zh) * 2012-01-09 2019-11-29 华为技术有限公司 量化矩阵编码的加权预测方法和装置
JP6222514B2 (ja) * 2012-01-11 2017-11-01 パナソニックIpマネジメント株式会社 画像処理装置、撮像装置、およびコンピュータブログラム
US9531990B1 (en) 2012-01-21 2016-12-27 Google Inc. Compound prediction using multiple sources or prediction modes
US9172970B1 (en) 2012-05-29 2015-10-27 Google Inc. Inter frame candidate selection for a video encoder
CN107087205B (zh) * 2012-06-12 2020-04-14 Lg 电子株式会社 图像解码方法及使用其的装置
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9185414B1 (en) 2012-06-29 2015-11-10 Google Inc. Video encoding using variance
GB2518061B (en) * 2012-07-27 2019-11-27 Hewlett Packard Development Co Techniques for video compression
US9918017B2 (en) 2012-09-04 2018-03-13 Duelight Llc Image sensor apparatus and method for obtaining multiple exposures with zero interframe time
US9531961B2 (en) 2015-05-01 2016-12-27 Duelight Llc Systems and methods for generating a digital image using separate color and intensity data
US9179062B1 (en) 2014-11-06 2015-11-03 Duelight Llc Systems and methods for performing operations on pixel data
US9179085B1 (en) 2014-11-06 2015-11-03 Duelight Llc Image sensor apparatus and method for obtaining low-noise, high-speed captures of a photographic scene
US8976264B2 (en) 2012-09-04 2015-03-10 Duelight Llc Color balance in digital photography
US9154708B1 (en) 2014-11-06 2015-10-06 Duelight Llc Image sensor apparatus and method for simultaneously capturing flash and ambient illuminated images
US9167174B1 (en) 2014-11-05 2015-10-20 Duelight Llc Systems and methods for high-dynamic range images
US9137455B1 (en) * 2014-11-05 2015-09-15 Duelight Llc Image sensor apparatus and method for obtaining multiple exposures with zero interframe time
US9167169B1 (en) 2014-11-05 2015-10-20 Duelight Llc Image sensor apparatus and method for simultaneously capturing multiple images
US9160936B1 (en) 2014-11-07 2015-10-13 Duelight Llc Systems and methods for generating a high-dynamic range (HDR) pixel stream
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9351011B2 (en) * 2012-11-28 2016-05-24 Intel Corporation Video pipeline with direct linkage between decoding and post processing
US9536294B2 (en) 2012-12-03 2017-01-03 Home Box Office, Inc. Package essence analysis kit
US9538180B2 (en) 2012-12-17 2017-01-03 Qualcomm Incorporated Motion vector prediction in video coding
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
US9596481B2 (en) * 2013-01-30 2017-03-14 Ati Technologies Ulc Apparatus and method for video data processing
US9807322B2 (en) 2013-03-15 2017-10-31 Duelight Llc Systems and methods for a digital image sensor
US10558848B2 (en) 2017-10-05 2020-02-11 Duelight Llc System, method, and computer program for capturing an image with correct skin tone exposure
US9819849B1 (en) 2016-07-01 2017-11-14 Duelight Llc Systems and methods for capturing digital images
US9053366B2 (en) 2013-02-20 2015-06-09 Honeywell International Inc. System and method for detecting motion in compressed video
US10055866B2 (en) 2013-02-21 2018-08-21 Dolby Laboratories Licensing Corporation Systems and methods for appearance mapping for compositing overlay graphics
KR101993593B1 (ko) 2013-02-21 2019-06-28 돌비 레버러토리즈 라이쎈싱 코오포레이션 오버레이 그래픽스를 합성하기 위한 어피어런스 매핑을 위한 시스템들 및 방법들
CN111193930B (zh) * 2013-12-16 2021-11-30 浙江大学 一种前向双假设编码图像块的编解码方法和装置
US9609343B1 (en) 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
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
US9723377B2 (en) * 2014-04-28 2017-08-01 Comcast Cable Communications, Llc Video management
WO2015195463A1 (en) * 2014-06-18 2015-12-23 Arris Enterprises, Inc. Trick-play streams for adaptive bitrate streaming
US9924191B2 (en) * 2014-06-26 2018-03-20 Qualcomm Incorporated Filters for advanced residual prediction in video coding
US10924688B2 (en) 2014-11-06 2021-02-16 Duelight Llc Image sensor apparatus and method for obtaining low-noise, high-speed captures of a photographic scene
US11463630B2 (en) 2014-11-07 2022-10-04 Duelight Llc Systems and methods for generating a high-dynamic range (HDR) pixel stream
AU2015395514B2 (en) * 2015-05-21 2019-10-10 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
CN108028926B (zh) * 2015-08-20 2021-08-24 日本放送协会 图像编码装置、图像解码装置
WO2017035831A1 (en) * 2015-09-06 2017-03-09 Mediatek Inc. Adaptive inter prediction
MX2018003688A (es) * 2015-09-25 2018-08-01 Huawei Tech Co Ltd Aparato y metodo para compensacion de movimiento de video.
AU2015409726B2 (en) * 2015-09-25 2019-12-19 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
RU2696316C1 (ru) 2015-09-25 2019-08-01 Хуавэй Текнолоджиз Ко., Лтд. Адаптивный фильтр увеличения резкости для кодирования с предсказанием
RU2696311C1 (ru) 2015-09-25 2019-08-01 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ для компенсации движения видео с выбираемым интерполяционным фильтром
WO2017052406A1 (en) * 2015-09-25 2017-03-30 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
US10313690B2 (en) * 2015-10-08 2019-06-04 Sharp Kabushiki Kaisha Systems and methods for reducing artifacts in temporal scalable layers of video
US10805627B2 (en) 2015-10-15 2020-10-13 Cisco Technology, Inc. Low-complexity method for generating synthetic reference frames in video coding
US11109061B2 (en) * 2016-02-05 2021-08-31 Mediatek Inc. Method and apparatus of motion compensation based on bi-directional optical flow techniques for video coding
WO2017195267A1 (ja) * 2016-05-10 2017-11-16 オリンパス株式会社 画像処理装置、画像処理方法及び画像処理プログラム
US10136155B2 (en) 2016-07-27 2018-11-20 Cisco Technology, Inc. Motion compensation using a patchwork motion field
CN106358041B (zh) 2016-08-30 2019-05-10 北京奇艺世纪科技有限公司 一种帧间预测编码方法及装置
CN114449163A (zh) 2016-09-01 2022-05-06 迪尤莱特公司 基于焦点目标信息调整焦点的装置和方法
US10951912B2 (en) 2016-10-05 2021-03-16 Qualcomm Incorporated Systems and methods for adaptive selection of weights for video coding
US10182248B2 (en) * 2016-11-21 2019-01-15 Cisco Technology, Inc. Keyframe mitigation for video streams with multiple receivers
TWI670964B (zh) * 2016-12-13 2019-09-01 日商夏普股份有限公司 用於減少於視訊之時間可適性層之假影之系統及方法
CN117061736A (zh) 2017-01-13 2023-11-14 谷歌有限责任公司 视频代码化的复合预测
US10126877B1 (en) * 2017-02-01 2018-11-13 Sentons Inc. Update of reference data for touch input detection
US20180289510A1 (en) * 2017-04-07 2018-10-11 Worcester Polytechnic Institute Gyroscopically controlled balance prosthetic
US20180332298A1 (en) * 2017-05-10 2018-11-15 Futurewei Technologies, Inc. Bidirectional Prediction In Video Compression
US10893267B2 (en) * 2017-05-16 2021-01-12 Lg Electronics Inc. Method for processing image on basis of intra-prediction mode and apparatus therefor
US10218992B2 (en) * 2017-07-24 2019-02-26 Cisco Technology, Inc. Encoding, transmission and decoding of combined high motion and high fidelity content
US10412410B2 (en) * 2017-08-14 2019-09-10 Google Llc Compound motion-compensated prediction
EP3669542B1 (en) * 2017-08-15 2023-10-11 Dolby Laboratories Licensing Corporation Bit-depth efficient image processing
US10412383B2 (en) * 2017-08-15 2019-09-10 Google Llc Compressing groups of video frames using reversed ordering
US10284869B2 (en) 2017-09-28 2019-05-07 Google Llc Constrained motion field estimation for hardware efficiency
US10880573B2 (en) 2017-08-15 2020-12-29 Google Llc Dynamic motion vector referencing for video coding
US10555004B1 (en) * 2017-09-22 2020-02-04 Pixelworks, Inc. Low frequency compensated encoding
CN110800297B (zh) * 2018-07-27 2022-10-04 深圳市大疆创新科技有限公司 视频编码方法及装置、计算机可读存储介质
US11394989B2 (en) * 2018-12-10 2022-07-19 Tencent America LLC Method and apparatus for video coding
US11044480B2 (en) * 2019-01-24 2021-06-22 Google Llc More accurate 2-tap interpolation filters for video compression
EP3700210A1 (en) 2019-02-21 2020-08-26 Ateme Method and apparatus for image encoding
JP6797247B2 (ja) * 2019-07-10 2020-12-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオ動き補償用の装置および方法
TW202147850A (zh) 2020-05-01 2021-12-16 美商Op解決方案公司 用於組合無損和有損寫碼之方法和系統
JP2023527966A (ja) 2020-05-26 2023-07-03 ドルビー ラボラトリーズ ライセンシング コーポレイション 可変フレームレートビデオのためのピクチャメタデータ
CN113808510B (zh) * 2020-06-15 2024-04-09 明基智能科技(上海)有限公司 影像调整方法
CN111885336B (zh) * 2020-06-19 2022-03-29 成都东方盛行电子有限责任公司 一种帧模式下的非编帧率转换方法
WO2022047129A1 (en) * 2020-08-28 2022-03-03 Op Solutions, Llc Methods and systems for combined lossless and lossy coding
CN113114934B (zh) * 2021-03-31 2022-08-05 太原理工大学 尿红细胞多焦距视频采集方法与系统
US11936992B2 (en) * 2022-01-18 2024-03-19 Apple Inc. Multi-mode demosaicing for raw image data
KR102405045B1 (ko) * 2022-02-22 2022-06-07 주식회사 전자사탕사 쇼핑몰 형태의 비대면 영상 제작 서비스를 제공하는 플랫폼을 위한 서버 및 그 동작 방법
CN115184016A (zh) * 2022-09-06 2022-10-14 江苏东控自动化科技有限公司 一种升降机轴承故障检测方法

Family Cites Families (190)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3408061A1 (de) * 1984-03-05 1985-09-05 ANT Nachrichtentechnik GmbH, 7150 Backnang Verfahren zur bewegungsadaptiven interpolation von fernsehbildsequenzen und anwendungen dieses verfahrens
US4642678A (en) * 1984-09-10 1987-02-10 Eastman Kodak Company Signal processing method and apparatus for producing interpolated chrominance values in a sampled color image signal
US4654696A (en) * 1985-04-09 1987-03-31 Grass Valley Group, Inc. Video signal format
US4903317A (en) * 1986-06-24 1990-02-20 Kabushiki Kaisha Toshiba Image processing apparatus
JPH01140883A (ja) 1987-11-27 1989-06-02 Dainippon Printing Co Ltd データ符号化方法
JPH0537915Y2 (es) 1988-03-25 1993-09-24
JP2530217B2 (ja) 1989-01-20 1996-09-04 日本ビクター株式会社 フレ―ム間予測符号化装置及び復号装置
US4985768A (en) 1989-01-20 1991-01-15 Victor Company Of Japan, Ltd. Inter-frame predictive encoding system with encoded and transmitted prediction error
JPH07109990B2 (ja) 1989-04-27 1995-11-22 日本ビクター株式会社 適応型フレーム間予測符号化方法及び復号方法
US5227972A (en) * 1989-09-18 1993-07-13 Halliburton Logging Services, Inc. Matched filter data smoothing system
EP0713340B1 (en) 1989-10-14 2001-08-22 Sony Corporation Video signal coding/decoding method and apparatus
GB9102220D0 (en) 1991-02-01 1991-03-20 British Telecomm Method and apparatus for decoding video signals
US5465119A (en) * 1991-02-22 1995-11-07 Demografx Pixel interlacing apparatus and method
CA2060407C (en) 1991-03-22 1998-10-27 Jack M. Sacks Minimum difference processor
US5151784A (en) 1991-04-30 1992-09-29 At&T Bell Laboratories Multiple frame motion estimation
US5317397A (en) 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
JPH05236456A (ja) 1992-02-18 1993-09-10 Toshiba Corp 動画像符号化方法および装置
US5986713A (en) 1991-05-31 1999-11-16 Kabushiki Kaisha Toshiba Video coding apparatus using inter-field prediction
US5467136A (en) * 1991-05-31 1995-11-14 Kabushiki Kaisha Toshiba Video decoder for determining a motion vector from a scaled vector and a difference vector
JP2699703B2 (ja) 1991-07-31 1998-01-19 松下電器産業株式会社 動き補償予測方法とそれを用いた画像信号符号化方法
JP2507204B2 (ja) 1991-08-30 1996-06-12 松下電器産業株式会社 映像信号符号化装置
US5198901A (en) 1991-09-23 1993-03-30 Matsushita Electric Corporation Of America Derivation and use of motion vectors in a differential pulse code modulation system
JPH0595540A (ja) * 1991-09-30 1993-04-16 Sony Corp 動画像符号化装置
JP3263960B2 (ja) * 1991-10-22 2002-03-11 ソニー株式会社 動きベクトル符号器および復号器
US5414469A (en) 1991-10-31 1995-05-09 International Business Machines Corporation Motion video compression system with multiresolution features
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
KR950001563B1 (ko) 1991-12-28 1995-02-25 주식회사금성사 3차원 가중 메디안 필터를 이용한 tv영상신호의 주사선수 증가 방법 및 장치
GB9204115D0 (en) * 1992-02-26 1992-04-08 British Broadcasting Corp Video image processing
US5253058A (en) 1992-04-01 1993-10-12 Bell Communications Research, Inc. Efficient coding scheme for multilevel video transmission
JP3245977B2 (ja) * 1992-06-30 2002-01-15 ソニー株式会社 ディジタル画像信号の伝送装置
US5270813A (en) 1992-07-02 1993-12-14 At&T Bell Laboratories Spatially scalable video coding facilitating the derivation of variable-resolution images
US5294974A (en) * 1992-07-24 1994-03-15 Matsushita Electric Corporation Of America High-definition video encoding system having color-sensitive quantization
US5301019A (en) * 1992-09-17 1994-04-05 Zenith Electronics Corp. Data compression system having perceptually weighted motion vectors
JP3545000B2 (ja) * 1992-11-02 2004-07-21 ソニー株式会社 画像信号符号化装置、画像信号復号化装置
JPH06165150A (ja) 1992-11-18 1994-06-10 Matsushita Electric Ind Co Ltd 動画像符号化/復号化装置
US5717816A (en) * 1993-01-13 1998-02-10 Hitachi America Ltd. Method and apparatus for the selection of data for use in VTR trick playback operation in a system using intra-coded video frames
JP2962083B2 (ja) * 1993-01-22 1999-10-12 松下電器産業株式会社 解像度変換方法、解像度変換装置、画像符号化装置、画像復号化装置
US5426463A (en) * 1993-02-22 1995-06-20 Rca Thomson Licensing Corporation Apparatus for controlling quantizing in a video signal compressor
US5815646A (en) 1993-04-13 1998-09-29 C-Cube Microsystems Decompression processor for video applications
JPH06350995A (ja) 1993-06-10 1994-12-22 Casio Comput Co Ltd 動画像処理方法
US5877754A (en) * 1993-06-16 1999-03-02 Intel Corporation Process, apparatus, and system for color conversion of image signals
US5408270A (en) * 1993-06-24 1995-04-18 Massachusetts Institute Of Technology Advanced television system
US5387940A (en) 1993-07-07 1995-02-07 Rca Thomson Licensing Corporation Method and apparatus for providing scaleable compressed video signal
CA2126467A1 (en) 1993-07-13 1995-01-14 Barin Geoffry Haskell Scalable encoding and decoding of high-resolution progressive video
WO1995004433A1 (en) 1993-07-30 1995-02-09 British Telecommunications Public Limited Company Processing image data
DE4326390C2 (de) 1993-08-06 1999-05-12 Philips Patentverwaltung Verfahren zur Störsignalbefreiung von Videosignalen
CA2127151A1 (en) 1993-09-21 1995-03-22 Atul Puri Spatially scalable video encoding and decoding
US5438374A (en) 1993-12-10 1995-08-01 At&T Corp. System and method for filtering video signals
JPH07203426A (ja) 1993-12-28 1995-08-04 Toshiba Corp 階層符号化復号化装置
GB2286740B (en) * 1994-02-21 1998-04-01 Sony Uk Ltd Coding and decoding of video signals
US5442407A (en) 1994-03-22 1995-08-15 Matsushita Electric Corporation Of America Video signal noise reduction system using time-varying filter coefficients
JPH07336192A (ja) 1994-06-07 1995-12-22 Hitachi Micro Comput Eng Ltd 中央値演算方法および演算回路
EP1701552B1 (en) 1994-06-08 2008-07-30 Matsushita Electric Industrial Co., Ltd. Image conversion apparatus
US5796438A (en) 1994-07-05 1998-08-18 Sony Corporation Methods and apparatus for interpolating picture information
JPH0830781A (ja) 1994-07-14 1996-02-02 Mitsubishi Electric Corp 空間フィルタ
KR0126871B1 (ko) 1994-07-30 1997-12-29 심상철 양방향 이동벡터 추정을 위한 고속 블럭정합 방식
JP2970417B2 (ja) * 1994-08-22 1999-11-02 日本電気株式会社 動画像符号化方式
KR0151210B1 (ko) * 1994-09-23 1998-10-15 구자홍 엠펙2를 수용하는 반화소 움직임 보상조절장치
JPH08186714A (ja) 1994-12-27 1996-07-16 Texas Instr Inc <Ti> 画像データのノイズ除去方法及びその装置
JP3258840B2 (ja) 1994-12-27 2002-02-18 シャープ株式会社 動画像符号化装置および領域抽出装置
US5661525A (en) 1995-03-27 1997-08-26 Lucent Technologies Inc. Method and apparatus for converting an interlaced video frame sequence into a progressively-scanned sequence
GB2301970B (en) * 1995-06-06 2000-03-01 Sony Uk Ltd Motion compensated video processing
GB2301971B (en) 1995-06-06 1999-10-06 Sony Uk Ltd Video compression
US5828788A (en) 1995-06-29 1998-10-27 Thomson Multimedia, S.A. System for processing data in variable segments and with variable data resolution
US6023301A (en) 1995-07-14 2000-02-08 Sharp Kabushiki Kaisha Video coding device and video decoding device
US5748903A (en) * 1995-07-21 1998-05-05 Intel Corporation Encoding images using decode rate control
US5745183A (en) 1995-08-25 1998-04-28 Thomson Consumer Electronics, Inc. Image motion estimation system which derives candidate block from interpolated motion vectors
US5737032A (en) * 1995-09-05 1998-04-07 Videotek, Inc. Serial digital video processing with concurrent adjustment in RGB and luminance/color difference
JPH0984024A (ja) 1995-09-20 1997-03-28 Matsushita Electric Ind Co Ltd 動画像信号の符号化装置
US5835498A (en) * 1995-10-05 1998-11-10 Silicon Image, Inc. System and method for sending multiple data signals over a serial link
JP3788823B2 (ja) 1995-10-27 2006-06-21 株式会社東芝 動画像符号化装置および動画像復号化装置
US6026183A (en) * 1995-10-27 2000-02-15 Texas Instruments Incorporated Content-based video compression
US5896176A (en) * 1995-10-27 1999-04-20 Texas Instruments Incorporated Content-based video compression
KR100209793B1 (ko) * 1995-10-28 1999-07-15 전주범 특징점 기반 움직임 추정을 이용하여 비디오 신호를 부호화 및 복호화하는 장치
JP3347954B2 (ja) 1995-11-02 2002-11-20 三菱電機株式会社 動画像符号化装置及び動画像復号化装置
JPH09163376A (ja) 1995-12-05 1997-06-20 Nippon Telegr & Teleph Corp <Ntt> 動画像のフレーム間符号化・復号方法および装置
JPH09182083A (ja) * 1995-12-27 1997-07-11 Matsushita Electric Ind Co Ltd ビデオ画像符号化方法及び復号化方法とその装置
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5852565A (en) * 1996-01-30 1998-12-22 Demografx Temporal and resolution layering in advanced television
US5661524A (en) * 1996-03-08 1997-08-26 International Business Machines Corporation Method and apparatus for motion estimation using trajectory in a digital video encoder
US5784527A (en) 1996-03-22 1998-07-21 Cirrus Logic, Inc. System and method for error handling during playback of an audio/video data stream
US5974159A (en) 1996-03-29 1999-10-26 Sarnoff Corporation Method and apparatus for assessing the visibility of differences between two image sequences
KR100495716B1 (ko) * 1996-04-12 2005-11-25 소니 가부시끼 가이샤 화상인코딩장치와방법및화상인코딩프로그램이기록된매체
DE69713549T2 (de) * 1996-04-25 2003-01-16 Matsushita Electric Ind Co Ltd Gerät und Verfahren zur Bewegtbildkodierung
US6445738B1 (en) * 1996-04-25 2002-09-03 Opentv, Inc. System and method for creating trick play video streams from a compressed normal play video bitstream
KR100204478B1 (ko) 1996-05-09 1999-06-15 배순훈 전역 움직임에 의한 빈 공간 보상 방법 및 그 장치
US5825680A (en) 1996-06-21 1998-10-20 Digital Equipment Corporation Method and apparatus for performing fast division
JPH10154781A (ja) 1996-07-19 1998-06-09 Denso Corp 沸騰冷却装置
US6069914A (en) * 1996-09-19 2000-05-30 Nec Research Institute, Inc. Watermarking of image data using MPEG/JPEG coefficients
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6341144B1 (en) * 1996-09-20 2002-01-22 At&T Corp. Video coder providing implicit coefficient prediction and scan adaptation for image coding and intra coding of video
US5909224A (en) * 1996-10-18 1999-06-01 Samsung Electronics Company, Ltd. Apparatus and method for managing a frame buffer for MPEG video decoding in a PC environment
US6043846A (en) * 1996-11-15 2000-03-28 Matsushita Electric Industrial Co., Ltd. Prediction apparatus and method for improving coding efficiency in scalable video coding
US5920353A (en) * 1996-12-03 1999-07-06 St Microelectronics, Inc. Multi-standard decompression and/or compression device
US6005626A (en) 1997-01-09 1999-12-21 Sun Microsystems, Inc. Digital video signal encoder and encoding method
US5991447A (en) 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
CN1297147C (zh) * 1997-03-07 2007-01-24 通用仪器公司 对交错数字视频的双向预测的视频目标平面的预测和编码
US5974184A (en) * 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6175592B1 (en) 1997-03-12 2001-01-16 Matsushita Electric Industrial Co., Ltd. Frequency domain filtering for down conversion of a DCT encoded picture
US5903673A (en) 1997-03-14 1999-05-11 Microsoft Corporation Digital video signal encoder and encoding method
US6115420A (en) 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
US6118817A (en) 1997-03-14 2000-09-12 Microsoft Corporation Digital video signal encoder and encoding method having adjustable quantization
US6404813B1 (en) 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US6633611B2 (en) * 1997-04-24 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for region-based moving image encoding and decoding
EP1237376B1 (en) * 1997-06-09 2015-08-05 Hitachi, Ltd. Image information recording medium
US6275533B1 (en) * 1997-06-20 2001-08-14 Matsushita Electric Industrial Co., Ltd. Image processing method, image processing apparatus, and data recording medium
US6236727B1 (en) * 1997-06-24 2001-05-22 International Business Machines Corporation Apparatus, method and computer program product for protecting copyright data within a computer system
JP3191922B2 (ja) * 1997-07-10 2001-07-23 松下電器産業株式会社 画像復号化方法
KR100226722B1 (ko) 1997-07-30 1999-10-15 구자홍 동영상 움직임 벡터 추정 방법
US5987179A (en) * 1997-09-05 1999-11-16 Eastman Kodak Company Method and apparatus for encoding high-fidelity still images in MPEG bitstreams
US6807231B1 (en) 1997-09-12 2004-10-19 8×8, Inc. Multi-hypothesis motion-compensated video image predictor
US6088047A (en) * 1997-12-30 2000-07-11 Sony Corporation Motion compensated digital video decoding with buffered picture storage memory map
US5987180A (en) * 1997-09-26 1999-11-16 Sarnoff Corporation Multiple component compression encoder motion search method and apparatus
EP0908795B1 (en) * 1997-10-07 2003-04-09 Canon Kabushiki Kaisha Image-forming method
US6014182A (en) 1997-10-10 2000-01-11 Faroudja Laboratories, Inc. Film source video detection
GB9721662D0 (en) 1997-10-14 1997-12-10 Philips Electronics Nv Encoded video signal formatting
KR100235988B1 (ko) * 1997-11-12 1999-12-15 구자홍 디티브이 영상 포맷 변환장치 및 그 방법
US5956026A (en) * 1997-12-19 1999-09-21 Sharp Laboratories Of America, Inc. Method for hierarchical summarization and browsing of digital video
US7305040B1 (en) 1998-01-19 2007-12-04 Sony Corporation Edit system, edit control device, and edit control method
WO1999038333A1 (en) * 1998-01-26 1999-07-29 Sgs-Thomson Microelectronics Asia Pacific (Pte) Ltd. One-pass variable bit rate moving pictures encoding
US6172768B1 (en) 1998-02-05 2001-01-09 Canon Kabushiki Kaisha Halftoning with changeable error diffusion weights
US6489956B1 (en) 1998-02-17 2002-12-03 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for implementation of display effects
US6058143A (en) 1998-02-20 2000-05-02 Thomson Licensing S.A. Motion vector extrapolation for transcoding video sequences
JPH11239351A (ja) 1998-02-23 1999-08-31 Nippon Telegr & Teleph Corp <Ntt> 動画像符号化方法、復号方法、符号化器、復号器、動画像符号化プログラムおよび動画像復号プログラムを記録した記録媒体
US6723290B1 (en) 1998-03-07 2004-04-20 Levine Robert A Container for holding biologic fluid for analysis
US6020934A (en) * 1998-03-23 2000-02-01 International Business Machines Corporation Motion estimation architecture for area and power reduction
US6434196B1 (en) * 1998-04-03 2002-08-13 Sarnoff Corporation Method and apparatus for encoding video information
JP4123567B2 (ja) * 1998-04-30 2008-07-23 ソニー株式会社 画像信号処理装置及び方法
US6215824B1 (en) 1998-05-01 2001-04-10 Boom Corporation Transcoding method for digital video networking
US6332194B1 (en) * 1998-06-05 2001-12-18 Signafy, Inc. Method for data preparation and watermark insertion
US6301304B1 (en) * 1998-06-17 2001-10-09 Lsi Logic Corporation Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
KR100275933B1 (ko) * 1998-07-14 2000-12-15 구자홍 엠펙디코더의 역이산여현변환장치
JP4026238B2 (ja) * 1998-07-23 2007-12-26 ソニー株式会社 画像復号装置及び画像復号方法
US6252906B1 (en) 1998-07-31 2001-06-26 Thomson Licensing S.A. Decimation of a high definition video signal
DE59901416D1 (de) * 1998-08-18 2002-06-13 Siemens Ag Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes mit anwendung eines gesamtbewegungsvektors
JP3748717B2 (ja) * 1998-08-31 2006-02-22 シャープ株式会社 動画像符号化装置
JP3576402B2 (ja) * 1998-10-23 2004-10-13 三菱電機株式会社 画像復号化装置
US6499060B1 (en) * 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US6658056B1 (en) 1999-03-30 2003-12-02 Sony Corporation Digital video decoding, buffering and frame-rate converting method and apparatus
JP2002543714A (ja) * 1999-04-30 2002-12-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Bフレーム・エンコーディング・モードを有するビデオ・エンコーディング方法
US6519005B2 (en) * 1999-04-30 2003-02-11 Koninklijke Philips Electronics N.V. Method of concurrent multiple-mode motion estimation for digital video
EP1061750A3 (en) * 1999-06-18 2010-05-05 THOMSON multimedia Picture compression process, especially of the MPEG2 type
DE60024097D1 (de) 1999-07-30 2005-12-22 Indinell S A Verfahren und vorrichtung zur verarbeitung von digitalen bildern und audiodaten
US6735249B1 (en) * 1999-08-11 2004-05-11 Nokia Corporation Apparatus, and associated method, for forming a compressed motion vector field utilizing predictive motion coding
EP1081958B1 (en) * 1999-08-31 2006-02-01 Lucent Technologies Inc. Method and apparatus for macroblock DC and AC coefficient prediction for video coding
AU5744799A (en) 1999-09-02 2001-04-10 Array Ab Direct printing device and method
US6418405B1 (en) 1999-09-30 2002-07-09 Motorola, Inc. Method and apparatus for dynamic segmentation of a low bit rate digital voice message
JP2001112000A (ja) * 1999-10-07 2001-04-20 Matsushita Electric Ind Co Ltd 映像信号符号化装置
KR20010101329A (ko) 1999-10-29 2001-11-14 요트.게.아. 롤페즈 비디오 인코딩 방법
US6442203B1 (en) 1999-11-05 2002-08-27 Demografx System and method for motion compensation and frame rate conversion
GB9928022D0 (en) 1999-11-26 2000-01-26 British Telecomm Video coding and decording
JP2003516053A (ja) 1999-11-29 2003-05-07 ソニー株式会社 映像音声信号処理方法及び映像音声信号処理装置
CN1342370A (zh) * 1999-12-29 2002-03-27 皇家菲利浦电子有限公司 用于图象编码和解码的设备
US6810131B2 (en) * 2000-01-05 2004-10-26 Canon Kabushiki Kaisha Information processing method and apparatus
US7106322B2 (en) 2000-01-11 2006-09-12 Sun Microsystems, Inc. Dynamically adjusting a sample-to-pixel filter to compensate for the effects of negative lobes
CN1315225A (zh) * 2000-03-27 2001-10-03 北京化工大学 烷氧基化反应中镁铝复合金属氧化物催化剂及制备方法
AU2001251386A1 (en) 2000-04-07 2001-10-23 Demografx Enhanced temporal and resolution layering in advanced television
KR100708091B1 (ko) 2000-06-13 2007-04-16 삼성전자주식회사 양방향 움직임 벡터를 이용한 프레임 레이트 변환 장치 및그 방법
US6629104B1 (en) 2000-11-22 2003-09-30 Eastman Kodak Company Method for adding personalized metadata to a collection of digital images
CN101505429B (zh) 2000-12-06 2011-06-08 真实网络公司 对视频数据进行内编码的方法和设备
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
WO2002056589A1 (en) * 2001-01-16 2002-07-18 Koninklijke Philips Electronics N.V. Reducing halo-like effects in motion-compensated interpolation
CN1179063C (zh) 2001-02-28 2004-12-08 陈晴祺 一种具有制震效果的合金
US8374237B2 (en) * 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
JP2004532540A (ja) 2001-03-05 2004-10-21 インタービデオインコーポレイテッド 誤り耐性のある符号化のためのシステム及び方法
JP3962553B2 (ja) 2001-03-30 2007-08-22 フジノン株式会社 電子内視鏡装置
US6925126B2 (en) 2001-04-18 2005-08-02 Koninklijke Philips Electronics N.V. Dynamic complexity prediction and regulation of MPEG2 decoding in a media processor
US6823087B1 (en) 2001-05-15 2004-11-23 Advanced Micro Devices, Inc. Parallel edge filters in video codec
KR20030027963A (ko) * 2001-06-21 2003-04-07 코닌클리케 필립스 일렉트로닉스 엔.브이. 픽셀들을 처리하기 위한 이미지 처리 유닛 및 방법과이러한 이미지 처리 유닛을 포함하는 이미지 디스플레이장치
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
US6816552B2 (en) * 2001-07-11 2004-11-09 Dolby Laboratories Licensing Corporation Interpolation of video compression frames
US8111754B1 (en) 2001-07-11 2012-02-07 Dolby Laboratories Licensing Corporation Interpolation of video compression frames
US20030112873A1 (en) * 2001-07-11 2003-06-19 Demos Gary A. Motion estimation for video compression systems
US20030112863A1 (en) * 2001-07-12 2003-06-19 Demos Gary A. Method and system for improving compressed image chroma information
US6950469B2 (en) 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
TW580674B (en) 2001-11-06 2004-03-21 Pioneer Corp Display panel driving apparatus having a structure capable of reducing power loss
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US6909748B2 (en) 2001-12-20 2005-06-21 Sorenson Media, Inc. Method and system for image compression using block size heuristics
US7681013B1 (en) 2001-12-31 2010-03-16 Apple Inc. Method for variable length decoding using multiple configurable look-up tables
JP2004007563A (ja) * 2002-04-19 2004-01-08 Matsushita Electric Ind Co Ltd 動画像符号化方法および動画像復号化方法
EP3525466B1 (en) * 2002-04-19 2022-02-09 Panasonic Intellectual Property Corporation of America Motion vector determining method and apparatus
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
US7154952B2 (en) * 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
CN1220065C (zh) 2002-10-23 2005-09-21 中国科学院电子学研究所 振动式微型电场传感器
US6931061B2 (en) 2002-11-13 2005-08-16 Sony Corporation Method of real time MPEG-4 texture decoding for a multiprocessor environment
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
DE10334842B4 (de) 2003-07-30 2005-06-02 Infineon Technologies Ag Gewichtungsschaltung für einen Mehrträger-Signalempfänger
US7295612B2 (en) * 2003-09-09 2007-11-13 Apple Inc. Determining the number of unidirectional and bidirectional motion compensated frames to be encoded for a video sequence and detecting scene cuts in the video sequence
JP4127244B2 (ja) 2004-05-27 2008-07-30 株式会社Nhvコーポレーション 電子線照射装置用の電子源
GB2494871B (en) 2011-09-20 2018-04-11 Qualcomm Technologies Int Ltd Re-transmission of timely data in a Bluetooth communication system

Also Published As

Publication number Publication date
TW200420131A (en) 2004-10-01
EP2262268A2 (en) 2010-12-15
US20210021864A1 (en) 2021-01-21
CA2490378C (en) 2010-06-08
HK1159918A1 (en) 2012-08-03
EP2262268A3 (en) 2011-06-15
EP2458863A2 (en) 2012-05-30
CN102256136B (zh) 2017-06-27
US8290043B2 (en) 2012-10-16
US20120033734A1 (en) 2012-02-09
US20130279584A1 (en) 2013-10-24
US8249158B2 (en) 2012-08-21
US20170111656A1 (en) 2017-04-20
US20130077692A1 (en) 2013-03-28
MY162999A (en) 2017-07-31
US10080035B2 (en) 2018-09-18
US20140010301A1 (en) 2014-01-09
EP1530879A4 (en) 2009-03-18
JP2006513592A (ja) 2006-04-20
US20130077688A1 (en) 2013-03-28
US20160301949A1 (en) 2016-10-13
US20100014587A1 (en) 2010-01-21
MY182370A (en) 2021-01-21
US20110103479A1 (en) 2011-05-05
US20160301948A1 (en) 2016-10-13
US8559513B2 (en) 2013-10-15
US20120307900A1 (en) 2012-12-06
US9571855B2 (en) 2017-02-14
PT2262268T (pt) 2020-04-01
US20110096837A1 (en) 2011-04-28
US8873632B2 (en) 2014-10-28
US8050323B2 (en) 2011-11-01
PT2254339T (pt) 2020-04-01
US20160007040A1 (en) 2016-01-07
US20110103477A1 (en) 2011-05-05
US8699572B2 (en) 2014-04-15
US20130070858A1 (en) 2013-03-21
US20190158874A1 (en) 2019-05-23
US8149912B2 (en) 2012-04-03
EP2254339A2 (en) 2010-11-24
EP2254339A3 (en) 2011-06-15
US8213507B2 (en) 2012-07-03
CN102256136A (zh) 2011-11-23
US8139639B2 (en) 2012-03-20
US8767829B2 (en) 2014-07-01
US20150092853A1 (en) 2015-04-02
US9473791B2 (en) 2016-10-18
US20100118957A1 (en) 2010-05-13
CN102176753B (zh) 2013-02-13
CN101969569A (zh) 2011-02-09
EP2254339B1 (en) 2019-12-04
MY170517A (en) 2019-08-08
EP2782345A1 (en) 2014-09-24
US8995528B2 (en) 2015-03-31
HK1157548A1 (en) 2012-06-29
US20110103476A1 (en) 2011-05-05
US20150092852A1 (en) 2015-04-02
US9386321B2 (en) 2016-07-05
WO2004004310A3 (en) 2005-03-17
US8139641B2 (en) 2012-03-20
MY152630A (en) 2014-10-31
US8477851B2 (en) 2013-07-02
US20130301729A1 (en) 2013-11-14
EP2458864A2 (en) 2012-05-30
CN101969569B (zh) 2012-10-24
MY154424A (en) 2015-06-15
US20040005004A1 (en) 2004-01-08
US10869057B2 (en) 2020-12-15
AU2003247759A1 (en) 2004-01-19
US8139640B2 (en) 2012-03-20
EP2458864A3 (en) 2014-08-06
US20130223530A1 (en) 2013-08-29
US9788012B2 (en) 2017-10-10
SI2254339T1 (sl) 2020-07-31
US8279929B2 (en) 2012-10-02
AU2003247759B2 (en) 2008-02-07
US20130077693A1 (en) 2013-03-28
US20130223527A1 (en) 2013-08-29
HUE048314T2 (hu) 2020-07-28
HK1159915A1 (en) 2012-08-03
EP2262268B1 (en) 2019-12-04
US20070268967A1 (en) 2007-11-22
US8401078B2 (en) 2013-03-19
US20130070851A1 (en) 2013-03-21
DK2254339T3 (da) 2020-03-09
US20150271520A1 (en) 2015-09-24
CN102256135B (zh) 2014-08-20
US7894524B2 (en) 2011-02-22
AU2010212510A1 (en) 2010-09-16
HK1157549A1 (en) 2012-06-29
US20120044995A1 (en) 2012-02-23
US9078002B2 (en) 2015-07-07
CN102256135A (zh) 2011-11-23
HK1163989A1 (en) 2012-09-14
US8737472B2 (en) 2014-05-27
HK1159919A1 (zh) 2012-08-03
US20120051428A1 (en) 2012-03-01
ES2780055T3 (es) 2020-08-21
EP2458863A3 (en) 2014-08-13
US8488675B2 (en) 2013-07-16
CN102256122B (zh) 2016-02-10
AU2008200457B2 (en) 2010-06-03
CA2490378A1 (en) 2004-01-08
US8503529B2 (en) 2013-08-06
MY184819A (en) 2021-04-23
MY154525A (en) 2015-06-30
US20120134414A1 (en) 2012-05-31
CN102176753A (zh) 2011-09-07
US20120033735A1 (en) 2012-02-09
AU2008200457A1 (en) 2008-02-21
US8325809B2 (en) 2012-12-04
US7266150B2 (en) 2007-09-04
US8873629B2 (en) 2014-10-28
HK1159917A1 (en) 2012-08-03
KR20050019809A (ko) 2005-03-03
TWI231711B (en) 2005-04-21
US9247269B2 (en) 2016-01-26
MY171283A (en) 2019-10-07
KR100748194B1 (ko) 2007-08-10
US20130322534A1 (en) 2013-12-05
CN102176752B (zh) 2013-02-13
US8379720B2 (en) 2013-02-19
US8526496B2 (en) 2013-09-03
AU2008200457C1 (en) 2011-01-06
HUE048316T2 (hu) 2020-07-28
CN102227134A (zh) 2011-10-26
US20140098864A1 (en) 2014-04-10
HK1148888A1 (en) 2011-09-16
US8144774B2 (en) 2012-03-27
CN102256134A (zh) 2011-11-23
US8942285B2 (en) 2015-01-27
CN102256123B (zh) 2014-09-10
AU2010212510B2 (en) 2011-07-07
US8160142B2 (en) 2012-04-17
US8761257B2 (en) 2014-06-24
US10225574B2 (en) 2019-03-05
US20170374383A1 (en) 2017-12-28
MY142934A (en) 2011-01-31
EP1530879A2 (en) 2005-05-18
US8542738B2 (en) 2013-09-24
US20110103478A1 (en) 2011-05-05
US20120170665A1 (en) 2012-07-05
CN1663258A (zh) 2005-08-31
US20160007041A1 (en) 2016-01-07
US20140211852A1 (en) 2014-07-31
US9232232B2 (en) 2016-01-05
US9549201B2 (en) 2017-01-17
SI2262268T1 (sl) 2020-07-31
CN102256123A (zh) 2011-11-23
US9083979B2 (en) 2015-07-14
US20150271521A1 (en) 2015-09-24
DK2262268T3 (da) 2020-03-09
CN102176752A (zh) 2011-09-07
WO2004004310A2 (en) 2004-01-08
CN102256134B (zh) 2014-09-10
CN102227134B (zh) 2015-11-25
US20120033732A1 (en) 2012-02-09
US8488674B2 (en) 2013-07-16
US20110096838A1 (en) 2011-04-28
US20170374382A1 (en) 2017-12-28
US20120027090A1 (en) 2012-02-02
CN1663258B (zh) 2011-07-06
MXPA05000065A (es) 2005-04-08
CN102256122A (zh) 2011-11-23
US8139638B2 (en) 2012-03-20

Similar Documents

Publication Publication Date Title
ES2775070T3 (es) Interpolación mejorada de cuadros de compresión de vídeo
AU2016200775B2 (en) Region sizing for macroblocks
AU2015203602B2 (en) Region sizing for macroblocks
AU2015200723B2 (en) Region sizing for macroblocks
AU2014204511B2 (en) Region sizing for macroblocks
AU2011218757B2 (en) Improved interpolation of video compression frames
AU2013206639B2 (en) Region sizing for macroblocks
AU2012244113B2 (en) Interpolation of video compression frames
AU2012202740B2 (en) Improved interpolation of video compression frames
AU2011244965B2 (en) Improved interpolation of video compression frames
AU2013200690B2 (en) Region sizing for macroblocks
AU2014268171A1 (en) Region sizing for macroblocks