ES2859635T3 - Codificación de imágenes que soporta particionamiento de bloques y fusión de bloques - Google Patents

Codificación de imágenes que soporta particionamiento de bloques y fusión de bloques Download PDF

Info

Publication number
ES2859635T3
ES2859635T3 ES11767016T ES11767016T ES2859635T3 ES 2859635 T3 ES2859635 T3 ES 2859635T3 ES 11767016 T ES11767016 T ES 11767016T ES 11767016 T ES11767016 T ES 11767016T ES 2859635 T3 ES2859635 T3 ES 2859635T3
Authority
ES
Spain
Prior art keywords
block
partition
encoding
encoding parameters
candidate
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
ES11767016T
Other languages
English (en)
Inventor
Heiko Schwarz
Philipp Helle
Detlev Marpe
Thomas Wiegand
Simon Oudin
Benjamin Bross
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.)
GE 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=44764172&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2859635(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 ES2859635T3 publication Critical patent/ES2859635T3/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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/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/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Selective Calling Equipment (AREA)
  • Channel Selection Circuits, Automatic Tuning Circuits (AREA)
  • Error Detection And Correction (AREA)

Abstract

Decodificador (80) configurado para decodificar un tren de bits (30) que señala uno de los patrones de particionamiento soportados para un bloque actual (40) de una imagen (20), estando el decodificador configurado para si el señalado de los patrones de particionamiento soportados especifica una subdivisión del bloque actual (40) en dos o más particiones de bloque (50, 60), para cada una de las particiones de bloque excepto una primera partición de bloque de las particiones de bloque del bloque actual en un orden de codificación (70), determinar, para la partición de bloque respectiva (60) del bloque actual, un conjunto de candidatos a parámetros de codificación, donde al menos algunos candidatos a parámetros de codificación se adoptan a partir de los parámetros de codificación de simplemente una partición de bloque previamente decodificada de modo que al menos algunos candidatos a parámetros de codificación sean iguales a los parámetros de codificación de dicha simplemente una partición de bloque previamente decodificada, y eliminar del conjunto de candidatos a parámetros de codificación para la partición de bloque respectiva (60), los candidatos a parámetros de codificación que son iguales a los parámetros de codificación asociados con cualquiera de las particiones de bloque que, al fusionarse con la partición de bloque respectiva (60), darían como resultado uno de los patrones de particionamiento soportados, caracterizado porque la determinación del conjunto de candidatos a parámetros de codificación de la partición de bloque respectiva (60) del bloque actual comprende además derivar al menos algunos candidatos a parámetros de codificación adicionales de una combinación de parámetros de codificación de más de una partición de bloque previamente decodificada, o de - por modificación - parámetros de codificación de una partición previamente decodificada.

Description

DESCRIPCIÓN
Codificación de imágenes que soporta particionamiento de bloques y fusión de bloques
[0001] La presente solicitud se refiere a la codificación de imagen y/o vídeo y, en particular, códecs que soportan particionamiento de bloques y fusión de bloques.
[0002] Muchos códecs de imagen y/o vídeo tratan las imágenes en conjuntos de bloques. Por ejemplo, los códecs predictivos usan una granularidad de bloque con el fin de lograr un buen compromiso entre parámetros de predicción establecidos con mucha precisión establecidos a una alta resolución espacial gastando, pero gastando demasiada información conexa para los parámetros de predicción por un lado y parámetros de predicción establecidos demasiado de manera demasiado aproximada, haciendo que la cantidad de bits necesarios para codificar el residuo de predicción aumente debido a la menor resolución espacial de los parámetros de predicción, por otro lado. En efecto, el ajuste óptimo para los parámetros de predicción se encuentra en algún lugar entre ambos extremos.
[0003] Se han hecho varios intentos con el fin de obtener la solución óptima para el problema descrito anteriormente. Por ejemplo, en lugar de usar una subdivisión regular de una imagen en bloques dispuestos regularmente en filas y columnas, la subdivisión de particionamiento multiárbol busca aumentar la libertad de subdividir una imagen en bloques a una demanda razonable de información de subdivisión. Sin embargo, incluso la subdivisión multiárbol requiere la señalización de una cantidad notable de datos y la libertad de subdividir una imagen está bastante restringida, incluso en caso de usar tal subdivisión multiárbol.
[0004] Con el fin de permitir una mejor solución de compromiso entre la cantidad de información conexa necesaria con el fin de señalizar la subdivisión de imagen por un lado y la libertad de subdividir la imagen por otro lado, se puede usar la fusión de bloques con el fin de aumentar el número de subdivisiones de imagen posibles a una cantidad razonable de datos adicionales necesarios con el fin de señalizar la información de fusión. Para los bloques que se fusionan, los parámetros de codificación deben transmitirse dentro del tren de bits en su totalidad solo una vez, de manera similar como si el grupo fusionado resultante de bloques fuera una porción directamente subdividida de la imagen.
[0005] Sin embargo, todavía hay una necesidad de lograr mejor eficiencia de codificación, debido a las redundancias restantes recién causadas por la combinación de fusión de bloques y subdivisión de bloques.
[0006] LI B Y COL, «Redundancy reduction in Cbf and merge coding», JCTVC-C277, describe una propuesta para el estándar HEVC según la cual la codificación de fusión está restringida en la medida en que un particionamiento de un conjunto de codificación en dos conjuntos de predicción está restringida en la medida en que una primera subpartición en orden de partición puede no ser un candidato a fusión del segundo conjunto de predicción en orden de partición.
[0007] DE FORNI R Y COL, «On the Benefits of Leaf Merging in Quad-Tree Motion Models», IMAGE PROCESSING, 2005, describe un procedimiento de fusión de hojas como una extensión de una subdivisión de árbol cuádruple con el fin de codificar el movimiento de un vídeo. Con el fin de evitar redundancias entre la subdivisión de árbol cuádruple por un lado y la fusión de hojas por otro, este artículo propone permitir la fusión solo con hojas vecinas inmediatas de un tamaño mayor, o del mismo tamaño, pero con un padre diferente.
[0008] Por lo tanto, el objeto de la presente invención es proporcionar un concepto de codificación que tiene una eficiencia de codificación aumentada. Este objeto se soluciona por las reivindicaciones independientes pendientes.
[0009] La idea subyacente a la presente invención es que se puede lograr un aumento adicional de la eficiencia de codificación si para un bloque actual de una imagen, para el cual el tren de bits señala uno de los patrones de particionamiento soportados, se evita una inversión del particionamiento mediante fusión de bloques. En particular, si el señalado de los patrones de particionamiento soportados especifica una subdivisión del bloque en dos o más bloques adicionales, se realiza una eliminación de determinados candidatos a parámetros de codificación para todos los bloques adicionales, excepto un primer bloque adicional de los bloques adicionales en un orden de codificación. En particular, esos candidatos a parámetros de codificación se eliminan del conjunto de candidatos a parámetros de codificación para el bloque adicional respectivo, cuyos parámetros de codificación son los mismos que los parámetros de codificación asociados con cualquiera de los bloques adicionales que, al fusionarse con el bloque adicional respectivo, darían como resultado uno del patrón de particionamiento soportado. Mediante esta medida, se evita la redundancia entre codificación de particionamiento y codificación de fusión y la tara de señalización para señalar la información de fusión puede reducirse adicionalmente explotando el tamaño reducido del conjunto de candidatos a parámetros de codificación. Además, se mantienen los efectos positivos de combinar el particionamiento de bloques con la fusión de bloques. Es decir, debido a la combinación del particionamiento de bloques con la fusión de bloques, la variedad de patrones de particionamiento alcanzables aumenta con respecto al caso sin fusión de bloques. El aumento de la tara de señalización se mantiene en límites razonables. Por último, la fusión de bloques permite unir bloques adicionales más allá del límite del bloque actual, ofreciendo así granularidades que no serían posibles sin fusión de bloques.
[0010] Implementaciones ventajosas de la presente invención son el tema de las reivindicaciones dependientes adjuntas.
[0011] A continuación, se describen realizaciones preferidas de la presente solicitud con más detalle con respecto a las figuras, entre las que:
la Fig. 1 muestra un diagrama de bloques de un codificador según una realización;
la Fig. 2 muestra un diagrama de bloques de un decodificador según una realización;
la Fig. 3 muestra un diagrama de bloques de una posible estructura interna del codificador de la Fig. 1;
la Fig. 4 muestra un diagrama de bloques de una posible estructura interna del decodificador de la Fig.2;
la Fig. 5a muestra esquemáticamente una posible subdivisión de una imagen en bloques de raíz arbórea, conjuntos de codificación (bloques) y conjuntos de predicción (particiones);
la Fig. 5b muestra un árbol de subdivisión del bloque de raíz arbórea mostrado en la Fig. 5a, hasta el nivel de las particiones, de acuerdo con un ejemplo ilustrativo;
la Fig. 6 muestra un ejemplo para un conjunto de posibles patrones de particionamiento soportados;
la Fig. 7 muestra posibles patrones de particionamiento que resultan efectivamente de combinar la fusión de bloques y la partición de bloques cuando se usa el particionamiento de bloques de acuerdo con la Fig. 6;
la Fig. 8 muestra esquemáticamente los bloques candidatos para un modo de SALTO/DIRECTO;
las Figs. 9-11 muestran porciones de sintaxis de una sintaxis de acuerdo con una realización de comparación; y la Fig. 12 muestra esquemáticamente la definición de particiones vecinas para una partición.
[0012] Con respecto a la siguiente descripción, se observa que siempre que se utilice el mismo signo de referencia en relación con diferentes figuras, las explicaciones con respecto al elemento respectivo presentado con respecto a una de estas figuras se aplicarán igualmente a las otras figuras, siempre que dicha transferencia de explicaciones de una figura a la otra no entre en conflicto con la descripción restante de esta otra figura.
[0013] Las realizaciones de la presente invención se describen, entre otros, en las figuras 1 y 2 y en los pasajes correspondientes de la descripción.
[0014] Cabe señalar que, en general, en la descripción, la expresión «realización» debe entenderse como que significa «ejemplo» a menos que se use para referirse a la materia que está dentro del alcance de las reivindicaciones adjuntas. En otras palabras, cualquier enseñanza que no esté dentro del alcance de las reivindicaciones adjuntas se presenta solo para proporcionar ejemplos adicionales y no pertenece a la invención.
[0015] La Fig. 1 muestra un codificador 10 según una realización de la presente invención. El codificador 10 está configurado para codificar una imagen 20 en un tren de bits 30. Naturalmente, la imagen 20 podría ser parte de un vídeo, en cuyo caso el codificador sería un codificador de vídeo.
[0016] La imagen 20 comprende un bloque 40 que actualmente va a ser codificado por el codificador 10. Tal como se muestra en la Fig. 1, la imagen 20 puede comprender más de un bloque 40. Por ejemplo, la imagen 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 ejemplar en la Fig. 1. Sin embargo, también puede ser posible cualquier otra subdivisión de la imagen 20 en bloques 40. En particular, la subdivisión de la imagen 20 en bloques 40 puede ser fija, es decir, conocida por el decodificador de forma predeterminada o puede señalarse dentro del tren de bits 30 al decodificador. En particular, los bloques 40 de la imagen 20 pueden variar de tamaño. Por ejemplo, una subdivisión de múltiples árboles, tal como una subdivisión de árbol cuádruple puede aplicarse a la imagen 20 o a una presubdivisión regular de la imagen 20 en bloques de raíz arbórea dispuestos regularmente para obtener bloques 40 que, en este caso, forman los bloques de hojas de la subdivisión de múltiples árboles.
[0017] En cualquier caso, el codificador 10 está configurado para señalar dentro del tren de bits 30 uno de los patrones de particionamiento soportados para el bloque actual 40. Es decir, el codificador 10 decide si en algunos, por ejemplo, el sentido de optimización de distorsión de velocidad es mejor para particionar adicionalmente el bloque 40, y en cuanto a cuál de los patrones de particionamiento soportados se debería usar para un bloque actual 40 con el fin de adaptar la granularidad en la que se establecen determinados parámetros de codificación dentro del bloque actual 40 de la imagen 20. Como se describirá con más detalle a continuación, los parámetros de codificación pueden, por ejemplo, representar parámetros de predicción tales como parámetros de predicción inter. Tales parámetros de predicción inter pueden, por ejemplo, comprender un índice de imagen de referencia, un vector de movimiento y similares. Los patrones de particionamiento soportados pueden, por ejemplo, comprender un modo de no particionamiento, es decir, una opción según la cual el bloque actual 40 no se particiona adicionalmente, un modo de particionamiento horizontal, es decir, una opción según la cual el bloque actual 40 se subdivide a lo largo de una línea que se extiende horizontalmente en una porción más alta o superior y una porción inferior o más baja y un modo de particionamiento vertical, es decir, una opción según la cual 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. Más allá de esto, los patrones de particionamiento soportados también pueden comprender una opción según la cual el bloque actual 40 se subdivide además regularmente en cuatro bloques adicionales, cada uno asumiendo una cuarta parte del bloque actual 40. Además, el particionamiento puede pertenecer a todos los bloques 40 de la imagen 20 o simplemente un subconjunto adecuado de los mismos, tales como los que tienen un cierto modo de codificación asociado con los mismos, tal como el modo de predicción inter. Además, el conjunto de posibles bloques, para los cuales se aplicará la fusión para la o las particiones del bloque, puede limitarse adicionalmente mediante señalización de tren de bits para cada bloque 40 para el cual se podría realizar la fusión, en cuanto a si la fusión estará disponible para las particiones del bloque o no. Naturalmente, tal señalización también podría hacerse para cada partición candidata a fusión potencial individualmente. Además, diferentes subconjuntos de los modos de particionamiento soportados pueden estar disponibles para los bloques 40, dependiendo, por ejemplo, del tamaño del bloque, el nivel de subdivisión del bloque 40 en caso de que el mismo sea un bloque de hoja de subdivisión de múltiples árboles, en combinación o individualmente.
[0018] Es decir, mientras que la subdivisión de la imagen 20 en bloques para obtener, entre otras cosas, el bloque 40 puede fijarse o señalarse dentro del tren de bits, el patrón de particionamiento que se usará para el bloque actual 40 se señala dentro del tren de bits 30 en forma de información de particionamiento. Por consiguiente, la información de particionamiento puede, por lo tanto, considerarse como una especie de extensión de la subdivisión de la imagen 20 en bloques 40. Por otro lado, aún puede permanecer una relevancia adicional de la granularidad original de subdivisión de la imagen 20 en bloques 40. Por ejemplo, el codificador 10 puede configurarse para señalizar dentro del tren de bits 30 el modo de codificación que se usará para la porción respectiva o el bloque 40 de la imagen 20 en la granularidad definida por el bloque 40 mientras que el codificador 10 está configurado para variar los parámetros de codificación del modo de codificación respectivo dentro del bloque respectivo 40 en una granularidad aumentada (más fina) definida por el patrón de particionamiento respectivo elegido para el bloque respectivo 40. Por ejemplo, el modo de codificación señalado en la granularidad de los bloques 40 puede distinguir entre el modo de predicción intra, el modo de predicción inter y similares, tal como el modo de predicción inter temporal, el modo de predicción inter-vista, etc. El tipo de parámetros de codificación asociados con el uno o más sub-bloques (particiones) resultantes del particionamiento del bloque respectivo 40, entonces depende del modo de codificación asignado al bloque respectivo 40. Por ejemplo, para un bloque intracodificado 40, los parámetros de codificación pueden comprender una dirección espacial a lo largo de la cual se usa el contenido de imagen de porciones previamente decodificadas de la imagen 20 para llenar el bloque respectivo 40. En el caso de un bloque intercodificado 40, los parámetros de codificación pueden comprender, entre otras cosas, un vector de movimiento para la predicción de movimiento compensado.
[0019] La Fig. 1 muestra de manera ejemplar que el bloque actual 40 está subdividido en dos bloques adicionales (más pequeños) 50 y 60. En particular, se muestra de manera ejemplar un modo de particionamiento vertical. Los bloques más pequeños 50 y 60 también se pueden denominar sub-bloques 50 y 60 o particiones 50 y 60 o conjuntos de predicción 50 y 60. En particular, el codificador 10 está configurado para eliminar, en aquellos casos en los que el señalado de los patrones de particionamiento soportados especifica una subdivisión del bloque actual 40 en dos o más bloques adicionales 50 y 60, para todos los bloques adicionales excepto un primer bloque adicional de los bloques adicionales 50 y 60 en un orden de codificación, de un conjunto de candidatos a parámetros de codificación para el bloque adicional respectivo, los candidatos a parámetros 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 bloques adicionales que, al fusionarse con los bloques adicionales respectivos, darían como resultado uno de los patrones de particionamiento soportados. Para ser más precisos, para cada uno de los patrones de particionamiento soportados se define un orden de codificación entre la una o más particiones resultantes 50 y 60. En el caso de la Fig. 1, el orden de codificación se ilustra de manera ejemplar mediante una flecha 70, que define que la partición izquierda 50 se codifica antes de la partición derecha 60. En caso de un modo de particionamiento horizontal, se podría definir que la partición superior se codifica antes de la partición inferior. En cualquier caso, el codificador 10 está configurado para eliminar para la segunda partición 60 en orden de codificación 70, del conjunto de candidatos a parámetros de codificación para la segunda partición respectiva 60, candidatos a parámetros 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 con el fin de evitar el resultado de esta fusión, concretamente el hecho de que ambas particiones 50 y 60 tendrían los mismos parámetros de codificación asociados con los mismos que, de hecho, podrían producir igualmente al elegir el modo de no particionamiento para el bloque actual 40 a una velocidad de codificación más baja.
[0020] Para ser más precisos, el codificador 10 está configurado para usar la fusión de bloques de una manera eficaz junto con el particionamiento de bloques. En lo que respecta a la fusión de bloques, el codificador 10 determina, para cada partición 50 y 60, un conjunto respectivo de candidatos a parámetros de codificación. El codificador puede configurarse para determinar los conjuntos de candidatos a parámetros de codificación para cada una de las particiones 50 y 60 en función de los parámetros de codificación asociados con bloques previamente decodificados. En particular, al menos algunos de los candidatos a parámetros de codificación dentro de los conjuntos de candidatos a parámetros de codificación pueden ser iguales, es decir, pueden adoptarse a partir de los parámetros de codificación de particiones previamente decodificadas. Adicional o alternativamente, al menos algunos de los candidatos a parámetros de codificación pueden derivarse de candidatos a parámetros de codificación asociados con más de una partición previamente codificada, a través de una combinación adecuada, tal como una mediana, media o similar. Sin embargo, dado que el codificador 10 está configurado para realizar la determinación del conjunto reducido de candidatos a parámetros de codificación y, si más de uno de tales candidatos a parámetros de codificación permanece después de la eliminación, la elección entre los candidatos a parámetros de codificación no eliminados restantes, para cada una de las particiones no primeras 60 con el fin de establecer parámetros de codificación asociados con la partición respectiva dependiendo del candidato a parámetro de codificación no eliminado o elegido, el codificador 10 está configurado para realizar la eliminación de modo que se eliminen candidatos a parámetros de codificación que conducirían, efectivamente, a una reunificación de las particiones 50 y 60. Es decir, las constelaciones de sintaxis se evitan efectivamente según las cuales una situación de particionamiento efectivo se codifica más compleja que en el caso de señalar directamente este particionamiento simplemente mediante el uso de la información de particionamiento solamente.
[0021] Además, como los conjuntos de candidatos a parámetros de codificación se reducen, la cantidad de información conexa necesaria para codificar la información de fusión en el tren de bits 30 puede disminuir debido al menor número de elementos en estos conjuntos de candidatos. En particular, como el decodificador es capaz de determinar y posteriormente reducir los conjuntos de candidatos a parámetros de codificación de la misma manera que lo hace el codificador de la Fig. 1, el codificador 10 de la Fig. 1 es capaz de explotar los conjuntos reducidos de candidatos a parámetros de codificación mediante, por ejemplo, el uso de menos bits con el fin de insertar un elemento de sintaxis en el tren de bits 30, especificando cuál de los candidatos a parámetros de codificación no eliminados se empleará para la fusión. Naturalmente, la introducción del elemento de sintaxis en el tren de bits 30 puede suprimirse completamente en caso de que el número de candidatos a parámetros de codificación no eliminados para la partición respectiva sea simplemente uno. En cualquier caso, debido a la fusión, es decir, establecer los parámetros de codificación asociados con la partición respectiva dependiendo del restante, o elegido, de los candidatos a parámetros de codificación no eliminados, el codificador 10 es capaz de suprimir la inserción completamente nueva de parámetros de codificación para la partición respectiva en el tren de bits 30, reduciendo así la información conexa también. De acuerdo con algunas realizaciones de la presente solicitud, el codificador 10 puede configurarse para señalizar dentro del tren de bits 30 información de refinamiento para refinar el restante, o elegido de los candidatos a parámetros de codificación para las particiones respectivas.
[0022] De acuerdo con la descripción de la Fig. 1, como se estableció anteriormente, el codificador 10 está configurado para determinar los candidatos a fusión que se eliminarán mediante una comparación de sus parámetros de codificación con los parámetros de codificación de la partición, la fusión con los cuales produciría otro patrón de particionamiento soportado. Esta forma de tratar los candidatos a parámetros de codificación eliminaría, efectivamente, al menos un candidato a parámetro de codificación en el caso ilustrativo de la Fig. 1, por ejemplo, siempre que los parámetros de codificación de la partición izquierda 50 formen un elemento del conjunto de candidatos a parámetros de codificación para la partición derecha 60. Sin embargo, los candidatos a parámetros de codificación adicionales también pueden eliminarse 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 configurarse para determinar un conjunto de bloques candidatos para cada segunda partición y las siguientes en orden de codificación, con la eliminación de ese o esos bloques candidatos de este conjunto de bloques candidatos que, al fusionarse con la partición respectiva, darían como resultado uno de los patrones de particionamiento soportados. En cierto sentido, esto significa lo siguiente. Imaginémonos, por ejemplo, que el codificador 10 se configuró para determinar candidatos a fusión para una partición respectiva 50 o 60 (es decir, la primera y las siguientes en orden de codificación) de modo que cada elemento del conjunto de candidatos tenga exactamente una partición del bloque actual 40 o cualquiera de los bloques 40 previamente codificados, asociada con el mismo en el sentido de que el candidato adopte los parámetros de codificación respectivos de la partición asociada. Por ejemplo, cada elemento del conjunto de candidatos podría ser igual, es decir, adoptado a partir de, uno de tales parámetros de codificación de particiones previamente codificadas, o al menos podría derivarse de los parámetros de codificación de simplemente una de tales particiones previamente codificadas, tal como mediante escalado o refinamiento adicionales usando información de refinamiento enviada adicionalmente. Según las realizaciones de la presente invención, sin embargo, el codificador 10 está configurado para acompañar tal conjunto de candidatos con otros elementos o candidatos, concretamente candidatos a parámetros 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 elemento candidato respectivo y una partición respectiva. El codificador 10 está configurado para eliminar todos los candidatos de todo el conjunto de candidatos, cuyos parámetros de codificación son iguales a los parámetros de codificación de la partición 50. Por lo tanto, si una combinación también conduciría a una representación redundante, esto se resuelve realizando la verificación de redundancia para los candidatos combinados también.
[0023] Después de haber descrito un codificador según una realización de la presente invención, con referencia a la Fig. 2, se describe un decodificador 80 según una realización. El decodificador 80 de la Fig. 2 está configurado para decodificar el tren de bits 30 que, como se describió anteriormente, señala uno de los patrones de particionamiento soportados para un bloque actual 40 de la imagen 20. El decodificador 80 está configurado para, si el señalado del patrón de particionamiento soportado especifica una subdivisión del bloque actual 40 en dos o más particiones 50 y 60, eliminar para 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 Figs. 1 y 2, de un conjunto de candidatos a parámetros de codificación para los candidatos a parámetros de codificación de partición respectivos 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, al fusionarse con la partición respectiva, darían como resultado uno de los patrones de particionamiento soportados, concretamente uno que no se ha señalizado dentro del tren de bits 30 pero que es, sin embargo, uno de los patrones de particionamiento soportados.
[0024] Es decir, la funcionalidad del decodificador coincide en gran medida con la del codificador descrito con respecto a la Fig. 1. Por ejemplo, el decodificador 80 puede configurarse para, si un número de los candidatos a parámetros de codificación no eliminados es distinto de cero, establecer parámetros de codificación asociados con la partición respectiva 60 dependiendo de uno de los candidatos a parámetros no eliminados. 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 a parámetro de codificación no eliminado, con o sin refinamiento adicional y/o con o sin escalado de acuerdo con una distancia temporal a la que se refieren los parámetros de codificación, respectivamente. Por ejemplo, el candidato a parámetro de codificación que ha de fusionarse con los candidatos no eliminados, puede tener otro índice de imagen de referencia asociado con el mismo distinto de un índice de imagen de referencia señalado explícitamente dentro del tren de bits 30 para la partición 60. En ese caso, los parámetros de codificación de los candidatos a parámetros de codificación pueden definir vectores de movimiento, cada uno relacionado con un índice de imagen de referencia respectivo, y el decodificador 80 puede configurarse para escalar el vector de movimiento del candidato a parámetro de codificación no eliminado finalmente elegido de acuerdo con la relación entre ambos índices de imagen de referencia. Por lo tanto, de acuerdo con la alternativa recién mencionada, los parámetros de codificación que son sometidos a fusión abarcarían los parámetros de movimiento, mientras que los índices de imagen de referencia estarían separados de los mismos. Sin embargo, como se indicó anteriormente, de acuerdo con realizaciones alternativas, los índices de imagen de referencia también podrían ser una parte de los parámetros de codificación que son sometidos a fusión.
[0025] Se aplica igualmente para el codificador de la Fig. 1 y el decodificador de la Fig. 2 que el comportamiento de fusión puede restringirse a los bloques interpredichos 40. Por consiguiente, el decodificador 80 y el codificador 10 pueden configurarse para soportar modos de predicción intra e inter para el bloque actual 40 y realizar la fusión y eliminación de candidatos simplemente en caso de que el bloque actual 40 se codifique en modo de predicción inter. Por consiguiente, simplemente los parámetros de codificación/predicción de tales particiones previamente codificadas interpredichas se pueden usar para determinar/construir la lista de candidatos.
[0026] Como ya se discutió anteriormente, los parámetros de codificación pueden ser parámetros de predicción y el decodificador 80 puede configurarse para usar los parámetros de predicción de las particiones 50 y 60 con el fin de derivar una señal de predicción para la partición respectiva. Naturalmente, el codificador 10 también realiza la derivación de la señal de predicción de la misma manera. Sin embargo, el codificador 10 establece adicionalmente los parámetros de predicción junto con todos los demás elementos de sintaxis dentro del tren de bits 30 con el fin de lograr cierta optimización en un sentido de optimización adecuado.
[0027] Además, como ya se describió anteriormente, el codificador puede configurarse para insertar un índice en un candidato a parámetro de codificación no eliminado simplemente en caso de que el número de candidatos a parámetros de codificación no eliminados para una partición respectiva sea mayor que uno. Por consiguiente, el decodificador 80 puede configurarse para, dependiendo del número de candidatos a parámetros de codificación no eliminados para, por ejemplo, la partición 60, simplemente esperar que el tren de bits 30 comprenda un elemento de sintaxis que especifique cuál de los candidatos a parámetros de codificación no eliminados se emplea para fusionarse, si el número de candidatos a parámetros de codificación no eliminados es mayor que uno. Sin embargo, que se produzca el caso de que el conjunto de candidatos se vuelva inferior a dos, generalmente podría excluirse al extender, como se describió anteriormente, la lista/conjunto de candidatos usando parámetros de codificación combinados, es decir, parámetros que se han derivado por combinación de los parámetros de codificación de más de una - o más de dos - particiones previamente codificadas, con la restricción del rendimiento de la reducción del conjunto de candidatos a aquellos candidatos que se han obtenido al adoptar, o derivar de, los parámetros de codificación de exactamente una partición previamente codificada. También es posible lo contrario, es decir, eliminar generalmente todos los candidatos a parámetros de codificación que tienen el mismo valor que los de la partición, lo que da como resultado otro patrón de particionamiento soportado.
[0028] Con respecto a la determinación, el decodificador 80 actúa como lo hace el codificador 10. Es decir, el decodificador 80 puede configurarse para determinar el conjunto de candidatos a parámetros de codificación para la partición o las particiones después de la primera partición 50 en orden de codificación 70 en función de los parámetros de codificación asociados con particiones previamente decodificadas. Es decir, un orden de codificación no solo se define entre las particiones 50 y 60 de un bloque respectivo 40, sino también entre los bloques 40 de la propia imagen 20. Todas las particiones que han sido codificadas antes de la partición 60 pueden, por lo tanto, servir de base para la determinación del conjunto de candidatos a parámetros de codificación para cualquiera de las particiones posteriores, tal como la partición 60 en el caso de la Fig. 2. Como también se describió anteriormente, el codificador y decodificador pueden restringir la determinación del conjunto de candidatos a parámetros de codificación a particiones en un determinado vecindario espacial y/o temporal. Por ejemplo, el decodificador 80 puede configurarse para determinar el conjunto de candidatos a parámetros de codificación para una partición no primera 60 en función de los parámetros de codificación asociados con particiones previamente decodificadas vecinas a la partición no primera respectiva, donde tales particiones pueden estar fuera y dentro del bloque actual 40. Naturalmente, la determinación de los candidatos a fusión también se puede realizar para la primera partición en orden de codificación. Simplemente no se realiza la extracción.
[0029] Coincidiendo con la descripción de la Fig. 1, el decodificador 80 puede configurarse para determinar el conjunto de candidatos a parámetros de codificación para la partición no primera respectiva 60 de un conjunto inicial de particiones previamente decodificadas, excluyendo las que se codifican en un modo de predicción intra.
[0030] Además, en caso de que el codificador introduzca información de subdivisión en el tren de bits con el fin de subdividir la imagen 20 en los bloques 40, el decodificador 80 puede configurarse para recuperar la subdivisión de la imagen 20 en tales bloques de codificación 40 según la información de subdivisión en el tren de bits 30.
[0031] Con respecto a la Fig. 1 y la Fig. 2, cabe señalar que la señal residual para el bloque actual 40 puede transmitirse a través del tren 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, el codificador 10 de la Fig. 1 puede configurarse para subdividir el bloque 40 en uno o más bloques de transformación de manera paralela o independiente del particionamiento en las particiones 50 y 60. El codificador puede señalizar la subdivisión de bloque de transformación respectiva para el bloque 40 a través de información de subdivisión adicional. El decodificador 80, a su vez, puede configurarse para recuperar esta subdivisión adicional del bloque 40 en uno o más bloques de transformación según la información de subdivisión adicional en el tren de bits, y para derivar una señal residual del bloque actual 40 del tren de bits en conjuntos de estos bloques de transformación. La importancia del particionamiento de bloques de transformación puede ser que la transformación, tal como DCT, en el codificador y la transformación inversa correspondiente tal como IDCT en el decodificador se realizan dentro de cada bloque de transformación del bloque 40 individualmente. Con el fin de reconstruir la imagen 20 como el bloque 40, el codificador 10, a continuación, combina, tal como añade, la señal de predicción derivada mediante la aplicación de 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 ninguna transformación y transformación inversa respectivamente, y que el residuo de predicción se codifica en el dominio espacial en su lugar, por ejemplo.
[0032] Antes de describir más detalles posibles de realizaciones adicionales a continuación, se describirá una posible estructura interna de codificador y decodificador de las Figs. 1 y 2 con respecto a las Figs. 3 y 4. La Fig. 3 muestra de manera ejemplar cómo se puede construir internamente el codificador 10. Tal como se muestra, el codificador 10 puede comprender un sustractor 108, un transformador 100 y un generador de tren de bits 102, que pueden, tal como se indica en la Fig. 3, realizar una codificación de entropía. Los elementos 108, 100 y 102 están conectados en serie entre una entrada 112 que recibe la imagen 20 y una salida 114 que produce como salida el tren de bits 30 mencionado anteriormente. En particular, el sustractor 108 tiene su entrada no inversora conectada a la entrada 112 y el transformador 100 está conectado entre una salida del sustractor 108 y una primera entrada del generador de tren de bits 102 que, a su vez, tiene una salida conectada a la salida 114. El codificador 10 de la Fig. 3 comprende además 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 además un predictor 106, que está conectado entre una salida del sumador 110 y una entrada adicional del sumador 110 y la entrada inversora del sustractor 108.
[0033] Los elementos de la Fig. 3 interactúan de la siguiente manera: El predictor 106 predice porciones de la imagen 20 con el resultado de la predicción, es decir, la señal de predicción, que se aplica a la entrada inversora del sustractor 108. La salida del sustractor 108, a su vez, representa la diferencia entre la señal de predicción y la porción respectiva de la imagen 20, es decir, una señal residual. La señal residual es sometida a codificación de transformación en el transformador 100. Es decir, el transformador 100 puede realizar una transformación, tal como una DCT o similar, y una cuantificación posterior en la señal residual transformada, es decir, los coeficientes de transformación, para obtener niveles de coeficiente de transformación. El transformador inverso 104 reconstruye la salida de señal residual final producida como salida 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 como salida del predictor 106 da como resultado una reconstrucción de la porción respectiva de la imagen 20 y se reenvía desde la salida del sumador 110 a la entrada del predictor 106. El predictor 106 funciona en diferentes modos, tal como se describió anteriormente, tal como un modo de predicción intra, modo de predicción inter y similares. El modo de predicción y los parámetros de codificación o predicción correspondientes aplicados por el predictor 106 con el fin de obtener la señal de predicción, se reenvían mediante el predictor 106 al codificador de entropía 102 para su inserción en el tren de bits.
[0034] En la Fig. 4 se muestra una posible implementación de la estructura interna del decodificador 80 de la Fig. 2, que corresponde a la posibilidad mostrada en la Fig. 3 con respecto al codificador. Como se muestra en la misma, el decodificador 80 puede comprender un extractor de tren de bits 150 que, como se muestra en la Fig. 4, puede implementarse como un decodificador de entropía, un transformador inverso 152 y un sumador 154, que están, en el orden mencionado, conectados entre una entrada 158 y una salida 160 del decodificador. Además, el decodificador de la Fig. 4 comprende un predictor 156 conectado entre una salida del sumador 154 y una entrada adicional del mismo. El decodificador de entropía 150 está conectado a una entrada de parámetro del predictor 156.
[0035] Describiendo brevemente la funcionalidad del decodificador de la Fig. 4, el decodificador de entropía 150 es para extraer toda la información contenida en el tren de bits 30. El esquema de codificación de entropía usado puede ser codificación de longitud variable o codificación aritmética. Mediante esto, el decodificador de entropía 150 recupera del tren de bits los niveles de coeficiente de transformación que representan la señal residual y los reenvía al transformador inverso 152. Además, el decodificador de entropía 150 recupera del tren de bits todos los modos de codificación y parámetros de codificación asociados y los reenvía al predictor 156. De manera adicional, la información de particionamiento y la información de fusión se extraen del tren de bits mediante el extractor 150. La señal residual transformada inversamente, es decir, reconstruida y la señal de predicción tal como se deriva mediante el predictor 156 se combinan, tal como se añaden, mediante el sumador 154 que, a su vez, produce como salida la señal reconstruida así recuperada en la salida 160 y la reenvía al predictor 156.
[0036] Como queda claro al comparar las Figs. 3 y 4, los elementos 152, 154 y 156 corresponden funcionalmente a los elementos 104, 110 y 106 de la Fig. 3.
[0037] En la descripción anterior de las Figs. 1 a 4, se han presentado varias posibilidades diferentes con respecto a posibles subdivisiones de la imagen 20 y la granularidad correspondiente al variar algunos de los parámetros involucrados en la codificación de la imagen 20. Una de tales posibilidades se describe nuevamente con respecto a la Fig. 5a y la Fig. 5b. La Fig. 5a muestra una porción de una imagen 20. De acuerdo con la realización de la Fig. 5a, el codificador y el decodificador están configurados para subdividir en primer lugar la imagen 20 en bloques de raíz arbórea 200. Uno de tales bloques de raíz arbórea se muestra en la Fig. 5a. La subdivisión de la imagen 20 en bloques de raíz arbórea se realiza regularmente en filas y columnas como se ilustra con líneas punteadas. El tamaño de los bloques de raíz arbórea 200 puede ser seleccionado por el codificador y señalado al decodificador por el tren de bits 30. Alternativamente, el tamaño de estos bloques de raíz arbórea 200 puede fijarse de forma predeterminada. Los bloques de raíz arbórea 200 se subdividen mediante el uso de particionamiento de árbol cuádruple con el fin de producir los bloques 40 identificados anteriormente que pueden denominarse bloques de codificación o conjuntos de codificación. Estos bloques de codificación o conjuntos de codificación se dibujan con líneas continuas delgadas en la Fig. 5a. Mediante esto, el codificador acompaña cada bloque de raíz arbórea 200 con información de subdivisión e inserta la información de subdivisión en el tren de bits. Esta información de subdivisión indica cómo el bloque de raíz arbórea 200 debe subdividirse en bloques 40. A una granularidad de, y en conjuntos de, estos bloques 40, el modo de predicción varía dentro de la imagen 20. Tal como se indicó anteriormente, cada bloque 40 - o cada bloque que tiene un cierto modo de predicción, tal como modo de predicción inter -va acompañado de información de particionamiento en cuanto a qué patrón de particionamiento soportado se usa para el bloque respectivo 40. En el caso ilustrativo de la Fig. 5a, para muchos bloques de codificación 40, se ha elegido el modo de no particionamiento de modo que el bloque de codificación 40 coincida espacialmente con la partición correspondiente. En otras palabras, el bloque de codificación 40 es, simultáneamente, una partición que tiene un conjunto respectivo de parámetros de predicción asociados con la misma. El tipo de parámetros de predicción, a su vez, depende del modo asociado con el bloque de codificación respectivo 40. Sin embargo, se muestra ejemplarmente que otros bloques de codificación se particionan adicionalmente. El bloque de codificación 40 en la esquina superior derecha del bloque de raíz arbórea 200, por ejemplo, se muestra que está particionado en cuatro particiones, mientras que el bloque de codificación en la esquina inferior derecha del bloque de raíz arbórea 200 se muestra de manera ejemplar que está subdividido verticalmente en dos particiones. La subdivisión para particionamiento en particiones se ilustra mediante líneas punteadas. La Fig. 5a también muestra el orden de codificación entre las particiones así definidas. Como se muestra, se usa un primer orden transversal en profundidad. A través de los bordes del bloque de raíz de árbol, el orden de codificación se puede continuar en un orden de escaneo según el cual las filas de bloques de raíz arbórea 200 se escanean en fila de arriba a abajo de la imagen 20. Mediante esta medida, es posible tener la máxima probabilidad de que una determinada partición tenga una partición previamente codificada adyacente a su borde superior y su borde izquierdo. Cada bloque 40 - o cada bloque que tiene un determinado modo de predicción, tal como el modo de predicción inter - puede tener un indicador de interruptor de fusión dentro del tren de bits que indica si la fusión se activa para las particiones correspondientes en el mismo o no. Cabe señalar que el particionamiento de los bloques en particiones/conjuntos de predicción podría restringirse a un particionamiento de un máximo de dos particiones, haciéndose simplemente una excepción de esta regla para el tamaño de bloque más pequeño posible de los bloques 40. En caso de usar la subdivisión de árbol cuádruple con el fin de obtener los bloques 40, esto podría evitar la redundancia entre la información de subdivisión para subdividir la imagen 20 en el bloque 40 y la información de particionamiento para subdividir el bloque 40 en particiones. Alternativamente, se podrían permitir simplemente particionamientos en una o dos particiones, incluyendo o no incluyendo asimétricos.
[0038] La Fig. 5b muestra un árbol de subdivisión. Con líneas continuas, se ilustra la subdivisión del bloque de raíz arbórea 200, mientras que las líneas punteadas simbolizan el particionamiento de los bloques de hojas de la subdivisión de árbol cuádruple, que son los bloques de codificación 40. Es decir, el particionamiento de los bloques de codificación representa una especie de extensión de la subdivisión cuádruple.
[0039] Como ya se señaló anteriormente, cada bloque de codificación 40 puede subdividirse paralelamente en bloques de transformación de modo que los bloques de transformación puedan representar una subdivisión diferente del bloque de codificación 40 respectivo. Para cada uno de estos bloques de transformación, que no se muestran en las Figs. 5a y 5b, una transformación con el fin de transformar la señal residual de los bloques de codificación se puede realizar por separado.
[0040] A continuación, se presenta una descripción adicional. Si bien las realizaciones anteriores se concentraron en la relación entre la fusión de bloques, por un lado, y el particionamiento de bloques, por otro lado, 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 descripción posterior también revela posibles detalles de implementación para las realizaciones descritas anteriormente. Por consiguiente, la descripción a continuación usa signos de referencia de las figuras ya descritas anteriormente, de modo que una posible implementación respectiva descrita a continuación, también definirá posibles variaciones de las realizaciones descritas anteriormente. La mayoría de estas variaciones se pueden transferir individualmente a las realizaciones anteriores.
[0041] En otras palabras, las realizaciones de la presente solicitud describen procedimientos para reducir la velocidad de información conexa en aplicaciones de codificación de imagen y vídeo mediante la fusión de los elementos de sintaxis asociados con conjuntos particulares de muestras, es decir, bloques, con el fin de transmitir parámetros de codificación asociados. Las realizaciones de la presente solicitud son particularmente capaces de considerar la combinación de la fusión de elementos de sintaxis con un particionamiento de partes de una imagen en varios patrones de particionamiento y la combinación con modos de SALTO/DIRECTO, en los que los parámetros de codificación se infieren de un vecindario espacial y/o temporal de un bloque actual. En la medida en que, las realizaciones descritas anteriormente pueden modificarse para implementar la fusión para conjuntos de muestras, es decir, bloques, en combinación con diferentes patrones de particionamiento y modos de SALTO/DIRECTO.
[0042] Además, antes de describir estas variaciones y más detalles, se presenta una visión general sobre los códecs de imagen y vídeo.
[0043] En aplicaciones de codificación de imagen y vídeo, las matrices de muestras asociadas con una imagen generalmente se particionan 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 incluya regiones con forma arbitraria, triángulos o cualquier otra forma. La subdivisión de las matrices de muestras puede fijarse mediante la sintaxis o la subdivisión se señala (al menos parcialmente) dentro del tren de bits. Para mantener la velocidad de información conexa para señalar la información de subdivisión pequeña, la sintaxis generalmente permite solo un número limitado de opciones que dan como resultado particionamiento simple, tal como la subdivisión de bloques en bloques más pequeños. Un esquema de particionamiento usado a menudo es el particionamiento de bloques cuadrados 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 el particionamiento empleado realmente se señala dentro del tren de bits. Los conjuntos de muestras están asociados con parámetros de codificación particulares que pueden especificar información de predicción o modos de codificación residuales, etc. En las aplicaciones de codificación de vídeo, a menudo se realiza un particionamiento con el fin de representación de movimiento. Todas las muestras de un bloque (dentro de un patrón de particionamiento) están asociadas con el mismo conjunto de parámetros de movimiento, que pueden incluir parámetros que especifiquen 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 imágenes de referencia empleadas, parámetros que especifican el movimiento con respecto a las imágenes de referencia (por ejemplo, vectores de desplazamiento, vectores de parámetros de movimiento afín o vectores de parámetros de movimiento para cualquier otro modelo de movimiento), que generalmente se transmiten como una diferencia a un predictor, parámetros que especifican la precisión de los parámetros de movimiento (por ejemplo, precisión de media muestra o cuarto de muestra), parámetros que especifican la ponderación de la señal de muestra de referencia (por ejemplo, con el propósito 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 con compensación de movimiento del bloque actual. Se asume que para cada conjunto de muestras, se transmiten parámetros de codificación individuales (por ejemplo, para especificar la predicción y/o codificación residual). Con el fin de lograr una eficiencia de codificación mejorada, la presente invención presenta un procedimiento y realizaciones particulares para fusionar dos o más conjuntos de muestras en los llamados grupos de conjuntos de muestras. Todos los conjuntos de muestras de tal grupo comparten los mismos parámetros de codificación, que se pueden transmitir junto con uno de los conjuntos de muestras en el grupo. Al hacerlo, los parámetros de codificación no necesitan transmitirse para cada conjunto de muestras del grupo de conjuntos de muestras individualmente, sino que, en cambio, los parámetros de codificación se transmiten solo una vez para todo el grupo de conjuntos de muestras. Como resultado, la velocidad de información conexa para transmitir los parámetros de codificación se reduce y la eficiencia de codificación general se mejora. Como estrategia alternativa, se puede transmitir un refinamiento 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 refinamiento se puede aplicar a todos los conjuntos de muestras de un grupo o solo al conjunto de muestras para el que se transmite.
[0044] Las realizaciones de la presente invención se refieren particularmente a la combinación del procedimiento de fusión con un particionamiento de un bloque en varios sub-bloques 50, 60 (como se mencionó anteriormente). Por lo general, los sistemas de codificación de imagen o vídeo soportan varios patrones de particionamiento para un bloque 40. Como ejemplo, un bloque cuadrado puede no particionarse o puede particionarse en cuatro bloques cuadrados del mismo tamaño, o en dos bloques rectangulares del mismo tamaño (donde el bloque cuadrado puede dividirse vertical u horizontalmente), o en bloques rectangulares de diferentes tamaños (horizontal o verticalmente). Los patrones de partición ejemplares descritos se ilustran en la Fig. 6. Además de la descripción anterior, el particionamiento puede implicar incluso más de un nivel de particionamiento. Por ejemplo, los sub-bloques cuadrados también pueden particionarse adicionalmente de manera opcional usando los mismos patrones de particionamiento. El problema que surge cuando tal procedimiento de particionamiento se combina con un procedimiento de fusión que permite la fusión de un bloque (cuadrado o rectangular) con, por ejemplo, uno de sus bloques vecinos es que el mismo particionamiento resultante se puede lograr mediante diferentes combinaciones de los patrones de particionamiento y señales de fusión. Por lo tanto, la misma información se puede transmitir en el tren de bits usando diferentes palabras de código, lo que es claramente subóptimo con respecto a la eficiencia de codificación. Como ejemplo simple, consideramos un bloque cuadrado que no está particionado adicionalmente (como se ilustra en la esquina superior izquierda de la Fig. 6). Este particionamiento se puede señalar directamente mediante el envío de un elemento de sintaxis de que este bloque 40 no está subdividido. Pero el mismo patrón también se puede señalar mediante el envío de un elemento de sintaxis que especifica que este bloque está, por ejemplo, subdividido en dos bloques rectangulares alineados vertical (u horizontalmente) 50, 60. A continuación podemos transmitir información de fusión que especifica que el segundo de estos bloques rectangulares se fusiona con el primer bloque rectangular, lo que da como resultado exactamente el mismo particionamiento que cuando señalamos que el bloque no se divide adicionalmente. También puede lograrse lo mismo especificando primero que el bloque se subdivide en cuatro sub-bloques cuadrados y a continuación transmitir información de fusión que fusiona efectivamente todos estos cuatro bloques. Este concepto es claramente subóptimo (ya que tenemos diferentes palabras de código para señalar lo mismo).
[0045] Las realizaciones de la presente invención describen un concepto y posibilidades para reducir la velocidad de información conexa y así aumentar la eficiencia de codificación para una combinación del concepto de fusión con el concepto de proporcionar diferentes patrones de particionamiento para un bloque. Si observamos los patrones de particionamiento de ejemplo en la Fig. 6, la «simulación» del bloque no dividido adicionalmente por cualquiera de los patrones de particionamiento con dos bloques rectangulares puede evitarse cuando prohibimos (es decir, excluimos de la especificación de sintaxis de tren de bits) el caso de que un bloque rectangular se fusione con un primer bloque rectangular. Cuando se analiza más profundamente el problema, también es posible «simular» el patrón no subdividido mediante la fusión del segundo bloque rectangular con cualquier 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) que el primer bloque rectangular. Las realizaciones de la presente invención condicionan el envío de información de fusión de manera que el envío de parámetros de fusión particulares se excluye de la sintaxis de tren de bits cuando estos parámetros de fusión dan como resultado un patrón que también se puede lograr señalando uno de los patrones de particionamiento soportados. Como ejemplo, si el patrón de particionamiento actual especifica la subdivisión en dos bloques rectangulares, como se muestra en la Fig. 1 y 2, por ejemplo, antes de enviar la información de fusión para el segundo bloque, es decir, 60 en el caso de la Fig. 1 y 2, se puede verificar cuál de los posibles candidatos a fusión tiene los mismos parámetros (por ejemplo, parámetros para especificar la señal de predicción) que el primer bloque rectangular, es decir, 50 en el caso de la Fig. 1 y 2. Y todos los candidatos que tienen los mismos parámetros de movimiento (incluido el primer bloque rectangular en sí) se eliminan del conjunto de candidatos a fusión. Las palabras de código o banderas que se transmiten para señalar la información de fusión se adaptan al conjunto de candidatos resultante. Si el conjunto de candidatos queda vacío debido a la verificación de parámetros, no se transmite información de fusión. Si el conjunto de candidatos consiste en una sola entrada, solo se señala si el bloque está fusionado o no, pero no es necesario señalar al candidato, ya que se puede derivar en el lado del decodificador, etc. Para el ejemplo anterior, el mismo concepto también se emplea para el patrón de particionamiento que divide un bloque cuadrado en cuatro bloques cuadrados más pequeños. Aquí, el envío de banderas de fusión se adapta de manera que ni el patrón de particionamiento que no especifica ninguna subdivisión ni ninguno de los dos patrones de particionamiento especifican una subdivisión en dos bloques rectangulares del mismo tamaño se pueden lograr mediante una combinación de banderas de fusión. Aunque describimos el concepto más en el ejemplo anterior con patrones de particionamiento específicos, debería quedar claro que el mismo concepto (evitar la especificación de un patrón de particionamiento particular mediante una combinación de otro patrón de particionamiento y la información de fusión correspondiente) puede emplearse para cualquier otro conjunto de patrones de particionamiento.
[0046] La ventaja de la invención descrita con respecto a un concepto en el que solo se permite el particionamiento es que se proporciona una libertad mucho mayor para señalar el particionamiento de una imagen en partes que están asociadas con los mismos parámetros (por ejemplo, para especificar la señal de predicción). Como ejemplo, los patrones de particionamiento adicionales que resultan de la fusión de bloques cuadrados que de un bloque más grande subdividido se representan en la Fig. 7. Sin embargo, cabe señalar que se pueden lograr muchos más patrones resultantes mediante la fusión con bloques vecinos adicionales (fuera del bloque subdividido anteriormente). Con solo unas pocas palabras de código para señalar la información de particionamiento y fusión, se proporciona una variedad de posibilidades de particionamiento y un codificador puede seleccionar la mejor opción (para una complejidad de codificador dada) en sentido de distorsión de velocidad (por ejemplo, minimizando una medida de distorsión de velocidad particular). La ventaja en comparación con una estrategia en el que solo se proporciona un patrón de particionamiento (por ejemplo, una subdivisión en cuatro bloques del mismo tamaño) en combinación con la estrategia de fusión es que los patrones usados a menudo (como, por ejemplo, formas rectangulares de diferentes tamaños) pueden señalarse mediante una palabra de código corta en lugar de varias banderas de subdivisión y fusión.
[0047] Otro aspecto que debe considerarse es que el concepto de fusión es, en cierto sentido, similar a los modos de SALTO o DIRECTO que se encuentran en los 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 de un vecindario espacial y/o temporal. En un concepto eficiente particular de los modos de SALTO/DIRECTO, se crea una lista de candidatos a parámetros de movimiento (índices de trama de referencia, vectores de desplazamiento, etc.) a partir de un vecindario espacial y/o temporal y se transmite un índice a esta lista que especifica cuál de los parámetros candidatos se elige. Para bloques bipredichos (o tramas de múltiples hipótesis), se puede señalar un candidato separado para cada lista de referencia. Los posibles candidatos pueden incluir el bloque de la parte superior del bloque actual, el bloque a la izquierda del bloque actual, el bloque de la parte superior izquierda del bloque actual, el bloque de la parte superior derecha del bloque actual, el predictor de mediana de varios de estos candidatos, el bloque coubicado en una o más tramas de referencia anteriores (o cualquier otro bloque ya codificado, o una combinación obtenida de bloques ya codificados). Al combinar el concepto de fusión con el modo de SALTO/DIRECTO, debería garantizarse que tanto el modo de SALTO/DIRECTO como el modo de fusión no incluyan los mismos candidatos. Esto se puede lograr mediante diferentes configuraciones. Es posible habilitar el modo de SALTO/DIRECTO (por ejemplo, con más candidatos que el modo de fusión) solo para bloques particulares (por ejemplo, con un tamaño mayor que un tamaño especificado, o solo para bloques cuadrados, etc.) y no soportar el modo de fusión para estos bloques. O se puede eliminar el modo de SALTo /DIRECTO y todos los candidatos (incluidos los parámetros que representan una combinación de parámetros para los bloques vecinos espaciales/temporales) se añaden al modo de fusión como candidatos. Esta opción también se había mencionado anteriormente con respecto a las Figs. 1-5. El conjunto de candidatos aumentado solo se podría usar para bloques particulares (con un tamaño mayor que un tamaño mínimo dado, o bloques cuadrados, etc.), donde para otros bloques se usa un conjunto de candidatos reducido. O como una variante adicional, el modo de fusión se usa con un conjunto de candidatos reducido (por ejemplo, solo el vecino superior e izquierdo) y se usan candidatos adicionales (por ejemplo, el modo superior izquierdo, el bloque coubicado, etc.) para el modo de SALTO/DIRECTO. También en tales configuraciones, los modos de SALTO/DIRECTO solo se pueden permitir para bloques particulares (con un tamaño mayor que un tamaño mínimo dado, o bloques cuadrados, etc.), mientras que el modo de fusión se permite para un conjunto más grande de bloques. La ventaja de tales combinaciones es que se proporcionan múltiples opciones para señalar la reutilización de parámetros ya transmitidos (por ejemplo, para especificar la predicción) para diferentes tamaños de bloque. Como ejemplo, para bloques cuadrados más grandes se proporcionan más opciones, ya que aquí la velocidad binaria de gasto adicional proporciona un aumento en la eficiencia de distorsión de velocidad. Para bloques más pequeños, se proporciona un conjunto más pequeño de opciones. Un aumento del conjunto de candidatos aquí no traería ninguna ganancia en la eficiencia de distorsión de velocidad debido a la pequeña proporción de muestras por bit requerida para señalar el candidato seleccionado.
[0048] Como se mencionó anteriormente, las realizaciones de la presente invención también proporcionan un codificador con una mayor libertad para crear un tren de bits, ya que la estrategia de fusión aumenta significativamente las posibilidades de número para seleccionar un particionamiento para las matrices de muestras de una imagen. Dado que el codificador puede elegir entre más opciones, por ejemplo, para minimizar una medida de distorsión de velocidad particular, se puede mejorar la eficiencia de codificación. Como ejemplo, algunos de los patrones adicionales que se pueden representar mediante una combinación de subparticionamiento y fusión (por ejemplo, los patrones de la Fig. 7) se pueden probar adicionalmente (usando los tamaños de bloque correspondientes para la estimación del movimiento y la decisión de modo) y el mejor de los patrones proporcionados mediante particionamiento puramente (Fig. 6) y mediante particionamiento y fusión (Fig. 7) se puede seleccionar en función de una medida de distorsión de velocidad particular. Además, para cada bloque se puede probar si una fusión con cualquiera de los conjuntos de candidatos ya codificados produce una disminución de una medida de distorsión de velocidad particular y a continuación se establecen las banderas de fusión correspondientes durante el procedimiento de codificación. En resumen, hay varias posibilidades de operar un codificador. En una estrategia simple, el codificador podría determinar primero la mejor subdivisión de las matrices de muestras (como en los esquemas de codificación de última generación). Y, a continuación, podría verificar para cada conjunto de muestras, si una fusión con otro conjunto de muestras u otro grupo de conjuntos de muestras reduce una medida de coste de distorsión de velocidad particular. En este caso, los parámetros de predicción asociados con el grupo fusionado de conjuntos de muestras pueden volver a estimarse (por ejemplo, realizando una nueva búsqueda de movimiento) o los parámetros de predicción que ya se han determinado para el conjunto de muestras actual y el conjunto de muestras candidato (o grupo de conjuntos de muestras) para la fusión podrían evaluarse para el grupo considerado de conjuntos de muestras. En una estrategia más amplia, podría evaluarse una medida particular de coste de distorsión de velocidad particular para grupos de candidatos adicionales de conjuntos de muestras. Como ejemplo particular, cuando se prueban los diversos patrones de particionamiento posibles (véase la Fig. 6, por ejemplo), parte o la totalidad del patrón que se puede representar mediante una combinación de particionamiento y fusión (véase la Fig. 7, por ejemplo) se puede probar adicionalmente. Es decir, para todos los patrones se lleva a cabo un procedimiento específico de estimación de movimiento y decisión de modo y se selecciona el patrón que produce la medida de distorsión de velocidad más pequeña. Este procedimiento también se puede combinar con el procedimiento de baja complejidad descrito anteriormente, de modo que para los bloques resultantes se prueba adicionalmente si una fusión con bloques ya codificados (por ejemplo, fuera de los patrones de la Fig. 6 y la Fig. 7) produce una disminución en una medida de distorsión de velocidad.
[0049] A continuación, se describen alguna posible implementación detallada para las realizaciones descritas anteriormente, tales como para los codificadores de las Figs. 1 y 3 y los decodificadores de las Figs. 2 y 4. Como ya se ha señalado anteriormente, los mismos son utilizables en la codificación de imagen y vídeo. Tal como se describió anteriormente, las imágenes o conjuntos particulares de matrices de muestras para las imágenes pueden descomponerse en bloques, que están asociados con parámetros de codificación particulares. Las imágenes generalmente consisten en múltiples matrices de muestras. Además, una imagen también puede asociarse con matrices de muestras auxiliares adicionales, que pueden, por ejemplo, especificar información de transparencia o mapas de profundidad. Las matrices de muestras de una imagen (que incluyen matrices de muestras auxiliares) se pueden agrupar en uno o más denominados grupos de planos, donde cada grupo de planos consiste en una o más matrices de muestras. Los grupos de planos de una imagen se pueden codificar independientemente o, si la imagen está asociada con más de un grupo de planos, con predicción de otros grupos de planos de la misma imagen. Cada grupo de planos generalmente se descompone en bloques. Los bloques (o los bloques correspondientes de las matrices de muestras) se predicen mediante predicción interimagen o predicción intraimagen. Los bloques pueden tener diferentes tamaños y pueden ser cuadráticos o rectangulares. El particionamiento de una imagen en bloques puede ser fijado por la sintaxis, o puede ser (al menos parcialmente) señalado dentro del tren de bits. A menudo se transmiten elementos de sintaxis que señalan la subdivisión para bloques de tamaños predefinidos. Tales elementos de sintaxis pueden especificar si y cómo un bloque se subdivide en bloques más pequeños y se asocia con parámetros de codificación, por ejemplo, con fines de predicción. Un ejemplo de posibles patrones de particionamiento se muestra en la Fig. 6. Para todas las muestras de un bloque (o los bloques correspondientes de conjuntos de muestras), la decodificación de los parámetros de codificación asociados se especifica de cierta manera. En el ejemplo, todas las muestras de un bloque se predicen usando el mismo conjunto de parámetros de predicción, tales como índices de referencia (identificar una imagen de referencia en el conjunto de imágenes ya codificadas), parámetros de movimiento (especificar una medida para el movimiento de un bloque entre una imagen de referencia y la imagen actual), parámetros para especificar el filtro de interpolación, modos de predicción intra, etc. Los parámetros de movimiento se pueden representar mediante vectores de desplazamiento con una 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 particulares (tales como índices de referencia y parámetros de movimiento) estén asociados con un solo bloque. En ese caso, para cada conjunto de estos parámetros de predicción particulares, se genera una única señal de predicción intermedia para el bloque (o los bloques correspondientes de conjuntos de muestras), y la señal de predicción final se construye mediante una combinación que incluye superponer las señales de predicción intermedias. Los parámetros de ponderación correspondientes y potencialmente también un desplazamiento constante (que se añade a la suma ponderada) se pueden fijar para una imagen, o una imagen de referencia, o un conjunto de imágenes de referencia, o se pueden incluir en el conjunto de parámetros de predicción 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 denominada señal residual, generalmente se transforma y cuantifica. A menudo, se aplica una transformación bidimensional a la señal residual (o las matrices de muestras correspondientes para el bloque residual). Para la codificación de transformaciones, los bloques (o los bloques correspondientes de matrices de muestras), para los cuales se ha usado un conjunto particular de parámetros de predicción, se pueden dividir adicionalmente antes de aplicar la transformación. Los bloques de transformación pueden ser iguales o más pequeños que los bloques que se usan para la predicción. También es posible que un bloque de transformación incluya más de uno de los bloques que se usan para la predicción. Diferentes bloques de transformación pueden tener diferentes tamaños y los bloques de transformación pueden representar bloques cuadráticos o rectangulares. En el ejemplo anterior para las Figs. 1-5, se ha observado que es posible que los nodos de hoja de la primera subdivisión, es decir, los bloques de codificación 40, se puedan particionar adicionalmente de forma paralela en la partición que define la granularidad de los parámetros de codificación, por un lado, y los bloques de transformación sobre los cuales se aplica la transformación bidimensional individualmente, por otro lado. Después de la transformación, se cuantifican los coeficientes de transformación resultantes y se obtienen los llamados niveles de coeficiente de transformación. Los niveles del coeficiente de transformación, así como los parámetros de predicción y, si está presentes, la información de subdivisión son codificados por entropía.
[0050] En los estándares de codificación de imagen y vídeo de última generación, las posibilidades de subdividir una imagen (o un grupo de planos) en bloques proporcionados por la sintaxis son muy limitadas. Por lo general, solo se puede especificar si y (potencialmente cómo) un bloque de un tamaño predefinido puede subdividirse en bloques más pequeños. Como ejemplo, el tamaño de bloque más grande en H.264 es 16x16. Los bloques de 16x16 también se conocen como macrobloques y cada imagen se particiona en macrobloques en una primera etapa. Para cada macrobloque de 16x16, se puede señalar si está codificado como bloque de 16x16, o como dos bloques 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 bloques de 8x8 puede codificarse como un bloque de 8x8, o como dos bloques de 8x4, o como dos bloques 4x8, o como cuatro bloques de 4x4. El pequeño conjunto de posibilidades para especificar el particionamiento en bloques en estándares de codificación de imagen y vídeo de última generación tiene la ventaja de que la velocidad de información conexa para señalar la información de subdivisión puede mantenerse pequeña, pero tiene la desventaja de que la velocidad binaria requerida para transmitir los parámetros de predicción para los bloques puede llegar a ser significativa como se explica a continuación. La velocidad de información conexa para señalar la información de predicción generalmente representa una cantidad significativa de la velocidad binaria general para un bloque. Y la eficiencia de codificación podría aumentarse cuando esta información conexa se reduce, lo que, por ejemplo, podría lograrse mediante el uso de tamaños de bloque más grandes. También es posible aumentar el conjunto de patrones de particionamiento soportados en comparación con H.264. Por ejemplo, los patrones de particionamiento representados en la Fig. 6 pueden proporcionarse para bloques cuadrados de todos los tamaños (o tamaños seleccionados). Las imágenes reales o imágenes de una secuencia de vídeo consisten en objetos de forma arbitraria con propiedades específicas. Como ejemplo, dichos objetos o partes de los objetos se caracterizan por una textura única o un movimiento único. Y generalmente, el mismo conjunto de parámetros de predicción se puede aplicar para tal objeto o parte de un objeto. Pero los límites de objeto generalmente no coinciden con los límites de bloque posibles para bloques de predicción grandes (por ejemplo, macrobloques de 16x16 en H.264). Un codificador generalmente determina la subdivisión (entre el conjunto limitado de posibilidades) que da como resultado el mínimo de una medida de coste de distorsión de velocidad particular. Para objetos de forma arbitraria, esto puede dar como resultado un gran número de bloques pequeños. Esta afirmación también sigue siendo cierta cuando se proporcionan más patrones de particionamiento (como se mencionó anteriormente). Cabe señalar que la cantidad de patrones de particionamiento no debería ser demasiado grande, ya que entonces se requiere mucha información conexa y/o complejidad de codificador/decodificador para señalar y procesar estos patrones. Por lo tanto, los objetos con forma arbitraria a menudo dan como resultado un gran número de bloques pequeños debido al particionamiento. Y dado que cada uno de estos bloques pequeños está asociado con un conjunto de parámetros de predicción, que deben transmitirse, la velocidad de información conexa puede convertirse en una parte significativa de la velocidad binaria general. Pero dado que varios de los bloques pequeños todavía representan áreas del mismo objeto o parte de un objeto, los parámetros de predicción para un número de bloques obtenidos son iguales o muy similares. Intuitivamente, la eficiencia de codificación podría aumentarse cuando la sintaxis se extiende de manera que no solo permita subdividir un bloque, sino también fusionar dos o más de los bloques que se obtienen después de la subdivisión. Como resultado, se obtendría un grupo de bloques que se codifican con los mismos parámetros de predicción. Los parámetros de predicción para tal grupo de bloques deben codificarse solo una vez. En los ejemplos anteriores de las Figs. 1-5, por ejemplo, los parámetros de codificación para el reloj actual 40 no se transmiten siempre que tenga lugar la fusión, es decir, que el conjunto reducido de candidatos no desaparezca. Es decir, el codificador no transmite los parámetros de codificación asociados con el bloque actual, y el decodificador no espera que el tren de bits 30 contenga parámetros de codificación para el bloque actual 40. Más bien, de acuerdo con sus realizaciones específicas, se puede transmitir simplemente información de refinamiento para el bloque actual fusionado 40. Como una determinación de un conjunto de candidatos y la reducción del mismo, así como la fusión y así sucesivamente, también se realiza para los otros bloques de codificación 40 de la imagen 20. Los bloques de codificación de alguna manera forman grupos de bloques de codificación a lo largo de una cadena de codificación, donde los parámetros de codificación para estos grupos se transmiten dentro del tren de bits en su totalidad simplemente una vez.
[0051] Si la velocidad binaria que se ahorra al reducir el número de parámetros de predicción codificados es mayor que la velocidad binaria que se gasta adicionalmente para codificar la información de fusión, la fusión descrita da como resultado una mayor eficiencia de codificación. Cabe mencionar además que la extensión de sintaxis descrita (para la fusión) proporciona al codificador libertad adicional al seleccionar el particionamiento de una imagen o grupo de planos en bloques. El codificador no está restringido a hacer la subdivisión primero y, a continuación, verificar si algunos de los bloques resultantes tienen el mismo conjunto de parámetros de predicción. Como una alternativa simple, el codificador podría determinar primero la subdivisión como en las técnicas de codificación de última generación. Y, a continuación, podría verificar para cada bloque, si una fusión con uno de sus bloques vecinos (o el grupo de bloques ya determinado asociado) reduce una medida de coste de distorsión de velocidad. En este caso, los parámetros de predicción asociados con el nuevo grupo de bloques pueden volver a estimarse (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 o grupo de bloques vecinos podrían evaluarse para el nuevo grupo de bloques. Un codificador también puede verificar directamente (un subconjunto de) los patrones que se proporcionan mediante una combinación de división y fusión; es decir, la estimación del movimiento y la decisión de modo se pueden hacer con las formas resultantes como ya se mencionó anteriormente. La información de fusión se puede señalar en bloque. Efectivamente, la fusión también podría interpretarse como inferencia de los parámetros de predicción para un bloque actual, donde los parámetros de predicción inferidos se establecen igual a los parámetros de predicción de uno de los bloques vecinos.
[0052] En este caso, cabe señalar que la combinación de diferentes patrones de particionamiento e información de fusión puede dar como resultado las mismas formas (que se asocian con los mismos parámetros). Esto es claramente subóptimo, ya que el mismo mensaje se puede transmitir con diferentes combinaciones de palabras de código. Con el fin de evitar (o reducir) este inconveniente, las realizaciones de la presente invención describen un concepto, que prohíbe que la misma forma (asociada con un conjunto particular de parámetros) pueda señalarse mediante diferentes elementos de sintaxis de particionamiento y fusión. Por lo tanto, para todos los bloques de un bloque previamente subdividido, excepto el primero en orden de codificación - se debería verificar en codificadores y decodificadores como 10 y 50, para todos los candidatos a fusión si una fusión daría como resultado un patrón que pudiera ser señalado por un particionamiento sin información de fusión. Todos los bloques candidatos para los que esto es cierto se eliminan del conjunto de candidatos de fusión y la información de fusión transmitida se adapta al conjunto de candidatos resultante. Si no queda ningún candidato, no se transmite información de fusión; si queda un candidato, se transmite solo una bandera que especifica si el bloque se fusiona o no, etc. Para una ilustración adicional de este concepto, a continuación se describe una realización de comparación. La ventaja de las realizaciones de comparación descritas con respecto a un concepto en el que solo se permite el particionamiento es que se proporciona una libertad mucho mayor para señalar el particionamiento de una imagen en partes que están asociadas con los mismos parámetros (por ejemplo, para especificar la señal de predicción). La ventaja en comparación con una estrategia en el que solo se proporciona un patrón de particionamiento (por ejemplo, una subdivisión en cuatro bloques del mismo tamaño) en combinación con la estrategia de fusión es que los patrones usados a menudo (como, por ejemplo, formas rectangulares de diferentes tamaños) pueden señalarse mediante una palabra de código corta en lugar de varias banderas de subdivisión y fusión.
[0053] Los estándares de codificación de vídeo de última generación como H.264 también contienen modos intercódigos particulares llamados modo de SALTO y DIRECTO, en los que los parámetros que especifican la predicción se infieren completamente de bloques espaciales y/o temporalmente vecinos. La diferencia entre SALTO y DIRECTO es que el modo de SALTO indica además que no se transmite ninguna señal residual. En varias mejoras propuestas del modo de SALTO/DIRECTO, en lugar de un solo candidato (como en H.264), se infiere una lista de posibles candidatos de un vecindario espacial y/o temporal del bloque actual. Los posibles candidatos pueden incluir el bloque en la parte superior del bloque actual, el bloque a 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 varios de estos candidatos, el bloque coubicado en una o más tramas de referencia anteriores (o cualquier otro bloque ya codificado, o una combinación obtenida de bloques ya codificados). Para una combinación con el modo de fusión, debería garantizarse que tanto el modo de SALTO/DIRECTO como el modo de fusión no deberían incluir los mismos candidatos. Esto se puede lograr mediante diferentes configuraciones como se mencionó anteriormente. La ventaja de las combinaciones descritas es que se proporcionan múltiples opciones para señalar la reutilización de parámetros ya transmitidos (por ejemplo, para especificar la predicción) para diferentes tamaños de bloque.
[0054] Una ventaja de las realizaciones de la presente invención es reducir la velocidad binaria que se requiere para transmitir los parámetros de predicción mediante la fusión de bloques vecinos en un grupo de bloques, donde cada grupo de bloques está asociado con un conjunto único de parámetros de codificación, por ejemplo, parámetros de predicción o parámetros de codificación residuales. La información de fusión se señala dentro del tren de bits (además de la información de subdivisión, si está presente). En combinación con diferentes patrones de división y modos de SALTO/DIRECTO, se puede garantizar que el modo de SALTO/DIRECTO y ninguno de los patrones proporcionados se «simula» mediante el envío de la información de fusión correspondiente. La ventaja de las realizaciones de la presente invención es una mayor eficiencia de codificación resultante de una velocidad de información conexa disminuida para los parámetros de codificación. Las realizaciones de la presente invención son aplicables en aplicaciones de codificación de imagen y vídeo, en las que conjuntos de muestras están asociados con parámetros de codificación o predicción particulares. El procedimiento de fusión descrito actualmente también se extiende a una tercera dimensión o más dimensiones. Por ejemplo, un grupo de bloques en varias imágenes de vídeo podría fusionarse en un grupo de bloques. También podría aplicarse a la compresión 4D en codificación de campo de luz. Por otro lado, también se puede usar para la compresión en señales de ID, donde la señal de ID se particiona y se fusionan particiones dadas.
[0055] Las realizaciones de la presente invención también se refieren a un procedimiento para reducir la velocidad de información conexa en aplicaciones de codificación de imagen y vídeo. En aplicaciones de codificación de imagen y vídeo, conjuntos particulares de muestras (que pueden representar bloques rectangulares o cuadráticos o regiones de forma arbitraria o cualquier otra colección de muestras) generalmente se asocian con un conjunto particular de parámetros de codificación. Para cada uno de estos conjuntos de muestras, los parámetros de codificación se incluyen en el tren 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. El particionamiento de las matrices de muestras de una imagen en conjuntos de muestras puede fijarse mediante la sintaxis o puede señalarse mediante la información de subdivisión correspondiente dentro del tren de bits. Se pueden permitir múltiples patrones de particionamiento para un bloque. Los parámetros de codificación para los conjuntos de muestras se transmiten en un orden predefinido, que es dado por la sintaxis. Las realizaciones de la presente invención también representan un procedimiento mediante el cual se puede señalar para un conjunto actual de muestras que se fusiona (por ejemplo, con fines de predicción) con uno o más conjuntos de muestras adicionales en un grupo de conjuntos de muestras. Por lo tanto, el posible conjunto de valores para la información de fusión correspondiente se adapta al patrón de particionamiento empleado, de manera que los patrones de particionamiento particulares no pueden representarse mediante una combinación de otros patrones de particionamiento y los datos de fusión correspondientes. Los parámetros de codificación para un grupo de conjuntos de muestras deben transmitirse solo una vez. En una realización particular, los parámetros de codificación de un conjunto de muestras actual no se transmiten si el conjunto de muestras actual se fusiona con un conjunto de muestras (o un grupo de conjuntos de muestras) para el cual los parámetros de codificación ya se han transmitido; en su lugar, los parámetros de codificación para el conjunto actual de muestras se establecen igual a los parámetros de codificación del conjunto de muestras (o grupo de conjuntos de muestras) con el que se fusiona el conjunto actual de muestras. Como estrategia alternativa, se puede transmitir un refinamiento adicional para uno o más de los parámetros de codificación para un conjunto de muestras actual; el refinamiento se puede aplicar a todos los conjuntos de muestras de un grupo o solo al conjunto de muestras para el que se transmite.
[0056] En una realización de comparación, para cada conjunto de muestras, el conjunto de todos los conjuntos de muestras previamente codificados se denomina el «conjunto de conjuntos de muestras causales». Los conjuntos de muestras que se pueden usar para la fusión con un conjunto actual de muestras se denominan el «conjunto de conjuntos de muestras candidatos» y siempre es un subconjunto del «conjunto de conjuntos de muestras causales». La forma en que se forma este subconjunto puede ser conocida por el decodificador o puede especificarse dentro del tren de bits. En cualquier caso, el codificador 10 y el decodificador 80 determinan que el conjunto de candidatos se reduzca. Si un conjunto actual particular de muestras está codificado y su conjunto de conjuntos de muestras candidatos no está vacío, se señala (o deriva) si el conjunto actual de muestras se fusiona con un conjunto de muestras de este conjunto de conjuntos de muestras candidatos y, en caso afirmativo, con cuál de ellos (si existe más de un candidato). De lo contrario, la fusión no se puede usar para este bloque. Los bloques candidatos para los cuales una fusión daría como resultado una forma que también podría especificarse directamente mediante un patrón de particionamiento se excluyen del conjunto de candidatos, con el fin de evitar que la misma forma se pueda representar mediante diferentes combinaciones de información de particionamiento y datos de fusión. Es decir, el conjunto de candidatos se reduce, mediante la eliminación de candidatos respectivos como se describió anteriormente con respecto a las Figs. 1-5.
[0057] En una realización de comparación, un número del conjunto de conjuntos de muestras candidatos es cero o más conjuntos de muestras que contienen al menos un número particular distinto de cero de muestras (que puede ser uno o dos o incluso más) que representan vecinos espaciales directos de cualquier muestra dentro del conjunto actual de muestras. En otra realización de comparación de la invención, el conjunto de conjuntos de muestras candidatos puede incluir adicionalmente (o exclusivamente) conjuntos de muestras que contienen un número particular distinto de cero de muestras (que puede ser uno o dos o incluso más) que tienen la misma ubicación espacial, es decir, están comprendidos tanto por los conjuntos de muestras candidatos como por el conjunto de muestras actual sometido actualmente a fusión, pero están contenidos en una imagen diferente. En la realización de comparación preferida de la invención, el conjunto de conjuntos de muestras candidatos se puede derivar de datos procesados previamente dentro de la imagen actual o en otras imágenes. El procedimiento de derivación puede incluir información direccional espacial, tal como coeficientes de transformación, asociados con una dirección particular y gradientes de imagen de la imagen actual o puede incluir información direccional temporal tal como representaciones de movimiento vecinas. A partir de tales datos disponibles en el receptor y otros datos e información conexa (si están presentes), se puede derivar el conjunto de conjuntos de muestras candidatos. La eliminación de candidatos (del conjunto de candidatos original) que daría como resultado la misma forma que podría estar representada por un patrón de particionamiento particular se deriva de la misma manera en el codificador y decodificador, de modo que el codificador y decodificador derivan el conjunto de candidatos finales para fusión exactamente de la misma manera.
[0058] Los conjuntos de muestras considerados son bloques rectangulares o cuadráticos. Entonces, los conjuntos fusionados de muestras representan una colección de bloques rectangulares y/o cuadráticos. Alternativamente, los conjuntos considerados de muestras son regiones de imagen de forma arbitraria y los conjuntos fusionados de muestras representan una colección de regiones de imagen de forma arbitraria.
[0059] Se pueden transmitir uno o más elementos de sintaxis para cada conjunto de muestras, que especifican si el conjunto de muestras se fusiona con otro conjunto de muestras (que puede ser parte de un grupo ya fusionado de conjuntos de muestras) y cuál del conjunto de conjuntos de muestras candidatos se emplea para la fusión. Sin embargo, el elemento de sintaxis no se transmite si el conjunto de candidatos está vacío (por ejemplo, debido a una eliminación de los candidatos que produciría un particionamiento que podría ser señalado por diferentes patrones de particionamiento sin fusión).
[0060] Además, se pueden transmitir uno o dos elementos de sintaxis para especificar la información de fusión. El primer elemento de sintaxis especifica si el conjunto actual de muestras se fusiona con otro conjunto de muestras. El segundo elemento de sintaxis, que solo se transmite si el primer elemento de sintaxis especifica que el conjunto actual de muestras se fusiona con otro conjunto de muestras, especifica cuál de los conjuntos de conjuntos de muestras candidatos se emplea para la fusión. Preferentemente, el primer elemento de sintaxis solo se transmite si un conjunto derivado de conjuntos de muestras candidatos no está vacío (después de la eliminación potencial de los candidatos que producirían un particionamiento que podría señalarse mediante un patrón de particionamiento diferente sin fusión). Alternativamente, el segundo elemento de sintaxis solo se transmite si un conjunto derivado de conjuntos de muestras candidatos contiene más de un conjunto de muestras. Preferentemente, el segundo elemento de sintaxis solo se transmite si al menos dos conjuntos de muestras de un conjunto derivado de conjuntos de muestras candidatos están asociados con parámetros de codificación diferentes.
[0061] Preferentemente, la información de fusión para un conjunto de muestras se codifica antes de los parámetros de predicción (o, más generalmente, los parámetros de codificación particulares que están asociados con los conjuntos de muestras). Los parámetros de predicción o codificación solo se transmiten si la información de fusión señala que el conjunto actual de muestras no se fusiona con otro conjunto de muestras.
[0062] Alternativamente, la información de fusión para un conjunto de muestras se codifica después de que se ha transmitido un subconjunto de los parámetros de predicción (o, más generalmente, los parámetros de codificación particulares que están asociados con los conjuntos de muestras). El subconjunto de parámetros de predicción puede consistir en uno o más índices de imagen de referencia o uno o más componentes de un vector de parámetro de movimiento o un índice de referencia y uno o más componentes de un vector de parámetro de movimiento, etc. El subconjunto ya transmitido de parámetros de predicción o codificación se puede usar para derivar un conjunto (reducido) de conjuntos de muestras candidatos. Como ejemplo, se puede calcular una medida de diferencia entre los parámetros de predicción o codificación ya codificados y los parámetros de predicción o codificación correspondientes de un conjunto original de conjuntos de muestras candidatos. Y solo aquellos conjuntos de muestras, para los cuales la medida de diferencia calculada es menor o igual a un umbral predefinido o derivado, se incluyen en el conjunto final (reducido) de conjuntos de muestras candidatos. El umbral puede derivarse en función de las medidas de diferencia calculadas. O como otro ejemplo, solo se seleccionan aquellos conjuntos de muestras para los cuales se minimiza la medida de diferencia. O solo se selecciona un conjunto de muestras en función de la medida de diferencia. En este último caso, la información de fusión puede reducirse de tal manera que solo especifique si el conjunto actual de muestras se fusiona con el único conjunto de candidatos de muestras.
[0063] La siguiente descripción se proporciona para conjuntos de muestras que representan bloques rectangulares y cuadráticos, pero se puede extender a regiones de forma arbitraria u otras colecciones de muestras de una manera sencilla.
1. Derivación del conjunto inicial de bloques candidatos
[0064] La derivación del conjunto inicial de muestras descrita en estas secciones se refiere a la derivación de un conjunto de candidatos iniciales. Algunos de todos los bloques candidatos pueden eliminarse posteriormente mediante el análisis de los parámetros asociados (por ejemplo, información de predicción) y la eliminación de aquellos bloques candidatos para los cuales una fusión daría como resultado un particionamiento final que también podría obtenerse mediante el uso de otros patrones de particionamiento. Este procedimiento se describe en la siguiente subsección.
Preferentemente, el conjunto de bloques candidatos iniciales se forma de la siguiente manera. Partiendo de la posición de muestra superior izquierda del bloque actual, se deriva su posición de muestra vecina izquierda y su posición de muestra vecina superior. El conjunto de bloques candidatos iniciales solo puede tener hasta dos elementos, concretamente aquellos bloques del conjunto de bloques causales que contienen una de las dos posiciones de muestra. Por lo tanto, el conjunto de bloques candidatos iniciales solo puede tener los dos bloques directamente vecinos de la posición de muestra superior izquierda del bloque actual como sus elementos.
[0065] Alternativamente, el conjunto de bloques candidatos iniciales viene dado por todos los bloques que han sido codificados antes del bloque actual y contienen una o más muestras que representan vecinos espaciales directos (los vecinos espaciales directos pueden restringirse a vecinos izquierdos directos y/o vecinos superiores directos y/o vecinos derechos directos y/o vecinos inferiores directos) de cualquier muestra del bloque actual. Incluso de manera alternativa, el conjunto de bloques candidatos iniciales incluye adicionalmente (o exclusivamente) bloques que contienen una o más muestras que están ubicadas en la misma posición que cualquiera de las muestras del bloque actual pero están contenidas en una imagen diferente (ya codificada). El conjunto de candidatos iniciales de bloques puede representar un subconjunto de los conjuntos de bloques (vecinos) descritos anteriormente. El subconjunto de bloques candidatos puede ser fijo, señalado o derivado. La derivación del subconjunto de bloques candidatos puede considerar las decisiones tomadas para otros bloques en la imagen o en otras imágenes. Como ejemplo, los bloques que están asociados con los mismos parámetros de codificación (o muy similares) que otros bloques candidatos podrían no incluirse en el conjunto de candidatos iniciales de bloques.
[0066] El conjunto de bloques candidatos iniciales también podría derivarse como para una de las realizaciones descritas anteriormente, pero con la siguiente restricción: Solo los bloques que usan predicción de movimiento compensado (predicción inter) pueden ser elementos del conjunto de bloques candidatos. Es decir, los bloques intracodificados no se incluyen en el conjunto de candidatos (inicial).
[0067] Como ya se ha indicado anteriormente, de acuerdo con las realizaciones de la presente invención, la lista de candidatos se extiende por candidatos adicionales para la fusión de bloques, tal como por candidatos a fusión bipredictivos combinados, candidatos a fusión bipredictivos no escalados y un vector de movimiento cero.
[0068] La derivación del conjunto inicial de bloques candidatos se realiza tanto por el codificador como por el decodificador de la misma manera.
2. Derivación del conjunto final de bloques candidatos.
[0069] Después de derivar el conjunto de candidatos iniciales, se analizan los parámetros asociados de los bloques candidatos dentro del conjunto de candidatos iniciales y se eliminan los candidatos a fusión para los cuales una fusión daría como resultado un particionamiento que podría representarse mediante el uso de un patrón de particionamiento diferente. Si las matrices de muestras que se pueden fusionar son de diferente forma y/o tamaño, pueden existir particionamientos idénticos que se pueden describir mediante al menos dos palabras de código diferentes. Por ejemplo, si el codificador decide dividir una matriz de muestras en dos matrices de muestras, esta división se revertiría fusionando las dos matrices de muestras. Para evitar tales descripciones redundantes, el conjunto de bloques candidatos para la fusión se restringe en función de las formas de bloque y divisiones particulares que se permiten. Por otro lado, las formas permitidas de matrices de muestras se pueden restringir dependiendo de las listas de candidatos particulares usadas para la fusión. Las dos instalaciones de división y fusión tienen que diseñarse juntas de modo que, en combinación con las dos, se eviten descripciones redundantes.
[0070] Preferentemente, el conjunto de modos de división (o modos de particionamiento) representados en la Fig. 6 son soportados para bloques cuadrados. Si un bloque cuadrado de un tamaño particular se divide en cuatro bloques cuadrados más pequeños del mismo tamaño (patrón inferior izquierdo en la Fig. 6), el mismo conjunto de patrones de particionamiento se puede aplicar a los cuatro bloques cuadrados resultantes de modo que se pueda especificar un particionamiento jerárquico. Después de derivar el conjunto de bloques candidatos iniciales, la reducción de las listas de candidatos se realiza de la siguiente manera.
- Si el bloque actual no se particiona más (patrón superior izquierdo en la Fig. 6), la lista de candidatos iniciales no se reduce. Es decir, todos los candidatos iniciales representan los candidatos finales para la fusión.
- Si el bloque actual se particiona en exactamente dos bloques de tamaño arbitrario, uno de estos dos bloques se codifica antes que el otro, lo que se determina mediante la sintaxis. Para el primer bloque codificado, el conjunto de candidatos iniciales no se reduce. Pero para el segundo bloque codificado, todos los bloques candidatos que tienen los mismos parámetros asociados que el primer bloque se eliminan del conjunto de candidatos (esto incluye el primer bloque codificado).
- Si un bloque se particiona en cuatro bloques cuadrados del mismo tamaño, la lista de candidatos iniciales de los tres primeros bloques (en orden de codificación) no se reduce. Todos los bloques de la lista de candidatos iniciales también están presentes en la lista de candidatos finales. Pero para el cuarto (último) bloque en orden de codificación, se aplica lo siguiente:
- Si los bloques que están en una fila diferente (en el esquema de particionamiento como se ilustra en la parte inferior izquierda de la Fig. 6) que el bloque actual tienen los mismos parámetros asociados (por ejemplo, parámetros de movimiento), todos los candidatos que tienen los mismos parámetros de movimiento que el bloque ya codificado en la misma fila que el bloque actual se eliminan del conjunto de candidatos (esto incluye el bloque en la misma fila).
- Si los bloques que están en una columna diferente (en el esquema de particionamiento como se ilustra en la parte inferior izquierda de la Fig. 6) que el bloque actual tienen los mismos parámetros asociados (por ejemplo, parámetros de movimiento), todos los candidatos que tienen los mismos parámetros de movimiento que el bloque ya codificado en la misma columna que el bloque actual se eliminan del conjunto de candidatos. (esto incluye el bloque en la misma columna)
[0071] En una variación de baja complejidad, la reducción de las listas de candidatos se realiza de la siguiente manera.
- Si el bloque actual no se particiona más (patrón superior izquierdo en la Fig. 6), la lista de candidatos iniciales no se reduce. Es decir, todos los candidatos iniciales representan los candidatos finales para la fusión.
- Si el bloque actual se particiona en exactamente dos bloques de tamaño arbitrario, uno de estos dos bloques se codifica antes que el otro, lo que se determina mediante la sintaxis. Para el primer bloque codificado, el conjunto de candidatos iniciales no se reduce. Pero para el segundo bloque codificado, el primer bloque codificado del patrón de particionamiento se elimina del conjunto de candidatos.
- Si un bloque se particiona en cuatro bloques cuadrados del mismo tamaño, la lista de candidatos iniciales de los tres primeros bloques (en orden de codificación) no se reduce. Todos los bloques de la lista de candidatos iniciales también están presentes en la lista de candidatos finales. Pero para el cuarto (último) bloque en orden de codificación, se aplica lo siguiente:
- Si para el bloque en la otra fila (que no sea el bloque actual) que se codifica más tarde, la información de fusión indica que se fusiona con el primer bloque codificado de esa fila, el bloque en la misma fila que el bloque actual se elimina del conjunto de candidatos.
- Si para el bloque en la otra columna (que no sea el bloque actual) que se codifica más tarde, la información de fusión señala que se fusiona con el primer bloque codificado de esa columna, el bloque en la misma columna que el bloque actual se elimina del conjunto de candidatos.
[0072] Alternativamente, se soportan los mismos patrones de particionamiento que se representan en la Fig. 6, pero sin los patrones que particionan el bloque cuadrado en dos bloques rectangulares del mismo tamaño. La reducción de la lista de candidatos procede como se describió anteriormente, con excepción del patrón que divide el bloque en cuatro bloques cuadrados. Aquí, todos los candidatos iniciales están permitidos para todos los sub-bloques o solo la lista de candidatos del último sub-bloque codificado está restringida de la siguiente manera. Si los tres bloques previamente codificados están asociados con los mismos parámetros, todos los candidatos que están asociados con estos parámetros se eliminan de la lista de candidatos. En una versión de baja complejidad, el último sub-bloque codificado no se puede fusionar con ninguno de los tres sub-bloques previamente codificados si estos tres sub-bloques se han fusionado juntos.
[0073] Se puede soportar un conjunto diferente de patrones de particionamiento para un bloque (o cualquier otra forma de conjunto de matrices de muestras). Para conjuntos de matrices de muestras que no están particionados, todos los candidatos de las listas de candidatos iniciales se pueden usar para la fusión. Si una matriz de muestras está particionada en exactamente dos matrices de muestras, para las matrices de muestras que están primero en orden de codificación, todos los candidatos del conjunto de candidatos iniciales se insertan en el conjunto de candidatos finales. Para la segunda matriz de muestras en orden de codificación, se eliminan todos los candidatos que tienen los mismos parámetros asociados que la primera matriz de muestras. O en una variación de baja complejidad, solo se elimina la primera matriz de muestras del conjunto de candidatos. Para patrones de particionamiento que dividen una matriz de muestras en más de 2 matrices de muestras, la eliminación de candidatos depende de si se puede simular otro patrón de particionamiento con el patrón de partición actual y la información de fusión correspondiente. El procedimiento de eliminación de candidatos sigue el concepto explícitamente descrito anteriormente, pero considera los patrones de candidatos realmente soportados.
[0074] Podría ser que, si el modo de SALTO/DIRECTO es soportado para un bloque en particular, los candidatos a fusión que también son candidatos presentes para los modos de SALTO/DIRECTO se eliminan de la lista de candidatos. Esta eliminación puede reemplazar las eliminaciones de bloques candidatos descritas anteriormente o usarse junto con las eliminaciones de bloques candidatos descritas anteriormente.
3. Combinación con modos de SALTO/DIRECTO
[0075] Los modos de SALTO/DIRECTO pueden ser soportados para todos o solo para un tamaño de bloque y/o forma de bloque particular. Se usa un conjunto de bloques candidatos para los modos de SALTO/DIRECTO. La diferencia entre SALTO y DIRECTO es si se envía o no información residual. Se infiere que los parámetros (por ejemplo, para la predicción) de SALTO y DIRECTO son iguales a cualquiera de los candidatos correspondientes. El candidato se elige transmitiendo un índice a la lista de candidatos.
[0076] Preferentemente, la lista de candidatos para SALTO/DIRECTO puede contener diferentes candidatos. En la Fig. 8 se ilustra un ejemplo. La lista de candidatos puede incluir los siguientes candidatos (el bloque actual se indica por Xi):
- Mediana (entre Izquierda, Arriba, Esquina)
- Bloque izquierdo (Li)
- Bloque de arriba (Ai)
- Bloques de esquina (En orden: Arriba a la derecha (Ci1), Abajo a la izquierda (Ci2), Arriba a la izquierda (Ci3)) - Bloque coubicado en una imagen diferente, pero ya codificada
[0077] Preferentemente, los candidatos para la fusión incluyen Li (bloque izquierdo) y Ai (bloque de arriba). La elección de estos candidatos para la fusión requiere una pequeña cantidad de información conexa para señalar con qué bloque se fusiona el bloque actual.
[0078] Para describir las siguientes realizaciones se usa la siguiente notación:
- set_mvp_ori es un conjunto de candidatos usados para el modo de SALTO/DIRECTO. Este conjunto está compuesto por {Mediana, Izquierda, Arriba, Esquina, Coubicado}, donde Mediana es la mediana (valor medio en un conjunto ordenado de Izquierda, Arriba y Esquina), y coubicado está dado por la trama de referencia más cercana y se escala según la distancia temporal.
- set_mvp_comb es un conjunto de candidatos usados para el modo de SALTO/DIRECTO en combinación con el procedimiento de fusión de bloques.
[0079] Preferentemente, la combinación entre el modo de SALTO/DIRECTO y el modo de fusión de bloques se puede procesar con el conjunto original de candidatos. Esto significa que el modo de SALTO/DIRECTO tiene el mismo conjunto de candidatos que cuando se activa solo. El interés de combinar estos dos modos proviene de su complementariedad en la señalización de la información conexa en intertrama. A pesar del hecho de que estos dos modos están usando información de los vecinos con el fin de mejorar la señalización del bloque actual, la fusión de bloques está procesando solo los vecinos de la izquierda y de arriba y el modo de SALTO/DIRECTO está procesando hasta 5 candidatos. La principal complementariedad reside en la diferente estrategia de procesamiento de la información del vecino. El procedimiento de fusión de bloques mantiene el conjunto completo de información de sus vecinos para todas las listas de referencia. Esto significa que la fusión de bloques mantiene la información conexa completa de estos vecinos y no solo sus vectores de movimiento por lista de referencia, mientras que el modo de SALTO/DIRECTO procesa por separado los parámetros de predicción para cada lista de referencia y transmite un índice a una lista de candidatos para cada lista de referencia. Es decir, para las imágenes bipredichas, se transmiten dos índices para señalar un candidato para la lista de referencia 0 y un candidato para la lista de referencia 1.
[0080] Preferentemente, se puede encontrar un conjunto combinado de candidatos, llamado set_mvp_comb, para el modo de SALTO/DIRECTO en combinación con el modo de fusión de bloques. Este conjunto combinado forma parte del conjunto original (set_mvp_ori) y permite una reducción de la señalización para el modo de SALTO/DIRECTO, debido a la reducción de la lista de candidatos: set_mvp_comb. Los candidatos que deberían eliminarse de la lista original (set_mvp_ori) son aquellos que podrían ser redundantes con el procedimiento de fusión de bloques o que no se usan a menudo.
[0081] Preferentemente, la combinación entre el modo de SALTO/DIRECTO y el procedimiento de fusión de bloques se puede procesar con el conjunto combinado de candidatos (set_mvp_comb), que es el conjunto original (set_mvp_ori) sin la mediana. Debido a una baja eficiencia observada para la Mediana para el modo de SALTO/DIRECTO, su reducción de la lista original, trae una mejora en la eficiencia de codificación.
[0082] Además, la combinación del modo de SALTO/DIRECTO y la fusión de bloques se puede procesar con el conjunto combinado de candidatos (set_mvp_comb), que es el conjunto original (set_mvp_ori) solo con la Esquina y/o con el Coubicado como candidatos.
[0083] Aún más, la combinación del modo de SALTO/DIRECTO y el procedimiento de fusión de bloques se puede procesar con el conjunto combinado de candidatos, que es el set_mvp_ori con solo la Esquina y el Coubicado como candidatos. A pesar de la complementariedad entre el modo de SALTO/DIRECTO y la fusión de bloques, como ya se ha mencionado, los candidatos que deberían eliminarse de la lista son los que podrían ser redundantes con los candidatos del procedimiento de fusión de bloques. Estos candidatos son Izquierda y Arriba. El conjunto combinado de candidatos (set_mvp_comb) se ha reducido a sólo dos candidatos: Esquina y Coubicado. El modo de SALTO/DIRECTO usando este set_mvp_comb candidato, combinado con el procedimiento de fusión de bloques da un alto aumento en la eficiencia de la señalización de la información conexa en intertramas. Podría ser que el modo de SALTO/DIRECTO y el modo de fusión no compartan ningún bloque candidato.
[0084] Además, se puede usar una combinación ligeramente diferente del modo de SALTO/DIRECTO y de fusión. Es posible habilitar el modo de SALTO/DIRECTO (por ejemplo, con más candidatos que el modo de fusión) solo para bloques particulares (por ejemplo, con un tamaño mayor que un tamaño especificado, o solo para bloques cuadrados, etc.) y no soportar el modo de fusión para estos bloques. O se puede eliminar el modo de SALTO/DIRECTO y todos los candidatos (incluidos los parámetros que representan una combinación de parámetros para los bloques vecinos espaciales/temporales) se añaden al modo de fusión como candidatos. Esta opción se ha descrito en las Figs.
1 a 5. El conjunto de candidatos aumentado solo se podría usar para bloques particulares (con un tamaño mayor que un tamaño mínimo dado, o bloques cuadrados, etc.), donde para otros bloques se usa un conjunto de candidatos reducido. O como una variante adicional, el modo de fusión se usa con un conjunto de candidatos reducido (por ejemplo, solo el vecino superior e izquierdo) y se usan candidatos adicionales (por ejemplo, el vecino superior izquierdo, el bloque coubicado, etc.) para el modo de SALTO/DIRECTO. También en tales configuraciones, los modos de SALTO/DIRECTO solo se pueden permitir para bloques particulares (con un tamaño mayor que un tamaño mínimo dado, o bloques cuadrados, etc.), mientras que el modo de fusión se permite para un conjunto más grande de bloques.
4. Transmisión de información de fusión
[0085] Para una realización de comparación, puede aplicarse lo siguiente. Imaginemos que solo se consideran candidatos los dos bloques que contienen la muestra vecina izquierda y superior de la muestra superior izquierda de los bloques actuales. Si el conjunto de bloques candidatos finales (después de la eliminación de candidatos como se describió anteriormente) no está vacío, se señala una bandera llamada bandera de fusión, que especifa si el bloque actual se fusiona con cualquiera de los bloques candidatos. Si la bandera de fusión es igual a 0 (para «false»), este bloque no se fusiona con uno de sus bloques candidatos y todos los parámetros de codificación se transmiten normalmente. Si la bandera de fusión es igual a 1 (para «true»), se aplica lo siguiente. Si el conjunto de bloques candidatos contiene uno y solo un bloque, este bloque candidato se usa para fusión. De lo contrario, el conjunto de bloques candidatos contiene exactamente dos bloques. Si los parámetros de predicción de estos dos bloques son idénticos, estos parámetros de predicción se usan para el bloque actual. De lo contrario (los dos bloques tienen parámetros de predicción diferentes), se señala una bandera llamada merge_left_flag. Si merge_left_flag es igual a 1 (para «true»), el bloque que contiene la posición de muestra vecina izquierda de la posición de muestra superior izquierda del bloque actual se selecciona del conjunto de bloques candidatos. Si merge_left_flag es igual a 0 (para «false»"), se selecciona el otro bloque (es decir, el vecino superior) del conjunto de bloques candidatos. Los parámetros de predicción del bloque seleccionado se usan para el bloque actual. Se puede transmitir un elemento de sintaxis combinado que señale el procedimiento de fusión. Aún más, el merge_left_flag se puede transmitir independientemente de si los dos bloques candidatos tienen los mismos parámetros de predicción.
[0086] Cabe señalar que el elemento de sintaxis merge left flag también podría denominarse merge index ya que su función es indexar el elegido entre los candidatos no eliminados.
[0087] Alternativamente, se pueden incluir más de dos bloques en el conjunto de bloques candidatos. La información de fusión (es decir, si un bloque se fusiona y, en caso afirmativo, con qué bloque candidato se fusiona) se señala mediante uno o más elementos de sintaxis. En este caso, el conjunto de palabras de código depende del número de candidatos en el conjunto de candidatos finales y se selecciona de la misma manera en el codificador y el decodificador. La información de fusión puede transmitirse usando un elemento de sintaxis. En otra realización, un elemento de sintaxis especifica si el bloque se fusiona con cualquiera de los bloques candidatos (véase la bandera merge_flag descrita anteriormente). Esta bandera solo se transmite si el conjunto de bloques candidatos no está vacío. El segundo elemento de sintaxis señala cuál de los bloques candidatos se emplea para la fusión; solo se transmite si el primer elemento de sintaxis señala que el bloque actual se fusiona con uno de los bloques candidatos. Además, el segundo elemento de sintaxis solo se transmite si el conjunto de bloques candidatos contiene más de un bloque candidato y/o si cualquiera de los bloques candidatos tiene parámetros de predicción diferentes de cualquier otro de los bloques candidatos. La sintaxis puede depender de cuántos bloques candidatos se den y/o de cómo se asocien parámetros de predicción diferentes con los bloques candidatos.
[0088] Es posible añadir un conjunto de candidatos para la fusión de bloques como se hizo para el modo DIRECTO.
[0089] Como se describió anteriormente, el segundo elemento de sintaxis merge index solo se puede transmitir si la lista de candidatos contiene más de un candidato. Esto requiere derivar la lista antes de analizar sintácticamente merge index, impidiendo llevar a cabo estos dos procedimientos en paralelo. Para permitir un mayor rendimiento de análisis sintáctico y hacer que el procedimiento de análisis sintáctico sea más robusto con respecto a los errores de transmisión, es posible eliminar esta dependencia mediante el uso de una palabra de código fija para cada valor de índice y un número fijo de candidatos. Si este número no puede ser alcanzado por una selección de candidatos, es posible derivar candidatos auxiliares para completar la lista. Estos candidatos adicionales pueden incluir los llamados candidatos combinados, que se construyen a partir de parámetros de movimiento de candidatos posiblemente diferentes ya en la lista, y vectores de movimiento cero.
[0090] La sintaxis para señalar cuál de los bloques del conjunto de candidatos puede adaptarse simultáneamente en el codificador y el decodificador. Si, por ejemplo, se dan 3 opciones de bloques para la fusión, esas tres opciones solo están presentes en la sintaxis y se consideran para la codificación de entropía. Las probabilidades para todas las demás opciones se consideran 0 y el códec de entropía se ajusta simultáneamente en el codificador y el decodificador.
[0091] Los parámetros de predicción que se infieren como consecuencia del procedimiento de fusió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 cual se usa predicción de múltiples hipótesis).
[0092] Preferentemente, los elementos de sintaxis relacionados con la información de fusión son codificados por entropía usando modelado de contexto. Los elementos de sintaxis pueden consistir en merge_flag y merge_left_flag descritos anteriormente.
[0093] Se puede usar uno de cada tres modelos de contexto para codificar el merge_flag. El modelo de contexto usado merge_flag_ctx se deriva de la siguiente manera. Si el conjunto de bloques candidatos contiene dos elementos, el valor de merge_flag_ctx es igual a la suma de los valores de merge_flag de los dos bloques candidatos. Si el conjunto de bloques candidatos contiene un elemento, el valor de merge_flag_ctx es igual a dos veces el valor de merge_flag de este un bloque candidato.
[0094] Preferentemente, merge_left_flag se codifica usando un único modelo de probabilidad.
[0095] Se puede usar codificación de diferentes modelos de contexto para merge_idx (merge_left_flag).
[0096] Alternativamente, se podrían usar diferentes modelos de contexto. Los elementos de sintaxis no binarios pueden asignarse a una secuencia de símbolos binarios (bins). Los modelos de contexto para algunos elementos de sintaxis o bins de elementos de sintaxis pueden derivar en función de elementos de sintaxis ya transmitidos de bloques vecinos o el número de bloques candidatos u otras medidas, mientras que otros elementos de sintaxis o bins de elementos de sintaxis pueden codificarse con un modelo de contexto fijo.
5. Funcionamiento del codificador
[0097] La inclusión del concepto de fusión proporciona un codificador con una mayor libertad para la creación de un tren de bits, ya que la estrategia de fusión aumenta significativamente el número de posibilidades para seleccionar un particionamiento para las matrices de muestras de una imagen, por supuesto, a una mayor tara de señalización. Algunos o todos los patrones adicionales que se pueden representar mediante una combinación de subparticionamiento y fusión (por ejemplo, los patrones de la Fig. 7, cuando se soporta el patrón de particionamiento de la Fig. 6) se pueden probar adicionalmente (usando los tamaños de bloque correspondientes para estimación de movimiento y decisión de modo) y el mejor de los patrones proporcionados mediante particionamiento puro (Fig. 6) y mediante particionamiento y fusión (Fig. 7) se puede seleccionar en función de una medida de distorsión de velocidad particular. Además, para cada bloque se puede probar si una fusión con cualquiera de los conjuntos de candidatos ya codificados produce una disminución de una medida de distorsión de velocidad particular y a continuación se establecen las banderas de fusión correspondientes durante el procedimiento de codificación.
[0098] El codificador podría determinar primero la mejor subdivisión de las matrices de muestras (como en los esquemas de codificación de última generación). Y a continuación podría verificar, para cada conjunto de muestras, si una fusión con otro conjunto de muestras u otro grupo de conjuntos de muestras reduce una medida de coste de distorsión de velocidad particular. En este caso, los parámetros de predicción asociados con el grupo fusionado de conjuntos de muestras pueden reestimarse (por ejemplo, realizando una nueva búsqueda de movimiento) o los parámetros de predicción que ya se han determinado para el conjunto de muestras actual y el conjunto de muestras candidato (o grupo de conjuntos de muestras) para la fusión podrían evaluarse para el grupo considerado de conjuntos de muestras.
[0099] Además, podría evaluarse la medida de coste de distorsión de velocidad particular para grupos de candidatos adicionales de conjuntos de muestras. Como ejemplo particular, cuando se prueban los diversos patrones de particionamiento posibles (véase la Fig. 6, por ejemplo), se pruebe probar adicionalmente parte o la totalidad del patrón que se puede representar mediante una combinación de particionamiento y fusión (véase la Fig. 7, por ejemplo). Es decir, para todos los patrones se lleva a cabo un procedimiento específico de estimación de movimiento y decisión de modo y se selecciona el patrón que produce la medida de distorsión de velocidad más pequeña. Este procedimiento también se puede combinar con el procedimiento de baja complejidad descrito anteriormente, de modo que para los bloques resultantes se prueba adicionalmente si una fusión con bloques ya codificados (por ejemplo, fuera de los patrones de la Fig. 6 y la Fig. 7) produce una disminución en una medida de distorsión de velocidad.
[0100] En otra realización preferida, el codificador prueba los diferentes patrones que se pueden representar mediante particionamiento y fusión en un orden de prioridad y prueba tantos patrones como sea posible mediante un requisito de tiempo real dado. El orden de prioridad también puede modificarse en función de los bloques ya codificados y los patrones de particionamiento elegidos.
[0101] Una forma de transferir la descripción descrita anteriormente a una sintaxis específica se explica a continuación con respecto a las siguientes figuras. En particular, las Figs. 9-11 muestran diferentes porciones de una sintaxis. En particular, la imagen 20 se divide en primer lugar en bloques de árbol de codificación cuyo contenido de imagen se codifica usando la sintaxis coding_tree mostrada en la Fig. 9. Tal como se muestra en este documento, para entropy_coding_mode_flag=1, que se refiere, por ejemplo, a la codificación aritmética binaria adaptativa al contexto u otro modo de codificación de entropía específico, la subdivisión de árbol cuádruple del bloque de árbol de codificación actual se señala dentro de la porción de sintaxis coding_tree mediante las banderas llamadas split_coding_unit_flag en la marca 400. Como se muestra en la Fig. 9, el bloque de raíz arbórea se subdivide según lo señalado por split_coding_unit_flag en un primer orden transversal en profundidad como se muestra en la Fig. 9a. Cada vez que se alcanza un nodo de hoja, lo mismo representa un conjunto de codificación que se codifica de inmediato usando la función de sintaxis coding_unit. Esto se puede ver en la Fig. 9 cuando se observa la cláusula if en 402 que verifica si la split_coding_unit_flag actual está configurada o no. En caso afirmativo, se llama recursivamente a la función coding_tree, lo que lleva a una transmisión/extracción adicional de una split_coding_unit_flag adicional en el codificador y decodificador, respectivamente. Si no es así, es decir, si la split_coding_unit_flag=0, el sub-bloque actual del bloque de raíz arbórea 200 de la Fig. 5a es un bloque de hoja y, con el fin de codificar este conjunto de codificación, se llama a la función coding_unit de la Fig. 10 en 404.
[0102] En la realización de comparación descrita actualmente, se usa la opción mencionada anteriormente según la cual la fusión es simplemente utilizable para imágenes para las cuales está disponible el modo de predicción inter. Es decir, los sectores/imágenes intracodificados no usan la fusión de todos modos. Esto es visible en la Fig. 10, donde la bandera merge_flag se transmite en 406 simplemente en caso de que un tipo de sector no sea igual al tipo de sector intraimagen. La fusión se refiere, de acuerdo con la presente realización de comparación, simplemente a los parámetros de predicción relacionados con la predicción inter. De acuerdo con la presente realización de comparación, la merge_flag se señala para todo el conjunto de codificación 40 y también señala al decodificador un determinado modo de particionamiento para el conjunto de codificación actual, concretamente el modo de no particionamiento. Por consiguiente, la función prediction_unit se denomina 408 con la indicación de que el conjunto de codificación actual es un conjunto de predicción. Sin embargo, esta no es la única posibilidad de activar la opción de fusión. Más bien, si la merge_flag relacionada con todo el conjunto de codificación no se establece en 406, el tipo de predicción del conjunto de codificación del sector no intraimagen se señala en 410 mediante el elemento de sintaxis pred_type con, dependiendo de ello, la función de llamada prediction_unit para cualquier partición del conjunto de codificación actual en, por ejemplo, 412 en caso de que el conjunto de codificación actual no se particione adicionalmente. En la Fig. 10, simplemente se muestran cuatro opciones de particionamiento diferentes, pero las otras opciones de particionamiento mostradas en la Fig. 6 también pueden estar disponibles. Otra posibilidad sería que la opción de particionamiento PART_NxN no esté disponible, sino las otras. La asociación entre los nombres para los modos de particionamiento usados en la Fig. 10 a las opciones de particionamiento mostradas en la Fig. 6 se indica en la Fig.6 por los respectivos subíndices debajo de las opciones de particionamiento individuales. La función prediction_unit se llama para cada partición, tal como las particiones 50 y 60 en el orden de codificación mencionado anteriormente. La función prediction_unit comienza verificando la merge_flag en 414. Si se establece la merge_flag, en 416 sigue inevitablemente un merge_index. La verificación en la etapa 414, es para verificar si se ha establecido o no la merge_flag relacionada con todo el conjunto de codificación como se señalizó en 406. Si no es así, se señaliza de nuevo una merge_flag en 418, y si se establece este último, sigue un merge_index en 420 que indica el candidato a fusión para la partición actual. Nuevamente, se señaliza merge_flag para la partición actual en 418 simplemente en caso de que el modo de predicción actual del conjunto de codificación actual sea un modo de predicción inter (véase 422).
[0103] Como es visible en la Fig. 11, la transmisión de los parámetros de predicción en uso para el conjunto de predicción actual en 424 se realiza, de acuerdo con la presente realización de comparación, simplemente en caso de que la fusión no se use para el presente conjunto de predicción.
[0104] Aunque la descripción anterior de la realización de comparación de las Figs. 9-11 ya describe la mayoría de la funcionalidad y semántica, a continuación se presenta alguna información adicional.
[0105] merge_flag[x0][y0] especifica si los parámetros de predicción inter para el conjunto de predicción actual (véanse 50 y 60 en las figuras) se infieren de una partición interpredicha vecina. Los índices de matriz x0, y0 especifican la ubicación (x0, y0) de la muestra de luma superior izquierda del bloque de predicción considerado (véanse 50 y 60 en las figuras) con respecto a la muestra de luma superior izquierda de la imagen (véase 20 en las figuras).
[0106] merge_idx[x0][y0] especifica el índice de candidato a fusión de la lista de candidatos a fusión donde x0, y0 especifican la ubicación (x0, y0) de la muestra de luma superior izquierda del bloque de predicción considerado con respecto a la muestra de luma superior izquierda de la imagen.
[0107] Aunque no se indica específicamente en la descripción anterior de las Figs. 9-11, los candidatos a fusión o la lista de candidatos a fusión se determinan en esta realización de comparación usando de manera ejemplar no solo parámetros de codificación o parámetros de conjuntos de predicción/particiones espacialmente vecinos, sino que también se forma una lista de candidatos mediante el uso de parámetros de predicción de particiones temporalmente vecinas de imágenes temporalmente vecinas y previamente codificadas. Además, se usan combinaciones de parámetros de predicción de conjuntos de predicción/particiones espacial y/o temporalmente vecinos y se incluyen en la lista de candidatos a fusión. Naturalmente, se puede usar simplemente un subconjunto de los mismos. En particular, la Fig. 12 muestra una posibilidad de determinar vecinos espaciales, es decir, particiones o conjuntos de predicción espacialmente vecinos. La Fig. 12 muestra de manera ejemplar un conjunto 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, concretamente B2 que es diagonalmente adyacente al píxel superior izquierdo de la partición 60, B1 que se ubica verticalmente por encima y adyacente al píxel superior derecho de la partición 60, B0 que se ubica diagonalmente al píxel superior derecho de la partición 60, A1 que se ubica horizontalmente a la izquierda de y adyacente al píxel inferior izquierdo de la partición 60, y A0 que se ubica diagonalmente al píxel inferior izquierdo 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 del mismo forman un candidato a fusión.
[0108] Con el fin de realizar la eliminación anteriormente mencionada de los candidatos que conduciría a otro modo de particionamiento que también habría estado disponible, se podrían usar las siguientes funciones:
En particular, el candidato N, es decir, los parámetros de codificación/predicción que se derivan del conjunto de predicción/partición que cubre el píxel N=(Bü, B1, B2, A0 , A1), es decir, la posición (xN, yN), se elimina de la lista de candidatos si cualquiera de las siguientes condiciones es verdadera (consúltese la Fig. 6 para el modo de particionamiento PartMode y el índice de particionamiento correspondiente PartIdx que indexa la partición respectiva dentro del conjunto de codificación):
- PartMode del conjunto de predicción actual es PART_2NxN y PartIdx es igual a 1 y los conjuntos de predicción que cubren la ubicación de luma (xP, yP -1) (Partldx = 0) 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 del conjunto de predicción actual es PART_Nx2N y PartIdx es igual a 1 y los conjuntos de predicción que cubren la ubicación de luma (xP - 1, yP) (Par- tIdx = 0) 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]
predFlagLX[xP -1, yP] = = predFlagLX[xN, yN]
- PartMode del conjunto de predicción actual es PART_NxN y PartIdx es igual a 3 y los conjuntos de predicción que cubren la ubicación de luma (xP - 1, yP) (PartIdx = 2) y la 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] = = refIdxLX[xP -1, yP -1]
predFlagLX[xP -1, yP] = = predFlagLX[xP -1, yP -1]
y los conjuntos 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 del conjunto de predicción actual es PART_NxN y PartIdx es igual a 3 y los conjuntos 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 los conjuntos 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]
[0109] En este sentido, obsérvese que la posición o ubicación (xP, yP) denota el píxel más alto de la partición/conjunto de predicción actual. Es decir, de acuerdo con el primer elemento, se verifican todos los candidatos a parámetros de codificación que se han derivado adoptando directamente los parámetros de codificación respectivos de conjuntos de predicción vecinos, concretamente el conjunto de predicción N. Sin embargo, los otros candidatos a parámetros de codificación adicionales pueden verificarse de la misma manera en cuanto a si son iguales a los parámetros de codificación del conjunto de predicción respectivo que surge con lo que daría como resultado la obtención de otro patrón de particionamiento también soportado por la sintaxis. De acuerdo con las realizaciones de comparación recién descritas, la igualdad de los parámetros de codificación comprende una verificación de la igualdad del vector de movimiento, es decir, mvLX, el índice de referencia, es decir, reflxLX, 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, donde X es 0 o 1, se usan en la predicción inter.
[0110] Obsérvese que la posibilidad recién descrita para la eliminación de candidatos a parámetros de codificación de conjuntos de predicción/particiones vecinos también sería aplicable en caso de soportar modos de particionamiento asimétricos mostrados en la mitad derecha de la Fig. 6. En ese caso, el modo PART_2NxN podría representar todos los modos de subdivisión horizontal y PART_Nx2N podría corresponder a todos los modos de subdivisión vertical. Además, el modo PART_2NxN podría excluirse de los modos de particionamiento o patrones de particionamiento soportados y, en ese caso, simplemente se tendrían que realizar las dos primeras verificaciones de eliminación.
[0111] Con respecto a la realización de comparación, Figs. 9-12, también debería observarse que es posible excluir las particiones intrapredichas de la lista de candidatos, es decir, sus parámetros de codificación, naturalmente, no se incluyen en la lista de candidatos.
[0112] Además, se observa que se podrían usar tres contextos para la merge_flag y el merge_index.
[0113] Aunque se han descrito algunos aspectos en el contexto de un aparato, es evidente que estos aspectos representan también una descripción del procedimiento correspondiente, donde un bloque o dispositivo corresponde a una etapa de procedimiento o un rasgo de una etapa de procedimiento. De forma análoga, los aspectos descritos en el contexto de una etapa de procedimiento representan también una descripción de un bloque o elemento o rasgo correspondiente de un aparato correspondiente. Algunas o todas las etapas del procedimiento se pueden ejecutar por (o usando) un aparato de hardware, como, por ejemplo, un microprocesador, un ordenador programable o un circuito electrónico. En algunas realizaciones, algunas de una o más de las etapas de procedimiento más importantes se pueden ejecutar por tales aparatos.
[0114] Dependiendo de ciertos requisitos de implementación, las realizaciones de la invención pueden implementarse en hardware o 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 tenga señales de control legibles electrónicamente almacenadas en el mismo, que cooperan (o son capaces de cooperar) con un sistema informático programable de modo que se realice el procedimiento respectivo. Por lo tanto, el medio de almacenamiento digital puede ser legible por ordenador.
[0115] Algunas realizaciones según la invención comprenden un soporte de datos que tiene señales de control legibles electrónicamente, que son capaces de cooperar con un sistema informático programable, de modo que se realiza uno de los procedimientos descritos en esta invención.
[0116] 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 procedimientos 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.
[0117] Otras realizaciones comprenden el programa informático para realizar uno de los procedimientos descritos en esta invención, almacenados en un soporte legible por máquina.
[0118] En otras palabras, una realización del procedimiento inventivo es, por lo tanto, un programa informático que tiene un código de programa para realizar uno de los procedimientos descritos en esta invención, cuando el programa informático se ejecuta en un ordenador.
[0119] Una realización adicional de los procedimientos 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 procedimientos descritos en esta invención. El soporte de datos, el medio de almacenamiento digital o el medio grabado son típicamente tangibles y/o no transitorios.
[0120] Una realización adicional del procedimiento inventivo es, por lo tanto, un tren de datos o una secuencia de señales que representan el programa informático para realizar uno de los procedimientos descritos en esta invención. El tren de datos o la secuencia de señales pueden estar configurados, por ejemplo, para que se transfieran a través de una conexión de comunicación de datos, por ejemplo, a través de Internet.
[0121] Una realización adicional comprende un medio de procesamiento, por ejemplo, un ordenador, o un dispositivo lógico programable, configurado para o adaptado para realizar uno de los procedimientos descritos en esta invención.
[0122] Una realización adicional comprende un ordenador que tiene instalado en el mismo el programa informático para realizar uno de los procedimientos descritos en esta invención.
[0123] Una realización adicional según 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 procedimientos descritos en esta invención a un receptor. El receptor puede, por ejemplo, ser un ordenador, un dispositivo móvil, un dispositivo de memoria o similares. El aparato o sistema puede, por ejemplo, comprender un servidor de archivos para transferir el programa informático al receptor.
[0124] En algunas realizaciones, puede usarse un dispositivo lógico programable (por ejemplo una matriz de puertas programable in situ) para realizar algunas o todas las funcionalidades de los procedimientos descritos en esta invención. En algunas realizaciones, una matriz de puertas programable in situ puede cooperar con un microprocesador con el fin de realizar uno de los procedimientos descritos en esta invención. En general, los procedimientos se realizan preferentemente mediante cualquier aparato de hardware.
[0125] Las realizaciones descritas anteriormente son simplemente ilustrativas de los principios de la presente invención. Se entiende que, para otros expertos en la materia, resultarán evidentes modificaciones y variaciones de las disposiciones y los detalles descritos en esta invención.
[0126] El alcance de protección está definido por las reivindicaciones adjuntas.

Claims (16)

REIVINDICACIONES
1. Decodificador (80) configurado para decodificar un tren de bits (30) que señala uno de los patrones de particionamiento soportados para un bloque actual (40) de una imagen (20), estando el decodificador configurado para si el señalado de los patrones de particionamiento soportados especifica una subdivisión del bloque actual (40) en dos o más particiones de bloque (50, 60),
para cada una de las particiones de bloque excepto una primera partición de bloque de las particiones de bloque del bloque actual en un orden de codificación (70),
determinar, para la partición de bloque respectiva (60) del bloque actual, un conjunto de candidatos a parámetros de codificación, donde
al menos algunos candidatos a parámetros de codificación se adoptan a partir de los parámetros de codificación de simplemente una partición de bloque previamente decodificada de modo que al menos algunos candidatos a parámetros de codificación sean iguales a los parámetros de codificación de dicha simplemente una partición de bloque previamente decodificada, y eliminar
del conjunto de candidatos a parámetros de codificación
para la partición de bloque respectiva (60), los candidatos a parámetros de codificación que son iguales a los parámetros de codificación asociados con cualquiera de las particiones de bloque que, al fusionarse con la partición de bloque respectiva (60), darían como resultado uno de los patrones de particionamiento soportados, caracterizado porque
la determinación del conjunto de candidatos a parámetros de codificación de la partición de bloque respectiva (60) del bloque actual comprende además derivar al menos algunos candidatos a parámetros de codificación adicionales de una combinación de parámetros de codificación de más de una partición de bloque previamente decodificada, o
de - por modificación - parámetros de codificación de una partición previamente decodificada.
2. Decodificador según la reivindicación 1, en el que el decodificador (80) está configurado para establecer, si un número de los candidatos a parámetros de codificación no eliminados es distinto de cero, los parámetros de codificación asociados con la partición de bloque respectiva (60) dependiendo de uno de los candidatos a parámetros de codificación no eliminados.
3. Decodificador según la reivindicación 1, en el que el decodificador (80) está configurado para establecer, si un número de los candidatos a parámetros de codificación no eliminados es distinto de cero, los parámetros de codificación asociados con la partición de bloque respectiva iguales a uno de los candidatos a parámetros de codificación no eliminados.
4. Decodificador según cualquiera de las reivindicaciones 2 a 3, en el que el decodificador está configurado para soportar modos de predicción intra e inter para el bloque actual y para realizar la fusión y eliminación simplemente en caso de que el bloque actual (40) esté codificado en modo de predicción inter.
5. Decodificador según cualquiera de las reivindicaciones 2 a 4, en el que los parámetros de codificación son parámetros de predicción y el decodificador está configurado para usar los parámetros de predicción de la partición de bloque respectiva (60) con el fin de derivar una señal de predicción para la partición de bloque respectiva (60).
6. Decodificador según cualquiera de las reivindicaciones 1 a 5, en el que el decodificador está configurado para, dependiendo de un número de candidatos a parámetros de codificación no eliminados para una partición de bloque respectiva, simplemente esperar que el tren de bits (30) comprenda un elemento de sintaxis que especifique cuál de los candidatos a parámetros de codificación no eliminados se emplea para fusión, si el número de candidatos a parámetros de codificación no eliminados para la partición de bloque respectiva es mayor que 1.
7. Decodificador según cualquiera de las reivindicaciones 1 a 6, en el que el decodificador (80) está configurado para determinar el conjunto de candidatos a parámetros de codificación para la partición de bloque respectiva en función, al menos parcialmente, de los parámetros de codificación asociados con particiones de bloque previamente decodificadas vecinas a la partición de bloque respectiva, y que se encuentran fuera y dentro del bloque actual, respectivamente.
8. Decodificador según cualquiera de las reivindicaciones 1 a 7, en el que el decodificador (80) está configurado para determinar el conjunto de candidatos a parámetros de codificación para la partición de bloque respectiva de un conjunto inicial de bloques previamente decodificados, excluyendo los que se codifican en un modo de predicción intra.
9. Decodificador según cualquiera de las reivindicaciones 1 a 8, en el que el decodificador (80) está configurado para subdividir la imagen (20) en bloques de codificación según la información de subdivisión contenida en el tren de bits (30), incluyendo los bloques de codificación el bloque actual.
10. Decodificador según la reivindicación 9, en el que el decodificador (80) está configurado para subdividir adicionalmente el bloque actual (40) en uno o más bloques de transformación según información de subdivisión adicional contenida en el tren de bits y para derivar una señal residual del bloque actual (40) del tren de bits (30) en conjuntos de los bloques de transformación.
11. Decodificador según cualquiera de las reivindicaciones 1 a 10, en el que la imagen tiene asociada con la misma un mapa de profundidad como información adicional.
12. Codificador (10) configurado para codificar una imagen (20) en un tren de bits (30), estando configurado el codificador para señalar dentro de un tren de bits (30) uno de los patrones de particionamiento soportados para un bloque actual (40); y si el señalado de los patrones de particionamiento soportados especifica una subdivisión del bloque actual (40) en dos o más particiones de bloque (50, 60),
para cada una de las particiones de bloque excepto una primera partición de bloque de las particiones de bloque del bloque actual en un orden de codificación (70),
determinar, para la partición de bloque respectiva (60) del bloque actual, un conjunto de candidatos a parámetros de codificación, donde
al menos algunos candidatos a parámetros de codificación se adoptan a partir de los parámetros de codificación de simplemente una partición de bloque previamente codificada de modo que al menos algunos candidatos a parámetros de codificación sean iguales a los parámetros de codificación de dicha simplemente una partición de bloque previamente codificada, y eliminar
del conjunto de candidatos a parámetros de codificación para la partición de bloque respectiva (60), los candidatos a parámetros de codificación que son iguales a
parámetros de codificación asociados con cualquiera de las particiones de bloque que, al fusionarse con la partición de bloque respectiva, darían como resultado uno de los patrones de particionamiento soportados, caracterizado porque
la determinación del conjunto de candidatos a parámetros de codificación de la partición de bloque respectiva (60) del bloque actual comprende además derivar al menos algunos candidatos a parámetros de codificación adicionales de una combinación de parámetros de codificación de más de una partición de bloque previamente codificada, o de - por modificación - parámetros de codificación de una partición previamente codificada.
13. Codificador según la reivindicación 12, en el que la imagen tiene asociado con la misma un mapa de profundidad como información adicional.
14. Procedimiento para decodificar un tren de bits (30) que señala uno de los patrones de particionamiento soportados para un bloque actual (40) de una imagen (20), comprendiendo el procedimiento
si el señalado de los patrones de particionamiento soportados especifica una subdivisión del bloque actual (40) en dos o más particiones de bloque (50, 60),
para cada una de las particiones de bloque excepto una primera partición de bloque de las particiones de bloque del bloque actual en un orden de codificación (70),
determinar, para la partición de bloque respectiva (60) del bloque actual, un conjunto de candidatos a parámetros de codificación, donde
al menos algunos candidatos a parámetros de codificación se adoptan a partir de los parámetros de codificación de simplemente una partición de bloque previamente decodificada de modo que al menos algunos candidatos a parámetros de codificación sean iguales a los parámetros de codificación de dicha simplemente una partición de bloque previamente decodificada, y eliminar
del conjunto de candidatos a parámetros de codificación para la partición de bloque respectiva (60), los candidatos a parámetros de codificación que son iguales a los parámetros de codificación asociados con cualquiera de las particiones de bloque que, al fusionarse con la partición de bloque respectiva (60), darían como resultado uno de los patrones de particionamiento soportados,
caracterizado porque
la determinación del conjunto de candidatos a parámetros de codificación de la partición de bloque respectiva (60) del bloque actual comprende además derivar al menos algunos candidatos a parámetros de codificación adicionales
de una combinación de parámetros de codificación de más de una partición de bloque previamente decodificada, o
de - por modificación - parámetros de codificación de una partición previamente decodificada.
15. Procedimiento para codificar una imagen (20) en un tren de bits (30), comprendiendo el procedimiento señalar dentro de un tren de bits (30) uno de los patrones de particionamiento soportados para un bloque actual (40); y
si el señalado de los patrones de particionamiento soportados especifica una subdivisión del bloque actual (40) en dos o más particiones de bloque (50, 60),
para cada una de las particiones de bloque excepto una primera partición de bloque de las particiones de bloque del bloque actual en un orden de codificación (70),
determinar, para la partición de bloque respectiva (60) del bloque actual, un conjunto de candidatos a parámetros de codificación, donde
al menos algunos candidatos a parámetros de codificación se adoptan a partir de los parámetros de codificación de simplemente una partición de bloque previamente codificada de modo que al menos algunos candidatos a parámetros de codificación sean iguales a los parámetros de codificación de dicha simplemente una partición de bloque previamente codificada, y eliminar
del conjunto de candidatos a parámetros de codificación para la partición de bloque respectiva (60), los candidatos a parámetros de codificación que son iguales a los parámetros de codificación asociados con cualquiera de las particiones de bloque que, al fusionarse con la partición de bloque respectiva (60), darían como resultado uno de los patrones de particionamiento soportados,
caracterizado porque
la determinación del conjunto de candidatos a parámetros de codificación de la partición de bloque respectiva (60) del bloque actual comprende además derivar al menos algunos candidatos a parámetros de codificación adicionales
de una combinación de parámetros de codificación de más de una partición de bloque previamente decodificada, o
de - por modificación - parámetros de codificación de una partición previamente codificada.
16. Programa informático que tiene un código de programa para realizar, cuando se ejecuta en un ordenador, un procedimiento según la reivindicación 14 o 15.
ES11767016T 2010-10-08 2011-10-10 Codificación de imágenes que soporta particionamiento de bloques y fusión de bloques Active ES2859635T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US39147310P 2010-10-08 2010-10-08
PCT/EP2011/067647 WO2012045886A1 (en) 2010-10-08 2011-10-10 Picture coding supporting block partitioning and block merging

Publications (1)

Publication Number Publication Date
ES2859635T3 true ES2859635T3 (es) 2021-10-04

Family

ID=44764172

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11767016T Active ES2859635T3 (es) 2010-10-08 2011-10-10 Codificación de imágenes que soporta particionamiento de bloques y fusión de bloques

Country Status (14)

Country Link
US (7) US10735748B2 (es)
EP (3) EP2625855B8 (es)
JP (6) JP2013545342A (es)
KR (10) KR101952103B1 (es)
CN (7) CN103477635B (es)
BR (1) BR112013008461B1 (es)
DK (1) DK2625855T3 (es)
ES (1) ES2859635T3 (es)
HK (2) HK1244981A1 (es)
HU (1) HUE053483T2 (es)
PL (1) PL2625855T3 (es)
PT (1) PT2625855T (es)
TW (8) TWI728431B (es)
WO (1) WO2012045886A1 (es)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK3301648T3 (da) 2010-04-13 2020-04-06 Ge Video Compression Llc Nedarvning i samplearraymultitræsunderinddeling
KR102145722B1 (ko) 2010-04-13 2020-08-20 지이 비디오 컴프레션, 엘엘씨 샘플 영역 병합
CN106231336B (zh) 2010-04-13 2020-06-12 Ge视频压缩有限责任公司 解码器、解码方法、编码器以及编码方法
KR102282803B1 (ko) 2010-04-13 2021-07-28 지이 비디오 컴프레션, 엘엘씨 평면 간 예측
KR102521802B1 (ko) 2010-05-04 2023-04-13 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
KR101952103B1 (ko) 2010-10-08 2019-02-27 지이 비디오 컴프레션, 엘엘씨 블록 분할 및 블록 병합을 지원하는 픽처 코딩
US9924188B2 (en) 2011-01-07 2018-03-20 Lg Electronics Inc. Method for encoding and decoding image information to determine reference index in skip mode or merge mode and device using same
CN102595116B (zh) 2011-01-14 2014-03-12 华为技术有限公司 多图像块划分的编解码方法和装置
US9066110B2 (en) 2011-03-08 2015-06-23 Texas Instruments Incorporated Parsing friendly and error resilient merge flag coding in video coding
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 한국전자통신연구원 화면내 예측 블록 경계 필터링을 이용한 부호화/복호화 방법 및 그 장치
US9282338B2 (en) * 2011-06-20 2016-03-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
ES2962519T3 (es) 2011-06-23 2024-03-19 Sun Patent Trust Procedimiento de decodificación de imágenes, procedimiento de codificación de imágenes
USRE47366E1 (en) 2011-06-23 2019-04-23 Sun Patent Trust Image decoding method and apparatus based on a signal type of the control parameter of the current block
CA2830046C (en) 2011-06-24 2018-09-04 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
CN103535036B (zh) 2011-06-24 2017-04-05 太阳专利托管公司 解码方法和解码装置
KR102060621B1 (ko) 2011-06-27 2019-12-30 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
CN103563377B (zh) 2011-06-28 2017-05-10 太阳专利托管公司 解码方法及解码装置
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.
BR112013030562B1 (pt) 2011-06-30 2022-05-03 Sun Patent Trust Método e aparelho de decodificação, método e aparelho de codificação e aparelho de codificação e decodificação
KR102060619B1 (ko) 2011-06-30 2019-12-30 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
WO2013005966A2 (ko) * 2011-07-01 2013-01-10 한국전자통신연구원 비디오 부호화 방법 및 복호화 방법과 이를 이용한 장치
CN107087185B (zh) 2011-07-11 2020-01-10 太阳专利托管公司 编码方法及编码装置、解码方法及解码装置
EP2942961A1 (en) * 2011-11-23 2015-11-11 HUMAX Holdings Co., Ltd. Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
US9729873B2 (en) * 2012-01-24 2017-08-08 Qualcomm Incorporated Video coding using parallel motion estimation
US20130235926A1 (en) * 2012-03-07 2013-09-12 Broadcom Corporation Memory efficient video parameter processing
PL3833022T3 (pl) * 2012-04-12 2022-05-30 Jvckenwood Corporation Konstrukcja listy kandydatów do scalania
US9635356B2 (en) * 2012-08-07 2017-04-25 Qualcomm Incorporated Multi-hypothesis motion compensation for scalable video coding and 3D video coding
CN104396248B (zh) * 2012-10-12 2019-11-08 韩国电子通信研究院 图像编码/解码方法和使用其的装置
US9300977B2 (en) * 2013-10-02 2016-03-29 Amlogic Co., Ltd. Methods for encoding motion vectors
WO2015100729A1 (en) * 2014-01-03 2015-07-09 Mediatek Singapore Pte. Ltd. Improved merging candidate list construction in 3dvc
CN104853216B (zh) * 2014-02-18 2018-10-02 寰发股份有限公司 基于深度的块分割方法和电子装置
WO2015135175A1 (en) * 2014-03-13 2015-09-17 Mediatek Singapore Pte. Ltd. Simplified depth based block partitioning method
CN104159121A (zh) * 2014-06-26 2014-11-19 华为技术有限公司 一种基于深度信息的图像块的编码、解码方法及装置
CN107734335B (zh) * 2014-09-30 2020-11-06 华为技术有限公司 图像预测方法及相关装置
CN110582001B (zh) * 2014-09-30 2022-10-14 微软技术许可有限责任公司 用于视频编码的基于散列的编码器判定
EP3270593A4 (en) * 2015-03-13 2018-11-07 LG Electronics Inc. Method of processing video signal and device for same
CN107431806B (zh) * 2015-03-19 2020-07-31 Lg 电子株式会社 用于处理视频信号的方法及其设备
JP6532542B2 (ja) * 2015-05-12 2019-06-19 サムスン エレクトロニクス カンパニー リミテッド イントラ予測を行う映像復号方法及びその装置並びにイントラ予測を行う映像符号化方法
KR102488976B1 (ko) 2015-11-24 2023-01-18 삼성전자주식회사 부호화 순서 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
CN105511759B (zh) * 2015-12-14 2020-01-31 联想(北京)有限公司 一种图片处理方法及电子设备
WO2017114450A1 (en) * 2015-12-31 2017-07-06 Mediatek Inc. Method and apparatus of prediction binary tree structure for video and image coding
US10306258B2 (en) 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning
US10469841B2 (en) 2016-01-29 2019-11-05 Google Llc Motion vector prediction using prior frame residual
CN109155857B (zh) * 2016-03-11 2023-05-30 数字洞察力有限公司 视频编码方法以及装置
KR102669632B1 (ko) * 2016-03-11 2024-05-28 디지털인사이트 주식회사 가변 크기의 양자화 계수 그룹을 이용한 비디오 코딩 방법 및 장치
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10284845B2 (en) * 2016-05-25 2019-05-07 Arris Enterprises Llc JVET quadtree plus binary tree (QTBT) structure with multiple asymmetrical partitioning
US10880548B2 (en) 2016-06-01 2020-12-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding video according to coding order
EP3469793A1 (en) 2016-06-24 2019-04-17 Huawei Technologies Co., Ltd. Devices and methods for video coding using segmentation based partitioning of video coding blocks
KR102270228B1 (ko) * 2016-07-12 2021-06-28 한국전자통신연구원 영상 부호화/복호화 방법 및 이를 위한 기록 매체
CN116708777A (zh) * 2016-07-18 2023-09-05 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
CN109644271B (zh) * 2016-09-06 2021-04-13 联发科技股份有限公司 用于二叉树分割块的确定候选集的方法及装置
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
JP6895247B2 (ja) 2016-10-06 2021-06-30 日本放送協会 符号化装置、復号装置及びプログラム
US20180109812A1 (en) * 2016-10-14 2018-04-19 Media Tek Inc. Block partitioning using tree structures
CN116405669A (zh) * 2016-10-14 2023-07-07 世宗大学校产学协力团 影像解码/编码方法、传送比特流的方法及记录介质
US11057624B2 (en) * 2016-10-14 2021-07-06 Industry Academy Cooperation Foundation Of Sejong University Image encoding method/device, image decoding method/device, and recording medium in which bitstream is stored
WO2018093184A1 (ko) * 2016-11-18 2018-05-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
JP6565885B2 (ja) * 2016-12-06 2019-08-28 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号化装置、画像復号化方法及び画像復号化プログラム
KR102504877B1 (ko) * 2016-12-27 2023-02-28 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
US10484703B2 (en) * 2017-02-07 2019-11-19 Mediatek Inc. Adapting merge candidate positions and numbers according to size and/or shape of prediction block
US20180242024A1 (en) * 2017-02-21 2018-08-23 Mediatek Inc. Methods and Apparatuses of Candidate Set Determination for Quad-tree Plus Binary-tree Splitting Blocks
KR102257829B1 (ko) * 2017-04-13 2021-05-28 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
US20180332312A1 (en) * 2017-05-09 2018-11-15 Futurewei Technologies, Inc. Devices And Methods For Video Processing
EP3410717A1 (en) * 2017-05-31 2018-12-05 Thomson Licensing Methods and apparatus for candidate list pruning
KR102380233B1 (ko) 2017-07-19 2022-03-29 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
KR102472053B1 (ko) * 2017-08-03 2022-11-28 엘지전자 주식회사 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
KR20200044967A (ko) * 2017-09-18 2020-04-29 인텔렉추얼디스커버리 주식회사 블록 분할에 따른 병합 후보 리스트를 사용하는 비디오 코딩 방법 및 장치
US11877001B2 (en) * 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
EP3518536A1 (en) * 2018-01-26 2019-07-31 Thomson Licensing Method and apparatus for adaptive illumination compensation in video encoding and decoding
WO2019152283A1 (en) * 2018-02-02 2019-08-08 Apple Inc. Techniques of multi-hypothesis motion compensation
US11924440B2 (en) * 2018-02-05 2024-03-05 Apple Inc. Techniques of multi-hypothesis motion compensation
KR102665985B1 (ko) * 2018-03-29 2024-05-21 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 픽쳐 경계 처리를 사용하여 픽쳐를 인코딩하고 디코딩하는 장치 및 방법
CN110419217B (zh) 2018-04-02 2023-09-26 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
EP3794819A4 (en) * 2018-05-23 2022-12-07 HFI Innovation Inc. METHOD AND APPARATUS FOR VIDEO CODING WITH BI-DIRECTIONAL CU WEIGHTS
EP3804329A1 (en) * 2018-06-01 2021-04-14 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Video codec using template matching prediction
TWI723430B (zh) 2018-06-19 2021-04-01 大陸商北京字節跳動網絡技術有限公司 不同精度的多個候選
CN110662075B (zh) * 2018-06-29 2023-04-25 北京字节跳动网络技术有限公司 改进的时域运动矢量预测推导
CN110677668B (zh) 2018-07-01 2022-06-21 北京字节跳动网络技术有限公司 空间运动压缩
CN110677650B (zh) * 2018-07-01 2023-06-09 北京字节跳动网络技术有限公司 降低非相邻Merge设计的复杂度
AU2018217336A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
US11750836B2 (en) * 2018-09-13 2023-09-05 Interdigital Vc Holdings, Inc. Virtual temporal affine candidates
CN116546213A (zh) 2018-09-19 2023-08-04 北京字节跳动网络技术有限公司 具有自适应运动矢量分辨率的仿射模式的语法重用
US11012697B2 (en) 2018-12-07 2021-05-18 Qualcomm Incorporated Shared candidate list and parallel candidate list derivation for video coding
US10893298B2 (en) 2018-12-12 2021-01-12 Tencent America LLC Method and apparatus for video coding
JP7247345B2 (ja) 2018-12-13 2023-03-28 ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド ビデオ復号化方法、ビデオ復号化装置、及びプログラム
KR20210121021A (ko) 2019-01-31 2021-10-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 어파인 모드 적응적 움직임 벡터 해상도 코딩 문맥
KR102166337B1 (ko) * 2019-09-17 2020-10-15 삼성전자주식회사 영상의 ai 부호화 방법 및 장치, 영상의 ai 복호화 방법 및 장치
US11523104B2 (en) * 2019-09-19 2022-12-06 Alibaba Group Holding Limited Methods for constructing a merge candidate list
CN111246046B (zh) * 2020-03-27 2022-03-15 支付宝(杭州)信息技术有限公司 图案编码方法及装置、图案解码方法及装置
WO2023055146A1 (ko) * 2021-09-29 2023-04-06 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
US20240129474A1 (en) * 2022-10-14 2024-04-18 Tencent America LLC Systems and methods for cross-component geometric/wedgelet partition derivation

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5225904A (en) * 1987-10-05 1993-07-06 Intel Corporation Adaptive digital video compression system
CN1874509B (zh) * 2001-09-14 2014-01-15 诺基亚有限公司 基于上下文的自适应二进制算术编码的方法和***
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US20070036215A1 (en) * 2003-03-03 2007-02-15 Feng Pan Fast mode decision algorithm for intra prediction for advanced video coding
US8179963B2 (en) * 2003-07-24 2012-05-15 Panasonic Corporation Coding mode determining apparatus, image coding apparatus, coding mode determining method and coding mode determining program
US7369709B2 (en) * 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
FR2875974A1 (fr) * 2004-09-28 2006-03-31 Thomson Licensing Sa Procede et dispositif de codage d'une sequence d'images sources
WO2006058921A1 (en) * 2004-12-03 2006-06-08 Thomson Licensing Method for scalable video coding
CN100471280C (zh) * 2005-01-07 2009-03-18 株式会社Ntt都科摩 运动图像编码及译码装置、方法
CN101223780A (zh) * 2005-07-18 2008-07-16 三星电子株式会社 减少编码器和解码器之间的不匹配的视频编码方法和设备
JP4047879B2 (ja) * 2005-08-23 2008-02-13 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
US8265349B2 (en) * 2006-02-07 2012-09-11 Qualcomm Incorporated Intra-mode region-of-interest video object segmentation
JP2009540625A (ja) * 2006-02-16 2009-11-19 ヴィドヨ,インコーポレーテッド スケーラブルビデオコーディングビットストリームのシニングのためのシステムおよび方法
EP2106666B1 (en) * 2007-01-08 2019-06-12 Nokia Technologies Oy Improved inter-layer prediction for extended spatial scalability in video coding
CN100495438C (zh) * 2007-02-09 2009-06-03 南京大学 一种基于视频监控的运动目标检测与识别方法
US8750377B2 (en) 2007-04-12 2014-06-10 Thomson Licensing Method and apparatus for context dependent merging for skip-direct modes for video encoding and decoding
US7965900B2 (en) * 2007-09-26 2011-06-21 Hewlett-Packard Development Company, L.P. Processing an input image to reduce compression-related artifacts
US20090154567A1 (en) * 2007-12-13 2009-06-18 Shaw-Min Lei In-loop fidelity enhancement for video compression
US8854964B2 (en) 2007-12-14 2014-10-07 General Instrument Corporation Method and apparatus for determining a transport bit rate for a Multiprogram transport stream
WO2009091383A2 (en) * 2008-01-11 2009-07-23 Thomson Licensing Video and depth coding
CN100586184C (zh) * 2008-01-24 2010-01-27 北京工业大学 帧内预测方法
CN101282478A (zh) * 2008-04-24 2008-10-08 上海华平信息技术股份有限公司 实现高清视频并行编码的方法及***
CN101409831B (zh) * 2008-07-10 2010-10-27 浙江师范大学 一种多媒体视频对象处理方法
JP5067361B2 (ja) * 2008-12-25 2012-11-07 ソニー株式会社 エンコーダ及びデコーダ、符号方法及び復号方法、並びに記録媒体
KR101952103B1 (ko) 2010-10-08 2019-02-27 지이 비디오 컴프레션, 엘엘씨 블록 분할 및 블록 병합을 지원하는 픽처 코딩
JP6248767B2 (ja) 2014-04-08 2017-12-20 新日鐵住金株式会社 パネル部材

Also Published As

Publication number Publication date
KR20200040940A (ko) 2020-04-20
JP2023179552A (ja) 2023-12-19
EP2625855B1 (en) 2020-12-09
US20240089468A1 (en) 2024-03-14
KR20170119727A (ko) 2017-10-27
PL2625855T3 (pl) 2021-06-14
TW202135526A (zh) 2021-09-16
CN107071438B (zh) 2020-09-01
EP2625855A1 (en) 2013-08-14
JP6728249B2 (ja) 2020-07-22
JP2016026454A (ja) 2016-02-12
CN106878725B (zh) 2020-03-17
JP7391807B2 (ja) 2023-12-05
EP3703373A1 (en) 2020-09-02
US20210281861A1 (en) 2021-09-09
CN107181944B (zh) 2020-06-02
TWI554086B (zh) 2016-10-11
TWI720831B (zh) 2021-03-01
KR20180099914A (ko) 2018-09-05
TW201832553A (zh) 2018-09-01
CN107105258A (zh) 2017-08-29
BR112013008461A2 (pt) 2016-06-28
KR20170118976A (ko) 2017-10-25
PT2625855T (pt) 2021-03-16
JP2013545342A (ja) 2013-12-19
EP2625855B8 (en) 2021-03-10
CN103477635B (zh) 2017-01-18
KR20200043496A (ko) 2020-04-27
TW202025724A (zh) 2020-07-01
US20200228806A1 (en) 2020-07-16
US11057630B2 (en) 2021-07-06
TWI673998B (zh) 2019-10-01
KR20140139615A (ko) 2014-12-05
KR101893923B1 (ko) 2018-09-04
KR102647083B1 (ko) 2024-03-14
TW201717628A (zh) 2017-05-16
JP2018082466A (ja) 2018-05-24
KR20130095292A (ko) 2013-08-27
JP2020205639A (ja) 2020-12-24
US20210021842A1 (en) 2021-01-21
CN106878726A (zh) 2017-06-20
TW201515442A (zh) 2015-04-16
HK1246546A1 (zh) 2018-09-07
US10827187B2 (en) 2020-11-03
US10735748B2 (en) 2020-08-04
TWI520579B (zh) 2016-02-01
CN103477635A (zh) 2013-12-25
DK2625855T3 (da) 2021-03-08
HUE053483T2 (hu) 2021-06-28
CN107071438A (zh) 2017-08-18
JP6808310B2 (ja) 2021-01-06
US10743001B2 (en) 2020-08-11
TW202332270A (zh) 2023-08-01
US20130287116A1 (en) 2013-10-31
EP3703373B1 (en) 2024-04-17
CN107181944A (zh) 2017-09-19
KR101526778B1 (ko) 2015-06-05
KR102034004B1 (ko) 2019-10-18
TW202021343A (zh) 2020-06-01
KR102277273B1 (ko) 2021-07-15
KR20220079698A (ko) 2022-06-13
EP3833025A1 (en) 2021-06-09
US20200244975A1 (en) 2020-07-30
WO2012045886A1 (en) 2012-04-12
KR102102600B1 (ko) 2020-04-21
TWI728431B (zh) 2021-05-21
JP2020120380A (ja) 2020-08-06
US10812811B2 (en) 2020-10-20
US20200128259A1 (en) 2020-04-23
TWI792167B (zh) 2023-02-11
TW201223289A (en) 2012-06-01
KR102405529B1 (ko) 2022-06-08
US11785229B2 (en) 2023-10-10
CN107360427B (zh) 2020-09-01
KR101952103B1 (ko) 2019-02-27
BR112013008461B1 (pt) 2022-06-07
CN107360427A (zh) 2017-11-17
HK1244981A1 (zh) 2018-08-17
TWI616089B (zh) 2018-02-21
CN107105258B (zh) 2020-09-01
CN106878725A (zh) 2017-06-20
CN106878726B (zh) 2020-01-17
KR20240034886A (ko) 2024-03-14
KR20190021482A (ko) 2019-03-05

Similar Documents

Publication Publication Date Title
ES2859635T3 (es) Codificación de imágenes que soporta particionamiento de bloques y fusión de bloques
ES2955542T3 (es) Codificación de instantánea que soporta unión de bloques y modo de salto
ES2901308T3 (es) Herencia en subdivisión multiárbol de matriz de muestras
ES2951321T3 (es) Procedimiento y aparato para codificar información de movimiento, y procedimiento y aparato para decodificar la misma
ES2739668A2 (es) Metodo y aparato para procesar senales de video
BR122021003281B1 (pt) Codificação de imagem suportando particionamento de blocos e mesclagem de blocos