ES2955542T3 - Codificación de instantánea que soporta unión de bloques y modo de salto - Google Patents

Codificación de instantánea que soporta unión de bloques y modo de salto Download PDF

Info

Publication number
ES2955542T3
ES2955542T3 ES21182527T ES21182527T ES2955542T3 ES 2955542 T3 ES2955542 T3 ES 2955542T3 ES 21182527 T ES21182527 T ES 21182527T ES 21182527 T ES21182527 T ES 21182527T ES 2955542 T3 ES2955542 T3 ES 2955542T3
Authority
ES
Spain
Prior art keywords
sample set
current sample
flag
snapshot
bitstream
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.)
Active
Application number
ES21182527T
Other languages
English (en)
Inventor
Heiko Schwarz
Heiner Kirchhoffer
Philipp Helle
Simon Oudin
Jan Stegemann
Benjamin Bross
Detlev Marpe
Thomas Wiegand
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 Video Compression LLC
Original Assignee
GE Video Compression LLC
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=44925528&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2955542(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by GE Video Compression LLC filed Critical GE Video Compression LLC
Application granted granted Critical
Publication of ES2955542T3 publication Critical patent/ES2955542T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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
    • 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/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
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding

Landscapes

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

Abstract

Se logra un aumento de la eficiencia de codificación utilizando una señalización común dentro del flujo de bits con respecto tanto a la activación de la fusión como a la activación del modo de salto. Es decir, uno de los posibles estados de uno o más elementos de sintaxis dentro del flujo de bits puede indicar para un conjunto de muestras actual de una imagen que el conjunto de muestras respectivo se va a fusionar y no tiene ninguna predicción residual codificada e insertada en el flujo de bits. De manera alternativa, una bandera común puede indicar comúnmente si los parámetros de codificación asociados con un conjunto de muestra actual deben establecerse de acuerdo con un candidato de fusión o recuperarse del flujo de bits, y si el conjunto de muestra actual de la imagen debe reconstruirse simplemente. basado en una señal de predicción que depende de los parámetros de codificación asociados con el conjunto de muestras actual, sin ningún dato residual, o para ser reconstruido refinando la señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual por medio de datos residuales dentro del flujo de bits . (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Codificación de instantánea que soporta unión de bloques y modo de salto
La presente solicitud se refiere a la codificación de instantáneas y/o de vídeo y, en particular, a códecs que soportan subdivisión de bloque y modo de salto.
Muchos códecs de instantánea y/o vídeo tratan las instantáneas en unidades de bloques. Por ejemplo, los códecs predictivos usan una granularidad de bloque para conseguir un buen compromiso entre conjuntos de parámetros de predicción establecidos de manera precisa a una resolución espacial alta, sin embargo, gastando demasiado información secundaria para los parámetros de predicción, por una parte, y demasiados parámetros de predicción establecidos de manera basta, lo que provoca, por otra parte, que la cantidad de bits necesaria para codificar la predicción residual aumente debido a la resolución espacial inferior de los parámetros de predicción. De hecho, el ajuste óptimo para los parámetros de predicción radica en algún lugar entre ambos extremos.
Se han realizado varios intentos para obtener la solución óptima para el problema anteriormente señalado. Por ejemplo, en lugar de usar una subdivisión regular de una instantánea en bloques dispuestos de manera regular en filas y columnas, la subdivisión en particiones de árbol múltiple busca aumentar la libertad de subdividir una instantánea en bloques a una demanda razonable de información de subdivisión. No obstante, incluso la subdivisión de árbol múltiple necesita la señalización de una cantidad de datos remarcable y la libertad al subdividir una instantánea se ve bastante restringida incluso en caso de usar tal subdivisión de árbol múltiple.
Para posibilitar una mejor compensación entre la cantidad de información secundaria necesaria para señalizar la subdivisión de instantánea, por una parte, y la libertad al subdividir la instantánea, por otra parte, puede usarse la unión de bloques para aumentar el número de posibles subdivisiones de instantánea en una cantidad razonable de datos adicionales necesarios para señalizar la información de unión. Para que se unan los bloques, necesitan transmitirse los parámetros de codificación en el flujo de bits en su totalidad simplemente una vez, de manera similar como si el grupo de bloques unido resultante fuera una porción directamente subdividida de la instantánea.
Para aumentar adicionalmente la eficacia al codificar el contenido de la instantánea, se ha introducido el modo de salto en algunos códecs de instantánea basados en bloque, el modo de salto posibilita que el codificador se abstenga de transmitir los datos residuales de un cierto bloque al decodificador. Es decir, el modo de salto es una posibilidad para suprimir la transmisión de datos residuales para ciertos bloques. La capacidad de suprimir la transmisión de datos residuales para ciertos bloques da como resultado un intervalo de granularidad más amplio para codificar los parámetros de codificación/predicción en una compensación óptima entre la calidad de codificación, por una parte, y la tasa de bits total gastada que puede esperarse, por otra parte: naturalmente, aumentar la resolución espacial de la codificación de los parámetros de codificación/predicción da como resultado un aumento de la tasa de información secundaria mientras que, sin embargo, se reduce el residuo reduciendo de esta manera la tasa necesaria para codificar los datos residuales. Sin embargo, debido a la disponibilidad del modo de salto, puede ser favorable obtener un ahorro abrupto de la tasa de codificación simplemente aumentando de manera moderada adicionalmente la granularidad en la que se transmiten los parámetros de codificación/predicción de modo que el residuo es tan pequeño que puede quedar fuera de una transmisión separada del residuo.
“Test Model under Consideration”, 2. JCT-VC MEETING; 21-7-2010 - 28-7-2010; GINEBRA; (JOINT COLLABORATIVETEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16); URL:HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, n.° JCTVC-B205, 28 de julio de 2010 (28-07-2010) describe el modelo de prueba bajo consideración (TMuC) para la norma de HVEC de acuerdo con la que cada unidad de predicción comienza con un elemento de sintaxis skip_flag en donde está comprendido también el elemento de sintaxis posterior, independientemente del valor de skip_flag, otra bandera denominada merge_flag. Se usa skip_flag para señalizar el modo de salto, mientras que se usa merge_flag para señalizar la unión de las subparticiones individuales de la unidad de predicción.
I-K KIM ET AL: “TE11: Report on experiment 3.2.c: Check skip and merge together”, 94. REUNIÓN DE MPEG; 11­ 10-2010 - 15-10-2010; GUANGZHOU; (MOTION PICTURE EXPERT GROUP O ISO/IEC JTC1/SC29/WG11), n.° M18237, 28 de octubre de 2010 (28-10-2010) sugiere modificar el software de TMuC hasta el punto que: “para activar tanto MRG como salto/directo, se modifica la sintaxis donde se activa MRG únicamente si PU no se omite por skip_flag. Para eso, se codifica en primer lugar skip_flag. En la sintaxis modificada, se emplea un modo directo para la PU no unida y se señaliza por modo de predicción como estaba”. Este documento sugiere que se active MRG únicamente si PU no se omite por skip_flag.
FULDSETH A ET AL: “Recent improvements of the low complexity entropy coder (LCEC) in TMuC”, 94. REUNIÓN DE MPEG; 11-10-2010 - 15-10-2010; GUANGZHOU; (MOTION PICTURE EXPERT GROUP O ISO/IEC JTC1/SC29/WG11), n.° M18216, 28 de octubre de 2010 (28-10-2010) desvela la codificación de la bandera de unión y salto usando tablas VLC.
Sin embargo, existe aún una necesidad de conseguir mejor eficacia de codificación, debido a redundancias que quedan recién provocadas por la combinación del uso de modo de unión de bloques y de salto.
Por lo tanto, el objeto de la presente invención es proporcionar un concepto de codificación que tiene una eficacia de codificación aumentada. Este objeto se consigue mediante las reivindicaciones independientes pendientes.
La idea que subyace la presente invención es que puede conseguirse un aumento de eficacia de codificación adicional si se usa una señalización común en el flujo de bits con respecto tanto a la activación de la unión como a la activación del modo de salto. Es decir, uno de los posibles estados de uno o más elementos de sintaxis dentro el flujo de bits puede señalizar un conjunto de muestras actual de una instantánea al que ha de unirse el respectivo conjunto de muestras y no tiene predicción residual codificada e insertada en el flujo de bits. Hablando de manera alternativa, una bandera común puede señalizar de manera común si han de establecerse los parámetros de codificación asociados con un conjunto de muestras actual de acuerdo con un candidato de unión o han de recuperarse del flujo de bits, y si ha de reconstruirse el conjunto de muestras actual de la instantánea simplemente basándose en una señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual, sin ningún dato residual, o han de reconstruirse perfeccionando la señal de predicción que depende de los parámetros de codificación asociados con el conjunto de muestras actual por medio de datos residuales en el flujo de bits.
Los inventores de la presente invención hallaron que esta introducción de una señalización común de la activación de la unión, por una parte, y de la activación del modo de salto, por otra parte, ahorra tasa de bits ya que puede reducirse una tara adicional para señalizar la activación del modo de unión y/o de salto de manera separada entre sí o simplemente puede tener que gastarse en caso de que no se activen concurrentemente el modo de unión y el de salto.
Implementaciones ventajosas de la presente invención son el objeto de las reivindicaciones dependientes adjuntas.
Se describen realizaciones preferidas de la presente solicitud a continuación en más detalle con respecto a las figuras en las que:
La Figura 1 muestra un diagrama de bloques de un aparato para codificación de acuerdo con una realización;
La Figura 2 muestra un diagrama de bloques de un aparato para codificación de acuerdo con una realización más detallada;
La Figura 3 muestra un diagrama de bloques de un aparato para decodificación de acuerdo con una realización;
La Figura 4 muestra un diagrama de bloques de un aparato para decodificación de acuerdo con una realización más detallada;
La Figura 5 muestra un diagrama de bloques de una posible estructura interna del codificador de la Figura 1 o 2;
La Figura 6 muestra un diagrama de bloques de una posible estructura interna del decodificador de la Figura 3 o 4;
La Figura 7a muestra esquemáticamente una posible subdivisión de una instantánea en bloques de árbolraíz, unidades de codificación (bloques) y unidades de predicción (particiones);
La Figura 7b muestra un árbol de subdivisión del bloque de árbol-raíz mostrado en la Figura 7a, hasta el nivel de las particiones, de acuerdo con un ejemplo ilustrativo;
La Figura 8 muestra una realización para un conjunto de posibles patrones de subdivisión soportados de acuerdo con una realización;
La Figura 9 muestra posibles patrones de subdivisión que resultan de manera eficaz de la combinación de la unión de bloques y la subdivisión de bloques cuando se usa la subdivisión de bloque de acuerdo con la Figura 8;
La Figura 10 muestra esquemáticamente bloques candidatos para un modo de SALTO/DIRECTO de acuerdo con una realización;
Las Figuras 11-13 muestran porciones de una sintaxis de acuerdo con una realización; y
La Figura 14 muestra esquemáticamente la definición de particiones vecinas para una partición de acuerdo con una realización.
Con respecto a la siguiente descripción, se observa que cada vez que se use el mismo signo de referencia en conexión con diferentes figuras, las explicaciones con respecto al respectivo elemento presentado con respecto a una de estas figuras deberán aplicarse igualmente a las otras figuras, con la condición de que tal transferencia de explicaciones de una figura a la otra no entre en conflicto con la descripción restante de esta otra figura.
La Figura 1 muestra un aparato 10 para codificar una instantánea 20 en un flujo de bits 30. De manera natural, la instantánea 20 podría ser parte de un vídeo, caso en el que el codificador 10 sería un codificador de vídeo.
La instantánea 20 se representa, aunque no se muestra explícitamente en la Figura 1, como una matriz de muestras. La matriz de muestras de la instantánea 20 se subdivide en conjuntos de muestras 40, que podrían ser cualquier conjunto de muestras, tal como los conjuntos de muestras que cubren áreas conectadas únicas no solapantes de la instantánea 20. Para facilidad de entendimiento, los conjuntos de muestras 40 se muestran como tal, y se denominan a continuación, los bloques 40, en donde, sin embargo, la siguiente descripción no deberá considerarse como que está restringida a ninguna clase especial de conjuntos de muestras 40. De acuerdo con una realización concreta, los conjuntos de muestras 40 son bloques rectangulares y/o cuadráticos.
Por ejemplo, la instantánea 20 puede subdividirse en una disposición regular de bloques 40 de modo que los bloques 40 están dispuestos en filas y columnas como se muestra de manera ilustrativa en la Figura 1. Sin embargo, puede ser posible cualquier otra subdivisión de la instantánea 20 en los bloques 40. En particular, la subdivisión de la instantánea 20 en los bloques 40 puede fijarse, es decir, ser conocida para el decodificador por defecto o puede señalizarse en el flujo de bits 30 al decodificador. En particular, los bloques 40 de la instantánea 20 pueden variar en tamaño. Por ejemplo, puede aplicarse una subdivisión de árbol múltiple tal como una subdivisión de árbol cuádruple a la instantánea 20 o a una subdivisión previa regular de la instantánea 20 en bloques de árbol-raíz dispuestos de manera regular para obtener los bloques 40 que, en este caso, forman los bloques hoja de la subdivisión de árbol múltiple de los bloques de árbol-raíz.
En cualquier caso, el codificador 10 está configurado para codificar, para el conjunto de muestras actual 40, una bandera en el flujo de bits 30 que señaliza comúnmente si han de establecerse los parámetros de codificación asociados con el conjunto de muestras actual 40 de acuerdo con un candidato de unión o han de recuperase del flujo de bits 30, y si ha de reconstruirse el conjunto de muestras actual de la instantánea 20 simplemente basándose en una señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual, sin ningún dato residual, o ha de reconstruirse perfeccionando la señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual 40 por medio de unos datos residuales en el flujo de bits 30. Por ejemplo, el codificador 10 está configurado para codificar, para el conjunto de muestras actual 40, una bandera en el flujo de bits 30 que señaliza comúnmente, si asume un primer estado, que los parámetros de codificación asociados con el conjunto de muestras actual 40 han de establecerse de acuerdo con un candidato de unión en lugar de recuperarse del flujo de bits 30, y que el conjunto de muestras actual de la instantánea 20 ha de reconstruirse simplemente basándose en una señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual, sin ningún dato residual, y, si asume cualquier otro estado, que los parámetros de codificación asociados con el conjunto de muestras actual 40 han de recuperarse del flujo de bits 30, o que el conjunto de muestras actual de la instantánea 20 ha de reconstruirse perfeccionando la señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual 40 por medio de unos datos residuales en el flujo de bits 30. Esto significa lo siguiente. El codificador 10 soporta la unión de los bloques 40. La unión es facultativa. Es decir, no cada bloque 40 se ve sometido a la unión. Para algunos bloques 40, en algunos, por ejemplo, el sentido de optimización de tasa-distorsión es favorable para unir el bloque actual 40 con un candidato de unión, pero para otros ocurre lo contrario. Para decidir si un cierto bloque 40 debe hacerse el objeto de unión, el codificador 10 determina un conjunto o lista de candidatos de unión y comprueba, para cada uno de estos candidatos de unión, si la unión el bloque actual 40 con ese candidato de unión forma la opción de codificación más preferida en, por ejemplo, sentido de optimización de tasa-distorsión. El codificador 10 está configurado para determinar el conjunto o lista de candidatos de unión para un bloque actual 40 basándose en porciones del flujo de bits previamente codificadas 30. Por ejemplo, el codificador 10 deriva al menos una porción del conjunto o lista de candidatos de unión adoptando los parámetros de codificación asociados con bloques local y/o temporalmente vecinos 40 que se han codificado previamente de acuerdo con el orden de codificación aplicado por el codificador 10. La cercanía temporal, por ejemplo, bloques de instantáneas previamente codificadas de un vídeo al que pertenece la instantánea 20, con los bloques temporalmente vecinos de la misma que están espacialmente ubicados para solapar espacialmente el bloque actual 40 de la instantánea actual 20. Por consiguiente, para esta porción del conjunto o lista de candidatos de unión, existe una asociación de uno a uno entre cada candidato de unión y los bloques espacial y/o temporalmente vecinos. Cada candidato de unión tiene parámetros de codificación asociados con el mismo. Si el bloque actual 40 se une con cualquiera de los candidatos de unión, el codificador 10 establece los parámetros de codificación del bloque actual 40 de acuerdo con el candidato de unión. Por ejemplo, el codificador 10 puede establecer los parámetros de codificación del bloque actual 40 para que sean igual al respectivo candidato de unión, es decir el codificador 10 puede copiar los parámetros de codificación del bloque actual 40 del respectivo candidato de unión. Por lo tanto, para esta porción recién señalada del conjunto o lista de candidatos de unión, los parámetros de codificación de un candidato de unión se adoptan directamente a partir de un bloque espacial y/o temporalmente vecino, o se obtienen los parámetros de codificación del respectivo candidato de unión a partir de los parámetros de codificación de un bloque espacial y/o temporalmente vecino de este tipo adoptando lo mismo, es decir, estableciendo el candidato de unión igual al mismo, mientras que, sin embargo, teniendo en cuenta los cambios de dominio, por ejemplo, escalando los parámetros de codificación adoptados de acuerdo con el cambio de dominio. Por ejemplo, al menos una parte de los parámetros de codificación que se someten a unión podrían abarcar parámetros de movimiento. Sin embargo, los parámetros de movimiento, pueden hacer referencia a diferentes índices de instantánea de referencia. Para ser más precisos, los parámetros de movimiento que van a adoptarse pueden referirse a un cierto intervalo de tiempo entre la instantánea actual y la instantánea de referencia, y al unir el bloque actual con el respectivo candidato de unión que tiene respectivos parámetros de movimiento, el codificador 10 puede estar configurado para escalar los parámetros de movimiento del respectivo candidato de unión para adaptar su intervalo de tiempo al intervalo de tiempo seleccionado para el bloque actual.
En cualquier caso, los candidatos de unión descritos hasta ahora tienen en común que todos ellos tienen parámetros de codificación asociados con los mismos, y hay una asociación de uno a uno entre estos candidatos de unión y bloques vecinos. Por consiguiente, los bloques de unión 40 con cualquiera de los candidatos de unión recién señalados puede pensarse como una unión de estos bloques en grupos de uno o más bloques 40, de modo que los parámetros de codificación no varían a través de la instantánea 20 dentro de estos grupos de bloques 40, excepto para las adaptaciones de escalamiento o similares. De manera eficaz, la unión con cualquiera de los candidatos de unión recién señalados reduce la granularidad a la que varían los parámetros de codificación a través de la instantánea 20. Más allá de eso, la unión con cualquiera de los candidatos de unión recién señalados da como resultado una libertad adicional al subdividir la instantánea 20 en los bloques 40 y en grupos de bloques 40, respectivamente. Por lo tanto, en este sentido, la unión de bloques 40 en tales grupos de bloques puede pensarse como hacer que el codificador 10 codifique la instantánea 20 usando parámetros de codificación que varían a través de la instantánea 20 en unidades de estos grupos de bloques 40.
Además de los candidatos de unión recién mencionados, el codificador 10 puede también añadir candidatos de unión al conjunto/lista de candidatos de unión, que son un resultado de una combinación de dos o más parámetros de codificación de bloques vecinos, tal como una media aritmética, una media geométrica de los mismos o una mediana de los parámetros de codificación de bloques vecinos y similares.
Por lo tanto, de manera eficaz, el codificador 10 reduce la granularidad en la que los parámetros de codificación se transmiten explícitamente dentro del flujo de bits 30 en comparación con la granularidad definida por la subdivisión de instantánea 20 en los bloques 40. Algunos de estos bloques 40 forman grupos de bloques usando unos y los mismos parámetros de codificación mediante el uso de la opción de unión anteriormente señalada.
Algunos bloques están agrupados entre sí mediante la unión, pero usan diferentes parámetros de codificación correlacionados entre sí mediante respectivas adaptaciones de escalamiento y/o funciones combinatorias. Algunos bloques 40 no se ven sometidos a unión y, en consecuencia, el codificador 10 codifica los parámetros de codificación en el flujo de bits 30 directamente.
El codificador 10 usa los parámetros de codificación de los bloques 40 así definidos para determinar una señal de predicción para la instantánea 20. El codificador 10 realiza esta determinación de la señal de predicción a nivel de bloque en que la señal de predicción depende de los parámetros de codificación asociados con el respectivo bloque 40.
Otra decisión realizada por el codificador 10 es si ha de transmitirse o no el residuo, es decir, la diferencia entre la señal de predicción y el contenido de la instantánea original en la respectiva área local del bloque actual 40, en el flujo de bits 30. Es decir, el codificador 10 decide para los bloques 40 si debe aplicarse o no el modo de salto al respectivo bloque. Si se aplica el modo de salto, el codificador 10 codifica la instantánea 20 en la porción actual 40 simplemente en forma de la señal de predicción derivada de, o dependiendo de, los parámetros de codificación asociados con el respectivo bloque 40, y en caso de que se deseleccione modo de salto, el codificador 10 codifica la instantánea 20 en el flujo de bits 30 en el bloque 40 usando tanto la señal de predicción, así como los datos residuales.
Para ahorrar tasa de bits para señalizar la decisión con respecto a la unión, por una parte, y al modo de salto, por otra parte, el codificador 10 señaliza comúnmente ambas decisiones usando una bandera para un bloque 40. Para ser más precisos, puede realizarse la señalización común de manera que la activación de tanto el modo de unión como el modo de salto se indica comúnmente por la bandera del respectivo bloque 40 dentro del flujo de bits 30 asumiendo un primer posible estado de bandera, mientras que el otro estado de bandera de la bandera simplemente indica al decodificador que no se activa uno del modo de unión o del modo de salto. Por ejemplo, el codificador 10 puede decidir para un cierto el bloque 40 activar la unión, pero desactivar el modo de salto. En ese caso, el codificador 10 usa el otro estado de bandera para señalizar en el flujo de bits 30 la desactivación de al menos uno del modo de unión y el de salto, mientras que se señaliza posteriormente en el flujo de bits 30 la activación de la unión mediante el uso de otra bandera, por ejemplo. Por consiguiente, el codificador 10 tiene que transmitir esta bandera adicional simplemente en caso de un bloque 40 para el que no se haya activado concurrentemente el modo de unión y el de salto. En las realizaciones descritas adicionalmente a continuación, la primera bandera se denomina mrg_cbf o skip_flag mientras que la bandera de indicador de unión subsidiaria se denomina mrg o merge_flag. Se ha hallado por los inventores de la presente solicitud que esta utilización conjunta de un estado de señalización para señalizar comúnmente la activación del modo de unión y de salto reduce la tasa de bits global del flujo de bits 30.
En cuanto al estado de señalización recién mencionado, debería observarse que puede determinarse un estado de señalización de este tipo por el estado de un bit del flujo de bits 30. Sin embargo, el codificador 10 puede estar configurado para codificar por entropía el flujo de bits 30, y, en consecuencia, la correspondencia entre el estado de señalización de la bandera y el flujo de bits 30 puede ser más complicado. En ese caso, el estado podría corresponder a un bit del flujo de bits 30 en el dominio decodificado por entropía. Incluso, además, el estado de señalización puede corresponder a uno de los dos estados de la bandera para la que se asignan palabras de código de acuerdo con el esquema de codificación de longitud variable. En caso de codificación aritmética, el estado de señalización que señaliza comúnmente la activación del modo de unión y de salto, puede corresponder a uno de los símbolos del alfabeto de símbolos que subyace el esquema de codificación aritmética.
Como se ha señalado anteriormente, el codificador 10 señaliza la activación concurrente del modo de fusión y el de salto usando una bandera en el flujo de bits 30. Como se señalará en más detalle a continuación, esta bandera puede transmitirse en un elemento de sintaxis que tiene más de dos posibles estados. Este elemento de sintaxis puede señalizar, por ejemplo, otras opciones de codificación también. Se describen detalles en más detalle a continuación. Sin embargo, en ese caso, uno de los posibles estados del uno o más elementos de sintaxis señaliza la activación concurrente. Es decir, cada vez que el elemento de sintaxis recién mencionado de un bloque actual 40 asume este estado posible predeterminado, el codificador 10 señaliza de esta manera la activación de tanto el modo de unión como el de salto. El decodificador, por lo tanto, no necesita señalización adicional con respecto a la activación del modo de unión y la activación del de salto, respectivamente.
Con respecto a la descripción anteriormente señalada, debería observarse que la subdivisión de la instantánea 20 en los bloques 40 puede no representar la resolución más precisa en la que se determinan los parámetros de codificación para la instantánea 20. En su lugar, el codificador 10 puede acompañar cada bloque 40 con información de subdivisión adicional para señalizar en el flujo de bits 30 uno de los patrones de subdivisión soportados para subdividir el bloque actual 40 en los subbloques 50 y 60, respectivamente, es decir, subconjuntos de muestras. En ese caso, la decisión de unión/salto concurrente se realiza por el codificador 10 en unidades de bloques 40, mientras que los parámetros de codificación junto con, por ejemplo, la decisión de unión subsidiaria y/o la decisión de modo de salto separados entre sí, se definen para la instantánea 20 en unidades de la subdivisión de los bloques 40, es decir, en unidades de subbloques 50 y 60 en el bloque 40 mostrado de manera ilustrativa de la Figura 1. De manera natural, un modo de no subdivisión puede representar uno de los patrones de subdivisión soportados, dando como resultado de esta manera que el codificador 10 determine simplemente un conjunto de parámetros de codificación para el bloque 40. Independientemente del número de subbloques 50 y 60 del respectivo patrón de subdivisión, la decisión de unión puede aplicarse a todos los subbloques, es decir el uno o más subbloques. Es decir, si la unión está activada para el bloque 40, esta activación puede ser válida para todos los subbloques. De acuerdo con una realización señalada adicionalmente a continuación, el estado común anteriormente mencionado que señaliza la activación del modo de unión y de salto, puede señalizar adicionalmente de manera concurrente el patrón de no subdivisión entre los patrones de subdivisión soportados para el bloque actual 40 de modo que en caso de la bandera o el elemento de sintaxis que asume este estado, no es necesaria transmisión de información de subdivisión adicional para el bloque actual. De manera natural, cualquier otro patrón de subdivisión entre el patrón de subdivisión soportado podría indicarse como alternativa de manera concurrente además de la activación del modo de unión y de salto.
De acuerdo con algunas realizaciones de la presente solicitud, el codificador 10 evita las penalizaciones de eficacia de bits resultantes del uso conjunto de la subdivisión de bloque de los bloques 40, por una parte, y de la unión de subbloques 50 y 60, por otra parte. Para ser más precisos, el codificador 10 puede decidir en cuanto a si, en algún sentido, por ejemplo, la optimización de tasa-distorsión es mejor a la subdivisión adicional del bloque 40, y en cuanto a cuál de los patrones de subdivisión soportados debe usarse para que un bloque actual 40 adapte la granularidad en la que se establecen o definen ciertos parámetros de codificación en el bloque actual 40 de la instantánea 20. Como se señalará en más detalle a continuación, los parámetros de codificación pueden representar, por ejemplo, parámetros de predicción tales como parámetros de inter predicción. Tales parámetros de inter predicción pueden comprender, por ejemplo, un índice de instantánea de referencia, un vector de movimiento y similares. Los patrones de subdivisión soportados pueden comprender, por ejemplo, un modo de no subdivisión, es decir, una opción de acuerdo con la que el bloque actual 40 no se subdivide adicionalmente, un modo de subdivisión de manera horizontal, es decir, una opción de acuerdo con la que el bloque actual 40 se subdivide a lo largo de una línea que se extiende horizontalmente en una porción superior o arriba y una porción inferior o abajo y un modo de subdivisión de manera vertical, es decir una porción de acuerdo con la que el bloque actual 40 se subdivide verticalmente a lo largo de una línea que se extiende verticalmente en una porción izquierda y una porción derecha. Además de esto, los patrones de subdivisión soportados pueden comprender también una opción de acuerdo con la que el bloque actual 40 se subdivide de manera regular en cuatro bloques adicionales asumiendo cada uno un cuarto del bloque actual 40. Además, la subdivisión puede pertenecer a todos los bloques 40 de la instantánea 20 o simplemente a un subconjunto apropiado de los mismos tales como aquellos que tienen un cierto modo de codificación asociado con los mismos, tal como el modo de inter predicción. De manera similar, se observa que la unión puede estar disponible, de por sí, simplemente para ciertos bloques, tales como aquellos codificados en el modo de inter predicción. De acuerdo con una realización que se señala adicionalmente a continuación, el estado interpretado de manera común anteriormente mencionado también señaliza de manera concurrente que el respectivo bloque es del modo de inter predicción en lugar del modo de intra predicción. Por consiguiente, un estado de la bandera anteriormente mencionada para el bloque 40 puede señalizar que este bloque es un bloque codificado de inter predicción que no se subdivide adicionalmente y para el que se activan tanto el modo de unión como el de salto. Sin embargo, como una decisión subsidiaria en caso de que la bandera asuma el otro estado, cada partición o subconjunto de muestras 50 y 60 puede acompañarse individualmente por una bandera adicional en el flujo de bits 30 para señalizar si debe aplicarse o no la unión a la respectiva partición 50 y 60. Además, pueden estar disponibles diferentes subconjuntos de los modos de subdivisión soportados para los bloques 40, dependiendo de, por ejemplo, el tamaño de bloque, el nivel de subdivisión del bloque 40 en caso de que el mismo sea un bloque hoja de subdivisión de árbol múltiple, en combinación o individualmente.
Es decir, la subdivisión de instantánea 20 en los bloques para obtener, entre otras cosas, el bloque 40 puede fijarse o señalizarse en el flujo de bits. De manera similar, el patrón de subdivisión que va a usarse para subdividir adicionalmente el bloque actual 40 puede señalizarse en el flujo de bits 30 en forma de información de subdivisión. Por consiguiente, la información de subdivisión puede pensarse, por lo tanto, como que es una clase de extensión de la subdivisión de la instantánea 20 en los bloques 40. Por otra parte, puede aún quedar una relevancia adicional de la granularidad original de la subdivisión de instantánea 20 en los bloques 40. Por ejemplo, el codificador 10 puede estar configurado para señalizar en el flujo de bits 30 el modo de codificación que va a usarse para la respectiva porción o bloque 40 de la instantánea 20 a la granularidad definida por el bloque 40 mientras que el codificador 10 puede estar configurado para variar los parámetros de codificación del respectivo modo de codificación en el respectivo bloque 40 a una granularidad aumentada (más precisa) definida por el respectivo patrón de subdivisión elegido para el respectivo bloque 40. Por ejemplo, el modo de codificación señalizado a la granularidad de bloques 40 puede distinguir entre el modo de intra predicción, el modo de inter predicción y similares, tal como el modo de inter predicción temporal, el modo de predicción de inter-vista etc. La clase de parámetros de codificación asociados con el uno o más subbloques (particiones) resultantes de la subdivisión del respectivo bloque 40, que depende del modo de codificación asignado al respectivo bloque 40. Por ejemplo, para un bloque intra-codificado 40, los parámetros de codificación pueden comprender una dirección espacial a lo largo de la cual se usa el contenido de la instantánea de porciones previamente decodificadas de la instantánea 20 para rellenar el respectivo bloque 40. En caso de un bloque inter-codificado 40, los parámetros de codificación pueden comprender, entre otras cosas, un vector de movimiento para predicción de movimiento compensado.
La Figura 1 muestra de manera ilustrativa el bloque actual 40 como que se subdivide en dos subbloques 50 y 60. En particular, se muestra de manera ilustrativa un modo de subdivisión de manera vertical. Los bloques más pequeños 50 y 60 pueden denominarse también los subbloques 50 y 60 o las particiones 50 y 60 o las unidades de predicción 50 y 60. En particular, el codificador 10 puede estar configurado para retirar, en tales casos donde el señalizado de los patrones de subdivisión soportados especifica una subdivisión del bloque actual 40 en dos o más bloques 50 y 60 adicionales, para todos los bloques adicionales excepto un primer subbloque de los subbloques 50 y 60 en un orden de codificación, a partir de un conjunto de candidatos de parámetro de codificación para el respectivo subbloque, candidatos de parámetro de codificación que tienen parámetros de codificación que son los mismos que los parámetros de codificación asociados con cualquiera de los subbloques que darían como resultado, cuando se unieran con los respectivos subbloques, uno de los patrones de subdivisión soportados. Para ser más precisos, para cada uno de los patrones de subdivisión soportados se define un orden de codificación entre la una o más particiones resultantes 50 y 60. En el caso de la Figura 1, el orden de codificación se ilustra de manera ilustrativa por una flecha 70, que define que la partición izquierda 50 se codifica antes que la partición derecha 60. En caso de un modo de subdivisión de manera horizontal, podría definirse que la partición superior se codifica antes que la partición inferior. En cualquier caso, el codificador 10 está configurado para retirar la segunda partición 60 en orden de codificación 70, del conjunto de candidatos de parámetro de codificación para la respectiva segunda partición 60, candidatos de parámetro de codificación que tienen parámetros de codificación que son los mismos que los parámetros de codificación asociados con la primera partición 50 para evitar el resultado de esta unión, en concreto, el hecho de que ambas particiones 50 y 60 tendrían los mismos parámetros de codificación asociados con las mismas que, de hecho, podrían producirse de manera igual eligiendo el modo de no subdivisión para bloque actual 40 a una tasa de codificación inferior.
Para ser más precisos, el codificador 10 puede estar configurado para usar la unión de bloques de una manera eficaz junto con la subdivisión de bloque. En lo que respecta a la unión de bloques, el codificador 10 puede determinar para cada partición 50 y 60, un respectivo conjunto de candidatos de parámetro de codificación. El codificador puede estar configurado para determinar los conjuntos de candidatos de parámetro de codificación para cada una de las particiones 50 y 60 basándose en parámetros de codificación asociados con bloques previamente decodificados. En particular, al menos algunos de los candidatos de parámetro de codificación en los conjuntos de candidatos de parámetro de codificación pueden ser iguales a, es decir pueden adoptarse a partir de, los parámetros de codificación de particiones previamente decodificadas. Adicionalmente o como alternativa, al menos algunos de los candidatos de parámetro de codificación pueden derivarse de candidatos de parámetro de codificación asociados con más de una partición previamente codificada, por medio de una combinación adecuada tal como una mediana, media o similares. Sin embargo, puesto que el codificador 10 está configurado para realizar la determinación del conjunto reducido de candidatos de parámetro de codificación y, si queda más de un candidato de parámetro de codificación de este tipo después de la retirada, la elección entre los candidatos de parámetro de codificación no retirados restantes, para cada una de las no primeras particiones 60 para establecer parámetros de codificación asociados con la respectiva partición dependiendo del candidato de parámetro de codificación no retirado o elegido, el codificador 10 está configurado para realizar la retirada de manera que se retiran candidatos de parámetro de codificación que conducirían, de manera eficaz, a la reunificación de las particiones 50 y 60. Es decir, se evitan de manera eficaz constelaciones de sintaxis de acuerdo con las que se codifica una situación de subdivisión eficaz más compleja que en caso de señalizar directamente esta subdivisión simplemente mediante el uso de la información de subdivisión en solitario.
Además, a medida que se hacen más pequeños los conjuntos de candidatos de parámetro de codificación, la cantidad de información secundaria necesaria para codificar la información de unión en el flujo de bits 30 puede reducirse debido al número inferior de elementos en estos conjuntos de candidatos. En particular, a medida que el decodificador puede determinar y posteriormente reducir los conjuntos de candidatos de parámetro de codificación de la misma manera que lo hace el codificador de la Figura 1, el codificador 10 de la Figura 1 puede aprovechar los conjuntos reducidos de candidatos de parámetro de codificación, por ejemplo, usando menos bits para insertar un elemento de sintaxis en el flujo de bits 30, que especifica cuál de los candidatos de parámetro de codificación no retirados ha de emplearse para la unión. De manera natural, la introducción del elemento de sintaxis en el flujo de bits 30 puede suprimirse por completo en caso de que el número de candidatos de parámetro de codificación no retirados para la respectiva partición sea simplemente uno. En cualquier caso, debido a la unión, es decir, el ajuste de los parámetros de codificación asociados con la respectiva partición que depende del que queda o el elegido de los candidatos de parámetro de codificación no retirados, el codificador 10 puede suprimir la inserción completamente nueva de parámetros de codificación para la respectiva partición en el flujo de bits 30, reduciendo también de esta manera la información secundaria. De acuerdo con algunas realizaciones de la presente solicitud, el codificador 10 puede estar configurado para señalizar en el flujo de bits 30 información de perfeccionamiento para perfeccionar el que queda o el elegido de los candidatos de parámetro de codificación para las respectivas particiones.
De acuerdo con la posibilidad recién señalada de reducción de la lista de candidatos de unión, el codificador 10 puede estar configurado para determinar los candidatos de unión que van a retirarse por medio de una comparación de sus parámetros de codificación con los parámetros de codificación de la partición, la unión con la que se produciría otro patrón de subdivisión soportado. Esta manera de tratar los candidatos de parámetro de codificación retiraría, de manera eficaz, al menos un candidato de parámetro de codificación en el caso ilustrativo de la Figura 1, por ejemplo, con la condición de que los parámetros de codificación de la partición izquierda 50 formen un elemento del conjunto de candidatos de parámetro de codificación para la partición derecha 60. Sin embargo, pueden retirarse también candidatos de parámetro de codificación adicionales en caso de que sean iguales a los parámetros de codificación de la partición izquierda 50. Sin embargo, de acuerdo con otra realización de la presente invención, el codificador 10 podría estar configurado para determinar un conjunto de bloques candidatos para cada segunda y siguiente partición en orden de codificación, retirando esos o aquellos bloques candidatos de este conjunto de bloques candidatos, que darían como resultado, cuando se unan con la respectiva partición, uno de los patrones de subdivisión soportados. En algún sentido, esto significa lo siguiente. El codificador 10 puede estar configurado para determinar candidatos de unión para una respectiva partición 50 o 60 (es decir, los primeros y los siguientes en orden de codificación) de manera que cada elemento del conjunto de candidatos tiene exactamente una partición del bloque actual 40 o cualquiera de los bloques 40 previamente codificados, asociada con los mismos en que el candidato adopta los respectivos parámetros de codificación de la partición de asociación. Por ejemplo, cada elemento del conjunto de candidatos podría ser igual, es decir adoptado de, uno de tales parámetros de codificación de particiones previamente codificadas, o podría derivase al menos de los parámetros de codificación de simplemente una de tal partición previamente codificada tal como escalando o perfeccionando adicionalmente usando la información de perfeccionamiento adicionalmente enviada. Sin embargo, el codificador 10 podría también estar configurado para acompañar tal conjunto candidato con elementos o candidatos adicionales, en concreto candidatos de parámetro de codificación que se han derivado de una combinación de parámetros de codificación de más de una partición previamente codificada, o que se han derivado, por modificación, de parámetros de codificación de una partición previamente codificada tal como tomando simplemente los parámetros de codificación de una lista de parámetros de movimiento. Para los elementos “combinados”, no hay asociación 1:1 entre los parámetros de codificación del respectivo elemento candidato y una respectiva partición. De acuerdo con la primera alternativa de la descripción de la Figura 1, el codificador 10 podría estar configurado para retirar todos los candidatos del conjunto de candidatos total, los parámetros de codificación de los que son iguales a los parámetros de codificación de la partición 50. De acuerdo con la última alternativa de la descripción de Figura 1, el codificador 10 podría estar configurado para retirar simplemente el elemento del conjunto de candidatos que está asociado con la partición 50. Armonizando ambos puntos de vista, el codificador 10 podría estar configurado para retirar candidatos de la porción del conjunto de candidatos, que muestra una asociación 1:1 a algunas (por ejemplo, vecinas) particiones previamente codificadas, no extendiendo la retirada (y búsqueda de candidatos que tienen parámetros de codificación iguales) a la porción restante del conjunto de candidatos que tienen parámetros de codificación que se obtienen por combinación. Pero, por supuesto, si una combinación también condujera a una representación redundante, esto podría resolverse retirando parámetros de codificación redundantes de la lista o realizando la comprobación de redundancia para los candidatos combinados también.
Antes de describir una realización de un decodificador que se adapta a la realización recién señalada de la Figura 1, se señala un aparato para codificación, es decir, un codificador, de acuerdo con la Figura 1 en una implementación más detallada en más detalle a continuación con respecto a la Figura 2. La Figura 2 muestra el codificador como que comprende un subdivisor 72 configurado para subdividir la instantánea 20 en los bloques 40, un fusionador 74 configurado para unir el bloque 40 en grupos de uno o más conjuntos de muestras como se ha señalado anteriormente, un codificador o etapa de codificación 76, configurado para codificar la instantánea 20 usando parámetros de codificación que varían a través de la instantánea 20 en unidades de los grupos de conjuntos de muestras y un generador de flujo 78. El codificador 76 está configurado para codificar la instantánea 20 prediciendo la instantánea 20 y codificando una predicción residual para bloques predeterminados. Es decir, el codificador 76 codifica, como se ha descrito anteriormente, la predicción residual no para todos los bloques 40. En su lugar, algunos de ellos tienen el modo de salto activado. El generador de flujo 78 está configurado para insertar la predicción residual y los parámetros de codificación en el flujo de bits 30, junto con uno o más elementos de sintaxis para cada uno de al menos un subconjunto de los bloques 40, que señaliza si el respectivo bloque 40 está unido o no en uno de los grupos junto con otro bloque y si el respectivo bloque usa o no el modo de salto. Como se ha descrito anteriormente, la información de subdivisión que subyace la subdivisión del subdivisor 72 puede codificarse también en el flujo de bits 30 para la instantánea 20 por el generador de flujo 78. Esto se indica por una línea discontinua en la Figura 2. La decisión de unión por el fusionador 74 y la decisión de modo de salto realizada por el codificador 76, como se ha señalado anteriormente, se codifican comúnmente en el flujo de bits 30 por el generador de flujo 78 de manera que uno de los posibles estados del uno o más elementos de sintaxis de un bloque actual 40 señaliza que ha de unirse el respectivo bloque en uno de los grupos de los bloques junto con otro bloque de la instantánea 20 y no tiene predicción residual codificada e insertada en el flujo de bits 30. El generador de flujo 78, por ejemplo, puede usar codificación por entropía para realizar la inserción. El subdivisor 72 puede ser responsable de la subdivisión de la instantánea 20 en los bloques 40 así como de la subdivisión adicional opcional en las particiones 50 y 60, respectivamente. El fusionador 74 es responsable de la decisión de unión anteriormente señalada mientras que el codificador 76 puede decidir, por ejemplo, sobre el modo de salto para los bloques 40. De manera natural, todas estas decisiones influencian la medida de tasa/distorsión en combinación y, en consecuencia, el aparato 10 puede estar configurado para intentar varias opciones de decisión para determinar cuál opción ha de preferirse.
Después de haber descrito un codificador de acuerdo con una realización de la presente invención con respecto a las Figuras 1 y 2, se describe un aparato para decodificación, es decir un decodificador 80 de acuerdo con una realización con respecto a la Figura 3. El decodificador 80 de la Figura 3 está configurado para decodificar el flujo de bits 30 que, como se ha descrito anteriormente, tiene una instantánea 20 codificada en el mismo. En particular, el decodificador 80 está configurado para, para un conjunto o bloques de muestras actual 40, responder de manera común la bandera anteriormente mencionada en el flujo de bits 30 en cuanto a una primera decisión de si los parámetros de codificación asociados con el bloque actual 40 han de establecerse de acuerdo con un candidato de unión o han de recuperarse del flujo de bits 30, y una segunda decisión de si el bloque actual 40 de la instantánea 20 ha de reconstruirse simplemente basándose en una señal de predicción dependiendo de los parámetros de codificación asociados con el bloque actual 40, sin ningún dato residual, o ha de reconstruirse perfeccionando la señal de predicción dependiendo de los parámetros de codificación asociados con el bloque actual 40 por medio de datos residuales dentro del flujo de bits 30.
Es decir, la funcionalidad del decodificador coincide en mayor medida con la del codificador descrito con respecto a las Figuras 1 y 2. Por ejemplo, el decodificador 80 puede estar configurado para realizar la subdivisión de la instantánea 40 en los bloques 40. Esta subdivisión puede ser conocida para el decodificador 80 por defecto, o el decodificador 80 puede estar configurado para extraer respectiva información de subdivisión del flujo de bits 30. Cada vez que se une un bloque 40, el decodificador 80 puede estar configurado para obtener los parámetros de codificación asociados con ese bloque 40 estableciendo los parámetros de codificación del mismo de acuerdo con un candidato de unión. Para determinar el candidato de unión, el decodificador 80 puede realizar la determinación anteriormente señalada del conjunto o lista de candidatos de unión en exactamente la misma manera que lo hizo el codificador. Esto incluye, de acuerdo con algunas realizaciones de la presente solicitud, incluso la reducción del conjunto/lista preliminar de candidatos de unión para evitar la redundancia anteriormente señalada entre subdivisión de bloque, por una parte, y la unión de bloques, por otra parte. La selección entre el conjunto o lista determinada de candidatos de unión puede realizarse por el decodificador 80 extrayendo un respectivo índice de unión del flujo de bits 30 cada vez que se active la unión. El índice de unión señala al candidato de unión para que se use fuera del conjunto o lista (reducidos) de candidatos de unión determinados como se ha descrito anteriormente. Además, como también se ha descrito anteriormente, el decodificador 80 puede estar también configurado para someter los bloques 40 a una subdivisión de acuerdo con uno de los patrones de subdivisión soportados. De manera natural, uno de estos patrones de subdivisión puede implicar un modo de no subdivisión de acuerdo con el que un bloque 40 ya no se subdivide adicionalmente. En caso de que la bandera descrita de manera minuciosa asuma el estado comúnmente definido que indica la activación del modo de unión y de salto para un cierto bloque 40, el decodificador 80 puede estar configurado para reconstruir el bloque actual 40 simplemente basándose en la señal de predicción en lugar de una combinación del mismo con alguna señal residual. En otras palabras, el decodificador 80 suprime en ese caso la extracción de datos residuales para el bloque actual 40 y simplemente reconstruye la instantánea 20 en el bloque actual 40 mediante el uso de la señal de predicción derivada de los parámetros de codificación del bloque actual. Como ya se ha descrito también anteriormente, el decodificador 80 puede interpretar el estado común de la bandera también como una señalización para el bloque actual 40 que este bloque es un bloque inter previsto y/o un bloque que no se subdivide adicionalmente. Es decir, el decodificador 80 puede estar configurado de manera que el mismo obtiene los parámetros de codificación asociados con un bloque actual 40 estableciendo estos parámetros de codificación de acuerdo con un candidato de unión, y reconstruye el bloque actual 40 de la instantánea 20 simplemente basándose en una señal de predicción dependiendo de los parámetros de codificación del bloque actual 40 sin ningún dato residual si la bandera en cuestión del bloque actual 40 en el flujo de bits 30 señaliza que los parámetros de codificación asociados con el bloque actual 40 han de establecerse usando unión. Sin embargo, si la bandera en cuestión señaliza que no se usa el bloque actual 40 que no se ve sometido al modo de unión o de salto, el decodificador 80 puede responder a otra bandera en el flujo de bits 30 de manera que el decodificador 80, dependiendo de esta otra bandera, obtiene los parámetros de codificación asociados con el bloque actual estableciendo los mismos de acuerdo con un respectivo candidato de unión, obtiene datos residuales para el bloque actual del flujo de bits 30 y reconstruye el bloque actual 40 de la instantánea 20 basándose en la señal de predicción y los datos residuales, o extrae los parámetros de codificación asociados con el bloque actual 40 del flujo de bits 30, obtiene datos residuales para el bloque actual 40 del flujo de bits 30 y reconstruye el bloque actual 40 de la instantánea 20 basándose en la señal de predicción y los datos residuales. Como se ha señalado anteriormente, el decodificador 80 puede estar configurado para esperar la existencia de la otra bandera en el flujo de bits 30 únicamente en caso de que la primera bandera no asuma el estado de señalización de manera común que señaliza concurrentemente la activación del modo de unión y de salto. Únicamente entonces, el decodificador 80 extrae la otra bandera del flujo de bits para determinar si debe tener lugar la unión sin el modo de salto. De manera natural, el decodificador 80 podría configurarse de manera alternativa para esperar otra tercera bandera en el flujo de bits 30 para el bloque actual 40 en caso de que la segunda bandera señalice la desactivación de la unión, señalizando esta tercera bandera la activación o desactivación de modo de salto.
De manera análoga a la Figura 2, la Figura 4 muestra una posible implementación del aparato para decodificación de la Figura 3. Por consiguiente, la Figura 4 muestra un aparato para decodificación, es decir un decodificador 80, que comprende un subdivisor 82 configurado para subdividir la instantánea 20 codificada en el flujo de bits 30 en los bloques 40, un fusionador 84 configurado para unir los bloques 40 en grupos de uno o más bloques cada uno, un decodificador 86 configurado para decodificar o reconstruir la instantánea 20 usando parámetros de codificación que varían a través de la instantánea 20 en unidades de los grupos de conjuntos de muestras y un extractor 88. El decodificador 86 también está configurado para decodificar la instantánea 20 prediciendo la instantánea 20, decodificando una predicción residual para bloques predeterminados 40 y combinando la predicción residual y una predicción resultante de predecir la instantánea 20, para los bloques predeterminados 40, es decir aquellos que tienen el modo de salto desconectado. El extractor 88 está configurado para extraer la predicción residual y los parámetros de codificación del flujo de bits 30, junto con uno o más elementos de sintaxis para cada uno de al menos un subconjunto de los bloques 40, señalizar si ha de unirse o no el respectivo bloque 40 en uno de los grupos junto con otro bloque 40, en donde el fusionador 84 está configurado para realizar la fusión en respuesta al uno o más elementos de sintaxis, en donde uno de los posibles estados del uno o más elementos de sintaxis señaliza que el respectivo bloque 40 ha de unirse en uno de los grupos de los bloques junto con otro bloque 40 y no tiene predicción residual codificada e insertada en el flujo de bits 30.
Por lo tanto, comparando la Figura 4 con la Figura 2, el subdivisor 82 actúa como el subdivisor 72 para restaurar la subdivisión generada por el subdivisor 72. El subdivisor 82 conoce acerca de la subdivisión de la instantánea 20 por defecto o extrae información de subdivisión del flujo de bits 30 mediante el extractor 88. De manera similar, el fusionador 84 forma la unión de los bloques 40 y se activa con respecto a los bloques 40 y las porciones de bloque mediante la señalización anteriormente señalada en el flujo de bits 30. El decodificador 86 realiza la generación de la señal de predicción de la instantánea 20 usando los parámetros de codificación en el flujo de bits 30. En caso de unión, el decodificador 86 copia los parámetros de codificación de un bloque actual 40 o una partición actual de bloque de bloques/particiones vecinas o de otra manera establece los parámetros de codificación del mismo de acuerdo con el candidato de unión.
Como ya se ha señalado anteriormente, el extractor 88 está configurado para interpretar uno de los posibles estados de una bandera o elemento de sintaxis para un bloque actual como una señal que señaliza concurrentemente la activación del modo de unión y de salto. Concurrentemente, el extractor 88 puede interpretar el estado para señalizar también uno predeterminado entre los patrones de subdivisión soportados para el bloque actual 40. Por ejemplo, el patrón de subdivisión predeterminado puede ser el modo de no subdivisión de acuerdo con el que el bloque 40 queda sin subdividir y por lo tanto forma una partición el mismo. Por consiguiente, el extractor 88 espera que el flujo de bits 30 comprenda información de subdivisión que señaliza la subdivisión del bloque 40 simplemente en caso de que la respectiva bandera o elemento de sintaxis no asuma el estado de señalización concurrentemente. Como se señalará en más detalle a continuación, la información de subdivisión puede transportarse en el flujo de bits 30 mediante un elemento de sintaxis que, concurrentemente, controla el modo de codificación del bloque actual 40, es decir, divide los bloques 40 en unos que estar inter codificados y unos que están intra codificados. En ese caso, el estado de señalización de manera común de la primera bandera/elemento de sintaxis puede interpretarse también como una señalización del modo de codificación de inter predicción. Para cada una de las particiones resultantes de la información de subdivisión señalizada, el extractor 88 puede extraer otra bandera de unión del flujo de bits en caso de que la primera bandera/elemento de sintaxis para el bloque 40 no asuma el estado de señalización de manera común que señaliza concurrentemente la activación del modo de unión y de salto. En ese caso, el modo de salto puede interpretarse inevitablemente por el extractor 88 que está desconectado, y aunque puede activarse la unión por el flujo de bits 30 individualmente para las particiones, la señal residual se extrae del flujo de bits 30 para este bloque actual 40.
Por lo tanto, el decodificador 80 de la Figura 3 o 4 está configurado para decodificar el flujo de bits 30. Como se ha descrito anteriormente, el flujo de bits 30 puede señalizar uno de los patrones de subdivisión soportados para un bloque actual 40 de la instantánea 20. El decodificador 80 puede estar configurado para, si el señalizado del patrón de subdivisión soportado especifica una subdivisión del bloque actual 40 en dos o más particiones 50 y 60, retirar todas las particiones excepto la primera partición 50 de las particiones en orden de codificación 70, es decir para la partición 60 en el ejemplo ilustrado de las Figuras 1 y 3, de un conjunto de candidatos de parámetro de codificación para los respectivos candidatos de parámetro de codificación de partición que tienen parámetros de codificación que son los mismos que, o iguales a, parámetros de codificación asociados con cualquiera de las particiones, que darían como resultado, cuando se unen con la respectiva partición, uno de los patrones de subdivisión soportados, en concreto uno que no se haya señalizado en el flujo de bits 30 pero, sin embargo, que sea uno de los patrones de subdivisión soportados.
Por ejemplo, el decodificador 80 puede estar configurado para, si un número de los candidatos de parámetro de codificación no retirados es distinto de cero, establecer parámetros de codificación asociados con la respectiva partición 60 dependiendo de uno de los candidatos de parámetro no retirados. Por ejemplo, el decodificador 80 establece los parámetros de codificación de la partición 60 para que sean iguales a uno del candidato de parámetro de codificación no retirado, con o sin perfeccionamiento adicional y/o con o sin escalamiento de acuerdo con una distancia temporal a la que hacen referencia los parámetros de codificación, respectivamente. Por ejemplo, el candidato de parámetro de codificación a unirse con los candidatos no retirados, puede tener otro índice de instantánea de referencia asociado con el mismo distinto de un índice de instantánea de referencia señalizado explícitamente en el flujo de bits 30 para la partición 60. En ese caso, los parámetros de codificación de los candidatos de parámetro de codificación pueden definir vectores de movimiento, cada uno relacionado con un respectivo índice de instantánea de referencia, y el decodificador 80 puede estar configurado para escalar el vector de movimiento del candidato de parámetro de codificación no retirado finalmente elegido de acuerdo con la relación entre ambos índices de instantánea de referencia. Por lo tanto, de acuerdo con la alternativa recién mencionada, los parámetros de codificación que se someten a unión, abarcarían los parámetros de movimiento, mientras que los índices de instantánea de referencia se separarían de los mismos. Sin embargo, como se ha indicado anteriormente, de acuerdo con realizaciones alternativas, los índices de instantánea de referencia podrían también ser una parte de los parámetros de codificación que se someten a unión.
Se aplica igualmente para el codificador de la Figura 1 y 2 y el decodificador de la Figura 3 y 4 que el comportamiento de unión puede restringirse a bloques inter-previstos 40. Por consiguiente, el decodificador 80 y el codificador 10 pueden estar configurados para soportar modos de intra e inter predicción para el bloque actual 40 y realizar la unión simplemente en caso de que se codifique bloque actual 40 en modo de inter predicción. Por consiguiente, simplemente pueden usarse los parámetros de codificación/predicción de tales particiones previamente codificadas inter-previstas para determinar/construir la lista de candidatos.
Como ya se ha analizado anteriormente, los parámetros de codificación pueden ser parámetros de predicción y el decodificador 80 puede estar configurado para usar los parámetros de predicción de las particiones 50 y 60 para derivar una señal de predicción para la respectiva partición. De manera natural, el codificador 10 realiza la derivación de la señal de predicción de la misma manera, también. Sin embargo, el codificador 10 establece adicionalmente los parámetros de predicción junto con todos los otros elementos de sintaxis en el flujo de bits 30 para conseguir alguna optimización en un sentido de optimización adecuado.
Además, como ya se ha descrito anteriormente, el codificador puede estar configurado para insertar un índice a un candidato de parámetro de codificación (no retirado) simplemente en caso de que el número de candidatos de parámetro de codificación (no retirados) para una respectiva partición sea mayor que uno. Por consiguiente, el decodificador 80 puede estar configurado para, dependiendo del número de candidatos de parámetro de codificación (no retirados) para, por ejemplo, la partición 60, simplemente esperar que el flujo de bits 30 comprenda un elemento de sintaxis que especifica cuál del candidato de parámetro de codificación (no retirado) se emplea para la unión, si el número de candidatos de parámetro de codificación (no retirados) es mayor que uno. Sin embargo, el caso de que el conjunto de candidatos se haga más pequeño en número que dos, podría excluirse generalmente que tuviera lugar extendiendo, como se ha descrito anteriormente, la lista/conjunto de candidatos usando parámetros de codificación combinados, es decir, parámetros que se han derivado mediante la combinación de los parámetros de codificación de más de uno, o más de dos, particiones previamente codificadas, restringiendo el rendimiento de la reducción de conjunto de candidatos a aquellos candidatos que se han obtenido adoptando, o mediante derivación de, los parámetros de codificación de exactamente una partición previamente codificada. Lo opuesto también es posible, es decir, retirar en general todos los candidatos de parámetro de codificación que tienen el mismo valor que aquellos de la partición resultante de otro patrón de subdivisión soportado.
Con respecto a la determinación, el decodificador 80 actúa como lo hace el codificador 10. Es decir, el decodificador 80 puede estar configurado para determinar el conjunto de candidatos de unión para la partición o las particiones de un bloque 40 basándose en parámetros de codificación asociados con particiones previamente decodificadas. Es decir, un orden de codificación puede no estar definido únicamente entre las particiones 50 y 60 de un respectivo bloque 40, sino también entre los bloques 40 de la misma instantánea 20. Todas las particiones que se han codificado antes que la partición 60 pueden servir, por lo tanto, como la base para la determinación del conjunto de candidatos de unión para cualquiera de las particiones posteriores, tal como la partición 60 en caso de la Figura 3. Como también se ha descrito anteriormente, el codificador y decodificador pueden restringir la determinación del conjunto de candidatos de unión a particiones en una cierta cercanía espacial y/o temporal. Por ejemplo, el decodificador 80 puede estar configurado para determinar el conjunto de candidatos de unión basándose en los parámetros de codificación asociados con particiones previamente decodificadas vecinas a la partición actual, en donde tales particiones pueden radicar fuera y dentro del bloque actual 40. De manera natural, la determinación de candidatos de unión puede realizarse también para la primera partición en orden de codificación. Simplemente puede abandonarse la eliminación.
Coincidiendo con la descripción de la Figura 1, el decodificador 80 puede estar configurado para determinar el conjunto de candidatos de parámetro de codificación para la respectiva no primera partición 60 de un conjunto inicial de particiones previamente decodificadas, excluyendo la que se codifican en un modo de intra predicción.
Además, en caso de que el codificador introduzca información de subdivisión en el flujo de bits para subdividir la instantánea 20 en los bloques 40, el decodificador 80 puede estar configurado para recuperar la subdivisión de instantánea 20 en tales bloques de codificación 40 de acuerdo con la información de subdivisión en el flujo de bits 30.
Con respecto a las Figuras 1 a 4, debería observarse que la señal residual para el bloque actual 40 puede transmitirse mediante el flujo de bits 30 en una granularidad que puede diferir de la granularidad definida por las particiones con respecto a los parámetros de codificación. Por ejemplo, para los bloques para los que se desactiva el modo de salto, el codificador 10 de la Figura 1 puede estar configurado para subdividir el bloque 40 en uno o más bloques de transformada de una manera paralela a, o independiente de, la subdivisión en las particiones 50 y 60. El codificador puede señalizar la respectiva subdivisión del bloque de transformada para el bloque 40 por medio de información de subdivisión adicional. El decodificador 80, a su vez, puede estar configurado para recuperar esta subdivisión adicional del bloque 40 en uno o más bloques de transformada de acuerdo con la información de subdivisión adicional en el flujo de bits, y para derivar una señal residual del bloque actual 40 del flujo de bits en unidades de estos bloques de transformada. El significado de la subdivisión de bloque de transformación puede ser que la transformada, tal como la DCT, en el codificador y la correspondiente transformada inversa, tal como la IDCT en el decodificador se realizan en cada bloque de transformación del bloque 40 individualmente. Para reconstruir la instantánea 20 en el bloque 40, el codificador 10 a continuación combina, tal como una suma, la señal de predicción derivada aplicando los parámetros de codificación en las respectivas particiones 50 y 60, y la señal residual, respectivamente. Sin embargo, se observa que la codificación residual puede no implicar transformada y transformada inversa alguna respectivamente, y que el residuo de predicción se codifica en el dominio espacial en su lugar, por ejemplo.
Antes de describir posibles detalles de realizaciones adicionales a continuación, deberá describirse una posible estructura interna del codificador y decodificador de las Figuras 1 a 4 con respecto a las Figuras 5 y 6, en donde, sin embargo, el fusionador y el subdivisor no se muestran en estas figuras para concentrarse en la naturaleza de la codificación híbrida. La Figura 5 muestra de manera ilustrativa cómo el codificador 10 puede construirse internamente. Como se muestra, el codificador 10 puede comprender un restador 108, un transformador 100 y un generador de flujo de bits 102, que pueden realizar, como se indica en la Figura 5, una codificación por entropía. Los elementos 108, 100 y 102 están conectados en serie entre una entrada 112 que recibe la instantánea 20 y una salida 114 que emite el flujo de bits anteriormente mencionado 30. En particular, el restador 108 tiene su entrada de no inversión conectada a la entrada 112 y el transformador 100 está conectado entre una salida del restador 108 y una primera entrada del generador de flujo de bits 102 que, a su vez, tiene una salida conectada a la salida 114. El codificador 10 de la Figura 5 comprende adicionalmente un transformador inverso 104 y un sumador 110 conectados en serie, en el orden mencionado, a la salida del transformador 100. El codificador 10 comprende adicionalmente un predictor 106, que está conectado entre una salida del sumador 110 y una entrada adicional del sumador 110 y la entrada de inversión del restador 108.
Los elementos de la Figura 5 interactúan como sigue: el predictor 106 predice porciones de la instantánea 20 aplicándose el resultado de la predicción, es decir, la señal de predicción, a la entrada de inversión del restador 108. La salida del restador 108, a su vez, representa la diferencia entre la señal de predicción y la respectiva porción de la instantánea 20, es decir, una señal residual. La señal residual se somete a codificación de transformada en el transformador 100. Es decir, el transformador 100 puede realizar una transformación, tal como una DCT o similares, y una posterior cuantificación en la señal residual transformada, es decir los coeficientes de transformación, para obtener niveles de coeficientes de transformada. El transformador inverso 104 reconstruye la señal residual final emitida por el transformador 100 para obtener una señal residual reconstruida que corresponde a la señal residual introducida en el transformador 100 excepto por la pérdida de información debido a la cuantificación en el transformador 100. La adición de la señal residual reconstruida y la señal de predicción según se emite por el predictor 106 da como resultado una reconstrucción de la respectiva porción de la instantánea 20 y se reenvía desde la salida del sumador 110 a la entrada del predictor 106. El predictor 106 opera en diferentes modos como se ha descrito anteriormente, tal como un modo de intra predicción, modo de inter predicción y similares. El modo de predicción y los correspondientes parámetros de codificación o de predicción aplicados por predictor 106 para obtener la señal de predicción, se reenvían por el predictor 106 al codificador por entropía 102 para su inserción en el flujo de bits.
Una posible implementación de la estructura interna del decodificador 80 de las Figuras 3 y 4, que corresponde a la posibilidad mostrada en la Figura 5 con respecto al codificador, se muestra en la Figura 6. Como se muestra en la misma, el decodificador 80 puede comprender un extractor de flujo de bits 150 que puede implementarse, como se muestra en la Figura 6, como un decodificador por entropía, un transformador inverso 152 y un sumador 154, que están en el orden mencionado, conectado entre una entrada 158 y una salida 160 del decodificador. Además, el decodificador de la Figura 6 comprende un predictor 156 conectado entre una salida del sumador 154 y una entrada adicional del mismo. El decodificador por entropía 150 está conectado por entropía a una entrada de parámetro del predictor 156.
Se describe brevemente la funcionalidad del decodificador de la Figura 6, el decodificador por entropía 150 es para extraer toda la información contenida en el flujo de bits 30. El esquema de codificación por entropía usado puede ser codificación de longitud variable o codificación aritmética. Mediante esto, el decodificador por entropía 150 se recupera de los niveles de coeficiente de transformación de flujo de bits que representan la señal residual y reenvía los mismos al transformador inverso 152. Además, el decodificador por entropía 150 actúa como el extractor anteriormente mencionado 88 y recupera del flujo de bits todos los modos de codificación y parámetros de codificación asociados y reenvía los mismos al predictor 156. Adicionalmente, se extrae la información de subdivisión y la información de unión del flujo de bits mediante el extractor 150. Se combina la señal transformada a la inversa, es decir, residual reconstruida y la señal de predicción según se derivan por predictor 156, tal como añadidas, por el sumador 154 que, a su vez, emite la señal reconstruida así recuperada en la salida 160 y reenvía la misma al predictor 156.
Como queda evidente a partir de comparar las Figuras 5 y 6, los elementos 152, 154 y 156 corresponden funcionalmente a los elementos 104, 110 y 106 de la Figura 5.
En la descripción anterior de las Figuras 1 a 6, se han presentado varias diferentes posibilidades con respecto a posibles subdivisiones de la instantánea 20 y la correspondiente granularidad al variar algunos de los parámetros implicados al codificar la instantánea 20. Una posibilidad de este tipo se describe de nuevo con respecto a la Figura 7a y la Figura 7b. La Figura 7a muestra una porción de una instantánea 20. De acuerdo con la realización de la Figura 7a, el codificador y decodificador están configurados para subdividir en primer lugar la instantánea 20 en bloques de árbol-raíz 200. Uno de tal bloque de árbol-raíz se muestra en la Figura 7a. La subdivisión de la instantánea 20 en bloques de árbol-raíz se hace de manera regular en filas y columnas como se ilustra por las líneas discontinuas. El tamaño de los bloques de árbol-raíz 200 puede seleccionarse por el codificador y señalizarse al decodificador mediante el flujo de bits 30. Como alternativa, el tamaño de estos bloques de árbol-raíz 200 puede fijarse por defecto. Los bloques de árbol-raíz 200 se subdividen mediante el uso de subdivisión de árbol cuádruple para producir los bloques anteriormente identificados 40 que pueden denominarse bloques de codificación o unidades de codificación. Estos bloques de codificación o unidades de codificación se extraen con estas líneas rectas en la Figura 7a. Mediante esto, el codificador acompaña cada bloque de árbol-raíz 200 con información de subdivisión e inserta la información de subdivisión en el flujo de bits. Esta información de subdivisión indica cómo el bloque de árbol-raíz 200 ha de subdividirse en los bloques 40. A una granularidad de, y en unidades de, estos bloques 40, el modo de predicción varía en la instantánea 20. Como se ha indicado anteriormente, cada bloque 40 o cada bloque que tiene un cierto modo de predicción tal como un modo de inter predicción, se acompaña por información de subdivisión en la que se usa el patrón de subdivisión soportado para el respectivo bloque 40. En este sentido, se recalca, sin embargo, que la bandera/elemento de sintaxis anteriormente mencionado puede también señalizar, cuando asume el estado de señalización de manera común, uno de los modos de subdivisión soportados para el respectivo bloque 40 de modo que puede suprimirse la transmisión explícita de otra información de subdivisión para este bloque 40 en el lado del codificador y no esperarse, por consiguiente, en el lado del decodificador. En el caso ilustrativo de la Figura 7a, para muchos bloques de codificación 40, se ha elegido el modo de no subdivisión de modo que el bloque de codificación 40 coincide espacialmente con la correspondiente partición. En otras palabras, el bloque de codificación 40 es, concurrentemente, una partición que tiene un respectivo conjunto de parámetros previstos asociados con el mismo. La clase de parámetros previstos, a su vez, depende del modo asociado con el respectivo bloque de codificación 40. Sin embargo, se muestran de manera ilustrativa otros bloques de codificación que van a subdividirse adicionalmente. Se muestra el bloque de codificación 40 en la esquina a arriba a la derecha del bloque de árbol-raíz 200, por ejemplo, que está subdividido en cuatro particiones, mientras que se muestra de manera ilustrativa el bloque de codificación en la esquina inferior a la derecha del bloque de árbol-raíz 200 que está subdividido de manera vertical en dos particiones. La subdivisión para subdividir en particiones se ilustra mediante líneas discontinuas. La Figura 7a también muestra el orden de codificación entre las particiones así definidas. Como se muestra, se usa un orden de recorrido de profundidad primero. A través de los bordes del bloque de árbol-raíz, puede continuarse el orden de codificación en un orden de exploración de acuerdo con el que se exploran las filas de los bloques de árbol-raíz 200 a nivel de filas de arriba a abajo de la instantánea 20. Mediante esta medida, es posible tener una posibilidad máxima de que una cierta partición tenga una partición previamente codificada en este borde superior y borde a la izquierda. Cada bloque 40, o cada bloque que tiene un cierto modo de predicción tal como el modo de inter predicción, puede tener un indicador de conmutador de unión en el flujo de bits que indica si está activada la unión para las correspondientes particiones en el mismo o no. Debería observarse que la subdivisión de los bloques en particiones/unidades de predicción podría estar registrada a la subdivisión de dos particiones de manera máxima, realizándose simplemente una excepción de resta para el tamaño de bloque más pequeño posible de los bloques 40. Esto podría evitar, en caso de usar subdivisión de árbol cuádruple para obtener los bloques 40, redundancia entre información de subdivisión para subdividir la instantánea 20 en el bloque 40 y la información de subdivisión para subdividir el bloque 40 en particiones. Como alternativa, podrían permitirse simplemente las subdivisiones en una o dos particiones, incluyendo o no incluyendo las asimétricas.
La Figura 7b muestra un árbol de subdivisión. Con las líneas continuas, se ilustra la subdivisión del bloque de árbolraíz 200, mientras que las líneas de puntos simbolizan la subdivisión de los bloques hoja de la subdivisión de árbol cuádruple, que son los bloques de codificación 40. Es decir, la subdivisión de los bloques de codificación representa una clase de extensión de la subdivisión cuádruple.
Como ya se ha indicado, cada bloque de codificación 40 puede subdividirse de manera paralela en bloques de transformada de modo que los bloques de transformada pueden representar una subdivisión diferente del respectivo bloque de codificación 40. Para cada uno de estos bloques de transformada, que no se muestran en las Figuras 7a y 7b, puede realizarse de manera separada una transformación para transformar la señal residual de los bloques de codificación.
A continuación, se describen realizaciones adicionales de la presente invención. Aunque las realizaciones anteriores se concentran en la relación entre la unión de bloques, por una parte, y la subdivisión de bloque, por otra parte, la siguiente descripción también incluye aspectos de la presente solicitud relacionados con otros principios de codificación conocidos en los presentes códecs, tales como los modos de SALTO/DIRECTO. Sin embargo, la siguiente descripción no deberá considerarse como que describe simplemente realizaciones separadas, es decir, realizaciones separadas de aquellas anteriormente descritas. En su lugar, la descripción a continuación también revela posibles detalles de implementación para las realizaciones anteriormente descritas. Por consiguiente, la descripción a continuación usa signos de referencia de las figuras ya anteriormente descritas, de modo que una respectiva posible implementación descrita a continuación, debe definir posibles variaciones de las realizaciones anteriormente descritas, también. La mayoría de estas variaciones pueden transferirse individualmente a las realizaciones anteriores.
En otras palabras, las realizaciones de la presente solicitud describen métodos para reducir la tasa de información secundaria en aplicaciones de codificación de imagen y de vídeo mediante la señalización combinada de la unión y la ausencia de datos residuales para conjuntos de muestras. En otras palabras, se reduce la tasa de información secundaria en aplicaciones de codificación de imagen y de vídeo combinando elementos de sintaxis que indican el uso de esquemas de unión y elementos de sintaxis que indican la ausencia de datos residuales.
Además, antes de describir estas variaciones y detalles adicionales, se presenta una vista general sobre los códecs de instantáneas y vídeo.
En aplicaciones de codificación de imagen y de vídeo, las matrices de muestras asociadas con una instantánea se subdividen habitualmente en conjuntos particulares de muestras (o conjuntos de muestras), que pueden representar bloques rectangulares o cuadráticos o cualquier otra colección de muestras que incluyen regiones con forma arbitraria, triángulos o cualquier otra forma. La subdivisión de las matrices de muestras puede fijarse por la sintaxis o se señaliza la subdivisión (al menos parcialmente) dentro del flujo de bits. Para mantener pequeña la tasa de información secundaria para señalizar la información de subdivisión, la sintaxis normalmente permite únicamente un número limitado de elecciones que dan como resultado subdivisión sencilla tal como la subdivisión de los bloques en bloques más pequeños. Un esquema de subdivisión usado a menudo es la subdivisión de un bloque cuadrado en cuatro bloques cuadrados más pequeños, o en dos bloques rectangulares del mismo tamaño, o en dos bloques rectangulares de diferentes tamaños, donde se señaliza la subdivisión realmente empleada dentro del flujo de bits. Los conjuntos de muestras están asociados con parámetros de codificación particular, que pueden especificar información de predicción o modos de codificación residual, etc. En aplicaciones de codificación de vídeo, a menudo se hace una subdivisión para el fin de representación de movimiento. Todas las muestras de un bloque (dentro de un patrón de subdivisión) están asociadas con el mismo conjunto de parámetros de movimiento, que puede incluir parámetros que especifican el tipo de predicción (por ejemplo, lista 0, lista 1 o bipredicción; y/o predicción traslacional o afín o una predicción con un modelo de movimiento diferente), parámetros que especifican las instantáneas de referencia empleados, parámetros que especifican el movimiento con respecto a las instantáneas de referencia (por ejemplo, vectores de desplazamiento, vectores de parámetro de movimiento afín o vectores de parámetro de movimiento para cualquier otro modelo de movimiento), que se transmiten normalmente como una diferencia a un predictor, parámetros que especifican la precisión de parámetros de movimiento (por ejemplo, precisión de media muestra o de un cuarto de muestra), parámetros que especifican la ponderación de la señal de muestra de referencia (por ejemplo, para el fin de compensación de iluminación), o parámetros que especifican el filtro de interpolación que se emplea para derivar la señal de predicción de movimiento compensado del bloque actual. Se supone que, para cada conjunto de muestras, se transmiten parámetros de codificación individual (por ejemplo, para especificar la codificación de predicción y/o residual). Para conseguir una eficacia de codificación mejorada, esta invención presenta un método y realizaciones particulares para unir dos o más conjuntos de muestras en denominados conjuntos de grupos de muestras. Todos los conjuntos de muestras de un grupo de este tipo comparten los mismos parámetros de codificación, que pueden transmitirse junto con uno de los conjuntos de muestras en el grupo. Haciendo eso, los parámetros de codificación no necesitan transmitirse para cada conjunto de muestras del grupo de conjuntos de muestras individualmente, sino que, en su lugar, los parámetros de codificación se transmiten únicamente una vez para la totalidad del grupo de conjuntos de muestras.
Como un resultado, se reduce la tasa de información secundaria para transmitir los parámetros de codificación y se mejora la eficacia de codificación global. Como un enfoque alternativo, puede transmitirse un perfeccionamiento adicional para uno o más de los parámetros de codificación para uno o más de los conjuntos de muestras de un grupo de conjuntos de muestras. El perfeccionamiento puede aplicarse para todos los conjuntos de muestras de un grupo o únicamente para el conjunto de muestras para el que se transmite.
Algunas realizaciones de la presente invención combinan el proceso de unión con una subdivisión de un bloque en diversos subbloques 50, 60 (como se ha mencionado anteriormente). Normalmente, los sistemas de codificación de imágenes o de vídeo soportan diversos patrones de subdivisión para un bloque 40. Como un ejemplo, un bloque cuadrado puede no subdividirse o puede subdividirse en cuatro bloques cuadrados del mismo tamaño, o en dos bloques rectangulares del mismo tamaño (donde el bloque cuadrado puede dividirse de manera vertical u horizontal), o en bloques rectangulares de diferentes tamaños (de manera horizontal o vertical). Los patrones de partición ilustrativos descritos se ilustran en la Figura 8. Además de la descripción anterior, la subdivisión puede implicar incluso más de un nivel de subdivisión. Por ejemplo, los subbloques cuadrados pueden subdividirse también adicionalmente de manera opcional en los mismos patrones de subdivisión. El problema que surge cuando se combina un proceso de subdivisión de este tipo con un proceso de unión que permite la unión de un bloque (cuadrado o rectangular) con, por ejemplo, uno de sus bloques vecinos es que puede conseguirse la misma subdivisión resultante mediante diferentes combinaciones de patrones de subdivisión y señales de unión. Por lo tanto, puede transmitirse la misma información en el flujo de bits usando diferentes palabras de código, que es claramente subóptimo con respecto a la eficacia de codificación. Como un ejemplo sencillo, consideramos un bloque cuadrado que no se subdivide adicionalmente (como se ilustra en la esquina superior izquierda de la Figura 8. Esta subdivisión puede señalizarse directamente enviando un elemento de sintaxis de que este bloque 40 no se subdivide. Pero, el mismo patrón puede señalizarse también enviando un elemento de sintaxis que especifica que este bloque se subdivide, por ejemplo, en dos bloques rectangulares 50, 60 alineados verticalmente (u horizontalmente). A continuación, podemos transmitir información de unión que especifica que el segundo de estos bloques rectangulares se une con el primer bloque rectangular, que da como resultado exactamente la misma subdivisión como cuando señalizamos que el bloque no se divide adicionalmente. Lo mismo puede conseguirse también especificando en primer lugar que el bloque se subdivide en cuatro subbloques cuadrados y a continuación transmite información de unión que une eficazmente todos estos cuatro bloques. Este concepto es claramente subóptimo (puesto que tenemos diferentes palabras de código para señalizar la misma cosa).
Algunas realizaciones de la presente invención reducen la tasa de información secundaria y por lo tanto aumentan la eficacia de codificación para una combinación del concepto de unión con el concepto de proporcionar diferentes patrones de subdivisión para un bloque. Si observamos en el ejemplo de patrones de subdivisión en la Figura 8, puede evitarse la “simulación” del bloque no dividido adicionalmente por ninguno de los patrones de subdivisión con dos bloques rectangulares cuando prohibimos (es decir, excluimos de la especificación de sintaxis de flujo de bits) el caso de que un bloque rectangular se una con un primer bloque rectangular. Cuando se mira de manera más profunda el problema, también es posible “simular” el patrón no subdividido uniendo el segundo rectangular con algún otro vecino (es decir, no el primer bloque rectangular) que está asociado con los mismos parámetros (por ejemplo, información para especificar la predicción) como el primer bloque rectangular. Condicionando el envío de la información de unión de una manera que se excluya el envío de parámetros de unión particulares de la sintaxis de flujo de bits cuando estos parámetros de unión dan como resultado un patrón que también puede conseguirse señalizando uno de los patrones de subdivisión soportados, puede reducirse la redundancia. Como un ejemplo, si el patrón de subdivisión de partición actual especifica la subdivisión en dos bloques rectangulares, como se muestra en la Figura 1 y 3, por ejemplo, antes de enviar la información de unión para el segundo bloque, es decir 60 en caso de la Figura 1 y 3, puede comprobarse cuál de los posibles candidatos de unión tiene los mismos parámetros (por ejemplo, parámetros para especificar la señal de predicción) como el primer bloque rectangular, es decir 50 en caso de la Figura 1 y 3. Y todos los candidatos que tienen los mismos parámetros de movimiento (incluyendo el primer bloque rectangular mismo) se retiran del conjunto de candidatos de unión. Las palabras de código o banderas que se transmiten para señalizar la información de unión están adaptadas al conjunto de candidatos resultante. Si el conjunto de candidatos se vuelve vacío debido a la comprobación de parámetro, no puede transmitirse información de unión. Si el conjunto de candidatos consiste en únicamente una entrada, se señaliza únicamente si el bloque está unido o no, pero el candidato no necesita señalizarse puesto que puede derivarse en el lado del decodificador, etc. Para el ejemplo anterior, también se emplea el mismo concepto al patrón de subdivisión que divide un bloque cuadrado en cuatro bloques cuadrados más pequeños. En este punto, el envío de banderas de unión está adaptado de una manera que ni el patrón de subdivisión que especifica ninguna subdivisión ni cualquiera de los dos patrones de subdivisión especifican una subdivisión en dos bloques rectangulares del mismo tamaño que puede conseguirse por una combinación de banderas de unión. Aunque, describimos el concepto en su mayoría en el ejemplo anterior con patrones de subdivisión específicos, debe quedar claro que puede emplearse el mismo concepto (evitando la especificación de un patrón de subdivisión particular mediante una combinación de otro patrón de subdivisión y correspondiente información de unión) para cualquier otro conjunto de patrones de subdivisión.
Otro aspecto que necesita considerarse es que el concepto de unión es en algún sentido similar a los modos de SALTO o DIRECTO que se hallan en diseños de codificación de vídeo. En los modos de SALTO/DIRECTO, básicamente no se transmiten parámetros de movimiento para un bloque actual, sino que se infieren desde una cercanía espacial y/o temporal. En un concepto eficaz particular de los modos de SALTO/DIRECTO, se crea una lista de candidatos de parámetro de movimiento (índices de fotograma de referencia, vectores de desplazamiento, etc.) a partir de una cercanía espacial y/o temporal y se transmite un índice en esta lista que especifica cuál de los parámetros candidatos se elige. Para bloques biprevistos (o fotogramas de múltiples hipótesis), puede señalizarse un candidato separado para cada lista de referencia. Los posibles candidatos pueden incluir el bloque en la parte superior del bloque actual, el bloque en la izquierda del bloque actual, el bloque en la parte superior izquierda del bloque actual, el bloque en la parte superior derecha del bloque actual, el predictor de mediana de diversos de estos candidatos, el bloque coubicado en uno o más fotogramas de referencia previos (o cualquier otro bloque ya codificado o una combinación obtenida de bloques ya codificados).
Combinando el concepto de SALTO/DIRECTO con el de unión significa que puede codificarse un bloque usando un modo de SALTO/DIRECTO o uno de unión. Aunque los conceptos de SALTO/DIRECTO y unión son similares, existen diferencias entre los dos conceptos que se explican en más detalle en la sección 1. La diferencia principal entre SALTO y DIRECTO es que el modo de salto señaliza adicionalmente que no se transmite señal residual. Cuando se usa el concepto de unión, normalmente se transmite una bandera que señaliza si un bloque contiene niveles de coeficientes de transformada distintos de cero.
Para conseguir una eficacia de codificación mejorada, las realizaciones anteriormente descritas y a continuación combinan la señalización si un conjunto de muestras usa los parámetros de codificación de otro conjunto de muestras y la señalización de si no se transmite señal residual para el bloque. La bandera combinada indica que un conjunto de muestras usa parámetros de codificación de otro conjunto de muestras y que no se transmite ningún dato residual. Para este caso, únicamente necesita transmitirse una bandera, en lugar de dos.
Como se ha mencionado anteriormente, algunas realizaciones de la presente invención también proporcionan un codificador con una mayor libertad para crear un flujo de bits, puesto que el enfoque de unión aumenta significativamente el número de posibilidades para seleccionar una subdivisión para las matrices de muestras de una instantánea sin introducir redundancia en el flujo de bits. Puesto que el codificador puede elegir entre más opciones, por ejemplo, para minimizar una medida de tasa-distorsión particular, puede mejorarse la eficacia de codificación. Como un ejemplo, puede probarse adicionalmente alguno de los patrones adicionales que pueden representarse por una combinación de subdivisión y unión (por ejemplo, los patrones en la Figura 9) (usando los tamaños de bloque correspondientes para estimación de movimiento y decisión de modo) y los mejores de los patrones proporcionados por subdivisión de manera pura (Figura 8) y puede seleccionarse la subdivisión y la unión (Figura 9) basándose en una media de tasa-distorsión particular. Además, para cada bloque, puede probarse si una unión con alguno de los conjuntos candidatos ya codificados produce una reducción de una medida de tasa-distorsión particular y, entonces, se establecen las correspondientes banderas de unión durante el proceso de codificación. En resumen, existen varias posibilidades para operar un codificador. En un enfoque sencillo, el codificador podría determinar en primer lugar la mejor subdivisión de las matrices de muestras (como en los esquemas de codificación del estado de la técnica). Y, a continuación, podría comprobar, para cada conjunto de muestras, si una unión con otro conjunto de muestras u otro grupo de conjuntos de muestras reduce una medida de coste tasa-distorsión particular. En este momento, los parámetros de predicción asociados con el grupo de conjuntos de muestras unidos pueden volverse a estimar (por ejemplo, realizando una nueva búsqueda de movimiento) o podrían evaluarse los parámetros de predicción que ya se han determinado para el conjunto de muestras actual y el conjunto de muestras de candidatos (o grupo de conjuntos de muestras) para unión para el grupo de conjuntos de muestras considerado. En un enfoque más extensivo, podría evaluarse una medida de coste tasa-distorsión particular para grupos de conjuntos de muestras candidatos adicionales. Como un ejemplo particular, cuando se prueban los diversos posibles patrones de subdivisión (véase la Figura 8, por ejemplo), pueden probarse adicionalmente algunos o todos los patrones mediante una combinación de subdivisión y unión (véase la Figura 9, por ejemplo). Es decir, para todos los patrones, se lleva a cabo un proceso de estimación de movimiento y decisión de modo específico y se selecciona el patrón que produce la medida de tasa-distorsión más pequeña. Este proceso puede combinarse también con el proceso de baja complejidad anteriormente descrito, de modo que para los bloques resultantes se prueba adicionalmente si una unión con bloques ya codificados (por ejemplo, fuera de los patrones de la Figura 8 y la Figura 9) produce una reducción en una medida de tasa-distorsión.
A continuación, se describe alguna posible implementación detallada para las realizaciones anteriormente señaladas, tal como para los codificadores en las Figuras 1, 2 y 5 y los decodificadores de las Figuras 3, 4 y 6. Como ya se ha indicado, algunos son usables en codificación de imagen y de vídeo. Como se ha descrito anteriormente, las instantáneas o conjuntos particulares de matrices de muestras para las instantáneas pueden descomponerse en los bloques, que están asociados con parámetros de codificación particulares. Las instantáneas normalmente consisten en múltiples matrices de muestras. Además, una instantánea puede también estar asociada con matrices de muestras auxiliares adicionales, que pueden especificar, por ejemplo, información de transparencia o mapas de profundidad. Las matrices de muestras de una instantánea (incluyendo matrices de muestras auxiliares) pueden agruparse en uno o más denominados grupos planos, donde cada grupo plano consiste en una o más matrices de muestras. Los grupos de planos de una instantánea pueden codificarse independientemente o, si la instantánea está asociada con más de un grupo de planos, con predicción de otros grupos de planos de la misma instantánea. Cada grupo de planos normalmente se descompone en los bloques. Los bloques (o los bloques correspondientes de matrices de muestras) se predicen mediante predicción de inter-instantánea o predicción intra-instantánea. Los bloques pueden tener diferentes tamaños y pueden ser cuadráticos o rectangulares. La subdivisión de una instantánea en los bloques puede estar fijada por la sintaxis, o puede señalizarse (al menos parcialmente) dentro del flujo de bits. A menudo se transmiten elementos de sintaxis que señalizan la subdivisión para bloques de tamaños predefinidos. Tales elementos de sintaxis pueden especificar si y cómo se subdivide un bloque en bloques más pequeños y que están asociados con parámetros de codificación, por ejemplo, para el propósito de predicción. Un ejemplo de posibles patrones de subdivisión se muestra en la Figura 8. Para todas las muestras de un bloque (o los bloques correspondientes de matrices de muestras) la decodificación de los parámetros de codificación asociados se especifica de una cierta manera. En el ejemplo, todas las muestras en un bloque se predicen usando el mismo conjunto de parámetros previstos, tal como índices de referencia (que identifican una instantánea de referencia en el conjunto de instantáneas ya codificadas), parámetros de movimiento (que especifican una medida para el movimiento de unos bloques entre una instantánea de referencia y la instantánea actual), parámetros para especificar el filtro de interpolación, modos de intra predicción, etc. Los parámetros de movimiento pueden representarse por vectores de desplazamiento con un componente horizontal y vertical o mediante parámetros de movimiento de orden superior tales como parámetros de movimiento afín que consisten en seis componentes. También es posible que más de un conjunto de parámetros de predicción particular (tal como índices de referencia y parámetros de movimiento) estén asociados con un único bloque. En ese caso, para cada conjunto de estos parámetros de predicción particular, se genera una única señal de predicción intermedia para el bloque (o los bloques correspondientes de matrices de muestras), y se crea la señal de predicción final mediante una combinación que incluye superponer las señales de predicción intermedias. Los correspondientes parámetros de ponderación y, potencialmente, también un desplazamiento constante (que se añade a la suma ponderada) pueden fijarse para una instantánea, o una instantánea de referencia, o un conjunto de instantáneas de referencia, o pueden incluirse en el conjunto de parámetros previstos para el bloque correspondiente. La diferencia entre los bloques originales (o los bloques correspondientes de matrices de muestras) y sus señales de predicción, también denominadas como la señal residual, normalmente se transforman y cuantifican. A menudo, se aplica una transformada bidimensional a la señal residual (o a las correspondientes matrices de muestras para el bloque residual). Para la codificación de transformada, los bloques (o los bloques correspondientes de matrices de muestras), para los que se ha usado un conjunto particular de parámetros previstos, pueden dividirse adicionalmente antes de aplicar la transformada. Los bloques de transformada pueden ser iguales a o menores que los bloques que se usan para predicción. También es posible que un bloque de transformada incluya más de uno de los bloques que se usan para predicción. Diferentes bloques de transformada pueden tener diferentes tamaños y los bloques de transformada pueden representar bloques cuadráticos o rectangulares. En el ejemplo anterior de las Figuras 1-7, se ha observado que es posible que los nodos hoja de la primera subdivisión, es decir, los bloques de codificación 40, puedan subdividirse adicionalmente de manera paralela en la partición que define la granularidad de parámetros de codificación, por una parte, y los bloques de transformada en los que se aplica la transformada bidimensional de manera individual, por otra parte. Después de la transformada, los coeficientes de transformada resultantes se cuantifican y se obtienen los denominados niveles de coeficientes de transformada. Los niveles de coeficientes de transformada así como los parámetros de predicción y, si está presente, la información de subdivisión se codifican por entropía. En particular, los parámetros de codificación para los bloques de transformación se denominan parámetros residuales. Los parámetros residuales, así como los parámetros de predicción y, si está presente, la información de subdivisión, pueden codificarse por entropía. En las normas de codificación de vídeo del estado de la técnica como H.264, una bandera denominada bandera de bloque codificado (CBF) puede señalizar que todos los niveles de coeficientes de transformada son cero y, por lo tanto, no se codifican parámetros residuales. De acuerdo con la presente invención, esta señalización se combina en la señalización de activación de unión.
En las normas de codificación de imagen y de vídeo del estado de la técnica, las posibilidades para subdividir una instantánea (o un grupo de planos) en los bloques que se proporcionan por la sintaxis están muy limitadas. Normalmente, puede especificarse únicamente si y (potencialmente cómo) un bloque de un tamaño predefinido puede subdividirse en bloques más pequeños. Como un ejemplo, el tamaño de bloque más grande en H.264 es 16x16. Los bloques 16x16 también se denominan como macrobloques y cada instantánea se subdivide en macrobloques en una primera etapa. Para cada macrobloque de 16x16, puede señalizarse si se codifica como bloque de 16x16, o como dos bloques de 16x8, o como dos bloques de 8x16 o como cuatro bloques de 8x8. Si un bloque de 16x16 se subdivide en cuatro bloques de 8x8, cada uno de estos cuatro bloques de 8x8 puede codificarse como un bloque de 8x8 o como dos bloques de 8x4 o como dos bloques de 4x8 o como cuatro bloques de 4x4. El pequeño conjunto de posibilidades para especificar la subdivisión en los bloques en las normas de codificación de imagen y de vídeo del estado de la técnica tiene la ventaja de que la tasa de información secundaria para señalizar la información de subdivisión puede mantenerse pequeña, pero tiene la desventaja de que la tasa de bits requerida para transmitir los parámetros de predicción para los bloques puede volverse significativa como se explica a continuación. La tasa de información secundaria para señalizar la información de predicción normalmente representa una cantidad significativa de la tasa de bits global para un bloque. Y la eficacia de codificación podría aumentarse cuando se reduce esta información secundaria, que, por ejemplo, podría conseguirse usando tamaños de bloque más grandes. También es posible aumentar el conjunto de patrones de subdivisión soportados en comparación a H.264. Por ejemplo, los patrones de subdivisión representados en la Figura 8 pueden proporcionarse para bloques cuadrados de todos los tamaños (o tamaños seleccionados). Las imágenes o instantáneas reales de una secuencia de vídeo consisten en objetos con forma arbitraria con propiedades específicas. Como un ejemplo, tales objetos o partes de los objetos están caracterizados por una textura única o un movimiento único. Y normalmente, puede aplicarse el mismo conjunto de parámetros previstos para un objeto o parte de un objeto de este tipo. Pero los límites del objeto normalmente no coinciden con los posibles límites de bloque para bloques de predicción grandes (por ejemplo, macrobloques de 16x16 en H.264). Un codificador normalmente determina la subdivisión (entre el conjunto limitado de posibilidades) que da como resultado el mínimo de una medida de coste tasa-distorsión particular. Para objetos con forma arbitraria esto puede dar como resultado un gran número de bloques pequeños. Esta declaración sigue cumpliéndose cuando se proporcionan más patrones de subdivisión (como se ha mencionado) por encima. Debería observarse que la cantidad de patrones de subdivisión no debe volverse demasiado grande, puesto que entonces se requiere una gran cantidad de información secundaria y/o complejidad de codificador/decodificador para señalizar y procesar estos patrones. Así, los objetos con forma arbitraria a menudo dan como resultado un gran número de bloques pequeños debido a la subdivisión. Y, puesto que cada uno de estos bloques pequeños está asociado con un conjunto de parámetros previstos, que necesita transmitirse, la tasa de información secundaria puede volverse una parte significativa de la tasa de bits global. Pero, puesto que varios de los bloques pequeños aún representan áreas del mismo objeto o parte de un objeto, los parámetros de predicción para un número de los bloques obtenidos son los mismos o muy similares. De manera intuitiva, podría aumentarse la eficacia de codificación cuando se amplía la sintaxis de una manera que no únicamente permite subdividir un bloque, sino también unir dos o más de los bloques que se obtienen después de la subdivisión. Como resultado, podría obtenerse un grupo de bloques que están codificados con los mismos parámetros de predicción. Los parámetros de predicción para un grupo de bloques de este tipo necesitan codificarse únicamente una vez. En los ejemplos anteriores de las Figuras 1-7, por ejemplo, los parámetros de codificación para el bloque actual 40 no se transmiten con la condición de que tenga lugar la unión. Es decir, el codificador no transmite los parámetros de codificación asociados con el bloque actual, y el decodificador no espera que el flujo de bits 30 contenga parámetros de codificación para el bloque actual 40. En su lugar, de acuerdo con sus realizaciones específicas, simplemente puede transportarse información de perfeccionamiento para el bloque unido actual 40. Como una determinación de un conjunto de candidatos y de la reducción del mismo, así como la unión y así sucesivamente, también se realiza para los otros bloques de codificación 40 de la instantánea 20. Los bloques de codificación forman, de alguna manera, grupos de bloques de codificación a lo largo de una cadena de codificación, en donde los parámetros de codificación para estos grupos se transmiten en el flujo de bits en su totalidad simplemente una vez.
Si la tasa de bits que se ahorra reduciendo el número de parámetros de predicción codificados es mayor que la tasa de bits que se gasta adicionalmente para codificar la información de unión, la unión descrita no da como resultado eficacia de codificación aumentada. Debe mencionarse adicionalmente que la extensión de sintaxis descrita (para la unión) proporciona al codificador con libertad adicional al seleccionar la subdivisión de un grupo de instantáneas o de planos en los bloques, sin introducir redundancia. El codificador no está restringido a hacer la subdivisión en primer lugar, y a continuación a comprobar si alguno de los bloques resultantes tiene el mismo conjunto de parámetros previstos. Como una alternativa sencilla, el codificador podría determinar en primer lugar la subdivisión como en las técnicas de codificación del estado de la técnica. Y a continuación podría comprobar si para cada bloque, si una unión con uno de sus bloques vecinos (o el grupo de bloques determinado ya asociado) reduce una medida de coste de tasa-distorsión. En este momento, los parámetros de predicción asociados con el nuevo grupo de bloques pueden volverse a estimar (por ejemplo, realizando una nueva búsqueda de movimiento) o los parámetros de predicción que ya se han determinado para el bloque actual y el bloque vecino o grupo de bloques podrían evaluarse para el nuevo grupo de bloques. Un codificador puede también comprobar directamente (un subconjunto de) los patrones que se proporcionan por una combinación de subdivisión y unión; es decir, la estimación de movimiento y el modo de decisión pueden hacerse con las formas resultantes como ya se ha mencionado anteriormente. La información de unión puede señalizarse en una base de bloque. De manera eficaz, la unión podría interpretarse también como la inferencia de los parámetros de predicción para un bloque actual, donde los parámetros de predicción inferidos se establecen iguales a los parámetros de predicción de uno de los bloques vecinos.
Para otros modos distintos del de SALTO, son necesarias banderas adicionales, como la CBF, para señalizar que no se transmite señal residual. Existen dos variantes de los modos de SALTO/DIRECTO en la norma de codificación de vídeo del estado de la técnica video en H.264, que se seleccionan en un nivel de instantánea: el modo directo temporal y el modo directo espacial. Ambos modos directos son únicamente aplicables a instantáneas B. En el modo directo temporal, el índice de referencia para lista de instantáneas de referencia 0 se establece igual a 0 y el índice de referencia para lista de instantáneas de referencia 1, así como los vectores de movimiento para ambas listas de referencia se derivan basándose en los datos de movimiento del macrobloque coubicado en la primera instantánea de referencia en la lista de instantáneas de referencia 1. El modo directo temporal usa el vector de movimiento del bloque coubicado temporal y escala el vector de movimiento de acuerdo con la distancia temporal entre el bloque actual y el coubicado. En el modo directo espacial, los índices de referencia y los vectores de movimiento para ambas listas de instantáneas de referencia se infieren básicamente basándose en los datos de movimiento en una cercanía espacial. Los índices de referencia se eligen como el mínimo de los correspondientes índices de referencia en la cercanía espacial y cada componente de vector de movimiento se establece igual a la mediana de los correspondientes componentes de vector de movimiento en la cercanía espacial. El modo de salto puede usarse únicamente para codificar macrobloques de 16x16 en H.264 (en instantáneas P y B) y el modo DIRECTO puede usarse para codificar macrobloques de 16x16 o submacrobloques de 8x8. En contraste al modo DIRECTO, si se aplica unión a un bloque actual, pueden copiarse todos los parámetros de predicción del bloque con el que se une el bloque actual. La unión puede aplicarse también a tamaños de bloque arbitrarios que dan como resultado los patrones de subdivisión más flexibles anteriormente mencionados donde todas las muestras de un patrón se predicen usando los mismos parámetros de predicción.
La idea básica de las realizaciones anteriormente señaladas y a continuación es reducir la tasa de bits que se requiere para transmitir las banderas de CBF combinando las banderas de unión y de CBF. Si se transmite un conjunto de muestras que usa datos de unión y no residuales, se transmite una bandera que señaliza ambos.
Para reducir la tasa de información secundaria en las aplicaciones de codificación de imágenes y de vídeo, normalmente están asociados conjuntos de muestras particulares (que pueden representar bloques rectangulares o cuadráticos o regiones con forma arbitraria o cualquier otra colección de muestras) con un conjunto particular de parámetros de codificación. Para cada uno de estos conjuntos de muestras, los parámetros de codificación están incluidos en el flujo de bits. Los parámetros de codificación pueden representar parámetros de predicción, que especifican cómo se predice el conjunto correspondiente de muestras usando muestras ya codificadas. La subdivisión de las matrices de muestras de una instantánea en conjuntos de muestras puede fijarse por la sintaxis o puede señalizarse mediante correspondiente información de subdivisión dentro del flujo de bits. Pueden permitirse múltiples patrones de subdivisión para un bloque. Los parámetros de codificación para los conjuntos de muestras se transmiten en un orden predefinido, que se proporciona por la sintaxis. Puede señalizarse para un conjunto de muestras actual que se une (por ejemplo, para el propósito de predicción) con uno o más otros conjuntos de muestras en un grupo de conjuntos de muestras. El posible conjunto de valores para la correspondiente información de unión puede adaptarse al patrón de subdivisión empleado, de tal manera que los patrones de subdivisión particulares no pueden representarse por una combinación de otros patrones de subdivisión y correspondientes datos de unión. Los parámetros de codificación para un grupo de conjuntos de muestras necesitan transmitirse únicamente una vez. Adicional a los parámetros de predicción, pueden transmitirse los parámetros residuales (tales como la información del lado de transformada y de cuantificación y los niveles de coeficientes de transformada). Si se une el conjunto de muestras actual, se transmite la información secundaria que describe el proceso de unión. Esta información secundaria se denominará adicionalmente como información de unión. Las realizaciones descritas anteriormente y a continuación describen un concepto mediante el cual la señalización de la información de unión se combina con la bandera de señalización del bloque codificado (que especifica si están presentes datos residuales para un bloque).
En una realización particular, la información de unión contiene una bandera combinada, denominada mrg_cbf, que es igual a 1 si el conjunto de muestras actual está unido y no se transmiten datos residuales. En este caso no se transmiten parámetros de codificación ni parámetros residuales adicionales. Si la bandera mrg_cbf combinada es igual a 0, se codifica otra bandera que indica si se aplica o no la unión. Adicionalmente, se codifican banderas que indican que no se transmiten parámetros residuales. En CABAC y VLC adaptativa al contexto, los contextos para la derivación de probabilidad (y conmutación de tabla de VLC) para los elementos de sintaxis relacionados con la información de unión pueden elegirse como una función de elementos de sintaxis ya transmitidos y/o parámetros decodificados (tal como la bandera mrg_cbf combinada).
En una realización preferida, la información de unión que contiene una bandera mrg_cbf combinada se codifica antes de los parámetros de codificación (por ejemplo, información de predicción e información de subdivisión). En una realización preferida, la información de unión que contiene una bandera mrg_cbf combinada se codifica después de un subconjunto de los parámetros de codificación (por ejemplo, información de predicción e información de subdivisión). Para cada conjunto de muestras, resultante de la información de subdivisión, puede codificarse información de unión.
En las realizaciones descritas adicionalmente a continuación con respecto a las Figuras 11 a 13, mrg_cbf se denomina skip_flag. En general, mrg_cbf podría denominarse merge_skip para mostrar que es otra versión de salto relacionado con la unión de bloques.
Las siguientes realizaciones preferidas se describen para conjuntos de muestras que representan bloques rectangulares y cuadráticos, pero puede ampliarse a regiones con forma arbitraria u otras colecciones de muestras de una manera fácil. Las realizaciones preferidas describen combinaciones de elementos de sintaxis relacionados con el esquema de unión y elementos de sintaxis que indican la ausencia de datos residuales. Los datos residuales pueden incluir información secundaria residual, así como niveles de coeficientes de transformada. Para todas las realizaciones preferidas, la ausencia de datos residuales se especifica por medio de una bandera de bloque codificado (CBF), pero puede expresarse mediante otros medios o banderas también. Una CBF igual a 0 se refiere al caso en el que no se transmiten datos residuales.
1. Combinación de la bandera de fusión y la bandera CBF
A continuación, la unión subsidiaria que activa la bandera se denomina mrg mientras que más adelante, con respecto a la Figura 11 a 13, la misma se denomina merge_flag. De manera similar, el índice de unión se llama ahora mrg_idx, mientras que se usa más tarde merge_idx.
Se describe una posible combinación de la bandera de fusión y la bandera CBF usando un elemento de sintaxis en esta sección. La descripción de esta posible combinación señalada a continuación, puede transferirse a cualquiera de lo anterior descrito mostrado en las Figuras 1 a 6.
En una realización preferida, se transmiten hasta tres elementos de sintaxis para especificar la información de unión y la CBF.
El primer elemento de sintaxis, que se denomina mrg_cbf a continuación, especifica si se une el conjunto de muestras actual con otro conjunto de muestras y si todas las CBF correspondientes son iguales a 0. El elemento de sintaxis mrg_cbf puede codificarse únicamente si un conjunto derivado de conjuntos de muestras candidatas no está vacío (después de la retirada potencial de los candidatos que producirían una subdivisión que pudiera señalizarse mediante diferente patrón de subdivisión sin unión). Sin embargo, puede garantizarse por defecto que la lista de candidatos de unión nunca desaparezca, que hay al menos uno o incluso al menos dos candidatos de fusión disponibles. En una realización preferida de la invención, si un conjunto derivado de conjuntos de muestras candidatas no está vacío, se codifica el elemento de sintaxis mrg_cbf como sigue.
- Si se une el bloque actual y la CBF es igual a 0 para todos los componentes (por ejemplo, un componente de luma y dos de crominancia), el elemento de sintaxis mrg_cbf se establece a 1 y se codifica.
- De lo contrario el elemento de sintaxis mrg_cbf se establece igual a 0 y se codifica.
Los valores 0 y 1 para el elemento de sintaxis mrg_cbfs pueden también cambiarse.
El segundo elemento de sintaxis, denominado adicionalmente mrg especifica si se une el conjunto de muestras actual con otro conjunto de muestras. Si el elemento de sintaxis mrg_cbf es igual a 1 el elemento de sintaxis mrg no se codifica y se infiere que es igual a 1 en su lugar. Si el elemento de sintaxis mrg_cbf no está presente (puesto que el conjunto derivado de muestras candidatas está vacío), el elemento de sintaxis mrg tampoco está presente, sino que se infiere que es igual a 0. Sin embargo, puede garantizarse por defecto que la lista de candidatos de unión nunca desaparece, que hay al menos uno o incluso al menos dos candidatos de fusión disponibles.
El tercer elemento de sintaxis, denominado adicionalmente mrg_idx, que se codifica únicamente si el elemento de sintaxis mrg es igual a 1 (o se infiere que es igual a 1), especifica cuál de los conjuntos de conjuntos de muestras candidatos se emplea para la unión. En una realización preferida, el elemento de sintaxis mrg_idx se codifica únicamente si un conjunto derivado de conjuntos de muestras candidatas contiene más de un conjunto de muestras candidatas. En una realización preferida adicional, el elemento de sintaxis mrg_idx se codifica únicamente si al menos dos conjuntos de muestras de un conjunto derivado de conjuntos de muestras candidatas están asociados con diferentes parámetros de codificación.
Debe mencionarse que, la lista de candidatos de unión puede incluso fijarse para desacoplar el análisis y la reconstrucción para mejorar el rendimiento del análisis y para ser más robusto en lo que respecta a la pérdida de información. Para ser más precisos, puede garantizarse el desacoplamiento usando una asignación fija de entradas de lista y palabras de código. Esto no fijaría necesariamente la longitud de la lista. Sin embargo, fijando concurrentemente la longitud de la lista añadiendo candidatos adicionales permite compensar la pérdida de eficacia de codificación de las palabras de código fijas (más largas). Por lo tanto, como se ha descrito anteriormente, el elemento de sintaxis de índice de unión puede transmitirse únicamente si la lista de candidatos contiene más de un candidato. Sin embargo, esto requeriría derivar la lista antes de analizar el índice de unión, lo que evita llevar a cabo estos dos procesos en paralelo. Para permitir un rendimiento de análisis aumentado y para hacer al proceso de análisis más robusto con respecto a errores de transmisión, es posible eliminar esta dependencia usando una palabra de código fija para cada valor de índice y un número fijo de candidatos. Si este número no puede alcanzarse por una selección candidata, es posible derivar candidatos auxiliares para completar la lista. Estos candidatos adicionales pueden incluir denominados candidatos combinados, que se crean de parámetros de movimiento de candidatos posiblemente diferentes ya en la lista y cero vectores de movimiento.
En una realización preferida, se codifica la información de unión para un conjunto de muestras después de un subconjunto de los parámetros de predicción (o, más en general, los parámetros de codificación particulares que están asociados con los conjuntos de muestras). El subconjunto de parámetros previstos puede consistir en uno o más índices de instantánea de referencia o uno o más componentes de un vector de parámetro de movimiento o un índice de instantánea de referencia y uno o más componentes de un vector de parámetro de movimiento, etc.
En una realización preferida, el elemento de sintaxis mrg_cbf de la información de unión se codifica únicamente para un conjunto reducido de modos de subdivisión. Se presenta un posible conjunto de modos de subdivisión en la Figura 8. En una realización preferida, este conjunto reducido de modos de subdivisión está limitado a uno y corresponde al primer modo de subdivisión (la parte superior izquierda de la lista en la Figura 8). Como un ejemplo, mrg_cbf se codifica únicamente si no se subdivide adicionalmente un bloque. Como un ejemplo adicional, mrg_cfb puede codificarse únicamente para bloques cuadrados.
En otra realización preferida, el elemento de sintaxis mrg_cbf de la información de unión se codifica únicamente para un bloque de una subdivisión donde esta subdivisión es uno de los posibles modos de subdivisión mostrados en la Figura 8, por ejemplo, el modo de subdivisión con cuatro bloques abajo a la izquierda. En una realización preferida, si hay más de un bloque que se une en uno de estos modos de subdivisión, la información de unión del primer bloque unido (en el orden de decodificación) contiene el elemento de sintaxis mrg_cbf para la partición completa. Para todos los demás bloques del mismo modo de subdivisión que se decodifican posteriormente, la información de unión únicamente contiene el elemento de sintaxis mrg que especifica si se une o no el conjunto de muestras actual con otro conjunto de muestras. La información de si los datos residuales están presentes o no se infiere del elemento de sintaxis mrg_cbf codificado en el primer bloque.
En una realización preferida adicional de la invención, la información de unión para un conjunto de muestras se codifica antes de los parámetros de predicción (o, más en general, los parámetros de codificación particulares que están asociados con los conjuntos de muestras). La información de unión, que contiene el elemento de sintaxis mrg_cbf, el mrg y el mrg_idx, se codifica de la manera como se describe en la primera realización preferida anteriormente. Los parámetros de predicción o de codificación y los parámetros residuales se transmiten únicamente si la información de unión señaliza que el conjunto de muestras actual no está unido con otro conjunto de muestras y que la CBF, para al menos uno de los componentes, es igual a 1. En una realización preferida, si el elemento de sintaxis mrg_cbf especifica que el bloque actual está unido y las CBF para todos los componentes son iguales a 0, no habrá más señalización necesaria después de la información de unión, para este bloque actual.
En otra realización preferida de la invención, los elementos de sintaxis mrg_cbf, mrg, y mrg_idx se combinan y codifican como uno o dos elementos de sintaxis. En una realización preferida, mrg_cbf y mrg se combinan en un elemento de sintaxis, que especifica cualquiera de los siguientes casos: (a) el bloque está unido y no contiene datos residuales, (b) el bloque está unido y contiene datos residuales (o puede contener datos residuales), (c) el bloque no está unido. En otra realización preferida, los elementos de sintaxis mrg y mrg_idx se combinan en un elemento de sintaxis. Si N es el número de candidatos de unión, el elemento de sintaxis combinado especifica uno de los siguientes casos: el bloque no está unido, el bloque está unido con el candidato 1, el bloque está unido con el candidato 2..., el bloque está unido con el candidato N. En una realización preferida adicional de la invención, los elementos de sintaxis mrg_cfb, mrg, y mrg_idx se combinan en un elemento de sintaxis, que especifica uno de los siguientes casos (siendo N el número de candidatos): el bloque no está unido, el bloque está unido con el candidato 1 y no contiene datos residuales, el bloque está unido con el candidato 2 y no contiene datos residuales..., el bloque está unido con el candidato N y no contiene datos residuales, el bloque está unido con el candidato 1 y contiene (o puede contener) datos residuales, el bloque está unido con el candidato 2 y contiene (o puede contener) datos residuales..., el bloque está unido con el candidato N y contiene (o puede contener) datos residuales. Los elementos de sintaxis combinados pueden transmitirse con un código de longitud variable o pueden transmitirse mediante codificación aritmética o pueden transmitirse mediante codificación aritmética binaria usando cualquier esquema de conversión a binario particular.
2. Combinación de la bandera de fusión y la bandera CBF y los modos de SALTO/DIRECTO
Los modos de SALTO/DIRECTO pueden soportarse por todos o únicamente tamaños de bloque y/o formas de bloque particulares. En una extensión de los modos de SALTO/DIRECTO según se especifica en la norma de codificación de vídeo del estado de la técnica H.264, se usa un conjunto de bloques candidatos para los modos de SALTO/DIRECTO. La diferencia entre SALTO y DIRECTO es si se envían o no parámetros residuales. Los parámetros (por ejemplo, para predicción) de SALTO y DIRECTO pueden inferirse de cualquiera de los correspondientes candidatos. Se codifica un índice candidato, que señaliza qué candidato se usa para inferir los parámetros de codificación. Si se combinan múltiples predicciones para formar la señal de predicción final para el bloque actual (como en bloques bipredictivos usados en fotogramas B de H.264) cada predicción puede hacer referencia a un candidato diferente. Por lo tanto, para cada predicción, puede codificarse un índice candidato.
En una realización preferida de la invención, la lista de candidatos para SALTO/DIRECTO puede contener diferentes bloques candidatos que la lista de candidatos para modos de unión. Se ilustra un ejemplo en la Figura 10. La lista de candidatos puede incluir los siguientes bloques (el bloque actual se indica por Xi):
Vector de movimiento (0,0)
Mediana (entre izquierda, arriba, esquina)
Bloque izquierdo (Li)
Bloque arriba (Ai)
Bloques de esquina (en orden: arriba derecha (Ci 1), abajo izquierda (Ci2), arriba izquierda (Ci3))
Bloque coubicado en una instantánea diferente pero ya codificada
La siguiente notación se usa para describir las siguientes realizaciones:
• set_mvp_ori es un conjunto de candidatos usado para el modo de SALTO/DIRECTO. Este conjunto está compuesto de {mediana, izquierda, arriba, esquina, coubicado}, donde mediana es la mediana (valor medio en un conjunto ordenado de izquierda, arriba y esquina), y coubicado se proporciona por el fotograma de referencia más cercano (o la primera instantánea de referencia en una de la lista de instantáneas de referencias) y los correspondientes vectores de movimiento se escalan de acuerdo con distancia temporal. El vector de movimiento con ambos componentes iguales a 0 puede insertarse adicionalmente en la lista de candidatos, por ejemplo, si no hay bloques de izquierda, ni arriba ni esquina.
• set_mvp_comb es un subconjunto de set_mvp_ori.
En una realización preferida, se soportan tanto los modos de SALTO/DIRECTO como de unión de bloques. Los modos de SALTO/DIRECTO usan el conjunto original de candidatos, set_mvp_ori. La información de unión relacionada con el modo de unión de bloques puede contener el elemento de sintaxis mrg_cbf combinado.
En otra realización, se soportan tanto los modos de SALTO/DIRECTO como de unión de bloques, pero los modos de SALTO/DIRECTO usan un conjunto modificado de candidatos, set_mvp_comb. Este conjunto modificado de candidatos puede ser un subconjunto particular del conjunto original set_mvp_ori. En una realización preferida, el conjunto modificado de candidatos está compuesto de bloques de esquina y un bloque coubicado. En otra realización, el conjunto modificado de candidatos únicamente está compuesto del bloque coubicado. Son posibles subconjuntos adicionales.
En otra realización, la información de unión que contiene el elemento de sintaxis mrg_cbf se codifica antes de los parámetros relacionados con el modo de salto.
En otra realización, los parámetros relacionados con el modo de salto se codifican antes de la información de unión que contiene el elemento de sintaxis mrg_cbf.
De acuerdo con otra realización, el modo DIRECTO puede no activarse (no está ni siquiera presente) y la unión de bloques tiene un conjunto extendido de candidatos con el modo de SALTO sustituido por mrg_cbf.
En una realización preferida, la lista de candidatos para la unión de bloques puede contener diferentes bloques candidatos. Se ilustra un ejemplo en la Figura 10. La lista de candidatos puede incluir los siguientes bloques (el bloque actual se indica por Xi):
Vector de movimiento (0,0)
Bloque izquierdo (Li)
Bloque arriba (Ai)
Bloque coubicado en una instantánea diferente pero ya codificada
Bloques de esquina (en orden: arriba derecha (Cil), abajo izquierda (Ci2), arriba izquierda (Ci3) Candidatos bipredictivos combinados
Candidatos bipredictivos no escalados
Debe mencionarse que, la posición de los candidatos para la unión de bloques puede ser la misma que la lista de MVP en inter-predicción para ahorrar acceso de memoria.
Además, la lista puede “fijarse” de la manera anteriormente señalada para desacoplar el análisis y la reconstrucción para mejorar el rendimiento de análisis y para ser más robusto en lo que respecta a la pérdida de información.
3. Codificación de la CBF
En una realización preferida, si el elemento de sintaxis mrg_cfb es igual a 0 (señaliza que el bloque no está unido o que contiene datos residuales distintos de cero), se transmite una bandera que señaliza si todos los componentes son o no cero (por ejemplo, un componente de luma y dos de crominancia) de los datos residuales. Esta bandera no se transmite si mrg_cfb es igual a 1. En una configuración particular, esta bandera no se transmite si mrg_cfb es igual a 0 y el elemento de sintaxis mrg especifica que el bloque está unido.
En otra realización preferida, si el elemento de sintaxis mrg_cfb es igual a 0 (señaliza que el bloque no está unido o que contiene datos residuales distintos de cero), se transmite un elemento de sintaxis separado para cada componente que señaliza si los datos residuales para el componente son o no cero.
Podrían usarse diferentes modelos de contexto para mrg_cbf.
Por lo tanto, las realizaciones anteriores, describen, entre otras cosas, un aparato para codificar una instantánea que comprende
un subdivisor configurado para subdividir la instantánea en conjuntos de muestras de muestras;
un fusionador configurado para unir los conjuntos de muestras en conjuntos disjuntos de uno o más conjuntos de muestras cada uno;
un codificador configurado para codificar la instantánea usando parámetros de codificación que varían a través de la instantánea en unidades de los conjuntos disjuntos de conjuntos de muestras, en donde el codificador está configurado para codificar la instantánea prediciendo la instantánea y codificando una predicción residual para conjuntos de muestras predeterminados; y
un generador de flujo configurado para insertar la predicción residual y los parámetros de codificación en un flujo de bits, junto con uno o más elementos de sintaxis para cada uno de al menos un subconjunto de los conjuntos de muestras, señalizando en cuanto a si se une o no el respectivo conjunto de muestras en uno de los conjuntos disjuntos junto con otro conjunto de muestras.
Además, se ha descrito un aparato para decodificar un flujo de bits que tiene una instantánea codificada en el mismo, que comprende
un subdivisor configurado para subdividir la instantánea en conjuntos de muestras;
un fusionador configurado para unir los conjuntos de muestras en conjuntos disjuntos de uno o más conjuntos de muestras cada uno;
un decodificador configurado para decodificar la instantánea usando parámetros de codificación que varían a través de la instantánea en unidades de los conjuntos disjuntos de conjuntos de muestras, en donde el decodificador está configurado para decodificar la instantánea prediciendo la instantánea, decodificar una predicción residual para conjuntos de muestras predeterminados y combinar la predicción residual y una predicción resultante de predecir la instantánea, para los conjuntos de muestras predeterminados;
un extractor configurado para extraer la predicción residual y los parámetros de codificación del flujo de bits, junto con uno o más elementos de sintaxis para cada uno de al menos un subconjunto de los conjuntos de muestras, señalizando en cuanto a si el respectivo conjunto de muestras ha de unirse o no en uno de los conjuntos disjuntos junto con otro conjunto de muestras, en donde el fusionador está configurado para realizar la unión en respuesta a los elementos de sintaxis.
Uno de los posibles estados del uno o más elementos de sintaxis señaliza que el respectivo conjunto de muestras ha de unirse en uno de los conjuntos disjuntos junto con otro conjunto de muestras y no tiene predicción residual codificada e insertada en el flujo de bits.
El extractor puede configurarse también para extraer información de subdivisión del flujo de bits, y el subdivisor está configurado para subdividir la instantánea en conjuntos de muestras en respuesta a la información de subdivisión.
El extractor y el fusionador pueden estar configurados, por ejemplo, para pasar secuencialmente a través de los conjuntos de muestras de acuerdo con un orden de exploración de conjunto de muestras, y, para un conjunto de muestras actual,
extraer un primer elemento de sintaxis binario (mrg_cbf) del flujo de bits;
si el primer elemento de sintaxis binario asume un primer estado binario, unir el conjunto de muestras actual en uno de los conjuntos disjuntos infiriendo los parámetros de codificación para el conjunto de muestras actual para que sean iguales a los parámetros de codificación asociados con este conjunto disjunto, saltar la extracción de la predicción residual para el conjunto de muestras actual y pasar al siguiente conjunto de muestras en el orden de exploración de conjunto de muestras;
si el primer elemento de sintaxis binario asume un segundo estado binario, extrae un segundo elemento de sintaxis (mrg, mrg_idx) del flujo de bits; y
dependiendo del segundo elemento de sintaxis, unir el conjunto de muestras actual en uno de los conjuntos disjuntos infiriendo los parámetros de codificación para el conjunto de muestras actual para que sean iguales a los parámetros de codificación asociados con este conjunto disjunto o realizar la extracción de los parámetros de codificación para el conjunto de muestras actual, extrayendo al menos un elemento de sintaxis adicional con respecto a la predicción residual para el conjunto de muestras actual.
El uno o más elementos de sintaxis para cada uno de al menos un subconjunto de los conjuntos de muestras puede señalizar también con cuál de un conjunto de conjuntos de muestras candidatos predeterminados vecino al respectivo conjunto de muestras, ha de unirse el respectivo conjunto de muestras, si el respectivo conjunto de muestras ha de unirse en uno cualquiera de los conjuntos disjuntos junto con otro conjunto de muestras.
El extractor puede estar configurado para, si el uno o más elementos de sintaxis no señaliza que el respectivo conjunto de muestras ha de unirse en cualquiera de los conjuntos disjuntos junto con otro conjunto de muestras, extraer del flujo de bits uno o más elementos de sintaxis adicionales (modo de SALTO/DIRECTO) que señaliza en cuanto a si, y desde cuál de un conjunto adicional de conjuntos de muestras candidatos predeterminados vecinos al respectivo conjunto de muestras, ha de predecirse al menos una parte de los parámetros de codificación para el respectivo conjunto de muestras.
En ese caso, el conjunto de conjuntos de muestras candidatos predeterminados y el conjunto adicional de conjuntos de muestras candidatos predeterminados puede ser disjunto o intersecar entre sí con respecto a una minoría de los conjuntos de muestras candidatos predeterminados del conjunto de conjuntos de muestras candidatos predeterminados y el conjunto adicional de conjuntos de muestras candidatos predeterminados, respectivamente.
El extractor puede configurarse también para extraer información de subdivisión del flujo de bits, y el subdivisor está configurado para subdividir jerárquicamente la instantánea en conjuntos de muestras en respuesta a la información de subdivisión, y el extractor está configurado para pasar secuencialmente a través de conjuntos de muestras hijos de un conjunto de muestras padre, comprendido por los conjuntos de muestras en los que se subdivide la instantánea, y, para un conjunto de muestras hijo actual,
extraer un primer elemento de sintaxis binario (mrg_cbf) del flujo de bits;
si el primer elemento de sintaxis binario asume un primer estado binario, unir el conjunto de muestras hijas actual en uno de los conjuntos disjuntos infiriendo los parámetros de codificación para el conjunto de muestras hijas actual para que sean iguales a los parámetros de codificación asociados con este conjunto disjunto, saltar la extracción de la predicción residual para el conjunto de muestras hijas actual y pasar a los siguientes conjuntos de muestras hijas; si el primer elemento de sintaxis binario asume un segundo estado binario, extrae un segundo elemento de sintaxis (mrg, mrg_idx) del flujo de bits; y
dependiendo del segundo elemento de sintaxis, unir el conjunto de muestras hijas actual en uno de los conjuntos disjuntos infiriendo los parámetros de codificación para el conjunto de muestras hijas actual para que sean iguales a los parámetros de codificación asociados con este conjunto disjunto o realizar la extracción de los parámetros de codificación para el conjunto de muestras hijas actual, extrayendo al menos un elemento de sintaxis adicional con respecto a la predicción residual para el conjunto de muestras hijas actual, y a continuación pasar a los siguientes conjuntos de muestras hijas,
omitiendo, para los siguientes conjuntos de muestras hijas, la extracción del primer elemento de sintaxis binario si el primer elemento de sintaxis binario del conjunto de muestras hijas actual asume el primer estado binario y empezando extrayendo el segundo elemento de sintaxis en su lugar, y extrayendo el primer elemento de sintaxis binario si el primer elemento de sintaxis binario del conjunto de muestras hijas actual asume el segundo estado binario.
Supongamos, por ejemplo, que un conjunto de muestras padre (CU) se divide en dos conjuntos de muestras hijas (PU). Si, entonces para la primera PU, el primer elemento de sintaxis binario (merge_cbf) tiene el primer estado binario 1) la primera PU usa la unión y la primera y la segunda PU (la totalidad de la CU) no tienen datos residuales en el flujo de bits, y 2) para la segunda PU se señaliza el segundo elemento de sintaxis binario (merge_flag, merge_idx). Sin embargo, si el primer elemento de sintaxis binario para la primera PU tiene el segundo estado binario, entonces 1) para la primera PU, se señaliza el segundo elemento de sintaxis binario (merge_flag, merge idx), y los datos residuales están en el flujo de bits también, mientras que 2) para la segunda PU, se señaliza el primer elemento de sintaxis binario (merge_cbf). Por lo tanto, podría ser que también se señaliza merge_cbf en un nivel de PU, es decir, para sucesivos conjuntos de muestras hijas, si merge_cbf está en un estado binario secundario para todos los conjuntos de muestras hijas previas. Si merge_cbf está en un primer estado binario para un conjunto de muestras hijas sucesivas, todos los conjuntos de muestras hijas que siguen este conjunto de muestras hijas no tienen datos residuales en el flujo de bits. Por ejemplo, para una CU dividida en, por ejemplo, 4 PU, es posible que merge_cbf esté en un primer estado binario para la segunda PU lo que significa que la tercera y la cuarta PU en orden de codificación no tienen datos residuales en el flujo de bits, pero la primera PU tiene o puede tener.
El primer y segundo elementos de sintaxis binarios pueden codificarse usando codificación de longitud variable adaptativa según contexto o codificación aritmética adaptativa al contexto (binaria) y los contextos para codificar los elementos de sintaxis se derivan basándose en los valores para estos elementos de sintaxis en bloques ya codificados.
Como se ha descrito en otras realizaciones preferidas, el elemento de sintaxis merge _idx puede transmitirse únicamente si la lista de candidatos contiene más de un candidato. Esto requiere derivar la lista antes de analizar un índice de unión, lo que evita llevar a cabo estos dos procesos en paralelo. Para permitir un rendimiento de análisis aumentado y para hacer al proceso de análisis más robusto con respecto a errores de transmisión, es posible eliminar esta dependencia usando una palabra de código fija para cada valor de índice y un número fijo de candidatos. Si este número no puede alcanzarse por una selección candidata, es posible derivar candidatos auxiliares para completar la lista. Estos candidatos adicionales pueden incluir denominados candidatos combinados, que se crean de parámetros de movimiento de candidatos posiblemente diferentes ya en la lista y cero vectores de movimiento.
En otra realización preferida, la sintaxis para señalizar cuál de los bloques del conjunto de candidatos está adaptada simultáneamente en el codificador y decodificador. Si, por ejemplo, se proporcionan 3 elecciones de los bloques para su unión, estas tres elecciones están únicamente presentes en la sintaxis y se consideran para codificación por entropía. Las probabilidades para que se consideren todas las otras elecciones son 0 y el códec por entropía se ajusta simultáneamente en el codificador y decodificador.
Los parámetros de predicción que se infieren como consecuencia del proceso de unión pueden representar el conjunto completo de los parámetros de predicción que están asociados con un bloque o pueden representar un subconjunto de estos parámetros de predicción (por ejemplo, los parámetros de predicción para una hipótesis de un bloque para el que se usa predicción de múltiples hipótesis).
En una realización preferida, los elementos de sintaxis relacionados con la información de unión se codifican por entropía usando modelado de contexto.
Se explica a continuación una manera de transferir las realizaciones anteriormente señaladas a una sintaxis específica con respecto a las siguientes figuras. En particular, las Figuras 11-13 muestran diferentes porciones de una sintaxis que se aprovecha de las realizaciones anteriormente señaladas. En particular, de acuerdo con la realización anteriormente señalada, la instantánea 20 se divide en primer lugar al codificar tres bloques del contenido de la instantánea el cual se codifica usando la sintaxis coding_tree mostrada en la Figura 11. Como se muestra en la misma, para entropy_coding_mode_flag=1, que se refiere a, por ejemplo, codificación binaria aritmética adaptativa según contexto u otro modo de codificación por entropía específico, la subdivisión de árbol cuádruple del bloque de árbol de codificación actual se señaliza dentro de la porción de sintaxis coding_tree por medio de las banderas denominadas split_coding_unit_flag en la marca 400. Como se muestra en la Figura 11, de acuerdo con la realización descrita en lo sucesivo, el bloque de árbol-raíz se subdivide como se señaliza por split_coding_unit_flag en un orden transversal de profundidad en primer lugar como se muestra en la Figura 7a. Cada vez que se alcance un nodo hoja, el mismo representa una unidad de codificación que se codifica de inmediato usando la función de sintaxis coding_unit. Esto puede observarse a partir de la Figura 11 cuando se mira en la cláusula if en 402 que comprueba en cuanto a si split_coding_unit_flag actual está establecida o no. En caso afirmativo, la función coding_tree se llama recursivamente, lo que conduce a una transmisión/extracción adicional de una split_coding_unit_flag adicional en el codificador y decodificador, respectivamente. En caso negativo, es decir si split_coding_unit_flag=0, el subbloque actual del bloque de árbol-raíz 200 de la Figura 7a es un bloque hoja y para codificar esta unidad de codificación, la función coding_unit de la Figura 10 se llama en 404.
En la realización actualmente descrita, se usa la opción anteriormente mencionada de acuerdo con la que la unión es simplemente usable para instantáneas para las que está disponible el modo de inter predicción. Es decir, cortes/instantáneas intra-codificados que no usan de manera alguna unión. Esto es visible a partir de la Figura 12, donde se transmite la bandera skip_flag en 406 simplemente en caso de que un tipo de corte sea desigual al tipo de corte de intra-instantánea, es decir si el corte actual al que pertenece la unidad de codificación actual permite que se inter codifiquen particiones. La unión se refiere, de acuerdo con la presente realización, simplemente a los parámetros de predicción relacionados con inter predicción. De acuerdo con la presente realización, se señaliza skip_flag para la totalidad de la unidad de codificación 40 y si skip_flag equivale a 1, este valor de bandera se señaliza concurrentemente al decodificador
1) que el modo de subdivisión para la unidad de codificación actual sea el modo de no subdivisión de acuerdo con el que el mismo no se subdivide y se representa por sí mismo la única partición de esa unidad de codificación,
2) que la unidad/partición de codificación actual esté inter-codificada, es decir está asignada al modo de inter codificación,
3) que la unidad/partición de codificación actual se someta a unión, y
4) que la unidad/partición de codificación actual se someta al modo de salto, es decir tenga el modo de salto activado.
Por consiguiente, si se establece skip_flag, la función prediction_unit se denomina en 408 indicando la unidad de codificación actual como que es una unidad de predicción. Sin embargo, esta no es la única posibilidad para conectar la opción de unión. En su lugar, si skip_flag relacionada con la totalidad de la unidad de codificación no se establece en 406, el tipo de predicción de la unidad de codificación del corte no de intra-instantánea se señaliza en 410 por el elemento de sintaxis pred_type, dependiendo del mismo, llamando a la función prediction_unit para cualquier partición de la unidad de codificación actual en, por ejemplo, 412 en caso de que la unidad de codificación actual no se subdivida adicionalmente. En la Figura 12, simplemente se muestra que están disponibles cuatro opciones de subdivisión diferentes, pero las otras opciones de subdivisión mostradas en la Figura 8 pueden estar disponibles también. Otra posibilidad sería que la opción de subdivisión PART_NxN no estuviera disponible, pero sí las otras. La asociación entre los nombres para los modos de subdivisión usados en la Figura 12 para las opciones de subdivisión mostradas en la Figura 8 se indica en la Figura 8 por respectivos subíndices por debajo de las opciones de subdivisión individuales. Por favor, observe que el elemento de sintaxis de tipo de predicción pred_type no señaliza únicamente el modo de predicción, es decir, intra o inter codificado, sino también la subdivisión en caso del modo de inter codificación. El caso del modo de inter-codificación se analiza adicionalmente. La función prediction_unit se denomina para cada partición, tal como las particiones 50 y 60 en el orden de codificación anteriormente mencionado. La función prediction_unit empieza comprobando la skip_flag en 414. Si se establece skip_flag, sigue inevitablemente merge_idx en 416. La comprobación en la etapa 414, es para comprobar en cuanto a si se ha establecido o no skip_flag relacionada con la totalidad de la unidad de codificación como se señaliza en 406. En caso negativo, se señaliza merge_flag de nuevo en 418, y si se establece el último, sigue un merge_idx en 420 que indica el candidato de unión para la partición actual. De nuevo, se señaliza merge_flag para la partición actual en 418 simplemente en caso de que el modo de predicción actual de la unidad de codificación actual sea un modo de inter predicción (véase 422). Es decir, en caso de que no se establezca skip_flag, se señaliza el modo de predicción mediante pred_type en 410 tras lo cual, para cada unidad de predicción, con la condición de que pred_type señalice que el modo de inter codificación está activo (véase 422), se transmite individualmente una bandera específica de unión, en concreto merge_flag, para cada partición seguida, si se activa la unión para la respectiva partición por un índice de unión merge_idx.
Como es visible a partir de la Figura 13, la transmisión de los parámetros de predicción en uso para la unidad de predicción actual en 424 se realiza, de acuerdo con la presente realización, simplemente en caso de que no se use la unión para la presente unidad de predicción, es decir, puesto que la unión ni se activa por skip_flag ni por la respectiva merge_flag de la respectiva partición.
Como ya se ha indicado anteriormente, skip_flag = 1 señaliza actualmente que no han de transmitirse datos residuales. Esto puede derivarse del hecho de que la transmisión de los datos residuales en 426 en la Figura 12 para la unidad de codificación actual simplemente tiene lugar en caso de que skip_flag sea igual a 0, como puede derivarse del hecho de que esta transmisión de datos residual dentro de la opción else de la cláusula if 428 que comprueba el estado de skip_flag inmediatamente después de su transmisión.
Hasta ahora, se ha descrito únicamente la realización de las Figuras 11 a 13 bajo la suposición de que entropy_coding_mode_flag equivale a 1. Sin embargo, las realizaciones de las Figuras 11 a 13 también comprenden una realización de las realizaciones anteriormente señaladas en caso de entropy_coding_mode_flag = 0, caso en el que se usa otro modo de codificación por entropía para codificar por entropía los elementos de sintaxis, tal como, por ejemplo, codificación de longitud variable y, para ser más precisos, codificación de longitud variable adaptativa según contexto, por ejemplo. En particular, la posibilidad de señalizar concurrentemente la activación de la unión, por una parte, y el modo de salto, por otra parte, sigue la alternativa anteriormente señalada de acuerdo con la que el estado de señalización de manera común es simplemente un estado entre más de dos estados de un respectivo elemento de sintaxis. Esto se describe en más detalle a continuación. Sin embargo, se destaca que la posibilidad de conmutar entre ambos modos de codificación por entropía es opcional, y, por lo tanto, pueden derivarse fácilmente realizaciones alternativas a partir de la Figura 11 a 13 simplemente permitiendo uno de los dos modos de codificación por entropía.
Véase, por ejemplo, la Figura 11. Si entropy_coding_mode_flag equivale a 0 y el tipo de corte elemento de sintaxis señaliza que el bloque de árbol-raíz actual pertenece a un corte inter codificado, es decir está disponible el modo de inter codificación, entonces se transmite un elemento de sintaxis cu_split_pred_part_mode en 430, y este elemento de sintaxis señaliza, como se ha indicado mediante su nombre, información sobre la subdivisión adicional de la unidad de codificación actual, la activación o desactivación del modo de salto, la activación o desactivación de la unión y el modo de predicción junto con la respectiva información de subdivisión. Véase la tabla 1:
T l 1
Figure imgf000027_0001
La tabla 1 especifica el significado de los posibles estados de los elementos de sintaxis cu_split_pred_part_mode en caso de que la unidad de codificación actual tenga un tamaño que no sea el más pequeño en la subdivisión de árbol cuádruple del bloque de árbol-raíz actual. Los posibles estados se enumeran en la columna más a la izquierda de la tabla 1. Como hace referencia la tabla 1, al caso donde la unidad de codificación actual no tiene el tamaño más pequeño, hay un estado de cu_split_pred_part_mode, en concreto el estado 0, que señaliza que la unidad de codificación actual no es una unidad de codificación actual, sino que ha de subdividirse en cuatro unidades adicionales que se atraviesan a continuación en orden de recorrido de primero profundidad como se ha señalado llamando la función coding_tree en 432 de nuevo. Es decir, cu_split_pred_part_mode = 0 señaliza que la unidad de subdivisión de árbol cuádruple actual del bloque de árbol-raíz actual ha de subdividirse en cuatro unidades más pequeñas adicionales de nuevo, es decir split_coding_unit_flag = 1. Sin embargo, si cu_split_pred_part_mode asume cualquier otro posible estado, entonces split_coding_unit_flag = 0 y la unidad actual forman un bloque hoja del bloque de árbol-raíz actual, es decir una unidad de codificación. En ese caso, uno de los posibles estados restantes de cu_split_pred_part_mode representa el estado de señalización de manera común anteriormente descrito que señaliza de manera concurrente que la unidad de codificación actual es sometida a unión y tiene el modo de salto activado, indicado por skip_flag que equivale a 1 en la tercera columna de la tabla 1, mientras que se señaliza concurrentemente que no tiene lugar partición adicional de la unidad de codificación actual, es decir, se elige PART_2Nx2N como el modo de subdivisión. cu_split_pred_part_mode también tiene un posible estado que señaliza la activación de la unión desactivándose el modo de salto. Este es el estado posible 2, que corresponde a skip_flag = 0 mientras que merge_flag = 1 sin que esté el modo de subdivisión activo, es decir PART_2Nx2N. Es decir, en ese caso, se señaliza merge_flag de ante mano en lugar de en la sintaxis prediction_unit. En los restantes posibles estados de cu_split_pred_part_mode, se señaliza el modo de inter predicción con otros modos de subdivisión, subdividiendo estos modos de subdivisión la unidad de codificación actual en más de una partición.
T l 2
Figure imgf000028_0001
La tabla 2 muestra el significado o semántica de los posibles estados de cu_split_pred_part_mode en caso de que la unidad de codificación actual tenga el tamaño más pequeño posible de acuerdo con la subdivisión de árbol cuádruple del bloque de árbol-raíz actual. En ese caso, todos los posibles estados de cu_split_pred_part_mode corresponden a subdivisión adicional de acuerdo con split_coding_unit_flag = 0. Sin embargo, el estado posible 0 señaliza que skip_flag = 1, es decir señaliza concurrentemente que está activada la unión y está activo el modo de salto. Además, el mismo señaliza que no tiene lugar subdivisión, es decir, el modo de subdivisión PART_2Nx2N. El posible estado 1 corresponde al posible estado 2 de la tabla 1 y lo mismo se aplica al posible estado 2 de la tabla 2, que corresponde al posible estado 3 de la tabla 1.
Aunque la descripción anterior de la realización de las Figuras 11-13 ya ha descrito la mayoría de la funcionalidad y semántica, se presenta a continuación alguna información adicional.
skip_flag[x0][y0] equivale a 1 especifica que para la unidad de codificación actual (véase 40 en las figuras), cuando se decodifica un corte P o B, no se analizan más elementos de sintaxis excepto los índices de predictor de vector de movimiento (merge_idx) después de skip_flag[ x0 ][ y0]. skip_flag[ x0 ][ y0 ] igual a 0 especifica que no se omite la unidad de codificación. Los índices de matriz x0, y0 especifican la ubicación (x0, y0 ) de la muestra de luma superiorizquierda de la unidad de codificación considerada con relación a la muestra de luma superior-izquierda de la instantánea (véase 20 en las figuras).
Cuando no está presente skip_flag[ x0 ][ y0 ], debe inferirse que es igual a 0.
Como se ha descrito anteriormente si skip_flag[ x0 ][ y0 ] es igual a 1,
- Se infiere PredMode para que sea igual a MODO_SALTO
- Se infiere PartMode para que sea igual a PART_2Nx2N
cu_split_pred_part_mode[ x0 ][ y0 ] especifica split_coding_unit_flag y cuando la unidad de codificación no se divide skip_flag[ x0 ][ y0 ], merge_flag[ x0 ][ y0 ], PredMode y PartMode de una unidad de codificación. Los índices de matriz x0 e y0 especifican la ubicación (x0, y0 ) de la muestra de luma superior-izquierda de la unidad de codificación con relación a la muestra de luma superior-izquierda de la instantánea.
merge_flag[ x0 ][ y0 ] especifica si los parámetros de inter predicción para la unidad de predicción actual (véase 50 y 60 en las figuras, es decir la partición dentro de la unidad de codificación 40) se infieren desde una partición inter­ prevista vecina. Los índices de serie x0, y0 especifican la ubicación (x0, y0) de la muestra de luminancia superior izquierda del bloque de predicción considerado con relación a la muestra de luminancia superior izquierda de la instantánea.
merge_idx[ x0 ][ y0 ] especifica el índice de candidato de unión de la lista de candidatos de unión donde x0, y0 especifican la ubicación (x0, y0 ) de la muestra de luma superior-izquierda del bloque de predicción considerado con relación a la muestra de luma superior-izquierda de la instantánea.
Aunque no se indica específicamente en la descripción anterior de las Figuras 11-13, se determinan los candidatos de unión o la lista de candidatos de unión en esta realización de manera ilustrativa usando no únicamente parámetros de codificación o parámetros de predicción de unidades/particiones de predicción espacialmente vecinas, sino en su lugar, también se forma una lista de candidatos usando parámetros de predicción de particiones temporalmente vecinas de instantáneas codificadas temporal y previamente vecinas. Además, se usan e incluyen las combinaciones de parámetros previstos de unidades/particiones de predicción espacial y/o temporalmente vecinas en la lista de candidatos de unión. De manera natural, simplemente puede usarse un subconjunto de las mismas. En particular, la Figura 14 muestra una posibilidad de determinar vecinos espaciales, es decir, particiones espacialmente vecinas o unidades de predicción. La Figura 14 muestra de manera ilustrativa una unidad de predicción o partición 60 y los píxeles B0 a B2 y A0 y A1 que se ubican directamente adyacentes al borde 500 de la partición 60, en concreto siendo B2 diagonalmente adyacentes al píxel superior izquierdo de la partición 60, estando ubicado B1 verticalmente por encima y adyacente al píxel superior derecho de la partición 60, estando ubicado B0 diagonalmente al píxel superior derecho de la partición 60, estando ubicado A1 horizontalmente a la izquierda de, y adyacente al píxel inferior izquierdo de la partición 60, y estando ubicado A0 diagonalmente en el píxel a la izquierda abajo de la partición 60. Una partición que incluye al menos uno de los píxeles B0 a B2 y A0 y A1 forma un vecino espacial y los parámetros de predicción de la misma forman un candidato de unión.
Para realizar la eliminación opcional anteriormente mencionada de estos candidatos que conducirían a otro modo de subdivisión que también habría estado disponible, podrían usarse las siguientes funciones:
En particular, se elimina el candidato N, es decir los parámetros de codificación/predicción de la unidad/partición de predicción que cubre el píxel N=( B0, B1, B2, A0, A1), es decir, la posición (xN, yN), de la lista de candidatos si cualquiera de las siguientes condiciones es verdadera (por favor, véase la Figura 8 para el modo de subdivisión PartMode y el correspondiente índice de subdivisión PartIdx que indexa la respectiva partición dentro de la unidad de codificación):
- PartMode de la unidad de predicción actual es PART_2NxN y PartIdx es igual a 1 y las unidades de predicción que cubren ubicación de luma (xP, yP - 1 ) ( PartIdx = 0 ) y ubicación de luma (xN, yN ) (Cand. N) tienen parámetros de movimiento idénticos:
mvLX[ xP, yP - 1 ] = = mvLX[ xN, yN ]
refldxLX[ xP, yP - 1 ] = = refldxLX[ xN, yN ]
predFlagLX[ xP, yP - 1 ] = = predFlagLX[ xN, yN ]
- PartMode de la unidad de predicción actual es PART _Nx2N y PartIdx es igual a 1 y las unidades de predicción que cubren la ubicación de luma (xP - 1, yP ) ( PartIdx = 0 ) y ubicación de luma (xN, yN ) (Cand. N) tienen parámetros de movimiento idénticos:
mvLX[ xP - 1, yP ] = = mvLX[ xN, yN ]
refIdxLX[ xP - 1, yP ] = = refIdxLX[ xN, yN ]
predFlagLX[ xP - 1, yP ] = = predFlagLX[ xN, yN ]
- PartMode de la unidad de predicción actual es PART_NxN y PartIdx es igual a 3 y las unidades de predicción que cubren la ubicación de luma (xP - 1, yP ) ( PartIdx = 2 ) y ubicación de luma (xP - 1, yP - 1 ) ( PartIdx = 0 ) tienen parámetros de movimiento idénticos:
mvLX[ xP - 1, yP ] = = mvLX[ xP - 1, yP - 1 ]
refIdxLX[ xP - 1, yP ] = = refldxLX[ xP - 1, yP - 1 ]
predFlagLX[ xP - 1, yP ] = = predFlagLX[ xP - 1, yP - 1 ]
y las unidades de predicción que cubren la ubicación de luma (xP, yP - 1 ) ( PartIdx = 1 ) y la ubicación de luma (xN, yN) (Cand. N) tienen parámetros de movimiento idénticos:
mvLX[xP, yP -1] = = mvLX[xN, yN]
refIdxLX[xP, yP - 1] = = refIdxLX[xN, yN]
predFlagLX[xP, yP - 1] = = predFlagLX[xN, yN]
- PartMode de la unidad de predicción actual es PART_NxN y PartIdx es igual a 3 y las unidades de predicción que cubren la ubicación de luma (xP, yP-1) (PartIdx = 1) y la ubicación de luma (xP - 1, yP - 1) (PartIdx = 0) tienen parámetros de movimiento idénticos:
mvLX[xP, yP-1] = = mvLX[xP - 1, yP-1]
refIdxLX[xP, yP - 1] = = refIdxLX[xP-1, yP-1]
predFlagLX[xP, yP-1] = = predFlagLX[xP - 1, yP-1]
y las unidades de predicción que cubren la ubicación de luma (xP-1, yP) (PartIdx = 2) y la ubicación de luma (xN, yN) (Cand. N) tienen parámetros de movimiento idénticos:
mvLX[xP - 1, yP] = = mvLX[xN, yN]
refIdxLX[xP-1, yP] = = refIdxLX[xN, yN]
En este sentido, por favor, obsérvese que la posición o ubicación (xP, yP) indica el píxel más superior de la unidad de partición/predicción actual. Es decir, de acuerdo con el primer elemento, se comprueban todos los candidatos de parámetro de codificación que se han derivado adoptando directamente los respectivos parámetros de codificación de unidades de predicción vecinas, en concreto la unidad de predicción N. Sin embargo, los otros candidatos de parámetro de codificación adicionales pueden comprobarse de la misma manera que si fueran iguales a los parámetros de codificación de la respectiva unidad de predicción que emerge con lo que daría como resultado obtener otro patrón de subdivisión también soportado por la sintaxis. De acuerdo con las realizaciones recién descritas, la equidad de los parámetros de codificación abarca una comprobación de la igualdad del vector de movimiento, es decir mvLX, el índice de referencia, es decir se usan en inter predicción refIxLX, y la bandera de predicción predFlagLX que indica que los parámetros, es decir el vector de movimiento y el índice de referencia, asociados con la lista de referencia X, siendo X 0 o 1.
Por favor, obsérvese que la posibilidad recién descrita para la retirada de candidatos de parámetro de codificación de unidades/particiones de predicción vecinas sería también aplicable en caso de soportar modos de subdivisión asimétricos en la mitad derecha de la Figura 8. En ese caso, el modo PART_2NxN podría representar todos los modos de subdivisión de manera horizontal y PART_Nx2N podría corresponder a todos los modos de subdivisión de manera vertical. Además, el modo PART_NxN podría excluirse de los modos de subdivisión soportados o patrones de subdivisión y, en ese caso, simplemente tendrían que realizarse las primeras dos comprobaciones de retirada.
Con respecto a la realización las Figuras 11-14, debería observarse también que es posible excluir las particiones intra previstas de la lista de candidatos, es decir sus parámetros de codificación, de manera natural, no están incluidos en la lista de candidatos.
Además, se observa que podrían usarse tres contextos para skip_flag, merge_flag y merge_idx, respectivamente.
Aunque se han descrito algunos aspectos en el contexto de un aparato, es evidente que estos aspectos también representan una descripción del método correspondiente, donde un bloque o dispositivo corresponde a una etapa de método o una característica de una etapa de método. De manera análoga, los aspectos descritos en el contexto de una etapa de método también representan una descripción de un bloque o elemento correspondiente o características de un aparato correspondiente. Algunas o todas las etapas de método pueden ejecutarse por (o usando) un aparato de hardware, como, por ejemplo, un microprocesador, un ordenador programable o un circuito electrónico. En algunas realizaciones, algunas una o más de las etapas más importantes del método pueden ejecutarse por un aparato de este tipo.
Dependiendo de ciertos requisitos de implementación, las realizaciones de la invención pueden implementarse en hardware o en software. La implementación puede realizarse usando un medio de almacenamiento digital, por ejemplo, un disco flexible, un DVD, un Blue-Ray, un CD, una ROM, una PROM, una EPROM, una EEPROM, o una memoria FLASH, que tiene señales de control electrónicamente legibles almacenadas en el mismo, que cooperan (o pueden cooperar) con un sistema informático programable de manera que se realiza el respectivo método. Por lo tanto, el medio de almacenamiento digital puede ser legible por ordenador.
Algunas realizaciones de acuerdo con la invención comprenden un soporte de datos que tiene señales de control electrónicamente legibles, que pueden cooperar con un sistema informático programable, de manera que se realiza uno de los métodos descritos en el presente documento.
En general, las realizaciones de la presente invención pueden implementarse como un producto de programa informático con un código de programa, siendo el código de programa operativo para realizar uno de los métodos cuando el producto de programa informático se ejecuta en un ordenador. El código de programa puede almacenarse, por ejemplo, en un soporte legible por máquina.
Otras realizaciones comprenden el programa informático para realizar uno de los métodos descritos en el presente documento, almacenado en soporte legible por máquina.
En otras palabras, una realización del método inventivo es, por lo tanto, un programa informático que tiene un código de programa para realizar uno de los métodos descritos en el presente documento, cuando el programa informático se ejecuta en un ordenador.
Una realización adicional de los métodos inventivos es, por lo tanto, un soporte de datos (o un medio de almacenamiento digital, o un medio legible por ordenador) que comprende, grabado en el mismo, el programa informático para realizar uno de los métodos descritos en el presente documento. El soporte de datos, el medio de almacenamiento digital o el medio registrado son, habitualmente, tangibles y/o no transitorios.
Una realización adicional del método inventivo es, por lo tanto, un flujo de datos o una secuencia de señales que representan el programa informático para realizar uno de los métodos descritos en el presente documento. El flujo de datos o la secuencia de señales pueden configurarse, por ejemplo, para transferirse a través de una conexión de comunicación de datos, por ejemplo, a través de Internet.
Una realización adicional comprende un medio de procesamiento, por ejemplo, un ordenador o un dispositivo de lógica programable, configurado para o adaptado para realizar uno de los métodos descritos en el presente documento.
Una realización adicional comprende un ordenador que tiene instalado en el mismo el programa informático para realizar uno de los métodos descritos en el presente documento.
Una realización adicional de acuerdo con la invención comprende un aparato o un sistema configurado para transferir (por ejemplo, electrónica u ópticamente) un programa informático para realizar uno de los métodos descritos en el presente documento a un receptor. El receptor puede ser, por ejemplo, un ordenador, un dispositivo móvil, un dispositivo de memoria o similares. El aparato o sistema puede comprender, por ejemplo, un servidor de archivos para transferir el programa informático al receptor.
En algunas realizaciones, se puede usar un dispositivo de lógica programable (por ejemplo, una matriz de puertas programables en campo) para realizar algunas o todas las funcionalidades de los métodos descritos en el presente documento. En algunas realizaciones, una matriz de puertas programables en campo puede cooperar con un microprocesador para realizar uno de los métodos descritos en el presente documento. En general, los métodos se realizan preferentemente por cualquier aparato de hardware.
Las realizaciones anteriormente descritas simplemente son ilustrativas de los principios de la presente invención. Se entiende que modificaciones y variaciones de las disposiciones y los detalles descritos en el presente documento resultarán evidentes para otros expertos en la técnica. Por tanto, se pretende limitarse únicamente por el alcance de las siguientes reivindicaciones de patente y no por los detalles específicos presentados a modo de descripción y explicación de las realizaciones en el presente documento.

Claims (15)

REIVINDICACIONES
1. Aparato configurado para decodificar un flujo de bits (30) en el que se codifica una instantánea (20) representada como una matriz de muestras, subdividiéndose la matriz de muestras de la instantánea en conjuntos de muestras que son bloques rectangulares o cuadráticos, y cada uno de los cuales está asociado con respectivos parámetros de codificación, estando configurado el aparato para establecer, para un conjunto de muestras actual, los parámetros de codificación asociados con el conjunto de muestras actual de acuerdo con un candidato de unión uniéndose con el candidato de unión o recuperando los parámetros de codificación asociados con el conjunto de muestras actual del flujo de bits (30), y estando configurado para reconstruir el conjunto de muestras actual (40) de la instantánea (20) basándose en una señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual (40), sin ningún dato residual, o reconstruir el conjunto de muestras actual perfeccionando la señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual (40) por medio de datos residuales en el flujo de bits (30),
en donde el aparato está configurado para responder de manera común a una primera bandera en el flujo de bits (30) que tiene un primer estado de bandera para obtener los parámetros de codificación asociados con el conjunto de muestras actual (40) uniéndose con el candidato de unión, y reconstruyendo el conjunto de muestras actual (40) de la instantánea (20) basándose en una señal de predicción dependiendo de los parámetros de codificación sin ningún dato residual, y
en donde el aparato está configurado para responder a la primera bandera que tiene un segundo estado de bandera para decodificar una segunda bandera del flujo de bits (30) en caso de que la primera bandera tenga un segundo estado de bandera posible,
caracterizado porque el aparato está configurado para responder a
tener la segunda bandera en el flujo de bits un primer estado de bandera para extraer los parámetros de codificación asociados con el conjunto de muestras actual (40) del flujo de bits (30), obtener datos residuales para el conjunto de muestras actual (40) del flujo de bits (30) y reconstruir el conjunto de muestras actual (40) de la instantánea (20) basándose en la señal de predicción y los datos residuales, y
tener la segunda bandera un segundo estado de bandera para obtener los parámetros de codificación asociados con el conjunto de muestras actual (40) estableciendo dichos parámetros de codificación uniéndose con un candidato de unión, obtener datos residuales para el conjunto de muestras actual (40) del flujo de bits (30) y reconstruir el conjunto de muestras actual (40) de la instantánea (20) basándose en la señal de predicción y los datos residuales.
2. Aparato de acuerdo con la reivindicación 1, en donde
si la primera bandera en el flujo de bits señaliza que los parámetros de codificación asociados con el conjunto de muestras actual han de establecerse uniéndose con un candidato de unión,
el aparato está configurado para aplicar uno predeterminado entre patrones de subdivisión soportados para el conjunto de muestras, y
si la primera bandera en el flujo de bits no señaliza que los parámetros de codificación asociados con el conjunto de muestras actual han de establecerse uniéndose con un candidato de unión,
el aparato está configurado para subdividir información en el flujo de bits y señalizar uno de los patrones de subdivisión soportados para el conjunto de muestras actual.
3. Aparato de acuerdo con la reivindicación 2, en donde el predeterminado entre los patrones de subdivisión soportados es un modo de no subdivisión y
si la primera bandera en el flujo de bits señaliza que los parámetros de codificación asociados con el conjunto de muestras actual han de establecerse uniéndose con un candidato de unión,
el aparato está configurado para obtener parámetros de codificación asociados con el conjunto de muestras actual estableciendo dichos parámetros de codificación uniéndose con un candidato de unión, y reconstruyendo el conjunto de muestras actual de la instantánea simplemente basándose en una señal de predicción dependiendo de los parámetros de codificación sin ningún dato residual, y
si la primera bandera en el flujo de bits no señaliza que los parámetros de codificación asociados con el conjunto de muestras actual han de establecerse uniéndose con un candidato de unión,
el aparato está configurado para subdividir información en el flujo de bits y señalizar uno de los patrones de subdivisión soportados para el conjunto de muestras actual,
obtener datos residuales para el conjunto de muestras actual del flujo de bits,
para cada subconjunto de muestras del patrón de subdivisión soportado señalizado del conjunto de muestras actual, el aparato está configurado para responder a una bandera adicional en el flujo de bits de manera que el aparato está configurado para, dependiendo de la bandera adicional,
obtener parámetros de codificación asociados con el respectivo subconjunto de muestras estableciendo dichos parámetros de codificación uniéndose con un candidato de unión, o
extraer los parámetros de codificación asociados con el respectivo subconjunto de muestras del flujo de bits; y reconstruir el conjunto de muestras actual de la instantánea basándose en una señal de predicción dependiendo de los parámetros de codificación de cada subconjunto de muestras y los datos residuales.
4. Aparato de acuerdo con la reivindicación 3, en donde el aparato está configurado para
si los patrones de subdivisión soportados señalizados especifican una subdivisión del conjunto de muestras actual en dos o más subconjuntos de muestras,
eliminar
para todos los subconjuntos de muestras excepto un primer subconjunto de muestras de los subconjuntos de muestras en un orden de codificación,
de un conjunto de candidatos de unión para el respectivo subconjunto de muestras,
candidatos de unión que tienen parámetros de codificación que son los mismos que parámetros de codificación asociados con cualquiera de los subconjuntos de muestras, que darían como resultado, cuando se unieran con el respectivo subconjunto de muestras uno de los patrones de subdivisión soportados.
5. Aparato de acuerdo con cualquiera de las reivindicaciones 1 a 4, en donde la instantánea tiene asociada con la misma un mapa de profundidad como información adicional.
6. Aparato de acuerdo con cualquiera de las reivindicaciones 1 a 4, en donde la matriz de muestras es una de las matrices de muestras relacionadas con diferentes planos de la instantánea, que se codifican independientemente entre sí.
7. Aparato para codificar una instantánea (20) representada como una matriz de muestras en un flujo de bits (30), subdividiéndose la matriz de muestras de la instantánea (20) en conjuntos de muestras (40) que son bloques rectangulares o cuadráticos, y cada uno de los cuales está asociado con respectivos parámetros de codificación, estando configurado el aparato para establecer, para un conjunto de muestras actual, los parámetros de codificación asociados con el conjunto de muestras actual (40) de acuerdo con un candidato de unión uniéndose con el candidato de unión o insertar los parámetros de codificación asociados con el conjunto de muestras actual en el flujo de bits (30), y estando configurado para codificar el conjunto de muestras actual (40) de la instantánea (20) basándose en una señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual (40), sin ningún dato residual, o codificar el conjunto de muestras actual perfeccionando la señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual (40) por medio de datos residuales en el flujo de bits (30),
en donde el aparato está configurado para codificar una primera bandera en el flujo de bits (30), teniendo la primera bandera un primer estado de bandera para señalizar comúnmente que los parámetros de codificación asociados con el conjunto de muestras actual (40) han de obtenerse uniéndose con el candidato de unión, y el conjunto de muestras actual (40) de la instantánea (20) ha de reconstruirse basándose en una señal de predicción dependiendo de los parámetros de codificación sin ningún dato residual,
en donde el aparato está configurado para codificar una segunda bandera en el flujo de bits (30) en caso de que la primera bandera tenga un segundo estado de bandera
caracterizado porque la segunda bandera señaliza que
los parámetros de codificación asociados con el conjunto de muestras actual (40) han de extraerse del flujo de bits (30), han de obtenerse datos residuales para el conjunto de muestras actual (40) del flujo de bits (30) y ha de reconstruirse el conjunto de muestras actual (40) de la instantánea (20) basándose en la señal de predicción y los datos residuales, en caso de tener la segunda bandera un primer estado de bandera, y
han de obtenerse los parámetros de codificación asociados con el conjunto de muestras actual (40) estableciendo dichos parámetros de codificación uniéndose con un candidato de unión, han de obtenerse datos residuales para el conjunto de muestras actual (40) del flujo de bits (30) y ha de reconstruirse el conjunto de muestras actual (40) de la instantánea (20) basándose en la señal de predicción y los datos residuales en caso de tener la segunda bandera un segundo estado de bandera.
8. Aparato de acuerdo con la reivindicación 7, en donde la instantánea tiene asociada con la misma un mapa de profundidad como información adicional.
9. Aparato de acuerdo con la reivindicación 7, en donde la matriz de muestras es una de las matrices de muestras relacionadas con diferentes planos de la instantánea, que se codifican independientemente entre sí.
10. Método para decodificar un flujo de bits (30) en el que se codifica una instantánea (20) representada como una matriz de muestras, subdividiéndose la matiz de muestras de la instantánea en conjuntos de muestras que son bloques rectangulares o cuadráticos, y cada uno de los cuales está asociado con respectivos parámetros de codificación, comprendiendo el método, para un conjunto de muestras actual, establecer los parámetros de codificación asociados con el conjunto de muestras actual de acuerdo con un candidato de unión uniéndose con el candidato de unión o recuperando los parámetros de codificación asociados con el conjunto de muestras actual del flujo de bits (30), y reconstruyendo el conjunto de muestras actual (40) de la instantánea (20) simplemente basándose en una señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual (40), sin ningún dato residual, o reconstruyendo el conjunto de muestras actual perfeccionando la señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual (40) por medio de datos residuales en el flujo de bits (30), en donde el método comprende decodificar una primera bandera y, en caso de que la primera bandera tenga un primer estado de bandera,
obtener los parámetros de codificación asociados con el conjunto de muestras actual (40) uniéndose con el candidato de unión, y reconstruyendo el conjunto de muestras actual (40) de la instantánea (20) basándose en una señal de predicción dependiendo de los parámetros de codificación sin ningún dato residual,
en donde el método comprende decodificar una segunda bandera del flujo de bits (30) en caso de tener la primera bandera un segundo estado de bandera
caracterizado porque el método comprende
si la segunda bandera en el flujo de bits tiene un primer estado de bandera
extraer los parámetros de codificación asociados con el conjunto de muestras actual (40) del flujo de bits (30), obtener datos residuales para el conjunto de muestras actual (40) del flujo de bits (30) y reconstruir el conjunto de muestras actual (40) de la instantánea (20) basándose en la señal de predicción y los datos residuales, y si la segunda bandera tiene un segundo estado de bandera
obtener los parámetros de codificación asociados con el conjunto de muestras actual (40) estableciendo dichos parámetros de codificación uniéndose con un candidato de unión, obtener datos residuales para el conjunto de muestras actual (40) del flujo de bits (30) y reconstruir el conjunto de muestras actual (40) de la instantánea (20) basándose en la señal de predicción y los datos residuales.
11. Método para codificar una instantánea (20) representada como una matriz de muestras en un flujo de bits (30), estando subdividida la matriz de muestras de la instantánea (20) en conjuntos de muestras (40) que son bloques rectangulares o cuadráticos, y cada uno de los cuales está asociado con respectivos parámetros de codificación, comprendiendo el método, para un conjunto de muestras actual, establecer los parámetros de codificación asociados con el conjunto de muestras actual (40) de acuerdo con un candidato de unión uniéndose con el candidato de unión o insertando los parámetros de codificación asociados con el conjunto de muestras actual en el flujo de bits (30), y codificar el conjunto de muestras actual (40) de la instantánea (20) basándose en una señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual (40), sin ningún dato residual, o codificar el conjunto de muestras actual perfeccionando la señal de predicción dependiendo de los parámetros de codificación asociados con el conjunto de muestras actual (40) por medio de datos residuales en el flujo de bits (30),
en donde el método comprende codificar una primera bandera en el flujo de bits (30) en donde la primera bandera tiene un primer estado de bandera que señaliza comúnmente que
los parámetros de codificación asociados con el conjunto de muestras actual (40) han de establecerse uniéndose con un candidato de unión, y el conjunto de muestras actual (40) de la instantánea (20) ha de reconstruirse simplemente basándose en una señal de predicción dependiendo de los parámetros de codificación sin ningún dato residual,
en donde el método comprende codificar una segunda bandera en el flujo de bits (30) en caso de tener la primera bandera un segundo estado de bandera
caracterizado porque la segunda bandera señaliza que
los parámetros de codificación asociados con el conjunto de muestras actual (40) han de extraerse del flujo de bits (30), los datos residuales para el conjunto de muestras actual (40) han de obtenerse del flujo de bits (30) y el conjunto de muestras actual (40) de la instantánea (20) ha de reconstruirse basándose en la señal de predicción y los datos residuales, en caso de tener la segunda bandera un primer estado de bandera, y
los parámetros de codificación asociados con el conjunto de muestras actual (40) han de obtenerse estableciendo los mismos uniéndose con un candidato de unión, los datos residuales para el conjunto de muestras actual (40) han de obtenerse del flujo de bits (30) y el conjunto de muestras actual (40) de la instantánea (20) ha de reconstruirse basándose en la señal de predicción y los datos residuales en caso de tener la segunda bandera un segundo estado de bandera.
12. Flujo de bits codificado por un método para codificar una instantánea (20) de acuerdo con la reivindicación 11.
13. Flujo de bits de acuerdo con la reivindicación 12, en donde la instantánea tiene asociada con la misma un mapa de profundidad como información adicional.
14. Flujo de bits de acuerdo con la reivindicación 12, en donde la matriz de muestras es una de las matrices de muestras relacionadas con diferentes planos de la instantánea, que se codifican independientemente entre sí.
15. Programa informático que tiene un código de programa para realizar, cuando se ejecuta en un ordenador, un método de acuerdo con la reivindicación 10 u 11.
ES21182527T 2010-11-04 2011-11-04 Codificación de instantánea que soporta unión de bloques y modo de salto Active ES2955542T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US41024610P 2010-11-04 2010-11-04

Publications (1)

Publication Number Publication Date
ES2955542T3 true ES2955542T3 (es) 2023-12-04

Family

ID=44925528

Family Applications (5)

Application Number Title Priority Date Filing Date
ES11781501T Active ES2891598T3 (es) 2010-11-04 2011-11-04 Codificación de instantánea que soporta unión de bloques y modo de salto
ES24163024T Active ES3038310T3 (en) 2010-11-04 2011-11-04 Picture coding supporting block merging and skip mode
ES24163025T Active ES3038304T3 (en) 2010-11-04 2011-11-04 Picture coding supporting block merging and skip mode
ES21182527T Active ES2955542T3 (es) 2010-11-04 2011-11-04 Codificación de instantánea que soporta unión de bloques y modo de salto
ES24163026T Active ES3038305T3 (en) 2010-11-04 2011-11-04 Picture coding supporting block merging and skip mode

Family Applications Before (3)

Application Number Title Priority Date Filing Date
ES11781501T Active ES2891598T3 (es) 2010-11-04 2011-11-04 Codificación de instantánea que soporta unión de bloques y modo de salto
ES24163024T Active ES3038310T3 (en) 2010-11-04 2011-11-04 Picture coding supporting block merging and skip mode
ES24163025T Active ES3038304T3 (en) 2010-11-04 2011-11-04 Picture coding supporting block merging and skip mode

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES24163026T Active ES3038305T3 (en) 2010-11-04 2011-11-04 Picture coding supporting block merging and skip mode

Country Status (16)

Country Link
US (11) US9924193B2 (es)
EP (7) EP4398571B1 (es)
JP (8) JP6258704B2 (es)
KR (10) KR102648076B1 (es)
CN (11) CN107105304B (es)
DK (2) DK2636218T3 (es)
ES (5) ES2891598T3 (es)
FI (1) FI3962088T3 (es)
HU (5) HUE072362T2 (es)
LT (2) LT3962088T (es)
PL (5) PL3962088T3 (es)
PT (2) PT2636218T (es)
RS (2) RS64610B1 (es)
SI (2) SI2636218T1 (es)
TW (7) TWI799816B (es)
WO (1) WO2012059577A1 (es)

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110068792A (ko) * 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
BR122020007923B1 (pt) * 2010-04-13 2021-08-03 Ge Video Compression, Llc Predição interplano
KR101626688B1 (ko) 2010-04-13 2016-06-01 지이 비디오 컴프레션, 엘엘씨 샘플 영역 병합
TWI575887B (zh) 2010-04-13 2017-03-21 Ge影像壓縮有限公司 在樣本陣列多元樹細分中之繼承技術
RS63059B1 (sr) 2010-04-13 2022-04-29 Ge Video Compression Llc Kodiranje videa primenom podele sa više stabala na slikama
HUE072362T2 (hu) 2010-11-04 2025-11-28 Ge Video Compression Llc Blokkegyesítési és kihagyási módot támogató képkódolás
KR20120100836A (ko) * 2011-03-03 2012-09-12 한국전자통신연구원 변환 계수 스캔 방법 및 그 장치
WO2012118358A2 (ko) * 2011-03-03 2012-09-07 한국전자통신연구원 변환 계수 스캔 방법 및 그 장치
US9066110B2 (en) 2011-03-08 2015-06-23 Texas Instruments Incorporated Parsing friendly and error resilient merge flag coding in video coding
JP5982734B2 (ja) * 2011-03-11 2016-08-31 ソニー株式会社 画像処理装置および方法
US9313494B2 (en) * 2011-06-20 2016-04-12 Qualcomm Incorporated Parallelization friendly merge candidates for video coding
KR20120140181A (ko) 2011-06-20 2012-12-28 한국전자통신연구원 화면내 예측 블록 경계 필터링을 이용한 부호화/복호화 방법 및 그 장치
PL2725791T3 (pl) 2011-06-23 2024-02-26 Sun Patent Trust Sposób dekodowania obrazów, sposób kodowania obrazów
WO2012176464A1 (ja) 2011-06-24 2012-12-27 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
KR102062283B1 (ko) * 2011-06-24 2020-01-03 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
BR112013030347B1 (pt) 2011-06-27 2022-06-28 Sun Patent Trust Método de decodificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, aparelho de codificação de imagem e aparelho de codificação e de decodificação de imagem
MY165469A (en) 2011-06-28 2018-03-23 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
MX2013010892A (es) 2011-06-29 2013-12-06 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
PL2728869T3 (pl) 2011-06-30 2022-02-28 Sun Patent Trust Sposób dekodowania obrazów
KR102060619B1 (ko) 2011-06-30 2019-12-30 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
KR102404121B1 (ko) 2011-07-11 2022-05-31 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
US9300975B2 (en) 2011-09-11 2016-03-29 Texas Instruments Incorporated Concurrent access shared buffer in a video encoder
US9756353B2 (en) 2012-01-09 2017-09-05 Dolby Laboratories Licensing Corporation Hybrid reference picture reconstruction method for single and multiple layered video coding systems
US9749645B2 (en) * 2012-06-22 2017-08-29 Microsoft Technology Licensing, Llc Coded-block-flag coding and derivation
US10230956B2 (en) 2012-09-26 2019-03-12 Integrated Device Technology, Inc. Apparatuses and methods for optimizing rate-distortion of syntax elements
EP4593395A3 (en) 2012-10-01 2025-10-01 GE Video Compression, LLC Scalable video coding using inter-layer prediction contribution to enhancement layer prediction
US9699450B2 (en) 2012-10-04 2017-07-04 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
CN110545421B (zh) * 2012-10-12 2022-11-22 韩国电子通信研究院 图像编码/解码方法和使用其的装置
US20150256845A1 (en) * 2012-10-22 2015-09-10 Humax Holding Co., Ltd. Method for predicting inter-view motion and method for determining interview merge candidates in 3d video
US20140219331A1 (en) * 2013-02-06 2014-08-07 Magnum Semiconductor, Inc. Apparatuses and methods for performing joint rate-distortion optimization of prediction mode
US9300906B2 (en) * 2013-03-29 2016-03-29 Google Inc. Pull frame interpolation
TW201507443A (zh) * 2013-05-15 2015-02-16 Vid Scale Inc 基於單迴路解碼之多層視訊編碼
WO2015000108A1 (en) * 2013-07-01 2015-01-08 Mediatek Singapore Pte. Ltd. An improved texture merging candidate in 3dvc
JP6359101B2 (ja) 2013-10-14 2018-07-18 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像の符号化及び復号のためのイントラブロックコピー予測モードの特徴
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
US10506254B2 (en) 2013-10-14 2019-12-10 Microsoft Technology Licensing, Llc Features of base color index map mode for video and image coding and decoding
CN105684441B (zh) 2013-10-25 2018-09-21 微软技术许可有限责任公司 视频和图像编码中的基于散列的块匹配
KR102197505B1 (ko) 2013-10-25 2020-12-31 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩 및 디코딩에서의 해시 값을 갖는 블록의 표현
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
CN105917650B (zh) 2014-01-03 2019-12-24 微软技术许可有限责任公司 视频和图像编/解码的方法、计算设备及计算机可读介质
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
US10567754B2 (en) 2014-03-04 2020-02-18 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
MX361228B (es) 2014-03-04 2018-11-29 Microsoft Technology Licensing Llc Inversión de bloque y modo de omisión en predicción de intracopia de bloque.
US10250895B2 (en) * 2014-03-14 2019-04-02 Sharp Kabushiki Kaisha DPB capacity limits
CN105493505B (zh) 2014-06-19 2019-08-06 微软技术许可有限责任公司 统一的帧内块复制和帧间预测模式
CN105706450B (zh) 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
EP2975008B1 (en) 2014-07-16 2017-03-01 Saint-Gobain Glass France Transparent diffusive oled substrate and method for producing such a substrate
CA2959682C (en) 2014-09-30 2022-12-06 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
CN105981382B (zh) 2014-09-30 2019-05-28 微软技术许可有限责任公司 用于视频编码的基于散列的编码器判定
EP3028999B1 (en) 2014-12-01 2017-05-24 Saint-Gobain Glass France Transparent diffusive oled substrate and method for producing such a substrate
US9936201B2 (en) * 2015-01-27 2018-04-03 Qualcomm Incorporated Contexts for large coding tree units
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
EP3308540B1 (en) 2015-06-09 2020-04-15 Microsoft Technology Licensing, LLC Robust encoding/decoding of escape-coded pixels in palette mode
EP3310055A4 (en) * 2015-06-09 2018-06-20 Huawei Technologies Co. Ltd. Image encoding/decoding method and apparatus
US10091506B2 (en) * 2015-06-11 2018-10-02 Sony Corporation Data-charge phase data compression architecture
CN109274974B (zh) 2015-09-29 2022-02-11 华为技术有限公司 图像预测的方法及装置
CN116489350B (zh) 2015-11-20 2026-01-06 韩国电子通信研究院 对图像进行编/解码的方法和装置
US11695958B2 (en) * 2016-02-01 2023-07-04 Lg Electronics Inc. Method and apparatus for encoding/decoding video signal by using edge-adaptive graph-based transform
US10390015B2 (en) * 2016-08-26 2019-08-20 Qualcomm Incorporated Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
CN109952761B (zh) * 2016-09-20 2022-04-15 株式会社Kt 用于处理视频信号的方法和装置
US10880552B2 (en) 2016-09-28 2020-12-29 Lg Electronics Inc. Method and apparatus for performing optimal prediction based on weight index
US20200045305A1 (en) * 2016-09-30 2020-02-06 Lg Electronics Inc. Picture processing method and apparatus for same
KR20190052128A (ko) 2016-10-04 2019-05-15 김기백 영상 데이터 부호화/복호화 방법 및 장치
US10785477B2 (en) * 2016-10-06 2020-09-22 Lg Electronics Inc. Method for processing video on basis of inter prediction mode and apparatus therefor
KR20180045530A (ko) 2016-10-26 2018-05-04 디지털인사이트 주식회사 임의의 블록 분할을 사용하는 비디오 코딩 방법 및 장치
CN117119179A (zh) * 2016-11-18 2023-11-24 株式会社Kt 视频解码方法、视频编码方法和压缩视频数据发送设备
CN116744022A (zh) 2016-11-25 2023-09-12 株式会社Kt 用于对视频进行编码和解码的方法
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US10715827B2 (en) * 2017-01-06 2020-07-14 Mediatek Inc. Multi-hypotheses merge mode
US10943100B2 (en) 2017-01-19 2021-03-09 Mindmaze Holding Sa Systems, methods, devices and apparatuses for detecting facial expression
WO2018142228A2 (en) 2017-01-19 2018-08-09 Mindmaze Holding Sa Systems, methods, apparatuses and devices for detecting facial expression and for tracking movement and location including for at least one of a virtual and augmented reality system
CN110892408A (zh) * 2017-02-07 2020-03-17 迈恩德玛泽控股股份有限公司 用于立体视觉和跟踪的系统、方法和装置
KR20230143626A (ko) 2017-03-22 2023-10-12 한양대학교 산학협력단 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법
KR102774043B1 (ko) * 2017-03-31 2025-02-27 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법 및 화상 복호 방법
US10630978B2 (en) * 2017-05-12 2020-04-21 Blackberry Limited Methods and devices for intra-coding in video compression
JP7147145B2 (ja) * 2017-09-26 2022-10-05 富士通株式会社 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
KR102524628B1 (ko) 2018-01-05 2023-04-21 에스케이텔레콤 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
CN115002459B (zh) * 2018-01-05 2025-09-09 Sk电信有限公司 视频解码设备、视频编码设备和非暂时性计算机可读介质
US11328533B1 (en) 2018-01-09 2022-05-10 Mindmaze Holding Sa System, method and apparatus for detecting facial expression for motion capture
CN118264797A (zh) * 2018-02-28 2024-06-28 弗劳恩霍夫应用研究促进协会 合成式预测及限制性合并
CN114697653B (zh) * 2018-03-05 2023-11-14 松下电器(美国)知识产权公司 编码装置、解码装置和存储介质
KR20240169129A (ko) * 2018-03-27 2024-12-02 (주)휴맥스 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치
NZ769114A (en) * 2018-04-01 2022-04-29 B1 Institute Image Technology Inc Method and apparatus for encoding/decoding image
US10659781B2 (en) * 2018-04-02 2020-05-19 Tencent America LLC Concatenated coding units in flexible tree structure
CN110505482B (zh) * 2018-05-16 2021-10-26 华为技术有限公司 一种编解码方法及装置
TWI764015B (zh) * 2018-07-13 2022-05-11 弗勞恩霍夫爾協會 分區框內寫碼技術
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding
TWI840401B (zh) 2018-08-26 2024-05-01 大陸商北京字節跳動網絡技術有限公司 基於多運動模型的跳過和直接模式編碼的視頻塊中的修剪
FR3086485A1 (fr) * 2018-09-21 2020-03-27 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image.
WO2020060374A1 (ko) * 2018-09-21 2020-03-26 엘지전자 주식회사 어파인 예측을 이용하여 비디오 신호를 처리하기 위한 방법 및 장치
KR102795463B1 (ko) * 2018-09-24 2025-04-15 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 종속 스칼라 양자화를 사용하거나 이와 조합하는 데에 적합한 변환 계수의 효율적인 코딩
CN110944171B (zh) * 2018-09-25 2023-05-09 华为技术有限公司 一种图像预测方法和设备
WO2020067835A1 (ko) * 2018-09-28 2020-04-02 엘지전자 주식회사 어파인 예측을 이용하여 비디오 신호를 처리하기 위한 방법 및 장치
JP7230189B2 (ja) 2018-10-08 2023-02-28 エルジー エレクトロニクス インコーポレイティド シンタックスデザイン方法及びシンタックスを用いてコーディングを行う装置
CN112913247B (zh) * 2018-10-23 2023-04-28 北京字节跳动网络技术有限公司 使用局部照明补偿的视频处理
CN112868238B (zh) 2018-10-23 2023-04-21 北京字节跳动网络技术有限公司 局部照明补偿和帧间预测编解码之间的并置
CN119743590A (zh) 2018-10-29 2025-04-01 华为技术有限公司 一种视频图像预测方法及装置
US10931958B2 (en) 2018-11-02 2021-02-23 Fungible, Inc. JPEG accelerator using last-non-zero (LNZ) syntax element
US10827191B2 (en) 2018-11-02 2020-11-03 Fungible, Inc. Parallel coding of syntax elements for JPEG accelerator
US10848775B2 (en) 2018-11-02 2020-11-24 Fungible, Inc. Memory layout for JPEG accelerator
US10827192B2 (en) * 2018-11-02 2020-11-03 Fungible, Inc. Work allocation for JPEG accelerator
CN113273198B (zh) 2018-11-06 2024-10-18 交互数字Vc控股公司 用于视频编码和解码的多个编解码单元之间的参数分组
US20220014778A1 (en) * 2018-11-30 2022-01-13 Interdigital Vc Holdings, Inc. Unified process and syntax for generalized prediction in video coding/decoding
US11115652B2 (en) 2018-12-07 2021-09-07 Tencent America LLC Method and apparatus for further improved context design for prediction mode and coded block flag (CBF)
CN118741098A (zh) 2018-12-12 2024-10-01 数码士有限公司 使用当前图片参考的视频信号处理方法和设备
US10893298B2 (en) 2018-12-12 2021-01-12 Tencent America LLC Method and apparatus for video coding
US10904549B2 (en) 2018-12-13 2021-01-26 Tencent America LLC Method and apparatus for signaling of multi-hypothesis for skip and merge mode and signaling of distance offset table in merge with motion vector difference
KR102625145B1 (ko) * 2018-12-17 2024-01-16 삼성전자주식회사 예측 모드를 시그널링하는 비디오 신호 처리 방법 및 장치
CN118945342A (zh) 2018-12-20 2024-11-12 瑞典爱立信有限公司 视频编码和解码中改进的片地址信令
WO2020127811A2 (en) * 2018-12-20 2020-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Intra predictions using linear or affine transforms with neighbouring sample reduction
CN113302918B (zh) 2019-01-15 2025-01-17 北京字节跳动网络技术有限公司 视频编解码中的加权预测
JP7277590B2 (ja) * 2019-01-18 2023-05-19 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド モーション補償を用いたビデオ信号処理方法及び装置
KR102874728B1 (ko) * 2019-02-19 2025-10-22 (주)휴맥스 인트라 예측 기반 비디오 신호 처리 방법 및 장치
WO2020180102A1 (ko) 2019-03-04 2020-09-10 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치
US12120289B2 (en) 2019-08-21 2024-10-15 Lg Electronics Inc. Image encoding/decoding method and device for performing prediction on basis of HMVP candidate, and method for transmitting bitstream
CN111050165B (zh) * 2019-11-29 2022-02-22 苏州浪潮智能科技有限公司 一种视频解码的方法、设备及介质
CN119545020A (zh) * 2020-02-25 2025-02-28 Lg电子株式会社 图像解码和编码设备及发送用于图像信息的数据的设备
US11405628B2 (en) * 2020-04-06 2022-08-02 Tencent America LLC Method and apparatus for video coding
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
US12225205B2 (en) * 2021-06-18 2025-02-11 Tencent America LLC Block-wise entropy coding method in neural image compression
WO2023135518A1 (en) * 2022-01-12 2023-07-20 Nokia Technologies Oy High-level syntax of predictive residual encoding in neural network compression
US12340485B1 (en) 2022-09-20 2025-06-24 Apple Inc. Graphics geometry processing with segmented and non-segmented sets of work
CN116405182A (zh) * 2023-04-12 2023-07-07 东北大学 基于递归结构和分块思想的可逆信息隐藏方法
WO2025038308A1 (en) * 2023-08-14 2025-02-20 Google Llc Direct frame prediction with residual coding
US20250104284A1 (en) * 2023-09-27 2025-03-27 Sony Interactive Entertainment LLC High quality transcode-efficient texture format

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3353968B2 (ja) 1992-09-25 2002-12-09 オリンパス光学工業株式会社 画像処理装置
JPH08298665A (ja) 1994-04-21 1996-11-12 Sanyo Electric Co Ltd 動きベクトル検出回路、検出方法、及び動画像圧縮回路
US6026232A (en) 1995-07-13 2000-02-15 Kabushiki Kaisha Toshiba Method and system to replace sections of an encoded video bitstream
KR100287868B1 (ko) 1998-06-17 2001-05-02 구자홍 디지털 저장 매체의 신호 기록재생장치
JP3561485B2 (ja) * 2000-08-18 2004-09-02 株式会社メディアグルー 符号化信号分離・合成装置、差分符号化信号生成装置、符号化信号分離・合成方法、差分符号化信号生成方法、符号化信号分離・合成プログラムを記録した媒体および差分符号化信号生成プログラムを記録した媒体
EP2262269B1 (en) 2001-12-17 2018-01-24 Microsoft Technology Licensing, LLC Skip macroblock coding
JP4088205B2 (ja) 2002-06-11 2008-05-21 松下電器産業株式会社 符号化装置、コンピュータ読取可能なプログラム、符号化方法。
WO2004073312A1 (en) * 2003-02-17 2004-08-26 Koninklijke Philips Electronics N.V. Video coding
US20060047522A1 (en) 2004-08-26 2006-03-02 Nokia Corporation Method, apparatus and computer program to provide predictor adaptation for advanced audio coding (AAC) system
US8948266B2 (en) 2004-10-12 2015-02-03 Qualcomm Incorporated Adaptive intra-refresh for digital video encoding
EP1647937A1 (en) * 2004-10-15 2006-04-19 Sony Deutschland GmbH Method for motion estimation
US7551772B2 (en) * 2004-11-30 2009-06-23 Hewlett-Packard Development Company, L.P. Blur estimation in a digital image
KR101246915B1 (ko) * 2005-04-18 2013-03-25 삼성전자주식회사 동영상 부호화 또는 복호화 방법 및 장치
CN101375605A (zh) * 2006-01-31 2009-02-25 汤姆森许可贸易公司 用于实现降低分辨率更新模式的限制预测以及视频编码器和解码器中的复杂度可分级的方法和装置
KR20090005001A (ko) 2006-04-21 2009-01-12 가부시끼가이샤 도시바 엔트로피 부호화 방법 및 장치와, 엔트로피 복호화 방법 및장치
US20080025390A1 (en) * 2006-07-25 2008-01-31 Fang Shi Adaptive video frame interpolation
JP4956304B2 (ja) 2006-08-08 2012-06-20 キヤノン株式会社 画像符号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
CN101168276A (zh) 2006-10-23 2008-04-30 乔小刚 一种可回收压铸成型的家具支柱或底座的制作方法
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
JP4774382B2 (ja) * 2007-05-08 2011-09-14 株式会社リコー 画像処理装置、画像処理回路、及び、画像処理方法
JP5801054B2 (ja) * 2007-06-12 2015-10-28 トムソン ライセンシングThomson Licensing スライスデータ用のマルチパスビデオのシンタックス構造をサポートする方法及び装置
KR101568708B1 (ko) * 2007-09-02 2015-11-12 엘지전자 주식회사 비디오 신호처리 방법 및 장치
US7710296B2 (en) * 2007-09-19 2010-05-04 Texas Instruments Incorporated N-bin arithmetic coding for context adaptive binary arithmetic coding
CN101415115B (zh) * 2007-10-15 2011-02-02 华为技术有限公司 基于运动跳跃模式的视频编解码方法及其编解码器
US20090162973A1 (en) 2007-12-21 2009-06-25 Julien Gatineau Germanium precursors for gst film deposition
EP2232875A2 (en) 2008-01-11 2010-09-29 Thomson Licensing Video and depth coding
JP5071721B2 (ja) 2008-02-27 2012-11-14 ソニー株式会社 画像処理装置および方法、並びにプログラム
US8699562B2 (en) * 2008-10-06 2014-04-15 Lg Electronics Inc. Method and an apparatus for processing a video signal with blocks in direct or skip mode
TWI370410B (en) * 2008-12-30 2012-08-11 Ind Tech Res Inst Image processing method for providing depth information
US8873626B2 (en) 2009-07-02 2014-10-28 Qualcomm Incorporated Template matching for video coding
US20110090954A1 (en) * 2009-10-21 2011-04-21 Cohen Robert A Video Codes with Directional Transforms
CN101835044B (zh) * 2010-04-23 2012-04-11 南京邮电大学 一种频率域分布式视频编码中的分类组合方法
EP2858366B1 (en) * 2010-07-09 2017-02-01 Samsung Electronics Co., Ltd Method for decoding video by using block merging
KR101484281B1 (ko) * 2010-07-09 2015-01-21 삼성전자주식회사 블록 병합을 이용한 비디오 부호화 방법 및 그 장치, 블록 병합을 이용한 비디오 복호화 방법 및 그 장치
HUE072362T2 (hu) * 2010-11-04 2025-11-28 Ge Video Compression Llc Blokkegyesítési és kihagyási módot támogató képkódolás
KR102257335B1 (ko) * 2010-11-25 2021-05-27 엘지전자 주식회사 영상 정보의 시그널링 방법 및 이를 이용한 영상 정보의 복호화 방법
US20120189052A1 (en) * 2011-01-24 2012-07-26 Qualcomm Incorporated Signaling quantization parameter changes for coded units in high efficiency video coding (hevc)
US20120195366A1 (en) 2011-02-01 2012-08-02 Mediatek Singapore Pte. Ltd. Method and Apparatus of Adaptive Inter Mode Coding Using Variable Length Codes
US9648334B2 (en) * 2011-03-21 2017-05-09 Qualcomm Incorporated Bi-predictive merge mode based on uni-predictive neighbors in video coding

Also Published As

Publication number Publication date
CN103299623A (zh) 2013-09-11
JP7381513B2 (ja) 2023-11-15
US12137242B2 (en) 2024-11-05
HUE063103T2 (hu) 2023-12-28
US20170366821A1 (en) 2017-12-21
DK3962088T3 (da) 2023-09-18
TWI725348B (zh) 2021-04-21
KR20130084314A (ko) 2013-07-24
CN107071486A (zh) 2017-08-18
PL4398571T3 (pl) 2025-10-13
JP2026053421A (ja) 2026-03-25
US20180302642A1 (en) 2018-10-18
TWI799816B (zh) 2023-04-21
US9788009B2 (en) 2017-10-10
CN106851320A (zh) 2017-06-13
JP2016029824A (ja) 2016-03-03
US20130279577A1 (en) 2013-10-24
JP6258704B2 (ja) 2018-01-10
TW202201963A (zh) 2022-01-01
EP4398570A3 (en) 2024-09-04
PL2636218T3 (pl) 2022-01-03
CN107071488B (zh) 2020-06-09
KR102286294B1 (ko) 2021-08-06
KR102648076B1 (ko) 2024-03-18
KR102405537B1 (ko) 2022-06-08
US20200186826A1 (en) 2020-06-11
EP3962088A1 (en) 2022-03-02
KR20220076542A (ko) 2022-06-08
RS62555B1 (sr) 2021-12-31
KR20140142362A (ko) 2014-12-11
JP6727238B2 (ja) 2020-07-22
EP3962088B1 (en) 2023-06-21
JP2013542691A (ja) 2013-11-21
PT2636218T (pt) 2021-10-06
KR101607426B1 (ko) 2016-03-29
EP4398571B1 (en) 2025-06-18
JP6856554B2 (ja) 2021-04-07
TW202333499A (zh) 2023-08-16
KR20190053298A (ko) 2019-05-17
US20210006821A1 (en) 2021-01-07
US10382776B2 (en) 2019-08-13
EP4712475A2 (en) 2026-03-18
PL3962088T3 (pl) 2023-11-27
RS64610B1 (sr) 2023-10-31
KR20210099179A (ko) 2021-08-11
ES2891598T3 (es) 2022-01-28
HUE072408T2 (hu) 2025-11-28
HK1245543A1 (zh) 2018-08-24
EP4270957A2 (en) 2023-11-01
EP2636218B1 (en) 2021-06-30
EP4398570C0 (en) 2025-06-18
ES3038310T3 (en) 2025-10-10
PT3962088T (pt) 2023-09-25
TW202333498A (zh) 2023-08-16
CN107071491B (zh) 2020-11-03
EP4398569A3 (en) 2024-09-04
EP4398569C0 (en) 2025-06-18
CN103299623B (zh) 2017-03-08
CN107105304A (zh) 2017-08-29
US20180184111A1 (en) 2018-06-28
TW201230812A (en) 2012-07-16
KR102126374B1 (ko) 2020-06-24
KR20180098703A (ko) 2018-09-04
CN107071488A (zh) 2017-08-18
DK2636218T3 (da) 2021-10-04
PL4398569T3 (pl) 2025-10-13
US20190158871A1 (en) 2019-05-23
CN107105303B (zh) 2020-05-15
LT2636218T (lt) 2021-12-10
KR101894355B1 (ko) 2018-09-04
TW202431850A (zh) 2024-08-01
US20190246136A1 (en) 2019-08-08
CN106851320B (zh) 2020-06-02
CN107071492B (zh) 2020-11-27
HUE072351T2 (hu) 2025-11-28
TWI559740B (zh) 2016-11-21
US10382777B2 (en) 2019-08-13
KR102024178B1 (ko) 2019-09-23
ES3038304T3 (en) 2025-10-10
SI2636218T1 (sl) 2021-12-31
US10602182B2 (en) 2020-03-24
CN107071489A (zh) 2017-08-18
CN107071487B (zh) 2020-09-15
US10027976B2 (en) 2018-07-17
HUE056453T2 (hu) 2022-02-28
PL4398570T3 (pl) 2025-10-13
CN107071486B (zh) 2020-10-30
EP4398569A2 (en) 2024-07-10
JP6659298B2 (ja) 2020-03-04
US20250097453A1 (en) 2025-03-20
CN107071492A (zh) 2017-08-18
EP4270957B1 (en) 2026-04-15
US20160309179A1 (en) 2016-10-20
KR101527666B1 (ko) 2015-06-09
EP4398569B1 (en) 2025-06-18
ES3038305T3 (en) 2025-10-10
US20240146954A1 (en) 2024-05-02
CN107105303A (zh) 2017-08-29
TW201626793A (zh) 2016-07-16
EP4398571C0 (en) 2025-06-18
KR101603860B1 (ko) 2016-03-15
TWI832743B (zh) 2024-02-11
KR20140142363A (ko) 2014-12-11
TW201717617A (zh) 2017-05-16
JP2018082468A (ja) 2018-05-24
TW201929548A (zh) 2019-07-16
TWI513277B (zh) 2015-12-11
CN107071490A (zh) 2017-08-18
CN107071490B (zh) 2020-07-14
KR20160037246A (ko) 2016-04-05
WO2012059577A1 (en) 2012-05-10
HUE072362T2 (hu) 2025-11-28
TWI644561B (zh) 2018-12-11
KR20200075901A (ko) 2020-06-26
LT3962088T (lt) 2023-10-10
JP6659299B2 (ja) 2020-03-04
CN107105304B (zh) 2020-06-09
EP4270957A3 (en) 2024-06-19
JP2016029823A (ja) 2016-03-03
EP4398571A3 (en) 2024-09-04
US11785246B2 (en) 2023-10-10
US9924193B2 (en) 2018-03-20
US10841608B2 (en) 2020-11-17
JP2018082467A (ja) 2018-05-24
EP2636218A1 (en) 2013-09-11
JP7791149B2 (ja) 2025-12-23
EP4398571A2 (en) 2024-07-10
FI3962088T3 (fi) 2023-09-20
EP4398570A2 (en) 2024-07-10
CN107071487A (zh) 2017-08-18
TWI833626B (zh) 2024-02-21
KR20240038124A (ko) 2024-03-22
SI3962088T1 (sl) 2023-10-30
CN107071489B (zh) 2020-10-30
CN107071491A (zh) 2017-08-18
JP2021101571A (ja) 2021-07-08
US10785500B2 (en) 2020-09-22
JP2024020281A (ja) 2024-02-14
EP4398570B1 (en) 2025-06-18

Similar Documents

Publication Publication Date Title
ES2955542T3 (es) Codificación de instantánea que soporta unión de bloques y modo de salto
ES3016814T3 (en) Picture coding supporting block partitioning and block merging
HK40102379A (en) Picture coding supporting block merging and skip mode
HK40069342A (en) Picture coding supporting block merging and skip mode
HK40069342B (en) Picture coding supporting block merging and skip mode