ES2955816T3 - Codificación de vídeo que comprende señalización del grupo de mosaicos rectangulares - Google Patents
Codificación de vídeo que comprende señalización del grupo de mosaicos rectangulares Download PDFInfo
- Publication number
- ES2955816T3 ES2955816T3 ES20770098T ES20770098T ES2955816T3 ES 2955816 T3 ES2955816 T3 ES 2955816T3 ES 20770098 T ES20770098 T ES 20770098T ES 20770098 T ES20770098 T ES 20770098T ES 2955816 T3 ES2955816 T3 ES 2955816T3
- Authority
- ES
- Spain
- Prior art keywords
- partition
- image
- tile
- location
- current partition
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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 slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un método para decodificar una imagen a partir de un flujo de bits. El método incluye decodificar una estructura de partición de mosaicos a partir de uno o más elementos de sintaxis en el flujo de bits. El método incluye determinar una cantidad de mosaicos N en la imagen. El método incluye decodificar un número de particiones en la imagen, en el que cada partición comprende un número entero de mosaicos. El método incluye derivar un tamaño y/o ubicación para una partición actual, en donde derivar el tamaño y/o ubicación para la partición actual comprende: decodificar uno o más elementos de sintaxis de ubicación para la partición actual a partir del flujo de bits, derivar una posición superior izquierda de la partición actual como una ubicación de un primer mosaico en orden de escaneo de trama que no está incluido en una o más particiones derivadas previamente, y derivando el tamaño y/o la ubicación de la partición actual a partir de un valor de una o más sintaxis de ubicación elemento junto con un tamaño y/o ubicación de la una o más particiones derivadas previamente. El método incluye usar el tamaño y/o la ubicación derivados para decodificar la imagen. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Codificación de vídeo que comprende señalización del grupo de mosaicos rectangulares
Campo técnico
Esta descripción se refiere a la Codificación de Video de Alta Eficiencia (HEVC) y a la Codificación de Video Versátil (VVC).
Antecedentes
HEVC y la codificación de video de próxima generación
La Codificación de Video de Alta Eficiencia (HEVC), también conocida como H.265, es un códec de video basado en bloques estandarizado por ITU-T y MPEG que utiliza predicción tanto temporal como espacial. La predicción espacial se logra utilizando predicción intra (I) desde dentro de la imagen actual. La predicción temporal se logra utilizando predicción inter (P) o inter bidireccional (B) en el nivel de bloques utilizando imágenes de referencia previamente decodificadas. La diferencia entre la muestra o datos del píxel originales y la muestra o datos del píxel previstos, denominada residuo, se transforma en el dominio de la frecuencia, se cuantifica y luego se codifica en entropía antes de transmitirse junto con los parámetros de predicción necesarios, como el modo de predicción y los vectores de movimiento, que también están codificados en entropía. Cuantificando los residuos transformados, puede controlarse una compensación entre la tasa de bits y la calidad de video. El nivel de cuantificación está determinado por el parámetro de cuantificación (QP). Un decodificador realiza decodificación en entropía, cuantificación inversa y transformación inversa para obtener el residuo, y luego agrega el residuo a una predicción intra o inter para reconstruir una imagen.
MPEG e ITU-T están trabajando en el sucesor de HEVC dentro del Equipo Exploratorio de Video Conjunto (JVET). El nombre de este códec de video en desarrollo es Codificación de Video Versátil (VCC).
La técnica relacionada comprende:
DESHPANDE (SHARP) S ET AL: "AHG12: On Tile Grouping", 13. REUNIÓN DEL JVET; 20190109 - 20190118; MARRAKECH; (EL EQUIPO DE EXPLORACIÓN DE VÍDEO CONJUNTO DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16), n2 JVET-M0853 12 de enero de 2019 (2019-01-12),
CHEN L ET AL: "AHG17: Flexible tile grouping for VVC", 125. ENCUENTRO DEL MPEG; 20190114 - 20190118; MARRAKECH; (GRUPO DE EXPERTOS DE IMÁGENES EN MOVIMIENTO O ISO/IEC JTC1/SC29/WG11), n2 m454266 de enero de 2019 (2019-01 -06),
HE (INTERDIGITAL) Y ET AL: "AHG12: On Rectangular Tile Group", 125. ENCUENTRO DEL MPEG; 20190114 -20190118; MARRAKECH; (GRUPO DE EXPERTOS DE IMÁGENES EN MOVIMIENTO O ISO/IEC JTC1/ SC29/WG11), n2 m453822 de enero de 2019 (2019-01 -02).
Componentes
Una secuencia de video consta de una serie de imágenes donde cada imagen consta de uno o más componentes. Cada componente puede describirse como una matriz rectangular bidimensional de valores de muestra. Es común que una imagen en una secuencia de video conste de tres componentes; un componente luma Y donde los valores de muestra son valores luma y dos componentes de croma Cb y Cr, donde los valores de muestra son valores de croma. Es común que las dimensiones de los componentes de croma sean más pequeñas que las de los componentes luma por un factor de dos en cada dimensión. Por ejemplo, el tamaño del componente luma de una imagen HD sería de 1920x1080 y los componentes de croma tendrían cada uno una dimensión de 960x540. Los componentes a veces se denominan componentes de color.
Bloques
Un bloque es una matriz bidimensional de muestras. En la codificación de video, cada componente se divide en bloques y el flujo de bits de video codificado consta de una serie de bloques. Es común en la codificación de video que la imagen se divida en unidades que cubren un área específica de la imagen. Cada unidad consta de todos los bloques de todos los componentes que conforman esa área específica y cada bloque pertenece completamente a una unidad. El macrobloque en H.264 y la unidad de Codificación (CU) en HEVC son ejemplos de unidades.
Unidades del árbol de codificación
En HEVC, cada imagen se divide en unidades del árbol de codificación (CTU). Una CTU consta de un bloque NxN de muestras luma y dos bloques de croma MxM correspondientes. Una CTU en HEVC es como los macrobloques en H.264 y estándares anteriores, pero a diferencia de los macrobloques, el tamaño de CTU es configurable. Sin embargo, la mayoría de las veces, el tamaño de CTU en HEVC se establece en muestras luma de 64x64. Cada CTU puede dividirse, recursivamente, en quadtree. La raíz del quadtree se asocia entonces con la CTU. El quadtree se divide hasta llegar a una hoja, lo que se denomina unidad de codificación (CU). Una CU en HEVC siempre consta de un
bloque luma con la misma altura y anchura. La forma en que se divide cada CTU se transmite en el flujo de bits. Unidades NAL
Tanto HEVC como VVC definen una Capa de Abstracción de Red (NAL). Todos los datos, es decir, tanto los datos de video como los que no son de video de HEVC y VVC se encapsulan en unidades NAL. Las unidades NAL pueden verse como paquetes adecuados para el transporte y el almacenamiento. La unidad NAL comienza con una cabecera de la unidad NAL que, entre otras cosas, contiene el tipo de unidad NAL que identifica qué tipo de datos se transportan en la unidad NAL. El tipo de unidad NAL se transmite en la palabra clave nal_unit_type en la cabecera de la unidad NAL y el tipo indica y define cómo debe analizarse y decodificarse la unidad NAL. Un flujo de bits consta de una serie de unidades NAL concatenadas.
Conjuntos de parámetros
HEVC especifica tres tipos de conjuntos de parámetros, el conjunto de parámetros de la imagen (PPS), el conjunto de parámetros de la secuencia (SPS) y el conjunto de parámetros del video (VPS). El PPS contiene datos que son comunes para una imagen completa, el SPS contiene datos que son comunes para una secuencia de video codificada (CVS) y el VPS contiene datos que son comunes para múltiples CVSs.
Mosaicos
El estándar de codificación de video HEVC incluye una herramienta llamada mosaicos que divide una imagen en regiones rectangulares espacialmente independientes. Utilizando mosaicos, una imagen en HEVC puede dividirse en filas y columnas de muestras donde un mosaico es una intersección de una fila y una columna. Los mosaicos en HEVC siempre están alineados con los límites CTU.
Segmentos en HEVC
El concepto de segmentos en HEVC divide la imagen en segmentos codificados de forma independiente, donde cada segmento se lee en orden de escaneado de trama en unidades de CTUs. Cada segmento está encapsulado en su propia unidad NAL. Podrían utilizarse diferentes tipos de codificación para segmentos de la misma imagen, es decir, un segmento podría ser un segmento I, un segmento P o un segmento B. El objetivo principal de los segmentos es permitir una re-sincronización en caso de pérdida de datos.
Grupos de mosaicos en VVC
El borrador de la especificación VVC no incluye segmentos sino un concepto similar llamado grupos de mosaicos. En HEVC, un mosaico puede contener uno o más segmentos, o un segmento puede contener uno o más mosaicos, pero no ambos. En VVC, el concepto es más sencillo; un grupo de mosaicos puede contener uno o más mosaicos completos. Un grupo de mosaicos se utiliza para agrupar múltiples mosaicos para reducir la sobrecarga de cada mosaico. Cada grupo de mosaicos está encapsulado en su propia unidad NAL. Para una imagen, los grupos de mosaicos pueden tener forma rectangular o comprender uno o más mosaicos en orden de escaneado de trama. Un grupo de mosaicos rectangulares consta de mosaicos V x H, donde V es el número de mosaicos verticalmente y H el número de mosaicos horizontalmente en el grupo de mosaicos.
Agrupación de mosaicos en JVET-M0853
En una reunión reciente del JVET, se adoptó la agrupación de mosaicos rectangulares según la propuesta JVET-M0853. El texto propuesto como en JVET-M0853 se muestra a continuación. Los cambios con respecto a la Codificación de Video Versátil (Borrador 3) especificados en JVET-L1001-v7, Macao, diciembre de 2018 se muestran a continuación. Específicamente, las partes añadidas están subrayadas y las partes eliminadas están tachadas.
A continuación se muestra la semántica para los elementos nuevos / modificados indicados anteriormente.
single_tile_per_tile_group igual a 1 especifica que cada grupo de mosaicos que hace referencia a este PPS incluye un mosaico. single_tile_per_tile_group igual a 0 especifica que un grupo de mosaicos que hace referencia a este p Ps puede incluir más de un mosaico.
rect_tile_group_flag igual a 0 especifica que los mosaicos dentro de cada grupo de mosaicos están en orden de escaneado de trama y la información del grupo de mosaicos no se señala en PPS. rect_tile_group_flag igual a 1 especifica que los mosaicos dentro de cada grupo de mosaicos cubren una región rectangular de la imagen y la información del grupo de mosaicos se señala en el PPS. Cuando single_tile_per_tile_group_flag es igual a 1, se deduce que rect_tile_group_flag es igual a 1.
num_tile_groups_in_pic_minus1 más 1 especifica el número de grupos de mosaicos en cada imagen que hacen referencia al PPS. El valor de num_tile_groups_in_pic_minus1 estará en el rango de 0 a (NumTilesInPic - 1), inclusive. Cuando no está presente y single_tile_per_tile_group_flag es igual a 1, se deduce que el valor de num_tile_groups_in_pic_minus1 es igual a (NumTilesInPic - 1).
top_left_tile_idx[ i ] especifica el índice de mosaico del mosaico ubicado en la esquina superior izquierda del i-ésimo grupo de mosaicos. El valor de top_left_tile_idx[ i ] no será igual al valor de top_left_tile_idx[ j ] para cualquier i que no sea igual a j. Cuando no está presente, se deduce que top_left_tile_idx[ i ] es igual a i. La longitud del elemento de sintaxis top_left_tile_idx[ i ] es Ceil( Log2( NumTilesInPic ) ) bits.
bottom_right_tile_idx[ i ] especifica el índice de mosaico del mosaico ubicado en la esquina inferior derecha del iésimo grupo de mosaicos. Cuando single_tile_per_tile_group_flag es igual a 1 bottom_right_tile_idx[ i ] se deduce que es igual a top_left_tile_idx[ i ]. La longitud del elemento de sintaxis bottom_right_tile_idx[ i ] es Ceil( Log2( NumTilesInPic) ) bits.
Es un requisito de conformidad del flujo de bits que cualquier mosaico en particular se incluirá sólo en un grupo de mosaicos.
La variable NumTilesInTileGroup[ i ], que especifica el número de mosaicos en el grupo de mosaicos, y las variables relacionadas, se derivan de la siguiente manera:
signalled_tile_group_id_flag igual a 1 especifica que se señala el ID del grupo de mosaicos para cada grupo de mosaicos. signalled_tile_group_index_flag igual a 0 especifica que los IDs del grupo de mosaicos no están señalados. Cuando rect_tile_group_flag es igual a 0, se deduce que el valor de signalled_tile_group_index_flag es igual a 0.
signalled_tile_group_id_length_minus1 más 1 especifica el número de bits utilizados para representar el elemento de sintaxis tile_group_id[ i ] cuando está presente, y el elemento de sintaxis tile_group_address en las cabeceras del grupo de mosaicos. El valor de signalled_tile_group_index_length_minus1 estará en el rango de 0 a 15, inclusive. Cuando no está presente, se deduce que el valor de signalled_tile_group_index_length_minus1 es igual a Ceil( Log2( num_tile_groups_in_pic_minus1 1 ) ) - 1.
tile_group_id[ i ] especifica el ID del grupo de mosaicos del i-ésimo grupo de mosaicos. La longitud del elemento de sintaxis tile_group_id[ i ] es tile_set_id_length_minus1 1 bits. Cuando no está presente, se deduce que tile_group_id[ i ] es igual a i, para cada i en el rango de 0 a num_tile_groups_in_pic_minus1, inclusive.
Compendio
En un aspecto, se proporciona un método para decodificar una imagen de un flujo de bits. El método incluye decodificar una imagen de un flujo de bits, comprendiendo el método: decodificar (1410) una estructura de partición de mosaicos a partir de uno o más elementos de sintaxis en el flujo de bits; determinar (1420) un número de mosaicos N en la imagen; decodificar (1430) un número de particiones en la imagen, en donde cada partición comprende un número entero de mosaicos; derivar (1440) un tamaño y una ubicación para una partición actual, en donde derivar el tamaño y la ubicación para la partición actual comprende: derivar (1442) el tamaño para la partición actual a partir de un elemento de sintaxis que representa el ancho de la partición actual en número de mosaicos y de un elemento de sintaxis que representa la altura de la partición actual en número de mosaicos, y derivar (1444) una posición superior izquierda de la partición actual como una ubicación de un primer mosaico en orden de escaneado de trama que no está incluido en una o más particiones derivadas previamente; utilizar (1450) el tamaño y la ubicación derivados para decodificar la imagen.
Otros aspectos están definidos por las reivindicaciones adjuntas.
Algunas realizaciones descritas en la presente memoria incluyen una nueva señalización del diseño del grupo de mosaicos. En algunas realizaciones, la ubicación de un grupo de mosaicos actual se deriva en función de ubicaciones del grupo de mosaicos derivadas y señalizadas previamente en lugar de señalizar las posiciones tanto superior izquierda como inferior derecha de cada grupo de mosaicos. Una realización contiene tanto sintaxis novedosa como métodos de derivación novedosos.
Derivando la ubicación de grupos de mosaicos en función de las ubicaciones del grupo de mosaicos derivadas y señalizadas previamente, las realizaciones descritas en la presente memoria son más eficientes que las soluciones
actuales en términos de coste de bits.
En algunas realizaciones, derivar el tamaño y/o la ubicación para una partición actual puede consistir en derivar qué mosaicos en la imagen pertenecen a la partición actual. Esto puede realizarse indicando para cada mosaico T en la imagen a qué partición pertenece el mosaico T, por ejemplo, asignando valores a una lista de longitud N (donde N es el número de mosaicos en la imagen) donde cada entrada en la lista es un número de partición tal que la lista asocia cada uno de los N mosaicos con una partición.
Algunas realizaciones descritas en la presente memoria proporcionan, adicionalmente, medios para que los grupos de mosaicos rectangulares cumplan con los requisitos especificados en JVET-M_Notes_dA y garantizar, específicamente, que la partición del grupo de mosaicos rectangulares incluya solo grupos de mosaicos que, cuando se decodifiquen, en el orden de direcciones definido, cada mosaico tendrá todo su límite izquierdo y todo su límite superior consistente en un límite de la imagen o mosaico(s) previamente decodificado(s). El requisito deseado para prohibir los grupos de mosaicos amarillo pálido y verde claro en una imagen se cumplirá utilizando las realizaciones descritas en la presente memoria.
Para un decodificador, las realizaciones descritas en la presente memoria simplifican el procesamiento, ya que el decodificador no tiene que comprobar que el flujo de bits está siguiendo estas reglas. En cambio, cualquier posible señalización seguirá automáticamente las reglas.
Breve descripción de los dibujos
Los dibujos adjuntos, que se incorporan en la presente memoria y forman parte de la especificación, ilustran varias realizaciones.
La FIG. 1 muestra una imagen con grupos de mosaicos según algunas realizaciones.
La FIG. 2 muestra una imagen con grupos de mosaicos según algunas realizaciones.
La FIG. 3 muestra una imagen con grupos de mosaicos según algunas realizaciones.
La FIG. 4 muestra una imagen con grupos de mosaicos según algunas realizaciones.
La FIG. 5 muestra una imagen con grupos de mosaicos según algunas realizaciones.
La FIG. 6 muestra una imagen con grupos de mosaicos según algunas realizaciones.
La FIG. 7 muestra una imagen con grupos de mosaicos según algunas realizaciones.
La FIG. 8 muestra pilas según algunas realizaciones.
La FIG. 9 muestra pilas según algunas realizaciones.
La FIG. 10 muestra una imagen con unidades según algunas realizaciones.
La FIG. 11 muestra una imagen con unidades según algunas realizaciones.
La FIG. 12 muestra una imagen con grupos de mosaicos según algunas realizaciones.
La FIG. 13A muestra un orden de escaneado de trama según algunas realizaciones.
La FIG. 13B muestra un orden Z según algunas realizaciones.
La FIG. 14A es un diagrama de flujo que ilustra un proceso según una realización.
La FIG. 14B es un diagrama de flujo que ilustra un proceso según una realización.
La FIG. 15A es un diagrama de flujo que ilustra un proceso según una realización.
La FIG. 15B es un diagrama de flujo que ilustra un proceso según una realización.
La FIG. 16 es un diagrama que muestra unidades funcionales de un decodificador según una realización. La FIG. 17 es un diagrama que muestra unidades funcionales de un codificador según una realización.
La FIG. 18 es un diagrama de bloques de un nodo según algunas realizaciones.
Descripción detallada
La invención está definida por las reivindicaciones adjuntas y se describe en la realización 3. La invención reivindicada se refiere a las realizaciones 1-3, mientras que las realizaciones 4-11 tienen carácter ejemplar. Dado que la materia
objetivo reivindicada se ejerce en el complejo entorno de la codificación y decodificación de vídeo, todas las realizaciones de la descripción se consideran útiles para resaltar aspectos específicos de la invención.
El soporte de grupos de mosaicos rectangulares se adoptó en el 13" Reunión del JVET en Marrakech, en enero de 2019. En la misma reunión, se establecieron una serie de restricciones para los grupos de mosaicos rectangulares. Partes de las notas de la reunión durante la 13" reunión del JVET (JVET-M_Notes_dA) que especifica estas restricciones se reproducen a continuación:
1. los mosaicos en un grupo de mosaicos deben estar en orden de escaneado de trama;
2. los grupos de mosaicos deben estar en orden creciente de direcciones (ver a continuación: naranja oscuro, luego azul claro, luego amarillo pálido, luego azul oscuro, luego naranja claro,...);
3. Las formas del grupo de mosaicos serán tales que cada mosaico, cuando se decodifique, tendrá todo su límite izquierdo y todo su límite superior consistente en un límite de la imagen o mosaico(s) previamente decodificado(s). En otras palabras, los mosaicos amarillo claro y verde claro en la siguiente figura no están permitidos.
Se observa que "ver a continuación" y "figura a continuación" citados anteriormente se refieren a la FIG. 1 de la descripción actual. El orden mencionado en el segundo punto anterior como "el orden creciente de direcciones para los grupos de mosaicos" se ilustra mediante números que marcan los grupos de mosaicos en la FIG. 1. El grupo de mosaicos marcado con 1 es el primero en el orden, seguido del grupo de mosaicos marcado con 2, seguido del grupo de mosaicos marcado con 3, etc. Se observa además que, en el tercer punto anterior, los grupos de mosaicos 3 y 7 se denominan "mosaicos amarillo claro y verde claro", pero JVET_M_Notes_dA probablemente pretendía referirse a "grupos de mosaicos amarillo pálido y verde claro" en lugar de "mosaicos amarillo claro y verde claro". Finalmente, se observa que JVET_M_Notes_dA utiliza colores similares para diferentes grupos de mosaicos, p. ej., dos grupos de mosaicos azul oscuro y dos grupos de mosaicos grises.
A los efectos de la explicación en el contexto de la descripción actual, las restricciones citadas anteriormente en JVET_M_Notes_dA se reformulan como se muestra a continuación:
Restricción 1. los mosaicos en un grupo de mosaicos, como se muestra en la FIG. 1, deben estar en orden de escaneado de trama. Haciendo referencia a la FIG. 1, el grupo 1 de mosaicos representa un grupo de mosaicos naranja oscuro, el grupo 2 de mosaicos representa un grupo de mosaicos azul claro, el grupo 3 de mosaicos representa un grupo de mosaicos amarillo pálido, el grupo 4 de mosaicos representa un grupo de mosaicos azul oscuro, el grupo 5 de mosaicos representa un grupo de mosaicos naranja claro, el grupo 6 de mosaicos representa un grupo de mosaicos gris, el grupo 7 de mosaicos representa un grupo de mosaicos verde claro, el grupo 8 de mosaicos representa un grupo de mosaicos verde oscuro, el grupo 9 de mosaicos representa un grupo de mosaicos gris, y el grupo 10 de mosaicos representa un grupo de mosaicos azul oscuro.
Restricción 2. Los grupos de mosaicos deben estar en orden creciente de direcciones. El orden creciente de direcciones para los grupos de mosaicos se ilustra mediante números asociados con cada grupo de mosaicos, como se muestra en la FIG. 1. Por ejemplo, el grupo 1 de mosaicos naranja oscuro es el primero en el orden, seguido del grupo 2 de mosaicos azul claro, seguido del grupo 3 de mosaicos amarillo pálido, y así sucesivamente, como se muestra en la FIG. 1.
Restricción 3. Las formas del grupo de mosaicos serán tales que cada mosaico, cuando se decodifique, tendrá todo su límite izquierdo y todo su límite superior consistente en un límite de la imagen o mosaico(s) previamente decodificado(s). En otras palabras, el grupo 3 de mosaicos amarillo pálido y el grupo 7 de mosaicos verde claro en la FIG. 1 no están permitidos.
La sintaxis y la semántica propuestas en JVET-M0853 para la señalización de grupos de mosaicos rectangulares no cumplen con la restricción de partición y, específicamente, con la tercera restricción (mencionada anteriormente) especificada en las notas de la reunión en Marrakech (JVET-M_Notes_dA). Para JVET-M0853, deben incluirse las restricciones de las notas de la reunión. Pero esto significaría que la sintaxis y la semántica de JVET-M0853 no son tan eficientes como deberían ser. Al diseñar la sintaxis y la semántica teniendo en cuenta las restricciones enumeradas anteriormente, las realizaciones descritas en la presente memoria proporcionan una señalización más eficiente del diseño del grupo de mosaicos.
En un aspecto, se proporciona un método para la señalización de la estructura de partición que, inherentemente, permite solo estructuras de partición que cumplen con el requisito de la estructura de partición del grupo de mosaicos especificado en las notas de la reunión de VVC en Marrakech. Estos requisitos se citan de las notas de la reunión JVET-M_Notes_dA como se muestra arriba como Restricciones 1-3.
En el contexto de la descripción actual, el término estructura de partición se refiere a diferentes interpretaciones de la estructura de agrupación de mosaicos, la estructura de partición del grupo de mosaicos, la estructura de partición de mosaicos no basada en cuadrícula, etc. En algunas realizaciones, una partición puede referirse a un grupo de mosaicos.
En una realización, se supone que se conocen el ancho y la altura de la imagen y el número de particiones.
En las realizaciones a continuación, se han descrito varios métodos que solventan los problemas de los métodos convencionales descritos anteriormente.
En el contexto de la descripción actual, un límite indica todo un lado de una partición, imagen, y/o mosaico rectangular en algunas realizaciones. En el contexto de la descripción actual, un borde de una imagen indica un límite de la imagen en algunas realizaciones.
Realización 1. Concepto general
En una primera realización, la decodificación de una o más imágenes comprende derivar ubicaciones espaciales de múltiples particiones rectangulares. La derivación se realiza decodificando primero el número de particiones que componen la(s) imagen(es) y luego derivando las ubicaciones y/o los tamaños de cada partición a partir de elementos de sintaxis en el flujo de bits y del conocimiento sobre las ubicaciones y/o tamaños de particiones para las cuales las ubicaciones y/o tamaños ya se han derivado. Esto se hace derivando primero la ubicación y/o el tamaño para la primera partición en la imagen mediante la decodificación de uno o más elementos de sintaxis a partir del flujo de bits. El orden de derivación y el orden de los elementos de sintaxis en el flujo de bits están en un orden determinado, preferentemente en un orden de escaneado de trama del mosaico. Esto significa que la primera partición en la imagen que se va a derivar debe incluir el primer mosaico en la imagen en orden de escaneado de trama. También significa que la segunda partición en la imagen que se va a derivar debe incluir el primer mosaico en orden de escaneado de trama que no está incluido en la primera partición. En general, la n-ésima partición en la imagen debe incluir el primer mosaico en orden de escaneado de trama que no está incluido en ninguna de las particiones que precedieron a la nésima partición. Esta propiedad se utiliza en la derivación de la ubicación y/o el tamaño de una partición actual utilizando la propiedad para derivar la ubicación superior izquierda de la partición actual sin decodificar ningún elemento de sintaxis dedicado a indicar la ubicación superior izquierda.
Un decodificador puede realizar todos o un subconjunto de los siguientes pasos para esta realización para decodificar una imagen:
1. Decodificar una estructura de partición de mosaicos a partir de uno o más elementos de sintaxis en el flujo de bits. La sintaxis se ubica, preferentemente, en un conjunto de parámetros de imagen.
2. Determinar el número de mosaicos que hay en la imagen a partir de elementos de sintaxis en el flujo de bits. La sintaxis se ubica preferentemente en un conjunto de parámetros de imagen.
3. Decodificar el número de particiones que hay en la imagen donde cada partición consta de un número entero de mosaicos. Las particiones pueden ser todas de forma rectangular, tal que el tamaño de cada partición puede describirse mediante una altura y un ancho en términos de número de mosaicos. Por ejemplo, una partición puede tener una altura de 3 mosaicos y un ancho de 4 mosaicos. Una partición puede ser aquí un grupo de mosaicos.
4. Derivar el tamaño y/o la ubicación para una partición actual mediante los siguientes sub-pasos:
a. decodificar uno o más elementos de sintaxis de ubicación para la partición actual a partir del flujo de bits;
b. derivar el tamaño y/o la ubicación de la partición actual a partir del(los) valor(es) del(los) elemento(s) de sintaxis de ubicación junto con el(los) tamaño(s) y/o la(s) ubicación(es) de particiones derivadas previamente, en donde puede aplicar cualquier subconjunto de lo siguiente:
i. La posición superior izquierda de la partición actual se deriva como la ubicación del primer mosaico en un orden de escaneado de mosaico que no está incluido en ninguna partición derivada anteriormente si el orden de escaneado puede ser un orden de escaneado de trama
ii. La partición actual tiene, al menos, un límite que tiene partes en común con, al menos, otras dos particiones donde un límite es un lado de la partición.
iii. Cada uno de los límites superior e izquierdo de una partición actual se encuentra en el límite de la imagen o bordea una o más particiones derivadas previamente donde un límite es un lado de la partición actual.
iv. El número de particiones derivadas previamente es mayor que 2
v. El ancho y la altura de, al menos, una partición derivada previamente no es igual al ancho y la altura de la partición actual
vi. Las particiones derivadas previamente se han derivado en orden de escaneado de trama
5. Utilizar los tamaños y/o las ubicaciones derivadas para decodificar la imagen.
En algunas realizaciones, los mosaicos dentro de la partición actual pueden decodificarse posteriormente en orden de escaneado de trama del mosaico dentro de la partición actual.
Realización 2. Señalización de la esquina inferior derecha solamente
En una segunda realización, la ubicación de la partición actual de la Realización 1 está señalizada por uno o más elementos de sintaxis que especifican la posición de una esquina de la partición actual. En algunas realizaciones, la posición de una esquina puede especificarse, p. ej., como x e y con respecto a un origen o, p. ej., como una dirección.
La sintaxis señalizada para la partición actual puede especificar la dirección o la ubicación de la esquina inferior derecha de la partición actual y las particiones se derivan en orden de escaneado de trama. Luego, se deriva una única posición de la partición actual a partir de particiones derivadas previamente en orden de escaneado de trama y el valor de la sintaxis señalizada. En una realización, las particiones se escanean en orden de escaneado de trama, en función de las ubicaciones de las esquinas superiores izquierdas de las particiones.
(a) El valor de la sintaxis señalizada para derivar la esquina inferior derecha de la partición actual puede restringirse a un rango que garantice que cada partición, cuando se decodifica, tenga cada uno de todo su límite izquierdo y todo su límite superior en un límite de la imagen o que esté cerca de una o más particiones previamente decodificadas. En esta descripción, un límite es preferentemente todo un lado de una partición rectangular. El rango de direcciones permitidas para la esquina inferior derecha de la partición actual puede especificarse como direcciones dentro de una región rectangular (que se muestra en franjas diagonales en la siguiente figura) con la esquina superior izquierda T = (Xt, Yt) igual a la esquina superior izquierda de la partición rectangular actual y la esquina inferior derecha igual al punto B = (Xb, Yb) definido de la siguiente manera:
(b) Si T está ubicado en el borde izquierdo de la imagen, B es igual a la esquina inferior derecha de la imagen.
(c) Si T no está ubicado en el borde izquierdo de la imagen, aplica lo siguiente: como se ilustra en la FIG. 2, el primer mosaico en la partición actual está marcado con T y tiene coordenadas (Xt, Yt). El mosaico inmediatamente a su izquierda está marcado con U y tiene coordenadas (Xt -1, Yt). Los mosaicos debajo de U tendrán coordenadas (Xt-1, YT+k), k>0. Sea V el mosaico con el mayor k tal que sigue formando parte de la misma partición que U. Entonces el punto B (marcado con B) tendrá coordenadas (Xb, Yb), donde Xb es el ancho de la imagen en mosaicos, y donde Yb = YT+k.
En la FIG. 2, la parte gris muestra el área que se ha compartimentado y el resto (la parte rayada y la parte blanca) es el área a compartimentar. La parte rayada en la FIG. 2 muestra el rango de puntos permitidos para la esquina inferior derecha de la partición actual. Si se señaliza el mosaico S, la partición actual será el rectángulo marcado con el contorno punteado, en el que T es el mosaico superior izquierdo y S es el mosaico inferior derecho.
Como se muestra en la FIG. 2, el área rayada muestra las posiciones posibles para las coordenadas inferiores derechas de la partición actual. El mosaico superior izquierdo T es el primer mosaico en orden de escaneado de trama que aún no forma parte de una partición. El mosaico inferior derecho B es el mosaico que tiene la misma coordenada y Yb como el mosaico V, que es el mosaico más inferior en la partición que contiene U. La coordenada x del mosaico B es el borde derecho de la imagen. Como se muestra en la FIG. 2, las coordenadas del mosaico S se han señalizado como el mosaico inferior derecho de la partición actual y la partición actual está marcada con el rectángulo punteado.
En otra variante de esta realización, la posición de la esquina inferior derecha para la partición actual se especifica como un valor de dirección. Un ejemplo se ilustra en la FIG. 3 donde la parte gris muestra el área que se ha compartimentado y el resto (la parte rayada y la parte blanca) muestra el área a compartimentar. La parte rayada muestra las posiciones permitidas para la esquina inferior derecha de la partición actual y la posición de la esquina inferior derecha de la partición actual se especifica como un valor de dirección dentro del rectángulo rayado con la dirección de la esquina superior izquierda igual a 25 y la esquina inferior derecha igual a 49 en este ejemplo.
En otra variante de esta realización, la posición de la esquina inferior derecha para la partición actual se especifica con respecto a la esquina superior izquierda de la partición actual. Un ejemplo se ilustra en la FIG. 4. En este ejemplo, la esquina superior izquierda de la partición actual está marcada como T y la esquina inferior derecha está marcada como S y la posición de la esquina inferior derecha S para la partición actual se especifica con respecto a la esquina superior izquierda T de la partición actual y se señaliza el valor S-T=37-25=12.
En otra variante de esta realización, la posición de la esquina inferior derecha S para la partición actual se especifica con respecto a la esquina superior izquierda T de la partición actual utilizando que la posición de S debe estar dentro de la parte rayada. Esto se hace señalizando un valor que representa el número de mosaicos en orden de escaneado de trama dentro de las rayas que hay de T a S. En la FIG. 4, ese número es igual a 7.
En otra variante de esta realización, la última partición rectangular en la imagen puede deducirse del resto de la estructura de partición y, por lo tanto, no puede señalizarse ningún elemento de sintaxis para la última partición.
Un decodificador puede realizar todos o un subconjunto de los pasos 1 a 5 descritos anteriormente en la Realización 1 para esta segunda realización para decodificar una imagen donde la decodificación de uno o más elementos de sintaxis de ubicación para la partición actual del flujo de bits comprende uno de los siguientes:
(a) Decodificar un elemento de sintaxis que especifica un índice de mosaico, donde el índice de mosaico es un número
en el rango de 0 a N-1, inclusive, donde N es el número de mosaicos en la imagen. Los mosaicos en la imagen están numerados de 0 a N-1 en orden de escaneado de trama y el índice de mosaico decodificado identifica el mosaico que se está numerando con el índice de mosaico. El mosaico identificado especifica la ubicación del mosaico inferior derecho de la partición actual. El elemento de sintaxis que especifica el índice de mosaico puede especificar la ubicación del mosaico inferior derecho con respecto a la esquina superior izquierda de la partición actual. La palabra de código para especificar el índice de mosaico puede señalizarse utilizando un código de longitud fija de ceil(log2(n)) bits o puede señalizarse utilizando una palabra de código UVLC. La ubicación inferior derecha de la partición actual se deriva entonces del índice de mosaico.
(b) Decodificar un elemento de sintaxis que especifica un número N de mosaicos en orden de escaneado de trama dentro del área permitida ilustrada como un área rayada. Los mosaicos en la imagen están numerados de 0 a n-1 en orden de escaneado de trama. Se identifica un mosaico inferior derecho para la partición actual iniciando un escaneado de los mosaicos dentro del área permitida en orden de escaneado de trama desde la esquina superior izquierda T. El escaneo se detiene después de que hayan sido escaneados N mosaicos y el mosaico donde termino el escaneo se identifica como el mosaico inferior derecho para la partición actual. La ubicación inferior derecha de la partición actual se establece entonces en las coordenadas o el índice de mosaico para el mosaico inferior derecho identificado.
(c) Decodificar un elemento de sintaxis que especifica una coordenada y de la ubicación del mosaico inferior derecho de la partición actual y decodificar un elemento de sintaxis que especifica una coordenada x de la ubicación del mosaico inferior derecho de la partición actual. Las coordenadas pueden ser relativas a la esquina superior izquierda de la imagen o pueden ser relativas a otra ubicación, incluyendo pero sin limitarse a la esquina superior izquierda T de la región rectangular como se explicó anteriormente. La ubicación inferior derecha de la partición actual se deriva entonces de las coordenadas decodificadas.
Realización 3. Señalización del ancho y de la altura
En una tercera realización, el tamaño de la partición actual de la Realización 1 está señalizado por uno o más elementos de sintaxis que especifican el ancho y la altura de la estructura de partición actual.
La sintaxis señalizada puede especificar el ancho y la altura de la partición actual y una única posición de la partición actual puede derivarse a partir de particiones derivadas previamente en orden de escaneado de trama. En una realización preferida, las particiones se escanean en un orden predefinido, como un orden de escaneado de trama, en función de las ubicaciones de las esquinas superiores izquierdas de las particiones.
La sintaxis para la partición actual puede constar de un elemento de sintaxis de ancho y un elemento de sintaxis de altura, donde el elemento de sintaxis de ancho representa el ancho de la partición actual en número de mosaicos y el elemento de sintaxis de altura representa la altura de la partición actual en número de mosaicos. El elemento de sintaxis de ancho puede señalizarse utilizando un código de longitud fija de ceil(log2(W)) bits donde W es el número de columnas del mosaico en la imagen o el número de columnas del mosaico en la imagen menos 1. De manera similar, el elemento de sintaxis de altura puede señalizarse utilizando un código de longitud fija de ceil(log2(H)) bits donde H es el número de filas del mosaico en la imagen o el número de filas del mosaico en la imagen menos 1.
El valor de la sintaxis señalizada para derivar el ancho y la altura de la partición actual puede restringirse a un rango que garantice que cada partición, cuando se decodifica, tenga cada uno de todo su límite izquierdo y todo su límite superior en un límite de la imagen y/o que esté cerca de una o más particiones previamente decodificadas. El rango de valores permitidos puede especificarse como valores dentro de una región rectangular (que se muestra en franjas diagonales en la FIG. 5) con un ancho W igual a Xb - Xt y una altura H igual a Yb - Yt. En la FIG. 5, T = (Xt, Yt) es la esquina superior izquierda y B = (XB, YB) es la esquina inferior derecha de la región rectangular utilizada para determinar los valores permitidos para W y H. T puede derivarse del área compartimentada previamente y del orden de escaneado conocido y B pueden definirse como sigue:
(a) Si T está ubicado en el borde izquierdo de la imagen, entonces B es igual a la esquina inferior derecha de la imagen.
(b) Si T no está ubicado en el borde izquierdo de la imagen, entonces B está ubicado en el borde derecho de la imagen y en la fila más alejada del borde superior de la imagen, para lo cual (Xt-1, Yt) y (Xb-W-1 , Yb) pertenecen a la misma partición rectangular.
En la FIG. 5, la parte gris muestra el área que se ha compartimentado y el resto (la parte rayada y la parte blanca) es el área que aún por compartimentar.
En una variante de esta realización, la última partición rectangular en el orden de escaneado puede deducirse del resto de la estructura de partición y, por lo tanto, no puede señalizarse ningún elemento de sintaxis para ella.
Un decodificador puede realizar todos o un subconjunto de los pasos 1 a 5 descritos en la Realización 1 para esta tercera realización para decodificar una imagen donde la decodificación de uno o más elementos de sintaxis de ubicación para la partición actual del flujo de bits comprende lo siguiente:
(a) Descodificar un elemento de sintaxis que representa el ancho de la partición actual en número de mosaicos y decodificar un elemento de sintaxis que representa la altura de la partición actual en número de mosaicos. La ubicación inferior derecha de la partición actual se deriva entonces agregando la altura y el ancho decodificados de la partición actual a la ubicación superior izquierda derivada de la partición actual.
Realización 4. Señalización de la distancia a la posición B
En una cuarta realización, la ubicación de la partición actual de la Realización 1 está señalizada por uno o más elementos de sintaxis que especifican la posición de una esquina de la partición actual y la posición de esta esquina puede especificarse con relación a un punto B donde el punto B se deriva a partir de una o más particiones derivadas previamente. Para la primera partición rectangular, el punto B puede tener un valor predeterminado, p. ej., que representa la ubicación inferior derecha de la imagen.
En el contexto de la descripción actual, se utilizan las siguientes notaciones para un mosaico T:
T : nombre del mosaico
(XT, YT): coordenadas para el mosaico T
AT: dirección (índice de escaneado de trama) del mosaico T.
La sintaxis señalizada para la partición actual puede especificar la dirección o la ubicación de la esquina inferior derecha de la partición actual cuando las particiones se derivan en orden de escaneado de trama. Luego, puede derivarse una única posición de la partición actual a partir de particiones derivadas previamente en orden de escaneado de trama y del valor de la sintaxis señalizada que especifica la esquina inferior derecha de la partición actual. En una realización, las particiones se escanean en orden de escaneado de trama, en función de las ubicaciones de las esquinas superiores izquierdas de las particiones.
El valor de la sintaxis señalizada para derivar la esquina inferior derecha de la partición actual puede restringirse a un rango que garantice que la partición actual, cuando se decodifica, tenga cada uno de todo su límite izquierdo y todo su límite superior en un límite de la imagen o que esté cerca de una o más particiones previamente decodificadas. El rango de valores permitidos para la esquina inferior derecha de la partición actual puede especificarse como valores dentro de una región rectangular (que se muestra en franjas diagonales en la FIG. 6) con la esquina superior izquierda T como la esquina superior izquierda de la partición rectangular actual y la esquina inferior derecha B definida como sigue:
(a) Si T está ubicado en el borde izquierdo de la imagen (p. ej. T = 20 en la FIG. 6), B es igual a la esquina inferior derecha de la imagen (B = 69 en la FIG. 6).
Si T no se encuentra en el borde izquierdo de la imagen (p. ej., At = 25 en la FIG. 7), entonces B indica un bloque colocado en la columna de bloques más a la derecha de la imagen y Ab es el valor más alto para el que ( At - 1 ) y ( Ab - W) pertenecen a la misma partición rectangular, donde W es el ancho de la región rectangular. W se conoce ya que se conocen el ancho de la imagen y la posición de T. En el siguiente ejemplo, W = 5 y tenemos At - 1 = 24 y Ab -W = 44.
En las FIGS. 6-7, la parte gris muestra el área que se ha compartimentado y el resto (la parte rayada y la parte blanca) es el área a compartimentar.
La ubicación de una posición inferior derecha de la partición actual puede derivarse restando un valor decodificado señalizado para la partición actual del valor del índice de mosaico de la posición B (69 y 49 en las FIGS. 6 y 7, respectivamente). En el ejemplo con S=37 que muestra la ubicación de la ubicación inferior derecha de la partición actual, la ubicación se deriva restando un valor 32 de 69, donde 32 está señalizado en el flujo de bits. Alternativamente, se decodifica un valor que representa un número N de mosaicos en orden de escaneado de trama inverso dentro del área permitida. Se identifica un mosaico inferior derecho para la partición actual iniciando un escaneo de los mosaicos dentro del área permitida en orden de escaneado de trama inverso desde el mosaico B. El escaneo se detiene después de que hayan sido escaneados N mosaicos y el mosaico donde termino el escaneo se identifica como el mosaico inferior derecho para la partición actual. En el ejemplo anterior, con S=37, el valor que representa un número N de mosaicos en orden inverso es igual a 7. La ubicación inferior derecha de la partición actual se establece entonces en las coordenadas o el índice de mosaico para el mosaico inferior derecho identificado.
En otra variante de esta realización, la posición de la esquina inferior derecha para la partición actual se especifica como un valor de dirección.
En una variante de esta realización, la última partición rectangular en el orden de escaneado puede deducirse del resto de la estructura de partición y, por lo tanto, no puede señalizarse ningún elemento de sintaxis para ella.
Realización 5. Proceso utilizando una pila
En una quinta realización, se crea y utiliza una pila para determinar la posición de la partición actual en la imagen. Cada entrada en la pila puede contener información para definir una partición rectangular. La posición de la partición
actual puede especificarse con la posición de dos esquinas opuestas de la partición rectangular, p. ej., la esquina superior izquierda y la esquina inferior derecha de la partición rectangular, o especificando el ancho y el largo de la partición rectangular u otros medios.
En esta realización, la pila puede ser una pila de último en entrar, primero en salir (LIFO) y cada entrada a la pila puede constar de la posición de la esquina superior izquierda (especificada como T en la FIG. 8) y la potencial esquina inferior derecha correspondiente de la estructura de la partición actual especificada como B en la FIG. 8. El punto C es la esquina inferior derecha real de la partición rectangular correspondiente. El punto B se define como la potencial esquina inferior derecha porque cualquier punto como C en la región rectangular definida con T como la esquina superior izquierda y B como la esquina inferior derecha puede definirse como la esquina inferior derecha real de la partición actual en el siguiente paso.
La FIG. 9 muestra otro par de esquina superior izquierda (T) y potencial esquina inferior derecha (B). El punto C muestra nuevamente un ejemplo de la esquina inferior derecha real de la partición rectangular correspondiente.
Las particiones rectangulares están en orden creciente de direcciones y la pila puede actualizarse después de derivar cada partición rectangular. La actualización puede incluir eliminar entradas o agregar nuevas entradas a la pila. La posición de la esquina inferior derecha real para cada partición rectangular puede derivarse a partir de la información apilada y de la sintaxis de información señalizada para cada rectángulo en la estructura de partición.
En una variante de esta realización, la distancia entre el punto inferior derecho potencial y el punto inferior derecho real se señaliza utilizando una palabra de código. Un ejemplo mostrado en la FIG. 10 ilustra la distancia entre el punto potencial (B) y el punto real (C) como el número de unidades en el orden de escaneado de C a B. En esta realización, la posición real del punto puede calcularse utilizando el valor señalizado y el ancho de imagen.
En otra variante de esta realización, la distancia entre el punto potencial y el punto real se señaliza utilizando dos palabras de código; uno para la distancia horizontal y otro para la vertical. En el ejemplo mostrado en la FIG. 11, una palabra de código (X) especifica la distancia entre el punto potencial (B) y el punto real (C) en una dirección horizontal y la segunda palabra de código (Y) especifica la distancia entre el punto potencial (B) y el punto real (C) en una dirección vertical. La palabra de código X puede ser FLC con una longitud igual a ceil(log2(ancho_de_imagen)) y la palabra de código Y puede ser FLC con una longitud igual a ceil(log2(ancho_de_imagen)).
Los dos casos mostrados en las FIGS. 10-11 son intercambiables conociendo el ancho de la imagen.
En una variante de esta realización, solo está señalizada la diferencia entre la posición potencial de la esquina inferior derecha (B, mantenida en la pila) y la esquina inferior derecha (C) deseada para cada partición rectangular (p. ej., grupo de mosaicos rectangulares) en lugar del ancho y la altura de cada partición rectangular (p. ej., grupo de mosaicos rectangulares). De este modo, la posición de la esquina inferior derecha deseada se obtiene a partir de la posición potencial de la esquina inferior derecha (fuera de la pila) y del valor de diferencia señalizado. Después de este paso, la pila se actualiza con los siguientes pares potenciales de esquinas superior izquierda e inferior derecha.
En algunas realizaciones, un decodificador puede realizar todo o un subconjunto de lo siguiente:
1. Inicializar una pila con dos entradas y un tamaño de imagen como las potenciales esquina superior izquierda e inferior derecha de la primera partición rectangular;
2. Para cada partición rectangular en la lista ordenada de direcciones de las particiones rectangulares (tal vez excepto la última) hacer lo siguiente: a) Analizar el(los) elemento(s) de sintaxis que especifican la diferencia entre la esquina inferior derecha potencial y la deseada de la partición actual de un flujo de bits de video; b) determinar la posición de la partición rectangular en la imagen utilizando la información de la pila y el elemento de sintaxis analizado; c) actualizar la pila agregando, posiblemente, nuevas entradas para futuras posibles posiciones de las esquinas superior izquierda e inferior derecha de las particiones en la imagen.
3. Decodificar la imagen o parte de la imagen según la estructura de partición rectangular, en donde la estructura de partición rectangular contiene, al menos, una partición rectangular que tiene todo su límite izquierdo y todo su límite superior consistente en un límite de la imagen o una partición rectangular previamente decodificada.
La tabla de abajo muestra una sintaxis ejemplar para la Realización 1 sobre JVET-M0853. Las modificaciones sobre JVET-M0853 están marcadas donde la sintaxis agregada está subrayada y las partes eliminadas están tachadas.
A continuación se muestra la semántica para los elementos nuevos / modificados.
bottom_right_tile_offset[ i ] especifica la esquina inferior derecha del i-ésimo grupo de mosaicos utilizando el siguiente proceso (la unidad para los cálculos es el número de mosaico en la cuadrícula de mosaicos, A es una lista de potenciales esquinas superiores izquierdas de las siguientes particiones rectangulares, y B es una lista de la potencial esquina inferior derecha de las siguientes particiones rectangulares):
El código mencionado anteriormente sin comentarios incrustados se proporciona a continuación:
En una variante de esta realización, la esquina inferior derecha del último grupo rectangular no se determina en el bucle for(){}, pero la esquina inferior derecha de la última partición rectangular se especifica al final de la imagen. En una versión de esta realización, la profundidad de la pila está restringida a un cierto valor entero.
En una alternativa de esta realización, las funcionalidades de una pila se implementan utilizando una estructura de
datos de matriz. Esto puede implementarse utilizando una matriz con el tamaño máximo igual al número de particiones rectangulares y, p. ej., un puntero para señalar la posición del elemento de matriz activo que se utilizará para señalar la siguiente partición rectangular. El valor del puntero se actualizará cada vez que se agregue un elemento a la matriz o se lea un elemento de la matriz.
Realización 6. Un proceso recursivo
En una sexta realización, la partición rectangular de la imagen se deriva utilizando un método recursivo. Alternativamente, la derivación de la posición superior izquierda de la partición actual se realiza utilizando un método recursivo.
En un ejemplo, el método recursivo se define como sigue.
- El método recursivo R acepta dos entradas: un área rectangular P y una posición C en el área rectangular. - Los valores para las posiciones C en cada llamada a R se seleccionan de una lista L dada.
- En el método recursivo R, si C es la esquina inferior derecha de la imagen, el método R genera P como una partición rectangular. Si C no es la esquina inferior derecha de la imagen, el proceso continúa como sigue:
° el método R genera el rectángulo Q definido por la esquina superior izquierda de P como la esquina superior izquierda de Q y C como la esquina inferior derecha de Q como una partición rectangular,
° el método R realiza una llamada recursiva a R con nuevos parámetros P' y C' de entrada que se definen como sigue:
■ P' es un rectángulo en el área aún no compartimentada con la esquina superior izquierda T igual a la dirección más pequeña en el área aún no compartimentada y la esquina inferior derecha B definida como sigue: Si T está posicionada en el borde izquierdo de la imagen, entonces B es la esquina inferior derecha de la imagen. Si T no está posicionada en el borde izquierdo de la imagen, entonces B es la dirección más grande posicionada en el borde derecho de la imagen que la dirección T-1 y, al menos, una dirección en la misma fila que B pertenece a la misma partición rectangular.
■ C' se especifica en la lista L. El valor de C' estará dentro del área rectangular de P'.
Una vez que se ejecutan todas las llamadas recursivas, la imagen se compartimenta.
Esta realización puede combinarse con cualquiera de las Realizaciones 2 a 4 dependiendo de cómo se señalice una partición rectangular, p. ej., la partición rectangular se señaliza utilizando las esquinas superior izquierda e inferior derecha, utilizando la superior izquierda y el ancho y la altura, y utilizando una distancia a un punto fijo.
En una versión de esta realización, la profundidad de la recursividad está restringida a un cierto valor entero.
Realización 7. Un proceso que utiliza bucles for
En una séptima realización, la derivación de la posición superior izquierda de la partición actual se realiza utilizando bucles for. Como se describe en la Realización 1, el decodificador deriva las ubicaciones y/o los tamaños de las particiones en orden de escaneado de trama del mosaico. Antes de esta derivación, el decodificador inicializa una lista que realiza un seguimiento de los mosaicos en la imagen que aún no se han asociado con una partición. El tamaño de la lista es igual al número de mosaicos en la imagen, y la lista se inicializa tal que todos los mosaicos en la imagen se indican como aún no asociados con una partición.
Para la partición actual, se utiliza un bucle for que itera sobre los mosaicos en orden de escaneado de trama. El bucle for itera sobre la lista y el bucle for se detiene cuando se encuentra un mosaico aún no asociado con una partición. Este primer mosaico encontrado en orden de escaneado de trama aún no asociado con una partición identifica que la ubicación superior izquierda de la partición actual en la que se encuentra el mosaico es el mosaico superior izquierdo incluido en la partición actual. Luego se determina el tamaño o el mosaico inferior derecho de la partición actual como se describe en otra parte en esta descripción. Después de eso, los mosaicos que pertenecen (o están incluidos) a la partición actual se identifican y la lista se actualiza tal que los mosaicos que pertenecen a la partición actual se indican que están asociados con una partición.
Un decodificador puede realizar todos o un subconjunto de los siguientes pasos para esta realización para decodificar una imagen:
1. Decodificar una estructura de partición de mosaicos a partir de uno o más elementos de sintaxis en el flujo de bits. La sintaxis se ubica, preferentemente, en un conjunto de parámetros de imagen.
2. Determinar el número de columnas de mosaicos, el número de filas de mosaicos y el número de mosaicos N que hay en la imagen a partir de elementos de sintaxis en el flujo de bits. La sintaxis se ubica, preferentemente, en un
conjunto de parámetros de imagen.
3. Decodificar el número de particiones que hay en la imagen donde cada partición consta de un número entero de mosaicos. Las particiones pueden ser todas de forma rectangular, tal que el tamaño de cada partición puede describirse mediante una altura y un ancho en términos de número de mosaicos. Por ejemplo, una partición puede tener una altura de 3 mosaicos y un ancho de 4 mosaicos.
4. Inicializar una lista L de tamaño N donde cada entrada en la lista L corresponde a un mosaico en la imagen y las entradas están dispuestas en orden de escaneado de trama tal que la n-ésima entrada en L corresponde al nésimo mosaico en la imagen en orden de escaneado de trama. Cada una de las N entradas en la lista L se establece en un valor que representa que el mosaico correspondiente no pertenece a una partición.
5. Derivar el tamaño y/o la ubicación para una partición actual mediante los siguientes sub-pasos:
a. decodificar uno o más elementos de sintaxis de ubicación para la partición actual a partir del flujo de bits b. derivar el tamaño y/o la ubicación de la partición actual del(los) valor(es) del(los) elemento(s) de sintaxis de ubicación junto con el(los) tamaño(s) y/o la(s) ubicación(es) de las particiones derivadas previamente mediante los siguientes pasos ordenados:
i. La posición superior izquierda de la partición actual se deriva como la ubicación del primer mosaico en orden de escaneado de trama que no está incluido en ninguna partición derivada anteriormente. Esto se hace ejecutando un bucle for sobre los elementos en la lista L hasta que se encuentra una entrada con un valor que representa que el mosaico correspondiente no pertenece a una partición. ii. El tamaño y/o la ubicación del mosaico inferior derecho de la partición actual se determina como se describe en otra parte en esta descripción
iii. Los mosaicos que pertenecen a (o están incluidos en) la partición actual se identifican utilizando la posición superior izquierda derivada y el tamaño y/o la ubicación del mosaico inferior derecho como se describe en otra parte en esta descripción. Luego, la lista L se actualiza tal que las entradas en la lista L que corresponden a los mosaicos que pertenecen a la partición actual se establecen en un valor que representa que el mosaico correspondiente si pertenece a una partición 6. Utilizar los tamaños y/o las ubicaciones derivadas para decodificar la imagen
Esta realización puede combinarse con cualquiera de las Realizaciones 2 a 4 dependiendo de cómo se defina una partición rectangular, p. ej., la partición rectangular de mosaicos se señaliza utilizando las esquinas superior izquierda e inferior derecha, utilizando la superior izquierda y el ancho y la altura, y utilizando una distancia a un punto fijo. Combinando la Realización 7 con la Realización 2
En algunas realizaciones, la Realización 7 se combina con la Realización 2. La sintaxis y la semántica ejemplares sobre JVET-M0853 son como sigue.
La siguiente tabla proporciona una sintaxis ejemplar para la Realización 7 combinada con la Realización 2 sobre JVET-M0853. Las modificaciones sobre JVET-M0853 están marcadas.
Se muestra a continuación la semántica para elementos nuevos / modificados.
bottom_right_tile_idx[ i ] especifica el índice de mosaico del mosaico ubicado en la esquina inferior derecha del i-ésimo grupo de mosaicos. Cuando no está presente, las variables top_left_tile_idx[ i ] y bottom_right_tile_idx[ i ] se establecen ambas a i. La longitud del elemento de sintaxis bottom_right_tile_idx[ i ] es Ceil( Log2( NumTilesInPic) ) bits.
Es un requisito de conformidad del flujo de bits que cualquier mosaico en particular se incluya sólo en un grupo de mosaicos.
La variable NumTilesInTileGroup[ i ], que especifica el número de mosaicos en el grupo de mosaicos, y las variables relacionadas, se derivan como sigue:
Combinando la Realización 7 con la Realización 3
La sintaxis y semántica siguientes muestran cómo la Realización 7 puede combinarse con la Realización 3. La señalización se realiza utilizando una palabra de código de ancho y una de alto por partición y el proceso se basa en un bucle for para encontrar la ubicación superior izquierda de la partición actual.
Las modificaciones sobre JVET-M0853 están marcadas donde la sintaxis agregada está subrayada y las partes eliminadas están tachadas.
Se muestra a continuación la semántica para elementos nuevos / modificados.
tile_group_height_minus1 [ i ] más 1 especifica la altura del grupo de mosaicos en número de mosaicos. La longitud del elemento de sintaxis tile_group_height_minus1[ i ] es Ceil( Log2( num_tile_rows_minus1 1 ) ) bits. Cuando no está presente o num_tile_rows_minus1 es igual a 0, se deduce que tile_group_height_minus1 [ i ] es igual a 0. tile_group_width_minus1[ i ] más 1 especifica el ancho del grupo de mosaicos en número de mosaicos. La longitud del elemento de sintaxis tile_group_width_minus1[ i ] es Ceil( Log2( num_tile_columns_minus1 1 ) ) bits. Cuando no está presente o num_tile_columns_minus1 es igual a 0, se deduce que tile_group_width_minus1[ i ] es igual a 0. Es un requisito de conformidad del flujo de bits que cualquier mosaico en particular se incluya sólo en un grupo de mosaicos.
La variable NumTilesInTileGroup[ i ], que especifica el número de mosaicos en el grupo de mosaicos, y las variables relacionadas, se derivan como sigue:
Realización 8. Restricción
Esta realización describe restricciones en la semántica sobre M0853 para garantizar el tercer requisito de la partición rectangular establecido en JVET-M_Notes_dA.
En una variante de esta realización, la restricción define el rango permitido para la posición de la esquina inferior derecha de la siguiente partición rectangular en la imagen en el orden de escaneado.
En otra variante de esta realización, la restricción define el rango permitido para el ancho y la altura de la siguiente partición rectangular en la imagen en el orden de escaneado.
En otra variante de esta realización, la restricción define el rango de direcciones permitido para la esquina inferior derecha de la siguiente partición rectangular en la imagen en el orden de escaneado.
A continuación se muestra una restricción ejemplar propuesta, agregada al texto de la especificación sobre M0853:
En algunas realizaciones, un decodificador puede realizar una verificación de la restricción especificada anteriormente y, si la restricción no se cumple, el decodificador puede determinar que el flujo de bits es erróneo y en respuesta a la detección de que ha ocurrido un error, ocultar el error, y/o reportar el error a través de una red de comunicación a una fuente del flujo de bits codificado o como una notificación a un usuario.
Realización 9. Distancia relativa a un punto fijo
En una novena realización, una estructura de partición espacial como en la Realización 1 está señalizada por uno o más elementos de sintaxis que especifican la distancia de la esquina inferior derecha de la partición rectangular con respecto a un punto fijo en la imagen.
Realización 10. Otro orden
En una décima realización, se utiliza el método de cualquiera de las realizaciones anteriores, pero se utiliza otro orden predefinido o señalizado en lugar de un orden de escaneado de trama. Como ejemplo, el orden predefinido puede ser el orden Z. La FIG. 13A muestra un orden de escaneado de trama y la FIG. 13B muestra un orden Z.
Como ejemplo, en esta variante, la Realización 1 se convierte en: la posición superior izquierda de la partición actual se deriva como la ubicación del primer mosaico en un orden predefinido que no está incluido en ninguna partición derivada previamente.
En una realización, el orden Z se utiliza como el orden predefinido: la posición superior izquierda de la partición actual se deriva como la ubicación del primer mosaico en el orden Z que no está incluido en ninguna partición derivada previamente.
Realización 11.
Cualquier combinación de las realizaciones proporcionadas anteriormente, p. ej., Realizaciones 1-10.
FIG. 14A es un diagrama de flujo que ilustra un proceso 1400 según una realización. El proceso 1400 es un método para decodificar una imagen a partir de un flujo de bits. El método incluye decodificar una estructura de partición de mosaicos a partir de uno o más elementos de sintaxis en el flujo de bits (1410); determinar un número de mosaicos N en la imagen (1420); decodificar un número de particiones en la imagen, en donde cada partición comprende un número entero de mosaicos (1430); derivar un tamaño y/o una ubicación para una partición actual (1440); y el método incluye utilizar el tamaño y/o la ubicación derivados para decodificar la imagen (1450). Como se muestra en la FIG.
14B, derivar el tamaño y/o la ubicación para la partición actual (1440) comprende: decodificar uno o más elementos de sintaxis de ubicación para la partición actual a partir del flujo de bits (1442), derivar una posición superior izquierda de la partición actual como una ubicación de un primer mosaico en orden de escaneado de trama que no está incluido en una o más particiones derivadas previamente (1444), y derivar el tamaño y/o la ubicación de la partición actual a partir de un valor de uno o más elementos de sintaxis de ubicación junto con un tamaño y/o una ubicación de una o más particiones derivadas previamente (1446).
En algunas realizaciones, una partición rectangular comprende un grupo de mosaicos.
En algunas realizaciones, la estructura de partición de mosaicos comprende, al menos, tres particiones rectangulares, en donde, al menos, un límite de, al menos, una partición rectangular tiene partes en común con, al menos, otras dos particiones rectangulares.
En algunas realizaciones, una o más particiones derivadas previamente se han derivado en orden de escaneado de trama.
En algunas realizaciones, la estructura de partición tiene, cuando se decodifica, cada uno de todo su límite izquierdo y todo su límite superior en un límite de la imagen o está cerca de una o más particiones decodificadas previamente.
En algunas realizaciones, uno o más elementos de sintaxis de ubicación comprenden un elemento de sintaxis que representa un índice de mosaico, en donde el índice de mosaico es un número en el rango de 0 a N-1, inclusive, y en donde N indica el número de mosaicos en la imagen y el índice de mosaico indica una ubicación de un mosaico inferior derecho de la partición actual.
En algunas realizaciones, uno o más elementos de sintaxis de ubicación comprenden un elemento de sintaxis que representa una coordenada y de una ubicación de un mosaico inferior derecho de la partición actual y un elemento de sintaxis que representa una coordenada x de la ubicación del mosaico inferior derecho de la partición actual, y una ubicación inferior derecha de la partición actual se deriva a partir de los valores de coordenadas.
En algunas realizaciones, uno o más elementos de sintaxis de ubicación comprenden un elemento de sintaxis que representa el ancho de la partición actual en número de mosaicos y un elemento de sintaxis que representa la altura de la partición actual en número de mosaicos, y una ubicación inferior derecha de la partición actual se deriva agregando los valores de los elementos de sintaxis de ancho y de altura a una ubicación superior izquierda derivada de la partición actual.
En algunas realizaciones, los elementos de sintaxis no se decodifican si la partición actual es la última partición rectangular en orden de escaneado de trama.
En algunas realizaciones, uno o más elementos de sintaxis de ubicación comprenden uno o más elementos de sintaxis que especifican la distancia entre la esquina inferior derecha de la partición actual y un punto B donde el punto B está determinado por particiones rectangulares señalizadas previamente.
En algunas realizaciones, se utiliza una estructura de datos de pila para determinar la posición de las particiones rectangulares en la imagen.
En algunas realizaciones, se utiliza una estructura de datos de matriz para determinar la posición de las particiones rectangulares en la imagen.
En algunas realizaciones, se utiliza un método recursivo para dividir la imagen en particiones rectangulares.
En algunas realizaciones, el método incluye inicializar una lista L de tamaño N, en donde la lista L comprende N entradas, en donde cada entrada en la lista L corresponde a un mosaico en la imagen y una o más entradas están dispuestas en orden de escaneado de trama tal que la n-ésima entrada en L corresponde al n-ésimo mosaico en la imagen en orden de escaneado de trama, y en donde cada una de las N entradas en la lista L se inicializa a un valor que representa que el mosaico correspondiente no pertenece a una partición; derivar una posición superior izquierda de la partición actual, en donde derivar la posición superior izquierda de la partición actual comprende ejecutar un bucle for sobre los elementos en la lista L hasta que se encuentre una entrada con un valor que representa que el mosaico correspondiente no pertenece a una partición; identificar los mosaicos incluidos en la partición actual utilizando la posición superior izquierda y la ubicación inferior derecha derivadas; y actualizar la lista L tal que las
entradas en la lista L que corresponden a los mosaicos que pertenecen a la partición actual se establecen a un valor que representa que el mosaico correspondiente pertenece a una partición.
En algunas realizaciones, la posición de la esquina inferior derecha de la partición rectangular i en la imagen está restringida a un área rectangular definida por otras particiones rectangulares j en el orden de escaneado donde j < i.
En algunas realizaciones, el ancho y la altura de la partición rectangular i en la imagen están restringidos a un área rectangular definida por otras particiones rectangulares j en el orden de escaneado donde j < i.
En algunas realizaciones, la dirección o la ubicación de la esquina inferior derecha de la partición rectangular i en la imagen está restringida a un subconjunto de las direcciones definidas por otras particiones rectangulares j en el orden de escaneado donde j < i.
En algunas realizaciones, la estructura de partición espacial está señalizada por uno o más elementos de sintaxis que especifican la distancia de la esquina inferior derecha a un punto B para cada partición rectangular, en donde el punto B es fijo.
En algunas realizaciones, derivar un tamaño y/o una ubicación para una partición actual comprende derivar qué mosaicos en la imagen pertenecen a la partición actual.
FIG. 15A es un diagrama de flujo que ilustra un proceso 1500 según una realización. El proceso 1500 es un método para codificar una imagen en un flujo de bits. El método incluye codificar una estructura de partición de mosaicos como uno o más elementos de sintaxis en el flujo de bits (1510); determinar un número de mosaicos N en la imagen (1520); codificar un número de particiones en la imagen, en donde cada partición comprende un número entero de mosaicos (1530); derivar un tamaño y/o una ubicación para una partición actual (1540); y utilizar el tamaño y/o la ubicación derivados para codificar la imagen (1550). Como se muestra en la FIG. 15B, derivar el tamaño y/o la ubicación para la partición actual (1540) comprende: codificar uno o más elementos de sintaxis de ubicación para la partición actual en el flujo de bits (1542), derivar una posición superior izquierda de la partición actual como una ubicación de un primer mosaico en orden de escaneado de trama que no está incluido en una o más particiones derivadas previamente (1544), y derivar el tamaño y/o la ubicación de la partición actual a partir de un valor de uno o más elementos de sintaxis de ubicación junto con un tamaño y/o una ubicación de una o más particiones derivadas previamente (1546).
En algunas realizaciones, una partición rectangular comprende un grupo de mosaicos.
En algunas realizaciones, la estructura de partición de mosaicos comprende, al menos, tres particiones rectangulares, en donde, al menos, un límite de, al menos, una partición rectangular tiene partes en común con, al menos, otras dos particiones rectangulares.
En algunas realizaciones, una o más particiones derivadas previamente se han derivado en orden de escaneado de trama.
En algunas realizaciones, uno o más elementos de sintaxis de ubicación comprenden un elemento de sintaxis que representa un índice de mosaico, en donde el índice de mosaico es un número en el rango de 0 a N-1, inclusive, y en donde N indica el número de mosaicos en la imagen y el índice de mosaico indica una ubicación de un mosaico inferior derecho de la partición actual.
En algunas realizaciones, uno o más elementos de sintaxis de ubicación comprenden un elemento de sintaxis que representa una coordenada y de una ubicación de un mosaico inferior derecho de la partición actual y un elemento de sintaxis que representa una coordenada x de la ubicación del mosaico inferior derecho de la partición actual, y una ubicación inferior derecha de la partición actual se deriva a partir de los valores de coordenadas.
En algunas realizaciones, uno o más elementos de sintaxis de ubicación comprenden un elemento de sintaxis que representa el ancho de la partición actual en número de mosaicos y un elemento de sintaxis que representa la altura de la partición actual en número de mosaicos, y una ubicación inferior derecha de la partición actual se deriva agregando los valores de los elementos de sintaxis de ancho y de altura a una ubicación superior izquierda derivada de la partición actual.
En algunas realizaciones, uno o más elementos de sintaxis de ubicación comprenden uno o más elementos de sintaxis que especifican la distancia entre la esquina inferior derecha de la partición actual y un punto B donde el punto B está determinado por particiones rectangulares señalizadas previamente.
En algunas realizaciones, se utiliza una estructura de datos de pila para determinar la posición de las particiones rectangulares en la imagen.
En algunas realizaciones, se utiliza una estructura de datos de matriz para determinar la posición de las particiones rectangulares en la imagen.
En algunas realizaciones, se utiliza un método recursivo para dividir la imagen en particiones rectangulares.
En algunas realizaciones, el método incluye además inicializar una lista L de tamaño N, en donde la lista L comprende N entradas, en donde cada entrada en la lista L corresponde a un mosaico en la imagen y una o más entradas están dispuestas en orden de escaneado de trama tal que la n-ésima entrada en L corresponde al n-ésimo mosaico en la imagen en orden de escaneado de trama, y en donde cada una de las N entradas en la lista L se inicializa a un valor que representa que el mosaico correspondiente no pertenece a una partición; derivar una posición superior izquierda de la partición actual, en donde derivar la posición superior izquierda de la partición actual comprende ejecutar un bucle for sobre los elementos en la lista L hasta que se encuentre una entrada con un valor que representa que el mosaico correspondiente no pertenece a una partición; identificar los mosaicos incluidos en la partición actual utilizando la posición superior izquierda y la ubicación inferior derecha derivadas; y actualizar la lista L tal que las entradas en la lista L que corresponden a los mosaicos que pertenecen a la partición actual se establecen a un valor que representa que el mosaico correspondiente pertenece a una partición.
En algunas realizaciones, la posición de la esquina inferior derecha de la partición rectangular i en la imagen está restringida a un área rectangular definida por otras particiones rectangulares j en el orden de escaneado donde j < i.
En algunas realizaciones, el ancho y la altura de la partición rectangular i en la imagen están restringidos a un área rectangular definida por otras particiones rectangulares j en el orden de escaneado donde j < i.
En algunas realizaciones, la dirección o la ubicación de la esquina inferior derecha de la partición rectangular i en la imagen está restringida a un subconjunto de las direcciones definidas por otras particiones rectangulares j en el orden de escaneado donde j < i.
En algunas realizaciones, la estructura de partición espacial está señalizada por uno o más elementos de sintaxis que especifican la distancia de la esquina inferior derecha a un punto B para cada partición rectangular, en donde el punto B es fijo.
En algunas realizaciones, derivar un tamaño y/o una ubicación para una partición actual comprende derivar qué mosaicos en la imagen pertenecen a la partición actual.
La FIG. 16 es un diagrama que muestra unidades funcionales de un decodificador 1602 según algunas realizaciones. Como se muestra en la FIG. 16, el decodificador 1602 incluye una primera unidad 1604 de decodificación para decodificar una estructura de partición de mosaicos a partir de uno o más elementos de sintaxis en el flujo de bits; una unidad 1606 de determinación para determinar un número de mosaicos N en la imagen; una segunda unidad 1608 de decodificación para decodificar un número de particiones en la imagen, en donde cada partición comprende un número entero de mosaicos; una primera unidad 1610 de derivación para derivar un tamaño y/o una ubicación para una partición actual; una tercera unidad 1612 de decodificación para decodificar uno o más elementos de sintaxis de ubicación para la partición actual a partir del flujo de bits; una segunda unidad 1614 de derivación para derivar una posición superior izquierda de la partición actual como una ubicación de un primer mosaico en orden de escaneado de trama que no está incluido en una o más particiones derivadas previamente; una tercera unidad 1616 de derivación para derivar el tamaño y/o la ubicación de la partición actual a partir de un valor de uno o más elementos de sintaxis de ubicación junto con un tamaño y/o una ubicación de una o más particiones derivadas previamente; y una unidad 1618 de utilización para utilizar el tamaño y/o la ubicación derivados para decodificar la imagen.
La FIG. 17 es un diagrama que muestra unidades funcionales de un codificador 1702 según algunas realizaciones. Como se muestra en la FIG. 17, el codificador 1702 incluye una primera unidad 1704 de codificación para codificar una estructura de partición de mosaicos como uno o más elementos de sintaxis en el flujo de bits; una unidad 1706 de determinación para determinar un número de mosaicos N en la imagen; una segunda unidad 1708 de codificación para codificar un número de particiones en la imagen, en donde cada partición comprende un número entero de mosaicos; una primera unidad 1710 de derivación para derivar un tamaño y/o una ubicación para una partición actual; una tercera unidad 1712 de codificación para codificar uno o más elementos de sintaxis de ubicación para la partición actual en el flujo de bits; una segunda unidad 1714 de derivación para derivar una posición superior izquierda de la partición actual como una ubicación de un primer mosaico en orden de escaneado de trama que no está incluido en una o más particiones derivadas previamente; una tercera unidad 1716 de derivación para derivar el tamaño y/o la ubicación de la partición actual a partir de un valor de uno o más elementos de sintaxis de ubicación junto con un tamaño y/o una ubicación de una o más particiones derivadas previamente; y una unidad 1718 de utilización para utilizar el tamaño y/o la ubicación derivados para codificar la imagen.
La FIG. 18 es un diagrama de bloques de un nodo (p. ej., el decodificador 1602 y el codificador 172), según algunas realizaciones. Como se muestra en la FIG. 18, el nodo puede comprender: un circuito de procesamiento (PC) 1802, que pueden incluir uno o más procesadores (P) 1855 (p. ej., un microprocesador de propósito general y/o uno o más procesadores, como un circuito integrado de aplicación específica (ASIC), matrices de puertas lógicas programables en campo (FPGAs), y similares); una interfaz 1848 de red que comprende un transmisor (Tx) 1845 y un receptor (Rx) 1847 para permitir que el nodo transmita datos y reciba datos de otros nodos conectados a una red 1110 (p. ej., una red del Protocolo de Internet (IP)) a la que la interfaz 1848 de red está conectada; y una unidad 1808 de almacenamiento local (también conocida como "sistema de almacenamiento de datos"), que puede incluir uno o más dispositivos de almacenamiento no volátiles y/o uno o más dispositivos de almacenamiento volátiles. En realizaciones donde el PC 1802 incluye un procesador programable, puede proporcionarse un producto de programa informático
(CPP) 1841. El CPP 1841 incluye un medio legible por ordenador (CRM) 1842 que almacena un programa informático (CP) 1843 que comprende instrucciones legibles por ordenador (CRI) 1844. El CRM 1842 puede ser un medio legible por ordenador no transitorio, como medios magnéticos (p. ej., un disco duro), medios ópticos, dispositivos de memoria (p. ej., memoria de acceso aleatorio, memoria flash), y similares. En algunas realizaciones, las CRI 1844 del programa informático 1843 están configuradas tal que cuando son ejecutadas por el PC 1802, las CRI hacen que el nodo realice los pasos descritos en la presente memoria (p. ej., los pasos descritos en la presente memoria con referencia a los diagramas de flujo). En otras realizaciones, el nodo puede configurarse para realizar los pasos descritos en la presente memoria sin necesidad de código. Es decir, por ejemplo, el PC 1802 puede consistir simplemente en uno o más ASICs. Por lo tanto, las características de las realizaciones descritas en la presente memoria pueden implementarse en hardware y/o software.
Claims (17)
1. Un método (1400) para decodificar una imagen a partir de un flujo de bits, comprendiendo el método:
decodificar (1410) una estructura de partición de mosaicos a partir de uno o más elementos de sintaxis en el flujo de bits;
determinar (1420) un número de mosaicos N en la imagen;
decodificar (1430) un número de particiones en la imagen, en donde cada partición comprende un número entero de mosaicos;
derivar (1440) un tamaño y una ubicación para una partición actual, en donde derivar el tamaño y la ubicación para la partición actual comprende:
derivar (1442) el tamaño para la partición actual a partir de un elemento de sintaxis que representa el ancho de la partición actual en número de mosaicos y de un elemento de sintaxis que representa la altura de la partición actual en número de mosaicos, y
derivar (1444) una posición superior izquierda de la partición actual como una ubicación de un primer mosaico en orden de escaneado de trama que no está incluido en una o más particiones derivadas previamente; utilizar (1450) el tamaño y la ubicación derivados para decodificar la imagen.
2. Un método (1500) para codificar una imagen en un flujo de bits, comprendiendo el método:
codificar (1510) una estructura de partición de mosaicos como uno o más elementos de sintaxis en el flujo de bits;
determinar (1520) un número de mosaicos N en la imagen;
codificar (1530) un número de particiones en la imagen, en donde cada partición comprende un número entero de mosaicos;
derivar (1540) un tamaño y una ubicación para una partición actual, en donde derivar el tamaño y la ubicación para la partición actual comprende:
codificar (1542) el tamaño para la partición actual en un elemento de sintaxis que representa el ancho de la partición actual en número de mosaicos y en un elemento de sintaxis que representa la altura de la partición actual en número de mosaicos, y
derivar (1544) una posición superior izquierda de la partición actual como la ubicación de un primer mosaico en orden de escaneado de trama que no está incluido en una o más particiones derivadas previamente; utilizar (1550) el tamaño y la ubicación derivados para codificar la imagen.
3. El método de la reivindicación 1 o 2, en donde la partición actual es un grupo de mosaicos.
4. El método de la reivindicación 1,2, o 3, en donde la estructura de partición de mosaicos comprende, al menos, tres particiones rectangulares, en donde, al menos, un límite de, al menos, una partición rectangular tiene partes en común con, al menos, otras dos particiones rectangulares.
5. El método de cualquiera de las reivindicaciones 1-4, en donde una o más particiones derivadas previamente se derivaron en orden de escaneado de trama.
6. El método de cualquiera de las reivindicaciones 1 -5, en donde
se utiliza una estructura de datos de pila para determinar la posición de particiones rectangulares en la imagen, o
se utiliza una estructura de datos de matriz para determinar la posición de las particiones rectangulares en la imagen.
7. El método de cualquiera de las reivindicaciones 1-5, en donde se utiliza un método recursivo para dividir la imagen en particiones rectangulares.
8. El método de cualquiera de las reivindicaciones 1 -7, en donde derivar un tamaño y una ubicación para una partición actual comprende determinar los mosaicos en la imagen que pertenecen a la partición actual.
9. El método de cualquiera de las reivindicaciones 1 o 3-8, en donde la estructura de partición tiene, cuando se
decodifica, cada uno de todo su límite izquierdo y todo su límite superior en un límite de la imagen o está cerca de una o más particiones decodificadas.
10. El método de cualquiera de las reivindicaciones 1-9, en donde los elementos de sintaxis no se decodifican si la partición actual es la última partición rectangular en orden de escaneado de trama.
11. El método de cualquiera de las reivindicaciones 1 -10, en donde derivar la posición superior izquierda de la partición actual se hace sin decodificar ningún elemento de sintaxis dedicado a indicar la ubicación superior izquierda.
12. Un programa informático (1843) que comprende instrucciones (1844) que, cuando son ejecutadas por el circuito (1802) de procesamiento, hacen que el circuito (1802) de procesamiento lleve a cabo el método de cualquiera de las reivindicaciones 1-11.
13. Una portadora que contiene el programa informático de la reivindicación 12, en donde la portadora es una de una señal electrónica, una señal óptica, una señal de radio, y un medio de almacenamiento legible por ordenador.
14. Un decodificador (1602) para decodificar una imagen a partir de un flujo de bits, el decodificador adaptado para:
decodificar una estructura de partición de mosaicos a partir de uno o más elementos de sintaxis en el flujo de bits;
determinar un número de mosaicos N en la imagen;
decodificar un número de particiones en la imagen, en donde cada partición comprende un número entero de mosaicos;
derivar un tamaño y una ubicación para una partición actual, en donde derivar el tamaño y la ubicación para la partición actual comprende:
derivar el tamaño para la partición actual a partir de un elemento de sintaxis que representa el ancho de la partición actual en número de mosaicos y de un elemento de sintaxis que representa la altura de la partición actual en número de mosaicos, y
derivar una posición superior izquierda de la partición actual como la ubicación de un primer mosaico en orden de escaneado de trama que no está incluido en una o más particiones derivadas previamente;
utilizar el tamaño y la ubicación derivados para decodificar la imagen.
15. El decodificador de la reivindicación 14, en donde el decodificador se configura para realizar el método de cualquiera de las reivindicaciones 3-11.
16. Un codificador (1702) para codificar una imagen en un flujo de bits, el codificador adaptado para:
codificar una estructura de partición de mosaicos como uno o más elementos de sintaxis en el flujo de bits; determinar un número de mosaicos N en la imagen;
codificar un número de particiones en la imagen, en donde cada partición comprende un número entero de mosaicos;
derivar un tamaño y una ubicación para una partición actual, en donde derivar el tamaño y la ubicación para la partición actual comprende:
codificar el tamaño para la partición actual en un elemento de sintaxis que representa el ancho de la partición actual en número de mosaicos y en un elemento de sintaxis que representa la altura de la partición actual en número de mosaicos, y,
derivar una posición superior izquierda de la partición actual como la ubicación de un primer mosaico en orden de escaneado de trama que no está incluido en una o más particiones derivadas previamente;
utilizar el tamaño y la ubicación derivados para codificar la imagen.
17. El codificador de la reivindicación 16, en donde el codificador se configura para realizar el método de cualquiera de las reivindicaciones 2-11.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962816563P | 2019-03-11 | 2019-03-11 | |
| PCT/SE2020/050247 WO2020185146A1 (en) | 2019-03-11 | 2020-03-05 | Video coding comprising rectangular tile group signaling |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2955816T3 true ES2955816T3 (es) | 2023-12-07 |
Family
ID=72428019
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20770098T Active ES2955816T3 (es) | 2019-03-11 | 2020-03-05 | Codificación de vídeo que comprende señalización del grupo de mosaicos rectangulares |
Country Status (11)
| Country | Link |
|---|---|
| US (2) | US12003718B2 (es) |
| EP (1) | EP3939319B1 (es) |
| JP (1) | JP7284285B2 (es) |
| CN (1) | CN113678461B (es) |
| CO (1) | CO2021011568A2 (es) |
| ES (1) | ES2955816T3 (es) |
| MX (1) | MX2021010353A (es) |
| PL (1) | PL3939319T3 (es) |
| TW (1) | TWI750606B (es) |
| WO (1) | WO2020185146A1 (es) |
| ZA (1) | ZA202107651B (es) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019111005A1 (en) * | 2017-12-06 | 2019-06-13 | V-Nova International Ltd | Methods and apparatuses for hierarchically encoding and decoding a bytestream |
| ES2955816T3 (es) * | 2019-03-11 | 2023-12-07 | Ericsson Telefon Ab L M | Codificación de vídeo que comprende señalización del grupo de mosaicos rectangulares |
| EP3989550A4 (en) * | 2019-06-20 | 2023-06-07 | Xris Corporation | METHODS FOR IMAGE SIGNAL ENCODING/DECODING AND RELATED APPARATUS |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080126278A1 (en) * | 2006-11-29 | 2008-05-29 | Alexander Bronstein | Parallel processing motion estimation for H.264 video codec |
| CN101389021B (zh) * | 2007-09-14 | 2010-12-22 | 华为技术有限公司 | 视频编解码方法及装置 |
| US20110055290A1 (en) * | 2008-05-16 | 2011-03-03 | Qing-Hu Li | Provisioning a geographical image for retrieval |
| US8908763B2 (en) * | 2008-06-25 | 2014-12-09 | Qualcomm Incorporated | Fragmented reference in temporal compression for video coding |
| US20120106622A1 (en) * | 2010-11-03 | 2012-05-03 | Mediatek Inc. | Method and Apparatus of Slice Grouping for High Efficiency Video Coding |
| US9026615B1 (en) * | 2011-09-22 | 2015-05-05 | Teradici Corporation | Method and apparatus for caching image data transmitted over a lossy network |
| US9584819B2 (en) | 2011-10-24 | 2017-02-28 | Qualcomm Incorporated | Grouping of tiles for video coding |
| ES2984907T3 (es) * | 2012-01-30 | 2024-10-31 | Samsung Electronics Co Ltd | Aparato para codificación y decodificación de vídeo basadas en unidad de datos jerárquica que comprende predicción de parámetro de cuantificación |
| FR2988960A1 (fr) | 2012-03-29 | 2013-10-04 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
| US10785482B2 (en) * | 2012-09-24 | 2020-09-22 | Texas Instruments Incorporated | Method and system for constraining tile processing overhead in video coding |
| US9749627B2 (en) * | 2013-04-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Control data for motion-constrained tile set |
| WO2015055245A1 (en) * | 2013-10-16 | 2015-04-23 | Huawei Technologies Co., Ltd. | A method for determining a corner video part of a partition of a video coding block |
| GB2519745B (en) * | 2013-10-22 | 2018-04-18 | Canon Kk | Method of processing disordered frame portion data units |
| FR3029381A1 (fr) * | 2014-11-27 | 2016-06-03 | Orange | Procede de composition d’une representation video intermediaire |
| US10334248B2 (en) | 2015-05-29 | 2019-06-25 | Qualcomm Incorporated | Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design |
| CN116193116A (zh) * | 2016-03-30 | 2023-05-30 | 韩国电子通信研究院 | 使用画面划分信息对视频进行编码和解码的方法和设备 |
| KR20220127948A (ko) * | 2017-03-22 | 2022-09-20 | 한양대학교 산학협력단 | 적응적인 화소 분류 기준에 따른 인루프 필터링 방법 |
| WO2019243534A1 (en) * | 2018-06-21 | 2019-12-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Tile shuffling for 360 degree video decoding |
| TWI792578B (zh) * | 2018-07-09 | 2023-02-11 | 弗勞恩霍夫爾協會 | 用於經編碼圖像多樣化空間劃分之編碼器、解碼器、編碼方法及解碼方法 |
| WO2020056352A1 (en) * | 2018-09-14 | 2020-03-19 | Futurewei Technologies, Inc. | Slicing and tiling in video coding |
| US11044474B2 (en) * | 2019-02-18 | 2021-06-22 | Glenfly Technology Co., Ltd. | Image compression method and image processing system |
| ES2955816T3 (es) * | 2019-03-11 | 2023-12-07 | Ericsson Telefon Ab L M | Codificación de vídeo que comprende señalización del grupo de mosaicos rectangulares |
-
2020
- 2020-03-05 ES ES20770098T patent/ES2955816T3/es active Active
- 2020-03-05 WO PCT/SE2020/050247 patent/WO2020185146A1/en not_active Ceased
- 2020-03-05 CN CN202080020463.8A patent/CN113678461B/zh active Active
- 2020-03-05 JP JP2021552788A patent/JP7284285B2/ja active Active
- 2020-03-05 EP EP20770098.0A patent/EP3939319B1/en active Active
- 2020-03-05 MX MX2021010353A patent/MX2021010353A/es unknown
- 2020-03-05 PL PL20770098.0T patent/PL3939319T3/pl unknown
- 2020-03-05 US US17/437,779 patent/US12003718B2/en active Active
- 2020-03-10 TW TW109107900A patent/TWI750606B/zh active
-
2021
- 2021-08-31 CO CONC2021/0011568A patent/CO2021011568A2/es unknown
- 2021-10-11 ZA ZA2021/07651A patent/ZA202107651B/en unknown
-
2024
- 2024-05-02 US US18/653,336 patent/US12489893B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022524025A (ja) | 2022-04-27 |
| CN113678461A (zh) | 2021-11-19 |
| US12489893B2 (en) | 2025-12-02 |
| JP7284285B2 (ja) | 2023-05-30 |
| WO2020185146A1 (en) | 2020-09-17 |
| US20230072874A1 (en) | 2023-03-09 |
| MX2021010353A (es) | 2021-09-30 |
| EP3939319A4 (en) | 2022-08-10 |
| US12003718B2 (en) | 2024-06-04 |
| TWI750606B (zh) | 2021-12-21 |
| PL3939319T3 (pl) | 2023-12-18 |
| EP3939319B1 (en) | 2023-07-05 |
| US20240357105A1 (en) | 2024-10-24 |
| CN113678461B (zh) | 2025-01-28 |
| TW202041016A (zh) | 2020-11-01 |
| CO2021011568A2 (es) | 2021-09-20 |
| EP3939319A1 (en) | 2022-01-19 |
| ZA202107651B (en) | 2022-12-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2954591T3 (es) | Aparato de decodificación de vídeo y aparato de codificación de vídeo | |
| ES2952079T3 (es) | Dimensionamiento de subimágenes en la codificación de vídeo | |
| ES2568493T3 (es) | Indicador de estructura de mosaico fija indicando la posibilidad de un procesamiento paralelo para una secuencia de video comprimido | |
| ES3013317T3 (en) | Modified adaptive loop filter temporal prediction for temporal scalability support | |
| ES2657965T3 (es) | Métodos y aparato para señalización de predicción intra para grandes bloques para codificadores y decodificadores de vídeo | |
| ES3030107T3 (en) | Two-part signaling of adaptive loop filters in video coding | |
| ES2952775T3 (es) | Indicación de uso de un procesamiento paralelo de frente de onda en una codificación de vídeo | |
| ES2898663T3 (es) | Perfil, capa, nivel para la 0-ésima capa de salida establecida en la codificación de vídeo | |
| ES2905415T3 (es) | Codificar datos usando un diseño de codificación binaria aritmética adaptativa según contexto (CABAC) mejorado | |
| ES2866035T3 (es) | Restricción de los valores señalizados de píxeles de escape en la codificación de vídeo por el modo de paleta | |
| ES2937793T3 (es) | Codificación de imagen con bajo retardo | |
| CN114846804B (zh) | 视频信号处理方法及其设备 | |
| ES2912082T3 (es) | Método de decodificación de vídeo, método de codificación de vídeo y medio de almacenamiento legible por decodificador que almacena información de video codificada | |
| ES2677100T3 (es) | Filtrado de bucle alrededor de los límites de segmento o de límites de mosaico en la codificación de video | |
| ES2724203T3 (es) | Procedimiento, aparato y sistema para codificar y descodificar modos de intrapredicción | |
| US11039147B2 (en) | Method and apparatus of palette mode coding for colour video data | |
| ES2955816T3 (es) | Codificación de vídeo que comprende señalización del grupo de mosaicos rectangulares | |
| CN114556936A (zh) | 利用子图片来编码和解码视频流的方法和设备 | |
| CN110720217B (zh) | 用于支持各种块大小的图像编码或解码的设备和方法 | |
| US12034926B2 (en) | Flexible tile partitions | |
| BR112014010360B1 (pt) | Método e dispositivo para codificar dados de vídeo, método e dispositivo para decodificar dados de vídeo e memória legível por computador | |
| ES3036067T3 (en) | Spatially varying transform with adaptive transform type | |
| US20220167020A1 (en) | Deblocking of transform sub-block boundaries | |
| JP2024102288A (ja) | ビデオ画像処理方法、装置、および記憶媒体 | |
| ES3057180T3 (en) | Image encoding/decoding method and apparatus for performing prediction on basis of reconfigured prediction mode type of leaf node, and bitstream transmission method |
















