ES2343410T3 - Codificacion intertramas con decision rapida de modo. - Google Patents

Codificacion intertramas con decision rapida de modo. Download PDF

Info

Publication number
ES2343410T3
ES2343410T3 ES04755613T ES04755613T ES2343410T3 ES 2343410 T3 ES2343410 T3 ES 2343410T3 ES 04755613 T ES04755613 T ES 04755613T ES 04755613 T ES04755613 T ES 04755613T ES 2343410 T3 ES2343410 T3 ES 2343410T3
Authority
ES
Spain
Prior art keywords
mode
modes
macroblock
true
checking
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
ES04755613T
Other languages
English (en)
Inventor
Peng Yin
Alexandros Michael Tourapis
Jill Macdonald Boyce
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Application granted granted Critical
Publication of ES2343410T3 publication Critical patent/ES2343410T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Método para seleccionar el modo de un macrobloque actual de una trama inter-codificada según una codificación de vídeo H.264/MPEG AVC, en el que los modos de macrobloque son los siguientes: Trama - P: MODO ε {INTRA4X4, INTRA16X16, SALTO, 16X16, 16, 8, 8X16, 8X8, 8X4, 4X8, 4X4} Trama - B: MODO ε {INTRA4X4, INTRA16X16, BI-DIRECTO, DIRECTO, FWD16X16, FWD16X8, FWD8X16, FWD8X8, FWD8X4, FWD4X8, FWD4X4, BAK16X16, BAK16X8, BAK8X16, BAK8X8, BAK8X4, BAK4X8, BAK4X4} y el modo INTRA4x4 contiene los modos: MODO ε {vertical, horizontal, DC, diagonal-abajo-izquierda, diagonal-abajo-derecha, vertical-izquierda, horizontal-abajo, vertical-derecha, horizontal-arriba} e INTRA16x16 contiene los modos: MODO ε {vertical, horizontal, DC, plano} comprendiendo dicho método: - comprobación (420, 422), con un parámetro de cuantificación dado QP, para los modos SALTO y 16x16, si un valor J de dicho modo SALTO es menor que el valor J de dicho modo 16x16 y si dicho modo 16x16 carece de resto de predicción, donde J es un valor de suma correspondiente a la suma de las diferencias de cuadrados entre la señal original y la señal reconstruida, y del producto del multiplicador de Lagrange λMODO, por el número R de bits requeridos asociados al modo actual, comprendiendo los bits del encabezado del macrobloque, los coeficientes de movimiento y todos los coeficientes DCT; - de no ser cierta la premisa anterior, continuar la comprobación (426) del modo 8x8, y de ser cierta, se comprueba (424) si dicho modo SALTO tiene la misma información de movimiento que dicho modo 16x16, si no fuese cierto, se continúa con dicha comprobación (426) del modo 8x8, si fuese cierto, se continúa con la comprobación (438) de los modos intra; - comprobación (426) de dicho modo 8x8 y determinación (428) de si dicho modo 8x8 tiene la misma información de movimiento que dicho modo 16x16; - si fuese cierto, se continúa con la comprobación (432) del modo 4x4, y si no lo fuese, se comprueba (430) el modo 16x8 y el modo 8x16, y si dichos modos tuviesen la misma información de movimiento que dicho modo 16x16, se continúa comprobando (432) el modo 4x4; - comprobación (432) de dicho modo 4x4 y determinación (434) de si dicho modo 4x4 tiene la misma información de movimiento que dicho modo 8x8; - si fuese cierto, se continúa con la comprobación (438) de los modos intra, y si no lo fuese, se comprueban (436) los modos 8x4 y 4x8, y si estos modos tuviesen la misma información de movimiento que dicho modo 8x8, se continúa con la comprobación (438) de los modos intra, - en el que para cada modo de macrobloque específico se dispone de un umbral ajustable de coste de codificación y se selecciona el modo actualmente comprobado (440) para dicho macrobloque actual si se alcanza el correspondiente umbral del coste de codificación de dicho modo, deteniéndose la comprobación de los modos no comprobados restantes.

Description

Codificación intertramas con decisión rápida de modo.
La presente invención se refiere a codificadores y descodificadores de vídeo, y más concretamente, a codificadores para toma de decisiones de modo de intertrama.
Antecedentes de la invención
En la norma de compresión de vídeo JVT, se puede utilizar inter- e intra-codificación para intertramas. El codificador necesita adoptar una decisión relativa al modo para cada macrobloque, en función de diversas consideraciones relativas a la eficiencia de codificación y a la calidad subjetiva. Una decisión de modo inter se asocia con la estimación de movimiento, diferentes tamaños de bloque y selección de múltiples imágenes de referencia. Una decisión de modo intra se asocia a diferentes tipos de bloque y múltiples selecciones de predicción espacial. De esta manera, las decisiones de modo para intertramas plantean una pesada carga para el codificador. Por ello, lo que se precisa es un nuevo método que reduzca la complejidad a la hora de adoptar decisiones relativas a la codificación, manteniendo al mismo tiempo la eficiencia de dicha codificación.
En "Fast Intra-prediction modo selection for 4x4 blocks in H.264", 2003 IEEE Internacional Conferencie on Acoustics, Speech and Signal Processing Proceedings (ICASSP), Nueva York, NY, Vol. 3, 6 de abril de 2003, pp. III389-III391, revela una selección de modo de predicción intra para macrobloques en la codificación de vídeo.
El documento US-A-2003/0099292 describe una codificación de trama de campo H.264 adaptable.
Resumen de la invención
Este y otos inconvenientes y desventajas de la técnica anterior son abordados por un dispositivo y un método para la codificación de intertramas basada en tomas de decisión de modo rápidas.
Se proporciona un codificador de vídeo y los métodos correspondientes para seleccionar el modo de un macrobloque actual de una trama inter-codificada, comprendiendo uno o más primeros modos de comprobación para un subconjunto de modos de macrobloque, comprobando selectivamente otros modos en respuesta a la información sobre el vector de movimiento de los primeros bloques verificados, y la selección del modo correspondiente al macrobloque actual en respuesta a los modos comprobados; comprobación del modo de macrobloque de al menos un macrobloque próximo, y selección del modo del macrobloque actual en respuesta al modo del macrobloque de al menos un macrobloque próximo comprobado; comprobación del coste de un subconjunto de modos de macrobloque, comprobando adicionalmente tan sólo los modos con codificación intra si el coste comprobado satisface un criterio preestablecido, y selección del modo correspondiente al macrobloque actual en respuesta a los modos comprobados, y selección del modo del actual macrobloque en respuesta a los modos de macrobloque comprobados si se cumple el umbral de detención temprana ajustado.
Estos y otros aspectos, características y ventajas de la presente invención serán evidentes mediante la siguiente descripción de los ejemplos de realización, que deberán verse en relación con las figuras adjuntas. La invención se recoge en las reivindicaciones adjuntas.
Breve descripción de las figuras
La presente invención se comprenderá mejor haciendo referencia a las siguientes figuras de ejemplo, en las cuales:
La figura 1 muestra un organigrama de un codificador de vídeo para decisión de modo de codificación rápida, de acuerdo con una realización de la presente invención;
La figura 2 muestra un diagrama de bloques de un codificador de vídeo.
La figura 3 muestra un organigrama de un ejemplo de proceso de decisión de codificación de vector de movimiento de acuerdo con una realización de la presente invención; y
La figura 4 muestra un organigrama de un ejemplo de proceso mixto de decisión de codificación intra e inter, de acuerdo con una realización de la presente invención.
Descripción detallada de las realizaciones preferidas
Los métodos de codificación inter e intra se utilizan para codificación intertramas de acuerdo con las normas de compresión de vídeo. Por lo general, un codificador toma una decisión de codificación inter o intra para cada macrobloque, en función de la eficiencia de codificación y de consideraciones subjetivas de calidad. En la norma de compresión de vídeo JVT, la codificación inter permite diversas particiones de bloque en un macrobloque de 16x16 (concretamente, 16x16, 16x8, 8x16, 8x8 en el caso de un macrobloque, y 8x8,8x4, 4x8,4x4 en el caso de un submacrobloque de 8x8), así como múltiples imágenes de referencia. Además, JVT también soporta los modos SALTO (SKIP) e intra. Los modos intra incluyen dos tipos: INTRA4x4 e INTRA16x16, en los que INTRA4x4 soporta 9 modos e INTRA16x16 soporta 4 modos. Todas estas opciones implican decisiones de modo muy complicadas. Las realizaciones de la presente invención simplifican las decisiones de modo reduciendo el número de posibles modos candidatos a examinar.
Las codificaciones inter e intra se utilizan para las intertramas (tramas P y B) en JVT (que también se conocen como H. 264 y MPEG AVC). Cada macrobloque individual se codifica como intra, utilizando solamente la correlación espacial, o se codifica como inter, utilizando la correlación temporal a partir de tramas anteriormente codificados. Por lo general, un codificador toma una decisión de codificación inter/intra para cada macrobloque, en función de la eficiencia de codificación y de consideraciones de calidad subjetivas. La intercodificación suele utilizarse para macrobloques que se han predicho bien a partir de las imágenes anteriores, y la intracodificación suele utilizarse para los macrobloques que no están bien predichos a partir de las imágenes anteriores, o para macrobloques con baja actividad espacial.
La norma JVT utiliza particiones de macrobloque jerárquicas con estructura arbórea. Los macrobloques intercodificados de 16x16 píxeles pueden descomponerse en particiones de macrobloque con unos tamaños de 16x8, 8x16, u 8x8 píxeles. Las particiones de macrobloques de 8x8 píxeles también se conocen como sub-macrobloques. Los submacrobloques pueden seguir descomponiéndose en particiones de submacrobloques con unos tamaños de 8x4,4x8, y 4x4 píxeles. Un codificador puede seleccionar cómo dividir el macrobloque en particiones y en particiones de submacrobloques, en función de las características de un macrobloque específico, a fin de maximizar la eficiencia de compresión y la calidad subjetiva.
Pueden utilizarse múltiples imágenes de referencia para la interpredicción, tal como un índice de imágenes de referencia codificado para indicar cuál de las múltiples imágenes de referencia se ha utilizado. En las imágenes P (o segmentos P) tan sólo se utiliza la predicción monodireccional, y las imágenes de referencia válidas se gestionan en la lista 0. En las imágenes B (o segmentos B) se gestionan dos listas de imágenes de referencia, la lista 0 y la lista 1, pudiendo efectuarse una doble predicción utilizando la lista 0 y la lista 1. Cuando se utiliza la doble predicción, los predictores de la lista 0 y la lista 1 se promedian para constituir un predictor final.
Cada partición de macrobloque puede tener un índice de imágenes de referencia independiente, un tipo de predicción (lista 0, lista 1, predicción doble) y un vector de movimiento independiente. Cada partición del submacrobloque puede tener vectores de movimiento independientes, pero todas las particiones del submacrobloque correspondientes al mismo submacrobloque utilizan el mismo índice de imágenes de referencia y tipo de predicción.
En el caso de macrobloques con codificación inter, las tramas P también soportan el modo SALTO (SKIP), mientras que las tramas B soportan tanto los modos SALTO (SKIP) y DIRECTO (DIRECT). En el modo SALTO (SKIP), no se codifica ningún movimiento ni información residual. La información de movimiento correspondiente a un macrobloque SALTO (SKIP) es la misma que un predictor de vector de movimiento especificado por el tipo de imagen/ segmento (P o B) y otras informaciones, como los parámetros relativos al nivel de secuencia y segmento. La información de movimiento está también relacionada con otros macrobloques contiguos, temporal o espacialmente, y su propia posición de macrobloque dentro del segmento. En el modo DIRECTO (DIRECT), por otra parte, no se codifica información de movimiento, sino el residuo de la predicción. Tanto los macrobloques como los submacrobloques soportan el modo DIRECTO (DIRECT).
En el caso de macrobloques con codificación intra, se soportan dos tipos de bloque: 4x4 y 16x16. INTRA4x4 soporta 9 modos de predicción: predicción vertical, horizontal, DC, diagonal descendente izquierda, diagonal descendente derecha, vertical izquierda, horizontal descendente, vertical derecha y horizontal ascendente. INTRA16x16 soporta 4 modos de predicción: predicción vertical, horizontal, DC y plano.
En cuanto a las decisiones de modo, las imágenes inter han de soportar los modos inter e intra. Los modos intra incluyen INTRA4x4 e INTRA16x16. En el caso de imágenes P, los modos inter incluyen SALTO (SKIP) y 16x16, 16x8, 8x16 y particiones de sub-macrobloque de 8x8. 8x8 soporta adicionalmente particiones 8x8, 8x4, 4x8 y 4x4. En lo que respecta a imágenes B, se tienen en cuanta la lista 0 y la lista 1, así como el modo DIRECTO (DIRECT) para los macrobloques y los submacrobloques.
En el software de referencia JVT, se utiliza una trama de Optimización de la Distorsión de Velocidad de Trama (RDO) para las decisiones de modo. En el caso de los modos inter, la estimación de movimiento se tiene en cuenta aisladamente de las decisiones de modo. La estimación de movimiento se efectúa en primer lugar para todos los tipos de bloque de los modos inter, y a continuación la decisión de modo se efectúa comparando el coste de cada modo inter y de cada modo intra. El mejor modo será el modo que presente el coste mínimo.
El procedimiento de codificación para codificar un macrobloque s en una imagen P- o B- se resume como sigue: teniendo en cuenta las últimas imágenes descodificadas, el multiplicador de Lagrange \lambda_{MODO}, \lambda_{MOVIMIENTO}, y el cuantificador de macrobloques QP;
\newpage
Etapa 1: Efectuar la estimación de movimiento y la selección de la imagen de referencia minimizando:
(ec:1)J(REF,m(REF) \ \lambda_{MOVIMIENTO})=SA(T)D(s,c(REF,m(REF)))+\lambda_{MOVIMIENTO}(R(m(REF) - p(REF))+(R(REF)
para cada imagen de referencia y vector de movimiento de un posible modo de macrobloque. En la ecuación, s es la señal de vídeo original y c es la señal de vídeo codificada, m es el vector de movimiento que está considerándose actualmente, REF denota la imagen de referencia, p es el vector de movimiento utilizado para la predicción durante la codificación del vector de movimiento, R(m-p) representa los bits utilizados para codificar el vector de movimiento y R(REF) son los bits de codificación de la imagen de referencia. SA(T)D es la suma de las diferencias absolutas (transformada) entre la señal original y la señal de referencia predicha por el vector de movimiento.
Etapa 2: Seleccionar el modo de predicción del macrobloque minimizando:
(ecuación: 2)J \ (s, \ c, \ MODO \ | \ QP, \ \lambda_{MODO}) = SSD \ (s, \ c, \ MODO \ | \ QP) + \lambda_{MODO} \cdot \ R \ (s, \ c, \ MODO \ | \ QP)
Dados QP y \lambda_{MODO} cuando se cambia MODO. SSD denota Suma de las Diferencias de los Cuadrados entre la señal original y la señal reconstruida. R (s, c, MODO) es el número de bits asociado a la selección de MODO, comprendiendo los bits del encabezado del macrobloque, el coeficiente de movimiento y todos los coeficientes DCT. MODO indica un modo perteneciente al conjunto de posibles modos de macrobloque:
Trama - P: MODO \epsilon {INTRA4X4, INTRA16X16, SALTO, 16X16, 16, 8, 8X16, 8X8, 8X4, 4X8, 4X4}
Trama - B: MODO \epsilon {INTRA4X4, INTRA16X16, BI-DIRECTO, DIRECTO, FWD16X16, FWD16X8,
FWD8X16, FWD8X8, FWD8X4, FWD4X8, FWD4X4, BAK16X16, BAK16X8, BAK8X16, BAK8X8, BAK8X4, BAK4X8, BAK4X4}
El INTRA4x4 contiene los modos:
MODO \epsilon {vertical, horizontal, DC, diagonal-abajo-izquierda, diagonal-abajo-derecha, vertical-izquierda, horizontal-abajo, vertical-derecha, horizontal-arriba}
y el INTRA16x16 contiene los modos: MODO \epsilon {vertical, horizontal, DC, plano}
Esta descripción ilustra los principios de la invención.
Todos los ejemplos y lenguaje condicional descritos en el presente documento tienen una finalidad pedagógica, a fin de ayudar a que el lector comprenda los principios de la invención y los conceptos aportados por el inventor a la expansión de la técnica, y deben interpretarse de forma que no limiten dichos ejemplos y condiciones específicamente indicados.
Además, todas las manifestaciones del presente documento que incluyan principios, aspectos y realizaciones de la invención, así como ejemplos específicos de las mismas, tratan de incluir sus equivalentes funcionales y estructurales. Adicionalmente, se pretende que dichos equivalentes incluyan los equivalentes actualmente conocidos, así como los equivalentes que se desarrollen en el futuro, es decir, cualesquiera elementos desarrollados que realicen la misma función, independientemente de su estructura.
De este modo, por ejemplo, las personas versadas en la materia apreciaran que los organigramas que se presentan en este documento representan ilustraciones conceptuales de circuitos ilustrativos que incorporan los principios de la invención. Igualmente, se observará que cualesquiera organigramas, esquemas, diagramas de transición de estados, pseudo-códigos y similares representan diversos procesos que pueden representarse sustancialmente en medios legibles a través de ordenador, siendo ejecutados por un ordenador o procesador, independientemente de que se muestre explícitamente o no dicho ordenador o procesador.
Las funciones de los diversos elementos mostrados en las figuras pueden proporcionarse mediante utilización un hardware especializado, así como un hardware capaz de ejecutar el software en asociación con el software apropiado. Cuando son proporcionadas por un procesador, las funciones pueden ser realizadas por un único procesador dedicado, por un único procesador compartido o por una pluralidad de procesadores individuales, algunos de los cuales pueden ser compartidos. Además, la utilización explícita del término "procesador" o "controlador" no debe interpretarse de forma que se refiera exclusivamente a un hardware capaz de ejecutar software, y puede incluir implícitamente, sin limitación, un hardware procesador de señales digitales ("DSP"), una memoria de sólo lectura ("ROM") para el alma-
cenamiento del software, una memoria de acceso aleatorio ("RAM") y unos medios de almacenamiento no volátiles.
Pueden incluirse otros tipos de hardware, convencional y/o personalizado. Igualmente, los conmutadores que se muestran en las figuras son únicamente conceptuales. Su función puede ser efectuada a través de la operación de la lógica de programa, de una lógica dedicada, de la interacción del control del programa y de la lógica dedicada, o incluso manualmente, pudiendo seleccionar la técnica específica la persona que la ejecuta, como se comprenderá más específicamente a partir del contexto.
En las reivindicaciones del presente documento, cualquier elemento que se exprese como un medio de realización de una función específica trata de incluir cualquier medio para la realización de dicha función, comprendiendo, por ejemplo, a) una combinación de elementos del circuito que ejecuta una función, o b) cualquier tipo de software, comprendiendo firmware, micro-código o similares, combinado con los circuitos adecuados para la ejecución del software que realiza la función. La invención, según se define en dichas reivindicaciones, reside en el hecho de que las funciones aportadas por los diversos medios indicados se combinan y aúnan en la forma que requieren las reivindicaciones. De este modo, el solicitante considera cualquier medio que pueda aportar dichas funcionalidades y sea equivalente a los mostrados en este documento.
Como se muestra en la figura 1, un codificador de vídeo suele estar indicado mediante la referencia 100. Una entrada del codificador 100 se conecta en comunicación de señal con una entrada no inversora una unión de adición 110. La salida de la unión de adición 110 se conecta en comunicación de señal con una función de transformada de bloque 120. La transformada 120 se conecta en comunicación de señal con un cuantificador 130. La salida del cuantificador 130 se conecta en comunicación de señal con un codificador de longitud variable ("VLC") 140, en el que la salida del VLC 1409 es una salida del codificador 100 disponible externamente.
La salida del cuantificador 130 se conecta en comunicación de señal con un cuantificador inverso 150. El cuantificador inverso 150 se conecta en comunicación de señal con un transformador de bloques inversos 160, el cual, a su vez, se conecta en comunicación de señal con un dispositivo de almacenamiento de imágenes de referencia 170. Una primera salida del dispositivo de almacenamiento de imágenes de referencia 170 está conectada en comunicación de señal con una primera entrada de un estimador de movimiento 180. La entrada del codificador 100 está también conectada en comunicación de señal con una segunda entrada del estimador de movimiento 180. La salida del estimador de movimiento 180 está conectada en comunicación de señal con una primera entrada de un compensador de movimiento 190. Una segunda salida del dispositivo de almacenamiento de imágenes de referencia 170 está conectada en comunicación de señal con una segunda entrada del compensador de movimiento 190. La salida del compensador de movimiento 190 está conectada en comunicación de señal con una entrada de inversión de la unión de adición 110.
Volviendo a la figura 2, un decodificador de vídeo se indica en general mediante la referencia numérica 200. El decodificador de vídeo 200 incluye un decodificador de longitud variable ("VLD") 210 conectado en comunicación de señal con un cuantificador inverso 220. El cuantificador inverso se conecta con una transformada inversa 230. La transformada inversa se conecta en comunicación de señal con un primer terminal de entrada de un sumador o unión de adición 240, en el que la salida de la unión de adición 240 proporciona la salida del decodificador de vídeo 200. La salida de la unión de adición 240 se conecta en comunicación de señal con un dispositivo de almacenamiento de imágenes de referencia 250. El dispositivo de almacenamiento de imágenes de referencia 250 está conectado en comunicación de señal con un compensador de movimiento 260, que está conectado en comunicación de señal con un segundo terminal de entrada de la unión de adición 240.
Como se muestra en la figura 3, un ejemplo de proceso de decisión de codificación de vector de movimiento para un macrobloque de la imagen P suele indicarse en general mediante la referencia 400. Puede aplicarse un proceso similar a las imágenes B. El proceso incluye un bloque de inicio 410 que transfiere el control a un bloque de función 420. El bloque de función 420 comprueba la existencia de los modos SALTO (SKIP) y 16x16, y transfiere el control a un bloque de decisión 422. El bloque de decisión 422 determina si se dan las condiciones de que una función J como la de la (ecuación 2) del modo SALTO (SKIP) es menor que una función J del modo 16x16 y que el modo 16x16 no tiene residuos, y de lo contrario, transfiere el control al bloque de función 426. En este caso, el bloque 424 transfiere el control a un bloque de función 438, por lo que se salta la comprobación de otros modos inter.
El bloque de función 426 realiza una comprobación del modo 8x8 y transfiere el control a un bloque de decisión 428, que comprueba si un modo 8x8 tiene la misma información de movimiento que el modo 16x16, y en ese caso, transfiere el control a un bloque de función 432. De lo contrario, el bloque 428 transfiere el control a un bloque de función 430, que comprueba los modos 18x8 y 8x16, y transfiere el control al bloque de función 432. A su vez, el bloque de control 432 comprueba un modo 4x4, y transfiere el control a un bloque de decisión 434. El bloque de decisión 434 determina si el modo 4x4 tiene la misma información de movimiento que un modo 8x8, y en ese caso, transfiere el control a un bloque de función 438. De lo contrario, el bloque de función 434 transfiere el control a un bloque de función 436, que comprueba los modos 8x4 y 4x8, y transfiere el control al bloque de función 438. El bloque de función 438 comprueba los modos intra y transfiere el control a un bloque de función 440, que selecciona el modo más adecuado. El bloque de función 440 transfiere el control a un bloque final 450.
Volviendo a la figura 4, un ejemplo de proceso de una combinación de decisiones de codificación inter e intra de un macrobloque se indica en general mediante el número de referencia 500. El proceso incluye un bloque de inicio 510 que transfiere el control a un bloque de función 520. El bloque de función 520 comprueba la existencia de los modos SALTO (SKIP) y 16x16, y transfiere el control a un bloque de decisión 560. El bloque de decisión comprueba si MC2, que es el valor mínimo entre la función J evaluada para el modo SALTO (SKIP) y la función J evaluada para el modo 16x16 supera un umbral T1. En este caso, el control se transfiere a un bloque de función 570, pero de lo contrario, el control se transferirá a un bloque de decisión 562.
El bloque 562 comprueba si el valor M2 del bloque 560 supera el umbral T2 para realizar la comparación. De lo contrario, el bloque 562 transfiere el control a un bloque de función 568, pero en ese caso, transfiere el control a un bloque de función 564. El bloque de función 564 comprueba el modo intra 4x4 DC, y transfiere el control a un bloque de decisión 566. El bloque de decisión 566 determina si la función J evaluada para el modo intra 4x4 DC es inferior a un valor a multiplicado por el valor MC2 más un valor b, y de lo contrario, transfiere el control al bloque de función 568, pero en caso afirmativo transfiere el control al bloque de función 570. El bloque de función 568 comprueba otros modos inter y transfiere el control al bloque de función 570. El bloque de función 570, a su vez, comprueba otros modos intra y transfiere el control a un bloque de función 572, que selecciona el modo más adecuado y transfiere el control a un bloque final 580.
De este modo, en las realizaciones preferidas de la presente invención, se facilita un nuevo algoritmo para reducir la complejidad de las decisiones de modo correspondientes a las intertramas, reduciendo el número de posibles modos. Los modos se dividen en dos categorías: modos inter y modos intra, donde los modos inter incluyen los modos SALTO (SKIP) y DIRECTO (DIRECT) para las imágenes B) y diferentes tipos de bloques (concretamente, 16x16, 16x8, 8x16, 8x8,8x4, 4x8, 4x4), y los modos intra incluyen INTRA4x4 e INTRA16x16. Las imágenes P se utilizan para la descripción. La misma idea se puede aplicar a las imágenes B. En el caso de las imágenes B, en este algoritmo de un ejemplo de realización, el modo SALTO (SKIP) y el modo DIRECTO (DIRECT) se procesan de la misma forma, y en las particiones de submacrobloques, el modo DIRECTO (DIRECT) también se tiene en cuenta para seleccionar el modo más adecuado para el sub-macrobloque.
Las realizaciones incluyen cuatro categorías técnicas, que pueden aplicarse conjunta o independientemente.
Una categoría se refiere a las decisiones relativas a los vectores de movimiento. En esta categoría, comprobaremos e primer lugar los modos cuadráticos: SALTO (SKIP), 16x16, 8x8,4x4. Es decir, los "modos cuadráticos" constituyen un subconjunto específico de los modos a comprobar, que son estos 4 modos: SALTO (SKIP), 16x16, 8x8, y 4x4. La necesidad de comprobar otros modos no cuadráticos se basa en la información relativa al vector de movimiento (comprendiendo el propio movimiento, el predictor del vector de movimiento y la referencia) de los modos cuadráticos. La decisión de esta categoría se basa en la asunción de que resulta más eficaz seleccionar el mayor tamaño de bloque que contenga un objeto que un tamaño menor de bloque que divida un objeto. En primer lugar comprobaremos los modos SALTO (SKIP) y 16x16 modo, y si J(SALTO (SKIP)) < J(16x16) (por simplicidad, escribiremos J(MODO) para indicar la función J, como ya se hizo en la ecuación 2 evaluada para MODO) y 16x16 carece de resto, comprobaremos si SALTO (SKIP) tiene la misma información del vector de movimiento que 16x16. En este caso, se selecciona SALTO (SKIP), y no es necesario comprobar otros modos inter. De lo contrario, comprobaremos 16x16 y 8x8. Si tienen la misma información de vector de movimiento, es decir, si 4 vectores de movimiento 8x8 tienen la misma información que uno de 16x16, no comprobaremos 16x8, 8x16, y de lo contrario, realizaremos en primer lugar la selección del vector de movimiento y de la referencia, como se ha descrito anteriormente en (ecuación 1) para 16x8 y 8x16 respectivamente. Si el 16x8 tiene la misma información de movimiento que 16x16, no será necesario efectuar el cálculo RDO, ya que se cree que J(16x8) es mayor que J(16x16).
También podemos considerar, aunque no sea necesario, los predictores de los vectores de movimiento subyacentes a dicha decisión, ya que en caso de ser iguales será cierto que J (16x16) sería inferior. El mismo procedimiento se puede llevar a cabo para 8x16. A continuación comprobamos 4x4. Para cada subpartición en un bloque 8x8, si cada uno de los cuatro vectores de movimiento del bloque 4x4 tiene los mismos valores que el bloque 8x8, no será necesario comprobar 4x8 y 8x4. De lo contrario, en primer lugar llevaremos a cabo una selección del vector de movimiento y la referencia para 4x8 y 8x4 respectivamente. Si ambos bloques 8x4 tienen los mismos valores de movimiento que el bloque 8x8, no se requerirá el cálculo de RDO, ya que se cree que J(8x4) es mayor que J(8x8). Puede realizarse el mismo procedimiento para 4x8. La figura 3 muestra un ejemplo de la decisión sobre el vector de movimiento. Este proceso también podría realizarse inmediatamente después de la estimación de movimiento íntegra. Si los vectores de movimiento íntegros de los modos anteriormente mencionados fuesen los mismos, podríamos evitar por completo la realización del refinado de sub-píxeles, reduciendo de este modo aún más la complejidad.
Otra categoría corresponde a las decisiones adyacentes. H.264 utiliza una estructura de codificación de bloques y con frecuencia, el objeto tiende a atravesar el límite de los bloques. En esta categoría, utilizaremos la información adyacente para tomar las decisiones con mayor rapidez.
Si el modo del macrobloque superior es 16x16, y del macrobloque restante es 16x8, el modo del macrobloque actual contará entonces con una elevada probabilidad de ser 16x8. Esto podrá mejorarse aún más en caso necesario, si se tienen en consideración los modos de los otros macrobloques adyacentes, como el situado en la parte superior derecha o incluso el macrobloque que comparte ubicación en la imagen anterior o de referencia. En este caso sólo han de comprobarse los modos SALTO (SKIP), 16x16 y 16x8, aunque otros modos inter pueden ignorarse por completo. Puede llevarse a cabo una consideración similar para el caso del 8x16, especialmente si el modo del macrobloque izquierdo es 16x16 y el del macrobloque superior es 8x16, debiendo entonces comprobarse solamente SALTO (SKIP), 16x16 y 8x16. Puede utilizarse el mismo criterio para la decisión relativa al modo del macrobloque. Es decir, si el modo del bloque superior 8x8 es 8x8, y el del izquierdo es 8x4, sólo deberá comprobarse 8x4; si el modo del superior 8x8 es 4x8 y el del izquierdo es 8x8, sólo deberá comprobarse 4x8. Si el modo el macrobloque superior y del macrobloque izquierdo es intra, entonces sólo deberán comprobarse los modos SALTO (SKIP), 16x16 e intra.
\newpage
También podría aplicarse una decisión relativamente similar utilizando unos macrobloques temporalmente adyacentes (es decir, el macrobloque que se encuentra en la misma posición). Concretamente, después de examinar un modo específico (por ejemplo, 16x16), si el mejor modo y la información de movimiento asociada son idénticos a la de este macrobloque temporalmente adyacente, podemos finalizar inmediatamente el modo de decisiones y evitar el examen de cualquier otro modo. Este proceso podría mejorarse mediante la consideración de la distorsión asociada (por ejemplo, si la distorsión del actual macrobloque es inferior a la del situado en la misma posición, o de una combinación lineal/no lineal de otras distorsiones de macrobloques temporal y/o incluso espacialmente adyacentes, existe una probabilidad incluso mayor de que la finalización sea correcta).
Otra categoría adicional se refiere a las decisiones de modo intra e inter. En esta categoría, introduciremos una técnica para combinar el orden de comprobación de los modos inter e intra. Se fijan dos umbrales (T1 y T2, donde T1>T2). En primer lugar comprobamos SALTO (SKIP) y 16x16. Si el coste mínimo de estos dos, indicado como MC2, es mayor que el de T1, continuaremos comprobando los modos intra, sin que se comprueben otros modos inter. Si MC2 es mayor que T2, comprobaremos en primer lugar el modo INTRA4x4 DC. Si el coste es inferior a axMC2+b, donde pueden asignarse a a y a b unos parámetros de ponderación/compensación, tan sólo se comprueban los modos intra; de lo contrario, se verificarán los modos inter e intra. La figura 4 muestra un ejemplo de decisión de modo mixto inter-intra.
Una categoría adicional corresponde a una decisión detenida en una fase temprana. En lugar de verificar exhaustivamente todos los modos posibles, en nuestras realizaciones preferidas de la presente invención utilizamos criterios de detención en fase temprana para llegar a un modo de decisión rápido. Estos criterios de detención se basan en un mecanismo de umbral adaptable. Si se alcanza un umbral correspondiente a un modo específico, dejamos de comprobar los modos restantes. Un ejemplo de cómo seleccionar un umbral T para un modo T(modo) se describe en esta invención mediante la ecuación (4). En la ecuación, \alpha(modo) y \beta(modo) son los escalares de un modo. COST puede ser J, SAD o SSQ en (ecuación 1)(ecuación 2). COST designa el coste correspondiente al i-ésimo bloque adyacente.
(ecuación 4)T(modo) = \alpha(modo)xT_{n} + \beta(modo),
donde
T_{n} = MAX(COST_{\text{límiteinferior}}, MIN(COST_{\text{límitesuperior}}, COST_{1}, COST_{2}, COST_{N},))
Estas y otras características y ventajas de la presente invención pueden ser rápidamente comprendidas por cualquier persona versada en la materia, en base a la técnica descrita en este documento. Debe entenderse que los principios de la presente invención pueden implementarse mediante diversas formas de hardware, software, firmware, procesadores especiales o combinaciones de los mismos.
Más preferiblemente, los principios de la presente invención se implementan como una combinación de hardware y software. Además, el software se implementa preferiblemente como una aplicación informática incorporada de forma tangible en una unidad de almacenamiento de programas. La aplicación informática puede ser descargada y ejecutada por una máquina que comprende cualquier arquitectura adecuada. Preferiblemente, la máquina se implementa en una plataforma informática cuyo hardware consiste en una o más unidades centrales de procesamiento ("UCP"), una memoria de acceso aleatorio ("RAM") e interfaces de entrada/salida ("I/O"). La plataforma informática puede incluir igualmente un sistema operativo y un código de microinstrucciones. Los diversos procesos y funciones que se describen en el presente documento pueden formar parte del código de macroinstrucciones o formar parte de la aplicación informática o de cualquier combinación de ambos, que pueda ser ejecutada por una UCP. Además, pueden conectarse otras unidades periféricas a la plataforma informática, como una unidad adicional de almacenamiento de datos y una unidad impresora.
Debe entenderse que, teniendo en cuenta algunos de los componentes y métodos del sistema constituyente y que se describen en las figuras adjuntas se implementan preferiblemente mediante software, pudiendo diferir las conexiones reales entre los componentes del sistema o los bloques de función del proceso, en función de la manera en que se programe la presente invención. Teniendo en cuenta lo descrito en el presente documento, cualquier persona versada en la materia podrá contemplar estas y otras similares implementaciones o configuraciones de la presente invención.
Aunque los ejemplos de realización se han descrito en este documento haciendo referencia a las figuras adjuntas, debe entenderse que la presente invención no se limita a dichas realizaciones precisas, pudiendo introducir en ella cualquier persona versada en la materia diversos cambios y modificaciones.
\vskip1.000000\baselineskip
Referencias citadas en la descripción
La lista de referencias citada por el solicitante lo es solamente para utilidad del lector, no formando parte de los documentos de patente europeos. Aún cuando las referencias han sido cuidadosamente recopiladas, no pueden excluirse errores u omisiones y la OEP rechaza toda responsabilidad a este respecto.
Documentos de patente citado en la descripción
\bullet US 20030099292 A [0003]
Bibliografía de patentes citada en la descripción
\bullet Fast intra-prediction mode selection for 4x4 blocks in H.264. 2003 IEEE International Conference on Acoustics, Speech, and Signal Processing Proceedings (ICASSP), 06 April 2003, vol. 3, III389-III391 [0003]

Claims (4)

1. Método para seleccionar el modo de un macrobloque actual de una trama inter-codificada según una codificación de vídeo H.264/MPEG AVC, en el que los modos de macrobloque son los siguientes:
Trama - P: MODO \epsilon {INTRA4X4, INTRA16X16, SALTO, 16X16, 16, 8, 8X16, 8X8, 8X4, 4X8, 4X4}
Trama - B: MODO \epsilon {INTRA4X4, INTRA16X16, BI-DIRECTO, DIRECTO, FWD16X16, FWD16X8,
FWD8X16, FWD8X8, FWD8X4, FWD4X8, FWD4X4, BAK16X16, BAK16X8, BAK8X16, BAK8X8, BAK8X4, BAK4X8, BAK4X4}
y el modo INTRA4x4 contiene los modos:
MODO \epsilon {vertical, horizontal, DC, diagonal-abajo-izquierda, diagonal-abajo-derecha, vertical-izquierda, horizontal-abajo, vertical-derecha, horizontal-arriba}
e INTRA16x16 contiene los modos: MODO \epsilon {vertical, horizontal, DC, plano}
comprendiendo dicho método:
- comprobación (420, 422), con un parámetro de cuantificación dado QP, para los modos SALTO y 16x16, si un valor J de dicho modo SALTO es menor que el valor J de dicho modo 16x16 y si dicho modo 16x16 carece de resto de predicción, donde J es un valor de suma correspondiente a la suma de las diferencias de cuadrados entre la señal original y la señal reconstruida, y del producto del multiplicador de Lagrange \lambda_{MODO}, por el número R de bits requeridos asociados al modo actual, comprendiendo los bits del encabezado del macrobloque, los coeficientes de movimiento y todos los coeficientes DCT;
- de no ser cierta la premisa anterior, continuar la comprobación (426) del modo 8x8, y de ser cierta, se comprueba (424) si dicho modo SALTO tiene la misma información de movimiento que dicho modo 16x16,
si no fuese cierto, se continúa con dicha comprobación (426) del modo 8x8,
si fuese cierto, se continúa con la comprobación (438) de los modos intra;
- comprobación (426) de dicho modo 8x8 y determinación (428) de si dicho modo 8x8 tiene la misma información de movimiento que dicho modo 16x16;
- si fuese cierto, se continúa con la comprobación (432) del modo 4x4, y si no lo fuese, se comprueba (430) el modo 16x8 y el modo 8x16, y si dichos modos tuviesen la misma información de movimiento que dicho modo 16x16, se continúa comprobando (432) el modo 4x4;
- comprobación (432) de dicho modo 4x4 y determinación (434) de si dicho modo 4x4 tiene la misma información de movimiento que dicho modo 8x8;
- si fuese cierto, se continúa con la comprobación (438) de los modos intra, y si no lo fuese, se comprueban (436) los modos 8x4 y 4x8, y si estos modos tuviesen la misma información de movimiento que dicho modo 8x8, se continúa con la comprobación (438) de los modos intra,
- en el que para cada modo de macrobloque específico se dispone de un umbral ajustable de coste de codificación y se selecciona el modo actualmente comprobado (440) para dicho macrobloque actual si se alcanza el correspondiente umbral del coste de codificación de dicho modo, deteniéndose la comprobación de los modos no comprobados restantes.
2. Método de acuerdo con la reivindicación 1, en el que los umbrales de coste de codificación T(modo) se calculan de la forma siguiente:
T(modo) = \alpha(modo)x T_{n} + \beta(modo)
T_{n} = MAX(COST_{\text{límiteinferior}}, MIN(COST_{\text{límitesuperior}}, COST_{1}, COST_{2}, COST_{N},))
Donde \alpha(modo) y \beta(modo) son escalares de un modo, y COST_{i} denota el coste de codificación del i-ésimo bloque adyacente.
3. Método de acuerdo con la reivindicación 1, en el que la información de los bloques adyacentes espacial y/o temporalmente y de las particiones de bloques, se utiliza a fin de decidir los modos a comprobar.
4. Método de acuerdo con la reivindicación 1, en el que el procesamiento de la selección de modo finaliza cuando los macrobloques adyacentes temporal y/o espacialmente tienen una relación específica con la información de movimiento del macrobloque actual, tras el examen de un modo específico.
ES04755613T 2003-06-25 2004-06-17 Codificacion intertramas con decision rapida de modo. Expired - Lifetime ES2343410T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US48233103P 2003-06-25 2003-06-25
US482331P 2003-06-25

Publications (1)

Publication Number Publication Date
ES2343410T3 true ES2343410T3 (es) 2010-07-30

Family

ID=33563851

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04755613T Expired - Lifetime ES2343410T3 (es) 2003-06-25 2004-06-17 Codificacion intertramas con decision rapida de modo.

Country Status (10)

Country Link
US (1) US9210441B2 (es)
EP (1) EP1639827B1 (es)
JP (1) JP4968726B2 (es)
CN (1) CN100594730C (es)
BR (1) BRPI0411765A (es)
DE (1) DE602004026580D1 (es)
ES (1) ES2343410T3 (es)
MX (1) MXPA05014211A (es)
MY (1) MY143420A (es)
WO (1) WO2005004491A1 (es)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
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
US7280700B2 (en) 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US7606308B2 (en) 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7599438B2 (en) 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
KR20050061762A (ko) * 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
US7881386B2 (en) 2004-03-11 2011-02-01 Qualcomm Incorporated Methods and apparatus for performing fast mode decisions in video codecs
JP4031455B2 (ja) * 2004-03-29 2008-01-09 株式会社東芝 画像符号化装置
JP2005348093A (ja) * 2004-06-03 2005-12-15 Sony Corp 画像処理装置、そのプログラムおよびその方法
KR100654436B1 (ko) * 2004-07-07 2006-12-06 삼성전자주식회사 비디오 코딩 방법과 디코딩 방법, 및 비디오 인코더와디코더
US8649436B2 (en) * 2004-08-20 2014-02-11 Sigma Designs Inc. Methods for efficient implementation of skip/direct modes in digital video compression algorithms
JP4501676B2 (ja) * 2004-12-22 2010-07-14 日本電気株式会社 動画像圧縮符号化方法と動画像圧縮符号化装置並びにプログラム
CN100338957C (zh) * 2005-06-20 2007-09-19 浙江大学 一种复杂度可分级的模式选择方法
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
CN100397906C (zh) * 2005-08-24 2008-06-25 天津大学 一种视频信息的快速帧间模式选择方法
US7916796B2 (en) 2005-10-19 2011-03-29 Freescale Semiconductor, Inc. Region clustering based error concealment for video data
US8155189B2 (en) 2005-10-19 2012-04-10 Freescale Semiconductor, Inc. System and method of coding mode decision for video encoding
US9479794B2 (en) 2005-11-10 2016-10-25 Freescale Semiconductor, Inc. Resource efficient video processing via prediction error computational adjustments
US8788933B2 (en) 2005-12-01 2014-07-22 Nokia Corporation Time-shifted presentation of media streams
US8170102B2 (en) * 2005-12-19 2012-05-01 Seiko Epson Corporation Macroblock homogeneity analysis and inter mode prediction
US7693219B2 (en) 2006-01-04 2010-04-06 Freescale Semiconductor, Inc. System and method for fast motion estimation
JP2007251923A (ja) * 2006-02-15 2007-09-27 Mitsubishi Electric Corp 画像符号化装置および画像符号化方法
US8306118B1 (en) * 2006-03-01 2012-11-06 Maxim Integrated, Inc. High quality low bitrate video coding by enabling and disabling a non-residual mode
US7889789B2 (en) 2006-04-07 2011-02-15 Microsoft Corporation Making interlace frame level coding mode decisions
US20080002770A1 (en) * 2006-06-30 2008-01-03 Nokia Corporation Methods, apparatus, and a computer program product for providing a fast inter mode decision for video encoding in resource constrained devices
KR100773761B1 (ko) 2006-09-14 2007-11-09 한국전자통신연구원 동영상 부호화 장치 및 방법
GB0619570D0 (en) * 2006-10-04 2006-11-15 Univ Bristol Complexity scalable video transcoder and encoder
US9883202B2 (en) 2006-10-06 2018-01-30 Nxp Usa, Inc. Scaling video processing complexity based on power savings factor
US8467448B2 (en) 2006-11-15 2013-06-18 Motorola Mobility Llc Apparatus and method for fast intra/inter macro-block mode decision for video encoding
US8311120B2 (en) * 2006-12-22 2012-11-13 Qualcomm Incorporated Coding mode selection using information of other coding modes
US8594187B2 (en) 2007-03-02 2013-11-26 Qualcomm Incorporated Efficient video block mode changes in second pass video coding
CN100558169C (zh) * 2007-03-23 2009-11-04 武汉大学 视频转码中帧间模式的快速选择方法
EP2140684B1 (en) 2007-04-12 2018-08-15 Thomson Licensing DTV Method and apparatus for context dependent merging for skip-direct modes for video encoding and decoding
CN101731012B (zh) * 2007-04-12 2013-10-16 汤姆森特许公司 用于视频编码器中的快速几何模式判定的方法和设备
US20080260029A1 (en) * 2007-04-17 2008-10-23 Bo Zhang Statistical methods for prediction weights estimation in video coding
WO2008141389A1 (en) * 2007-05-24 2008-11-27 Carmelo Joseph Licciardi Di Stefano A connector
FR2916931A1 (fr) * 2007-05-29 2008-12-05 Thomson Licensing Sas Procede de selection d'une donnee de codage et dispositif de codage implementant ledit procede
WO2008148272A1 (en) * 2007-06-04 2008-12-11 France Telecom Research & Development Beijing Company Limited Method and apparatus for sub-pixel motion-compensated video coding
BRPI0810517A2 (pt) 2007-06-12 2014-10-21 Thomson Licensing Métodos e aparelho suportando estrutura de sintaxe de vídeo de multipasso para dados de seção
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
KR101555327B1 (ko) * 2007-10-12 2015-09-23 톰슨 라이센싱 기하학적으로 분할된 쌍방 예측 모드 분할들을 비디오 인코딩 및 디코딩하기 위한 방법 및 장치
US8295342B2 (en) * 2007-11-14 2012-10-23 International Business Machines Corporation Method and system for efficient video compression with low-complexity encoder
CN100594732C (zh) * 2007-11-16 2010-03-17 中国科学院计算技术研究所 一种帧间模式选择方法
FR2925819A1 (fr) * 2007-12-21 2009-06-26 Thomson Licensing Sas Procede de codage double passe par macrobloc
KR20090095316A (ko) * 2008-03-05 2009-09-09 삼성전자주식회사 영상 인트라 예측 방법 및 장치
WO2009113787A2 (en) * 2008-03-09 2009-09-17 Lg Electronics Inc. A method and an apparatus for encoding or decoding a video signal
US8982951B2 (en) * 2008-03-10 2015-03-17 Mediatek Inc. Adaptive motion estimation coding
JP4990927B2 (ja) * 2008-03-28 2012-08-01 三星電子株式会社 動きベクトル情報の符号化/復号化方法及び装置
JP2009272969A (ja) * 2008-05-09 2009-11-19 Hitachi Ltd 画像符号化装置及び画像符号化方法、画像復号化装置及び画像復号化方法
CN101867818B (zh) * 2008-06-06 2012-08-29 浙江大学 宏块模式的选择方法和装置
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US8619856B2 (en) * 2008-10-03 2013-12-31 Qualcomm Incorporated Video coding with large macroblocks
US8634456B2 (en) 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US8483285B2 (en) 2008-10-03 2013-07-09 Qualcomm Incorporated Video coding using transforms bigger than 4×4 and 8×8
WO2010044757A1 (en) * 2008-10-17 2010-04-22 Agency For Science, Technology And Research Method for encoding a digital picture, encoder, and computer program element
KR101173560B1 (ko) * 2008-12-15 2012-08-13 한국전자통신연구원 고속 모드 결정 장치 및 방법
US9288494B2 (en) 2009-02-06 2016-03-15 Thomson Licensing Methods and apparatus for implicit and semi-implicit intra mode signaling for video encoders and decoders
HUE061153T2 (hu) 2009-03-23 2023-05-28 Ntt Docomo Inc Kép prediktív dekódolási eljárás
US8498330B2 (en) * 2009-06-29 2013-07-30 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for coding mode selection
JP5216710B2 (ja) * 2009-07-24 2013-06-19 日立コンシューマエレクトロニクス株式会社 復号化処理方法
JP2013503534A (ja) * 2009-08-28 2013-01-31 トムソン ライセンシング 画像シーケンスを符号化するための方法
MY198978A (en) * 2010-04-13 2023-10-05 Samsung Electronics Co Ltd Video encoding method and video encoding apparatus and video decoding method and video decoding apparatus, which perform deblocking filtering based on tree-structure encoding units
US8837592B2 (en) 2010-04-14 2014-09-16 Mediatek Inc. Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
KR101791078B1 (ko) * 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
CN101848394B (zh) * 2010-05-25 2012-01-18 宁波中科集成电路设计中心有限公司 一种无线视频传感器的avs编码功耗模型优化方法
DK3070945T3 (da) 2010-07-20 2020-04-06 Ntt Docomo Inc Indretning til prædikativ billedafkodning, billedforudsigelsesafkodningsfremgangsmåde
US8902982B2 (en) * 2011-01-17 2014-12-02 Samsung Electronics Co., Ltd. Depth map coding and decoding apparatus and method
CN102129682B (zh) * 2011-03-09 2015-10-07 深圳市云宙多媒体技术有限公司 一种前景背景区域划分方法、系统
US9282338B2 (en) 2011-06-20 2016-03-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
US20140002594A1 (en) * 2012-06-29 2014-01-02 Hong Kong Applied Science and Technology Research Institute Company Limited Hybrid skip mode for depth map coding and decoding
WO2014005924A1 (en) * 2012-07-05 2014-01-09 Thomson Licensing Video coding and decoding method with adaptation of coding modes
US9374592B2 (en) * 2012-09-08 2016-06-21 Texas Instruments Incorporated Mode estimation in pipelined architectures
CN102932642B (zh) * 2012-11-13 2015-06-24 北京大学 一种帧间编码快速模式选择方法
US10085027B2 (en) * 2015-03-06 2018-09-25 Qualcomm Incorporated Adaptive mode checking order for video encoding
US10652570B2 (en) 2016-01-15 2020-05-12 Nec Corporation Moving image encoding device, moving image encoding method, and recording medium for recording moving image encoding program
CN108810531B (zh) * 2017-05-03 2019-11-19 腾讯科技(深圳)有限公司 视频编码处理方法、装置及电子设备
KR102618692B1 (ko) 2018-06-15 2024-01-02 삼성전자주식회사 노이즈 또는 디서의 영향을 감소시키기 위한 디스플레이 구동 회로 및 방법
CN110149512B (zh) * 2018-09-14 2023-04-14 腾讯科技(深圳)有限公司 帧间预测加速方法、装置、计算机存储介质及设备
CN112637592B (zh) 2020-12-11 2024-07-05 百果园技术(新加坡)有限公司 一种视频预测编码的方法及装置
CN115484461B (zh) * 2022-08-03 2025-09-30 阿里巴巴(中国)有限公司 视频编码方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2787944B2 (ja) * 1988-01-11 1998-08-20 富士通株式会社 動き補償動ベクトル探索方法
US5737019A (en) * 1996-01-29 1998-04-07 Matsushita Electric Corporation Of America Method and apparatus for changing resolution by direct DCT mapping
WO1998037701A1 (en) * 1997-02-12 1998-08-27 Sarnoff Corporation Apparatus and method for optimizing the rate control in a coding system
JP3570863B2 (ja) * 1997-08-05 2004-09-29 三菱電機株式会社 動画像復号化装置および動画像復号化方法
JPH1179584A (ja) 1997-09-09 1999-03-23 Mitsubishi Electric Corp エレベータ用ホールランタン
JPH11243551A (ja) * 1997-12-25 1999-09-07 Mitsubishi Electric Corp 動き補償装置と動画像符号化装置及び方法
EP1092322A1 (en) * 1999-04-30 2001-04-18 Koninklijke Philips Electronics N.V. Low bit rate video coding method and system
EP1092321A1 (en) * 1999-04-30 2001-04-18 Koninklijke Philips Electronics N.V. Video encoding method with selection of b-frame encoding mode
EP1263239A3 (en) * 2001-05-30 2005-02-09 Nippon Telegraph and Telephone Corporation Image compression system
US20020196854A1 (en) * 2001-06-15 2002-12-26 Jongil Kim Fast video encoder using adaptive hierarchical video processing in a down-sampled domain
JP3732760B2 (ja) * 2001-06-29 2006-01-11 株式会社東芝 物体認識装置及び物体認識方法
US6980596B2 (en) * 2001-11-27 2005-12-27 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
PT1449385E (pt) * 2001-11-21 2015-10-15 Google Technology Holdings LLC Codificação adaptativa de quadro/campo ao nível dos macroblocos para o conteúdo de vídeo digital
WO2003047270A1 (fr) * 2001-11-30 2003-06-05 Ntt Docomo, Inc. Appareil de codage d'images mobiles, appareil de decodage d'images mobiles, procede de codage d'images mobiles, procede de decodage d'images mobiles, programme et support lisible par ordinateur contenant le programme
AU2002351417A1 (en) * 2001-12-21 2003-07-30 Polycom, Inc. Motion wake identification and control mechanism
JP4130783B2 (ja) * 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法

Also Published As

Publication number Publication date
WO2005004491A1 (en) 2005-01-13
JP4968726B2 (ja) 2012-07-04
EP1639827A1 (en) 2006-03-29
KR20060027813A (ko) 2006-03-28
MY143420A (en) 2011-05-31
BRPI0411765A (pt) 2006-08-08
EP1639827B1 (en) 2010-04-14
JP2007524279A (ja) 2007-08-23
MXPA05014211A (es) 2006-05-31
CN100594730C (zh) 2010-03-17
US9210441B2 (en) 2015-12-08
US20060193385A1 (en) 2006-08-31
DE602004026580D1 (de) 2010-05-27
CN1810037A (zh) 2006-07-26

Similar Documents

Publication Publication Date Title
RU2740783C1 (ru) Кодирование и декодирование видео
US9210441B2 (en) Fast mode-decision encoding for interframes
KR101678409B1 (ko) 적응적인 영상 부호화 방법 및 장치
US8155191B2 (en) Method and apparatus for fast mode decision of B-frames in a video encoder
US20080240245A1 (en) Image encoding/decoding method and apparatus
JP5074924B2 (ja) インタフレームのための高速モード決定方法及び装置
WO2013060471A1 (en) Method and device for determining parameters for encoding or decoding of an image of a video sequence
BRPI0619193A2 (pt) método de codificação de imagem / decodificação de imagem, aparelho de codificação de imagem / decodificação de imagem
US20120250767A1 (en) Method and apparatus for bi-directional prediction within p-slices
KR101083399B1 (ko) 인터 프레임을 위한 고속 모드 결정 인코딩
KR101895389B1 (ko) 영상 부호화 방법 및 장치