ES2780055T3 - Improved interpolation of video compression frames - Google Patents

Improved interpolation of video compression frames Download PDF

Info

Publication number
ES2780055T3
ES2780055T3 ES10008909T ES10008909T ES2780055T3 ES 2780055 T3 ES2780055 T3 ES 2780055T3 ES 10008909 T ES10008909 T ES 10008909T ES 10008909 T ES10008909 T ES 10008909T ES 2780055 T3 ES2780055 T3 ES 2780055T3
Authority
ES
Spain
Prior art keywords
frame
predicted
frames
motion vector
bidirectionally
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
ES10008909T
Other languages
Spanish (es)
Inventor
Gary A 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=ES2780055(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 ES2780055T3 publication Critical patent/ES2780055T3/en
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 para compresión de imágenes de video usando predicción en modo directo, que incluye: proporcionar una secuencia de cuadros predichos y predichos bidireccionalmente, cada uno que comprende valores de píxeles dispuestos en áreas de imagen, en donde al menos una de las áreas de imagen en al menos uno de los cuadros predichos bidireccionalmente se predice a partir de áreas de imagen en uno o más cuadros de referencia usando predicción en modo directo; y determinar un vector de movimiento predicho para un cuadro predicho bidireccionalmente con un método de distancia de cuadros en predicción en modo directo, en donde el método de distancia de cuadros comprende: dada un área de imagen predicha en un primer cuadro de referencia, el cuadro predicho bidireccionalmente con otra área de imagen predicha, y un vector de movimiento entre el área de imagen predicha en el primer cuadro de referencia y un área de imagen en un segundo cuadro de referencia, el vector de movimiento predicho es el vector de movimiento multiplicado por una fracción de escala de cuadro, en donde el numerador de la fracción de escala de cuadro es igual a una primera distancia entre el cuadro predicho bidireccionalmente de la otra área de imagen predicha y el primer cuadro de referencia y el denominador de la fracción de escala de cuadro es igual a una segunda distancia entre el primer cuadro de referencia y el segundo cuadro de referencia referenciada por el primer cuadro de referencia, en donde tanto el primer como el segundo cuadros de referencia están en un orden de visualización que es anterior a un orden de visualización del cuadro predicho bidireccionalmente del área de imagen predicha.A method for compression of video images using direct mode prediction, including: providing a sequence of bidirectionally predicted and predicted frames, each comprising pixel values arranged in image areas, where at least one of the image areas in at least one of the bidirectionally predicted frames is predicted from image areas in one or more reference frames using direct mode prediction; and determining a predicted motion vector for a bidirectionally predicted frame with a direct mode prediction frame distance method, wherein the frame distance method comprises: given a predicted image area in a first reference frame, the frame bidirectionally predicted with another predicted image area, and a motion vector between the predicted image area in the first reference frame and an image area in a second reference frame, the predicted motion vector is the motion vector multiplied by a frame-scale fraction, where the numerator of the frame-scale fraction is equal to a first distance between the bidirectionally predicted frame of the other predicted image area and the first reference frame and the denominator of the scale fraction frame is equal to a second distance between the first reference frame and the second reference frame referenced by the first square reference river, wherein both the first and second reference frames are in a display order that is prior to a bidirectionally predicted frame display order of the predicted image area.

Description

DESCRIPCIÓNDESCRIPTION

Interpolación mejorada de cuadros de compresión de vídeoImproved interpolation of video compression frames

Campo técnicoTechnical field

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.This invention relates to a video compression method and, more particularly, to a method of improved interpolation of video compression frames in MPEG-type coding systems.

AntecedentesBackground

Compresión de video MPEGMPEG video compression

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.MPEG-2 and MPEG-4 are international video compression standards that define respective video syntax that provide an efficient way of representing image sequences in the form of more compact encoded data. An introduction to MPEG-2 is provided by Tudor PN, “MPEG-2 video compression tutorial”, IEE Colloquium on MPEG-2 (Abstract No. 1995/012), London, UK, January 24, 1995, pages 2 / 1 to 2/8. The language of the encoded bits is "syntax." For example, a few tokens may represent an entire block of samples (eg 64 samples for MPEG-2). Both MPEG standards also describe a decoding (reconstruction) process where the encoded bits are mapped from the compact representation to an approximation of the original format of the image sequence. For example, a mark in the encoded bit stream may indicate whether the following bits are to be preceded by a prediction algorithm before being decoded with a discrete cosine transform (DCT) algorithm. The algorithms that comprise the decoding process are governed by the semantics defined by these MPEG standards. This syntax can be applied to exploit common video characteristics such as special redundancy, temporal redundancy, smooth motion, spatial masking, etc. An MPEG decoder must be able to parse and decode an incoming data stream, but as long as the data stream complies with the corresponding MPEG syntax, a wide variety of possible data structures and compression techniques can be used (although technically this it deviates from the standard since the semantics are not conforming). It is also possible to carry the necessary semantics within an alternative syntax.

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 entonces, 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).These MPEG standards use a variety of compression methods, including intra-frame and inter-frame methods. In most video scenes, the background remains relatively stable while the action takes place in the foreground. The background can move, but much of the scene is often redundant. These MPEG standards begin compression by creating a reference frame called "intra" frame or "l" frame. The I frames are compressed without reference to other frames and thus contain an entire frame of video information. I-frames provide entry points into a random access data bit stream, but can only be moderately compressed. Typically, the data representing I frames is put into the bit stream every 12 to 15 frames (although it is also useful in some circumstances to use a much wider spacing between I frames). Thereafter, since only a small part of the frames falling between the reference I frames are different from the I frames they delimit, only the image differences are captured, compressed and stored. Two types of frames are used for such differences, predicted frames (P frames) and bidirectional predicted (or interpolated) frames (B frames).

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.P frames are generally coded with reference to a past frame (either an earlier I frame or a prior P frame), and are generally used as a reference for later P frames. The P frames receive a fairly high amount of compression. B frames provide the highest amount of compression, but require both a past and future reference frame in order to be encoded. The P and I tables are "referenced tables" because they can be referenced by P or B tables.

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).Macroblocks are regions of image pixels. For MPEG-2, a macroblock is a 16x16 pixel grouping of four 8x8 DCT blocks, along with a motion vector for P frames, and one or two motion vectors for B frames. The macroblocks within the P frames are they can encode individually using either intra-frame or inter-frame (predicted) coding. Macroblocks within B-frames can be individually encoded using intra-frame encoding, predicted forward encoding, predicted backward encoding, or both predicted forward and backward encoding (ie, bidirectionally interpolated). A slightly different but similar structure is used in MPEG-4 video encoding. After encoding, an MPEG data bit stream comprises a sequence of I, P, and B frames. A sequence can consist of almost any pattern of I, P, and B frames (there are a few minor semantic restrictions on their placement). However, it is common in industrial practice to have a fixed checker pattern (eg IBBPBBPBBPBBPBB).

Predicción de vector de movimientoMotion vector prediction

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.In MPEG-2 and MPEG-4 (and similar standards, such as H.263), the use of type B frames (bidirectionally predicted) has been found to benefit compression efficiency. The motion vectors for each macroblock in such frames can be predicted by any one of the following three methods: Mode 1: Predicted forward from the previous I or P frame (that is, a predicted frame not bidirectionally). Mode 2: Predicted backward from posterior I or P frame.

Modo 3: Predicho bidireccionalmente tanto desde el cuadro I o P posterior como anterior.Mode 3: Bidirectionally predicted from both the posterior and anterior I or P frame

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.Mode 1 is identical to the forward prediction method used for P frames. Mode 2 is the same concept, except that it works backward from a later frame. Mode 3 is an interpolative mode that combines information from both before and after frames.

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.In addition to these three modes, MPEG-4 also supports a second interpolative motion vector prediction mode for B-frames: direct-mode prediction using the motion vector of the subsequent P-frame, plus a delta value (if the motion vector of the Co-located macroblock P is split in 8x8 mode, resulting in four motion vectors for the 16x16 macroblock, then the delta applies to all four independent motion vectors in frame B). The motion vector of the posterior P-frame points to the anterior P or I-frame. A ratio is used to weight the motion vector of the back P-frame. The ratio is the relative time position of the current B frame with respect to the previous P and P (or I) frames.

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.FIG. 1 is a prior art MPEG-4 forward mode motion vector and frame timeline. The concept of MPEG-4 direct mode (mode 4) is that the movement of a macroblock in each intermediate B frame is probably close to the movement that was used to encode the same location in the next P frame. A delta is used to make corrections less than a proportional motion vector derived from the corresponding motion vector (MV) 103 for the posterior P-frame. Shown in FIG. 1 is the proportional weight given to the motion vectors 101, 102 for each intermediate B frame 104a, 104b as a function of the "time distance" between the previous P or I frame 105 and the next P frame 106. The vector of motion 101, 102 assigned to a corresponding intermediate B frame 104a, 104b is equal to the assigned weight value (1/3 and 2/3, respectively) times the motion vector 103 for the next P frame, plus the delta value.

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”).With MPEG-2, all prediction modes for B-frames are tested on encoding, and compared to find the best prediction for each macroblock. If neither prediction is good, then the macroblock is coded autonomously as a macroblock "I" (for "intra"). The encoding mode is selected as the best mode among forward (mode 1), backward (mode 2) and bidirectional (mode 3), or intracoding. With MPEG-4, the option of intracoding is not allowed. Instead, the direct mode becomes the fourth option. Again, the best encoding mode is chosen, based on some best match criteria. In the reference MPEG-2 and MPEG-4 software encoders, the best match is determined using a DC match (Absolute Difference Sum or "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.The number of successive B-frames in an encoded data bit stream is determined by the value of the MPEG parameter "M". M minus one is the number of B frames between each P frame and the next P (or I). Thus, for M = 3, there are two B frames between each P (or I) frame, as illustrated in FIG. 1. The main limitation in restricting the value of M, and therefore the number of sequential B-frames, is that the amount of change of movement between P (or I) frames becomes large. High numbers of B frames means longer amounts of time between P (or I) frames. Thus, the efficiency and limitations of the coding range of the motion vectors create the ultimate limit on the number of intermediate B-frames.

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.It is also significant to note that the P-frames carry "energy of change" forward with the moving picture stream, since each decoded P-frame is used as a starting point to predict the next subsequent P-frame. The B frames, however, are discarded after use. Thus, any bit used to create B frames is used only for that frame, and does not provide corrections to aid decoding of later frames, unlike P frames.

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.A document by Flierl et al. "A locally optimal design algorithm for block-based multi-hypothesis motioncompensated prediction", Proceedings of the Data Compression Conference, Snowbird, Ut., USA, March 30-April 1, 1998, Los Alamitos, Ca ., USA, Soc. De Comput. IEEE, USA, March 30, 1998, pages 239 to 248 (ISBN-978-0-8186-8406-7) describes motion-compensated prediction for video coding in which a predicted frame can be encoded by reference to two or more referable frames earlier in the sequence, such as in bidirectional predicted frames (frames B). The paper generalizes this for a rate distortion frame, and proposes the use of multiple frames in the prediction operation.

Los siguientes documentos adicionales fueron citados durante el examen:The following additional documents were cited during the examination:

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, BJONTEGAARD G. (ED.): “H.26L TEST MODEL LONG TERM NUMBER 5 (TML-5) DRAFT0”, ITU-T TELECOMMUNICATIONS STANDARDIZATION SECTOR, GENEVA, CH, 11TH SESSION, PORTLAND, OR, EE .USA, 22-25 AUGUST 2000, 22 August 2000 (22-08-2000), pages 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,ITU STUDY GROUP 16 - VIDEO CODING EXPERT GROUP - ISO / IEC MPEG AND ITU-T VCEG (ISO / IEC JTC1 / SC29 / WG11 E ITU-T SG16 Q6), 11TH MEETING, PORTLAND, OR, EE .USA, 22-25 AUGUST 2000, N ° q15k44, 16 August 2000 (08-16-2000), pages 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,HANNUKSELA: “Generalized B / MH-Picture Averaging”, ITU STUDY GROUP 16 - VIDEO ENCODING EXPERT GROUP -I SO / IEC MPEG E ITU-T VCEG (ISO / IEC JTC1 / SC29 / WG11 E ITU- T SG16 Q6), 3rd MEETING, FAIRFAX, VA, USA, MAY 6-10, 2002, N ° JVT-C077, May 6, 2002 (05-06-2002), pages 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;GISLE BJOONTEGAARD ET AL: “H.26L Test Model Long Term Number 4 (TML-4)”, 10. VCEG MEETING; 16 05-2000 - 19-05-2000; OSAKA, JP; (ITU-T SG.16 VIDEO CODING EXPERTS GROUP), N ° q 15j72d0, June 16, 2000 (06-16-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-8KIKUCHI Y .: “Improved multiframe motion compensation using frame interpolation”, ITU STUDY GROUP 16 - VIDEO ENCODING EXPERT GROUP - ISO / IEC MPEG E ITU-T VCEG (ISO / IEC JTC1 / SC29 / WG11 E ITU -T SG16 Q6), 2nd MEETING, GENEVA, CH, JANUARY 29-FEBRUARY 1, 2002, N ° JVT-B075, January 29, 2002 (01-29-2002), pages 1-8

CompendioCompendium

La invención se dirige a métodos y sistemas que se definen en las reivindicaciones 1 a 4.The invention is directed to methods and systems that are defined in claims 1 to 4.

Otros aspectos descritos incluyen métodos que abarcan:Other aspects described include methods that include:

• 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.• A video image compression system having a sequence of referable frames comprising image regions, wherein at least one image region of at least one predicted frame is encoded by reference to one or more referable frames in order of display, where at least one such referable frame is not the closest previous referable frame in display order to the at least one predicted frame.

• 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.• A video image compression system having a sequence of referenced frames comprising macroblocks, wherein at least one macroblock within at least one predicted frame is encoded by interpolation of two or more referenceable frames.

• 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.• A video image compression system having a sequence of bidirectional predicted and referable frames comprising image regions, wherein at least one image region of at least one bidirectional predicted frame is encoded to include more than two vectors of motion, each motion vector such that it refers to a corresponding image region in at least one referable frame.

• 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.• A video image compression system having a sequence of referable frames comprising image regions, wherein at least one image region of at least one predicted frame is encoded to include at least two motion vectors, each of such motion vectors referencing a corresponding image region in a referable frame, where each such image region of such at least one predicted frame is encoded by interpolation of two or more referable frames.

• 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.• A video image compression system having a sequence of bidirectional predicted and referable frames comprising image regions, wherein at least one image region of at least one bidirectional predicted frame is encoded as an uneven weight of regions of image selected from two or more referenced frames.

• 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.• A video image compression system having a sequence of bi-directional predicted and referable frames comprising image regions, wherein at least one image region of at least one bidirectional predicted frame is encoded by interpolation of two or more frames referable, where at least one of the two or more referable frames is separated from the bidirectional predicted frame by at least one intermediate referable frame in display order, and where such at least one image region is encoded as an unequal weight of image regions selected from such at least two or more reference tables.

• 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.• A video image compression system having a sequence of bi-directional predicted and referenceable frames comprising image regions, wherein at least one image region of at least one bidirectional predicted frame is encoded by interpolation of two or more frames referable, where at least one of the two or more referential frames is separated from the bidirectional predicted frame by at least one intermediate back referable frame in display order.

• 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.• A video image compression system having a sequence of bi-directional predicted and referenceable frames comprising image regions, wherein at least one image region of at least one bidirectional predicted frame is encoded as unequal weighting of selected image regions from two or more referenced frames.

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.A video image compression system having a sequence of bidirectional predicted and predicted frames, each comprising pixel values arranged in macroblocks, wherein at least one macroblock within a bidirectional predicted frame is determined using direct mode prediction in based on motion vectors of two or more predicted frames.

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.A video image compression system having a sequence of bidirectional predicted and referable frames, each comprising pixel values arranged in macroblocks, wherein at least one macroblock within a bidirectional predicted frame is determined using direct mode prediction in based on motion vectors of one or more predicted frames in display order, wherein at least one of such one or more predicted frames is prior in display order to the bidirectional predicted frame.

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.A video image compression system having a sequence of bidirectional predicted and referable frames, each comprising pixel values arranged in macroblocks, wherein at least one macroblock within a bidirectional predicted frame is determined using direct mode prediction in based on motion vectors of one or more predicted frames, wherein at least one of such one or more predicted frames is subsequent in display order to the bidirectional predicted frame and separated from the bidirectional predicted frame by at least one intermediate referable frame.

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.A video image compression system having a frame sequence comprising a plurality of image regions having a DC value, each such image region comprising pixels each having a pixel value of AC, wherein at least one of the DC value and AC pixel values of at least one image region of at least one frame is determined as a weighted interpolation of the respective DC values and corresponding AC pixel values of at least one other frame .

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.A video image compression system having a sequence of referable frames comprising a plurality of image regions having a DC value, each such image region comprising pixels, each having a pixel value of AC, in where at least one of the DC value and AC pixel values of at least one image region of at least one predicted frame is interpolated from the respective DC values and corresponding AC pixel values of two or more frames referable.

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.Improve the image quality of a sequence of two or more bidirectional predicted intermediate frames in a video image compression system, each frame comprising a plurality of image regions having a DC value, each image region such comprising pixels each having an AC pixel value, including at least one of the following: determining the AC pixel values of each image region of a bidirectional predicted midframe as a first weighted ratio of corresponding AC pixel values in referenceable frames that delimit the sequence of bidirectionally predicted intermediate frames; and determining the DC value of each image region of such a bidirectional predicted midframe as a second weighted ratio of the corresponding DC values in referenceable frames delimiting the sequence of bidirectional predicted midframes.

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.A video image compression system having a sequence of frames comprising a plurality of pixels having an initial representation, wherein the pixels of at least one frame are interpolated from corresponding pixels of at least two other frames, wherein such corresponding pixels from the at least two other frames are interpolated while being transformed to a different representation, and the resulting interpolated pixels are transformed back to the initial representation.

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. In a video image compression system that has a sequence of bi-directional predicted and referable frames, dynamically determining a code pattern of such frames that have a variable number of bi-directional predicted frames, including: selecting an initial sequence beginning with a frame referable, having at least one immediately following two-way predicted frame, and ending in a referable frame; add a referable frame at the end of the initial sequence to create a test sequence; evaluating the test sequence against selected evaluation criteria; For each successful evaluation step in the test sequence, insert a bidirectional box before the added reference box and repeat the evaluation step; and if the evaluation of the test sequence is unsuccessful, then accept the previous test sequence as the current code pattern.

• 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.• A video image compression system having a sequence of referenced frames separated by at least one bidirectional predicted frame, wherein the number of such bidirectional predicted frames varies in such sequence, and wherein at least one image region of at least minus one such bidirectional predicted frame is determined using uneven weighting of pixel values corresponding to at least two referable frames.

• 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.• A video image compression system having a sequence of frames encoded by an encoder for decoding by a decoder, wherein at least one image region of at least one frame is based on weighted interpolations of two or more other frames , such weighted interpolations that are based on at least one set of weights available to the encoder and a decoder, wherein a designation of a selected one from such at least one set of weights is communicated to a decoder from the encoder to select one or more currently active weights.

• 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.• A video image compression system having a sequence of frames encoded by an encoder for decoding by a decoder, wherein at least one image region of at least one frame is based on weighted interpolations of two or more other frames , such weighted interpolations that are based on at least one set of weights, wherein at least one set of weights is downloaded to a decoder and, thereafter, a designation for a selected one of such at least one set of weights is communicated to a decoder from the encoder to select one or more currently active weights.

• 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.• A video image compression system having a sequence of referenceable frames encoded by an encoder for decoding by a decoder, wherein the predicted frames in the sequence of referenceable frames are transmitted by the encoder to the decoder in a delivery order that it differs from the display order of such predicted frames after decoding. • A video image compression system having a reference frame sequence comprising pixels arranged in image regions, in which at least one image region of at least one predicted frame is encoded by reference to two or more reference frames , wherein each such image region is determined using unequal weighting of pixel values corresponding to such two or more referenced frames.

• 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.• A video image compression system having a sequence of predicted, bidirectional predicted, and intraframe frames, each comprising image regions, where at least one filter selected from the set of sharpening and smoothing filters is applied to at least an image region of a bidirectional predicted or predicted frame during motion vector compensated prediction of such a bidirectional predicted or predicted frame.

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.Details of one or more embodiments of the invention are set forth in the accompanying drawings and description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.

Descripción de los dibujosDescription of the drawings

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.FIG. 1 is a prior art MPEG-4 forward mode motion vector and frame timeline.

La FIG. 2 es una línea de tiempo de cuadros y valores de ponderación de píxeles proporcionales.FIG. 2 is a timeline of frames and proportional pixel weight values.

La FIG. 3 es una línea de tiempo de cuadros y valores de ponderación de píxeles mezclados, proporcionales e iguales.FIG. 3 is a timeline of mixed, proportional, and equal pixel weights and frames.

La FIG. 4 es un diagrama de flujo que muestra un ejemplo ilustrativo.FIG. 4 is a flow chart showing an illustrative example.

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.FIG. 5 is a diagram showing an example of multiple previous references by a current P frame to two previous P frames, and to a previous I frame.

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.FIG. 6A is a diagram of a typical prior art MPEG-2 coding pattern, showing a constant number of B frames between bounding I frames and / or P frames.

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.Figure 6B is a diagram of a theoretically possible MPEG-4 video coding pattern of the prior art, showing a variable number of B frames between I frames and / or delimiting P frames, as well as a variable distance between I frames .

La FIG. 7 es un diagrama de patrones de código. FIG. 7 is a code pattern diagram.

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.FIG. 8 is a flow chart showing an embodiment of an interpolation method with DC interpolation that is other than AC interpolation.

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.FIG. 9 is a flow chart showing one embodiment of a method for luminance pixel interpolation using an alternative representation.

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.FIG. 10 is a flow chart showing an embodiment of a method for chroma pixel interpolation using an alternative representation.

La FIG. 11 es un diagrama que muestra tamaños de regiones de vectores de movimiento únicos para cada uno de dos cuadros P.FIG. 11 is a diagram showing unique motion vector region sizes for each of two P frames.

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.FIG. 12 is a diagram showing a sequence of P and B frames with interpolation weights for the B frames determined as a function of the distance from a 2-distance back P-frame referencing a 1-distance back P-frame.

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.FIG. 13 is a diagram showing a sequence of P and B frames with interpolation weights for the B frames determined as a function of the distance from a 1-distance back P-frame referring to a 2-distance leading P-frame.

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.FIG. 14 is a diagram showing a sequence of P and B frames in which a subsequent P frame has multiple motion vectors referring to earlier P frames.

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.FIG. 15 is a diagram showing a sequence of P and B frames in which a closer back P frame has a motion vector that refers to an earlier P frame, and a next closer P frame has multiple motion vectors that make reference to previous P tables.

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.FIG. 16 is a diagram showing a sequence of P and B frames in which a closer previous P frame has a motion vector that references a previous P frame.

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.FIG. 17 is a diagram showing a sequence of P and B frames in which a closer previous P frame has two motion vectors referencing previous P frames.

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.FIG. 18 is a diagram showing a sequence of P and B frames in which a closer previous P frame has a motion vector referring to a previous P frame.

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.FIG. 19 is a frame sequence showing the case of three P frames P1, P2 and P3, where P3 uses an interpolated reference with two motion vectors, one for each of P1 and 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.FIG. 20 is a frame sequence showing the case of four P frames P1, P2, P3, and P4, where P4 uses an interpolated reference with three motion vectors, one for each of P1, P2, and 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 que muestra diferentes ponderaciones asignadas a referencias hacia adelante y hacia atrás respectivas por un cuadro B particular.FIG. 21 is a diagram showing a sequence of P and B frames in which various P frames have one or more motion vectors that refer to various previous P frames, and showing different weights assigned to respective forward and backward references by a box B particular.

La FIG. 22 es un diagrama que muestra una secuencia de cuadros P y B en la que el orden de flujo de bits de los cuadros P difiere del orden de visualización.FIG. 22 is a diagram showing a sequence of P and B frames in which the bit stream order of the P frames differs from the display order.

La FIG. 23 es un diagrama que muestra una secuencia de cuadros P y B con ponderaciones asignadas.FIG. 23 is a diagram showing a sequence of P and B frames with assigned weights.

La FIG. 24 es un gráfico de posición de un objeto dentro de un cuadro frente al tiempo.FIG. 24 is a graph of the position of an object within a box versus time.

Símbolos de referencia similares en los distintos dibujos indican elementos similares.Similar reference symbols throughout the various drawings indicate similar elements.

Descripción detalladaDetailed description

Visión generalOverview

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.It is common practice to use a value for M of 3, which provides two B frames between each P (or I) frame. However, M = 2, and M = 4 or higher, are all useful. It is particularly important to note that the value of M (the number of B frames plus 1) also supports a natural relationship with the frame rate. At 24 frames per second (fps), the speed of movies, 1/24 of the second time distance between frames can result in substantial frame-to-frame image shifts. At 60fps, 72fps, or higher frame rates, however, the time distance between adjacent frames becomes correspondingly reduced. The result is that higher numbers of B frames (ie, higher values of M) become useful and beneficial in compression efficiency as the frame rate is increased.

Tanto la compresión de video MPEG-2 como MPEG-4 utilizan un método de interpolación demasiado simplificado. Both MPEG-2 and MPEG-4 video compression use an oversimplified interpolation method.

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 I) 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.For example, for mode 3, the bidirectional prediction for each macroblock in a frame is an equal average of the macroblocks in the preceding and preceding frames, as they move through the two corresponding motion vectors. This equal average is appropriate for M = 2 (that is, unique intermediate B frames), since frame B will be equidistant in time from the preceding and following P (or I) frames. However, for all higher values of M, only symmetrically centered B frames (ie, the middle frame if M = 4, 6, 8, etc.) will be optimally predicted using equal weighting. Similarly, in MPEG-4 direct mode 4, even though the motion vectors are proportionally weighted, the predicted pixel values for the middle B frame are an equal proportion of the corresponding pixels from the P (or I) frame above and the back P.

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.Thus, it is an improvement to apply an appropriate proportional weight, for M> 2, to the predicted pixel values for each B frame. The proportional weight for each pixel in a current B frame corresponds to the relative position of the current B frame with with respect to the previous and later P (or I) tables. Thus, if M = 3, the first frame B would use 2/3 of the corresponding pixel value (adjusted motion vector) from the previous frame, and 1/3 of the corresponding pixel value from the subsequent frame (adjusted motion vector) . FIG. 2 is a timeline of frames and proportional pixel weight values. The pixel values within each macroblock of each intermediate B frame 201a, 201b are weighted as a function of the “distance” between the previous P or I frame A and the next P or IB frame, with higher weighting according to frames Closest I or P. That is, each pixel value of a bidirectionally predicted B frame is a weighted combination of the corresponding pixel values of the bounding non-bidirectionally predicted frames A and B. In this example, for M = 3, the weight for the first frame B 201a is equal to 2 / 3A 1 / 3B; the weight for the second frame B 201b is equal to 1 / 3A 2 / 3B. The average weight is also shown as it would be assigned under conventional MPEG systems; MPEG-1, 2 and 4 weighting for each B frame 201a, 201b would be equal to (A B) / 2.

Aplicación a rango dinámico extendido y rango de contrasteExtended dynamic range and contrast range application

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.If M is greater than 2, proportional weighting of the pixel values in intermediate B frames will improve the effectiveness of bidirectional (mode 3) and direct (MPEG-4 mode 4) encoding in many cases. Example cases include common movie and video editing effects such as fades and cross dissolves. These types of video effects are problematic coding cases for both MPEG-2 and MPEG-4 due to the use of a simple DC matching algorithm, and the common use of M = 3 (i.e. two intermediate B-frames) , resulting in equal proportions for B frames. The coding of such cases is improved using proportional B frame interpolation.

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).Proportional B-frame interpolation also has direct application to improving coding efficiency to extend dynamic range and contrast. A common case in image coding is a change in lighting. This occurs when an object gradually moves into (or out of) the shadow (soft shadow edges). If a logarithmic coding representation is used for the brightness (incorporated by logarithmic Y luminance, for example), then a change in the brightness of the illumination will be a DC offset change. If the brightness of the lighting drops by half, the pixel values will all be reduced by an equal amount. Thus, to encode this change, an AC match should be found, and an encoded DC difference applied to the region. Such a DC difference that is encoded in a P frame should also be applied proportionally in each intermediate B frame. (See copending US Patent Application No. 09 / 905,039, entitled "Method and System for Improving Compressed Image Chroma Information", published as US 2003/0112863 A1, for additional information on logarithmic encoding representations).

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.In addition to changes in lighting, changes in contrast also benefit from proportional B-frame interpolation. For example, as an airplane moves toward a viewer out of a cloud or haze, its contrast will gradually increase. This increase in contrast will be expressed as an increased amplitude in the AC coefficients of the DCT in the corresponding P-frame coded macroblocks. Again, the contrast changes in the intermediate B-frames will be more closely approximated by proportional interpolation, thereby improving coding efficiency.

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.Improvements in dynamic range and contrast coding efficiency using proportional B-frame interpolation become more and more significant as frame rates become higher and as the value of M.

Aplicación de valores de M altos a capas temporalesApplying high M values to temporary layers

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.The use of embodiments of the invention allows an increase in the value of M and therefore in the number of B frames between delimiting P and / or I frames, while maintaining or obtaining encoding efficiency. Such use benefits a number of applications, including temporary layers. For example, in our US Patent No. 5,988,863, entitled "Temporal and Resolution Layering for Advanced Television", it was noted that B-frames are a suitable mechanism for layered temporal rates (frames). The flexibility of such rates is related to the number of consecutive B frames available. For example, single B-frames (M = 2) can support a 36 fps decoded temporal layer within a 72 fps stream or a 30 fps decoded temporal layer within a 60 fps stream. Triple B frames (M = 4) can support both 36 fps and 18 fps decoded time layers within a 72 fps stream, and 30 fps and 15 fps decoded time layers within a 60 fps stream. Using M = 10 within a 120fps stream can support 12fps, 24fps and 60fps decoded temporal layers. M = 4 can also be used with 144fps stream to provide temporal layers decoded at 72fps and 36fps.

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.As an enhancement to taking each N-order frame, multiple frames can be decoded and proportionally mixed at 120 fps or 72 fps, as described in copending US Patent Application No. 09 / 545,233, entitled "Enhancements to Temporal and Resolution Layering ”see WO 01/17787 A1, to improve the motion blur characteristics of 24 fps results.

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).Even higher frame rates can be synthesized using the methods described in copending US Patent Application No. 09 / 435,277, entitled "System and Method for Motion Compensation and Frame Rate Conversion" (see 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).For example, a stock 72fps camera can be used with motion compensated frame rate conversion to create an effective frame rate of 288 frames per second. Using M = 12, both 48fps and 24fps frame rates can be derived, as well as other useful rates such as 144fps, 96fps, and 32fps (and of course the original 72fps). Frame rate conversions using this method do not need to be integral multiples. For example, an effective rate of 120 fps can be created from a 72 fps source, and then it can be used as the source for both 60 fps and 24 fps (using 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.Thus, there are benefits of temporal layers to optimize the performance of B-frame interpolation. The proportional B-frame interpolation described above makes higher consecutive B-frame numbers work more efficiently, thereby enabling these benefits.

Proporciones de interpolación de cuadros B mezcladasMixed B-frame interpolation ratios

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.One reason that an equal average weight has been used in conventional systems as the motion compensation mode predictor for B-frame pixel values is that the P (or I) frame before or after a particular B-frame may be noisy and therefore represent an imperfect match. Equal mixing will optimize noise reduction in the interpolated motion compensation block. There is a residual difference that is encoded using the quantized DCT function. Of course, the better the motion compensated ratio match, the smaller the residual bit difference that will be required, and the higher the resulting image quality.

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.In cases where there are objects moving in and out of shadow or haze, a true ratio where M> 2 provides a better prediction. However, when lighting and contrast changes are not occurring, equal weighting may turn out to be a better predictor, since the errors of moving a macroblock forward along a motion vector will be averaged with the errors of the forward-shifted block. back, thereby reducing the errors in each by half.Even so, macroblocks of B frames closer to a P (or I) frame are more likely to correlate more with that frame than with a P (or I) frame. ) more distant.

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.Thus, it is desirable in some circumstances, such as regional contrast or brightness shift, to use a true ratio for the B frame macroblock pixel weighting (for both luminance and color), as described above. In other circumstances, it may be more optimal to use equal ratios, as in MPEG-2 and 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:Thus, an exemplary look uses a mixture of these two ratio techniques (equal average ratio and frame distance) for interpolation of B-frame pixels. For example, in the case M = 3, 3/4 of the proportions 1/3 and 2/3 can be mixed with 1/4 of the equal average, resulting in the two ratios being 3/8 and 5/8. This technique can be generalized using a “mixing factor” 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).Weighting = F * (Square Distance Proportional Weighting) (1-F) * (Average Equal Weighting) The useful range of the mixing factor F is from 1, which indicates purely proportional interpolation, to 0, which indicates purely equal average ( reverse assignment of values can also be used).

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. FIG. 3 is a timeline of mixed, proportional, and equal pixel weights and frames. The pixel values of each macroblock in each intermediate B frame 301a, 301b are weighted as a function of the "time distance" between the previous P or I frame A and the next P or IB frame, and as a function of the equal average of A and B. In this example, for M = 3 and a blending factor F = 3/4, the mixed weight for the first frame B 301a equals 5 / 8A 3 / 8B (that is, 3/4 of the proportional weight of 2 / 3A 1 / 3B, plus 1/4 of the equal average weight of (AB) / 2). Similarly, the weight for the second frame B 301 b equals 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).The value of the mixing factor F can be generally set for a complete encoding, or for each group of pictures (GOP), a range of B frames, each B frame, or each region within a B frame (including, for example, as finely as for each macroblock or, in the case of MPEG-4 direct mode using a P vector in 8x8 mode, even individual 8x8 motion blocks).

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.In the interest of bit economy, and reflecting the fact that the mix ratio is not normally large enough to be carried with each macroblock, the optimal use of the mix should be related to the type of images that are compressed. For example, for images that fade, dissolve, or where the lighting or overall contrast is gradually changing, a blending factor F close to or by 1 (that is, selecting proportional interpolation) is generally the most optimal. For moving images without such changes in lighting or contrast, then the lowest blending factor values, such as 2/3, 1/2, or 1/3, might form the best choice, thereby retaining some of the benefits of proportional interpolation, as well as some of the benefits of equal average interpolation. All blending factor values within the range of 0 to 1 will generally be useful, with one particular value within this range being optimal for any given B frame.

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.For wide dynamic range and wide contrast range images, the blending factor can be determined regionally, depending on the characteristics of the local region. In general, however, a wide range of light and contrast is recommended toward mixing factor values that favor purely proportional interpolation, rather than equal averaging.

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.An optimal mixing factor is generally determined empirically, although experience with particular types of scenes can be used to create a table of mixing factors by scene type. For example, a determination of image shift characteristics can be used to select the blend ratio for a frame or region. Alternatively, the B-frames can be encoded using a number of candidate mixing factors (either for the entire frame, or regionally), with each then being evaluated to optimize image quality (determined, for example, by the ratio signal-to-noise, or SNR, higher) and for the lowest bit count. These candidate evaluations can then be used to select the best value for the mixing ratio. A combination of both coded quality / efficiency and makeover features can also be used.

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.B frames near the middle of a sequence of B frames, or resulting from low values of M, are not greatly affected by proportional interpolation, since the calculated proportions are already close to the equal average. However, for higher values of M, the extreme positions of B frames can be significantly affected by the choice of the mixing factor. Note that the mixing factor may be different for these extreme positions, using more than the average, than the more central positions, which derive little or no benefit from the deviation from the average, since they already have high proportions of both P (or I ) neighbors. . For example, if M = 5, the first and fourth B frames could use a blending factor F that blends by more than the equal average, but the second and third average B frames may use the equal average proportions 2/5 and 3/5 strict. If the ratio-to-average mixing factor varies as a function of the position of a B-frame in a sequence, the variable value of the mixing factor can be carried in the compressed bit stream or as side information to the decoder.

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).If a static general mixing factor is required (due to the lack of a method to transport the value), then the value of 2/3 is normally near optimal, and can be selected as a static value for B-frame interpolation both in the encoder as well as the decoder. For example, using F = 2/3 for the blend factor, for M = 3 the ratios of successive frames will be 7/18 (7/18 = 2/3 * 1/3 1/3 * 1/2) and 11 / 18 (11/18 = 2/3 * 2/3 1/3 * 1/2).

Interpolación linearLinear interpolation

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).Video frame pixel values are generally stored in a particular representation that correlates the original image information with numerical values. Such a correlation can result in a linear or non-linear representation. For example, the luminance values used in compression are not linear. The use of various forms of non-linear representation includes logarithmic, exponential (at various powers), and exponential with a black correction (commonly used for video signals).

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. At narrow dynamic ranges, or for interpolations from close regions, nonlinear representation is acceptable, since these close interpolations represent piecewise linear interpolations. Thus, small variations in brightness are reasonably approximated by linear interpolation. However, for wide variations in brightness, such as occurs over a wide dynamic range and wide contrast range images, the treatment of non-linear signals as linear will be inaccurate. Even for normal contrast range images, linear fades and cross-dissolves can be degraded by linear interpolation. Some fades and cross-dissolves use non-linear dissolve and fade rates, adding additional complexity.

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.Thus, a further improvement to using proportional blends, or even simple equal or proportional average interpolations, is to perform such interpolations on pixel values represented in linear space, or on other optimized non-linear spaces that differ from luminance representation. original nonlinear.

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.This can be achieved, for example, by first converting the two non-linear luminance signals (from the P (or I) frames before and after to a linear representation, or a different non-linear representation. Then, a proportional mixing is applied, then of which the inverse conversion is applied, producing the mixed result in the original non-linear luminance representation of the image, however, the ratio function will have been performed on a more optimal representation of the luminance signals.

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.It is also useful to beneficially apply this linear or non-linear conversion to color values (chroma), in addition to luminance, when colors fade or become more saturated, as occurs in contrast changes associated with variations in color. mist and cloudiness.

Realización de ejemploExample realization

La FIG. 4 es un diagrama de flujo que muestra un ejemplo ilustrativo como método que se puede implementar por ordenador:FIG. 4 is a flow chart showing an illustrative example as a method that can be implemented by computer:

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).Step 400: In a video image compression system, for direct and interpolative mode to calculate B frames, determine an interpolation value to apply to each pixel of an input sequence of two or more bi-directionally predicted intermediate frames using one of (1) the frame distance ratio or (2) a mix of equal weighting and the frame distance ratio, derived from at least two non-bidirectionally predicted frames that delimit such sequence input from a source (e.g. a stream video image).

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.Step 401: Optimize the interpolation value with respect to an image unit (for example, a group of images (GOP), a sequence of frames, a scene, a frame, a region within a frame, a macroblock, a block DCT, or useful grouping or selection of similar pixels). The interpolation value can be set statically for the entire encoding session, or dynamically for each imaging unit.

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.Step 402: Further optimize the interpolation value with respect to scene type or coding simplicity. For example, you can set an interpolation value: statically (such as proportional 2/3 and average equal 1/3); proportionally for squares near the same average, but mixed with the same average near the adjacent P (or I) squares; dynamically based on general scene characteristics, such as fades and cross dissolves; dynamically (and locally) based on local image region characteristics, such as local contrast and local dynamic range; or dynamically (and locally) based on encoding performance (such as highest encoded SNR) and minimum encoded bits generated.

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.Step 403: Transport the appropriate ratio amounts to the decoder, if not determined statically. Step 404: Optionally, convert the luminance information (and optionally chroma) for each frame to an alternative linear or non-linear representation, and transport this alternative representation to the decoder, if not determined statically.

Paso 405: Determinar los valores de píxeles proporcionales usando el valor de interpolación determinado.Step 405: Determine the proportional pixel values using the determined interpolation value.

Paso 406: Si es necesario (debido al Paso 404), reconvertir a la representación original.Step 406: If necessary (due to Step 404), revert to the original representation.

Referencia de cuadro P extendidoFrame reference P extended

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.As noted above, in prior art MPEG-1, 2, and 4 compression methods, the P frames refer to the above P or I frame, and the B frames refer to the prior P and / or I frames and later closer. The same technique is used in the H.261 and H.263 motion compensated DCT compression standards, which encompass low bit rate compression techniques.

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. In the H.263 ++ and H.26L standard under development, the B frame reference was extended to point to P or I frames that were not directly bounding a current frame. That is, macroblocks within B frames could point to a P or I frame before the preceding P frame, or to a P or I frame after the subsequent P frame. With one or more bits per macroblock, the skipping of the leading or trailing P-frame can be simply pointed out. Conceptually, using the above P-frames for reference to B-frames only requires storage. For the use of H.263 ++ or H.26L low-bit rate encoding, this is a small amount of additional memory. For later P-frame reference, the P-frame encoding order must be modified relative to the B-frame encoding, so that future P-frames (or possibly I-frames) must be decoded before intermediate B-frames. Thus, the encoding order is also a problem for later P-frame references.

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.The main distinctions between P and B frame types are: (1) B frames can be bi-directionally referenced (up to two motion vectors per macroblock); (2) B-frames are discarded after use (which also means that they can be skipped during decoding to provide temporary layers); and (3) the P frames are used as "rungs", one to the next, since each P frame must be decoded for use as a reference for each subsequent P frame.

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.As an example P frames (as opposed to B frames) are decoded with reference to one or more previous P or I frames (excluding the case of each P frame referring only to the closest previous P or I frame). Thus, for example, two or more motion vectors per macroblock can be used for a current P-frame, all pointing backward in time (ie, to one or more previously decoded frames). Such P-frames still maintain a "rung" character. FIG. 5 is a diagram showing an example of multiple prior references by a current P frame 500 to two prior P frames 502, 504, and to a prior I frame 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.Furthermore, it is possible to apply the concepts of macroblock interpolation, as described above, in such P-frame references. Thus, in addition to marking single references to more than one previous P or I frame, it is also possible to mix proportions of multiple P or I frames above, using a motion vector for each such frame reference. For example, the previously described technique of using a B-frame interpolation mode that has two frame references can be applied to allow any macroblock in a P-frame to reference either two prior P-frames or a prior P-frame and an I-frame. above, using two motion vectors. This technique interpolates between two motion vectors, but is not bidirectional in time (as is the case with B-frame interpolation), since both motion vectors point backward in time. Memory costs have decreased to the point where keeping multiple previous P or I frames in memory for such concurrent reference is quite practical. In applying such P-frame interpolation, it is constructive to select and signal to a decoder various useful ratios of the previous two or more P-frames (and optionally a previous I-frame). In particular, an equal mix of frames is one of the useful mix ratios. For example, with two previous P-frames as references, an equal amount of 1/2 of each P-frame can be mixed. For three previous P-frames, an equal 1/3 mixture could be used.

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.Another useful combination of two P-frames is 2/3 of the most recent previous frame, and 1/3 of the least recent previous frame. For three older P frames, another useful mix is 1/2 of the most recent prior frame, 1/3 of the next most recent prior frame, and 1/6 of the least recent prior frame.

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.In either case, a simple set of useful mixes of multiple previous P-frames (and optionally an I-frame) can be used and simply pointed from an encoder to a decoder. The specific mixing ratios used can be selected as often as is useful to optimize encoding efficiency for a imaging unit. A series of mix ratios can be selected using a small number of bits, which can be transported to the decoder as long as it is suitable for a desired imaging unit.

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.As an example, it may also be useful to toggle-select single P-frame references from the most recent previous P (or I) frame to a more "distant" previous P (or I) frame. Thus, the P-frames would use a single motion vector per macroblock (or optionally per 8x8 block in MPEG-4 style encoding), but would use one or more bits to indicate that the reference refers to a single frame. above specific. P-frame macroblocks in this mode would not be interpolative, but would instead refer to a selected previous frame, being selected from two, three or more possible previous P (or I) frame options for reference. For example, a 2-bit code could designate one of up to four previous frames as the single reference frame of choice. This 2-bit code could be changed to any convenient imaging unit.

Número adaptativo de cuadros BAdaptive number of frames 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.It is typical in MPEG encoding to use a fixed pattern of I, P and B frame types. The number of B frames between P frames is typically a constant. For example, it is typical in MPEG-2 encoding to use two B frames between P (or I) frames. FIG. 6A is a diagram of a typical prior art MPEG-2 coding pattern, showing a constant number of B frames (ie, two) between I frames 600 and / or P frames 602 they delimit.

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.The MPEG-4 video coding standard conceptually allows a variable number of B frames between the I frames and / or the delimiting P frames, and a variable amount of spacing between I frames. FIG. 6B is a diagram of a theoretically possible MPEG-4 video coding pattern of the prior art, showing a variable number of B frames between the I frames 600 and / or the bounding P frames 602, as well as a variable distance between tables 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.This flexible coding structure can be theoretically used to improve coding efficiency by matching the most effective B and P frame coding types with the picture frames in movement. Although this flexibility has been specifically allowed, very little has been explored and no mechanism is known to actually determine the placement of the B and P frames in such a flexible structure.

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.The concepts described herein can be applied to this flexible coding structure as well as to the simple fixed coding patterns in common use. The B frames can thus be interpolated using the methods described above, while the P frames can refer to more than one previous P or I frame and can be interpolated according to the present description.

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.In particular, macroblocks within B-frames can use appropriate proportional mixes for a flexible coding structure just as efficiently as with a fixed structure. Proportional blends can also be used when the B frames refer to P or I frames that are further away than the closest P or I frames they delimit.

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).Similarly, P frames can refer to more than one previous P or I frame in this flexible coding structure just as effectively as with a fixed pattern structure. Furthermore, mixing ratios can be applied to macroblocks in such P-frames when they refer to more than one previous P-frame (optionally plus one I-frame).

(A) Determinación de la colocación en patrones de codificación flexibles(A) Determination of placement in flexible coding patterns

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.The following method allows an encoder to optimize the efficiency of both the frame encoding pattern and the mixing ratios used. For a selected range of frames, a number of candidate coding patterns can be tried to determine an optimal or near optimal pattern (relative to specific criteria). FIG. 7 is a diagram of code patterns that you can examine. An initial sequence 700 is arbitrarily selected, ending in a P or I frame, and used as the basis for adding additional P and / or B frames, which are then evaluated (as described below). In one embodiment, a P frame is added to the initial sequence 700 to create a first test sequence 702 for evaluation. If the assessment is successful, an intermediate B-frame is inserted to create a second 704 test sequence. For each successful assessment, additional B-frames are inserted to create increasingly long test sequences 706-712, until the assessment criteria become unsatisfactory. At that point, the above coding sequence is accepted. This process is then repeated, using the final P frame for the previously accepted coding sequence as the starting point for adding a new P frame and then inserting new B frames.

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.An optimal or near-optimal coding pattern can be selected based on various evaluation criteria, often involving trade-offs of various coding characteristics, such as coded image quality versus the number of coding bits required. Common evaluation criteria include the least number of bits used (in a fixed quantization parameter test), or the best signal-to-noise ratio (in a fixed bit rate test), or a combination of both.

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.It is also common to minimize an absolute difference sum (SAD), which forms a DC match measure. As described in copending US Patent No. 09 / 904,192, entitled "Motion Estimation for Video Compression Systems", (published as US 2003/0112873 A1), an AC matching criterion is also a useful measure. of the quality of a particular candidate match (the patent application also describes other useful optimizations). In this way, the AC and DC match criteria, accumulated over the best matches of all macroblocks, can be examined to determine the overall match quality of each candidate encoding pattern. This AC / DC matching technique can augment or replace the signal-to-noise ratio (SNR) and low-bit tests used when used in conjunction with an estimate of the number of bits encoded for each type of frame pattern. It is typical to encode macroblocks within B frames with a higher quantization parameter (QP) value than for P frames, affecting both quality (often measured as signal-to-noise ratio) and the number of bits used within the frames. various candidate encoding patterns.

(B) Optimización de proporción de mezcla en patrones de codificación flexibles(B) Mix ratio optimization in flexible coding patterns

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.Optionally, for each candidate standard determined according to the above method, the mixing ratios can be tested for suitability (eg, optimal or near-optimal mixing ratios) against one or more criteria. This can be done, for example, by testing for best quality (lowest SNR) and / or efficiency (least bits used). The use of one or more previous references for each macroblock in P-frames can also be determined in the same way, by testing each candidate reference standard and mixing ratio, to determine a set of one or more suitable references.

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. Once the coding pattern for this next step (Step 700 in Figure 7) has been selected, then subsequent steps (Steps 702-712) can be tested for various candidate coding patterns. In this way, a more efficient encoding of a moving picture sequence can be determined. In this way, efficiency can be optimized / improved as described in subsection (A) above; Mix optimization can be applied in every tested coding step.

Interpolación de DC frente a ACDC vs. AC interpolation

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.In many cases of image coding, such as when using a logarithmic representation of image frames, the interpolation of frame pixel values described above will optimally encode changes in lighting. However, in alternative video, linear, and other "gamma curve" representations, it will often be useful to apply different interpolation mixing factors to the DC values than to the AC values of the pixels. FIG. 8 is a flow chart showing an embodiment of an interpolation method with DC interpolation that is different from AC interpolation. For a selected image region (typically a DCT block or macroblock) of a first and second input frames 802, 802 ', the average pixel value for each such region is subtracted 804, 804', thereby separating the value of DC (that is, the average value of the entire selected region) 806, 806 'of the AC values (that is, the remaining flagged pixel values) 808, 808' in the selected regions. The respective DC values 806, 806 'can then be multiplied by interpolation weights 810, 810' different from the interpolation weights 814, 814 'used to multiply the AC (flagged) pixel values 808, 808'. The newly interpolated DC value 812 and the newly interpolated AC values 816 can then be combined 818, resulting in a new prediction 820 for the selected region.

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.As with the other interpolation values described, the appropriate weights can be signaled to one decoder per picture unit. A small number of bits can be selected from a series of interpolation values, as well as selecting independent interpolation of the AC vs. DC aspects of the pixel values.

Interpolación lineal y no linealLinear and nonlinear interpolation

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.The interpolation is a linear weighted average. Since the interpolation operation is linear, and since the pixel values in each image frame are often represented in a non-linear way (such as video gamma or logarithmic representations), further optimization of the process becomes possible. interpolation. For example, interpolation of pixels for a particular frame sequence, as well as interpolation of DC values separately from AC values, will sometimes be optimal or near optimal with a linear representation of pixels. However, for other frame sequences, such interpolation will be optimal or near optimal, if the pixels are represented as logarithmic values or in other pixel representations. Furthermore, the optimal or near-optimal representations for interpolating the U and V (chroma) signal components may differ from the optimal or near-optimal representations for the Y (luminance) signal component. Therefore, it is useful to convert a pixel representation to an alternate representation as part of the interpolation procedure.

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).FIG. 9 is a flow chart showing one embodiment of a method for luminance pixel interpolation using an alternative representation. Starting with a region or block of luminance (Y) pixels in an initial representation (for example, video gamma or logarithmic) (Step 900), the pixel data is transformed to an alternate representation (for example, linear, logarithmic, video gamma) different from the initial rendering (Step 902). The transformed region or block of pixels is then interpolated as previously described (Step 904), and transformed back to the initial representation (Step 906). The result is interpolated pixel luminance values (Step 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).FIG. 10 is a flow chart showing an embodiment of a method for chroma pixel interpolation using an alternative representation. Starting with a chroma (U, V) region or block of pixels in an initial representation (for example, video gamma or logarithmic) (Step 1000), the pixel data is transformed to an alternate representation (for example, linear, logarithmic, video gamma) different from the initial representation (Step 1002). The transformed region or block of pixels is then interpolated as previously described (Step 1006), and transformed back to the initial representation (Step 1006). The result is interpolated pixel chroma values (Step 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.Transformations between representations can be performed according to the teachings of US Patent Application No. 09 / 905,039, entitled "Method and System for Improving Compressed Image Chroma Information", published as US 2003/0112863 A1. Note that the alternate representation transformation and its inverse can often be performed using a simple lookup table.

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.As a variation, the alternate representation space (linear or nonlinear) for the AC interpolation may differ from the alternate representation space for the DC interpolation.

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.As with interpolation weights, the selection of which alternate interpolation representation to use for each of the luminance (Y) and chroma (U and V) pixel representations can be signaled to the decoder using a small number of bits. for each selected imaging unit.

Número de vectores de movimiento por macrobloqueNumber of motion vectors per macroblock

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).In MPEG-2, a 16x16 motion vector per macroblock is allowed in P-frames. In B-frames, MPEG-2 allows a maximum of 2 motion vectors per 16x16 macroblock, corresponding to interpolative mode bidirectional. In MPEG-4 video encoding, up to 4 motion vectors per 16x16 macroblock are allowed in P-frames, corresponding to an 8x8 DCT motion vector per block. In MPEG-4 B-frames, a maximum of two motion vectors are allowed for each 16x16 macroblock, when using interpolative mode. A single motion vector delta in MPEG-4 forward mode can result in four independent "implicit" motion vectors, if the corresponding subsequent P-frame macroblock was set to 8x8 mode having four vectors. This is achieved by adding the delta of the motion vector carried in a 16x16 B frame macroblock to each of the four corresponding independent motion vectors of the next P frame macroblock, after scaling the distance in time (frame B is more close in time as the previous P or I frame reference of the P frame).

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.There is the option of increasing the number of motion vectors per image region, such as a macroblock. For example, it will sometimes be beneficial to have more than two motion vectors per macroblock of B frames. These can be applied by referencing additional P or I frames and having three or more interpolation terms in the weighted sum. Additional motion vectors can also be applied to allow independent vectors for the 8x8 DCT blocks of the B-frame macroblock. Also, four independent deltas can be used to extend the concept directly by applying a separate delta to each of the four vectors. movement of 8x8 regions of the posterior P-frame.

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.Furthermore, P-frames can be adapted using B-frame implementation techniques to refer to more than one previous frame in an interpolative mode, using the two-term B-frame interpolation technique described above. This technique can easily be extended to more than two previous P or I frames, with a resulting interpolation that has three or more terms in the weighted sum.

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.As with other aspects of the method (eg, pixel representation and DC vs. AC interpolation methods), particular weighted sums can be communicated to a decoder using a small number of bits per picture unit.

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).Applying this aspect of the method, the correspondence between the 8x8 pixel DCT blocks and the motion vector field need not be as strict as with MPEG-2 and MPEG-4. For example, it may be useful to use alternative region sizes other than 16x16, 16x8 (used only with interlacing in MPEG-4) and 8x8 for motion vectors. Such alternatives could include any number of useful region sizes, such as 4x8, 8x12, 8x16, 6x12, 2x8, 4x8, 24x8, 32x32, 24x24, 24x16, 8x24, 32x8, 32x4, etc. Using a small number of such useful sizes, a few bits can signal to a decoder the correspondence between the motion vector region sizes and the DCT block sizes. In systems where a conventional 8x8 DCT block is used, a simple set of maps to the motion vector field is useful to simplify processing during motion compensation. In systems where the DCT block size is different from 8x8, then greater flexibility can be achieved by specifying the motion vector field, as described in co-pending US Patent Application No. 09 / 545,233, entitled "Enhanced Temporal and Resolution Layering in Advanced Television", see WO 01/177871 A1. Note that the boundaries of the motion vector region need not correspond to the boundaries of the DCT region. In fact, it is often useful to define motion vector regions such that one edge of the motion vector region falls within a DCT block (and not on its edge).

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.The concept of extending the flexibility of the motion vector field to interpolation also applies. As long as the correspondence between each pixel and one or more motion vectors to one or more reference frames is specified, the interpolation method described above can be applied to the full flexibility of useful motion vectors using the full generality of this method. Even the size of the regions corresponding to each motion vector may differ for each previous frame reference when using P frames, and each previous and future frame reference when using B frames. If the region sizes for the motion vectors differ when the improved interpolation method is applied, then the interpolation reflects the common region of overlap. The common region of overlap for motion vector references can be used as the region over which the DC term is determined when the DC and AC pixel values are interpolated separately.

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.FIG. 11 is a diagram showing unique motion vector region sizes 1100, 1102 for each of the two P frames 1104, 1106. Before calculating the interpolation values, the union 1108 of the vector region sizes of movement. Junction 1108 defines all regions that are considered to have an assigned motion vector.

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. Thus, for example, when interpolating 4x4 DCT regions of a B frame 1112 backward with the preceding P frame 1104, a 4x4 1110 region within junction 1108 would use the motion vector corresponding to the 8x16 region 1114 in Table P above. If predicted forward, region 1110 within junction 1108 would use the motion vector corresponding to 4x16 region 1115 in the next frame P. Similarly, interpolation of region 116 within junction 1108 backward would use the motion vector corresponding to the 8x16 1114 region, while the forward prediction of the same region would use the motion vector corresponding to the 12x161117 region.

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.In one method, two steps are used to achieve interpolation of generalized (that is, non-uniformly sized) motion vectors. The first step is to determine the common motion vector regions, as described with respect to FIG. 11. This maps pixels to motion vectors (that is, the number of motion vectors per specified pixel region size) for each previous or next frame reference. The second step is to use the appropriate interpolation method and active interpolation factors for each pixel region. It is the task of the encoder to ensure that optimal or near optimal motion vector regions and interpolation methods are specified, and that all pixels have their vectors and interpolation methods fully specified. This can be very simple in the case of a fixed pattern of motion vectors (such as a motion vector for each 32x8 block, specified for an entire frame), with a single specified interpolation method (such as a ratio mix sets to each referenced frame distance, specified for the entire frame). This method can also become quite complex if regional changes are made to the motion vector region sizes, and where the region sizes differ depending on which front or back frame is referenced (e.g. 8x8 blocks for closest previous frame and 32x8 blocks for next closest previous frame). Also, the interpolation method can be specified regionally within the box.

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.When encoding, it is the job of the encoder to determine the optimal or near optimal use of the bits to select between shapes and sizes of motion vector regions, and to select the optimal or near optimal interpolation method. A determination is also required to specify the number and distance of the referenced frames. These specifications can be determined by extensive testing of a series of candidate motion vector region sizes, candidate frames for reference, and interpolation methods for each such motion vector region, until an optimal or near optimal coding is found. Optimization (relative to a selected criterion) can be determined by finding the smallest SNR after encoding a block or the smallest number of bits for a fixed quantization parameter (QP) after encoding the block, or by applying another measure adequate.

Extensión de modo directoDirect mode extension

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. Conventional direct mode, used in B-frame macroblocks in MPEG-4, can be efficient in motion vector coding, providing the benefits of 8x8 block mode with a single common delta. Direct mode weights each corresponding motion vector in the back P-frame, which references the preceding P-frame, at the location of the corresponding macroblock based on distance in time. For example, if M = 3 (that is, two intermediate B-frames), with simple linear interpolation, the first B-frame would use -2/3 times the motion vector of the subsequent P-frame to determine a pixel offset with respect to such P-frame, and 1/3 times the motion vector of the subsequent P-frame to determine a pixel offset relative to the preceding P-frame. Similarly, the second frame B would use -1/3 times the same P frame motion vector to determine a pixel offset relative to that P frame, and 2/3 times the subsequent P frame motion vector to determine a pixel offset from the previous P-frame. In direct mode, a small delta is added to each corresponding motion vector.

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.According to the invention, this concept can be extended to frame references B pointing to one or more frames P at n distances, which in turn refer to one or more frames P or frames I before or after, taking into account the distance of frame to determine a frame scale fraction.

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.FIG. 12 is a diagram showing a sequence of P and B frames with interpolation weights for the B frames determined as a function of the distance from a 2-distance back P-frame referencing a 1-distance back P-frame. In the illustrated example, M = 3, indicating two consecutive B frames 1200, 1202 between the P frames 1204, 1206 that they delimit. In this example, each co-located macroblock in the next closest subsequent P-frame 1208 (that is, n = 2) could point to the middle (that is, closest) P frame 1204, and the first two B-frames 1200, 1202 may refer to the next closest back P-frame 1208 instead of the closest back P-frame 1204, as in conventional MPEG. Thus, for the first frame B 1200, the frame scale fraction 5/3 times the motion vector mv of the next nearest subsequent P frame 1208 would be used as a pixel offset relative to frame P 1208, and the second frame B 1202 would use a displacement of 4/3 times that same motion vector.

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.If a nearest back P-frame referenced by a B-frame points to the next closest preceding P-frame, then again the single-frame distance can be used to obtain the appropriate frame-scale fraction to apply to the motion vectors . FIG. 13 is a diagram showing a sequence of P and B frames with interpolation weights for the B frames determined as a function of the distance from a 1-distance back P-frame referring to a 2-distance leading P-frame. In the illustrated example, M = 3, and frames B 1300, 1302 refer to the nearest back frame P 1304, which in turn refers to frame P at 2 distances 1306. Thus, for the first frame B 1300 , the pixel shift fraction is the 2/6 frame scale fraction multiplied by the motion vector mv of the nearest back P frame 1304, and the second B frame 1302 would have a pixel shift of the frame scale fraction 1/6 multiplied by the same motion vector, since the vector of Nearest posterior P-frame movement 1304 points to 2-distance anterior P-frame 1306, which is 6-frame distant.

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.In general, in the case of a B frame referencing a single P frame in direct mode, the frame distance method sets the numerator of a frame scale fraction equal to the frame distance from that B frame to its P-frame referenced, or “target”, and sets the denominator equal to the frame distance from the target P-frame to another P-frame referenced by the target P-frame. The sign of the frame scale fraction is negative for measurements made from a B frame to a later P frame, and positive for measurements made from a B frame to an earlier P frame. This simple method of applying a frame distance or the frame scale fraction to a frame motion vector P can achieve effective direct mode coding.

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.Furthermore, it is possible to allow direct mode to be applied to multiple interpolated motion vector references from a P-frame. For example, if a P-frame was interpolated from the nearest and next-closest previous P-frames, a direct mode reference allows interpolated mixing for each macroblock of B-frames in multi-reference direct mode. In general, the two or more motion vectors of a P-frame may have a suitable frame-scale fraction applied. The two or more frame distance modified motion vectors can then be used with the corresponding interpolation weights for each B frame that references or is the target of that P frame, as described below, to generate motion compensation frame macroblock B interpolated.

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.FIG. 14 is a diagram showing a sequence of P and B frames in which a subsequent P frame has multiple motion vectors referring to earlier P frames. In this example, a frame B 1400 refers to a frame P back P3. This frame P3 in turn has two motion vectors, mv1 and mv2, which refer to the previous P frames P2, P1, corresponding. In this example, each macroblock in frame B 1400 can be direct mode interpolated using either two weighting terms or a combination of such weighting terms.

Cada macrobloque para el cuadro B 1400 se construiría como una mezcla de:Each macroblock for frame B 1400 would be constructed as a mixture of:

• 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• corresponding pixels from frame P2 shifted by frame scale fraction 1/3 of mv1 (where pixels can then be multiplied by some proportional weight i) plus corresponding pixels from frame P3 offset by frame scale fraction -2 / 3 of mv1 (where pixels can then be multiplied by some proportional weight j); and

• 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).• corresponding pixels from frame P1 displaced by the 2/3 (4/6) frame scale fraction of mv2 (where the pixels can then be multiplied by some proportional weight k) plus corresponding pixels from frame P3 offset by the scale fraction frame -1/3 (-2/6) of mv2 (where pixels can then be multiplied by some proportional weight 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.As with all direct modes, a motion vector delta can be used with each of mv1 and mv2. Macroblocks predicted in direct mode in B frames can also reference multiple subsequent P frames, using the same motion vector frame scaling and interpolation methodology as with multiple preceding P frames. FIG. 15 is a diagram showing a sequence of P and B frames in which a closer back P frame has a motion vector referencing a previous P frame, and next a closer P frame has multiple motion vectors referencing to previous P frames. In this example, a B frame 1500 refers to two subsequent P frames P2, P3. Frame P3 has two motion vectors, mv1 and mv2, which refer to previous P frames P2, P1. Frame P2 has a motion vector, mv3, which refers to frame P above P1. In this example, each macroblock in frame B 1500 is interpolated in direct mode using three weighting terms. In this case, the frame-scale fractions of the motion vector can be greater than 1 or less than -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.The weights for this form of direct mode B-frame macroblock interpolation can utilize the full interpolation generality as described herein. In particular, each weight, or combinations of the weights, can be tested for best performance (eg, quality versus number of bits) for various imaging units. The interpolation fraction set for this enhanced direct mode can be specified to a decoder with a small number of bits per picture unit.

Cada macrobloque para el cuadro B 1500 se construiría como una mezcla de:Each macroblock for frame B 1500 would be constructed as a mixture of:

• 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);• corresponding pixels from frame P3 displaced by the frame scale fraction -5/3 of mv1 (where the pixels can then be multiplied by some proportional weighting i), plus corresponding pixels from frame P2 offset by the frame scale fraction - 2/3 of mv1 (where pixels can then be multiplied by some proportional weight 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• corresponding pixels from frame P3 shifted by the -5/6 frame scale fraction of mv2 (where pixels can then be multiplied by some proportional weight k) plus pixels Corresponds from frame P1 shifted by the 1/6 frame scale fraction of mv2 (where pixels can then be multiplied by some proportional weight l); and

• 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).• corresponding pixels from frame P2 displaced by the -2/3 frame scale fraction of mv3 (where the pixels can then be multiplied by some proportional weight m) plus corresponding pixels from frame P1 displaced by the scale fraction of frame 1 / 3 of mv3 (where the pixels can then be multiplied by some proportional weight n).

Como con todos los modos directos, se puede utilizar una delta de vector de movimiento con cada uno de mv1, mv2 y mv3.As with all direct modes, a motion vector delta can be used with each of mv1, mv2, and 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.Note that a particularly beneficial direct coding mode often occurs when the next closest subsequent P-frame references the closest P-frames that delimit a candidate B-frame. B-frame direct mode encoding in MPEG-4 always uses the back P-frame motion vectors as a reference. It is also possible that a B frame refers to the motion vectors of the co-located macroblocks of the previous P frame, which will sometimes be a beneficial choice of direct mode coding reference. In this case, the frame scale fractions of the motion vector will be greater than one, when the next closest previous P frame is referenced by the motion vector of the closest previous P frame. FIG. 16 is a diagram showing a sequence of P and B frames in which a closer previous P frame has a motion vector referencing a previous P frame. In this example, a B frame 1600 refers to the previous P frame at 1 distance P2. The motion vector mv in frame P2 refers to the next previous frame P P1 (at 2 distances relative to frame B 1600). Appropriate frame scale fractions are shown.

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.If the closest previous P-frame is interpolated from multiple vectors and frames, then methods similar to those described in conjunction with FIG. 14 are applied to obtain the frame-scale fractions of the motion vector and the interpolation weights. FIG. 17 is a diagram showing a sequence of P and B frames in which a closer previous P frame has two motion vectors referring to previous P frames. In this example, a frame B 1700 refers to frame P above P3. A motion vector mv1 from the previous frame P3 refers to the next previous frame P P2, while the second motion vector mv2 refers to the previous frame P at 2 distances P1. Appropriate frame scale fractions are shown.

Cada macrobloque para el cuadro B 1700 se construiría como una mezcla de:Each macroblock for frame B 1700 would be constructed as a mixture of:

• 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• corresponding pixels from frame P3 displaced by the 1/3 frame scale fraction of mv1 (where the pixels can then be multiplied by some proportional weighting i) plus corresponding pixels from frame P2 offset by the 4/3 frame scale fraction from mv1 (where the pixels can then be multiplied by some proportional weight j); and

• 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).• corresponding pixels from frame P3 shifted by the 1/6 frame scale fraction of mv2 (where the pixels can then be multiplied by some proportional weight k) plus corresponding pixels from frame P1 offset by the frame scale fraction 7/6 from mv2 (where pixels can then be multiplied by some proportional weight 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.When the motion vector of a previous P frame (relative to a B frame) points to the next closest previous P frame, it is not necessary to use only the next closest previous frame as the interpolation reference, as in FIG. 16. The closest anterior P-frame may prove to be a better choice for motion compensation. In this case, the motion vector of the closest previous frame P is shortened by the fraction of the frame distance from frame B to that frame P. FIG. 18 is a diagram showing a sequence of P and B frames in which a closer previous P frame has a motion vector referring to a previous P frame. In this example, for M = 3, a first B 1800 frame would use 1/3 frame distance fractions and -2/3 times the motion vector mv of the closest previous P frame P2. The second frame B 1802 would use frame distance fractions 2/3 and -1/3 (not shown). Such a selection would be signaled to the decoder to distinguish this case from the case shown in 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 extendidosAs with all other encoding modes, use of the direct mode preferably involves testing the candidate mode against other available modes of interpolation and encoding of a single vector and reference frames. For testing in direct mode, the closest back P-frame (and optionally the next closest back P-frame or even the most distant back P-frames, and / or one or more earlier P-frames) can be tested as candidates, and a small number of bits (generally one or two) can be used to specify the reference frame distance (s) P in direct mode to be used by a decoder. Extended interpolation values

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.It is specified in MPEG-1, 2 and 4, as well as in the H.261 and H.263 standards, that B-frames use equal weighting of pixel values of forward-referenced and back-referenced frames, as displaced by the motion vectors. This invention includes the application of various useful unequal weights that can significantly improve B-frame coding efficiency, as well as the extension of such unequal weights to more than two references, including two or more references backward or forward in time.

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.The invention also includes methods for more than one frame to be referenced and interpolated for P frames. Also, when two or more references point forward in time, or when two or more references point backward in time, it will sometimes be useful use negative weights as well as weights greater than 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:For example, FIG. 19 is a frame sequence showing the case of three P frames P1, P2 and P3, where P3 uses an interpolated reference with two motion vectors, one for each of P1 and P2. If, for example, a continuous change is occurring over the frame span between P1 and P3, then P2-P1 (that is, the pixel values of frame P2, shifted by the motion vector for P2, minus the pixel values from square P1, displaced by the motion vector for P1) will equal P3-P2. Similarly, P3-P1 will be twice the magnitude of P2-P1 and P3-P2. In such a case, the pixel values for frame P3 can be predicted differentially from P1 and P2 through the formula:

P3 = P1 2 x (P2 - P1) = (2 x P2) - P1P3 = 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.In this case, the interpolative weights for P3 are 2.0 for P2 and -1.0 for 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).As another example, FIG. 20 is a frame sequence showing the case of four P frames P1, P2, P3, and P4, where P4 uses an interpolated reference with three motion vectors, one for each of P1, P2, and P3. Thus, since P4 is predicted from P3, P2, and P1, three motion vectors and interpolative weights would be applied. If, in this case, a continuous change was occurring over this frame span, then P2- P1 would be equal to both P3-P2 and P4-P3, and P4-P1 would be equal to both 3 x (P2- P1) and 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:Thus, in this example case, a prediction of P4 based on P2 and P1 would be:

P4 = P1+ 3 x (P2 - P1) = (3 x P2) -(2 x P1) (ponderaciones 3,0 y - 2,0)P4 = P1 + 3 x (P2 - P1) = (3 x P2) - (2 x P1) (weights 3.0 and - 2.0)

La predicción de P4 en base a P3 y P1 sería:The prediction of P4 based on P3 and P1 would be:

P4 = P1 3/2 x (P3 - P1) = (3/2 x P3) -(1/2 x P1) (ponderaciones 1,5 y -0,5)P4 = P1 3/2 x (P3 - P1) = (3/2 x P3) - (1/2 x P1) (weights 1.5 and -0.5)

La predicción de P4 en base a P3 y P2 sería:The prediction of P4 based on P3 and P2 would be:

P4 = P2 2 x (P3 - P2) = (2 x P3) - P2 (ponderaciones 2,0 y -1,0)P4 = P2 2 x (P3 - P2) = (2 x P3) - P2 (weights 2.0 and -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:However, it could also be likely that the change closer to P4, involving P3 and P2, is a more reliable predictor of P4 than predictions involving P1. In this way, giving 1/4 weight to each of the two previous terms that involve P1, and 1/2 weight to the term that only involves P3 and P2, would result in:

1/2 (2 P3 - P2) 1/4 (3/2 P3 - 1/2 P1) 1/4 (3 P2 - 2 P1) =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)13/8 P3 1/4 P2 - 5/8 P1 (weights 1.375, 0.25 and -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 FlG. 20 podría formar el mejor predictor de P4 en algunos casos.Therefore, it will sometimes be useful to use weights both above 1.0 and below zero. At other times, if there is a noise-like variation from one frame to the next, a positive weighted average having mild coefficients between 0.0 and 1.0 might produce the best predictor of the macroblock of P4 (or other pixel region). For example, a weight equal to 1/3 of each of P1, P2, and P3 in the FlG. 20 could form the best predictor of P4 in some cases.

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.Note that the best match motion vector is applied to determine the region of P1, P2, P3, etc., which is used by the calculations in this example. This match might be better an AC match in some cases, allowing a variable DC term to be predicted through the AC coefficients. Alternatively, if a DC match is used (such as Absolute Difference Sum), then changes in AC coefficients can often be predicted. In other cases, various forms of motion vector matching will form a better prediction with various weighting mixes. In general, the best predictor for a particular case is determined empirically using the methods described herein.

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.These techniques are also applicable to B-frames that have two or more motion vectors pointing either backward or forward in time. When pointing forward in time, the coefficient pattern described above for P-frames is reversed to accurately predict backward to the current P-frame. It is possible to have two or more vectors of motion in both the forward and backward directions, thereby predicting in both directions concurrently. A suitable weighted mix can be optimized of these various predictions by selecting the blend weight that best predicts the macroblock (or other region of pixels) of a current B-frame.

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.FIG. 21 is a diagram showing a sequence of P and B frames in which various P frames have one or more motion vectors referring to various previous P frames, and showing different weights ae assigned to the respective forward and backward references. by a particular B frame. In this example, a 2100 B-frame refers to three earlier P-frames and two later P-frames.

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).In the example illustrated in FIG. 21, frame P5 must be decoded for this example to work. Sometimes it is useful to arrange frames in a bitstream in the order required for decoding ("delivery order"), which is not necessarily the display order ("display order"). For example, in a sequence of frames showing cyclical movement (eg, rotation of an object), a particular P-frame may be more similar to a distant P-frame than the nearest back P-frame. FIG. 22 is a diagram showing a sequence of P and B frames in which the delivery order of the bit stream of the P frames differs from the display order. In this example, frame P3 is more similar to frame P5 than frame P4. Therefore it is useful to deliver and decode P5 before P4, but show P4 before P5. Preferably, each P frame should signal to the decoder when such P frame can be discarded (eg, an expiration of n frames in bitstream order or after X frame in display order).

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.If the weights are selected from a small set of options, then a small number of bits can signal to the decoder which weight to use. As with all the other weights described herein, this can be signaled to a decoder once per picture unit, or at any other point in the decoding process where a change in weights is useful.

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).It is also possible to download new weight sets. In this way, a small number of weight sets can be active at any one time. This allows a small number of bits to signal to a decoder which of the active weight sets to use at any given point in the decoding process.To determine suitable weight sets, a large number of weights can be tested during encoding. . If a small subset is found to provide high efficiency, then that subset can be signaled to a decoder for use. A particular element of the subset can thus be signaled to the decoder with only a few bits. For example, 10 bits can select 1 of 1024 subset elements. Furthermore, when a particular small subset should be changed to maintain efficiency, a new subset may be signaled to the decoder. In this way, an encoder can dynamically optimize the number of bits required to select among the elements of the weight set versus the number of bits required to update the weight sets. Also, a small number of shortcodes can be used to point out common useful weights, such as 1/2, 1/3, 1/4, etc. In this way, a small number of bits can be used to designate the set of weights, such as for a forward vector prediction K in a P frame (where K = 1, 2, 3, ...), or a prediction of forward vector K and backward vector L in frame B (where K and L are selected from 0, 1,2, 3, ...), or a prediction of forward vector K and backward vector L in a P frame (where K and L are selected from 0, 1, 2, 3, ...), as a function of the current M value (that is, the relative position of the B frame with respect to the P frames (or I) neighbors).

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.FIG. 23 is a diagram showing a sequence of P and B frames with assigned weights. A table B 2300 has weights ae, the values of which are assigned from a table of sets of weights from table B 2302. A table P 2304 has weights m, n, the values of which are assigned from a P frame weight set table 2306. Some weights may be static (ie, permanently downloaded to the decoder), and signaled by an encoder. Other weights can be dynamically downloaded and then flagged.

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.This same technique can be used to dynamically update weight sets to select DC interpolation versus AC interpolation. In addition, code values that select normal (linear) interpolation (of pixel values normally represented in a non-linear representation) can be flagged versus linear interpolation of converted values (in an alternative linear or non-linear representation). Similarly, such code values can indicate which interpolation to apply to the AC or DC values or whether to divide the AC and DC parts of the prediction.

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.The active subset can also be used to minimize the number of bits required to select from the sets of weighting coefficients currently in use. For example, if 1024 downloaded weight sets were kept on a decoder, perhaps 16 might need to be active during a particular part of a frame. Thus, in selecting which subset of 16 (out of 1024) weight sets are to be active, only 4 bits need to be used to select which weight set of these 16 is active. Subsets can also be flagged using short codes for the most common subsets, thus allowing a small number of bits to be selected from commonly used subsets.

Suavidad y nitidez Smoothness and sharpness

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.As with the simple separation of a DC component from AC signals via subtraction from the average value, other filtering operations are also possible during motion vector compensated prediction. For example, various high-pass, band-pass, and low-pass filters can be applied to a region of pixels (such as a macroblock) to extract various frequency bands. These frequency bands can then be modified when performing motion compensation. For example, it could often be useful in a noisy moving picture to filter out the higher frequencies in order to soften (make the picture less sharp or slightly blur) the picture. Smoother image pixels, combined with a steeper skew matrix for quantization (a steeper skew matrix ignores the higher frequency noise in the current block), will typically form a more efficient encoding method. It is already possible to signal a change in the quantization tilt matrix for each imaging unit. Custom tilt matrices for luminance and chroma can also be downloaded. Note that the effectiveness of motion compensation can be improved if the tilt matrix is changed or not. However, it will often be more effective to change both the tilt matrix and the filter parameters that are applied during motion compensation.

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.It is common practice to use a reduced resolution for chroma encoding in conjunction with a chroma-specific skew matrix. However, the chroma encoding resolution is static in this case (such as the 4: 2: 0 encoding half resolution vertically and horizontally, or the 4: 2: 2 encoding half resolution only horizontally). Coding effectiveness can be increased by applying a dynamic filter process during motion compensation for both chroma and luminance (independently or in tandem), selected per unit of image.

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.US Patent Application No. 09 / 545,233, entitled "Enhanced Temporal and Resolution Layering in Advanced Television" (referenced above, see WO 01/17787 A1), describes the use of improved displacement filters having negative lobes (a truncated sync function). These filters have the advantage that they retain sharpness when the fractional pixel portion of the motion vector shift is performed. At both the whole pixel shift point and fractional points, some macroblocks (or other useful image regions) are shifted more optimally using filters that reduce or increase their sharpness. For example, for a “rack focus” (where some objects in the frame blur over time, and other parts of the frame become in focus), the transition is one of change in both sharpness and smoothness. Thus, a motion compensation filter that can both sharpen certain regions in an image while reducing sharpening in other regions can improve coding efficiency. In particular, if a region of an image becomes out of focus, it can be beneficial to decrease the sharpness, which will soften the image (thereby potentially creating a better match) and decrease grain and / or noise (thereby possibly improving the efficiency of coding). If a region of the image is in focus, it can be beneficial to retain maximum sharpness, or even increase sharpness by using larger negative lobe filter values.

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.Chroma filtering can also benefit from increasing and decreasing sharpness during encoding. For example, many of the encoding efficiency benefits of 4: 2: 0 encoding (half-resolution chroma horizontally and vertically) can be achieved using smoother motion compensation filters for chroma while preserving full resolution on the U and / or V channels. Only when the color detail in the U and V channels is high, it will be necessary to select the sharpest displacement filters; softer filters will be most beneficial where there is high color noise or grain.

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.In addition to changes in focus, it is also common to have a change in the direction and amount of motion blur from one frame to the next. At the moving movie frame rate of 24 fps, even a simple dialog scene can have significant changes in motion blur from one frame to the next. For example, an upper lip could go out of focus in one frame and become sharp in the next, entirely due to lip movement during the camera's shutter release time. For such motion blur, it will be beneficial to not only have sharpening and smoothing (blur) filters during motion compensation, but also having a directional look for sharpening and smoothing. For example, if a direction of movement can be determined, a smoothing or sharpening along that direction can be used to correspond to the movement or stopping of an image feature. The motion vectors used for motion compensation can provide themselves some useful information about the amount of motion and the change in the amount of motion (i.e. motion blur), for a particular frame (or region within a box) relative to any of the surrounding boxes (or corresponding regions). In particular, a motion vector is the best inter-frame motion match P, while motion blur results from motion during the shutter release time within a frame.

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. FIG. 24 is a graph of the position of an object within a box versus time. The shutter of a camera is only open for part of a frame time. Any movement of the subject while the shutter is open results in blur. The amount of motion blur is indicated by the amount of position change during the shutter release time. Thus, the slope of the 2400 position curve while the shutter is open is a measure of motion blur.

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.The amount of motion blur and the direction of motion can also be determined from a combination of sharpness metrics, surrounding motion vectors (where image regions coincide), feature blur detection, and human-assisted designation of regions of picture. A filter can be selected based on the specified amount of motion blur and motion direction. For example, a correlation of various filters can be determined empirically against the determined motion blur and direction.

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.When combined with the other features of the method, such intelligently applied filters can significantly improve compression coding efficiency. A small number of such filters can be selected with a small number of bits signaled to the decoder. Again, this can be done once per picture unit or at other useful points in the decoding process. As with weight sets, a dynamically loaded filter set, as well as an active subsets mechanism, can be used to minimize the number of bits required to select from the most beneficial set of filter parameters.

ImplementaciónImplementation

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.The video compression method can be implemented in hardware or software, or a combination of both (for example, programmable logic matrices). Unless otherwise specified, the algorithms included as part of the invention are not inherently related to any particular computer or other apparatus. In particular, various general purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to build more specialized apparatus (eg, integrated circuits) to perform particular functions. Thus, the method can be implemented in one or more computer programs running on one or more programmable computer systems, each comprising at least one processor, at least one data storage system (including volatile memory and non-volatile and / or storage elements), in at least one device or input port, and at least one device or output port. The program code is applied to the input data to perform the functions described herein and to generate output information. The output information is applied to one or more output devices, in a known way.

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.Each such program can be implemented in any desired computer language (including machine, assembly, or high-level procedural, logical, or object-oriented programming languages) to communicate with a computer system. In either case, the language can be a compiled or interpreted language.

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.Each such computer program is preferably stored or downloaded to a storage medium or device (for example, memory or solid state media, or magnetic or optical media) readable by a programmable general or special purpose computer, to configure and operate the computer when the storage medium or device is read by the computer system to perform the procedures described herein. It can also be considered that the system is implemented as a computer-readable storage medium, configured with a computer program, where the storage medium thus configured causes a computer system to operate in a specific and predefined way to perform the functions described. In the present memory.

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. A number of embodiments of the invention have been described. However, it will be understood that various modifications can be made without departing from the scope of the invention as defined by the claims. For example, some of the steps described above may be independent of order, and thus can be performed in a different order than described.

Claims (4)

REIVINDICACIONES 1. Un método para compresión de imágenes de video usando predicción en modo directo, que incluye: proporcionar una secuencia de cuadros predichos y predichos bidireccionalmente, cada uno que comprende valores de píxeles dispuestos en áreas de imagen, en donde al menos una de las áreas de imagen en al menos uno de los cuadros predichos bidireccionalmente se predice a partir de áreas de imagen en uno o más cuadros de referencia usando predicción en modo directo; y1. A method for compression of video images using direct mode prediction, including: providing a sequence of bidirectionally predicted and predicted frames, each comprising pixel values arranged in image areas, where at least one of the areas image in at least one of the bidirectionally predicted frames is predicted from image areas in one or more reference frames using direct mode prediction; and determinar un vector de movimiento predicho para un cuadro predicho bidireccionalmente con un método de distancia de cuadros en predicción en modo directo, en donde el método de distancia de cuadros comprende: dada un área de imagen predicha en un primer cuadro de referencia, el cuadro predicho bidireccionalmente con otra área de imagen predicha, y un vector de movimiento entre el área de imagen predicha en el primer cuadro de referencia y un área de imagen en un segundo cuadro de referencia, el vector de movimiento predicho es el vector de movimiento multiplicado por una fracción de escala de cuadro, en donde el numerador de la fracción de escala de cuadro es igual a una primera distancia entre el cuadro predicho bidireccionalmente de la otra área de imagen predicha y el primer cuadro de referencia y el denominador de la fracción de escala de cuadro es igual a una segunda distancia entre el primer cuadro de referencia y el segundo cuadro de referencia referenciada por el primer cuadro de referencia,determining a predicted motion vector for a bidirectionally predicted frame with a direct mode prediction frame distance method, wherein the frame distance method comprises: given a predicted image area in a first reference frame, the predicted frame bidirectionally with another predicted image area, and a motion vector between the predicted image area in the first reference frame and an image area in a second reference frame, the predicted motion vector is the motion vector multiplied by a frame-scale fraction, wherein the numerator of the frame-scale fraction is equal to a first distance between the bidirectionally predicted frame of the other predicted image area and the first reference frame and the denominator of the scale fraction of frame is equal to a second distance between the first reference frame and the second reference frame referenced by the first frame reference, en donde tanto el primer como el segundo cuadros de referencia están en un orden de visualización que es anterior a un orden de visualización del cuadro predicho bidireccionalmente del área de imagen predicha.wherein both the first and second reference frames are in a display order that is earlier than a bidirectionally predicted frame display order of the predicted image area. 2. Un sistema de compresión de video adaptado para2. A video compression system adapted to proporcionar una secuencia de cuadros predichos y predichos bidireccionalmente, cada uno que comprende valores de píxeles dispuestos en áreas de imagen, en donde al menos una de las áreas de imagen en al menos uno de los cuadros predichos bidireccionalmente se predice a partir de áreas de imagen en uno o más cuadros de referencia usando predicción en modo directo; yproviding a sequence of bidirectionally predicted and predicted frames, each comprising pixel values arranged in image areas, wherein at least one of the image areas in at least one of the bidirectionally predicted frames is predicted from image areas in one or more reference frames using direct mode prediction; and determinar un vector de movimiento predicho para un cuadro predicho bidireccionalmente con un método de distancia de cuadros en predicción en modo directo, en donde el método de distancia de cuadros comprende: dada un área de imagen predicha en un primer cuadro de referencia, el cuadro predicho bidireccionalmente con otra área de imagen predicha, y un vector de movimiento entre el área de imagen predicha en el primer cuadro de referencia y un área de imagen en un segundo cuadro de referencia, el vector de movimiento predicho es el vector de movimiento multiplicado por una fracción de escala de cuadro, en donde el numerador de la fracción de escala de cuadro es igual a una primera distancia entre el cuadro predicho bidireccionalmente de la otra área de imagen predicha y el primer cuadro de referencia y el denominador de la fracción de escala de cuadro es igual a una segunda distancia entre el primer cuadro de referencia y el segundo cuadro de referencia referenciada por el primer cuadro de referencia,determining a predicted motion vector for a bidirectionally predicted frame with a direct mode prediction frame distance method, wherein the frame distance method comprises: given a predicted image area in a first reference frame, the predicted frame bidirectionally with another predicted image area, and a motion vector between the predicted image area in the first reference frame and an image area in a second reference frame, the predicted motion vector is the motion vector multiplied by a frame-scale fraction, wherein the numerator of the frame-scale fraction is equal to a first distance between the bidirectionally predicted frame of the other predicted image area and the first reference frame and the denominator of the scale fraction of frame is equal to a second distance between the first reference frame and the second reference frame referenced by the first frame reference, en donde tanto el primer como el segundo cuadros de referencia están en un orden de visualización que es anterior a un orden de visualización del cuadro predicho bidireccionalmente del área de imagen predicha.wherein both the first and second reference frames are in a display order that is earlier than a bidirectionally predicted frame display order of the predicted image area. 3. Un método para descompresión de imágenes de video usando predicción en modo directo, que incluye: recibir una secuencia de cuadros predichos y predichos bidireccionalmente, cada uno que comprende valores de píxeles dispuestos en áreas de imagen, en donde al menos una de las áreas de imagen en al menos uno de los cuadros predichos bidireccionalmente se predice a partir de áreas de imagen en uno o más cuadros de referencia usando predicción en modo directo; y3. A method for decompressing video images using direct mode prediction, including: receiving a sequence of bidirectionally predicted and predicted frames, each comprising pixel values arranged in image areas, where at least one of the areas image in at least one of the bidirectionally predicted frames is predicted from image areas in one or more reference frames using direct mode prediction; and determinar un vector de movimiento predicho para un cuadro predicho bidireccionalmente con un método de distancia de cuadros en predicción en modo directo, en donde el método de distancia de cuadros comprende: dada un área de imagen predicha en un primer cuadro de referencia, el cuadro predicho bidireccionalmente con otro área de imagen predicha, y un vector de movimiento entre el área de imagen predicha en el primer cuadro de referencia y un área de imagen en un segundo cuadro de referencia, el vector de movimiento predicho es el vector de movimiento multiplicado por una fracción de escala de cuadro, en donde el numerador de la fracción de escala de cuadro es igual a una primera distancia entre el cuadro predicho bidireccionalmente de la otra área de imagen predicha y el primer cuadro de referencia y el denominador de la fracción de escala de cuadro es igual a una segunda distancia entre el primer cuadro de referencia y el segundo cuadro de referencia referenciada por el primer cuadro de referencia,determining a predicted motion vector for a bidirectionally predicted frame with a direct mode prediction frame distance method, wherein the frame distance method comprises: given a predicted image area in a first reference frame, the predicted frame bidirectionally with another predicted image area, and a motion vector between the predicted image area in the first reference frame and an image area in a second reference frame, the predicted motion vector is the motion vector multiplied by a frame-scale fraction, wherein the numerator of the frame-scale fraction is equal to a first distance between the bidirectionally predicted frame of the other predicted image area and the first reference frame and the denominator of the scale fraction of frame is equal to a second distance between the first reference frame and the second reference frame referenced by the first frame reference, en donde tanto el primer como el segundo cuadros de referencia están en un orden de visualización que es anterior a un orden de visualización del cuadro predicho bidireccionalmente del área de imagen predicha.wherein both the first and second reference frames are in a display order that is earlier than a bidirectionally predicted frame display order of the predicted image area. 4. Un sistema de descompresión de video adaptado para 4. A video decompression system adapted for recibir una secuencia de cuadros predichos y predichos bidireccionalmente, cada una que comprende valores de píxeles dispuestos en áreas de imagen, en donde al menos una de las áreas de imagen en al menos uno de los cuadros predichos bidireccionalmente se predice a partir de áreas de imagen en uno o más cuadros de referencia usando predicción en modo directo; yreceiving a sequence of bidirectionally predicted and predicted frames, each comprising pixel values arranged in image areas, wherein at least one of the image areas in at least one of the bidirectionally predicted frames is predicted from image areas in one or more reference frames using direct mode prediction; and determinar un vector de movimiento predicho para un cuadro predicho bidireccionalmente con un método de distancia de cuadros en predicción en modo directo, en donde el método de distancia de cuadros comprende: dada un área de imagen predicha en un primer cuadro de referencia, el cuadro predicho bidireccionalmente con otra área de imagen predicha, y un vector de movimiento entre el área de imagen predicha en el primer cuadro de referencia y un área de imagen en un segundo cuadro de referencia, el vector de movimiento predicho es el vector de movimiento multiplicado por una fracción de escala de cuadro, en donde el numerador de la fracción de escala de cuadro es igual a una primera distancia entre el cuadro predicho bidireccionalmente de la otra área de imagen predicha y el primer cuadro de referencia y el denominador de la fracción de escala de cuadro es igual a una segunda distancia entre el primer cuadro de referencia y el segundo cuadro de referencia referenciada por el primer cuadro de referencia,determining a predicted motion vector for a bidirectionally predicted frame with a direct mode prediction frame distance method, wherein the frame distance method comprises: given a predicted image area in a first reference frame, the predicted frame bidirectionally with another predicted image area, and a motion vector between the predicted image area in the first reference frame and an image area in a second reference frame, the predicted motion vector is the motion vector multiplied by a frame-scale fraction, wherein the numerator of the frame-scale fraction is equal to a first distance between the bidirectionally predicted frame of the other predicted image area and the first reference frame and the denominator of the scale fraction of frame is equal to a second distance between the first reference frame and the second reference frame referenced by the first frame reference, en donde tanto el primer como el segundo cuadros de referencia están en un orden de visualización que es anterior al orden de visualización del cuadro predicho bidireccionalmente del área de imagen predicha. wherein both the first and second reference frames are in a display order that is earlier than the display order of the bidirectionally predicted frame of the predicted image area.
ES10008909T 2002-06-28 2003-06-27 Improved interpolation of video compression frames Expired - Lifetime ES2780055T3 (en)

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
ES2780055T3 true ES2780055T3 (en) 2020-08-21

Family

ID=29999364

Family Applications (2)

Application Number Title Priority Date Filing Date
ES10005839T Expired - Lifetime ES2775070T3 (en) 2002-06-28 2003-06-27 Improved interpolation of video compression frames
ES10008909T Expired - Lifetime ES2780055T3 (en) 2002-06-28 2003-06-27 Improved interpolation of video compression frames

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES10005839T Expired - Lifetime ES2775070T3 (en) 2002-06-28 2003-06-27 Improved interpolation of video compression frames

Country Status (17)

Country Link
US (45) US7266150B2 (en)
EP (6) EP2254339B1 (en)
JP (1) JP2006513592A (en)
KR (1) KR100748194B1 (en)
CN (10) CN102256123B (en)
AU (3) AU2003247759B2 (en)
CA (1) CA2490378C (en)
DK (2) DK2262268T3 (en)
ES (2) ES2775070T3 (en)
HK (8) HK1148888A1 (en)
HU (2) HUE048316T2 (en)
MX (1) MXPA05000065A (en)
MY (9) MY184819A (en)
PT (2) PT2262268T (en)
SI (2) SI2262268T1 (en)
TW (1) TWI231711B (en)
WO (1) WO2004004310A2 (en)

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
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
US11109114B2 (en) * 2001-04-18 2021-08-31 Grass Valley Canada Advertisement management method, system, and computer program product
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
WO2003041415A1 (en) * 2001-11-06 2003-05-15 Matsushita Electric Industrial Co., Ltd. Moving picture coding method and moving picture decoding method
CN101448162B (en) 2001-12-17 2013-01-02 微软公司 Method for processing video image
AU2002347524A1 (en) * 2001-12-21 2003-07-09 Koninklijke Philips Electronics N.V. Image coding with block dropping
JP4015934B2 (en) * 2002-04-18 2007-11-28 株式会社東芝 Video coding method and apparatus
JP4130783B2 (en) * 2002-04-23 2008-08-06 松下電器産業株式会社 Motion vector encoding method and motion vector decoding method
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
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
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
EP1422928A3 (en) * 2002-11-22 2009-03-11 Panasonic Corporation Motion compensated interpolation of digital video signals
JP2004179687A (en) * 2002-11-22 2004-06-24 Toshiba Corp Motion picture coding/decoding method and apparatus thereof
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
WO2005088929A1 (en) 2004-02-12 2005-09-22 Nokia Corporation Classified media quality of experience
JP2005318297A (en) * 2004-04-28 2005-11-10 Toshiba Corp Method and device for encoding/decoding dynamic image
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 (en) * 2004-09-21 2009-11-18 キヤノン株式会社 Imaging apparatus and control method thereof
JP4483501B2 (en) 2004-09-22 2010-06-16 株式会社ニコン Image processing apparatus, program, and method for performing preprocessing for reproducing still image as moving picture
JP4284265B2 (en) * 2004-11-02 2009-06-24 株式会社東芝 Moving picture coding apparatus, moving picture coding method, moving picture decoding apparatus, and moving picture decoding method
TW200623897A (en) 2004-12-02 2006-07-01 Seiko Epson Corp Image display method, image display device, and projector
KR100888962B1 (en) * 2004-12-06 2009-03-17 엘지전자 주식회사 Method for encoding and decoding video signal
DE102004061906A1 (en) * 2004-12-22 2006-07-13 Siemens Ag Shape coding method, and associated image decoding method, encoding device and decoding device
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 (en) * 2005-03-29 2006-10-12 Sanyo Electric Co Ltd Encoder and encoding method, and decoder and decoding method
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 (en) 2005-06-03 2007-05-10 삼성전자주식회사 Method for intra prediction using the symmetry of video, method and apparatus for encoding and decoding video using the same
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 (en) * 2005-07-29 2007-02-02 Canon Res Ct France Soc Par Ac Multidimensional digital signal e.g. digital image, filtering method for e.g. coding device, involves obtaining filtering value of filtered sample in selecting one value among simulated filtering values of sample based on preset criterion
US7606392B2 (en) * 2005-08-26 2009-10-20 Sony Corporation Capturing and processing facial motion data
US8780119B2 (en) * 2005-08-26 2014-07-15 Sony Corporation Reconstruction render farm used in motion capture
US8014565B2 (en) * 2005-08-26 2011-09-06 Sony Corporation Labeling used in motion capture
US7701487B2 (en) * 2005-08-26 2010-04-20 Sony Corporation Multicast control of motion capture sequences
US8054312B2 (en) * 2005-08-26 2011-11-08 Sony Corporation Material for motion capture costumes and props
US7720259B2 (en) * 2005-08-26 2010-05-18 Sony Corporation Motion capture using primary and secondary markers
US8553151B2 (en) * 2005-09-02 2013-10-08 Gvbb Holdings S.A.R.L. Video effect recall technique
KR100750128B1 (en) 2005-09-06 2007-08-21 삼성전자주식회사 Method and apparatus for intra prediction of video
JP4534935B2 (en) * 2005-10-04 2010-09-01 株式会社日立製作所 Transcoder, recording apparatus, and transcoding method
CN100386797C (en) * 2005-11-03 2008-05-07 西安交通大学 Method of generating line field signal beneficial to realize digital video frequency image contraction and enlargement interpolation
BRPI0600823B1 (en) * 2006-03-14 2018-02-14 Whirlpool S.A. PROGRAMMING ELECTRIC HOUSEHOLD PROGRAMMING SYSTEM AND ASSEMBLY PROGRAMMABLE HOUSEHOLD PROGRAMMING METHOD
JP4384130B2 (en) * 2006-03-28 2009-12-16 株式会社東芝 Video decoding method and apparatus
US20080025390A1 (en) * 2006-07-25 2008-01-31 Fang Shi Adaptive video frame interpolation
JP4410225B2 (en) * 2006-08-07 2010-02-03 株式会社東芝 Moving picture decoding apparatus and method
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
KR20080022614A (en) * 2006-09-07 2008-03-12 삼성전자주식회사 Method for detecting global image, display device and method for driving the display device
KR100842557B1 (en) * 2006-10-20 2008-07-01 삼성전자주식회사 Method for accessing memory in moving picture processing device
CN105392005A (en) * 2006-11-08 2016-03-09 汤姆逊许可证公司 Methods and apparatus for in-loop de-artifact filtering
DE102006057983A1 (en) * 2006-12-08 2008-06-12 Siemens Ag Method for video encoding a sequence of digitized images
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
JPWO2008108372A1 (en) * 2007-03-05 2010-06-17 日本電気株式会社 Weighted prediction information calculation method, apparatus, program, video encoding method, apparatus, and program
JP4853337B2 (en) * 2007-03-09 2012-01-11 ソニー株式会社 Signal converter
US7813564B2 (en) * 2007-03-30 2010-10-12 Eastman Kodak Company Method for controlling the amount of compressed data
JP5125294B2 (en) 2007-07-31 2013-01-23 株式会社ニコン Program, image processing apparatus, imaging apparatus, and image processing method
US20100303155A1 (en) * 2008-01-29 2010-12-02 Yuki Maruyama Image coding device, image coding method, image coding integrated circuit and image coding program
WO2009148412A1 (en) * 2008-06-06 2009-12-10 Agency For Science, Technology And Research Methods and devices for estimating motion in a plurality of frames
US10123050B2 (en) 2008-07-11 2018-11-06 Qualcomm Incorporated Filtering video data using a plurality of filters
CN102113326A (en) 2008-08-04 2011-06-29 杜比实验室特许公司 Overlapped block disparity estimation and compensation architecture
JP5200788B2 (en) * 2008-09-09 2013-06-05 富士通株式会社 Video signal processing apparatus, video signal processing method, and video signal processing program
KR101441903B1 (en) * 2008-10-16 2014-09-24 에스케이텔레콤 주식회사 Reference Frame Creating Method and Apparatus and Video Encoding/Decoding Method and Apparatus Using Same
US8317325B2 (en) 2008-10-31 2012-11-27 Cross Match Technologies, Inc. Apparatus and method for two eye imaging for iris identification
JP4692614B2 (en) * 2008-11-28 2011-06-01 ブラザー工業株式会社 Printing apparatus and program
JP2010130510A (en) * 2008-11-28 2010-06-10 Brother Ind Ltd Printing device and program
JP4692615B2 (en) * 2008-11-28 2011-06-01 ブラザー工業株式会社 Printing apparatus and program
KR102433488B1 (en) 2008-12-19 2022-08-18 가부시키가이샤 한도오따이 에네루기 켄큐쇼 Method for driving display device
US9143803B2 (en) * 2009-01-15 2015-09-22 Qualcomm Incorporated Filter prediction based on activity metrics in video coding
JP5686499B2 (en) * 2009-01-22 2015-03-18 株式会社Nttドコモ Image predictive encoding apparatus, method and program, image predictive decoding apparatus, method and program, and encoding / decoding system and method
DE112010000687B4 (en) * 2009-01-22 2019-10-31 Hitachi High-Technologies Corp. electron microscope
WO2010086545A1 (en) * 2009-01-28 2010-08-05 France Telecom Method for encoding and decoding an image sequence implementing a movement compensation, and corresponding encoding and decoding devices, signal, and computer programs
KR101599872B1 (en) * 2009-02-25 2016-03-04 삼성전자주식회사 Digital photographing apparatus method for controlling the same and recording medium storing program to implement the method
US8363722B2 (en) * 2009-03-31 2013-01-29 Sony Corporation Method and apparatus for hierarchical bi-directional intra-prediction in a video encoder
JP5343739B2 (en) * 2009-07-02 2013-11-13 ブラザー工業株式会社 Output device and program
US9161057B2 (en) 2009-07-09 2015-10-13 Qualcomm Incorporated Non-zero rounding and prediction mode selection techniques in video encoding
US8995526B2 (en) * 2009-07-09 2015-03-31 Qualcomm Incorporated Different weights for uni-directional prediction and bi-directional prediction in video coding
JP2011024017A (en) * 2009-07-16 2011-02-03 Sony Corp Moving image extracting apparatus, program, and moving image extracting method
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 (en) * 2010-08-30 2013-06-19 株式会社Jvcケンウッド Image data transmitting apparatus, image data receiving apparatus, image data transmission system, image data transmitting method, and image data receiving method
US9319880B2 (en) 2010-09-15 2016-04-19 Intel Corporation Reformatting data to decrease bandwidth between a video encoder and a buffer
DK3001686T3 (en) 2010-10-06 2020-03-23 Ntt Docomo Inc DEVICE, PROCEDURE AND PROGRAM FOR BIPREPREDIC IMAGE DECODING
US9161056B2 (en) * 2010-11-24 2015-10-13 Texas Instruments Incorporated Method for low memory footprint compressed video decoding
CN102035997B (en) * 2010-12-14 2012-08-08 杭州爱威芯科技有限公司 Image sharpening method based on mode prediction and direction sequencing
WO2012115420A2 (en) 2011-02-23 2012-08-30 엘지전자 주식회사 Intra-prediction method using filtering, and apparatus using the method
US8982960B2 (en) 2011-02-23 2015-03-17 Qualcomm Incorporated Multi-metric filtering
KR101729463B1 (en) * 2011-06-23 2017-04-21 가부시키가이샤 제이브이씨 켄우드 Image encoding device, image encoding method and image encoding program, and image decoding device, image decoding method and image decoding program
US9094689B2 (en) 2011-07-01 2015-07-28 Google Technology Holdings LLC Motion vector prediction design simplification
US8811756B2 (en) 2011-07-11 2014-08-19 International Business Machines Corporation Image compression
CN103931193B (en) * 2011-09-21 2017-11-21 Lg电子株式会社 The method and apparatus of encoding/decoding image
US20130083852A1 (en) * 2011-09-30 2013-04-04 Broadcom Corporation Two-dimensional motion compensation filter operation and processing
US9185428B2 (en) * 2011-11-04 2015-11-10 Google Technology Holdings LLC Motion vector scaling for non-uniform motion vector grid
JP2013102297A (en) * 2011-11-07 2013-05-23 Canon Inc Image encoding method, image encoder and program, image decoding method, and image decoder and program
JP5485969B2 (en) * 2011-11-07 2014-05-07 株式会社Nttドコモ Moving picture predictive coding apparatus, moving picture predictive coding method, moving picture predictive coding program, moving picture predictive decoding apparatus, moving picture predictive decoding method, and moving picture predictive decoding program
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
EP2801194B1 (en) * 2012-01-09 2021-10-27 Huawei Technologies Co., Ltd. Quantization matrix (qm) coding based on weighted prediction
JP6222514B2 (en) * 2012-01-11 2017-11-01 パナソニックIpマネジメント株式会社 Image processing apparatus, imaging apparatus, and computer program
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
KR101759855B1 (en) * 2012-06-12 2017-07-19 엘지전자 주식회사 Image decoding method and apparatus using same
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
CN104322063B (en) * 2012-07-27 2018-11-02 惠普发展公司,有限责任合伙企业 Method, system and the computer readable storage medium of video stream compression
US9137455B1 (en) * 2014-11-05 2015-09-15 Duelight Llc Image sensor apparatus and method for obtaining multiple exposures with zero interframe time
US9918017B2 (en) 2012-09-04 2018-03-13 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
US9179062B1 (en) 2014-11-06 2015-11-03 Duelight Llc Systems and methods for performing operations on pixel data
US9531961B2 (en) 2015-05-01 2016-12-27 Duelight Llc Systems and methods for generating a digital image using separate color and intensity data
US9167174B1 (en) 2014-11-05 2015-10-20 Duelight Llc Systems and methods for high-dynamic range images
US9154708B1 (en) 2014-11-06 2015-10-06 Duelight Llc Image sensor apparatus and method for simultaneously capturing flash and ambient illuminated images
US8976264B2 (en) 2012-09-04 2015-03-10 Duelight Llc Color balance in digital photography
US9160936B1 (en) 2014-11-07 2015-10-13 Duelight Llc Systems and methods for generating a high-dynamic range (HDR) pixel stream
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
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
US9819849B1 (en) 2016-07-01 2017-11-14 Duelight Llc Systems and methods for capturing digital images
US10558848B2 (en) 2017-10-05 2020-02-11 Duelight Llc System, method, and computer program for capturing an image with correct skin tone exposure
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
EP2959676B1 (en) 2013-02-21 2020-09-23 Dolby Laboratories Licensing Corporation Systems and methods for appearance mapping for compositing overlay graphics
CN104717512B (en) * 2013-12-16 2019-07-23 浙江大学 To double decoding methods and device for assuming coded picture block before a kind of
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
WO2016184527A1 (en) 2015-05-21 2016-11-24 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
WO2017030200A1 (en) * 2015-08-20 2017-02-23 日本放送協会 Image encoding device, image decoding device, and programs for same
WO2017035831A1 (en) * 2015-09-06 2017-03-09 Mediatek Inc. Adaptive inter prediction
EP3354028B1 (en) 2015-09-25 2021-09-15 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation with selectable interpolation filter
EP3354027A1 (en) * 2015-09-25 2018-08-01 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
CA2999848C (en) 2015-09-25 2020-08-18 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
EP3348057A1 (en) * 2015-09-25 2018-07-18 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
KR20180054751A (en) 2015-09-25 2018-05-24 후아웨이 테크놀러지 컴퍼니 리미티드 Adaptive sharpening filter for predictive coding
WO2017062885A1 (en) * 2015-10-08 2017-04-13 Sharp Laboratories Of America, Inc. 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
CN113612993B (en) * 2016-02-05 2023-06-09 寰发股份有限公司 Motion compensation method and device for video data
JP6714078B2 (en) * 2016-05-10 2020-06-24 オリンパス株式会社 Image processing apparatus, image processing method, and image processing program
US10136155B2 (en) 2016-07-27 2018-11-20 Cisco Technology, Inc. Motion compensation using a patchwork motion field
CN106358041B (en) * 2016-08-30 2019-05-10 北京奇艺世纪科技有限公司 A kind of interframe prediction encoding method and device
CN114449163A (en) 2016-09-01 2022-05-06 迪尤莱特公司 Apparatus and method for adjusting focus based on focus target information
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 (en) * 2016-12-13 2019-09-01 日商夏普股份有限公司 Systems and methods for reducing artifacts in temporal scalable layers of video
CN117061736A (en) 2017-01-13 2023-11-14 谷歌有限责任公司 Composite prediction for video coding
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
WO2018212569A1 (en) * 2017-05-16 2018-11-22 엘지전자(주) Image processing method 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
US10284869B2 (en) 2017-09-28 2019-05-07 Google Llc Constrained motion field estimation for hardware efficiency
US10798321B2 (en) * 2017-08-15 2020-10-06 Dolby Laboratories Licensing Corporation Bit-depth efficient image processing
US10880573B2 (en) 2017-08-15 2020-12-29 Google Llc Dynamic motion vector referencing for video coding
US10412383B2 (en) * 2017-08-15 2019-09-10 Google Llc Compressing groups of video frames using reversed ordering
US10555004B1 (en) * 2017-09-22 2020-02-04 Pixelworks, Inc. Low frequency compensated encoding
WO2020019354A1 (en) * 2018-07-27 2020-01-30 深圳市大疆创新科技有限公司 Video encoding method and device, and computer readable storage medium
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 (en) * 2019-07-10 2020-12-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Equipment and methods for video motion compensation
TW202147850A (en) * 2020-05-01 2021-12-16 美商Op解決方案公司 Methods and systems for combined lossless and lossy coding
WO2021242873A1 (en) 2020-05-26 2021-12-02 Dolby Laboratories Licensing Corporation Picture metadata for variable frame-rate video
CN113808510B (en) * 2020-06-15 2024-04-09 明基智能科技(上海)有限公司 Image adjusting method
CN111885336B (en) * 2020-06-19 2022-03-29 成都东方盛行电子有限责任公司 Non-frame-coding rate conversion method under frame mode
WO2022047129A1 (en) * 2020-08-28 2022-03-03 Op Solutions, Llc Methods and systems for combined lossless and lossy coding
CN113114934B (en) * 2021-03-31 2022-08-05 太原理工大学 Multi-focus video acquisition method and system for urine red blood cells
US11936992B2 (en) * 2022-01-18 2024-03-19 Apple Inc. Multi-mode demosaicing for raw image data
KR102405045B1 (en) * 2022-02-22 2022-06-07 주식회사 전자사탕사 server for platform providing non-face-to-face video production service in the form of shopping mall and operating method thereof
CN115184016A (en) * 2022-09-06 2022-10-14 江苏东控自动化科技有限公司 Elevator bearing fault detection method

Family Cites Families (190)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3408061A1 (en) * 1984-03-05 1985-09-05 ANT Nachrichtentechnik GmbH, 7150 Backnang METHOD FOR MOTION-ADAPTIVE INTERPOLATION OF TELEVISION SEQUENCES AND APPLICATIONS OF THIS METHOD
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 (en) 1987-11-27 1989-06-02 Dainippon Printing Co Ltd Data coding method
JPH0537915Y2 (en) 1988-03-25 1993-09-24
US4985768A (en) * 1989-01-20 1991-01-15 Victor Company Of Japan, Ltd. Inter-frame predictive encoding system with encoded and transmitted prediction error
JP2530217B2 (en) 1989-01-20 1996-09-04 日本ビクター株式会社 Interframe predictive coding device and decoding device
JPH07109990B2 (en) * 1989-04-27 1995-11-22 日本ビクター株式会社 Adaptive interframe predictive coding method and decoding method
US5227972A (en) * 1989-09-18 1993-07-13 Halliburton Logging Services, Inc. Matched filter data smoothing system
EP0424026B1 (en) * 1989-10-14 1997-07-23 Sony Corporation Video signal transmitting system and method
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
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
US5986713A (en) 1991-05-31 1999-11-16 Kabushiki Kaisha Toshiba Video coding apparatus using inter-field prediction
JPH05236456A (en) 1992-02-18 1993-09-10 Toshiba Corp Method and device for encoding moving image
JP2699703B2 (en) 1991-07-31 1998-01-19 松下電器産業株式会社 Motion compensation prediction method and image signal encoding method using the same
JP2507204B2 (en) 1991-08-30 1996-06-12 松下電器産業株式会社 Video signal encoder
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 (en) * 1991-09-30 1993-04-16 Sony Corp Dynamic picture encoder
JP3263960B2 (en) * 1991-10-22 2002-03-11 ソニー株式会社 Motion vector encoder and decoder
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 (en) 1991-12-28 1995-02-25 주식회사금성사 Tv video signal scanning line number increasing method and apparatus by three dimensional weighting median filter
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 (en) 1992-06-30 2002-01-15 ソニー株式会社 Digital image signal transmission equipment
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 (en) * 1992-11-02 2004-07-21 ソニー株式会社 Image signal encoding device, image signal decoding device
JPH06165150A (en) 1992-11-18 1994-06-10 Matsushita Electric Ind Co Ltd Dynamic picture coding/decoding device
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 (en) * 1993-01-22 1999-10-12 松下電器産業株式会社 Resolution conversion method, resolution conversion device, image encoding device, image decoding device
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 (en) 1993-06-10 1994-12-22 Casio Comput Co Ltd Moving picture processing method
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 (en) 1993-08-06 1999-05-12 Philips Patentverwaltung Procedure for the elimination of interference signals from video signals
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 (en) 1993-12-28 1995-08-04 Toshiba Corp Hierarchical coding and decoding device
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 (en) 1994-06-07 1995-12-22 Hitachi Micro Comput Eng Ltd Method and circuit for operating median
DE69535228T2 (en) 1994-06-08 2007-09-13 Matsushita Electric Industrial Co., Ltd., Kadoma Image conversion device
US5796438A (en) * 1994-07-05 1998-08-18 Sony Corporation Methods and apparatus for interpolating picture information
JPH0830781A (en) 1994-07-14 1996-02-02 Mitsubishi Electric Corp Spatial filter
KR0126871B1 (en) * 1994-07-30 1997-12-29 심상철 HIGH SPEED BMA FOR Bi-DIRECTIONAL MOVING VECTOR ESTIMATION
JP2970417B2 (en) * 1994-08-22 1999-11-02 日本電気株式会社 Video coding method
KR0151210B1 (en) * 1994-09-23 1998-10-15 구자홍 Motion compensation control apparatus for mpeg
JP3258840B2 (en) 1994-12-27 2002-02-18 シャープ株式会社 Video encoding device and region extraction device
JPH08186714A (en) 1994-12-27 1996-07-16 Texas Instr Inc <Ti> Noise removal of picture data and its device
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
GB2301971B (en) * 1995-06-06 1999-10-06 Sony Uk Ltd Video compression
GB2301970B (en) 1995-06-06 2000-03-01 Sony Uk Ltd Motion compensated video processing
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 (en) 1995-09-20 1997-03-28 Matsushita Electric Ind Co Ltd Coder for moving image signal
US5835498A (en) 1995-10-05 1998-11-10 Silicon Image, Inc. System and method for sending multiple data signals over a serial link
US5896176A (en) * 1995-10-27 1999-04-20 Texas Instruments Incorporated Content-based video compression
JP3788823B2 (en) 1995-10-27 2006-06-21 株式会社東芝 Moving picture encoding apparatus and moving picture decoding apparatus
US6026183A (en) * 1995-10-27 2000-02-15 Texas Instruments Incorporated Content-based video compression
KR100209793B1 (en) * 1995-10-28 1999-07-15 전주범 Apparatus for encoding/decoding a video signals by using feature point based motion estimation
JP3347954B2 (en) * 1995-11-02 2002-11-20 三菱電機株式会社 Video encoding device and video decoding device
JPH09163376A (en) 1995-12-05 1997-06-20 Nippon Telegr & Teleph Corp <Ntt> Inter-frame coding, decoding method and device for moving image
JPH09182083A (en) 1995-12-27 1997-07-11 Matsushita Electric Ind Co Ltd Video image encoding method and decoding method and device therefor
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
EP0836329A4 (en) * 1996-04-12 2002-09-04 Sony Corp Image encoder, image encoding method and medium on which image encoding program is recorded
KR100471956B1 (en) 1996-04-25 2005-05-16 마쯔시다덴기산교 가부시키가이샤 Moving picture encoding apparatus and method
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 (en) 1996-05-09 1999-06-15 배순훈 Method of and apparatus for compensating the vacant space of image frames incurred by global motion
US5825680A (en) 1996-06-21 1998-10-20 Digital Equipment Corporation Method and apparatus for performing fast division
JPH10154781A (en) 1996-07-19 1998-06-09 Denso Corp Boiling and cooling device
US6069914A (en) 1996-09-19 2000-05-30 Nec Research Institute, Inc. Watermarking of image data using MPEG/JPEG coefficients
JP3263807B2 (en) * 1996-09-09 2002-03-11 ソニー株式会社 Image encoding apparatus and image encoding method
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
US5974184A (en) * 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
CN1297147C (en) * 1997-03-07 2007-01-24 通用仪器公司 Prediction and coding of BI-directionally predicted video object planes 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
US6115420A (en) 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
US5903673A (en) 1997-03-14 1999-05-11 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
ES2561212T3 (en) * 1997-06-09 2016-02-25 Hitachi, Ltd. Image decoding procedure
TW398131B (en) * 1997-06-20 2000-07-11 Matsushita Electric Ind Co Ltd The image process method, the image process device and the data memory 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 (en) * 1997-07-10 2001-07-23 松下電器産業株式会社 Image decoding method
KR100226722B1 (en) 1997-07-30 1999-10-15 구자홍 Method for estimating motion vector of moving picture
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
DE69813131T2 (en) * 1997-10-07 2003-10-23 Canon Kk Imaging process
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 (en) * 1997-11-12 1999-12-15 구자홍 Video format conversion appratus and its method in dtv
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
US6654417B1 (en) 1998-01-26 2003-11-25 Stmicroelectronics 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 (en) 1998-02-23 1999-08-31 Nippon Telegr & Teleph Corp <Ntt> Moving image coding method, decoding method, encoding device, decoding device and recording medium storing moving image coding and decoding program
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 (en) * 1998-04-30 2008-07-23 ソニー株式会社 Image signal processing apparatus and method
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 (en) 1998-07-14 2000-12-15 구자홍 Idct in mpeg decoder
JP4026238B2 (en) * 1998-07-23 2007-12-26 ソニー株式会社 Image decoding apparatus and image decoding method
US6252906B1 (en) 1998-07-31 2001-06-26 Thomson Licensing S.A. Decimation of a high definition video signal
EP1110407B1 (en) * 1998-08-18 2002-05-08 Siemens Aktiengesellschaft Method and array for coding and decoding a digitized image using an overall motion vector
JP3748717B2 (en) 1998-08-31 2006-02-22 シャープ株式会社 Video encoding device
JP3576402B2 (en) * 1998-10-23 2004-10-13 三菱電機株式会社 Image decoding device
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
CN1166213C (en) * 1999-04-30 2004-09-08 皇家菲利浦电子有限公司 Video encoding method with selection of B-frame encoding mode
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
AU6175500A (en) 1999-07-30 2001-02-19 Indinell Sociedad Anonima Method and apparatus for processing digital images and audio data
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 (en) 1999-10-07 2001-04-20 Matsushita Electric Ind Co Ltd Video signal encoding device
JP2003513565A (en) 1999-10-29 2003-04-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Video coding method
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
DE69934605T2 (en) * 1999-11-29 2007-10-11 Sony Corp. Method and device for processing video signals by means of characteristic points Extraction in the compressed area.
JP2003519990A (en) 1999-12-29 2003-06-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Apparatus for encoding and decoding images
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 (en) * 2000-03-27 2001-10-03 北京化工大学 Compound Mg-Al oxide catalyst for alkoxylation reaction and its preparing process
WO2001077871A1 (en) 2000-04-07 2001-10-18 Demografx Enhanced temporal and resolution layering in advanced television
KR100708091B1 (en) * 2000-06-13 2007-04-16 삼성전자주식회사 Frame rate converter using bidirectional motion vector and method thereof
US6629104B1 (en) 2000-11-22 2003-09-30 Eastman Kodak Company Method for adding personalized metadata to a collection of digital images
EP1649697B1 (en) * 2000-12-06 2008-09-17 RealNetworks, Inc. Intra coding video data apparatuses
US6765964B1 (en) * 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
EP1356676B1 (en) * 2001-01-16 2007-04-11 Koninklijke Philips Electronics N.V. Reducing halo-like effects in motion-compensated interpolation
CN1179063C (en) 2001-02-28 2004-12-08 陈晴祺 Alloy with shock damping effect
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
US20030012287A1 (en) * 2001-03-05 2003-01-16 Ioannis Katsavounidis Systems and methods for decoding of systematic forward error correction (FEC) codes of selected data in a video bitstream
JP3962553B2 (en) 2001-03-30 2007-08-22 フジノン株式会社 Electronic endoscope device
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
WO2003001491A2 (en) * 2001-06-21 2003-01-03 Koninklijke Philips Electronics N.V. Image processing unit for and method of processing pixels and image display apparatus comprising such an image processing unit
US20030112873A1 (en) 2001-07-11 2003-06-19 Demos Gary A. Motion estimation for video compression systems
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
US6816552B2 (en) 2001-07-11 2004-11-09 Dolby Laboratories Licensing Corporation 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
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 (en) * 2001-12-17 2013-01-02 微软公司 Method for processing video image
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 (en) * 2002-04-19 2004-01-08 Matsushita Electric Ind Co Ltd Method for encoding moving image and method for decoding moving image
KR101011849B1 (en) * 2002-04-19 2011-01-31 파나소닉 주식회사 Motion vector calculating method
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 (en) 2002-10-23 2005-09-21 中国科学院电子学研究所 Vibrative micro electric field sensor
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 (en) 2003-07-30 2005-06-02 Infineon Technologies Ag Weighting circuit for a multi-carrier signal receiver
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 (en) 2004-05-27 2008-07-30 株式会社Nhvコーポレーション Electron source for electron beam irradiation equipment
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
US20120134414A1 (en) 2012-05-31
US7266150B2 (en) 2007-09-04
WO2004004310A2 (en) 2004-01-08
CN102256136B (en) 2017-06-27
HK1159919A1 (en) 2012-08-03
US20160007041A1 (en) 2016-01-07
EP2254339B1 (en) 2019-12-04
MY182370A (en) 2021-01-21
US8767829B2 (en) 2014-07-01
US8144774B2 (en) 2012-03-27
US20140010301A1 (en) 2014-01-09
US8761257B2 (en) 2014-06-24
US20150092853A1 (en) 2015-04-02
US20120033734A1 (en) 2012-02-09
MY170517A (en) 2019-08-08
US20140211852A1 (en) 2014-07-31
US8139638B2 (en) 2012-03-20
AU2003247759A1 (en) 2004-01-19
MY142934A (en) 2011-01-31
US8873629B2 (en) 2014-10-28
EP2782345A1 (en) 2014-09-24
US8995528B2 (en) 2015-03-31
US9247269B2 (en) 2016-01-26
US8139640B2 (en) 2012-03-20
MY154424A (en) 2015-06-15
AU2008200457C1 (en) 2011-01-06
CN102227134B (en) 2015-11-25
ES2775070T3 (en) 2020-07-23
MY171283A (en) 2019-10-07
US20130223527A1 (en) 2013-08-29
US8737472B2 (en) 2014-05-27
US8401078B2 (en) 2013-03-19
US20210021864A1 (en) 2021-01-21
US9078002B2 (en) 2015-07-07
CN102256134B (en) 2014-09-10
CN101969569B (en) 2012-10-24
EP2262268A3 (en) 2011-06-15
EP2458863A2 (en) 2012-05-30
DK2262268T3 (en) 2020-03-09
US20170111656A1 (en) 2017-04-20
US9571855B2 (en) 2017-02-14
US10869057B2 (en) 2020-12-15
US20150092852A1 (en) 2015-04-02
US8699572B2 (en) 2014-04-15
US8559513B2 (en) 2013-10-15
CN102256134A (en) 2011-11-23
US20120033732A1 (en) 2012-02-09
US8249158B2 (en) 2012-08-21
EP2458863A3 (en) 2014-08-13
US20130077688A1 (en) 2013-03-28
US20110096837A1 (en) 2011-04-28
US8379720B2 (en) 2013-02-19
US7894524B2 (en) 2011-02-22
EP2254339A2 (en) 2010-11-24
HK1159915A1 (en) 2012-08-03
CN102256135A (en) 2011-11-23
US8873632B2 (en) 2014-10-28
US20120033735A1 (en) 2012-02-09
CN102176752A (en) 2011-09-07
US20110103477A1 (en) 2011-05-05
US20170374383A1 (en) 2017-12-28
MY154525A (en) 2015-06-30
US8279929B2 (en) 2012-10-02
US8503529B2 (en) 2013-08-06
CN102256135B (en) 2014-08-20
CN102256122A (en) 2011-11-23
US8290043B2 (en) 2012-10-16
CN101969569A (en) 2011-02-09
US8160142B2 (en) 2012-04-17
HK1163989A1 (en) 2012-09-14
KR100748194B1 (en) 2007-08-10
US20170374382A1 (en) 2017-12-28
AU2008200457A1 (en) 2008-02-21
US20110103478A1 (en) 2011-05-05
US20130077692A1 (en) 2013-03-28
AU2008200457B2 (en) 2010-06-03
US8542738B2 (en) 2013-09-24
US20100118957A1 (en) 2010-05-13
CN102227134A (en) 2011-10-26
US8139639B2 (en) 2012-03-20
US20120051428A1 (en) 2012-03-01
US20110103476A1 (en) 2011-05-05
PT2262268T (en) 2020-04-01
HK1157548A1 (en) 2012-06-29
US20130070851A1 (en) 2013-03-21
CA2490378A1 (en) 2004-01-08
US8050323B2 (en) 2011-11-01
MY184819A (en) 2021-04-23
MXPA05000065A (en) 2005-04-08
TW200420131A (en) 2004-10-01
US10080035B2 (en) 2018-09-18
DK2254339T3 (en) 2020-03-09
US20100014587A1 (en) 2010-01-21
US20120027090A1 (en) 2012-02-02
CN102256122B (en) 2016-02-10
CN1663258B (en) 2011-07-06
US20120044995A1 (en) 2012-02-23
US8526496B2 (en) 2013-09-03
HUE048316T2 (en) 2020-07-28
AU2010212510A1 (en) 2010-09-16
HK1148888A1 (en) 2011-09-16
JP2006513592A (en) 2006-04-20
CN102256123A (en) 2011-11-23
US8488675B2 (en) 2013-07-16
US9386321B2 (en) 2016-07-05
US20110103479A1 (en) 2011-05-05
US8149912B2 (en) 2012-04-03
CN102256123B (en) 2014-09-10
US8477851B2 (en) 2013-07-02
AU2003247759B2 (en) 2008-02-07
US20110096838A1 (en) 2011-04-28
HK1159918A1 (en) 2012-08-03
US20140098864A1 (en) 2014-04-10
US20160301949A1 (en) 2016-10-13
EP1530879A4 (en) 2009-03-18
EP2262268B1 (en) 2019-12-04
US20150271520A1 (en) 2015-09-24
US20120170665A1 (en) 2012-07-05
US20130322534A1 (en) 2013-12-05
CN1663258A (en) 2005-08-31
EP1530879A2 (en) 2005-05-18
CA2490378C (en) 2010-06-08
CN102256136A (en) 2011-11-23
WO2004004310A3 (en) 2005-03-17
US9083979B2 (en) 2015-07-14
US8213507B2 (en) 2012-07-03
EP2458864A3 (en) 2014-08-06
MY162999A (en) 2017-07-31
US9788012B2 (en) 2017-10-10
US8139641B2 (en) 2012-03-20
CN102176752B (en) 2013-02-13
US20130077693A1 (en) 2013-03-28
PT2254339T (en) 2020-04-01
US20160007040A1 (en) 2016-01-07
US8942285B2 (en) 2015-01-27
US20130070858A1 (en) 2013-03-21
US20190158874A1 (en) 2019-05-23
TWI231711B (en) 2005-04-21
US9549201B2 (en) 2017-01-17
CN102176753B (en) 2013-02-13
AU2010212510B2 (en) 2011-07-07
SI2262268T1 (en) 2020-07-31
MY152630A (en) 2014-10-31
US10225574B2 (en) 2019-03-05
US20130279584A1 (en) 2013-10-24
US20150271521A1 (en) 2015-09-24
HK1157549A1 (en) 2012-06-29
US20160301948A1 (en) 2016-10-13
US8325809B2 (en) 2012-12-04
SI2254339T1 (en) 2020-07-31
US8488674B2 (en) 2013-07-16
HUE048314T2 (en) 2020-07-28
EP2254339A3 (en) 2011-06-15
HK1159917A1 (en) 2012-08-03
EP2262268A2 (en) 2010-12-15
US20070268967A1 (en) 2007-11-22
US9473791B2 (en) 2016-10-18
KR20050019809A (en) 2005-03-03
US9232232B2 (en) 2016-01-05
US20040005004A1 (en) 2004-01-08
CN102176753A (en) 2011-09-07
EP2458864A2 (en) 2012-05-30
US20120307900A1 (en) 2012-12-06
US20130223530A1 (en) 2013-08-29
US20130301729A1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
ES2780055T3 (en) Improved interpolation of video compression frames
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
AU2012202740B2 (en) Improved interpolation of video compression frames
AU2012244113B2 (en) 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