[go: up one dir, main page]

ES2972582T3 - Mejora en la partición forzada límite - Google Patents

Mejora en la partición forzada límite Download PDF

Info

Publication number
ES2972582T3
ES2972582T3 ES17735507T ES17735507T ES2972582T3 ES 2972582 T3 ES2972582 T3 ES 2972582T3 ES 17735507 T ES17735507 T ES 17735507T ES 17735507 T ES17735507 T ES 17735507T ES 2972582 T3 ES2972582 T3 ES 2972582T3
Authority
ES
Spain
Prior art keywords
boundary
image
partition
coding
partitioning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES17735507T
Other languages
English (en)
Inventor
Han Gao
Zhijie Zhao
Semih Esenlik
Anand Kotra
Shan Liu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2972582T3 publication Critical patent/ES2972582T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Agricultural Chemicals And Associated Chemicals (AREA)
  • Farming Of Fish And Shellfish (AREA)
  • Paper (AREA)
  • Switch Cases, Indication, And Locking (AREA)

Abstract

La presente invención se refiere a la partición de una imagen o un segmento de imagen. En particular, la imagen o segmento de imagen se divide en un número entero de unidades de árbol de codificación tanto en dirección vertical como horizontal. La parte límite restante se divide entonces al menos parcialmente de manera forzada de modo que el nivel de partición más profundo sea el resultado de una partición binaria, es decir, incluye una unidad de codificación que es más larga en un lado que en el otro. El lado más largo es paralelo o concurrente con la imagen o el límite del corte de imagen. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Mejora en la partición forzada límite
Campo de la invención
La presente descripción se refiere a la codificación y decodificación de imagen y/o de video y, en particular, a la división de la imagen en unidades de codificación.
Antecedentes
Los códec de video híbridos basados en bloques actuales emplean codificación predictiva. Una imagen de una secuencia de video se subdivide en bloques de píxeles y estos bloques son luego codificados. En lugar de codificar un bloque píxel por píxel, todo el bloque se predice utilizando píxeles ya codificados en la proximidad espacial o temporal del bloque. El codificador procesa además sólo las diferencias entre el bloque y su predicción. El procesamiento adicional incluye típicamente una transformación de los píxeles de bloque en coeficientes en un dominio de transformación. Los coeficientes se pueden comprimir luego adicionalmente (por ejemplo, por medio de cuantificación) y se pueden compactar adicionalmente (por ejemplo, por codificación de entropía) para formar una corriente de bits. La corriente de bits puede incluir además cualquier información de señalización que permita que el decodificador decodifique el video codificado. Por ejemplo, la señalización puede incluir ajustes relativos a los ajustes de codificador, tal como el tamaño de la imagen de entrada, tasa de fotogramas, indicación de etapa de cuantificación, predicción aplicada a los bloques de las imágenes, o similares.
Las diferencias entre un bloque y su predicción se conocen como el residuo del bloque. Más específicamente, cada píxel del bloque tiene un residuo, que es la diferencia entre un nivel de intensidad de ese píxel y su nivel de intensidad predicho. El nivel de intensidad de un píxel se denomina como el valor de píxel o valor del píxel. Los residuos de todos los píxeles de un bloque se denominan colectivamente como el residuo del bloque. En otras palabras, el bloque tiene un residuo que es un conjunto o matriz que consta de los residuos de todos los píxeles del bloque. Los residuos son luego transformados, cuantificados y codificados conjuntamente con información de señalización. La codificación puede incluir varias formas de codificación de longitud fija y variable, incluyendo codificación aritmética u otros tipos de codificación de entropía.
En la codificación de video híbrida basada en bloques, cada imagen es dividida en particiones en bloques de muestras y múltiples bloques dentro de una imagen se suman para formar segmentos como entidades independientemente decodificables. Los bloques, a los que se aplica la predicción y/o transformación se denominan como una unidad de codificación (CU) o bloque de codificación (CB). Las unidades de codificación pueden tener diferentes tamaños.
Por ejemplo, en la Codificación de Video de Alta Eficiencia (HEVC, también conocida como H.265), un fotograma de video se subdivide en tres unidades de codificación (CTU, también denominadas como bloques de árbol de codificación, CTB). Los CTB son bloques cuadrados discontinuos del mismo tamaño, por ejemplo, de 64 x 64 muestras. Cada CTB sirve como la raíz de una estructura de árbol cuaternario de partición de bloques, el árbol de codificación. Los CTB se pueden subdividir adicionalmente a lo largo de la estructura de árbol de codificación en bloques de codificación. Para los bloques de codificación, se determina el tipo de predicción. Los bloques de codificación se pueden dividir adicionalmente en bloques de transformación más pequeños a los cuales se aplica la transformación y la cuantificación.
Los detalles relativos a la división en particiones en HEVC se pueden encontrar en V. Sze et al (Ed.), High Efficiency Video Coding (HEVC): Algorithms and Architectures, Springer, 2014, Capítulo 3.2.
Además, el documento WO 2016/090568 muestra una estructura de árbol binario para dividir en particiones una unidad en múltiples unidades más pequeñas utilizando el árbol cuaternario más una estructura de árbol binario. Por consiguiente, la unidad de raíz en primer lugar se divide en particiones mediante una estructura de árbol cuaternario, y luego el nodo hoja del árbol cuaternario es dividido en particiones adicionalmente mediante una estructura de árbol binario.
"CTB splitting on frame boundary for arbitrary solution video” por Fuzheng Yang et al, 94. REUNIÓN MPEG; 11-10-2010 describe un método de división de CTB para los CTB en el límite de fotogramas, cuando la resolución de vídeo no es igual al múltiplo entero del tamaño LCTB. Los nuevos modos de CTB mejorarán la eficiencia de la codificación.
"Algorithm description of Joint Exploration Test Model 5 (JEM 5), 117. REUNIÓN MPEG; 16-1-2017-20-1-2017 describe una estructura de división en particiones de bloques QTBT, donde una CU puede tener una forma cuadrada o rectangular.
El documento EP 3383 043 A1 publicado después de la fecha de entrada en vigor de la presente solicitud revela un método de decodificación que comprende: determinar si un bloque actual de una imagen se extiende más allá de un límite de la imagen; determinar para cada modo dividido de una pluralidad de modos divididos si se permite que dicho bloque actual sea sometido a una división según dicho modo dividido comprobando si al menos una de las líneas de división está situada conjuntamente con uno de los límites de la imagen o si el tamaño de la parte del bloque dentro de la imagen a lo largo del límite de la imagen es un múltiplo de un tamaño de bloque mínimo; decodificar a partir de una corriente de bits un modo dividido actual del bloque actual que responda a los modos divididos permitidos; y decodificar el bloque actual según el modo dividido actual.
Compendio
La invención se define por un aparato para dividir una porción de una imagen según la reivindicación 1 y un método correspondiente según la reivindicación 5. Las opciones de implementación ventajosas se definen en las reivindicaciones dependientes. A continuación, los aspectos, implementaciones y/o realizaciones que no entran dentro del alcance de las reivindicaciones deben entenderse como ejemplos útiles para comprender la invención.
En la norma HEVC, las CTU y CU ubicadas en los límites de segmento o imagen se dividirán de manera forzada utilizando la partición de árbol cuaternario hasta que la muestra inferior derecha del nodo hoja se ubique dentro del límite de segmento o imagen. La partición forzada de árbol cuaternario no necesita ser señalizada en la corriente de bits, siempre que se fijen (predefinan) las reglas de división. El propósito de la partición forzada es permitir que el codificador y el decodificador procesen imágenes y segmentos que tienen tamaño horizontal y/o vertical que no es un múltiplo entero del respectivo tamaño horizontal y/o vertical de la CTU.
En HEVC, así como en el documento WO 2016/090568, el proceso de partición forzada divide las CTU y CU ubicadas en el límite de fotograma jerárquicamente por el enfoque de árbol cuaternario sin optimización de distorsión de tasa (RC) hasta que toda la CU actual se encuentre dentro del límite de segmento o imagen. Estas particiones forzadas no se necesitan señalizar en la corriente de bits. Sin embargo, la división a unidades de codificación muy pequeñas puede introducir complejidad adicional y requisitos de señalización con relación al procesamiento adicional separado (codificación, decodificación) de las unidades de codificación pequeñas.
Según la presente descripción, la partición forzada aplica la división de árbol binario al menos en el nivel más profundo de jerarquía de partición o al menos en un nivel de partición distinto del nivel más profundo de jerarquía de partición en el cual una unidad de codificación no permanece completamente dentro de la porción de límite.
Tal división proporciona una mayor eficiencia, ya que da como resultado un número más pequeño de unidades de codificación en el nivel más profundo de jerarquía.
Según un aspecto de la invención, se proporciona un aparato según la reivindicación 1.
Una ventaja de este enfoque es evitar demasiadas CU pequeñas en el límite de imagen que también puede dar como resultado una codificación más eficiente de la porción de límite.
Según un ejemplo, los circuitos de procesamiento se configuran para dividir en particiones la unidad límite de árbol de codificación por división de árbol binario al menos al menos en el nivel más profundo de partición.
Según un ejemplo, los circuitos de procesamiento, en funcionamiento, hacen particiones de la unidad límite de árbol de codificación por división de árbol cuaternario en N niveles más superficiales, siendo N un número entero mayor que, o igual a cero y menor que el número de niveles de jerarquía de partición; y hacen particiones de la unidad límite de árbol de codificación por división de árbol binario en los niveles de jerarquía de partición restantes.
Este enfoque proporciona una mayor flexibilidad en la configuración y aún garantiza que se codifica el límite de manera eficiente al evitar un gran número de CU de límite cuadrado pequeño.
En una implementación, los circuitos de procesamiento, en funcionamiento, hacen particiones de la unidad límite de árbol de codificación hasta que la unidad de codificación de nivel más profundo permanece completamente dentro de la porción de límite.
En una implementación, los circuitos de procesamiento, en funcionamiento, hacen particiones de la unidad límite de árbol de codificación por división de árbol binario en la dirección horizontal y vertical.
Según un aspecto de la invención, se proporciona un aparato para codificar una imagen de una secuencia de video, comprendiendo el aparato, el aparato para dividir una porción de imagen en unidades de codificación según cualquiera de los ejemplos e implementaciones descritos anteriormente; una unidad de codificación de imagen configurada para codificar las unidades de codificación; y una unidad formadora de corriente de bits configurada para generar una corriente de bits que incluye las unidades de codificación codificadas y una información de partición que indica cómo se dividen en particiones las unidades de árbol de codificación.
Otro aspecto de la presente invención incluye un aparato para decodificar una imagen de una secuencia de video que comprende: el aparato para determinar la división de una porción de imagen que se ha de decodificar en unidades de codificación según cualquiera de los ejemplos e implementaciones descritos anteriormente; un analizador de corriente de bits para analizar una corriente de bits que incluye las unidades de codificación codificadas y una información de partición que indica cómo se dividen en particiones y se basan en las unidades de codificación y en la división determinada de la porción de imagen; y una unidad de decodificación de imagen para decodificar las unidades de codificación codificadas.
Según una implementación ejemplar, la división de la unidad límite de árbol de codificación es una división predefinida y la información de partición no se refiere a la división de la unidad límite de árbol de codificación.
Los circuitos de procesamiento del aparato para decodificar y/o del aparato para codificar se pueden configurar para dividir en particiones la unidad límite de árbol de codificación por división de árbol cuaternario en N niveles más superficiales, siendo N un número entero mayor que, o igual a cero y menor que el número de niveles de jerarquía de partición; y dividir en particiones la unidad límite de árbol de codificación por división de árbol binario en los niveles de jerarquía de partición restantes. Además, en una implementación ejemplar, la información de partición incluye N o N se deriva basado en el tipo de predicción aplicada para codificar la imagen que se está procesando. N se puede derivar con base en el tamaño de una unidad límite de árbol de codificación con un tamaño menor que el tamaño predeterminado en cualquier dirección horizontal o vertical.
Según un aspecto de la presente invención, se proporciona un método según la reivindicación 5.
En una realización ejemplar, la partición de la unidad límite de árbol de codificación comprende además las etapas de: comenzar con un nivel de partición actual que es el nivel de partición más superficial; dividir de manera secuencial la unidad límite de árbol de codificación en unidades de codificación del nivel de partición actual, hasta que las unidades límite de codificación del nivel de partición actual caen completamente dentro de la porción límite; y tan pronto como la unidad de codificación del nivel de partición actual no cae dentro de la porción límite, incrementar el nivel de partición y dividir en particiones adicionalmente dicha unidad de codificación, en donde se utiliza una partición de árbol cuaternario para N niveles de partición más superficiales y se utiliza de otro modo la partición de árbol binario, siendo N un número entero mayor que, o igual a cero y menor que el número de niveles de jerarquía de partición.
Según otro aspecto de la presente invención, se proporciona un método para codificar una imagen de una secuencia de video que comprende las etapas de dividir una porción de imagen en unidades de codificación según cualquiera de los métodos como se ha especificado anteriormente; codificar las unidades de codificación; y generar una corriente de bits que incluye las unidades de codificación codificadas y una información de partición que indica cómo se han dividido en particiones las unidades de árbol de codificación.
Según otro aspecto de la presente invención, un método para decodificar una imagen de una secuencia de video comprende: determinar la división de una porción de imagen que se ha de decodificar en unidades de codificación según cualquiera de los métodos como se ha especificado anteriormente; analizar una corriente de bits que incluye las unidades de codificación codificadas y una información de partición que indica cómo se han dividido en particiones y basado las unidades de árbol de codificación en la división determinada de la porción de imagen; y decodificar las unidades de codificación codificadas.
Según un ejemplo, la etapa de partición, divide en particiones la unidad límite de árbol de codificación por la división de árbol binario al menos en el nivel de partición más profundo.
Según un ejemplo, la etapa de partición divide en particiones la unidad límite de árbol de codificación por división de árbol cuaternario en N niveles más superficiales, siendo N un número entero mayor que, o igual a cero y menor que el número de niveles de jerarquía de partición; y divide en particiones la unidad límite de árbol de codificación por división de árbol binario en los niveles de jerarquía de partición restantes.
En una implementación, la etapa de partición divide en particiones la unidad límite de árbol de codificación hasta que la unidad de codificación de nivel más profundo permanece completamente dentro de la porción de límite.
En una implementación, los circuitos de procesamiento, en funcionamiento, dividen en particiones la unidad límite de árbol de codificación por división de árbol binario en dirección horizontal y vertical.
Según otro aspecto de la presente invención, se proporciona un medio legible por ordenador, que almacena instrucciones que, cuando son ejecutadas por un procesador, hacen que el procesador ejecute un método según cualquiera de los aspectos y ejemplos anteriores.
Breve descripción de los dibujos
En lo que sigue se describen con más detalle realizaciones ejemplares con referencia a las figuras y dibujos adjuntos, en los que:
La figura 1 es un diagrama de bloques que muestra una estructura ejemplar de un codificador de video.
La figura 2 es un diagrama de bloques que muestra una estructura ejemplar de un decodificador de video. La figura 3 es un dibujo esquemático que ilustra un ejemplo de la partición de árbol cuaternario empleada por HEVC.
La figura 4 es un dibujo esquemático que ilustra un ejemplo de una partición de árbol cuaternario/árbol binario.
La figura 5 es un dibujo esquemático que ilustra la división forzada de árbol cuaternario de una porción de límite.
La figura 6 es un diagrama de bloques que ilustra un ejemplo de un aparato que puede operar como unidad de división en el codificador o decodificador.
La figura 7 es un dibujo esquemático que ilustra la división de porción de límite.
La figura 8 es un dibujo esquemático que muestra ejemplos de la división forzada de árbol binario de un límite vertical.
La figura 9 es un dibujo esquemático que ilustra ejemplos de partición en límite vertical, horizontal y combinado.
La figura 10 es un diagrama de flujo que muestra decisiones de sintaxis de partición ejemplares.
Descripción detallada de la invención
La presente invención se refiere a la división de una imagen en unidades más pequeñas para procesamiento adicional. Dicha división se puede utilizar de manera ventajosa en la codificación y decodificación de imágenes fijas o de imágenes de video. En lo que sigue, se describen el codificador y decodificador de video ejemplares, que pueden implementar la división según la presente descripción.
La figura 1 muestra un codificador 100 que comprende una entrada para recibir bloques de entrada de fotogramas o imágenes de una transmisión de video y una salida para proporcionar una corriente de bits de video codificado. El término "fotograma" en esta descripción se utiliza como un sinónimo para imagen. Sin embargo, se observa que la presente descripción también es aplicable a campos en el caso de que se aplique el entrelazado. En general, una imagen incluye m veces n píxeles. Éstos corresponden a muestras de imagen y puede comprender cada uno, uno o más componentes de color. Con propósito de simplicidad, la siguiente descripción se refiere a píxeles que significan muestras de luminancia. Sin embargo, cabe señalar que el enfoque de división de la presente descripción se puede aplicar a cualquier componente de color incluyendo crominancia o componentes de un espacio de color tal como RGB o similares. Por otra parte, puede ser beneficioso realizar la división para sólo un componente y aplicar la división determinada a más componentes restantes (o a todos).
El codificador 100 se configura para aplicar la partición, predicción, transformación, cuantificación y codificación entrópica a la transmisión de video.
En una unidad 110 de división, el fotograma de video de entrada se divide adicionalmente antes de la codificación. Los bloques que se han de codificar no tienen necesariamente el mismo tamaño. Una imagen puede incluir bloques de diferentes tamaños y las cuadrículas de bloque de diferentes imágenes de secuencia de video también pueden diferir. En particular, cada imagen (imagen) de video se subdivide en primer lugar en CTU del mismo tamaño fijo. El tamaño de la CTU se puede fijar y predefinir, por ejemplo, en una norma. En HEVC, se utiliza el tamaño de 64 x 64. Sin embargo, la presente descripción no se limita a tamaños estandarizados y fijos. Puede ser ventajoso proporcionar un tamaño de CTU que se pueda establecer en el codificador y siempre como un parámetro de señalización dentro de la corriente de bits. Por ejemplo, diferentes tamaños de CTU pueden ser beneficiosos para los respectivos tamaños de imágenes y/o tipos de contenido diferentes. El tamaño de CTU se puede señalizar en cualquier nivel de señalización, por ejemplo, puede ser común para toda la secuencia de video o para sus partes (es decir, una pluralidad de imágenes) o individual por imagen. De manera correspondiente, se puede señalizar, por ejemplo, dentro de un Conjunto de Parámetros de Imagen, PPS o dentro de un Conjunto de Parámetros de Secuencia, SPS o dentro de un Conjunto de Parámetros de Video, VPS que se conocen a partir de los códec actuales (H.264/AVC, H. 265/HEVC) o conjuntos de parámetros similares. De manera alternativa, se puede especificar en un encabezamiento de segmento o en cualquier otro nivel. El tamaño de CTU puede tomar valores diferentes de 64 x 64. Puede ser, por ejemplo, de 128 x 128 muestras de grande. En general, a fin de realizar la división jerárquica por árbol binario o árbol cuaternario, puede ser beneficioso proporcionar el tamaño de CTU que es una potencia de dos, es decir, en el formato de 2An siendo n un número entero mayor de 2.
La partición de imágenes en CTU y la partición de CTU en CU se muestran en la figura 3 de V. Sze et al (Ed.), High Efficiency Video Coding (HEVC): Algorithms and Architectures, Springer, 2014. La partición sigue una estructura de árbol cuaternario para adaptarse a distintas características locales. En el lado izquierdo, la figura 3 muestra una CTU dividida jerárquicamente en cumplimiento con la estructura de árbol cuaternario en el lado derecho. En particular, el árbol de codificación define la sintaxis, que especifica la subdivisión de la CTU en CU. De manera similar a una CTU, una CU consta de un bloque cuadrado de muestras y la sintaxis asociada con estos bloques de muestra. Así, la partición se realiza jerárquicamente, comenzando con la CTU (profundidad 0 de jerarquía) la cual puede ser, pero no tener que ser subdividida en cuatro CU (en árbol cuaternario) de profundidad 1 de jerarquía. En la figura 3, la CTU se divide en las CU 8 y 16 de la primera profundidad (nivel) de jerarquía, que no se divide adicionalmente y así, forma hojas del árbol cuaternario, así como otras dos CU adicionales, que se dividen adicionalmente en CU de profundidad 2 de jerarquía (CU de profundidad 2). En particular, la CU de profundidad 1 superior izquierda se subdivide adicionalmente en CU 1, 2, 7 de profundidad 2 que forma hojas de árbol cuaternario y otra CU que se divide adicionalmente en CU 3, 4, 5, 6 de profundidad 3 que son todas hojas. De manera similar, la CU de profundidad 1 inferior izquierda se divide adicionalmente en las CU 13, 14 y 15 de profundidad 2, que también son hojas del árbol cuaternario y una CU restante, que se divide adicionalmente en las CU 9, 10, 11 y 12 de nivel 3, que son todas hojas y, así, no se dividen adicionalmente.
Una sintaxis de ejemplo para la división de árbol cuaternario en HEVC se muestra a continuación en la Tabla I.
_____________________________________________________________________________
En particular, en el nivel de CTU, un indicador llamado split_cu_flag se incluye en la corriente de bits, que indica si la CTU completa forma una CU o si se divide en cuatro bloques de igual tamaño que corresponden a los bloques de muestra cuadrada. Si la CTU se divide, para cada uno de los bloques resultantes, se transmite otro split_cu_flag, que especifica si el bloque representa una CU o si está dividido adicionalmente en cuatro bloques de igual tamaño. Esta subdivisión jerárquica se continúa hasta que ninguno de los bloques resultantes se subdivide adicionalmente. El tamaño mínimo de CU se señala en el conjunto de parámetros de secuencia, puede variar de 8 x 8 muestras de luma al tamaño de la CTU, inclusive. Cuando el tamaño mínimo de CU se alcanza en el proceso de subdivisión jerárquico, no se transmiten indicadores de división para los bloques correspondientes; en su lugar se infiere que estos bloques no se dividen adicionalmente. En los ajustes de codificador de HEVC habituales, el intervalo máximo de tamaños de CU soportados se aprovecha de tal modo que se puedan utilizar las CU que oscilan desde 8 x 8 a 64 x 64 muestras. Las CU dentro de una CTU se codifican en un primer orden de profundidad. Este orden de codificación también se conoce como escaneo z. Garantiza que para cada CU, excepto aquellas ubicadas en el límite superior o izquierdo de un segmento, todas las muestras por encima de la CU y a la izquierda de la CU ya han sido codificadas, de modo que las muestras correspondientes se puedan utilizar para la intra-predicción y los parámetros de codificación asociados se puedan utilizar para predecir los parámetros de codificación de la CU actual.
En otras palabras, el split_cu_flag[ x0 ][ y0 ] específica si una unidad de codificación se divide en unidades de codificación con la mitad de tamaño horizontal y vertical. Los índices x0, y0 de agrupación especifican la ubicación ( x0, y0 ) de la muestra de luma superior izquierda del bloque de codificación considerado con relación a la muestra de luma superior izquierda de la imagen. Cuando split_cu_flag[ x0 ][ y0 ] no está presente, se aplica lo siguiente en el decodificador:
- Si log2CbSize (parámetro que especifica el tamaño de bloque de codificación) es mayor que MinCbLog2SizeY (parámetro que especifica el tamaño de unidad de codificación configurable mínimo), el valor de split_cu_flag [ x0 ][ y0 ] se infiere que es igual a 1.
- De otra manera (log2CbSize es igual a MinCbLog2SizeY), el valor de split_cu_flag [ x0 ] [ y0 ] se infiere que es igual a 0.
La agrupación ctDepth [ x ] [ y ] especifica la profundidad de árbol de codificación para un bloque de codificación de luma que cubre la ubicación (x, y). Cuando split_cu_flag [ x0 ][ y0 ] es igual a 0, ctDepth [ x ][ y ] se infiere que es igual a cqtDepth para x = x0..x0 nCbS - 1 e y = y0..y0 nCbS - 1.
La figura 4 muestra una partición de árbol cuaternario y árbol binario mezclada. La partición de árbol cuaternario se indica por líneas continuas mientras que la partición de árbol binario se indica por líneas discontinuas. Las etiquetas 1 o 0 en los nodos que representan las unidades de codificación que se han de dividir adicionalmente por el árbol binario indican si la división binaria se aplica vertical u horizontalmente, respectivamente.
El tamaño horizontal y vertical de una imagen de video, en muestras de luma, tiene que ser un múltiplo entero del tamaño mínimo de CU, en muestras de luma, transmitido en el conjunto de parámetros de secuencia, pero no necesita ser un múltiplo entero del tamaño de CTU. Si el tamaño horizontal o vertical de las imágenes de video no representa un múltiplo entero del tamaño de la CTU, las CTU en los bordes se infiere que se dividen hasta que los límites de los bloques resultantes coinciden con el límite de imagen. Para esta división forzada, no se transmiten indicadores de división, sino que los bloques resultantes se pueden dividir adicionalmente utilizando la sintaxis de árbol cuaternario descrita anteriormente. Las CU que se encuentran fuera del área de imagen no se codifican.
Esta división se ilustra en la figura 5. En particular, la figura 5 muestra el límite de fotograma anterior cuyas 56 líneas (128 muestras de largo) son una parte de límite de un segmento o imagen. La parte de la<c>T<u>por debajo del límite de fotograma puede pertenecer a otro segmento o puede no estar presente en absoluto, por ejemplo, si el límite de fotograma es el límite de imagen inferior. Como se puede ver, se aplica la división forzada de árbol cuaternario a las 128 x 56 muestras.
La subdivisión de los CTB de croma está en HEVC siempre alineada con la de los respectivos CTB de luma. Cabe señalar que la presente descripción puede manejar los componentes de croma de la misma manera, pero no se limita a ello. También puede haber una división independiente de diferentes componentes de color.
Después de realizar la división de la imagen en la unidad 110 de división, la transformación, cuantificación, y codificación entrópica se llevan a cabo respectivamente por una unidad 130 de transformación, una unidad 140 de cuantificación y una unidad 150 de codificación entrópica a fin de generar como una salida la corriente de bits de video codificada.
La transmisión de video puede incluir una pluralidad de fotogramas. Los bloques de, por ejemplo, el primer fotograma de la transmisión de video se intra-codifican por medio de una unidad 190 de intra-predicción. Un intra-fotograma se codifica utilizando información procedente de ese fotograma solamente, de modo que se pueda decodificar independientemente de otros fotogramas. Un intra-fotograma puede así proporcionar un punto de entrada en la corriente de bits, por ejemplo, para acceso aleatorio. Los bloques de otros fotogramas de la transmisión de video se pueden inter-codificar por medio de una unidad 195 de inter-predicción: cada bloque de un fotograma inter-codificado se predice a partir de un bloque en otro fotograma (fotograma de referencia), por ejemplo, un fotograma anteriormente codificado. Una unidad 180 de selección de modo se configura para seleccionar si un bloque de un fotograma se ha de intra-predecir o inter-predecir, es decir, si será procesado por la unidad 190 de intra-predicción o por la unidad 195 de inter-predicción. La unidad 180 de selección de modo también controla los parámetros de intra de inter-predicción. A fin de permitir la actualización de la información de imagen, un fotograma inter-codificado puede comprender no sólo bloques inter codificados, sino también uno o más bloques intra-codificados. Los intra-fotogramas, en contraste, contienen sólo bloques intra-codificados y no bloques inter-codificados. Los intra-fotogramas se pueden insertar en la secuencia de video (por ejemplo, con regularidad, es decir, cada vez después de un cierto número de inter fotogramas) a fin de proporcionar puntos de entrada para decodificación, es decir, puntos donde el decodificador puede iniciar la decodificación sin utilizar información de fotogramas anteriores.
La unidad 190 de intra-predicción es una unidad de predicción de bloques. Para realizar la predicción espacial o temporal, los bloques codificados se pueden procesar adicionalmente por una unidad 145 de cuantificación inversa, y una unidad 135 de transformación inversa. Después de la reconstrucción del bloque por un reconstructor 125, se puede aplicar una unidad 160 de filtración de bucle para mejorar adicionalmente la calidad de la imagen decodificada. El reconstructor 125 adiciona los residuos decodificados al predictor para obtener el bloque reconstruido. Los bloques filtrados forman entonces los fotogramas de referencia que se almacenan luego en una memoria intermedia 170 de fotogramas. Dicho bucle de decodificación (decodificador) en el lado de codificador proporciona la ventaja de producir fotogramas de referencia que son los mismos que las imágenes de referencia reconstruidas en el lado de decodificador. Por consiguiente, el lado de codificador y decodificador operan de una manera correspondiente. El término "reconstrucción" aquí se refiere a obtener el bloque reconstruido añadiendo el bloque residual decodificado al bloque de predicción.
La unidad 195 de inter-predicción recibe como entrada un bloque de un fotograma o imagen actual que se ha de inter-codificar y uno o varios fotogramas o imágenes de referencia procedentes de la memoria intermedia 170 de fotogramas. La estimación de movimiento y la compensación de movimiento se realizan por la unidad 195 de inter-predicción. La estimación de movimiento se utiliza para obtener un vector de movimiento y un fotograma de referencia, por ejemplo, con base en una función de coste. La compensación de movimiento describe entonces un bloque actual del fotograma actual en términos de la traslación de un bloque de referencia del fotograma de referencia al fotograma actual, es decir, por un vector de movimiento. La unidad 195 de inter-predicción selecciona un bloque de predicción (es decir, un predictor) para el bloque actual de entre un conjunto de bloques candidatos (es decir, predictores candidatos) en uno o varios fotogramas de referencia tal que el bloque de predicción minimice la función de coste. En otras palabras, un bloque candidato para el cual la función de coste es mínima se utilizará como el bloque de predicción para el bloque actual.
Por ejemplo, la función de coste puede ser una medida de una diferencia entre el bloque actual y el bloque candidato, es decir, una medida del residuo del bloque actual con respecto al bloque candidato. Por ejemplo, la función de coste puede ser una suma de diferencias absolutas (SAD) entre todos los píxeles (muestras) del bloque actual y todos los píxeles del bloque candidato en la imagen de referencia candidata. Sin embargo, en general, se puede emplear cualquier métrica de similitud, tal como el error medio cuadrático (MSE) o la métrica de similitud estructural (SSIM).
Sin embargo, la función de coste también puede ser el número de bits que son necesarios para codificar dicho inter-bloque y/o la distorsión resultante de dicha codificación. Así, un procedimiento de optimización de distorsión de tasa se puede utilizar para decidir sobre la selección del vector de movimiento y/o en general sobre los parámetros de codificación, tal como si se puede utilizar inter o intra-predicción para un bloque y con qué ajustes.
La unidad 190 de intra-predicción recibe como una entrada un bloque de un fotograma o imagen actual que se ha de intra-codificar y una o varias muestras de referencia procedentes de un área ya reconstruida del fotograma actual. La intra-predicción entonces describe píxeles de un bloque actual del fotograma actual en términos de una función de muestras de referencia del fotograma actual. La unidad 190 de intra-predicción emite un bloque de predicción para el bloque actual, en donde dicho bloque de predicción minimiza ventajosamente la diferencia entre el bloque actual que se ha de codificar y su bloque de predicción, es decir, minimiza el bloque residual. La minimización del bloque residual se puede basar, por ejemplo, en un procedimiento de optimización de distorsión de tasa. En particular, el bloque de predicción se obtiene como una interpolación direccional de las muestras de referencia. La dirección se puede determinar por la optimización de distorsión de tasa y/o calculando una medida de similitud como se menciona anteriormente con relación a la inter-predicción.
La diferencia entre el bloque actual y su predicción, es decir, el bloque residual, es transformada luego por la unidad 130 de transformación. Los coeficientes de transformación se cuantifican por la unidad 140 de cuantificación y se codifican entrópicamente por la unidad 150 de codificación entrópica. La corriente de bits de video codificado así generada comprende bloques intra-codificados y bloques inter-codificados y la señalización correspondiente (tal como la indicación de modo, indicación del vector de movimiento y/o la dirección de intra-predicción). La unidad 130 de transformación puede aplicar una transformación lineal tal como una transformación de Fourier discreta (DFT) o una transformación de coseno discreta (DCT). Dicha transformación en el dominio de frecuencia espacial proporciona la ventaja de que los coeficientes resultantes tienen valores típicamente más altos en las frecuencias más bajas. Así, después de un escaneo de coeficiente efectivo (tal como en zigzag) y cuantificación, la secuencia resultante de los valores tiene habitualmente algunos valores mayores al comienzo y termina con una serie de ceros. Esto permite una codificación adicional eficiente. La unidad 140 de cuantificación realiza una compresión con pérdida al reducir la resolución de los valores del coeficiente. La unidad 150 de codificación entrópica entonces asigna palabras de código binario a valores de coeficiente. Las palabras de código se escriben en una corriente de bits conocida como la corriente de bits codificada. El codificador entrópico también codifica la información de señalización (no mostrada en la figura 1) que puede incluir codificación según la sintaxis de indicador de división mostrada anteriormente.
La figura 2 muestra un ejemplo de un decodificador 200 de video. El decodificador 200 de video comprende en particular una memoria intermedia 270 de imagen de referencia y una unidad 290 de intra-predicción, que es una unidad de predicción de bloque. La memoria intermedia 270 de imagen de referencia se configura para almacenar al menos un fotograma de referencia reconstruido a partir de la corriente de bits de video codificada de la corriente de bits de video codificado. La unidad de intra-predicción 290 se configura para generar un bloque de predicción, que es una estimación del bloque que se ha de decodificar. La unidad 290 de intrapredicción está configurada para generar esta predicción basándose en muestras de referencia que se obtienen a partir de la memoria intermedia 270 de imagen de referencia.
El decodificador 200 se configura para decodificar la corriente de bits de video codificada generada por el codificador 100 de video, y preferiblemente tanto el decodificador 200 como el codificador 100 generan predicciones idénticas para el bloque respectivo que se ha de codificar/decodificar. Las características de la memoria intermedia 270 de imagen de referencia y la unidad 290 de intra-predicción son similares a las características de la memoria intermedia 170 de imagen de referencia y la unidad 190 de intra-predicción de la figura 1.
El decodificador 200 de video comprende unidades adicionales que también están presentes en el codificador 100 de video como, por ejemplo, una unidad 240 de cuantificación inversa, una unidad 230 de transformación inversa, y una unidad 260 de filtración en bucle, que corresponden respectivamente a la unidad 140 de cuantificación inversa, a la unidad 150 de transformación inversa, y a la unidad 160 de filtración en bucle del codificador 100 de video.
Una unidad 250 de análisis sintáctico de corriente de bits, decodificación entrópica y división se configura para analizar sintácticamente y decodificar la corriente de bits de video codificada recibida para obtener coeficientes de transformación residual cuantificados e información de señalización. Los coeficientes de transformación residual cuantificados se alimentan a la unidad 240 de cuantificación inversa y a una unidad 230 de transformación inversa para generar un bloque residual. El bloque residual se añade a un bloque de predicción en un reconstructor 225 y la suma resultante se alimenta en la unidad 260 de filtración en bucle para obtener un bloque de video decodificado. Los fotogramas del video decodificado se pueden almacenar en la memoria intermedia 270 de imagen de referencia y sirven como fotogramas de referencia para la inter-predicción. La información de señalización analizada sintácticamente y decodificada de la corriente de bits puede incluir en general información de control con relación a la partición de fotograma. A fin de analizar sintácticamente y decodificar de manera correcta adicionalmente la imagen, la información de control se utiliza para recuperar la división de la imagen en las unidades de codificación a fin de asignar correctamente los datos decodificados siguientes a las respectivas unidades de codificación.
En general, las unidades 190 y 290 de intra-predicción de las figuras 1 y 2 pueden utilizar muestras de referencia de un área ya codificada para generar señales de predicción para bloques que necesitan ser codificados o necesitan ser decodificados.
La unidad 250 de análisis sintáctico de la corriente de bits, de codificación entrópica y de división recibe como su entrada la corriente de bits codificada. La corriente de bits primero se puede analizar sintácticamente, es decir, se extraen los parámetros de señalización y los residuos de la corriente de bits. La sintaxis y semántica de la corriente de bits se pueden definir por una norma de modo que los codificadores y decodificadores puedan trabajar de una manera interoperable.
La presente descripción presenta el nuevo enfoque de la partición forzada de límite en la codificación de video hibrida basada en bloques. En particular, la partición forzada de límite se realiza al menos parcialmente utilizando la estructura de árbol binario (BT). Dado que, según la observación de los inventores, la mayoría de los bloques de límite puede utilizar el mismo modo de predicción, las particiones de árbol cuaternario (QT) forzado para las CTU en los límites de fotograma no siempre son necesarias. En lugar de la partición de QT forzada, en una realización, se introducen el BT horizontal forzado para la porción de límite inferior y/o el BT vertical forzado para la porción de límite derecho (asumiendo que los vecinos superior e izquierdo ya están reconstruidos en el orden de procesamiento de CTU de izquierda a derecha y de arriba a abajo).
En particular, como se muestra en la figura 6, según una realización, un aparato 600 (que se puede implementar en unidades 110, 250 descritas anteriormente) para la división en 610 de una porción de imagen en unidades de codificación que incluye unos circuitos de procesamiento que, en funcionamiento, subdividen la porción de imagen en un número entero de unidades de árbol de codificación con un tamaño predeterminado y una porción de límite con un tamaño menor que el tamaño predeterminado en al menos una primera dirección que es, o bien la dirección horizontal, o bien la vertical. Además, los circuitos de procesamiento, en funcionamiento, dividen en particiones en 630 la porción de límite jerárquicamente en unidades de codificación incluyendo una unidad de codificación más profunda con tamaños diferentes en las respectivas direcciones horizontal y vertical, siendo la unidad de codificación más profunda menor en la primera dirección.
Las CTU obtenidas por la división 610 de fotogramas se pueden dividir en particiones en 620 jerárquicamente de manera adicional. Esta partición se puede realizar de cualquier manera, por ejemplo, como se ilustra en las figuras 3 y 4 y se ha descrito con referencia a las mismas anteriormente.
La figura 6 muestra la estructura interna de los circuitos del aparato 600. Estos circuitos pueden ser cualquier clase de hardware o software con unidades funcionales 610, 620 y 630 para la respectiva división de fotograma en CTU, la partición de las CTU y la partición de la porción de límite. Estas unidades se pueden implementar, por ejemplo, en un procesador individual. Sin embargo, la invención no se limita a dicha aplicación y estas unidades se pueden implementar por partes de hardware separadas también.
La porción de límite se puede ubicar sólo en un límite vertical (si el tamaño de la imagen en la dirección vertical no es múltiplo entero del tamaño de CTU vertical) o sólo en un límite horizontal (si el tamaño de la imagen en la dirección horizontal no es un múltiplo entero del tamaño de CTU horizontal) o en el límite tanto vertical como horizontal (si el tamaño de la imagen en la dirección horizontal así como en la dirección vertical no es un múltiplo entero de los respectivos tamaños de CTU horizontal y vertical).
Las imágenes usuales que se han de codificar tienen un tamaño que es múltiplo de las CTU. La figura 7 visualiza un ejemplo de un límite 700 de imagen inferior y la porción 710 de límite correspondiente (sombreada). La porción 750 ilustra la porción restante de la imagen con el tamaño de un múltiplo entero de CTU de manera vertical y horizontalmente. En particular, el tamaño vertical de una CTU se denomina como 770V, mientras que el tamaño horizontal de la CTU se denomina como 770H. Como se puede ver en la figura 7, la porción de límite en este ejemplo es un múltiplo entero del tamaño 770H de CTU en dirección horizontal. Sin embargo, en la dirección vertical, la porción 710 de límite tiene un tamaño de un resto después de la división del tamaño de imagen vertical por el tamaño 770V de CTU vertical. La porción 720 sólo es virtual y muestra la diferencia entre la altura de la porción de límite y el tamaño de la CTU. Cabe señalar que en las presentes implementaciones la CTU es cuadrada, de modo que los tamaños 770H y 770V son los mismos. Sin embargo, la presente descripción no se limita a ello y los tamaños vertical y horizontal de la CTU pueden diferir.
A fin de codificar (y de manera correspondiente, decodificar) la porción de límite, la porción 710 de límite en la figura 7 se divide en CTU incompletas, es decir, en porciones que tienen el tamaño horizontal 770H de la CTU y el tamaño vertical menor que el tamaño 770V de la CTU. Estas CTU incompletas se dividen en particiones de manera forzada adicionalmente como se muestra en la figura 8.
La figura 8 muestra ejemplos en los cuales la porción de límite está en el límite horizontal, de modo que la división tiene lugar en la dirección vertical. En particular, en el lado izquierdo de la figura 8, se muestra una porción de límite que corresponde al ancho de una CTU (en este ejemplo son 128 muestras) pero una altura más pequeña que la altura de la CTU (sólo 56 muestras). El límite vertical se divide en particiones de manera forzada por división de árbol binario. En particular, la unidad de mayor tamaño de unidad que se ajusta en la longitud de 56 muestras es la unidad de profundidad 2 de tamaño de 32 muestras, dado que la unidad de profundidad 1 con 64 muestras no se ajusta a la porción de límite de altura de 56 muestras. Las 24 muestras restantes se dividen adicionalmente en la unidad de profundidad 3 de tamaño de 16 muestras y la parte restante de 8 muestras (que corresponde al tamaño de CU de profundidad 4) que alcanza hasta el límite de imagen de modo que no es necesaria la división adicional. En este ejemplo, no se aplica ninguna división en el límite horizontal. En resumen, la unidad de porción del límite con un tamaño de una CTU en una dirección y un tamaño menor en otra dirección se divide en particiones por división de árbol binario, es decir, dividiendo la unidad de porción de límite jerárquicamente en dos porciones de las cuales una tiene un tamaño de la CU próxima más somera que se ajusta al menor tamaño y una porción restante que se divide adicionalmente hasta que la CU más profunda alcanza el límite de fotograma. Esta partición de la porción de CTU grande de 128 x 56 da por resultado aquí en 3 unidades de codificación de porción de límite con los respectivos tamaños de 128 x 32, 128 x 16 y 128 x 8.
En resumen, según una implementación, los circuitos de procesamiento se configuran para dividir en particiones la porción de límite en todos los niveles de partición por división de árbol binario.
En el lado derecho de la figura 8, se muestra un ejemplo de partición en el cual se aplica en principio una partición de árbol cuaternario en la profundidad 1 de jerarquía (profundidad 0 de jerarquía que corresponde al tamaño de CT), dando como resultado dos CU de 64 x 56 de tamaño que se dividen adicionalmente en árbol binario en pares respectivos de CU grandes de 64 x 32, 64 x 16 y 64 x 8.
Los ejemplos en la figura 8 muestran la partición del límite inferior. Sin embargo, la presente descripción es igualmente aplicable a la división de cualquier otro límite, tal como el límite derecho. Si la subdivisión de la imagen en las CTU se realiza de izquierda a derecha y de arriba a abajo, entonces las porciones de límite estarían en la parte inferior y/o en el lado derecho de la imagen. Sin embargo, la partición también se podría realizar de la parte inferior a la parte superior y de derecha a izquierda, en cuyo caso sería necesario dividir el límite superior e izquierdo, lo cual es posible de la misma manera que se ha descrito con referencia a la figura 8. De manera similar, el ejemplo anterior muestra la partición de la CTU incompleta comenzando desde la parte superior de dicha CTU. Sin embargo, en general, también es posible dividir la CTU incompleta a partir del límite de imagen (fotograma) a la parte superior.
Como se muestra en el lado derecho de la figura 8, la división de la CTU incompleta puede ser una división de QT y BT mezclados. Los circuitos de procesamiento se pueden configura para dividir en particiones la porción de límite por división de árbol binario al menos en el nivel de partición más profundo. Esto proporciona una ventaja de que el límite más grande que coincide con el límite de fotograma no se tiene que dividir en las unidades más pequeñas. Muchas CU demasiado pequeñas en el límite de fotograma pueden dar como resultado más complejidad de codificación, así como la corriente de bits más grande. Cabe señalar que en esta realización, siempre que la CU más profunda tenga un lado mayor que el otro lado (es decir, resulte de la partición de árbol binario), las jerarquías de profundidad restantes se pueden determinar de cualquier manera y no necesitan ser forzadas de una manera predefinida. En su lugar, la partición se puede realizar por optimización de RD y se puede acompañar por la información de control correspondiente que permite que el decodificador recupere la misma partición. La partición también puede se puede forzar parcialmente y puede estar disponible parcialmente para la optimización de RD.
En otras palabras, los circuitos de procesamiento se pueden configurar para dividir en particiones la porción de límite también por división de árbol cuaternario. Así, puede haber una partición de QT o BT forzada predefinida para cada profundidad definida por una norma o configurable por información de control incluida en la corriente de bits.
Por ejemplo, la partición de BT forzada sólo se realiza después de un cierto número de niveles de QT forzada. Esto se puede lograr porque los circuitos de procesamiento se configuran para dividir en particiones la porción de límite por división de árbol cuaternario en N niveles más superficiales, siendo N un número entero mayor que, o igual a cero y menor que el número de niveles de jerarquía de partición. Los circuitos de procesamiento están además configurados para dividir en particiones la porción de límite por división de árbol binario en los niveles de jerarquía de partición restantes. Cuando se hace referencia a la figura 8, en el lado izquierdo no hay ninguna división de QT realizada.
La información de control en la corriente de bits puede incluir así un indicador de QT/BT que especifica si se ha aplicado o no un QT y en caso afirmativo, cuántos niveles son divididos por QT. Dicho indicador de QT/BT, de manera correspondiente, puede tomar una pluralidad de valores tal como el valor 0 si no se aplica ninguna división de QT (como se muestra en la figura 8 en el lado izquierdo) y valores correspondientes a N. Dicha señalización es más corta que la señalización para cada CU en cada nivel si se aplica o no la partición de QT, BT. Sin embargo, la presente descripción puede utilizar cualquier clase de señalización.
De manera alternativa, o en combinación con la señalización de control, los niveles de QT forzada se pueden seleccionar de manera adaptativa por tipo de ID temporal o de segmento. Este enfoque proporciona la ventaja de que no se requiere señalización explícita (ni menor cantidad de señalización explícita). Aún, la partición forzada se puede ajustar de manera adaptativa al menos con respecto al tipo de predicción.
HEVC especifica un identificador temporal (ID), que indica un nivel en una estructura de predicción temporal jerárquica (dependencia entre fotogramas inter-predichos). El tipo de segmento puede ser tal como el segmento intra-predicho, segmento inter-predicho aplicando solamente la predicción basada en una imagen de referencia, segmento inter-predicho aplicando predicción bidireccional o similar.
Por ejemplo, si el identificador temporal es 0 (que significa I imagen), o si el tipo de segmento es el segmento intra-predicho, la partición necesita ser más exacta que para un ID temporal más alto (imagen inter-predicha) o para los segmentos de P/B (segmentos inter-predichos).
Los parámetros anteriores de tipo ID temporal o de segmento son sólo ejemplares. En general, se pueden aplicar parámetros de codificación, adicionales y/o diferentes. Además, en lugar del tipo de segmento, se puede utilizar el modo de predicción de las CU en la CTU vecina para determinar la partición de porción de límite sobre la base de CTU (CTU de límite incompleta).
Por otra parte, la señalización de la partición puede proporcionar más libertad para elegir la división apropiada de modo que se incremente la eficiencia de codificación total. Por ejemplo, la partición se puede ajustar optimizando la función de coste (por ejemplo, por optimización RD) y se puede señalizar en la corriente de bits para indicar cuántos niveles de QT forzada se utilizan para el decodificador (es decir, la señalización de si se utiliza QT en todo o señalizando N como se ha mencionado anteriormente).
De manera alternativa, las CTU de límite (incompletas) se dividen en particiones primero por optimización de RD hasta el penúltimo nivel de jerarquía (profundidad) o hasta un nivel M de jerarquía señalizado. Los bloques de nivel más profundo restantes ubicados en el límite de fotograma utilizan entonces la partición de BT forzada o la combinación de la partición de QT forzada y de BT forzada.
La figura 9 muestra tres ejemplos de la partición de límite al menos parcialmente forzada.
Cuando la CTU/CU está ubicada en el límite inferior, se puede utilizar la partición de BT forzada horizontal sin optimización de RD y sin la señalización de indicador de partición de manera recursiva (por división de límite vertical). La partición de BT horizontal forzada se termina cuando la muestra inferior derecha de los nodos de hoja está ubicada dentro del límite inferior de segmento/imagen. Después de la partición de BT horizontal forzada, las CU particionadas forzadas de la CTU de límite posiblemente se dividen adicionalmente con base<en el coste de r>D<en el codificador, y se puede señalizar un indicador de división adicional desde el codificador>al decodificador. La figura 9, parte (a) muestra un ejemplo del límite inferior de 128 x 56 muestras particionadas por BT horizontal forzada (es decir, división del límite vertical).
De manera similar, para la CTU/CU ubicada en el límite derecho, se utilizan particiones de BT forzada vertical posiblemente sin la verificación de coste de RD y sin la señalización de indicador de división de manera recursiva hasta que la muestra inferior derecha de los nodos de hoja se ubica dentro del límite derecho de segmento/imagen. Después de la partición de BT vertical forzada (del límite horizontal), las CU particionadas forzadas a partir de la CTU de límite posiblemente se dividen adicionalmente por optimización de RD en el codificador y un indicador de división adicional se señaliza desde el codificador al decodificador. La figura 8, parte (b) muestra un ejemplo del límite derecho de 56 x 128 muestras de largo particionado por la BT horizontal forzada.
Según otro ejemplo, para la CTU/CU ubicada en el límite de esquina inferior derecha, se utiliza primero la<partición de>Q<t jerárquica forzada sin ninguna señalización, de manera recursiva. Cuando la muestra inferior>derecha de la CU actual se ubica en el límite inferior o derecho, la partición de BT horizontal o vertical forzada adicional se opera de manera recursiva hasta que las muestras inferiores derechas de los nodos de hoja se ubiquen dentro del límite de segmento/imagen. De otra manera, cuando la muestra inferior derecha de la CU actual aún está ubicada en el límite de esquina, se utilizará la partición de QT forzada adicional hasta que las muestras inferiores derechas de los nodos de hoja estén dentro del fotograma de segmento/imagen. Las CU particionadas forzadas obtenidas por división a partir de la CTU de límite posiblemente se dividen adicionalmente por optimización de RD en el codificador y un indicador de división adicional se puede señalizar desde el codificador al decodificador. La figura 9, parte (c) muestra el ejemplo del límite de esquina inferior derecha de 56 x 56 muestras particionado por BT y QT de manera forzada.
En particular, en la figura 9, parte (c), se muestra la CTU de límite de esquina incompleta de 56 x 56 muestras. El primer nivel de profundidad de 64 x 64 muestras después de la división de QT no está dentro de la porción de límite. El segundo nivel de profundidad de 32 x 32 muestras después de QT está dentro de la porción de límite pero deja una porción horizontal (CU inferior izquierda de 32 x 24 muestras), una porción vertical (CU superior derecha de 24 x 32 muestras) y otra porción de esquina (CU inferior derecha de 24 x 24 muestras) para ser divididas adicionalmente.
En este ejemplo, las CU de límite horizontal y vertical se dividen adicionalmente por árbol binario, de modo que las unidades de nivel más profundo tengan un lado más largo a lo largo del límite de imagen/segmento. La porción de esquina se puede dividir adicionalmente del mismo modo como se ha descrito describe para la porción de esquina de nivel más alto por encima, es decir, por división de árbol cuaternario.
En otras palabras, los circuitos de procesamiento, en funcionamiento, pueden dividir en particiones la porción de límite por división de árbol binario en la dirección horizontal y en la dirección vertical. Este es en especial el caso si la porción de límite se extiende a lo largo tanto de los límites de imagen/segmento, vertical como horizontal e incluye la porción de esquina.
Para el caso de esquina, los circuitos de procesamiento, en funcionamiento, dividen en particiones en cada nivel de jerarquía una porción de esquina de la porción de límite por división de árbol cuaternario. Por ejemplo, en la figura 9, parte (c), una esquina en ambos lados que tiene el tamaño de 56 muestras, para la CU 960 de límite de esquina, se necesitan cuatro niveles de QT forzada (división de QT de la CTU de 128 x 128 que da como resultado cuatro CU de 64 x 64 con la CU superior izquierda incluyendo la esquina de 56 x 56; la división de QT de la CU 64 x 64 superior izquierda que da como resultado cuatro CU 32 x 32 con la CU inferior derecha incluyendo la esquina de 24 x 24; la división de QT de la CU de 32 x 32 inferior derecha que da como resultado cuatro CU de 16 x 16, la derecha inferior de la misma incluyendo la esquina de 8 x 8 y la etapa final de la división de QT de la CU incompleta de 16 x 16 inferior derecha a cuatro CU de 8 x 8, es decir, la particiones de tamaño mínimo entre las cuales la partición izquierda superior está ubicada en la imagen mientras las otras no).
Por otra parte, para la CU 950 de límite inferior, se necesitan dos niveles de QT forzada y después de eso dos niveles de BT forzada (división de QT de la CTU de 128 x 128, división de QT de la CU de 64 x 64 superior izquierda, división binaria de la CU de 32 x 32 que incluye la porción de límite de 32 x 24 a dos CU de 32 x 16 en el límite inferior; y la etapa final de división de BT de la CU de 32 x 16 inferior a dos CU de 32 x 8 de la que solo la superior está dentro del límite de imagen).
Para la CU 960 de esquina, el nivel N de QT establecido no se tomará en cuenta y la CU de esquina se dividirá forzada por el QT en todos los niveles de jerarquía. En particular, en el caso de esquina, si la muestra inferior derecha del nodo hoja (CU incompleta, que significa ubicada parcialmente dentro de la porción de límite) está ubicada fuera tanto del límite derecho como del límite inferior, esta CU incompleta actual se reconocerá como bCorner (figura 10, etapa 1050, "Sí"). Si bCorner es cierto para la CU actual, la CU actual se dividirá adicionalmente utilizando QT forzada. La partición termina cuando un nodo hoja resultante de la división está completamente dentro de la porción de límite o si la porción de esquina resulta un caso de límite inferior o derecho (bBottom, bRight, lo cual significa que el límite derecho inferior de la CU actual está ubicado, o bien sólo fuera del límite inferior o derecho de la porción de límite, es decir, la imagen o segmento.
En este ejemplo, si N=0 o 1 o 2, el esquema de división de QT forzada será el mismo, debido a que la CU 960 siempre necesita la QT forzada y la CU 950 será dividida por QT en los primeros dos niveles de cualquier manera. Esto es debido a que la CU de la profundidad 0 (CTU), la CU de la profundidad 1 (64 x 64 muestras) aún son CU de esquina. Sólo después de la división de la CU de 64 x 64, en la profundidad 2, hay cuatro CU de las cuales una no es una CU de límite en absoluto (superior izquierda), dos son CU de límite inferior y de límite derecho y sólo una es CU de esquina.
Si N = 3, se necesitaría un QT forzado más y entonces se cambiaría el esquema de división forzada para la<CU 950, de modo que la CU de 32 x 32 inferior izquierda sería dividida por>Q<t en lugar de dividida por BT. La>división de la CU 960 sigue siendo la misma.
Según la presente descripción, se puede utilizar una combinación de QT forzada y BT forzada como ya se analizó de manera breve anteriormente. En particular, para alguna textura o movimiento complejo en el límite, puede ser beneficiosa la partición detallada para la calidad de imagen. Por consiguiente, también se<proporciona la partición forzada combinada por>Q<t y BT. En particular, en una combinación de implementación>de QT forzada y BT forzada, la partición de BT forzada se aplica solamente después de un cierto número N de niveles de QT forzada. Si bajo otro ajuste se permite la partición de QT después de la partición de BT, es posible la partición de QT forzada operada después de la BT forzada.
En la implementación combinada de BT forzada y QT forzada, hay varias maneras de definir el número de niveles de QT forzada. Si se utiliza el nivel de QT forzada predefinida, todas las CTU de límite serán particionadas forzadas primero con la misma estructura QTBT, es posible la partición adicional basada en la optimización de RD. La figura 8 en el lado derecho ilustra el ejemplo de la partición de QT de un nivel y BT de tres niveles de límite inferior de 128 x 56 muestras en una CTU incompleta de 128 x 128.
Los niveles de QT forzada se pueden seleccionar de manera adaptativa por parámetros de codificador tales como tipo de ID temporal o de segmento. Cierto tipo de segmento o ID temporal inferior puede necesitar más partición detallada. Adicionalmente, los niveles de QT forzada se pueden ajustar por la optimización de distorsión de tasa y se pueden señalizar en la corriente de bits para indicar cuántos niveles de QT forzada se utilizan. Una señalización de número de nivel en el nivel de CTU se puede utilizar para indicar cuántos niveles de QT forzada se han utilizado para una CTU. Además, una señalización de número de nivel en el encabezamiento de segmento se puede utilizar para indicar cuántos niveles de QT forzada se han utilizado para el segmento actual. Una señalización de número de nivel en SPS se puede utilizar para indicar cuántos niveles de QT forzada se han utilizado para una secuencia de video codificada. Una señalización de número de nivel en PPS se puede utilizar para indicar cuántos niveles de QT se han utilizado para una imagen codificada.
El número de niveles de QT forzada también se puede determinar basándose en cualquier otro enfoque. Por ejemplo, se puede utilizar la entropía de las muestras originales dentro del segmento/fotograma/región límite. La entropía se calcula sumando los términos p_i * log2(p_i) sobre i, en donde p_i es una probabilidad de valor I de intensidad de muestra en la determinada región. El signo "*" significa multiplicación, "log2" significa logaritmo con base 2. Cuanto más alta es la entropía, es más probable que la estructura esté presente en el segmento/fotograma/región límite y, así, pueden ser apropiadas las CU más pequeñas. Sin embargo, hay sólo ejemplos y en principio, la presente invención no se limita a ninguna manera particular en la cual se determine el número de niveles de QT forzada. Se puede utilizar cualquier otra medición, tal como varianza de presencia de bordes.
Los circuitos de procesamiento, en funcionamiento, dividen en particiones la porción de límite hasta que la unidad de codificación de nivel más profundo permanece en la porción de límite.
Según la presente descripción, se proporciona un método para dividir una porción de imagen en unidades de codificación. El método incluye subdividir la porción de imagen en un número entero de unidades de árbol de codificación con un tamaño predeterminado y una porción de límite con un tamaño menor que el tamaño predeterminado en al menos una primera dirección, que es, o bien la dirección horizontal, o bien la vertical. Entonces se realiza la partición de la porción de límite jerárquicamente en unidades de codificación incluyendo una unidad de codificación más profunda con diferentes tamaños en las respectivas direcciones horizontal y vertical, siendo la unidad de codificación más profunda menor en la primera dirección.
En una implementación, la partición de la porción de límite que comprende además las etapas de: comenzar con un nivel de partición actual que es el nivel de partición más superficial; dividir secuencialmente la porción de límite a unidades de codificación del nivel de partición actual, siempre que una unidad de codificación del nivel de partición actual no alcance la porción de límite; tan pronto como la unidad de codificación del nivel de partición actual no caiga dentro de la porción de límite, incrementar el nivel de partición y dividir en particiones adicionalmente dicha unidad de codificación, en donde se utiliza una partición de árbol cuaternario para N niveles de partición más superficiales y se utiliza de otra manera la partición de árbol binario.
La partición secuencial significa que se realiza la división desde el nivel más superficial hasta el nivel más profundo. En particular, la división forzada se realiza en cada nivel de jerarquía para una unidad de codificación que está ubicada en el límite (una CU de límite), que significa que dicha CU incluye muestras dentro de un límite de imagen/segmento (dentro de la porción de límite) y una parte ubicada fuera del límite de imagen/segmento. Aquí el término CU se refiere a la CU con el tamaño resultante de la partición que, sin embargo, es incompleta dado que incluye menos muestras que lo que determinado por su tamaño, es decir, se ubica parcialmente fuera de la imagen/segmento particionado.
La división forzada se realiza así a fin de dividir en particiones la porción de límite aproximadamente desde las CU más grandes hasta las CU más pequeñas de modo que toda la porción de límite sea dividida. No es necesaria la información de partición para la división forzada, se puede predefinir, como ya se analizó anteriormente. N se puede señalizar o predefinir, si hay algunos niveles de QT forzada. El N predefinido significa que el codificador y el decodificador ambos tienen un conocimiento de dicho N, que se puede definir por norma, por ejemplo.
Sin embargo, después de realizar la división forzada, las CU de porción de límite divididas forzadas se pueden dividir en particiones adicionalmente. Esto se puede realizar basándose en la optimización de distorsión de tasa y, así, también se señaliza en la corriente de bits. En particular, para las CU en la porción de límite, que son mayores que el tamaño mínimo de CU, se puede señalizar un indicador de división o una pluralidad de indicadores de división que indican si, o no y cómo dicha CU se divide en particiones adicionalmente.
Cabe señalar que la información de partición incluida en la corriente de bits puede incluir un indicador de división de QT y/o un indicador de división de BT. La división de QT y BT también se puede mezclar siempre que se señalice o pueda derivarse, cuál de las dos clases de división se ha utilizado. En el lado del decodificador, después de la división forzada, entonces se realiza la división adicional basada en la información de partición decodificada, tal como qt_split_cu_flag y bt_split_cu_flag. La figura 10 muestra una implementación de ejemplo detallada de una partición de límite y, en particular, de BT forzada y la combinación de la implementación de QT forzada y BT forzada. Las variables empleadas en la figura tienen el siguiente significado:
- bBottom indica si la muestra inferior derecha de la CTU o CU actual está ubicada fuera del límite inferior.
- bRight indica si la muestra inferior derecha de la CTU o CU actual está ubicada fuera del límite derecho.
- bCorner indica si la muestra inferior derecha de la CTU o CU actual está ubicada fuera del límite de esquina inferior derecha.
- FQT_LV indica los niveles de QT forzada antes de que se realice la BT forzada (corresponde a N descrito anteriormente).
- uiDepth indica el nivel de jerarquía actualmente particionado.
Como se ha mencionado anteriormente, los niveles de QT forzada podrían ser predefinidos, seleccionados de manera adaptativa basado en parámetros de codificador, tal como tipo de segmento/ ID temporal o basado en el coste de RD.
En particular, en la etapa 1010 comienza la partición de una CTU de porción de límite (nivel 0). Si la CTU es una CTU en el límite inferior o derecho (pero no el límite de esquina) en la etapa 1020, y si uiDepth no es mayor que FQT_LV-1, la CTU se divide en la etapa 1040 por BT forzada. De otra manera, se aplica la etapa 1060 de partición de QT forzada. La división continúa al dividir adicionalmente la CU de porción de límite. Por ejemplo, en el ejemplo de la figura 8 (b), la FQT_LV de CTU (nivel 1) es igual a 1. Dado que uiDepth = 0 es igual a FQT_LV-1 = 0, en la etapa 1030 la CTU incompleta se dividiría forzada por QT en la etapa 1060, dando como resultado dos CU (superior izquierda y derecha) que sería necesario dividir adicionalmente. Cada una de estas CU sería particionada adicionalmente de manera recursiva. La CU superior izquierda (nivel 1) aún está incompleta y, así, la CU de porción de límite. Como la CU de límite inferior en la etapa 1020, y dado que uiDepth<= 1 es mayor que FQT_LV-1 = 0 en la etapa 1030, la BT forzada se aplicaría en la etapa 1040 a la>C<u superior izquierda. La CU superior derecha sería particionada de la misma manera. Las>C<u de porción de límite>(incompletas) (64 x 24) serían divididas adicionalmente en el nivel 2 por BT en la etapa 1040. La CU de 64 x 8 restante en el nivel 3 alcanzaría el límite de imagen y así daría como resultado "No" en las etapas 1020 y 1050. La partición del tamaño 8 como la partición mínima no sería dividida adicionalmente en la etapa 1070, pero en su lugar daría como resultado "sí" en la etapa 1080 y detendría así la partición en la etapa 1090. La segunda CU de 64 x 24 sería dividida de la misma manera.
Por otra parte, la CTU de 56 x 56 de parte (c) en la figura 9 es una CTU de esquina. En la etapa 1020 (nivel 0), la CTU pasaría a la etapa 1050 y como una CU de esquina sería particionada por QT en la etapa 1060. En el nivel 1, la CU superior izquierda de 56 x 56 sería manejada de la misma manera dando por resultado tres CU de límite (inferior izquierda, superior derecha y de esquina). Cuando se asume que FQT_LV = 0 significa que no hay ninguna división de QT forzada para las CU bBottom y bRight, las CU inferior izquierda y superior derecha serían divididas por BT forzada en la etapa 1040 (después “sí” en la etapa 1020 y “no” en la etapa 1030). La CU de esquina de 24 x 24 (nivel 2) pasaría de la etapa 1020 a la etapa 1050 y sería particionada por QT en la etapa 1060, dando como resultando nuevamente en tres CU de límite con tamaños de 16 x 8, 8 x 8 y 8 x 16 que no sería necesario dividir adicionalmente y pasa a la etapa 1020 con “no”, a la etapa 1050 con “no” y sobre la etapa 1070 a la condición 1080 de detención y al final 1090. La condición de detención puede ser, por ejemplo, un tamaño mínimo, en este ejemplo igual a 8.
En la siguiente Tabla 2 se muestra una sintaxis ejemplar que permite señalizar el indicador de división de QT para las CU normales (no de límite). Además, el indicador de división de BT se puede señalizar para las CU distintas de las CU de porción de límite. La sintaxis de coding_quadtree es recursiva, es decir, la partición es jerárquica. La partición se realiza si las siguientes condiciones son ciertas:
x0 cuWidth <= pic_width_in_luma_samples
y
y0 cuHeight <= pic_height_in_luma_samples.
En otras palabras, siempre que la esquina inferior derecha de la CU actual (es decir, la CU actualmente procesada por división) esté dentro de la imagen, la CTU/CU se divide por árbol cuaternario o árbol binario. Se observa que esta sintaxis sólo es ejemplar y que la presente descripción también se puede aplicar a otros casos, tales como usando sólo la QT o solo la BT o tipos de partición adicionales seleccionables para las CTU que están completamente dentro de la imagen/segmento. Los valores cuMinBTSiz, cuMaxBTSize y cuMaxBTDepth empleados en la sintaxis son valores predefinidos.
En las condiciones anteriores, x0 e y0 especifican la ubicación de muestra de esquina superior izquierda de la CU actual, cuWidth y cuHeight especifican el tamaño de CU horizontal y vertical y los parámetros pic_width_in_luma_samples y pic_width_in_luma_samples especifican el tamaño de la imagen horizontal y vertical. Cabe señalar que en este ejemplo, se divide en particiones toda la imagen. Sin embargo, el mismo enfoque es aplicable a porciones de imagen independientemente decodificables, tal como segmentos, mosaicos o cualquier otra porción de imagen con límites.
Similar a la norma de HEVC, cuando qt_split_cu_flag [x0] [y0] no está presente (caso límite), se aplica lo siguiente (en el codificador y decodificador):
- Si cuWidth (ancho de la CU de nivel actual) es mayor que MinQTSize (tamaño de QT mínimo, aquí 8) y cuHeight (altura de la CU de nivel actual) es mayor que MinQTSize, el valor de qt_split_cu_flag [x0] [y0] se infiere que es igual a 1. En otras palabras, el límite es dividido de manera forzada.
- De otra manera (log2CbSize es igual a MinCbLog2SizeY), el valor de qt_split_cu_flag [x0] [y0] se infiere que es igual a 0. En otras palabras, la CU actual tiene el tamaño mínimo permitido MinCbLog2SizeY, el decodificador asume que la CU no se divide más.
Esto es similar al caso de la Tabla 1 anterior.
Tabla 2: Sintaxis ejemplar de BT forzada y QT forzada más implementación de BT forzada basada en la sintaxis m r n l T l 1 nf iz r m r n ri
________________________________________________________________________
Como se puede ver, bt_split_cu_flag se puede señalizar. Este indicador se señaliza cuando la división de BT de una CTU está configurado para una CTU/CU no en un límite (véase condición if ( ! (bBBoundary || bRBoundary) ) ). En el caso de un límite, la división forzada no requiere indicadores adicionales debido a que el valor del indicador se deriva. En particular, cuando bt_split_cu_flag [x0] [y0] no está presente (caso de límite), se aplica lo siguiente:
- Si bBBoundary (que significa que la CU/CTU actual está en el límite inferior) es cierto y al mismo tiempo cuWidth es mayor que MinBTSize o cuHeight es mayor que MinBTSize (la CU/CTU actual no tiene el tamaño mínimo y así, se puede dividir adicionalmente en principio), el valor de bt_split_cu_flag [x0] [y0] se infiere que es igual a 1 (que significa que se realiza la división binaria adicional, en particular, la división de árbol binario que da como resultado el lado más largo de la CU dividida que es paralelo/concurrente con la parte inferior, es decir, el límite horizontal).
- bRBoundary (que significa que la CU/CTU actual está en el límite derecho) es cierto mientras tanto cuWidth es mayor que MinBTSize o cuHeight es mayor que MinBTSize, el valor de bt_split_cu_flag [x0] [y0] se infiere que es igual a 2 (que significa que se realiza la división binaria adicional, en particular, la división de árbol binario que da como resultado el lado más largo de la CU dividida que es paralelo/concurrente con la derecha, es decir, el límite vertical).
- De otra manera, el valor de bt_split_cu_flag [x0] [y0] se infiere que es igual a 0, lo que significa que no se realiza ninguna división binaria adicional.
Estar en el límite, significa que no hay ninguna CU en el nivel de jerarquía de partición actual o más abajo entre la CU actual y el límite, en otras palabras, la CU actual pertenece a la porción de límite en el nivel de jerarquía actual (que corresponde a que bBBoundary es cierto o que bRBoundary es cierto). La división de BT se utiliza en el caso de que no se fuerce QT (cqtDepth> FQT_LV-1) y el indicadora de BT se incluye en la corriente de bits si la CU actual no es una CU de límite.
Los valores ejemplares para la implementación de JEM son cuMinBTSize para el inter-fotograma que tiene valor 4, cuMAXBTSize para el inter-fotograma que es 128, y cuMAXBTDepth para el que es 3. Sin embargo, la presente descripción actual no se limita a estos tamaños y es aplicable a cualquier valor seleccionado.
Cabe señalar que la sintaxis anterior sólo es ejemplar y que asume el conocimiento de la variable FQT_LV que indica el número de niveles de división de QT forzada. Si el valor de FQT_LV es cero, entonces no hay niveles de QT forzada y se realiza toda la división del límite forzada por división de árbol binario. La sintaxis y semántica se pueden implementar de manera diferente sin desviarse de la presente descripción.
Otra solución basada en software de JEM (JEM 5 y 6) podría ser especificar la siguiente semántica. Cuando qt_split_cu_flag [x0] [y0] no está presente (caso de límite), el valor de qt_split_cu_flag [x0] [y0] se infiere que es igual a 1, lo que significa la división de QT adicional en caso de una C<u>de esquina o la QT forzada (si cqtDepth <= FQT_LV-1).
Cuando bt_split_cu_flag [x0] [y0] no está presente (caso de límite), se aplica lo siguiente:
- si bBBoundary es cierto, el valor de bt_split_cu_flag [x0] [y0] se infiere que es igual a 1, lo que significa que la CU de límite inferior se divide por división binaria en la dirección vertical, es decir, para formar dos CU horizontales (es decir, CU más largas en la dirección horizontal que en la dirección vertical).
- si bRBoundary es cierto, el valor de bt_split_cu_flag [x0] [y0] se infiere que es igual a 2, lo que significa que la CU de límite derecho se divide por división binaria en la dirección horizontal, es decir, para formar dos CU verticales (es decir, CU más largas en la dirección vertical que en la dirección horizontal).
El ejemplo anterior muestra una división forzada con un parámetro que define el número de niveles de QT forzada antes de que se aplique la división BT. Las reglas de semántica definen la división que se ha de adoptar en caso de que el indicador de división no esté presente, es decir, en el límite. Sin embargo, la presente descripción no se limita a dicho enfoque.
De manera alternativa, las CTU de límite (incompletas) se pueden dividir en particiones primero por optimización de RD, y el bloque restante ubicado en el límite de fotograma entonces puede utilizar la partición de BT forzada o una combinación de partición de QT forzada y BT forzada. La partición por optimización de RD implica que los indicadores de división se señalizan en la corriente de bits para las CU correspondientes. La partición por RD se puede especificar (es decir, en la norma o por señalización común para la secuencia de imágenes o imagen) para que sea QT o se puede especificar para que sea BT de modo que una elección entre la BT y QT no se tenga que señalizar para cada CU. Por otra parte, el indicador de división se puede extender no sólo para indicar si se divide o no la CU determinada, sino también si se divide por QT o por BT.
En el lado del decodificador, la partición forzada se operará en las CTU/CU de límite. Para la partición de BT forzada, se utilizará la BT horizontal forzada (división en la dirección vertical para formar particiones horizontales) en las CTU/CU ubicadas en el límite inferior hasta que las muestras inferiores derechas de los nodos de hoja estén dentro del límite inferior de segmento/imagen. Se utilizará la BT vertical forzada en las CTU/CU ubicadas en el límite derecho hasta que las muestras inferiores derechas de los nodos de hoja estén dentro del límite derecho de segmento/imagen. Las CTU/CU de esquina inferior derecha se dividirán en particiones utilizando QT forzada hasta que las muestras de la inferiores derechas del nodo hoja estén dentro del límite de segmento/imagen o los nodos de hoja resulten el caso de límite derecho/inferior. Se operan particiones adicionales basadas en el indicador de división decodificado que puede ser el indicador de división por QT o por BT dependiendo de si hay diversos niveles de partición de QT forzada definidos, como ya se describió anteriormente con referencia a la sintaxis. Los elementos de sintaxis se generan por el codificador y se manejan por el decodificador como se ha explicado anteriormente.
Para la combinación de QT forzada y BT forzada, el número de niveles de QT forzada para CTU de límite (que corresponde al parámetro FQT_LV) se puede seleccionar de manera adaptativa basado en el tipo de ID temporal/segmento, o se puede descodificar de la corriente de bits. El nivel de QT forzada decodificada se podría extraer del encabezamiento de segmento, SPS o PPS. La CTU/CU de límite se divide en particiones por BT forzada sólo después de la partición de QT forzada. Cuando las muestras inferiores derechas de los nodos de hoja están dentro del límite, se terminará la división forzada. La partición adicional se realiza basada en el indicador de división decodificada.
En otras palabras, según una primera implementación, en el decodificador, si una CTU está ubicada en el límite de segmento/imagen, se realiza la partición de árbol binario sin indicador de la partición de árbol binario (indicador) y/o el indicador del tipo de partición de árbol binario (indicación de si se ha de realizar la BT o QT). La partición binaria se termina cuando la muestra inferior derecha del nodo hoja está ubicada dentro del límite de segmento/imagen (es decir, no cruza el límite de imagen).
Así, en lugar de una partición de límite de QT forzada, se introduce la BT forzada para las CTU de límite. Se implementan la BT horizontal forzada para el límite inferior y la BT vertical forzada para el límite derecho. Para el límite de esquina inferior derecha, se utilizará la QT forzada hasta que la CU actual ya no necesite ser particionada de manera forzada (dado que el tamaño mínimo se alcanza) o la CU actual está en la parte inferior o el límite derecho.
En otra implementación de la presente descripción, también es posible una combinación de partición de QT forzada y BT forzada. Por consiguiente, la partición de BT forzada sólo se realiza después de un cierto número de niveles de QT forzada. Para la combinación de partición de QT forzada y BT forzada, los niveles de QT forzada se pueden seleccionar de manera adaptativa por el ID temporal o tipo de segmento. De manera alternativa, los niveles de QT forzada se pueden ajustar por costes y se pueden incluir en la corriente de bits para indicar cuántos niveles de QT forzada se utilizan para el decodificador.
Se logra aún más flexibilidad cuando las CTU de límite se dividen en particiones primero por optimización de RD, y sólo los bloques restantes ubicados en el límite de fotograma (es decir, las CU incompletas que están ubicadas parcialmente dentro de la imagen y parcialmente fuera de la imagen) pueden utilizar la partición de BT forzada propuesta o una combinación de partición de QT forzada y BT forzada como se ha descrito anteriormente.
La partición como se ha descrito hasta el momento se puede emplear en codificación de imagen fija o de video. En particular, la partición se puede emplear en el codificador y en el decodificador que se muestran en las figuras 1 y 2, en la unidad 110 de división y en la unidad 250 de división, respectivamente.
Por consiguiente, la presente descripción también proporciona un aparato para codificar una imagen de una secuencia de video que comprende: el aparato (unidad de división) 110 para dividir una porción de imagen en unidades de codificación según cualquiera de los ejemplos descritos anteriormente, una unidad 120-145, 160 195 de codificación de imagen, configurada para codificar las unidades de codificación, y una unidad 150 formadora de corriente de bits configurada para generar una corriente de bits que incluye las unidades de codificación codificadas y una información de partición que indica cómo se dividen en particiones las unidades de árbol de codificación.
El codificador puede comprender además una unidad de optimización de distorsión de tasa (no mostrada en la figura 1) configurada para determinar la partición jerárquica de la porción de límite según la optimización de distorsión de tasa para cualquiera de los niveles de partición aparte del nivel más profundo. La unidad de optimización de RD puede realizar la codificación utilizando diferentes ajustes de codificador con respecto a la partición y puede seleccionar el ajuste que da como resultado la función de coste mínimo. La función de coste puede ser la tasa mínima para el nivel de distorsión determinado o la similitud entre la predicción y el bloque original que se ha de codificar o similares.
Además, se proporciona un aparato para decodificar una imagen de una secuencia de video que comprende: el aparato 250 para determinar la división de una porción de imagen que se ha de decodificar en unidades de codificación como se describe anteriormente, un analizador sintáctico 250 de corriente de bits para analizar sintácticamente una corriente de bits que incluye las unidades de codificación codificadas y una información de partición que indica cómo se dividen en particiones las unidades de árbol de codificación y basado en la división determinada de la porción de imagen, y una unidad 225-240, 260-295 de decodificación de imagen para decodificar las unidades de codificación codificadas.
Cabe señalar que la división y el análisis sintáctico se realizan de manera recursiva conjuntamente: el análisis sintáctico incluye la separación de la corriente de bits para la CU actual, la información de control necesaria y la división utiliza la información analizada sintácticamente y/o conocimiento de semántica para derivar las ubicaciones, tamaños y datos de CU. En particular, el analizador sintáctico puede distribuir el indicador de división y con base en el mismo el divisor, o bien divide adicionalmente la CU actual o mantiene su tamaño. Dependiendo del indicador de división, también el analizador sintáctico, o bien analiza sintácticamente de manera adicional la información de división para las CU de una profundidad adicional o analiza sintácticamente la información de división para otras CU de la misma profundidad, o analiza sintácticamente los datos que se han de decodificar para las CU. Además, el divisor se configura para dividir en particiones la porción de límite como se describe anteriormente, incluso sin la señalización de la corriente de bits adicional según las reglas de partición forzada.
En otras palabras, el codificador y/o el decodificador pueden emplear tanto la división de la porción de límite en unidades de codificación como una división predefinida. Entonces, la información de partición en la corriente de bits no se refiere a la división de la porción de límite en absoluto. Este es el caso cuando el límite se divide de una manera predefinida que puede aún incluir la derivación de la división basada en los otros ajustes de codificador, tal como tipo de imagen/ID temporal/tipo de segmento.
De manera alternativa, el codificador y/o el decodificador pueden se pueden configurar adicionalmente para dividir en particiones la porción de límite por división de árbol cuaternario en N niveles más superficiales, siendo N un número entero mayor que, o igual a cero y menor que el número de niveles de jerarquía de partición; y dividir en particiones la porción de límite por división de árbol binario en los niveles de jerarquía de partición restantes, y la información de partición incluye la indicación de N. La información de partición puede incluir además el indicador de división para indicar si o no las CTU/CU de porción de límite se han de dividir y/o en qué clase de división (puede incluir árbol binario o árbol cuaternario y/u otras opciones). El indicador de división se puede señalizar para todas las particiones (CU) o sólo para aquellas que no están ubicadas en el límite en su nivel de jerarquía.
El codificador y/o decodificador se puede implementar (integrar) en un chip o por medio de software. Sin embargo, el codificador y/o decodificador también se puede implementar en una pluralidad de componentes de hardware y software.
Anteriormente, se analizaron en mayor medida dos clases de división, la división de árbol cuaternario y la división de árbol binario. Sin embargo, la partición forzada de límite basada en coste o predefinida aproximada proporcionada por la presente descripción es adecuada también para otra estructura de partición forzada, no sólo la QT forzada o la BT forzada.
Anteriormente, se ha descrito en mayor medida el caso, en el que una CU más profunda en la división forzada de la porción de límite es una CU rectangular pero no cuadrada, es decir, una CU con un lado más largo que el otro lado.
Sin embargo, en general, la porción de límite se puede dividir en particiones por división de árbol binario al menos en uno de los niveles de partición en los que una unidad de codificación de límite permanece no completamente dentro de la porción de límite. En otras palabras, según la presente descripción, el aparato para dividir una porción de imagen en unidades de codificación puede incluir circuitos de procesamiento que, en funcionamiento, subdividen la porción de imagen en un número entero de unidades de árbol de codificación con un tamaño predeterminado y una porción de límite con un tamaño más pequeño que el tamaño predeterminado en al menos una primera dirección, que es o bien la dirección horizontal o la vertical, y se divide en particiones la porción de límite de manera jerárquica en unidades de codificación incluyendo una unidad de codificación con diferentes tamaños en las respectivas direcciones horizontal y vertical, estando la unidad de codificación ubicada parcialmente en la porción de límite y parcialmente fuera de la porción de imagen. En particular, la división de árbol binario se puede utilizar para cualquier CU de límite.
Cabe señalar que la porción de límite mostrada en la figura 7 incluye varias CTU. Las realizaciones e implementaciones ejemplares anteriores se describieron para la partición de una CTU. Esto es debido a que incluso si sólo una de las CTU (incompletas) en la porción de límite se divide en particiones como se describe anteriormente, puede ser ventajoso y puede conducir a mejores resultados en eficiencia de codificación y/o de complejidad. Sin embargo, más de una CTU de la porción de límite se puede dividir en particiones como se describe anteriormente. La partición se puede realizar secuencialmente CTU por CTU. En algunas implementaciones, puede ser beneficioso realizar la partición para diferentes CTU en paralelo. El procesamiento en paralelo puede reducir el retardo de codificación/decodificación si se emplea por el codificador/decodificador respectivamente.
En otras palabras, puede ser ventajoso aplicar la partición descrita anteriormente a todas las CTU de la porción de límite. Por otra parte, la presente descripción no se limita a esto y la partición se puede aplicar a una o más CTU de límite. Las CTU restantes se pueden dividir por cualquier otra partición, por ejemplo, QT solamente o similares.
También se proporciona un método correspondiente para la partición. Se proporcionan adicionalmente los aparatos y métodos de codificación y decodificación correspondientes que emplean dicha partición.
La presente descripción se puede implementar en un aparato. Dicho aparato puede ser una combinación de un software y hardware. Por ejemplo, la filtración de intra-predicción y desbloqueo puede ser realizada por un chip tal como un procesador de propósito general, o un procesador de señal digital (DSP), o una matriz de puerta programable en el campo (FPGA), o similares. Sin embargo, la presente invención no se limita a la implementación en un hardware programable. Se puede implementar en un circuito integrado de aplicación específica (ASIC) o mediante una combinación de los componentes de hardware mencionados anteriormente.
La determinación de la filtración intra-predicción y desbloqueo también se puede implementar por instrucciones de programa almacenadas en un medio legible por ordenador que cuando es ejecutado por un ordenador, realiza las etapas de un método como se ha descrito anteriormente. El medio legible por ordenador puede ser cualquier medio en el cual se almacena el programa, tal como un DVD, CD, memoria USB (flash), disco duro, almacenamiento de servidor disponible mediante una red, etc.
El codificador y/o decodificador se puede implementar en varios dispositivos incluyendo una televisión, decodificador, PC, tableta, teléfono inteligente o similar. Puede ser un software, una aplicación que implementa las etapas del método.
En resumen, la presente descripción se refiere a la partición de una imagen o de un segmento de imagen. En particular, la imagen o segmento de imagen se divide en un número entero de unidades de árbol de codificación en direcciones tanto vertical como horizontal. La porción de límite restante es a continuación dividida de manera forzada al menos parcialmente de modo que el nivel de partición más profundo es un resultado de partición binaria, es decir, incluye una unidad de codificación que es más larga en un lado que en el otro lado. El lado más largo está paralelo o concurrente al límite de imagen o de segmento de imagen.

Claims (8)

REIVINDICACIONES
1. Un aparato (600) para dividir (610) una porción de una imagen en unidades de codificación, incluyendo el aparato circuitos de procesamiento, en donde los circuitos de procesamiento están configurados para: subdividir la porción de imagen en un número entero de unidades de árbol de codificación con un tamaño predeterminado y una unidad de árbol de codificación de límite sobre un límite de imagen, en donde la unidad de árbol de codificación de límite comprende una parte ubicada dentro de la imagen, con un tamaño menor que el tamaño predeterminado en al menos una primera dirección, que es o bien una dirección horizontal o bien una dirección vertical, y una parte ubicada fuera de la imagen,
dividir en particiones la unidad de árbol de codificación de límite por división de árbol cuaternario en N niveles más superficiales, siendo N un número entero mayor que cero y menor que el número de niveles de jerarquía de partición,
dividir en particiones jerárquicamente (620) una unidad de codificación de la unidad de árbol de codificación de límite resultante de la división de árbol cuaternario utilizando partición forzada de árbol binario en unidades de codificación que incluyen una unidad de codificación de nivel más profundo con diferentes tamaños en direcciones horizontal y vertical respectivas, siendo la unidad de codificación de nivel más profundo menor en la primera dirección,
en donde la partición forzada de árbol binario comprende:
cuando la unidad de codificación de límite está ubicada en el límite inferior de la imagen, dividir en particiones la unidad de codificación de límite de forma recursiva utilizando la partición de árbol binario horizontal para dividir en particiones unidades de codificación de límite de la unidad de codificación de límite hasta que la unidad de codificación de nivel más profundo de la partición forzada de árbol binario esté ubicada completamente dentro de la imagen, en donde la primera dirección es la dirección vertical, y
cuando la unidad de codificación de límite está ubicada en el límite derecho de la imagen, dividir en particiones la unidad de codificación de límite de forma recursiva utilizando la partición binaria vertical para dividir en particiones unidades de codificación de límite de la unidad de codificación de límite hasta que la unidad de codificación de nivel más profundo de la partición forzada de árbol binario esté ubicada completamente dentro de la imagen, en donde la primera dirección es la dirección horizontal; y
en donde la partición forzada de árbol binario es una división en particiones predefinida y no se ha señalizado en la corriente de bits ningún indicador de dividir en particiones para indicar la división en particiones de la unidad de codificación de límite dividida en particiones forzada.
2. El aparato para codificar (100) una imagen de una secuencia de video que comprende:
el aparato (600) para dividir una porción de imagen en unidades de codificación según la reivindicación 1; una unidad (120, 125, 130, 135, 140, 145) de codificación de imagen configurada para codificar las unidades de codificación; y
una unidad (150) formadora de corriente de bits configurada para generar una corriente de bits que incluye las unidades de codificación codificadas y una información de división en particiones que indica cómo se dividen en particiones las unidades de árbol de codificación.
3. El aparato para decodificar (200) una imagen de una secuencia de video que comprende:
el aparato para determinar la división de una porción de imagen que se ha de decodificar en unidades de codificación según la reivindicación 1;
un analizador sintáctico (250) de corriente de bits para analizar sintácticamente una corriente de bits que incluye las unidades de codificación codificadas y una información de partición que indica cómo se dividen en particiones las unidades de árbol de codificación y basado en la división determinada de la porción de imagen; una unidad (225, 230, 240, 260, 270, 290, 295) de decodificación de imagen para decodificar las unidades de codificación codificadas.
4. El aparato según cualquiera de las reivindicaciones 2 o 3,
en donde la información de división en particiones incluye N o N se deriva basándose en un tipo de predicción aplicada para codificar la imagen que se está procesando.
5. Un método para dividir una porción de imagen en unidades de codificación, incluyendo el método:
subdividir la porción de imagen en un número entero de unidades de árbol de codificación con un tamaño predeterminado y una unidad de árbol de codificación de límite sobre un límite de imagen, en donde la unidad de árbol de codificación de límite comprende una parte ubicada dentro de la imagen, con un tamaño menor que el tamaño predeterminado en al menos una primera dirección, que es o bien una dirección horizontal o bien una dirección vertical, y una parte ubicada fuera de la imagen,
dividir en particiones la unidad de árbol de codificación de límite por división de árbol cuaternario en N niveles más superficiales, siendo N un número entero mayor que cero y menor que el número de niveles de jerarquía de partición,
dividir en particiones jerárquicamente una unidad de codificación de la unidad de árbol de codificación de límite resultante de la división de árbol cuaternario utilizando partición forzada de árbol binario en unidades de codificación que incluyen una unidad de codificación de nivel más profundo con diferentes tamaños en direcciones horizontal y vertical respectivas, siendo la unidad de codificación de nivel más profundo menor en la primera dirección,
en donde la partición forzada de árbol binario comprende:
cuando la unidad de codificación de límite está ubicada en el límite inferior de la imagen (1020), dividir en particiones la unidad de codificación de límite de forma recursiva utilizando la partición de árbol binario horizontal para dividir en particiones unidades de codificación de límite de la unidad de codificación de límite hasta que la unidad de codificación de nivel más profundo de la partición forzada de árbol binario esté ubicada completamente dentro de la imagen, en donde la primera dirección es la dirección vertical, y
cuando la unidad de codificación de límite está ubicada en el límite derecho de la imagen (1020), dividir en particiones la unidad de codificación de límite de forma recursiva utilizando la partición binaria vertical para dividir en particiones unidades de codificación de límite de la unidad de codificación de límite hasta que la unidad de codificación de nivel más profundo de la partición forzada de árbol binario esté ubicada completamente dentro de la imagen, en donde la primera dirección es la dirección horizontal; y
en donde la partición forzada de árbol binario es una división en particiones predefinida y no se ha señalizado ningún indicador de división en particiones para indicar la división en particiones de la unidad de codificación de límite dividida en particiones forzada.
6. Un método para codificar una imagen de una secuencia de video que comprende:
dividir una porción de imagen en unidades de codificación según la reivindicación 5;
codificar las unidades de codificación; y
generar una corriente de bits que incluye las unidades de codificación codificadas y una información de partición que indica cómo se han dividido en particiones las unidades de árbol de codificación.
7. Un método para decodificar una imagen de una secuencia de video que comprende:
determinar la división de una porción de imagen que se ha de decodificar en unidades de codificación según la reivindicación 5;
analizar sintácticamente una corriente de bits que incluye las unidades de codificación codificadas y una información de partición que indica cómo se dividen en particiones y se basan en la división determinada de la porción de imagen;
decodificar las unidades de codificación codificadas.
8. Medio legible por ordenador que almacena instrucciones que, cuando son ejecutadas por un procesador, hacen que el procesador ejecute el método según cualquiera de las reivindicaciones 5 a 7.
ES17735507T 2017-07-04 2017-07-04 Mejora en la partición forzada límite Active ES2972582T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/066700 WO2019007493A1 (en) 2017-07-04 2017-07-04 ENHANCEMENT OF FORCED LIMIT PARTITION

Publications (1)

Publication Number Publication Date
ES2972582T3 true ES2972582T3 (es) 2024-06-13

Family

ID=59285213

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17735507T Active ES2972582T3 (es) 2017-07-04 2017-07-04 Mejora en la partición forzada límite

Country Status (19)

Country Link
US (2) US11272220B2 (es)
EP (2) EP4358512A1 (es)
JP (4) JP6977138B2 (es)
KR (3) KR102586674B1 (es)
CN (5) CN118200610A (es)
AU (1) AU2017422536C1 (es)
BR (1) BR112020000166A2 (es)
CA (1) CA3068762C (es)
DK (1) DK3649781T3 (es)
ES (1) ES2972582T3 (es)
FI (1) FI3649781T3 (es)
HU (1) HUE065470T2 (es)
MY (1) MY197897A (es)
PL (1) PL3649781T3 (es)
PT (1) PT3649781T (es)
SG (1) SG11201913523XA (es)
UA (1) UA126480C2 (es)
WO (1) WO2019007493A1 (es)
ZA (1) ZA202000188B (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112020000166A2 (pt) * 2017-07-04 2020-07-14 Huawei Technologies Co., Ltd. aparelho para dividir uma porção de imagem melhorando a partição forçada de fronteira, codificador e decodificador compreendendo os mesmos e métodos correspondentes
EP3725083A1 (en) * 2017-12-14 2020-10-21 InterDigital VC Holdings, Inc. Method and apparatus for encoding a picture block
CN111527751B (zh) * 2017-12-29 2025-03-11 夏普株式会社 确定视频数据的划分的方法、设备与计算机可读存储介质
KR20200112945A (ko) 2018-01-29 2020-10-05 인터디지털 브이씨 홀딩스 인코포레이티드 재구성된 픽처의 정제를 갖는 인코딩 및 디코딩
US11128871B2 (en) * 2018-04-25 2021-09-21 Panasonic Intellectual Property Corporation Of America Encoder for adaptively determining information related to splitting based on characteristics of neighboring samples
WO2020057530A1 (en) 2018-09-18 2020-03-26 Huawei Technologies Co., Ltd. Coding method, device, system
DK3847818T3 (da) * 2018-09-18 2024-03-04 Huawei Tech Co Ltd Videoindkoder, videodekoder og tilsvarende fremgangsmåder
LT3909244T (lt) * 2019-01-09 2023-07-10 Huawei Technologies Co., Ltd. Sub – paveikslo identifikatoriaus signalizavimas video kodavime
CN114303384B (zh) * 2019-09-06 2025-09-16 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法、解码方法和存储介质
WO2021118293A1 (ko) * 2019-12-12 2021-06-17 엘지전자 주식회사 필터링 기반 영상 코딩 장치 및 방법
WO2022218322A1 (en) * 2021-04-13 2022-10-20 Beijing Bytedance Network Technology Co., Ltd. Boundary handling for coding tree split

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452713B1 (ko) * 2009-10-30 2014-10-21 삼성전자주식회사 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치
FI3955579T3 (fi) * 2010-04-13 2023-08-16 Ge Video Compression Llc Videokoodaus käyttäen kuvien monipuurakenteen alaosioita
US8494290B2 (en) * 2011-05-05 2013-07-23 Mitsubishi Electric Research Laboratories, Inc. Method for coding pictures using hierarchical transform units
US9912944B2 (en) * 2012-04-16 2018-03-06 Qualcomm Incorporated Simplified non-square quadtree transforms for video coding
JP6172162B2 (ja) * 2013-01-07 2017-08-02 日本電気株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム
WO2015008652A1 (ja) * 2013-07-17 2015-01-22 ソニー株式会社 画像処理装置および方法
US10070070B2 (en) * 2014-05-28 2018-09-04 Mediatek Inc. Video processing apparatus with transform unit size selection, mode information unit size selection and/or picture width/height decision, and related video processing method thereof
WO2016090568A1 (en) 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US9591325B2 (en) * 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
US10003807B2 (en) * 2015-06-22 2018-06-19 Cisco Technology, Inc. Block-based video coding using a mixture of square and rectangular blocks
US20170078703A1 (en) * 2015-09-10 2017-03-16 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US10212444B2 (en) * 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
MX392722B (es) * 2016-03-16 2025-03-24 Hfi Innovation Inc Metodo y aparato de procesamiento de datos de video con tama?o restringido de bloque en codificacion de video
US10284845B2 (en) * 2016-05-25 2019-05-07 Arris Enterprises Llc JVET quadtree plus binary tree (QTBT) structure with multiple asymmetrical partitioning
CN109937571B (zh) * 2016-09-05 2022-01-18 Lg电子株式会社 图像编码/解码方法及其装置
US11438586B2 (en) * 2016-10-10 2022-09-06 Samsung Electronics Co., Ltd. Method and device for encoding or decoding encoding unit of picture outline
US11057624B2 (en) * 2016-10-14 2021-07-06 Industry Academy Cooperation Foundation Of Sejong University Image encoding method/device, image decoding method/device, and recording medium in which bitstream is stored
EP3383043A1 (en) * 2017-03-27 2018-10-03 Thomson Licensing Methods and apparatus for picture encoding and decoding
EP3383045A1 (en) * 2017-03-27 2018-10-03 Thomson Licensing Multiple splits prioritizing for fast encoding
BR112020000166A2 (pt) * 2017-07-04 2020-07-14 Huawei Technologies Co., Ltd. aparelho para dividir uma porção de imagem melhorando a partição forçada de fronteira, codificador e decodificador compreendendo os mesmos e métodos correspondentes

Also Published As

Publication number Publication date
JP7366980B2 (ja) 2023-10-23
CN118200610A (zh) 2024-06-14
JP2023174795A (ja) 2023-12-08
CN118381946A (zh) 2024-07-23
US11272220B2 (en) 2022-03-08
EP4358512A1 (en) 2024-04-24
EP3649781B1 (en) 2024-01-17
HUE065470T2 (hu) 2024-05-28
DK3649781T3 (da) 2024-03-11
AU2017422536A1 (en) 2020-01-30
FI3649781T3 (fi) 2024-03-13
JP6977138B2 (ja) 2021-12-08
AU2017422536B2 (en) 2023-04-13
JP2022022227A (ja) 2022-02-03
CN114205630A (zh) 2022-03-18
KR20200020914A (ko) 2020-02-26
CA3068762C (en) 2023-10-03
CN110999295A (zh) 2020-04-10
SG11201913523XA (en) 2020-01-30
ZA202000188B (en) 2021-01-27
WO2019007493A1 (en) 2019-01-10
KR20220044388A (ko) 2022-04-07
KR102586674B1 (ko) 2023-10-06
AU2017422536C1 (en) 2023-08-10
MY197897A (en) 2023-07-24
JP7608556B2 (ja) 2025-01-06
CN118381945A (zh) 2024-07-23
US20200145698A1 (en) 2020-05-07
CA3068762A1 (en) 2019-01-10
PL3649781T3 (pl) 2024-04-29
CN114205630B (zh) 2022-06-28
KR20230144124A (ko) 2023-10-13
PT3649781T (pt) 2024-03-07
UA126480C2 (uk) 2022-10-12
EP3649781A1 (en) 2020-05-13
US20220217420A1 (en) 2022-07-07
BR112020000166A2 (pt) 2020-07-14
AU2017422536A8 (en) 2020-02-06
JP2025039577A (ja) 2025-03-21
CN110999295B (zh) 2024-03-26
JP2020526145A (ja) 2020-08-27
KR102381198B1 (ko) 2022-03-30

Similar Documents

Publication Publication Date Title
ES2972582T3 (es) Mejora en la partición forzada límite
US20220174279A1 (en) Encoding and decoding methods and apparatuses with multiple image block division manners
US10778974B2 (en) Adaptive loop filter with enhanced classification methods
US12081781B2 (en) Image processing method and apparatus therefor
CN110999293B (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
US11457222B2 (en) Method and apparatus for intra prediction of picture block
KR102187013B1 (ko) 비디오 코딩에서 변환 계수 데이터를 코딩하기 위한 콘텍스트들의 결정
BR112020019715A2 (pt) combinação de intrapredição dependente de posição estendida com modos angulares
JP7789142B2 (ja) 画像の符号化及び復号化
KR20190096432A (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US11140415B2 (en) Method and device for processing video signal
BR122025007720A2 (pt) Aparelho para decodificação de um sinal de vídeo e método para decodificação de um sinal de vídeo
BR122025007726A2 (pt) Método para decodificação de um sinal de vídeo e aparelho para decodificação de um sinal de vídeo
BR122025007710A2 (pt) Método para decodificação de um sinal de vídeo
BR122025007714A2 (pt) Método para decodificação de um sinal de vídeo
BR112019013831B1 (pt) Método de processamento de imagem e aparelho para tal finalidade