ES2901503T3 - Decodificación de datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles - Google Patents
Decodificación de datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles Download PDFInfo
- Publication number
- ES2901503T3 ES2901503T3 ES17716021T ES17716021T ES2901503T3 ES 2901503 T3 ES2901503 T3 ES 2901503T3 ES 17716021 T ES17716021 T ES 17716021T ES 17716021 T ES17716021 T ES 17716021T ES 2901503 T3 ES2901503 T3 ES 2901503T3
- Authority
- ES
- Spain
- Prior art keywords
- tree
- prediction
- nodes
- region
- leaf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/583—Motion compensation with overlapping blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N19/45—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un método de decodificación de datos de vídeo, comprendiendo el método: decodificar (220) uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación, CTB, de datos de vídeo, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de los nodos no de hoja de árbol de región cuatro nodos de árbol de región hijos; determinar, usando los elementos de sintaxis en el nivel de árbol de región, cómo se dividen los nodos de árbol de región en los nodos de árbol de región hijos; decodificar (224) uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB, teniendo cada uno de los árboles de predicción nodos raíz que corresponden a uno o más de los nodos hoja de árbol de región y uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de los nodos no de hoja de árbol de predicción cualquiera de dos nodos de árbol de predicción hijos o tres nodos de árbol de predicción hijos obtenidos usando una subdivisión triple de lado central, teniendo al menos un nodo no de hoja de árbol de predicción tres nodos de árbol de predicción hijos obtenidos usando una subdivisión triple de lado central, definiendo cada uno de los nodos hoja de árbol de predicción respectivas unidades de codificación, CU; determinar, usando los elementos de sintaxis en el nivel de árbol de predicción, cómo se dividen los nodos de árbol de predicción en los nodos de árbol de predicción hijos; y decodificar (228) datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las CU basándose al menos en parte en los elementos de sintaxis en el nivel de árbol de región y los elementos de sintaxis en el nivel de árbol de predicción, en donde los datos de predicción indican un modo de predicción para formar un bloque previsto para una correspondiente de las CU, y en donde los datos de transformada incluyen coeficientes de transformada que representan datos residuales transformados para una correspondiente de las CU.
Description
descripción
Decodificación de datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles
Campo técnico
Esta divulgación se refiere a la codificación de vídeo.
Antecedentes
Las capacidades de vídeo digital pueden incorporarse en una amplia gama de dispositivos, que incluyen televisiones digitales, sistemas de difusión directa digital, sistemas de difusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de sobremesa, ordenadores de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos de radio celular o por satélite, denominados "teléfonos inteligentes", dispositivos de teleconferencia de vídeo, dispositivos de envío por flujo continuo de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de codificación de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación de Vídeo Avanzada (AVC), la norma de Codificación de Vídeo de Alta Eficiencia (HEVC) y extensiones de tales normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, decodificar y/o almacenar información de vídeo digital de manera más eficaz implementando tales técnicas de codificación de vídeo.
Las técnicas de codificación de vídeo incluyen predicción espacial (intra imagen) y/o temporal (inter imagen) para reducir o eliminar la redundancia inherente en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un corte de vídeo (por ejemplo, una imagen de vídeo o una porción de una imagen de vídeo) puede subdividirse en bloques de vídeo, que pueden denominarse también como unidades de árbol de codificación (CTU), unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un corte intra codificado (I) de una imagen se codifican usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un corte inter codificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse fotogramas y las imágenes de referencia pueden denominarse fotogramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que va a codificarse. Los datos residuales representan diferencias de píxel entre el bloque original que va a codificarse y el bloque predictivo. Un bloque inter codificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forma el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra codificado se codifica de acuerdo con un modo de intra codificación y los datos residuales. Para una compresión adicional, los datos residuales pueden transformarse desde el dominio de los píxeles a un dominio de la transformada, dando como resultado coeficientes de transformada residuales, que pueden a continuación cuantificarse. Los coeficientes de transformada cuantificados, inicialmente dispuestos en una matriz bidimensional, pueden explorarse para producir un vector unidimensional de coeficientes de transformada, y puede aplicarse codificación por entropía para conseguir incluso más compresión.
El documento EP-A-2804383 describe un método de codificación de un vídeo, incluyendo el método: dividir una imagen actual en al menos una unidad de codificación máxima; determinar una profundidad codificada para emitir un resultado de codificación final de acuerdo con al menos una región de división obtenida dividiendo una región de la unidad de codificación máxima de acuerdo con las profundidades, codificando la al menos una región de división, basándose en una profundidad que se hace profunda en proporción al número de veces que se divide la región de la unidad de codificación máxima; y emitir datos de imagen que constituyen el resultado de la codificación final de acuerdo con la al menos una región de división, e información de codificación acerca de la profundidad codificada y un modo de predicción, de acuerdo con la al menos una unidad de codificación máxima.
El documento WO-A-2011/087297 describe un método de codificación de vídeo usando filtración de desbloqueo, comprendiendo el método determinar unidades de codificación de profundidades codificadas y modos de codificación para las unidades de codificación de la unidad de codificación máxima por codificación de predicción de las unidades de codificación de la unidad de codificación máxima basándose en al menos una unidad de predicción y transformar las unidades de codificación basándose en al menos una unidad de transformación y realizar filtración de desbloqueo en datos de vídeo que se transforman a la inversa en un dominio espacial en las unidades de codificación, teniendo en cuenta los modos de codificación determinados de las unidades de codificación.
Sumario
La invención se define de acuerdo con las reivindicaciones independientes a las que debe hacerse referencia ahora. En general, esta divulgación describe técnicas para la organización de unidades de codificación (es decir, bloques de datos de vídeo) en codificación de vídeo basada en bloques. Estas técnicas pueden aplicarse a normas de codificación
de vídeo existentes o futuras. En particular, estas técnicas incluyen codificar un árbol de múltiples tipos, que incluye un árbol de región y uno o más árboles de predicción. Los árboles de predicción pueden originarse de los nodos hoja de árbol de región. Puede señalizarse cierta información, tal como información de herramienta de codificación, en nodos del árbol de región, por ejemplo, para activar o desactivar las herramientas de codificación para regiones que corresponden a los nodos de árbol de región. En un ejemplo, un método de decodificación de datos de vídeo incluye la decodificación de uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación (CTB) de datos de vídeo, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de los nodos no de hoja de árbol de región un primer número de nodos de árbol de región hijos, siendo el primer número al menos cuatro, determinar, usando los elementos de sintaxis en el nivel de árbol de región, cómo se dividen los nodos de árbol de región en los nodos de árbol de región hijos, decodificar uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el
CTB, teniendo cada uno de los árboles de predicción uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de los nodos no de hoja de árbol de predicción un segundo número de nodos de árbol de predicción hijos, siendo el segundo número al menos dos, definiendo cada uno de los nodos hoja de predicción respectivas unidades de codificación (CU), determinar, usando los elementos de sintaxis en el nivel de árbol de predicción, cómo se dividen los nodos de árbol de predicción en los nodos de árbol de predicción hijos, y decodificar datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las CU basándose al menos en parte en los elementos de sintaxis en el nivel de árbol de región y los elementos de sintaxis en el nivel de árbol de predicción.
En otro ejemplo, un dispositivo para decodificar datos de vídeo incluye una memoria configurada para almacenar datos de vídeo; y un procesador implementado en circuitería y configurado para: decodificar uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación (CTB) de datos de vídeo, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de los nodos no de hoja de árbol de región un primer número de nodos de árbol de región hijos, siendo el primer número al menos cuatro, determinar, usando los elementos de sintaxis en el nivel de árbol de región, cómo se dividen los nodos de árbol de región en los nodos de árbol de región hijos, decodificar uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB, teniendo cada uno de los árboles de predicción uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de los nodos no de hoja de árbol de predicción un segundo número de nodos de árbol de predicción hijos, siendo el segundo número al menos dos, definiendo cada uno de los nodos hoja de predicción respectivas unidades de codificación (CU), determinar, usando los elementos de sintaxis en el nivel de árbol de predicción, cómo se dividen los nodos de árbol de predicción en los nodos de árbol de predicción hijos, y decodificar datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las Cu basándose al menos en parte en los elementos de sintaxis en el nivel de árbol de región y los elementos de sintaxis en el nivel de árbol de predicción.
En otro ejemplo, un dispositivo para decodificar datos de vídeo incluye medios para decodificar uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación (CTB) de datos de vídeo, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de los nodos no de hoja de árbol de región un primer número de nodos de árbol de región hijos, siendo el primer número al menos cuatro, medios para determinar, usando los elementos de sintaxis en el nivel de árbol de región, cómo se dividen los nodos de árbol de región en los nodos de árbol de región hijos, medios para decodificar uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB, teniendo cada uno de los árboles de predicción uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de los nodos no de hoja de árbol de predicción un segundo número de nodos de árbol de predicción hijos, siendo el segundo número al menos dos, definiendo cada uno de los nodos hoja de predicción respectivas unidades de codificación (CU), medios para determinar, usando los elementos de sintaxis en el nivel de árbol de predicción, cómo se dividen los nodos de árbol de predicción en los nodos de árbol de predicción hijos, y medios para decodificar datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las CU basándose al menos en parte en los elementos de sintaxis en el nivel de árbol de región y los elementos de sintaxis en el nivel de árbol de predicción.
En otro ejemplo, un medio de almacenamiento legible por ordenador tiene almacenado en el mismo instrucciones que, cuando se ejecutan, hacen que un procesador decodifique uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación (CTB) de datos de vídeo, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de los nodos no de hoja de árbol de región un primer número de nodos de árbol de región hijos, siendo el primer número al menos cuatro, determinar, usando los elementos de sintaxis en el nivel de árbol de región, cómo se dividen los nodos de árbol de
región en Ios nodos de árbol de región hijos, decodificar uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de Ios nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB, teniendo cada uno de Ios árboles de predicción uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de Ios nodos no de hoja de árbol de predicción un segundo número de nodos de árbol de predicción hijos, siendo el segundo número al menos dos, definiendo cada uno de Ios nodos hoja de predicción respectivas unidades de codificación (CU), determinar, usando Ios elementos de sintaxis en el nivel de árbol de predicción, cómo se dividen Ios nodos de árbol de predicción en Ios nodos de árbol de predicción hijos, y decodificar datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las CU basándose al menos en parte en Ios elementos de sintaxis en el nivel de árbol de región y Ios elementos de sintaxis en el nivel de árbol de predicción.
Los detalles de uno o más ejemplos se exponen en Ios dibujos adjuntos y en la descripción posterior. Otras características, objetos y ventajas serán evidentes a partir de la descripción y Ios dibujos, y a partir de las reivindicaciones.
Breve descripción de Ios dibujos
La Figura 1 es un diagrama de bloques que ilustra un sistema de codificación y decodificación de vídeo ilustrativo que puede utilizar técnicas para codificar datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles. La Figura 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo que puede implementar técnicas para codificar datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles.
La Figura 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de vídeo que puede implementar técnicas para codificar datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles.
La Figura 4 es un diagrama de bloques que ilustra un bloque de árbol de codificación (CTB) de ejemplo.
La Figura 5 es un diagrama de bloques que ilustra unidades de predicción (PU) ilustrativas de una CU.
La Figura 6 es un diagrama conceptual que ilustra una estructura de árbol binario de árbol cuádruple (QTBT) ilustrativa, y un correspondiente CTB.
La Figura 7 es un diagrama conceptual que ilustra un bloque codificado que usa compensación de movimiento de bloque solapado (OBMC).
La Figura 8 es un diagrama conceptual que ilustra un ejemplo de OBMC según se aplica en HEVC, es decir, OBMC basada en PU.
La Figura 9 es un diagrama conceptual que ilustra un ejemplo de realización de OBMC de nivel de sub-PU.
La Figura 10 es un diagrama conceptual que ilustra ejemplos de particiones de movimiento asimétricas para un bloque de 64x64.
La Figura 11 es un diagrama conceptual que ilustra un esquema de transformada de ejemplo basándose en un árbol cuádruple residual de acuerdo con HeVC.
La Figura 12 es un diagrama conceptual que ilustra un ejemplo de un primer nivel de un árbol de múltiples tipos y un segundo nivel del árbol de múltiples tipos.
La Figura 13 es un diagrama de flujo que ilustra un método de ejemplo para codificar un bloque de árbol de codificación de acuerdo con técnicas de esta divulgación.
La Figura 14 es un diagrama de flujo que ilustra un método de ejemplo para decodificar un bloque de árbol de codificación de acuerdo con técnicas de esta divulgación.
Descripción detallada
En la codificación de vídeo, pueden usarse estructuras de datos de árbol para representar una subdivisión de bloque de vídeo. Por ejemplo, en la Codificación de Vídeo de Alta Eficacia (HeVC), se usa un árbol cuádruple para representar la subdivisión de un bloque de árbol de codificación (CTB) en unidades de codificación (CU). Se han usado otras estructuras de árbol para otros paradigmas de codificación de vídeo basados en bloques. Por ejemplo, se han usado árboles binarios para representar una subdivisión de bloques en dos bloques horizontales o dos verticales. Pueden usarse árboles de múltiples tipos, tales como árboles binarios de árbol cuádruple (QTBT), para combinar árboles cuádruples y árboles binarios.
Las normas de codificación de vídeo incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), incluyendo sus extensiones Codificación de Vídeo Escalable (SVC) y Codificación de Vídeo de Múltiples Vistas (MVC). Además, se ha desarrollado recientemente una nueva norma de codificación de vídeo, en concreto, la Codificación de Vídeo de Alta Eficacia (HEVC) o ITU-T H.265, que incluye sus extensiones de codificación de rango y de contenido de pantalla, codificación de vídeo en 3D (3D-HEVC) y extensiones de múltiples vistas (MV-HEVC) y la extensión escalable (SHVC), por el Equipo de Colaboración Mixto sobre la Codificación de Vídeo (JCT-VC) así como, el Equipo de Colaboración Conjunta en el Desarrollo de Extensión de Codificación de Vídeo en 3D (JCT-3V) del Grupo de Expertos en Codificación de Vídeo (VCEG) de la ITU-T y del Grupo de Expertos de Imágenes en Movimiento (MPEG) del ISO/IEC. Como ejemplos, se analizan aspectos de diseño de HEVC, que se centran en la partición de bloque. Los conceptos comunes y la terminología para HEVC y otras técnicas se analizan a continuación.
Una estructura de árbol de múltiples tipos es una clase de estructura plana. Todos Ios tipos de árboles son Igualmente Importantes para un nodo de árbol, lo que hace complicado el recorrido de árbol de múltiples tipos. Además, en técnicas de codificación convencionales relacionadas con estructuras de árbol de múltiples tipos, algunas herramientas de codificación no son compatibles con las estructuras de árbol de múltiples tipos y/o estructuras de QTBT. Por ejemplo, la compensación de movimiento de bloque solapado (OBMC) es menos eficiente cuando se usa con árboles de múltiples tipos o QTBT, debido a que no hay límites de PU en estos tipos de árbol. En este caso, puede aplicarse únicamente OBMC a un lado de Ios límites de CU. Análogamente, no pueden aplicarse técnicas de transformada solapadas, puesto que no hay límites de PU y las transformadas solapadas no están permitidas a cruzar Ios límites de CU. También es difícil definir una región donde Ios subbloques pueden compartir Ios mismos valores de predicción de parámetro de cuantificación (QP) para señalizar eficazmente la variación de QP cuando se usan estructuras de árbol de múltiples tipos o QTBT.
Las técnicas de esta divulgación pueden aplicarse para superar estos u otros desafíos de este tipo. Las diversas técnicas analizadas a continuación pueden aplicarse individualmente o en cualquier combinación.
En general, de acuerdo con la ITU-T H.265, una imagen de vídeo puede dividirse en una secuencia de unidades de árbol de codificación (CTU) (o unidades de codificación más grandes (LCU)) que pueden incluir muestras tanto de luminancia como de croma. Como alternativa, las CTU pueden incluir datos monocromo (es decir, muestras únicamente de luminancia). Los datos de sintaxis dentro de un flujo de bits pueden definir un tamaño para la CTU, que es una unidad de codificación más grande en términos del número de píxeles. Un corte incluye un número de CTU consecutivas en orden de codificación. Una imagen de vídeo puede subdividirse en uno o más cortes. Cada CTU puede dividirse en unidades de codificación (CU) de acuerdo con un árbol cuádruple. En general, una estructura de datos de árbol cuádruple incluye un nodo por CU, que corresponde a un nodo raíz a la CTU. Si una CU se divide en cuatro sub-CU, el nodo que corresponde a la CU incluye cuatro nodos hoja, cada uno de Ios cuales corresponde a una de las sub-CU.
Cada nodo de la estructura de datos de árbol cuádruple puede proporcionar datos de sintaxis para la correspondiente CU. Por ejemplo, un nodo en el árbol cuádruple puede incluir una bandera de división, que indica si la CU que corresponde al nodo se divide en sub-CU. Los elementos de sintaxis para una CU pueden definirse de manera recursiva, y pueden depender de si la CU se divide en las sub-CU. Si una CU no se divide más, se denomina como una CU hoja. En esta divulgación, cuatro sub-CU de una CU hoja se denominarán también como las CU hoja, incluso si no hay división explícita de la CU hoja original. Por ejemplo, si una CU en tamaño de 16x16 no se divide más, las cuatro sub-CU de 8x8 se denominarán también como CU hoja, aunque la CU de 16x16 nunca se dividió.
Una CU tiene un propósito similar que un macrobloque de la norma H.264, excepto que una CU no tiene una distinción de tamaño. Por ejemplo, una CTU puede dividirse en cuatro nodos hijo (también denominados como sub-CU), y cada nodo hijo puede convertirse, a su vez, en un nodo padre y dividirse en otros cuatro nodos hijo. Un nodo hijo no dividido final, denominado como un nodo hoja del árbol cuádruple, comprende un nodo de codificación, también denominado como una CU hoja. Los datos de sintaxis asociados con un flujo de bits codificado pueden definir un número máximo de veces que puede dividirse una CTU, denominado como profundidad de CU máxima, y puede definir también un tamaño mínimo de Ios nodos de codificación. Por consiguiente, un flujo de bits puede definir también la unidad de codificación más pequeña (SCU). Esta divulgación usa el término "bloque" para hacer referencia a cualquiera de una CU, unidad de predicción (PU) o unidad de transformada (TU), en el contexto de HEVC o estructuras de datos similares en el contexto de otras normas (por ejemplo, macrobloques y subbloques de Ios mismos en H.264/AVC).
Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas con el nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y es, en general, cuadrado en forma. El tamaño de la CU puede variar de 8x8 píxeles hasta el tamaño de la CTU con un tamaño máximo, por ejemplo, de 64x64 píxeles o mayor. Cada CU puede contener una o más PU y una o más TU. Los datos de sintaxis asociados con una c U pueden describir, por ejemplo, la subdivisión de la c U en una o más PU. Los modos de subdivisión pueden diferir entre si se omite la CU o se codifica en modo directo, se codifica en modo de intra predicción o se codifica en modo de predicción. Las PU pueden subdividirse para ser no cuadradas en forma. Los datos de sintaxis asociados con una CU pueden describir también, por ejemplo, la subdivisión de la CU en una o más TU de acuerdo con un árbol cuádruple. Una TU puede ser cuadrada o no cuadrada (por ejemplo, rectangular) en forma.
La norma de HVEC permite transformaciones de acuerdo con las TU, que pueden ser diferentes para diferentes CU. Las TU están típicamente dimensionadas basándose en el tamaño de las PU dentro de una CU dada definida para una CTU subdividida, aunque este puede no ser siempre el caso. Las TU típicamente son del mismo tamaño o más pequeño que las PU. En algunos ejemplos, las muestras residuales que corresponden una CU pueden subdividirse en unidades más pequeñas usando una estructura de árbol cuádruple conocida como "árbol cuádruple residual" (RQT). Los nodos hoja del RQT pueden denominarse como unidades de transformada (TU). Los valores de diferencia de píxel asociados con las TU pueden transformarse para producir coeficientes de transformada, que pueden cuantificarse.
En HEVC, una CU hoja puede incluir una o más unidades de predicción (PU). En general, una PU representa un área espacial que corresponde a toda o una porción de la correspondiente CU, y puede incluir datos para recuperar y/o
generar una muestra de referencia para la PU. Además, una PU incluye datos relacionados con la predicción. Por ejemplo, cuando la PU está codificada por intra modo, pueden incluirse los datos para la PU en un árbol cuádruple residual (RQT), que puede incluir datos que describen un modo de intra predicción para una TU que corresponde a la PU. El RQT puede denominarse también como un árbol de transformada. En algunos ejemplos, el modo de intra predicción puede señalizarse en la sintaxis de hoja CU, en lugar del RQT. Como otro ejemplo, cuando la PU está codificada por intra modo, la PU puede incluir datos que definen la información de movimiento, tal como uno o más vectores de movimiento, para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, una precisión de un cuarto de píxel o una precisión de un octavo de píxel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imágenes de referencia (por ejemplo, Lista 0, Lista 1 o Lista C) para el vector de movimiento.
También en HEVC, una CU de hoja que tiene una o más PU puede incluir también una o más unidades de transformada (TU). Las unidades de transformada pueden especificarse usando un RQT (también denominado como una estructura de árbol cuádruple de TU), como se ha analizado anteriormente. Por ejemplo, una bandera de división puede indicar si una CU hoja se divide en cuatro unidades de transformada. A continuación, cada unidad de transformada puede dividirse adicionalmente en sub-TU adicionales. Cuando la TU no se divide más, puede denominarse como una TU hoja. En general, para intra codificación, todas las TU hoja que pertenecen a una CU hoja comparten el mismo modo de intra predicción. Es decir, el mismo modo de intra predicción se aplica, en general, para calcular valores previstos para todas las TU de una CU hoja. Para intra codificación, un codificador de vídeo puede calcular un valor residual para cada TU hoja usando el modo de intra predicción, como una diferencia entre la porción de la CU que corresponde a la TU y el bloque original. Un TU no está necesariamente limitada al tamaño de una PU. Por lo tanto, las TU pueden ser más grandes o más pequeñas que una PU. Para intra codificación, una PU puede coubicarse con una correspondiente hoja-TU para la misma CU. En algunos ejemplos, el tamaño máximo de una TU hoja puede corresponder al tamaño de la correspondiente CU hoja.
Además, las TU de las CU hoja en HEVC pueden también estar asociadas con respectivas estructuras de datos de árbol cuádruple, denominadas como árboles cuádruples residuales (RQT). Es decir, una CU hoja puede incluir un árbol cuádruple que indica cómo se subdivide la CU hoja en las TU. El nodo raíz de un árbol cuádruple de TU generalmente corresponde a una CU hoja, mientras que el nodo raíz de un árbol cuádruple de CU corresponde en general a una CTU (o LCU). Las TU del RQT que no se dividen se denomina como TU hoja. En general, esta divulgación usa los términos CU y TU para hacer referencia a la CU hoja y TU hoja, respectivamente, a menos que se indique de otra manera.
Una secuencia de vídeo típicamente incluye una serie de fotogramas o imágenes de vídeo, empezando con una imagen de punto de acceso aleatorio (RAP). Una secuencia de vídeo puede incluir datos de sintaxis en un conjunto de parámetros de secuencia (SPS) que describe características de la secuencia de vídeo. Cada corte de una imagen puede incluir datos de sintaxis de corte que describen un modo de codificación para el respectivo corte. Los codificadores de vídeo típicamente operan en bloques de vídeo dentro de cortes de vídeo individuales para codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden tener tamaños fijos o variables, y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
Como un ejemplo, puede realizarse predicción para las PU de diversos tamaños. Suponiendo que el tamaño de una CU particular es 2Nx2N, puede realizarse intra predicción en los tamaños de PU de 2Nx2N o NxN, y puede realizarse inter predicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. Puede realizarse la subdivisión asimétrica para inter predicción también para tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En subdivisión asimétrica, no se subdivide una dirección de una CU, mientras que la otra dirección se subdivide en el 25 % y el 75 %. La porción de la CU que corresponde a la partición del 25 % se indica por una "n" seguida por una indicación de "Arriba", "Abajo", "Izquierda" o "Derecha". Por lo tanto, por ejemplo, "2NxnU" hace referencia a una CU de 2Nx2N que se subdivide horizontalmente con una PU 2Nx0,5N en la parte superior y una PU de 2Nx1,5N en la parte inferior.
La Figura 1 es un diagrama de bloques que ilustra un sistema 10 de codificación y decodificación de vídeo ilustrativo que puede utilizar técnicas para codificar datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles. Como se muestra en la figura 1, el sistema 10 incluye un dispositivo 12 de origen que proporciona datos de vídeo codificados a decodificar en un tiempo posterior por un dispositivo 14 de destino. En particular, el dispositivo 12 de origen proporciona los datos de vídeo al dispositivo 14 de destino mediante un medio 16 legible por ordenador. El dispositivo 12 de origen y el dispositivo 14 de destino pueden comprender cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de sobremesa, ordenadores portátiles (es decir, portátiles), ordenadores de tableta, decodificadores de salón, microteléfonos telefónicos tales como los denominados "inteligentes", los denominados mandos "inteligentes", televisiones, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivo de envío por flujo continuo de vídeo o similares. En algunos casos, el dispositivo 12 de origen y el dispositivo 14 de destino pueden equiparse para comunicación inalámbrica.
El dispositivo 14 de destino puede recibir los datos de vídeo codificados para que se decodifiquen mediante un medio 16 legible por ordenador. El medio 16 legible por ordenador puede comprender cualquier tipo de medio o dispositivo
que pueda mover Ios datos de vídeo codificados desde el dispositivo 12 de origen al dispositivo 14 de destino. En un ejemplo, el medio 16 legible por ordenador puede comprender un medio de comunicación para posibilitar que el dispositivo 12 de origen transmita datos de vídeo codificados directamente al dispositivo 14 de destino en tiempo real. Los datos de vídeo codificados pueden modularse de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo 14 de destino. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o alámbrica, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global, tal como internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo 12 de origen al dispositivo 14 de destino.
En algunos ejemplos, Ios datos codificados pueden emitirse desde la interfaz 22 de salida a un dispositivo de almacenamiento. De manera similar, puede accederse a Ios datos codificados desde el dispositivo de almacenamiento mediante interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera de una diversidad de medios de almacenamiento de datos distribuidos o de acceso local, tales como un disco duro, discos Blu-ray, DVD, CD-ROM, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de ficheros u otro dispositivo de almacenamiento intermedio que puede almacenar el vídeo codificado generado por el dispositivo 12 de origen. El dispositivo 14 de destino puede acceder a datos de vídeo almacenados del dispositivo de almacenamiento mediante envío por flujo continuo o descarga. El servidor de ficheros puede ser cualquier tipo de servidor que pueda almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo 14 de destino. Servidores de ficheros ilustrativos incluyen, un servidor web (por ejemplo, para un sitio web), un servidor de FTP, dispositivos de almacenamiento de conexión de red (ÑAS) o una unidad de disco local. El dispositivo 14 de destino puede acceder a Ios datos de vídeo codificados a través de cualquier conexión de datos convencional, incluyendo una conexión a Internet. Esta puede incluir, un canal inalámbrico (por ejemplo, una conexión de Wi-Fi), una conexión cableada (por ejemplo, DSL, módem de cable, etc.), o una combinación de ambos que es adecuada para acceder a datos de vídeo codificados almacenados en un servidor de ficheros. La transmisión de datos de vídeo codificados del dispositivo de almacenamiento puede ser una transmisión de envío por flujo continuo, una transmisión de descarga o una combinación de ambas.
Las técnicas de esta divulgación no están necesariamente limitadas a aplicaciones o ajustes inalámbricos. Las técnicas pueden aplicarse a codificación de vídeo en apoyo de cualquiera de una diversidad de aplicaciones multimedia, tales como difusiones de televisión en el transcurso de la comunicación, transmisiones de televisión de cable, transmisiones de televisión por satélite, transmisiones de vídeo de envío por flujo continuo de Internet, tales como envío por flujo continuo adaptativo dinámico a través de HTTP (DASH), vídeo digital que se codifica en un medio de almacenamiento de datos, decodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para soportar una transmisión de vídeo unidireccional o bidireccional para soportar aplicaciones tales como envío por flujo continuo de vídeo, reproducción de vídeo, difusión de vídeo y/o telefonía de vídeo.
En el ejemplo de la Figura 1, el dispositivo 12 de origen incluye el origen 18 de vídeo, el codificador 20 de vídeo y la interfaz 22 de salida. El dispositivo 14 de destino incluye la interfaz 28 de entrada, el decodificador 30 de vídeo y el dispositivo 32 de visualización. De acuerdo con esta divulgación, el codificador 20 de vídeo del dispositivo 12 de origen puede estar configurado para aplicar las técnicas para codificar datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo 12 de origen puede recibir datos de vídeo desde un origen 18 de vídeo externo, tal como una cámara externa. Análogamente, el dispositivo 14 de destino puede interconectar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
El sistema 10 ilustrado de la Figura 1 es simplemente un ejemplo. Las técnicas para codificar datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles pueden realizarse por cualquier dispositivo de codificación y/o decodificación de vídeo digital. Aunque las técnicas de esta divulgación se realizan, en general, por un dispositivo de codificación de vídeo, las técnicas pueden realizarse por un codificador/decodificador de vídeo, típicamente denominado como un "CODEC". Además, las técnicas de esta divulgación pueden realizarse también por un preprocesador de vídeo. El dispositivo 12 de origen y el dispositivo 14 de destino son simplemente ejemplos de tales dispositivos de codificación en Ios que el dispositivo 12 de origen genera datos de vídeo codificados para transmisión al dispositivo 14 de destino. En algunos ejemplos, Ios dispositivos 12, 14 pueden operar de una manera sustancialmente simétrica de manera que cada uno de Ios dispositivos 12, 14 incluya componentes de codificación y decodificación de vídeo. Por lo tanto, el sistema 10 puede soportar transmisión unidireccional o bidireccional entre Ios dispositivos 12, 14 de vídeo, por ejemplo, para envío por flujo continuo de vídeo, reproducción de vídeo, difusión de vídeo o telefonía de vídeo.
El origen 18 de vídeo del dispositivo 12 de origen puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo previamente capturado y/o una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenido de vídeo. Como una alternativa adicional, el origen 18 de vídeo puede generar datos basados en gráficos informáticos como el vídeo de origen, o una combinación de vídeo en directo,
vídeo archivado y vídeo generado por ordenador. En algunos casos, si el origen 18 de vídeo es una cámara de vídeo, el dispositivo 12 de origen y el dispositivo 14 de destino pueden formar denominados teléfonos de cámara o videoteléfonos. Sin embargo, como se ha mencionado anteriormente, las técnicas descritas en esta divulgación pueden ser aplicables a codificación de vídeo, en general, y pueden aplicarse a aplicaciones inalámbricas y/o alámbricas. En cada caso, el vídeo capturado, pre-capturado o generado por ordenador puede codificarse por el codificador 20 de vídeo. La información de vídeo codificada puede emitirse a continuación por la interfaz 22 de salida en un medio 16 legible por ordenador.
El medio 16 legible por ordenador puede incluir medios transitorios, tales como una transmisión de difusión inalámbrica o de red cableada o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tales como un disco duro, unidad flash, disco compacto, disco de vídeo digital, disco Blu-ray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo 12 de origen y proporcionar los datos de vídeo codificados al dispositivo 14 de destino, por ejemplo, mediante la transmisión de red. De manera similar, un dispositivo informático de una instalación de producción de medios, tal como una instalación de estampado de discos, puede recibir datos de vídeo codificados desde el dispositivo 12 de origen y producir un disco que contiene los datos de vídeo codificados. Por lo tanto, el medio 16 legible por ordenador puede entenderse que incluye uno o más medios legibles por ordenador de diversas formas en diversos ejemplos.
La interfaz 28 de entrada del dispositivo 14 de destino recibe información desde el medio 16 legible por ordenador. La información del medio 16 legible por ordenador puede incluir información de sintaxis definida por el codificador 20 de vídeo, que también se usa por el decodificador 30 de vídeo, que incluye elementos de sintaxis que describen características y/o procesamiento de bloques y otras unidades codificadas. El dispositivo 32 de visualización presenta visualmente los datos de vídeo decodificados a un usuario, y puede comprender cualquiera de una diversidad de dispositivos de visualización, tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodo de emisión de luz orgánico (OLED) u otro tipo de dispositivo de visualización.
El codificador 20 de vídeo y el decodificador 30 de vídeo pueden operar de acuerdo con una norma de codificación de vídeo, tal como la norma de Codificación de Vídeo de Alta Eficacia (HEVC), también denominada como ITU-T H.265. Como alternativa, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden operar de acuerdo con otras normas propietarias o industriales, tal como la norma ITU-T H.264, denominada como alternativa como MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC) o extensiones de tales normas. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de codificación de vídeo incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la Figura 1, en algunos aspectos, el codificador 20 de vídeo y el decodificador 30 de vídeo puede cada uno estar integrado con un codificador y decodificador de audio, y puede incluir unidades MUX-DEMUX apropiadas y otro hardware y software, para manejar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si es aplicable, las unidades MUX-DEMUX pueden ser de conformidad con el protocolo multiplexor de la It U H.223 u otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
El codificador 20 de vídeo y el decodificador 30 de vídeo cada uno puede implementarse como cualquiera de una diversidad de circuitería de codificador adecuada, tal como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), campos de matrices de puertas programables (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio legible por ordenador no transitorio adecuado y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno del codificador 20 de vídeo y el decodificador 30 de vídeo pueden estar incluidos en uno o más codificadores o decodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/decodificador combinado (CODEC) en un respectivo dispositivo.
En esta divulgación, "NxN" y "N por N" pueden usarse de manera intercambiable para hacer referencia a las dimensiones de píxel de un bloque de vídeo en términos de dimensiones vertical y horizontal, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 16x16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Análogamente, un bloque NxN tiene en general N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles en un bloque pueden disponerse en filas y columnas. Además, los bloques no necesariamente tienen que tener el mismo número de píxeles en la dirección horizontal que en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
Siguiendo la codificación intra predictiva o inter predictiva que usa las PU de una CU, el codificador 20 de vídeo puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos de sintaxis que describen un método o modo de generación de datos de píxel predictivos en el dominio espacial (también denominado como el dominio de los píxeles) y las TU pueden comprender coeficientes en el dominio de la transformada que sigue la aplicación de una transformada, por ejemplo, una transformada de coseno discreta (DCT), una transformada de número entero, una transformada de ondícula o una transformada conceptualmente similar a los datos de vídeo residuales. Los datos residuales pueden corresponder a diferencias de píxel entre píxeles de la imagen no codificada y los valores de predicción que corresponden a las PU. El codificador 20 de vídeo puede formar las TU para incluir coeficientes de
transformada cuantificados representativos de Ios datos residuales para la CU. Es decir, el codificador 20 de vídeo puede calcular Ios datos residuales (en forma de un bloque residual), transformar el bloque residual para producir un bloque de coeficientes de transformada, y, a continuación, cuantificar Ios coeficientes de transformada para formar coeficientes de transformada cuantificados. El codificador 20 de vídeo puede formar una TU que incluye Ios coeficientes de transformada cuantificados, así como otra información de sintaxis (por ejemplo, información de división para la TU).
Como se ha indicado anteriormente, después de cualquier transformada para producir coeficientes de transformada, el codificador 20 de vídeo puede realizar cuantificación de Ios coeficientes de transformada. La cuantificación hace referencia, en general, a un proceso en el que se cuantifican Ios coeficientes de transformada para reducir posiblemente la cantidad de datos usados para representar Ios coeficientes, lo que proporciona compresión adicional. El proceso de cuantificación puede reducir la profundidad de bits asociada con alguno o todos Ios coeficientes. Por ejemplo, un valor de n bits puede redondearse hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
Después de la cuantificación, el codificador de vídeo puede explorar Ios coeficientes de transformada, produciendo un vector unidimensional a partir de la matriz bidimensional que incluye Ios coeficientes de transformada cuantificados. La exploración puede estar diseñada para colocar coeficientes de energía mayor (y, por lo tanto, de frecuencia inferior) delante de la matriz y para colocar coeficientes de energía inferior (y, por lo tanto, de frecuencia superior) en la parte trasera de la matriz. En algunos ejemplos, el codificador 20 de vídeo puede utilizar un orden de exploración predefinido para explorar Ios coeficientes de transformada cuantificados para producir un vector en serie que puede codificarse por entropía. En otros ejemplos, el codificador 20 de vídeo puede realizar una exploración adaptiva. Después de explorar Ios coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador 20 de vídeo puede codificar por entropía el vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptativa según contexto (CAV-LC), la codificación binaria aritmética adaptativa según contexto (CABAC), la codificación binaria aritmética adaptativa según contexto basada en sintaxis (SBAC), la codificación por entropía de subdivisión de intervalo de probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador 20 de vídeo puede también codificar por entropía elementos de sintaxis asociados con Ios datos de vídeo codificados para su uso por decodificador 30 de vídeo al decodificar Ios datos de vídeo.
Para realizar CABAC, el codificador 20 de vídeo puede asignar un contexto dentro de un modelo de contexto a un símbolo que va a transmitirse. El contexto puede estar relacionado con, por ejemplo, si Ios valores vecinos del símbolo son o no distintos de cero. Para realizar CAVLC, el codificador 20 de vídeo puede seleccionar un código de longitud variable para un símbolo que va a transmitirse. Pueden construirse palabras de código en VLC de manera que Ios códigos relativamente más cortos corresponden a símbolos más probables, mientras que Ios códigos más largos corresponden a símbolos menos probables. De esta manera, el uso de VLC puede conseguir unos ahorros de bits, por ejemplo, sobre el uso de palabras de código de igual longitud para cada símbolo que va a transmitirse. La determinación de probabilidad puede estar basada en un contexto asignado al símbolo.
En general, el decodificador 30 de vídeo realiza un proceso sustancialmente similar, aunque recíproco, al realizado por el codificador 20 de vídeo para decodificar datos codificados. Por ejemplo, el decodificador 30 de vídeo cuantifica a la inversa y transforma a la inversa Ios coeficientes de una TU recibida para reproducir un bloque residual. El decodificador 30 de vídeo usa un modo de predicción señalizado (intra- o inter- predicción) para formar un bloque previsto. A continuación, el decodificador 30 de vídeo combina el bloque previsto y el bloque residual (en una base píxel a píxel) para reproducir el bloque original. Puede realizarse procesamiento adicional, tal como realizar un proceso de desbloqueo para reducir artefactos visuales a lo largo de Ios límites de bloque. Adicionalmente, el decodificador 30 de vídeo puede decodificar elementos de sintaxis usando CABAC de una manera sustancialmente similar a, aunque recíproca a, el proceso de codificación de CABAC del codificador 20 de vídeo.
El codificador 20 de vídeo y el decodificador 30 de vídeo pueden estar configurados para realizar cualquiera de las diversas técnicas analizadas a continuación, en solitario o en cualquier combinación.
Las técnicas de esta divulgación incluyen una estructura de árbol de múltiples tipos de dos niveles. En un primer nivel (denominado como "nivel de árbol de región"), una imagen o bloque de datos de vídeo se divide en regiones, cada una con uno o múltiples tipos de árbol que pueden subdividir un bloque grande en bloques pequeños rápidamente (por ejemplo, usando un árbol cuádruple o árbol hexadecimal). En el segundo nivel (nivel de predicción), una región se divide adicionalmente con árbol de múltiples tipos (que no incluye división adicional). El nodo hoja de un árbol de predicción se denomina en esta divulgación como una unidad de codificación (CU), por simplicidad.
Por consiguiente, puede aplicarse lo siguiente al árbol de múltiples tipos de esta divulgación:
a) La raíz de un árbol de predicción es un nodo hoja de un árbol de región.
b) Se considera "división no adicional" como un tipo de árbol especial para tanto el árbol de región como el árbol de predicción.
c) El codificador 20 de vídeo puede señalizar, y el decodificador 30 de vídeo puede recibir, profundidades de árbol máximas de manera separada para el árbol de región y el árbol de predicción. Es decir, la profundidad máxima de
cada nivel de la estructura (es decir, árbol de reglón y árbol de predicción) puede controlarse por una variable independiente. Como alternativa, la profundidad total máxima de la estructura puede señalizarse como la suma de la profundidad máxima de cada nivel. En un ejemplo, se señaliza la profundidad o profundidades máximas en un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS) y/o un encabezado de corte. En otro ejemplo, se señaliza la profundidad máxima de árbol de región y la profundidad máxima del árbol de predicción en la parte superior a cada profundidad del árbol de región en el encabezado de corte. Por ejemplo, la profundidad máxima del árbol de región se señaliza como 3. A continuación, se señalizan adicionalmente cuatro valores para indicar las profundidades máximas de árbol de predicción en la parte superior de profundidadO, profundidadl, profundidad2 y profundidad3 del árbol de región.
d) Como alternativa, puede señalizarse conjuntamente la información de profundidad de árbol del árbol de región y el árbol de predicción. Por ejemplo, dado el tamaño de CTU más grande, puede señalizarse una profundidad de árbol de región máxima en primer lugar en un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS) y/o el encabezado de corte. A continuación, puede señalizarse un desplazamiento relativo contra el nivel de raíz de árbol de región, que indica el nivel de inicio para el árbol de predicción. Finalmente, puede señalizarse la información de nivel de árbol de predicción. Obsérvese que, diferentes imágenes de nivel temporal pueden tener o no la misma restricción de profundidad de árbol. Por ejemplo, una imagen de nivel temporal inferior puede tener una profundidad de árbol mayor (para cualquier árbol de región o árbol de predicción, o ambos), mientras que la imagen de nivel temporal superior puede tener una profundidad de árbol más pequeña (para el árbol de región o el árbol de predicción, o ambos). El desplazamiento de profundidad de árbol relativo entre el árbol de región y de predicción puede ser o no el mismo.
e) "Forzar división" (división automática sin señalización cuando se alcanza límite de imagen/corte/pieza) puede ser únicamente en el nivel de árbol de región o únicamente en el nivel de árbol de predicción, pero no ambos. Cuando el nivel más inferior de árbol de región aún no puede incluir todos los píxeles de límite, se invoca el relleno de límite para incluir los píxeles de límite usando el nivel de árbol de región más bajo. Obsérvese que, la profundidad de árbol debido a "forzar división" no necesita estar restringida por las profundidades de árbol máximas predefinidas o señalizadas. f) La profundidad de árbol de región y la profundidad de árbol de predicción pueden solaparse o no entre sí. Puede derivarse a partir de la información de profundidad de árbol señalizada o señalizada como una bandera individual en un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS) y/o un encabezado de corte.
g) La información de división de árboles de predicción dentro de un nodo hoja de árbol de región puede señalizarse antes de la información de CU (que incluye, pero sin limitación, bandera de salto, índice de unión, inter/intra modo, información de predicción, información de movimiento, información de transformada, residuos e información de cuantificación) de la hoja de árbol de región de modo que durante el análisis, el número de CU dentro de un nodo hoja de árbol de región es conocido antes de analizar la primera CU dentro del nodo hoja de árbol de región.
Además, o como alternativa, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden estar configurados para aplicar o señalizar ciertas herramientas de codificación en el nivel de árbol de región. En otras palabras, la disponibilidad de ciertas herramientas de codificación puede depender del nivel de árbol de región. La herramienta de codificación puede aplicarse a través de los límites de CU siempre que estas CU pertenezcan al mismo nodo de árbol de región o nodo hoja de árbol de región. Algunas herramientas de codificación pueden aplicarse y/o señalizarse únicamente en un nodo hoja de un árbol de región. Por ejemplo:
a. OBMC: Puede señalizarse una bandera o información de modo en el nivel de nodo hoja de árbol de región para indicar si se posibilita OBMC dentro de la región asociada dentro de la hoja de árbol de región. Si se posibilita OBMC, los límites de CU dentro de la región se tratan de la misma manera que los límites de PU en HEVC o que el límite de sub-PU dentro de una CU en JEM. Es decir, puede aplicarse OBMC a cada lado de límites de CU dentro de la región asociada con el nodo hoja de árbol de región.
1. Si se posibilita OBMC puede derivarse o derivarse parcialmente basándose en la información codificada, tal como el tamaño de la región. Por ejemplo, cuando el tamaño de la región es mayor que un umbral (tal como 16x16), puede considerarse que OBMC está activada, de manera que no es necesaria señalización. Cuando el tamaño de región es menor que el umbral, puede señalizarse la información de bandera o de modo de OBMC.
ii. Transformada solapada: una transformada que tiene el tamaño de bloque cubre la región de todos o un grupo de bloques de predicción dentro de un nodo hoja de árbol de región y se usa para codificar los residuos previstos.
1. En un ejemplo, se señaliza una bandera o información de árbol de transformada en el nivel de nodo hoja de árbol de región para indicar si se usa la transformada solapada para la región.
a. En un ejemplo, adicionalmente, cuando se señaliza la información de árbol de transformada, debe ser diferente del árbol de predicción.
b. En otro ejemplo, se señaliza una bandera o información de árbol de transformada en el nivel de nodo hoja de árbol de región para indicar si se usa una única transformada, tan grande como el nodo hoja de árbol de región actual, o se usan múltiples transformadas, cada una alineada con el tamaño de bloque de predicción.
2. Cuando se usa la transformada solapada para la región, puede señalizarse la información de bandera de bloque codificado (CBF) de todas las CU dentro de la región en el nivel de hoja de árbol de región, en lugar del nivel de CU.
3. En un ejemplo, cuando se aplica transformada solapada para un nodo hoja de árbol de reglón, siempre se aplica OBMC para el nodo hoja de árbol de reglón.
iii. Súper modo de salto/unión: Puede señalizarse una bandera o información de modo a nivel de hoja de árbol de reglón para indicar que todas las CU dentro de la región se codifican en el modo de salto o modo de unión, de modo que no se señaliza información de modo en el nivel de CU.
Iv. Súper modo de intra/inter codificación: Puede señalizarse una bandera o un índice de información de modo (tal como intra modo o Inter modo) a nivel de hoja de árbol de reglón para indicar que las CU deben usar la misma información de modo.
v. Súper modo de FRUC: Puede señalizarse una bandera o información de modo a nivel de hoja de árbol de reglón para indicar que todas las CU dentro del árbol de reglón se codifican en modo de FRUC.
vI. Puede señalizarse súper información de modo (tal como súper salto/unión, súper intra/inter y súper FRUC) únicamente cuando el número de CU dentro de un nodo hoja de árbol de reglón es mayor que un umbral.
1. El umbral puede predefinirse o señalizarse en el flujo de bits, tal como en un VPS, SPS, PPS o encabezado de corte.
Además, o como alternativa, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden aplicar y/o codificar datos representativos de herramientas de codificación en cualquier nodo de un árbol de reglón. Por ejemplo, las herramientas de filtración, tales como el desplazamiento adaptativo de muestra (SAO) y/o el filtro de bucle adaptativo (ALF) pueden diferir de HEVC en que esa información de SAO puede señalizarse en nivel de CTU, la información para las herramientas de filtración tales como SAO y ALF pueden señalizarse en cualquier nodo (no necesariamente un nodo hoja) de un árbol de reglón, de modo que la reglón que va a filtrarse es la reglón asociada con el nodo.
Además, o como alternativa, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden estar configurados para usar subdivisión similar a árbol triple de lado central, en la parte superior de la estructura de árbol de codificación de estilo HEVC. Por ejemplo, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden usar nuevas particiones, tales como un árbol triple de lado central, además de AMP o para sustituir AMP como los tipos de subdivisión de PU.
Además, o como alternativa, un nodo hoja del árbol de reglón puede proporcionar un punto equilibrado para la codificación del delta de parámetro de cuantificación (QP) entre la eficacia y complejidad de codificación. Ya que unas cercanías están bien definidas en el árbol de reglón, pueden calcularse predictores de QP en nodos hoja de un árbol de reglón usando valores de QP superior, izquierdo y previamente codificados. El valor de QP puede cambiar en cada CU, y las CU pueden compartir el mismo valor de base de su nodo de árbol de reglón padre para codificación.
Se describen en mayor detalle ejemplos adicionales, cualquiera o ambos de los que pueden realizarse por el codificador 20 de vídeo y el decodificador 30 de vídeo, con respecto a la Figura 12 a continuación.
El codificador 20 de vídeo puede enviar adicionalmente datos de sintaxis, tales como datos de sintaxis basados en bloques, datos de sintaxis basados en imágenes y datos de sintaxis basados en secuencias, al decodificador 30 de vídeo, por ejemplo, en un encabezado de imagen, un encabezado de bloque, un encabezado de corte u otros datos de sintaxis, tales como un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS) o un conjunto de parámetros de vídeo (VPS).
El codificador 20 de vídeo y el decodificador 30 de vídeo cada uno puede implementarse como cualquiera de una diversidad de circuitería de codificador o decodificador adecuada, según sea aplicable, tal como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), campos de matrices de puertas programables (FPGA), circuitería de lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cada uno del codificador 20 de vídeo y el decodificador 30 de vídeo pueden estar Incluidos en uno o más codificadores o decodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/decodificador de vídeo combinado (CODEC). Un dispositivo que incluye el codificador 20 de vídeo y/o el decodificador 30 de vídeo puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
La Figura 2 es un diagrama de bloques que ilustra un ejemplo de un codificador 20 de vídeo que puede implementar técnicas para codificar datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles. El codificador 20 de vídeo puede realizar intra- e Inter- codificación de bloques de vídeo dentro de cortes de vídeo. La intra codificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en vídeo dentro de un fotograma de vídeo o imagen dados. La Inter codificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de fotogramas o imágenes adyacentes de una secuencia de vídeo. El intra modo (modo I) puede hacer referencia a cualquiera de varios modos de codificación espacial. Los Inter modos, tales como la predicción unidireccional (modo P) o la bipredicción (modo B), pueden hacer referencia a cualquiera de varios modos de codificación temporal.
Como se muestra en la Figura 2, el codificador 20 de vídeo recibe un bloque de vídeo actual dentro de un fotograma de vídeo que va a codificarse. En el ejemplo de la Figura 2, el codificador 20 de vídeo incluye la unidad 40 de selección
de modo, la memoria 64 de imagen de referencia (que puede denominarse también como una memoria intermedia de imagen decodificada (DPB)), el sumador 50, la unidad 52 de procesamiento de transformada, la unidad 54 de cuantificación y la unidad 56 de codificación por entropía. La unidad 40 de selección de modo, a su vez, incluye la unidad 44 de compensación de movimiento, la unidad 42 de estimación de movimiento, la unidad 46 de intra predicción y la unidad 48 de subdivisión. Para la reconstrucción del bloque de vídeo, el codificador 20 de vídeo también incluye la unidad 58 de cuantificación inversa, la unidad 60 de transformada inversa y el sumador 62. Un filtro de desbloqueo (no mostrado en la Figura 2) también puede incluirse para filtrar límites de bloque para eliminar los artefactos de bloqueo del vídeo reconstruido. Si se desea, el filtro de desbloqueo típicamente filtraría la salida del sumador 62. Pueden usarse también filtros adicionales (dentro del bucle o posteriores al bucle) además del filtro de desbloqueo. Tales filtros no se muestran por brevedad, pero, si se desea, pueden filtrar la salida del sumador 50 (como un filtro en bucle).
Durante el proceso de codificación, el codificador 20 de vídeo recibe un fotograma o corte de vídeo que va a codificarse. El fotograma o corte puede dividirse en múltiples bloques de vídeo. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento realizan codificación inter predictiva del bloque de vídeo recibido con relación a uno o más bloques en uno o más fotogramas de referencia para proporcionar predicción temporal. La unidad 46 de intra predicción puede realizar, como alternativa, codificación intra predictiva del bloque de vídeo recibido con relación a uno o más bloques vecinos en el mismo fotograma o corte que el bloque que va a codificarse para proporcionar una predicción espacial. El codificador 20 de vídeo puede realizar múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación apropiado para cada bloque de datos de vídeo.
Además, la unidad 48 de subdivisión puede subdividir bloques de árbol de codificación de datos de vídeo usando las técnicas de esta divulgación. Es decir, la unidad 48 de subdivisión puede subdividir inicialmente un CTB usando un árbol de región de un árbol de múltiples tipos, dando como resultado finalmente uno o más nodos hoja de árbol de región. La unidad 48 de subdivisión puede subdividir el árbol de región de acuerdo con la subdivisión de árbol cuádruple o subdivisión de árbol séxtuple, en diversos ejemplos. La subdivisión de árbol cuádruple incluye la subdivisión de cada nodo no de hoja en cuatro nodos hijos, mientras que la subdivisión de árbol séxtuple incluye la subdivisión de cada nodo no de hoja en seis nodos hijos.
La unidad 48 de subdivisión puede subdividir adicionalmente cada uno de los nodos hoja de árbol de región usando respectivos árboles de predicción. Los árboles de predicción pueden subdividirse como árboles binarios, árboles triples de lado central y/o árboles cuádruples. Es decir, la unidad 48 de subdivisión puede subdividir cada nodo de un árbol de predicción en cuatro partes con igual tamaño (como en un árbol cuádruple), dos partes con igual tamaño horizontal o verticalmente (como en un árbol binario), o una región central y dos regiones laterales más pequeñas horizontal y verticalmente (como en un árbol triple de lado central). Adicionalmente o como alternativa, la unidad 48 de subdivisión puede subdividir un nodo del árbol de predicción usando subdivisión de movimiento asimétrica (AMP). En algunos ejemplos, la subdivisión de árbol triple de lado central puede sustituir AMP, mientras que, en otros ejemplos, la subdivisión de árbol triple de lado central puede complementar AMP. Como se explica con respecto a la Figura 1, la unidad 48 de subdivisión puede generar valores para elementos de sintaxis que indican cómo se subdivide el árbol de múltiples tipos para un cTb , que puede codificarse por la unidad 56 de codificación por entropía.
La unidad 40 de selección de modo puede seleccionar uno de los modos de predicción, (intra, inter o salto), por ejemplo, basándose en resultados de error (por ejemplo, usando análisis de tasa-distorsión), y proporcionar el bloque previsto resultante al sumador 50 para generar datos residuales y al sumador 62 para reconstruir el bloque codificado para su uso como un fotograma de referencia. La unidad 40 de selección de modo también proporciona elementos de sintaxis, tales como vectores de movimiento (codificados de acuerdo con, por ejemplo, modos de unión o AMVP), indicadores de intra modo, información de partición y otra información de sintaxis de este tipo, a la unidad 56 de codificación por entropía.
La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden estar altamente integradas, pero, se ilustran de manera separada para propósitos conceptuales. La estimación de movimiento, realizada por la unidad 42 de estimación de movimiento, es el proceso de generación de vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de un fotograma de vídeo o imagen actual con relación a un bloque predictivo dentro de un fotograma de referencia (u otra unidad codificada) con relación al bloque actual que se está codificando dentro del fotograma actual (u otra unidad codificada). Un bloque predictivo es un bloque que se halla que coincide estrechamente al bloque que va a codificarse, en términos de diferencia de píxel, que puede determinarse por una suma de diferencia absoluta (SAD), suma de diferencia de cuadrados (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador 20 de vídeo puede calcular valores para las posiciones de píxeles sub-enteros de imágenes de referencia almacenadas en la memoria 64 de imagen de referencia. Por ejemplo, el codificador 20 de vídeo puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel y otras posiciones de píxel fracciónales de la imagen de referencia. Por lo tanto, la unidad 42 de estimación de movimiento puede realizar una búsqueda de movimiento con relación a las posiciones de píxel completas y las posiciones de píxel fracciónales y emitir un vector de movimiento con precisión de píxel fraccional.
La unidad 42 de estimación de movimiento calcula un vector de movimiento para una PU de un bloque de vídeo en un corte inter codificado comparando la posición de la PU a la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria 64 de imagen de referencia. La unidad 42 de estimación de movimiento envía el vector de movimiento calculado a la unidad 56 de codificación por entropía y a la unidad 44 de compensación de movimiento.
La compensación de movimiento, realizada por la unidad 44 de compensación de movimiento, puede implicar capturar o generar el bloque predictivo basándose en el vector de movimiento determinado por la unidad 42 de estimación de movimiento. De nuevo, la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden estar funcionalmente integradas, en algunos ejemplos. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad 44 de compensación de movimiento puede ubicar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel, como se analiza a continuación. En general, la unidad 42 de estimación de movimiento realiza estimación de movimiento con relación a componentes de luminancia, y la unidad 44 de compensación de movimiento usa vectores de movimiento calculados basándose en los componentes de luminancia para tanto los componentes de croma como los componentes de luminancia. La unidad 40 de selección de modo puede generar también elementos de sintaxis asociados con los bloques de vídeo y el corte de vídeo para su uso por el decodificador 30 de vídeo al decodificar los bloques de vídeo del corte de vídeo.
La unidad 46 de intra predicción puede intra predecir un bloque actual, como una alternativa a la inter predicción realizada por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento, como se ha descrito anteriormente. En particular, la unidad 46 de intra predicción puede determinar un modo de intra predicción para usar para codificar un bloque actual. En algunos ejemplos, la unidad 46 de intra predicción puede codificar un bloque actual usando diversos modos de intra predicción, por ejemplo, durante pasadas de codificación separadas y la unidad 46 de intra predicción (o la unidad 40 de selección de modo, en algunos ejemplos) puede seleccionar un modo de intra predicción apropiado para usar a partir de los modos probados.
Por ejemplo, la unidad 46 de intra predicción puede calcular valores de tasa-distorsión usando un análisis de tasadistorsión para los diversos modos de intra predicción probados, y seleccionar el modo de intra predicción que tiene las mejores características de tasa-distorsión entre los modos probados. El análisis de tasa-distorsión determina, en general, una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado, que se codificó para producir el bloque codificado, así como una tasa de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad 46 de intra predicción puede calcular relaciones a partir de las distorsiones y tasas para los diversos bloques codificados para determinar cuál modo de intra predicción muestra el mejor valor de tasadistorsión para el bloque.
Después de seleccionar un modo de intra predicción para un bloque, la unidad 46 de intra predicción puede proporcionar información indicativa del modo de intra predicción seleccionado para el bloque a la unidad 56 de codificación por entropía. La unidad 56 de codificación por entropía puede codificar la información que indica el modo de intra predicción seleccionado. El codificador 20 de vídeo puede incluir en el flujo de bits transmitido datos de configuración, que pueden incluir una pluralidad de tablas de índices de modo de intra predicción y una pluralidad de tablas de índices de modo de intra predicción modificado (también denominadas como tablas de mapeo de palabra de código), definiciones de codificación de contextos para diversos bloques e indicaciones de un modo de intra predicción más probable, una tabla de índices de modo de intra predicción y una tabla de índices de modo de intra predicción modificado para usar para cada uno de los contextos.
El codificador 20 de vídeo forma un bloque de vídeo residual restando los datos de predicción de la unidad 40 de selección de modo del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o componentes que realizan esta operación de resta. La unidad 52 de procesamiento de transformada aplica una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficientes de transformada. Podrían usarse las transformadas de ondícula, las transformadas de enteros, las transformadas de subbanda, las transformadas de seno discretas (DST), u otros tipos de transformadas en lugar de una DCT. En cualquier caso, la unidad 52 de procesamiento de transformada aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada. La transformada puede convertir la información residual de un dominio de los píxeles a un dominio de la transformada, tal como un dominio de frecuencia. La unidad 52 de procesamiento de transformada puede enviar los coeficientes de transformada resultantes a la unidad 54 de cuantificación. La unidad 54 de cuantificación cuantifica los coeficientes de transformada para reducir adicionalmente la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con alguno o todos los coeficientes. El grado de cuantificación puede modificarse ajustando un parámetro de cuantificación.
Después de la cuantificación, la unidad 56 de codificación por entropía codifica por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad 56 de codificación por entropía puede realizar codificación de
longitud variable adaptativa según contexto (CAVLC), codificación binaria aritmética adaptativa según contexto (CABAC), codificación binaria aritmética adaptativa según contexto basada en sintaxis (SBAC), codificación por entropía de subdivisión de intervalo de probabilidad (PIPE) u otra técnica de codificación por entropía. En el caso de codificación por entropía basada en contexto, el contexto puede estar basado en bloques vecinos. Después de la codificación por entropía por la unidad 56 de codificación por entropía, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, el decodificador 30 de vídeo) o archivarse para su transmisión o recuperación posterior.
La unidad 58 de cuantificación inversa y la unidad 60 de transformada inversa aplican cuantificación inversa y transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de los píxeles. En particular, el sumador 62 añade el bloque residual objetivo al bloque de predicción de movimiento compensado anteriormente producido por la unidad 44 de compensación de movimiento o la unidad 46 de intra predicción para producir un bloque de vídeo reconstruido para su almacenamiento en la memoria 64 de imagen de referencia. El bloque de vídeo reconstruido puede usarse por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento como un bloque de referencia para inter codificar un bloque en un fotograma de vídeo posterior.
Adicionalmente, de acuerdo con las técnicas de esta divulgación, la unidad 40 de selección de modo puede elegir realizar uno o más "súper modos" para ciertos árboles de predicción de un bloque de árbol de codificación (CTB). Tales súper-modos pueden incluir, por ejemplo, súper modo de salto, súper modo de unión, súper intra modo, súper inter modo o súper modo FRUC. En general, en un súper modo, el codificador 20 de vídeo codifica correspondiente información de "súper modo" en un nodo raíz de un árbol de predicción (o en un nodo hoja de árbol de región) del CTB, y aplica esta información a todas las CU del árbol de predicción, de manera que el codificador 20 de vídeo evita codificar correspondiente información separada para las c U del árbol de predicción. Por ejemplo, para el súper modo de salto, el codificador 20 de vídeo codifica todas las CU del árbol de predicción usando modo de salto, y no codifica ninguna información de predicción adicional para las CU. Como otro ejemplo, para súper intra- o inter modo, el codificador 20 de vídeo codificaría información de intra- o de inter predicción una vez para el árbol de predicción, y aplicaría esta misma información de predicción a todas las CU del árbol de predicción. El codificador 20 de vídeo codificaría otra información, tal como información de división en el nivel de árbol de región y el nivel de árbol de predicción, así como, información de transformada, como es normal.
En algunos ejemplos, el codificador 20 de vídeo únicamente posibilita un súper modo cuando un número de CU incluidas en el árbol de predicción es mayor que un umbral. El codificador 20 de vídeo puede codificar elementos de sintaxis que definen el umbral, por ejemplo, en un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS), un encabezado de corte, un encabezado de CTB o similares.
Además, de acuerdo con las técnicas de esta divulgación, el codificador 20 de vídeo puede codificar elementos de sintaxis que representan una o más herramientas de codificación posibilitadas, y también aplicar las herramientas de codificación posibilitadas durante la codificación de un CTB o árbol de predicción del CTB. Por ejemplo, el codificador 20 de vídeo puede posibilitar cualquiera o todas de compensación de movimiento de bloque solapado (OBMC), transformadas solapadas y/o cualquiera de los diversos súper-modos analizados anteriormente. La unidad 44 de compensación de movimiento puede estar configurada para realizar OBMC como se analiza en mayor detalle a continuación con respecto a, por ejemplo, las Figuras 7 y 8. La unidad 52 de procesamiento de transformada puede estar configurada para realizar transformadas solapadas como se ha analizado anteriormente.
De esta manera, el codificador 20 de vídeo de la Figura 2 representa un ejemplo de un codificador de vídeo configurado para codificar uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación (CTB) de datos de vídeo, teniendo el árbol de región uno o más nodos hoja de árbol de región, codificar uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB, teniendo los árboles de predicción uno o más nodos hoja de predicción que definen respectivas unidades de codificación (CU), y codificar datos de vídeo para cada una de las CU.
La Figura 3 es un diagrama de bloques que ilustra un ejemplo del decodificador 30 de vídeo que puede implementar técnicas para codificar datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles. En el ejemplo de la Figura 3, el decodificador 30 de vídeo incluye una unidad 70 de decodificación por entropía, la unidad 72 de compensación de movimiento, la unidad 74 de intra predicción, la unidad 76 de cuantificación inversa, la unidad 78 de transformación inversa, la memoria 82 de imagen de referencia y el sumador 80. El decodificador 30 de vídeo puede realizar, en algunos ejemplos, una pasada de decodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador 20 de vídeo (Figura 2). La unidad 72 de compensación de movimiento puede generar datos de predicción basándose en vectores de movimiento recibidos de la unidad 70 de decodificación por entropía, mientras que la unidad 74 de intra predicción puede generar datos de predicción basándose en los indicadores de modo de intra predicción recibidos de la unidad 70 de decodificación por entropía.
Cuando se codifica el corte de vídeo como un corte intra codificado (I), la unidad 74 de intra predicción puede generar datos de predicción para un bloque de vídeo del corte de vídeo actual basándose en un modo de intra predicción señalizado y datos de bloques previamente decodificados del fotograma o imagen actual. Cuando se codifica el fotograma de vídeo como un corte inter codificado (es decir, B o P), la unidad 72 de compensación de movimiento
produce bloques predictivos para un bloque de vídeo del corte de vídeo actual basándose en Ios vectores de movimiento y otros elementos de sintaxis recibidos de la unidad 70 de decodificación por entropía. Los bloques predictivos pueden producirse de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador 30 de vídeo puede reconstruir las listas de fotogramas de referencia, Lista 0 y Lista 1, usando técnicas de construcción por defecto basándose en imágenes de referencia almacenadas en la memoria 82 de imagen de referencia.
Durante el proceso de decodificación, el decodificador 30 de vídeo recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un corte de vídeo codificado y elementos de sintaxis asociados del codificador 20 de vídeo. La unidad 70 de decodificación por entropía del decodificador 30 de vídeo decodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intra predicción y otros elementos de sintaxis. La unidad 70 de decodificación por entropía reenvía Ios vectores de movimiento y otros elementos de sintaxis a la unidad 72 de compensación de movimiento. El decodificador 30 de vídeo puede recibir Ios elementos de sintaxis en el nivel de corte de vídeo y/o en el nivel de bloque de vídeo.
Los elementos de sintaxis en el nivel de bloque de árbol de codificación (CTB) pueden incluir elementos de sintaxis que indican cómo se subdivide un árbol de múltiples tipos de un CTB. En particular, la unidad 70 de decodificación por entropía puede decodificar uno o más elementos de sintaxis de un CTB en un nivel de árbol de región, produciendo finalmente uno o más nodos hoja de árbol de región. Cada nodo hoja de árbol de región puede estar asociado con correspondientes elementos de sintaxis de árbol de predicción. Los elementos de sintaxis de árbol de predicción pueden indicar cómo se subdivide el correspondiente nodo hoja de árbol de región, por ejemplo, de acuerdo con subdivisión de árbol binario horizontal o vertical, subdivisión triple de lado central horizontal o vertical, subdivisión de árbol cuádruple o subdivisión de movimiento asimétrico (AMP). Los árboles de predicción pueden producir finalmente una o más unidades de codificación (CU).
La unidad 72 de compensación de movimiento determina información de predicción para un bloque de vídeo del corte de vídeo actual analizando Ios vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir Ios bloques predictivos para el bloque de vídeo actual que se está decodificando. Por ejemplo, la unidad 72 de compensación de movimiento usa alguno de Ios elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra- o inter- predicción) usado para codificar Ios bloques de vídeo del corte de vídeo, un tipo de corte de inter predicción (por ejemplo, corte B o corte P), información de construcción para una o más de las listas de imágenes de referencia para el corte, vectores de movimiento para cada bloque de vídeo inter codificado del corte, estado de inter predicción para cada bloque de vídeo inter codificado del corte, y otra información para decodificar Ios bloques de vídeo en el corte de vídeo actual.
La unidad 72 de compensación de movimiento puede realizar también interpolación basándose en filtros de interpolación. La unidad 72 de compensación de movimiento puede usar filtros de interpolación como se usan por el codificador 20 de vídeo durante la codificación de Ios bloques de vídeo para calcular valores interpolados para píxeles sub-enteros de Ios bloques de referencia. En este caso, la unidad 72 de compensación de movimiento puede determinar Ios filtros de interpolación usados por el codificador 20 de vídeo de Ios elementos de sintaxis recibidos y usar Ios filtros de interpolación para producir bloques predictivos.
La unidad 76 de cuantificación inversa cuantifica a la inversa, es decir, descuantifica, Ios coeficientes de transformada cuantificados proporcionados en el flujo de bits y decodificados por la unidad 70 de decodificación por entropía. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QPy calculado por el decodificador 30 de vídeo para cada bloque de vídeo en el corte de vídeo para determinar un grado de cuantificación y, análogamente, un grado de cuantificación inversa que debe aplicarse.
La unidad 78 de transformada inversa aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de entero inversa o un proceso de transformada inversa conceptualmente similar, a Ios coeficientes de transformada para producir bloques residuales en el dominio de Ios píxeles.
Después de que la unidad 72 de compensación de movimiento genera el bloque predictivo para el bloque de vídeo actual basándose en Ios vectores de movimiento y otros elementos de sintaxis, el decodificador 30 de vídeo forma un bloque de vídeo decodificado sumando Ios bloques residuales de la unidad 78 de transformada inversa con Ios correspondientes bloques predictivos generados por la unidad 72 de compensación de movimiento. El sumador 80 representa el componente o componentes que realizan esta operación de suma. Si se desea, puede aplicarse también un filtro de desbloqueo para filtrar Ios bloques decodificados para eliminar artefactos de bloqueo. Pueden usarse también otros filtros de bucle (en el bucle de codificación o después del bucle de codificación) para suavizar las transiciones de píxel, o mejorar de otra manera la calidad de vídeo. Los bloques de vídeo decodificados en un fotograma o imagen dados se almacenan a continuación en la memoria 82 de imagen de referencia, que almacena imágenes de referencia usadas para compensación de movimiento posterior. La memoria 82 de imagen de referencia también almacena vídeo decodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo 32 de visualización de la Figura 1.
Adicionalmente, de acuerdo con las técnicas de esta divulgación, la unidad 70 de decodificación por entropía puede decodificar elementos de sintaxis que representan si están activados uno o más "súper modos" para ciertos árboles de predicción de un bloque de árbol de codificación (CTB). Tales súper-modos pueden incluir, por ejemplo, súper modo de salto, súper modo de unión, súper intra modo, súper inter modo o súper modo FRUC. En general, en un súper modo, el decodificador 30 de vídeo decodifica correspondiente información de "súper modo" en un nodo raíz de un árbol de predicción (o en un nodo hoja de árbol de región) del CTB, y aplica esta información a todas las CU del árbol de predicción, de manera que el decodificador 30 de vídeo evita decodificar correspondiente información separada para las CU del árbol de predicción. Por ejemplo, para el súper modo de salto, el decodificador 30 de vídeo decodifica todas las CU del árbol de predicción usando modo de salto, y no decodifica ninguna información de predicción adicional para las CU. Como otro ejemplo, para súper intra o inter modo, el decodificador 30 de vídeo decodificaría información de intra o de inter predicción una vez para el árbol de predicción, y aplicaría esta misma información de predicción a todas las CU del árbol de predicción. El decodificador 30 de vídeo decodificaría otra información, tal como información de división en el nivel de árbol de región y el nivel de árbol de predicción, así como, información de transformada, como es normal.
En algunos ejemplos, el decodificador 30 de vídeo únicamente posibilita un súper-modo cuando un número de CU incluidas en el árbol de predicción es mayor que un umbral. El decodificador 30 de vídeo puede decodificar elementos de sintaxis que definen el umbral, por ejemplo, en un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS), un encabezado de corte, un encabezado de CTB o similares.
Además, de acuerdo con las técnicas de esta divulgación, el decodificador 30 de vídeo puede decodificar elementos de sintaxis que representan una o más herramientas de codificación habilitadas, y también aplicar las herramientas de decodificación habilitadas durante la codificación de un CTB o árbol de predicción del CTB. Por ejemplo, el decodificador 30 de vídeo puede posibilitar cualquiera o todas de compensación de movimiento de bloque solapado (OBMC), transformadas solapadas y/o cualquiera de los diversos súper-modos analizados anteriormente. La unidad 72 de compensación de movimiento puede estar configurada para realizar OBMC como se analiza en mayor detalle a continuación con respecto a, por ejemplo, las Figuras 7 y 8. La unidad 78 de transformada inversa puede estar configurada para realizar transformadas solapadas como se ha analizado anteriormente.
De esta manera, el decodificador 30 de vídeo de la Figura 3 representa un ejemplo de un decodificador de vídeo que incluye una memoria configurada para almacenar datos de vídeo; y un procesador implementado en circuitería y configurado para: decodificar uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación (CTB) de datos de vídeo, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de los nodos no de hoja de árbol de región un primer número de nodos de árbol de región hijos, siendo el primer número al menos cuatro, determinar, usando los elementos de sintaxis en el nivel de árbol de región, cómo se dividen los nodos de árbol de región en los nodos de árbol de región hijos, decodificar uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB, teniendo cada uno de los árboles de predicción uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de los nodos no de hoja de árbol de predicción un segundo número de nodos de árbol de predicción hijos, siendo el segundo número al menos dos, definiendo cada uno de los nodos hoja de predicción respectivas unidades de codificación (CU), determinar, usando los elementos de sintaxis en el nivel de árbol de predicción, cómo se dividen los nodos de árbol de predicción en los nodos de árbol de predicción hijos, y decodificar datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las CU basándose al menos en parte en los elementos de sintaxis en el nivel de árbol de región y los elementos de sintaxis en el nivel de árbol de predicción.
La Figura 4 es un diagrama de bloques que ilustra un bloque de árbol de codificación (CTB) 100 de ejemplo. En HEVC, la unidad de codificación más grande en un corte se denomina un bloque de árbol de codificación (CTB). Un CTB, tal como el CTB 100, contiene una estructura de datos de árbol cuádruple (o simplemente, árbol cuádruple), los nodos de la cual corresponden a unidades de codificación (CU). En particular, un nodo raíz de la estructura de datos de árbol cuádruple corresponde al CTB. Cada nodo en la estructura de datos de árbol cuádruple es un nodo hoja (que no tiene nodos hijos), o un nodo padre que tiene cuatro nodos hijos. La CU 102 representa un ejemplo de una CU que corresponde a un nodo hoja del árbol cuádruple. El tamaño de una CTB varía de 16x16 píxeles a 64x64 píxeles en el perfil principal de HEVC (aunque técnicamente pueden soportarse tamaños de CTB de 8x8). Un CTB puede dividirse recursivamente en unidades de codificación (CU) en una manera de árbol cuádruple, tal como se muestra en la Figura 4. Los nodos hoja de la estructura de datos de árbol cuádruple corresponden a las CU que incluyen unidades de predicción (PU) y unidades de transformada (TU).
Una CU podría tener el mismo tamaño de un CTB, aunque puede ser tan pequeña como 8x8. Cada unidad de codificación puede codificarse con un modo de predicción, que podría ser intra modo o inter modo. Cuando se inter codifica una CU (es decir, se aplica predicción de inter modo), la CU puede subdividirse adicionalmente en 2 o 4 unidades de predicción (PU) o volverse solamente una PU cuando no se aplica subdivisión adicional. Cuando están presentes dos PU en una CU, pueden ser rectángulos de la mitad del tamaño o dos rectángulos con un tamaño de % o % de la CU.
La Figura 5 es un diagrama de bloques que ilustra unidades de predicción (PU) ilustrativas de una CU. En HEVC, hay ocho modos de partición para una CU codificada con modo de inter predicción, es decir, PART_2Nx2N, PART 2NxN, PART Nx2N, PART NxN, PART_2NxnU, PART_2NxnD, PART nLx2N y PART nRx2N, como se muestra en la Figura 5. Cuando se inter codifica la CU, está presente un conjunto de información de movimiento para cada PU. Además, de acuerdo con HEVC, cada PU se codifica con un inter modo de predicción único para derivar el conjunto de información de movimiento. Cuando se intra codifica una CU de acuerdo con HEVC, 2Nx2N y NxN son las únicas formas de PU permitidas, y dentro de cada PU se codifica un único modo de intra predicción (mientras que se señaliza el modo de predicción de croma en el nivel de CU). Las NxN intra formas de PU están únicamente permitidas cuando el tamaño de CU actual es igual al tamaño de CU más pequeño definido en el SPS, de acuerdo con HEVC.
La Figura 6 es un diagrama conceptual que ilustra una estructura 120 de árbol binario de árbol cuádruple (QTBT) ilustrativa, y un correspondiente CTB 122. En la propuesta del VCEG COM16-C966 (J. An, Y.-W. Chen, K. Zhang, H. Huang, Y.-W. Huang y S. Lei., "Block partitioning structure for next generation video coding", International Telecommunication Union, COM16-C966, septiembre de 2015), se propuso un árbol binario de árbol cuádruple (QTBT) para la futura norma de codificación de vídeo más allá de HEVC. Las simulaciones mostraron que la estructura de QTBT propuesta es más eficaz que la estructura de árbol cuádruple en HEVC usada.
En la estructura de QTBT propuesta de COM 16-C966, se subdivide en primer lugar un CTB por árbol cuádruple, donde puede iterarse la división de árbol cuádruple de un nodo hasta que el nodo alcance el tamaño de nodo hoja de árbol cuádruple mínimo permitido (MinQTSize). Si el tamaño de nodo hoja de árbol cuádruple no es mayor que el tamaño de nodo raíz de árbol binario permitido máximo (MaxBTSize), puede subdividirse adicionalmente por un árbol binario. La división de árbol binario de un nodo puede iterarse hasta que el nodo alcance el tamaño de nodo hoja de árbol binario mínimo permitido (MinBTSize) o la profundidad de árbol binario máxima permitida (MaxBTDepth). El árbol binario nodo hoja se llama una CU, que se usa para predicción (por ejemplo, predicción intra imagen o predicción inter imagen) y transformada sin subdivisión adicional alguna.
Hay dos tipos de división de acuerdo con COM16-C966: división horizontal simétrica y división vertical simétrica, en la división de árbol binario.
En un ejemplo de la estructura de división de QTBT, el tamaño de CTU se establece como 128x128 (muestras de luma y dos correspondientes muestras de croma de 64x64), MinQTSize se establece como 16x16, MaxBTSize se establece como 64x64, MinBTSize (para tanto anchura como altura) se establece como 4, y MaxBTDepth se establece como 4. La subdivisión de árbol cuádruple se aplica a la CTU en primer lugar para generar nodos hoja de árbol cuádruple. Los nodos hoja de árbol cuádruple pueden tener un tamaño de 16x16 (es decir, MinQTSize) a 128x128 (es decir, el tamaño de CTU). Si el nodo de árbol cuádruple hoja es 128x128, no se dividirá adicionalmente por el árbol binario, puesto que el tamaño supera MaxBTSize (es decir, 64x64). De otra manera, el nodo de árbol cuádruple de hoja se subdividirá adicionalmente por el árbol binario. Por lo tanto, el nodo hoja de árbol cuádruple también es el nodo raíz para el árbol binario y tiene la profundidad de árbol binario como 0.
Cuando la profundidad del árbol binario alcanza MaxBTDepth (4, en un ejemplo), implica que no está permitida división adicional. Cuando el nodo del árbol binario tiene anchura igual a MinBTSize (4, en un ejemplo), implica que no está permitida división horizontal adicional. De manera similar, cuando el nodo de árbol binario tiene altura igual a MinBTSize, implica que no está permitida división vertical adicional. Los nodos hoja del árbol binario se llaman CU, y se procesan adicionalmente de acuerdo con la predicción y transformada sin ninguna subdivisión adicional.
El CTB 122 de la Figura 6 representa un ejemplo de subdivisión de bloque usando QTBT y el QTBT 120 de la Figura 6 representa un QTBT de ejemplo que corresponde al CTB 122. Las líneas continuas representan división de árbol cuádruple, y las líneas discontinuas de puntos indican división de árbol binario. En cada nodo de división (es decir, de no hoja) del árbol binario, se señaliza una bandera para indicar qué tipo de división se usa (es decir, horizontal o vertical), donde 0 indica división horizontal y 1 indica división vertical en este ejemplo. Para la división de árbol cuádruple, no hay necesidad de indicar el tipo de división, puesto que siempre divide un bloque horizontal y verticalmente en 4 subbloques con un tamaño igual. Por consiguiente, el codificador 20 de vídeo puede codificar, y el decodificador 30 de vídeo puede decodificar, elementos de sintaxis (tal como información de división) para un nivel de árbol de región de QTBT 120 (es decir, las líneas continuas) y elementos de sintaxis (tal como información de división) para un nivel de árbol de predicción de QTBT 120 (es decir, las líneas discontinuas). El codificador 20 de vídeo puede codificar, y el decodificador 30 de vídeo puede decodificar, datos de vídeo, tales como datos de predicción y transformada, para las CU de los nodos hoja de árbol de predicción de los árboles de predicción de QTBT 120.
Li et al., Solicitud Provisional de Estados Unidos N.062/279.233, presentada el 15 de enero de 2016, describe una estructura de árbol de múltiples tipos. Con el método de la solicitud provisional '233, un nodo de árbol puede dividirse adicionalmente con múltiples tipos de árbol, tal como árbol binario, árbol de lado central simétrico y árbol cuádruple. Las simulaciones mostraron que la estructura de árbol de múltiples tipos era mucho más eficaz que la estructura de árbol binario de árbol cuádruple.
En el ejemplo de QTBT 120, un nivel de árbol de reglón Incluye árboles cuádruples (donde cada nodo no de hoja Incluye cuatro nodos hijos) y un nivel de árbol de predicción Incluye árboles binarlos (donde cada nodo no de hoja Incluye dos nodos hijos). Sin embargo, en general, de acuerdo con las técnicas de esta divulgación, un árbol de región puede incluir nodos no de hoja que tienen un primer número de nodos que es igual o mayor que cuatro (por ejemplo, cuatro, cinco, seis, etc. nodos), y cada nodo hoja de árbol de región puede actuar como un nodo raíz para un árbol de predicción que tiene un segundo número de nodos que es igual o mayor que dos (por ejemplo, dos, tres, cuatro, etc. nodos). Cada nodo hoja de árbol de predicción puede corresponder a una CU, que, de acuerdo con las técnicas de esta divulgación, incluye información de predicción y de transformada, pero que no necesita incluir información de división adicional alguna. Por lo tanto, las unidades de predicción y las unidades de transformada, de acuerdo con ejemplos de las técnicas de esta divulgación, pueden tener el mismo tamaño que las CU que incluyen las unidades de predicción y unidades de transformada.
La Figura 7 es un diagrama conceptual que ilustra un bloque 130 codificado que usa compensación de movimiento de bloque solapado (OBMC). OBMC se propuso en el desarrollo de H.263 (Codificación de Vídeo para Comunicación de Baja Tasa de Bits, documento Rec. h .263, ITU-T, abril de 1995). En h .263, se realiza OBMC en bloques de 8x8, y se usan vectores de movimiento de dos bloques de 8x8 vecinos conectados para un bloque actual, tal como el bloque 130 actual de la Figura 7. Por ejemplo, para un primer bloque 132 de 8x8 en el bloque 130 actual, además de su propio vector de movimiento, también se aplican el vector de movimiento vecino arriba e izquierda para generar dos bloques de predicción adicionales. De esta manera, cada píxel en el primer bloque 132 de 8x8 tiene tres valores de predicción y se usa una media ponderada de estos tres valores de predicción como la predicción final. Se predice un segundo bloque 134 de 8x8 usando su propio vector de movimiento, así como, vectores de movimiento de los bloques vecinos arriba y derecho. Se predice un tercer bloque 136 de 8x8 usando su propio vector de movimiento, así como, un vector de movimiento del bloque vecino izquierdo. Se predice un cuarto bloque 138 de 8x8 usando su propio vector de movimiento, así como, vectores de movimiento del bloque vecino derecho.
Cuando no se codifica un bloque vecino o se codifica usando un intra modo, es decir, el bloque vecino no tiene un vector de movimiento disponible, se usa un vector de movimiento del bloque de 8x8 actual como el vector de movimiento vecino. Mientras tanto, para el tercer bloque 136 de 8x8 y el cuarto bloque 138 de 8x8 del bloque 130 actual (como se muestra en la Figura 7), no se usa el bloque vecino a continuación. En otras palabras, para cada MB, no se usará información de movimiento de los MB a continuación para reconstruir los píxeles del MB actual durante la o b m c .
La Figura 8 es un diagrama conceptual que ilustra un ejemplo de OBMC según se aplica en HEVC, es decir, OBMC basada en PU. Chien et al., Solicitud de Estados Unidos N.° 13/678.329, presentada el 15 de noviembre de 2012 y Guo et al., Solicitud de Estados Unidos N.° 13/311.834, presentada el 6 de diciembre 2011, describen la aplicación de OBMC para suavizar límites de PU en HEVC, tales como los límites 140, 142. Un ejemplo de los métodos propuestos en las aplicaciones de Chien y Guo se muestra en la Figura 8. Por ejemplo, cuando una CU contiene dos (o más) PU, las líneas/columnas cerca del límite de PU se suavizan por OBMC, de acuerdo con las técnicas de estas aplicaciones. Para los píxeles marcados con "A" o "B" en PUO o PU1, se generan dos valores de predicción, es decir, aplicando vectores de movimiento de PUO y PU1 respectivamente, y se usa una media ponderada de los valores de predicción como la predicción final.
La Figura 9 es un diagrama conceptual que ilustra un ejemplo de realización de OBMC de nivel de sub-PU. En el Modelo de Prueba de Exploración Mixta 2 (JEM) (J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce "Algorithm description of Joint Exploration Test Model 2", JVET-B1OO1, febrero de 2016), se aplica OBMC de nivel de sub-PU. En este ejemplo, se realiza OBMC para todos los límites de bloque de Movimiento Compensado (MC) excepto los límites derecho e inferior de una CU. Además, se aplica OBMC para componentes tanto de luma como de croma. En HEVC, un bloque de MC corresponde a una PU. En JEM, cuando se codifica una PU con modo sub-PU, cada subbloque de la PU es un bloque de MC. Para procesar límites de CU/PU de una manera uniforme, se realiza OBMC en el nivel de subbloque para todos los límites de bloque de MC, donde el tamaño de subbloque se establece igual a 4x4, como se ilustra en la Figura 9.
En JEM, cuando se aplica OBMC al subbloque actual (por ejemplo, bloques sombreados con troceo de derecha a izquierda en los ejemplos de la Figura 9), además de los vectores de movimiento actuales, se usan también vectores de movimiento de cuatro subbloques vecinos conectados, si están disponibles y no son idénticos al vector de movimiento actual, para derivar un bloque de predicción para el subbloque actual. Estos múltiples bloques de predicción, que están basados en múltiples vectores de movimiento, se ponderan para generar la señal de predicción final del subbloque actual.
Indíquese un bloque de predicción basado en vectores de movimiento de un subbloque vecino como Pn, indicando N un índice para los subbloques vecinos arriba, abajo izquierda y derecha, e indíquese el bloque de predicción basado en vectores de movimiento del subbloque actual como Pc. Cuando Pn pertenece a la misma Pu que Pc (y, por lo tanto, contiene la misma información de movimiento), no se realiza OBMC a partir de Pn. De otra manera, se añade cada píxel de Pn al mismo píxel en Pc, es decir, se añaden cuatro filas/columnas de Pn a Pc. Pueden usarse factores de ponderación de ejemplo de {1/4, 1 /8, 1/16, 1/32} para Pn, y pueden usarse correspondientes factores de ponderación {3/4, 7/8, 15/16, 31/32} para Pc.
Las excepciones pueden incluir bloques de MC pequeños, (es decir, cuando el tamaño de PU es igual a 8x4, 4x8 o se codifica una PU con modo ATMVP), para los que únicamente se añaden dos filas/columnas de PN a Pc. En este caso, pueden usarse los factores de ponderación {l/4, 1/8} para Pn y los factores de ponderación {3/4, 7/8} para Pc. Cuando se genera Pn basándose en vectores de movimiento de un subbloque verticalmente (y horizontalmente) vecino, pueden añadirse píxeles en la misma fila (columna) de Pn a Pc con un mismo factor de ponderación. Para los límites de PU, puede aplicarse OBMC en cada lado del límite. En el ejemplo de la Figura 9, puede aplicarse OBMC a lo largo del límite entre PU1 y PU2 dos veces. En primer lugar, puede aplicarse OBMC con el MV de PU2 a los bloques sombreados a lo largo del límite dentro de PU1. En segundo lugar, puede aplicarse OBMC con el MV de PU1 a los bloques sombreados a lo largo del límite dentro de PU2. En otros ejemplos, puede aplicarse OBMC a un lado de los límites de CU, puesto que cuando se hace la codificación (codificación o decodificación) de la CU actual, un codificador de vídeo no puede cambiar las CU que se han codificado.
La Figura 10 es un diagrama conceptual que ilustra ejemplos de particiones de movimiento asimétrico para diversos bloques de 64x64. Una transformada solapada es una transformada realizada en un bloque que cruza un límite de PU. En general, los bloques de transformada están alineados con bloques de predicción, puesto que el límite de predicción normalmente presenta discontinuidad. Por lo tanto, los bloques de transformada que cruzan los límites de bloque de predicción pueden crear coeficientes de alta frecuencia que pueden ser perjudiciales para el rendimiento de la codificación. Sin embargo, para bloques inter codificados, que normalmente presentan pocos residuos de predicción, un bloque de transformada mayor que un bloque de predicción en ocasiones puede ser útil para compactar mejor la energía y evitar una señalización innecesaria de diversos tamaños de bloque de transformada.
En HEVC, se aplica una estructura de codificación de transformada usando el árbol cuádruple residual (RQT), que se describe brevemente como se analiza en "Transform Coding Using the Residual Quadtree (RQT)", disponible en www.hhi.fraun-hofer.de/fields-of-competence/image-processing/research-groups/image-video-coding/hevc-highefficien-cy-video-coding/transform-coding-using-the-residual-quadtree-rqt.html. Empezando a partir de la CTU, que es típicamente un bloque de imagen de 64x64 en la configuración por defecto de HEVC, el bloque de imagen puede dividirse adicionalmente en unidades de codificación (CU) cuadradas más pequeñas. Después de que se divide recursivamente la CTU en CU, cada CU se divide adicionalmente en unidades de predicción (PU) y unidades de transformada (TU).
En HEVC, se selecciona la subdivisión de una CU en PU a partir de varios candidatos predefinidos. Suponiendo que la CU es de tamaño 2Nx2N, para una intra CU, si el tamaño de CU es 8x8, la CU puede subdividirse en una PU de 2Nx2N o cuatro PU de NxN, si el tamaño de CU es mayor que 8x8, la PU siempre es igual al tamaño de CU, es decir, 2Nx2N. Para una inter CU, el tamaño de predicción puede ser 2Nx2N, Nx2N, 2NxN, o particiones de movimiento asimétrico (AMP) que incluyen 2NxnU, 2NxnD, nLx2N y nRx2N. Se muestra en la Figura lO un ejemplo de particiones de movimiento asimétrico para el bloque 64x64 de acuerdo con HEVC.
La Figura 11 es un diagrama conceptual que ilustra un esquema de transformada de ejemplo basándose en un árbol cuádruple residual de acuerdo con HeVC. La subdivisión de una CU en TU se lleva a cabo recursivamente basándose en un enfoque de árbol cuádruple. Por lo tanto, la señal residual de cada CU se codifica por una estructura de árbol, en concreto, el árbol cuádruple residual (RQT). El RQT permite tamaños de TU desde 4x4 hasta muestras de luma de 32x32. La Figura 11 muestra un ejemplo donde una CU incluye 1O TU, etiquetadas con las letras a a j, y la subdivisión de bloque correspondiente. Cada nodo del RQT es, en realidad, una unidad de transformada (TU).
Las TU individuales se procesan en orden de recorrido de árbol de profundidad primero, que se ilustra en la figura como orden alfabético, que sigue una exploración en Z recursiva con recorrido de profundidad primero. El enfoque de árbol cuádruple posibilita la adaptación de la transformada a las características de espacio-frecuencia variables de la señal residual. Típicamente, tamaños de bloque de transformada más grandes, que tienen soporte espacial más grande, proporcionan mejor resolución de frecuencia. Sin embargo, tamaños de bloque de transformada más pequeños, que tienen soporte espacial más pequeño, proporcionan mejor resolución espacial. El equilibrio entre los dos, resoluciones espaciales y de frecuencia, se elige por la decisión de modo de codificador, por ejemplo, basándose en una técnica de optimización de tasa-distorsión. El codificador realiza la técnica de optimización de tasa-distorsión para calcular una suma ponderada de bits de codificación y distorsión de reconstrucción, es decir, el coste de tasadistorsión, para cada modo de codificación (por ejemplo, una estructura de división de RQT específica), y selecciona el modo de codificación con menor coste de tasa-distorsión como el mejor modo.
Para una CU inter codificada, cuando un bloque de transformada cruza el límite de un bloque de predicción o bloque de movimiento, se generan coeficientes de alta frecuencia, que pueden imponer una influencia negativa en el rendimiento de codificación. Para el caso de subdivisión de movimiento asimétrico (AMP), este problema puede ser más serio, puesto que el bloque de transformada en un primer y segundo nivel cruzará un correspondiente límite de bloque de movimiento. Sin embargo, para CU inter codificadas, una unidad de transformada mayor que una correspondiente PU, por ejemplo, una unidad de transformada de 2Nx2N puede aún ser útil, que está basado en la consideración de que una transformada de 2Nx2N puede obtener un mejor resultado cuando el residuo dentro de una unidad de codificación es pequeño, y usar la TU de 2Nx2N puede también ahorrar bits de señalización que podrían ayudar a mejorar la eficacia de codificación.
En HEVC, para una CU intra codificada, la TU no puede cruzar el límite de predicción, es decir, el límite de PU. Sin embargo, para una CU inter codificada, la TU puede ser tan grande como el tamaño de CU, lo que significa que puede realizarse la transformada a través del límite de predicción.
En HEVC, está permitido que se cambien valores de QP en el nivel de CU. Un grupo de cuantificación se define como una región donde se usa un único valor de QP de base para codificar la diferencia de valores de QP para todas las CU dentro de la región. Sin embargo, un concepto similar puede ser difícil de definir en estructuras de árbol de múltiples tipos existentes, ya que el grupo lógico de nodos hoja puede representar formas muy diversas, y, por lo tanto, puede ser desafiante hallar un buen predictor común para la codificación de QP-delta.
Por ejemplo, en los límites del objeto que puede subdividirse usando formas rectangulares, puede usarse un valor de QP menor para particiones de primer plano y puede requerirse un valor de QP mayor para particiones de segundo plano. Es deseable usar diferentes valores de QP para diferentes particiones para mejorar adicionalmente la calidad perceptiva del vídeo codificado.
La Figura 12 es un diagrama conceptual que ilustra un ejemplo de un primer nivel 150 de un árbol de múltiples tipos y un segundo nivel 160' del árbol de múltiples tipos. El primer nivel 150 puede denominarse también como un árbol de región, y el segundo nivel 160' puede denominarse como un árbol de predicción. El segundo nivel 160' corresponde al bloque 160 del primer nivel l5o. En particular, el primer nivel 150 se subdivide con un árbol cuádruple, y el segundo nivel 160' corresponde a una hoja de árbol de región que se divide adicionalmente en bloques más pequeños con un árbol binario y árbol triple de lado central. En este ejemplo, se subdivide un CTB en cuatro hojas 152, 154, 156 y 158 de árbol cuádruple, la segunda de las cuales (bloque i 54) se subdivide en cuatro hojas 160, 162, 164 y 166 de árbol cuádruple adicionales, dando como resultado el primer nivel 150 (que tiene siete nodos hoja de árbol de región en total). En el ejemplo de la Figura 12 , el bloque 160 representa un nodo hoja de árbol de región y se subdivide (de acuerdo con el segundo nivel 160') en un primer conjunto de triples 172, 174, 176 de lado central, el derecho de los cuales (176) también se subdivide en bloques 178, 184, 186 triples de lado central, el primero de los cuales (bloque 178) se subdivide usando un árbol binario (es decir, en hojas de árbol binario que corresponden a los bloques 180, 182). Por lo tanto, el segundo nivel 160' incluye seis nodos hoja en total. Estos seis nodos hoja pueden corresponder a unidades de codificación (CU), de acuerdo con las técnicas de esta divulgación. El codificador 20 de vídeo puede codificar, y el decodificador 30 de vídeo puede decodificar, datos de vídeo (por ejemplo, datos de predicción y de transformada) para cada una de las CU (por ejemplo, cada uno de los bloques 172, 174, 180, 182, 184 y 186).
En un ejemplo, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden estar configurados para subdividir CTB usando un árbol de múltiples tipos que tiene un árbol de región, los nodos hoja del cual se subdividen usando un árbol binario y/o un árbol triple de lado central. La Figura 12 ilustra un ejemplo, donde el árbol de región basado en árbol cuádruple está en la izquierda (dando como resultado el primer nivel 150) y el árbol de predicción basado en árbol binario/triple está en la derecha (dando como resultado el segundo nivel l 6o'). Las líneas discontinuas largas muestran la división de primera profundidad de una hoja de árbol de región de segundo nivel 160', con árbol triple de lado central horizontal, las líneas discontinuas cortas representan la división de segunda profundidad con árbol triple de lado central vertical y una línea discontinua de puntos para la división de tercera profundidad con árbol binario horizontal.
En un ejemplo, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden señalizar/determinar si la OBMC está en el nivel de una hoja de árbol de región. En el ejemplo de la Figura 12, el segundo nivel 160' representa una hoja de árbol de región, y los bloques internos 172, 174, 176, 178, 180, 182, 184 y 186 del segundo nivel 160' indican subdivisión por el árbol de predicción. Las líneas internas representan límites de CU para las CU de hojas de árbol de predicción, es decir, los bloques 172, 174, 180, 182, 184 y 186. Cuando se posibilita OBMC para esta hoja de árbol de región (es decir, el segundo nivel 160'), las líneas internas (es decir, las líneas discontinuas largas, discontinuas cortas y discontinuas de puntos) pueden considerarse las mismas que los límites de PU de HEVC, de modo que puede aplicarse OBMC de límite de PU en ambos lados de los límites entre los bloques 172, 174, 180, 182, 184 y i 86. En este caso, el proceso de OBMC puede considerare como un perfeccionamiento adicional o filtración después de la codificación/decodificación de la totalidad de la hoja de árbol de región.
En un ejemplo, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden aplicar una transformada solapada en el nivel o nivel de hoja de árbol de región. Como se muestra en el segundo nivel 160' de la Figura 12, una hoja de árbol de región contiene varias CU (es decir, los bloques 172, 174, 180, 182, 184 y 186). Cuando el codificador 2o de vídeo o el decodificador 30 de vídeo posibilitan transformadas solapadas para la hoja de árbol de región, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden aplicar una transformada grande con el mismo tamaño que la hoja de árbol de región al segundo nivel 160' (es decir, toda la hoja de árbol de región). El codificador 20 de vídeo o el decodificador 30 de vídeo pueden aplicar el árbol de transformada a la hoja de árbol de región.
En un ejemplo, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden aplicar un súper modo de salto/fusión en la hoja de nivel de árbol de región. Cuando se activa un súper modo de salto/unión de este tipo, el codificador 20 de vídeo o el decodificador 30 de vídeo codifican (es decir, codifican o decodifican) todas las CU dentro de la hoja de árbol de región, tal como los bloques 172, 174, 180, 182, 184 y 186 mostrados en el segundo nivel 160' de la Figura
12, usando el modo de salto/unión, de modo que el codificador 20 de vídeo no codifica y el decodlflcador 30 de vídeo no decodifica las banderas de salto/unión independientemente para cada CU (es decir, cada uno de los bloques 172, 174, 180, 182, 184 y 186).
En un ejemplo, el codificador 20 de vídeo y el decodificador 30 de vídeo aplican un QP de base en el nivel de la hoja de árbol de región. Cuando se activa codificación delta de QP, el codificador 20 de vídeo y el decodificador 30 de vídeo puede usar el mismo QP de base para codificar valores de QP delta para todas las Cu/bloques dentro de la hoja de árbol de región (es decir, cada uno de los bloques 172, 174, 180, 182, 184 y 186).
La Figura 13 es un diagrama de flujo que ilustra un método de ejemplo para codificar un bloque de árbol de codificación de acuerdo con técnicas de esta divulgación. Para los fines de ejemplo y explicación, se explica el método de la Figura 13 con respecto al codificador 20 de vídeo. Sin embargo, en otros ejemplos, pueden configurarse otras unidades para realizar las técnicas de la Figura 13.
En este ejemplo, inicialmente, la unidad 40 de selección de modo determina tamaños de bloques en un nivel de árbol de región para un bloque de árbol de codificación (CTB) (200). Por ejemplo, la unidad 40 de selección de modo puede ejecutar una diversidad de diferentes fases de codificación y determinar tamaños de los bloques en el nivel de árbol de región basándose en un análisis de tasa-distorsión. La unidad 40 de selección de modo puede a continuación enviar elementos de sintaxis de región-árbol a la unidad 56 de codificación por entropía para que se codifiquen (202), tal como banderas de división que indican cómo se subdividen los bloques que corresponden a nodos de región-árbol. Las banderas de división pueden indicar adicionalmente cuándo termina un ramal de árbol de región en un nodo hoja de árbol de región, que actúa como el nodo raíz para una partición-árbol. De acuerdo con las técnicas de esta divulgación, cada nodo no de hoja del árbol de región se divide en un número de nodos hijos que es al menos cuatro nodos hijos, tal como cuatro, cinco, seis, etc., nodos hijos.
Adicionalmente, la unidad 40 de selección de modo puede determinar si posibilitar diversas herramientas de codificación para el CTB, y enviar elementos de sintaxis a la unidad 56 de codificación por entropía para que se codifiquen, donde los elementos de sintaxis representan herramientas de codificación habilitadas. Estos elementos de sintaxis pueden incluirse en información de nivel de región-árbol, tal como nodos hoja de región-árbol. Los elementos de sintaxis pueden incluir, por ejemplo, compensación de movimiento de bloque solapado (OBMC) como se ha analizado anteriormente, transformadas solapadas, súper modo de salto, súper modo de unión, super modo de intra predicción, super modo de inter predicción, y/o súper modo de conversión ascendente de tasa de fotogramas (FRUC). En algunos ejemplos, la unidad 40 de selección de modo posibilita los súper modos (tales como, el súper modo de salto, súper modo de unión, super modo de intra predicción, super inter modo de predicción y/o súper modo de FRUC) cuando un número de CU incluidas en un nodo hoja de árbol de región es mayor que un umbral. El umbral puede predefinirse, o la unidad 56 de codificación por entropía puede codificar elementos de sintaxis que definen el umbral, por ejemplo, en un SPS, un PPS, un encabezado de corte o similares.
La unidad 40 de selección de modo puede determinar a continuación tamaños de bloques en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región (204). De nuevo, cada uno de los nodos hoja de árbol de región puede actuar también como un nodo raíz de un respectivo árbol de predicción. Debería entenderse que no todos los ramales del árbol de región son de necesariamente el mismo tamaño, y, por lo tanto, pueden iniciar los árboles de predicción de un CTB en diversas profundidades de árbol de región. La unidad 40 de selección de modo puede probar de nuevo diversas pasadas de codificación y usar un análisis de tasa-distorsión para determinar tamaños para bloques que corresponden al nivel de árbol de predicción (en concreto, seleccionando tamaños de bloque que producen las mejores características de tasa-distorsión probadas). La unidad 40 de selección de modo puede a continuación proporcionar elementos de sintaxis a la unidad 56 de codificación por entropía para que se codifiquen por entropía (206), tal como banderas de división para los árboles de predicción. De acuerdo con las técnicas de esta divulgación, cada nodo no de hoja del árbol de predicción puede dividirse en un número de nodos hijos que son al menos dos nodos hijos, tal como dos, tres, cuatro, etc. nodos hijos. Además, en algunos ejemplos, el codificador 20 de vídeo puede dividir nodos de árbol de predicción en cualquiera de dos nodos de árbol de predicción hijos o tres nodos de árbol de predicción hijos usando una subdivisión triple de lado central.
En algunos ejemplos, el codificador 20 de vídeo puede codificar ciertos elementos de sintaxis en cualquiera o ambos del nivel de árbol de región y el nivel de árbol de predicción. Por ejemplo, el codificador 20 de vídeo puede codificar parámetros de herramienta de filtración, tales como parámetros de desplazamiento adaptativo de muestra (SAO) y/o filtro de bucle adaptativo (ALF), en cualquiera o ambos del nivel de árbol de región y el nivel de árbol de predicción. Adicionalmente, el codificador 20 de vídeo puede codificar estos elementos de sintaxis en cualquier nodo del árbol de región y/o el árbol de predicción, no necesariamente en nodos hoja únicamente.
De acuerdo con las técnicas de esta divulgación, los nodos hoja de árbol de predicción corresponden a unidades de codificación (CU) que tienen datos de predicción y de transformada. Por lo tanto, después de subdividir los nodos de árbol de predicción en nodos hoja de árbol de predicción, el codificador 20 de vídeo puede codificar datos de predicción y de transformada para cada una de las CU (es decir, los nodos hoja de árbol de predicción). En particular, la unidad 40 de selección de modo puede determinar si predecir las CU usando intra predicción, inter predicción o modo de salto (208) y, a continuación, enviar información de sintaxis a la unidad 56 de codificación por entropía para codificar por
entropía la información (210 ) de predicción (por ejemplo, un intra modo, información de movimiento, tal como modo de unión o información de modo AmVP o similares).
La unidad 40 de selección de modo también proporciona un bloque previsto de una CU al sumador 50, que calcula un bloque residual para la correspondiente CU. De esta manera, el codificador 20 de vídeo determina la información residual para la correspondiente CU (212). La unidad 52 de procesamiento de transformada aplica una transformada al bloque residual para transformar los datos (214) residuales, y, a continuación, la unidad 54 de cuantificación cuantifica la información (216) residual transformada (es decir, los coeficientes de transformada) para producir coeficientes de transformada cuantificados (también denominados como información de transformada cuantificada). La unidad 56 de codificación por entropía a continuación codifica por entropía la información (218) de transformada cuantificada. La unidad 56 de codificación por entropía puede codificar por entropía adicionalmente otros elementos de sintaxis, tales como la información de parámetro de cuantificación (QP). De acuerdo con las técnicas de esta divulgación, en algunos ejemplos, cada QP para cada una de las CU de un CTB puede predecirse a partir de un QP de base para todo el CTB.
De esta manera, el método de la Figura 13 representa un ejemplo de un método de codificación de datos de vídeo, incluyendo el método determinar cómo han de dividirse los nodos de árbol de región en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación (CTB) de datos de vídeo en nodos de árbol de región hijos, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de los nodos no de hoja de árbol de región un primer número de nodos de árbol de región hijos, siendo el primer número al menos cuatro, codificar uno o más elementos de sintaxis en el nivel de árbol de región que representan al menos cómo se dividen los árboles de región en los nodos de árbol de región, determinar cómo se subdividen los nodos de árbol de predicción en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB para que se dividan en nodos de árbol de predicción hijos, teniendo cada uno de los árboles de predicción uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de los nodos no de hoja de árbol de predicción al menos dos nodos hijos de árbol de predicción, definiendo cada uno de los nodos hoja de predicción respectivas unidades de codificación (CU), codificar uno o más elementos de sintaxis en el nivel de árbol de predicción que representan al menos cómo se dividen los árboles de predicción en los nodos de árbol de predicción, y codificar datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las CU basándose al menos en parte en los elementos de sintaxis en el nivel de árbol de región y los elementos de sintaxis en el nivel de árbol de predicción.
La Figura 14 es un diagrama de flujo que ilustra un método de ejemplo para decodificar un bloque de árbol de codificación de acuerdo con técnicas de esta divulgación. Para los fines de ejemplo y explicación, se explica el método de la Figura 14 con respecto al decodificador 30 de vídeo. Sin embargo, en otros ejemplos, pueden configurarse otras unidades para realizar las técnicas de la Figura 14.
En este ejemplo, inicialmente, la unidad 70 de decodificación por entropía decodifica por entropía elementos de sintaxis de nivel de árbol de región un bloque de árbol de codificación (CTB) (220). El decodificador 30 de vídeo puede a continuación determinar tamaños de bloques en un nivel de árbol de región a partir de los elementos de sintaxis en el nivel (222) de árbol de región. Por ejemplo, los elementos de sintaxis pueden incluir banderas de división que indican cómo se subdividen los bloques que corresponden a nodos de región-árbol. Las banderas de división pueden indicar adicionalmente cuándo termina un ramal de árbol de región en un nodo hoja de árbol de región, que actúa como el nodo raíz para una partición-árbol. De acuerdo con las técnicas de esta divulgación, cada nodo no de hoja del árbol de región se divide en un número de nodos hijos que es al menos cuatro nodos hijos, tal como cuatro, cinco, seis, etc., nodos hijos.
Adicionalmente, la unidad 70 de decodificación por entropía puede decodificar elementos de sintaxis que representan si se posibilitan diversas herramientas de codificación para el CTB. Estos elementos de sintaxis pueden incluirse en la información de nivel de región-árbol. Los elementos de sintaxis pueden representar, por ejemplo, compensación de movimiento de bloque solapado (OBMC), transformadas solapadas, súper modo de salto, súper modo de unión, súper modo de intra predicción, súper modo de intra predicción y/o súper modo de conversión ascendente de tasa de fotogramas (FRUC), como se ha analizado anteriormente. En algunos ejemplos, el decodificador 30 de vídeo puede posibilitar súper modos (tales como el súper modo de salto, súper modo de unión, súper modo de intra predicción, súper inter modo de predicción y/o súper modo FRUC) únicamente cuando un número de CU incluidas en un nodo hoja de árbol de región es mayor que un umbral. El umbral puede predefinirse, o la unidad 70 de decodificación por entropía puede decodificar elementos de sintaxis que definen el umbral, por ejemplo, en un SPS, un PPS, un encabezado de corte o similares.
La unidad 70 de decodificación por entropía puede a continuación decodificar elementos de sintaxis de árbol de predicción para árboles de predicción que corresponden a nodos (224) hoja de región-árbol. El decodificador 30 de vídeo puede a continuación determinar tamaños de bloques en el nivel de árbol de predicción para cada uno de los nodos (226) hoja de árbol de región basándose en los elementos de sintaxis de nivel de árbol de predicción. De nuevo, cada uno de los nodos hoja de árbol de región puede actuar también como un nodo raíz de un respectivo árbol de
predicción. Por ejemplo, Ios elementos de sintaxis pueden incluir banderas de división para Ios árboles de predicción. De acuerdo con las técnicas de esta divulgación, cada nodo no de hoja del árbol de predicción puede dividirse en un número de nodos hijos que son al menos dos nodos hijos, tal como dos, tres, cuatro, etc. nodos hijos. Además, en algunos ejemplos, el decodificador 30 de vídeo puede dividir nodos de árbol de predicción en cualquiera de dos nodos de árbol de predicción hijos o tres nodos de árbol de predicción hijos usando una subdivisión triple de lado central, basándose en Ios elementos de sintaxis señalizados en Ios nodos de árbol de predicción.
En algunos ejemplos, el decodificador 30 de vídeo puede decodificar ciertos elementos de sintaxis en cualquiera o ambos del nivel de árbol de región y el nivel de árbol de predicción. Por ejemplo, el decodificador 30 de vídeo puede decodificar parámetros de herramienta de filtración, tales como parámetros de desplazamiento adaptativo de muestra (SAO) y/o filtro de bucle adaptativo (ALF), en cualquiera o ambos del nivel de árbol de región y el nivel de árbol de predicción. Adicionalmente, el decodificador 30 de vídeo puede decodificar estos elementos de sintaxis en cualquier nodo del árbol de región y/o el árbol de predicción, no necesariamente en únicamente nodos hoja.
De acuerdo con las técnicas de esta divulgación, Ios nodos hoja de árbol de predicción corresponden a unidades de codificación (CU) que tienen datos de predicción y de transformada. Por lo tanto, después de subdividir Ios nodos de árbol de predicción en nodos hoja de árbol de predicción, el decodificador 30 de vídeo puede decodificar datos de predicción y de transformada para cada una de las CU (es decir, Ios nodos hoja de árbol de predicción). En particular, la unidad 70 de decodificación por entropía puede decodificar información de sintaxis que representa información (228) de predicción, tal como información de sintaxis que indica si predecir las CU usando intra predicción, inter predicción o modo de salto. El decodificador 30 de vídeo puede a continuación determinar un modo de predicción para cada CU (230), por ejemplo, si cada CU se predice usando un intra modo, un inter modo (así como, información de movimiento, tal como información de modo de unión o de modo AMVP), o similares. La unidad 72 de compensación de movimiento o la unidad 74 de intra predicción usan la información de predicción para formar bloques previstos para cada una de las CU.
La unidad 70 de decodificación por entropía también decodifica por entropía la información (232) de transformada cuantificada. La unidad 76 de cuantificación inversa cuantifica a la inversa la información (234) de transformada cuantificada para reproducir coeficientes de transformada (también denominados como información de transformada). La unidad 78 de transformada inversa transforma a la inversa la información (236) de transformada para reproducir bloques residuales para las CU (238). El sumador 80 combina Ios bloques residuales y Ios bloques previstos para cada una de las respectivas CU (240) para reproducir las CU, y almacena las CU en la memoria 82 de imagen de referencia para su uso posterior como referencia y para emitir como datos de vídeo decodificados.
De esta manera, el método de la Figura 14 representa un ejemplo de un método de decodificación de datos de vídeo que incluye decodificar uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación (CTB) de datos de vídeo, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de Ios nodos no de hoja de árbol de región un primer número de nodos de árbol de región hijos, siendo el primer número al menos cuatro, determinar, usando Ios elementos de sintaxis en el nivel de árbol de región, cómo se dividen Ios nodos de árbol de región en Ios nodos de árbol de región hijos, decodificar uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de Ios nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB, teniendo cada uno de Ios árboles de predicción uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de Ios nodos no de hoja de árbol de predicción un segundo número de nodos de árbol de predicción hijos, siendo el segundo número al menos dos, definiendo cada uno de Ios nodos hoja de predicción respectivas unidades de codificación (CU), determinar, usando Ios elementos de sintaxis en el nivel de árbol de predicción, cómo se dividen Ios nodos de árbol de predicción en Ios nodos de árbol de predicción hijos, y decodificar datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las CU basándose al menos en parte en Ios elementos de sintaxis en el nivel de árbol de región y Ios elementos de sintaxis en el nivel de árbol de predicción.
Ha de reconocerse que, dependiendo del ejemplo, ciertos actos o eventos de cualquiera de las técnicas descritas en el presente documento pueden realizarse en una secuencia diferente, pueden añadirse, fusionarse o excluirse por completo (por ejemplo, no todos Ios actos o eventos descritos son necesarios para la puesta en práctica de las técnicas). Además, en ciertos ejemplos, Ios actos o eventos pueden realizare de manera concurrente, por ejemplo, a través de procesamiento de múltiples hilos, procesamiento de interrupción o múltiples procesadores en lugar de secuencialmente.
En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de Ios mismos. Si se implementan en software, las funciones pueden almacenarse en o transmitirse a través como una o más instrucciones o código en un medio legible por ordenador y ejecutarse por una unidad de procesamiento basada en hardware. Medio legible por ordenador puede incluir medio de almacenamiento legible por ordenador, que corresponde a un medio de almacenamiento tal como un medio de almacenamiento de datos o medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, medio legible por ordenador
generalmente puede corresponder a (1 ) medio de almacenamiento legible por ordenador tangible que es no transitorio o (2) un medio de comunicación tal como una señal u onda portadora. El medio de almacenamiento de datos puede ser cualquier medio disponible que pueda accederse por uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
A modo de ejemplo, y no como limitación, tal medio de almacenamiento legible por ordenador puede comprender RAM, ROM, EePROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda usarse para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y que puede accederse por un ordenador. También, cualquier conexión se denomina apropiadamente como un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, servidor u otra fuente remota usando un cable coaxial, cable de fibra óptica, par trenzado, línea digital de abonado (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, cable de fibra óptica, par trenzado, DSL o tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debería entenderse que medio de almacenamiento legible por ordenador y medio de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en su lugar, se refieren a medio de almacenamiento tangible no transitorio. Disco magnético y disco óptico, como se usan en este documento, incluyen disco compacto (CD), disco láser, disco óptico, disco versátil digital (Dv D), disco flexible y disco Blu-ray donde los discos magnéticos normalmente reproducen datos magnéticamente, mientras que los discos ópticos reproducen datos ópticamente con láseres. Combinaciones de lo anterior deberían incluirse también dentro del alcance de medio legible por ordenador.
Las instrucciones pueden ejecutarse por uno o más procesadores, tal como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), campos de matrices de puertas programables (FPGA) u otra circuitería integrada o de lógica discreta equivalente. Por consiguiente, el término "procesador", como se usa en el presente documento puede hacer referencia a cualquiera de la estructura anterior o cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de hardware especializado y/o módulos de software configurados para codificar y decodificar o incorporarse en un códec combinado. También, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación pueden implementarse en una amplia diversidad de dispositivos o aparatos, que incluye un microteléfono inalámbrico, un circuito integrado (Cl) o un conjunto de Cl (por ejemplo, un conjunto de chips). Se describen diversos componentes, módulos o unidades en esta divulgación para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización por diferentes unidades de hardware. En su lugar, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse mediante una recopilación de unidades de hardware inter operativas, que incluyen uno o más procesadores, como se ha descrito anteriormente, en conjunto con software y/o firmware adecuado.
Se han descrito diversos ejemplos. La invención se establece en las siguientes reivindicaciones.
Claims (18)
1. Un método de decodificación de datos de vídeo, comprendiendo el método:
decodificar (220) uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación, CTB, de datos de vídeo, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de los nodos no de hoja de árbol de región cuatro nodos de árbol de región hijos;
determinar, usando los elementos de sintaxis en el nivel de árbol de región, cómo se dividen los nodos de árbol de región en los nodos de árbol de región hijos;
decodificar (224) uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB, teniendo cada uno de los árboles de predicción nodos raíz que corresponden a uno o más de los nodos hoja de árbol de región y uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de los nodos no de hoja de árbol de predicción cualquiera de dos nodos de árbol de predicción hijos o tres nodos de árbol de predicción hijos obtenidos usando una subdivisión triple de lado central, teniendo al menos un nodo no de hoja de árbol de predicción tres nodos de árbol de predicción hijos obtenidos usando una subdivisión triple de lado central, definiendo cada uno de los nodos hoja de árbol de predicción respectivas unidades de codificación, CU;
determinar, usando los elementos de sintaxis en el nivel de árbol de predicción, cómo se dividen los nodos de árbol de predicción en los nodos de árbol de predicción hijos;
y
decodificar (228) datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las CU basándose al menos en parte en los elementos de sintaxis en el nivel de árbol de región y los elementos de sintaxis en el nivel de árbol de predicción, en donde los datos de predicción indican un modo de predicción para formar un bloque previsto para una correspondiente de las CU, y en donde los datos de transformada incluyen coeficientes de transformada que representan datos residuales transformados para una correspondiente de las CU.
2. El método de la reivindicación 1, en donde decodificar los elementos de sintaxis en el nivel de árbol de región y decodificar los elementos de sintaxis en el nivel de árbol de predicción comprende decodificar uno más tipos de árbol de división no adicional para al menos uno del nivel de árbol de región o el nivel de árbol de predicción, en donde un tipo de árbol de división no adicional significa que no se permite división adicional.
3. El método de la reivindicación 1, que comprende adicionalmente decodificar datos que representan una profundidad máxima de árbol de región para el nivel de árbol de región.
4. El método de la reivindicación 3, que comprende adicionalmente decodificar datos que representan una profundidad máxima de árbol de predicción para el nivel de árbol de predicción; y preferentemente en donde una suma de la profundidad máxima de árbol de región y la profundidad máxima de árbol de predicción es menor que un valor máximo de profundidad total.
5. El método de la reivindicación 3, en donde decodificar los datos que representan la profundidad máxima de árbol de región comprende decodificar los datos que representan la profundidad máxima de árbol de región a partir de uno o más de un conjunto de parámetros de secuencia, SPS, un conjunto de parámetros de imagen, PPS, o un encabezado de corte.
6. El método de la reivindicación 1, que comprende adicionalmente decodificar un elemento de sintaxis que representa conjuntamente tanto una profundidad máxima de árbol de región para el nivel de árbol de región como una profundidad máxima de árbol de predicción para el nivel de árbol de predicción; y preferiblemente
en donde decodificar el elemento de sintaxis que representa conjuntamente la profundidad máxima de árbol de región y la profundidad máxima de árbol de predicción comprende decodificar el elemento de sintaxis a partir de uno o más de un conjunto de parámetros de secuencia, SPS, un conjunto de parámetros de imagen, PPS, o un encabezado de corte.
7. El método de la reivindicación 1, que comprende adicionalmente inferir que al menos un nodo, que comprende al menos uno de los nodos de árbol de región o al menos uno de los nodos de árbol de predicción, se divide sin decodificar datos de división para el nodo; y preferiblemente
en donde inferir comprende inferir que el al menos un nodo se divide basándose en un bloque al que corresponde el nodo que recorre al menos un límite de imagen, un límite de corte o un límite de pieza.
8. El método de la reivindicación 1, que comprende adicionalmente decodificar datos que indican si la profundidad de árbol de región y la profundidad de árbol de predicción solapan entre sí.
9. El método de la reivindicación 1, en donde los datos de vídeo para cada una de las CU comprenden uno o más de una bandera de salto, un índice de unión, un elemento de sintaxis que representa si se predice la CU usando
información de predicción de Ínter modo o intra modo, información de predicción de intra modo, información de movimiento, información de transformada, información residual o información de cuantificación.
10. El método de la reivindicación 1, en donde decodificar el uno o más elementos de sintaxis en el nivel de árbol de región comprende decodificar uno o más elementos de sintaxis que representan información de división para los árboles de predicción antes de decodificar los datos de vídeo para cada una de las CU; y preferiblemente en donde el método comprende adicionalmente determinar el número de las CU usando la información de división antes de decodificar los datos de vídeo para cada una de las CU.
11. El método de la reivindicación 1, en donde decodificar los elementos de sintaxis en el nivel de árbol de región comprende decodificar uno o más elementos de sintaxis que representan una o más herramientas de codificación habilitadas en el nivel de árbol de región; y preferiblemente
en donde el método comprende adicionalmente aplicar las herramientas de codificación a través de límites de las CU cuando los límites de las CU están dentro de una región común como se indica por uno de los nodos hoja de árbol de región del árbol de región.
12. El método de la reivindicación 11, en donde (i) decodificar los datos que representan una o más de las herramientas de codificación habilitadas comprende decodificar información de modo de compensación de movimiento de bloque solapado, OBMC, en cada uno de los nodos hoja de árbol de región que representa si se posibilita OBMC para los bloques de los datos de vídeo que corresponden a uno de los nodos hoja de árbol de región; o
en donde (íí) decodificar los datos que representan una o más de las herramientas de codificación habilitadas comprende decodificar información de transformadas solapadas en cada uno de los nodos hoja de árbol de región que representa si se posibilitan las transformadas solapadas para los bloques de los datos de vídeo que corresponden a los nodos hoja de árbol de región, en donde las transformadas solapadas comprenden una herramienta de codificación para la que se permite que un bloque de transformada solape un límite entre dos bloques de predicción de una región que corresponde a los nodos hoja de árbol de región; o
en donde (iii) decodificar los datos que representan una o más de las herramientas de codificación habilitadas comprende decodificar datos en uno o más de los nodos hoja de árbol de región que indican si se codifican todas las CU dentro de una región que corresponde al nodo hoja de árbol de región usando uno de modo de salto, modo de unión, intra modo, Ínter modo o modo de conversión ascendente de tasa de fotogramas (FRUC), y en donde cuando se codifican todas las CU dentro de una de las regiones usando un modo común, el método comprende adicionalmente evitar la decodificación de información de modo para las CU en el nivel de CU.
13. El método de la reivindicación 1, en donde (i) decodificar los elementos de sintaxis en el nivel de árbol de región comprende decodificar al menos uno de parámetros de desplazamiento adaptativo de muestra, SAO, o parámetros de filtro de bucle adaptativo, ALF; o
en donde (íí) el método comprende adicionalmente decodificar uno o más elementos de sintaxis de árbol triple de lado central en al menos uno del nivel de árbol de región o el nivel de árbol de predicción; o
en donde (iii) el método comprende adicionalmente calcular respectivos parámetros de cuantificación, QP, para cada una de las CU, en donde calcular los respectivos QP comprende determinar QP de base para cada uno de los nodos hoja de árbol de región y calcular los respectivos QP basándose en los QP de base de los correspondientes nodos hoja de árbol de región de las CU.
14. El método de la reivindicación 1, que comprende adicionalmente codificar los datos de vídeo antes de decodificar los datos de vídeo.
15. Un dispositivo (14) para decodificar datos de vídeo, comprendiendo el dispositivo:
una memoria (64) configurada para almacenar datos de vídeo; y
un procesador implementado en circuitería y configurado para:
decodificar uno o más elementos de sintaxis en un nivel de árbol de región de un árbol de región de una estructura de datos de árbol para un bloque de árbol de codificación, CTB, de datos de vídeo, teniendo el árbol de región uno o más nodos de árbol de región que incluyen cero o más nodos no de hoja de árbol de región y uno o más nodos hoja de árbol de región, teniendo cada uno de los nodos no de hoja de árbol de región cuatro nodos de árbol de región; determinar, usando los elementos de sintaxis en el nivel de árbol de región, cómo se dividen los nodos de árbol de región en los nodos de árbol de región hijos; decodificar uno o más elementos de sintaxis en un nivel de árbol de predicción para cada uno de los nodos hoja de árbol de región de uno o más árboles de predicción de la estructura de datos de árbol para el CTB, teniendo cada uno de los árboles de predicción nodos raíz que corresponden a uno o más de los nodos hoja de árbol de región y uno o más nodos de árbol de predicción que incluyen cero o más nodos no de hoja de árbol de predicción y uno o más nodos hoja de árbol de predicción, teniendo cada uno de los nodos no de hoja de árbol de predicción cualquiera de dos nodos de árbol de predicción hijos o tres nodos de árbol de predicción hijos obtenidos usando una subdivisión triple de lado central, teniendo al menos un nodo no de hoja de árbol de predicción
tres nodos de árbol de predicción hijos obtenidos usando una subdivisión triple de lado central, definiendo cada uno de los nodos hoja de árbol de predicción respectivas unidades de codificación, CU;
determinar, usando los elementos de sintaxis en el nivel de árbol de predicción, cómo se dividen los nodos de árbol de predicción en los nodos de árbol de predicción hijos; y
decodificar datos de vídeo, que incluyen datos de predicción y datos de transformada, para cada una de las CU basándose al menos en parte en los elementos de sintaxis en el nivel de árbol de región y los elementos de sintaxis en el nivel de árbol de predicción, en donde los datos de predicción indican un modo de predicción para formar un bloque previsto para una correspondiente de las CU, y en donde los datos de transformada incluyen coeficientes de transformada que representan datos residuales transformados para una correspondiente de las CU.
16. El dispositivo de la reivindicación 15, que comprende adicionalmente al menos uno de:
una pantalla configurada para presentar visualmente los datos de vídeo decodificados; o
una cámara configurada para capturar los datos de vídeo.
17. El dispositivo de la reivindicación 15, en donde el dispositivo comprende uno o más de una cámara, un ordenador, un dispositivo móvil, un dispositivo receptor de difusión o un decodificador de salón.
18. Un medio de almacenamiento legible por ordenador no transitorio que tiene almacenado en el mismo instrucciones que, cuando se ejecutan, hacen que un procesador lleve a cabo las etapas de método de una cualquiera de las reivindicaciones 1 a 14.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662311248P | 2016-03-21 | 2016-03-21 | |
US201662401016P | 2016-09-28 | 2016-09-28 | |
US15/463,398 US11223852B2 (en) | 2016-03-21 | 2017-03-20 | Coding video data using a two-level multi-type-tree framework |
PCT/US2017/023351 WO2017165375A1 (en) | 2016-03-21 | 2017-03-21 | Decoding video data using a two-level multi-type-tree framework |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2901503T3 true ES2901503T3 (es) | 2022-03-22 |
Family
ID=59847996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES17716021T Active ES2901503T3 (es) | 2016-03-21 | 2017-03-21 | Decodificación de datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles |
Country Status (20)
Country | Link |
---|---|
US (1) | US11223852B2 (es) |
EP (1) | EP3434018B1 (es) |
JP (1) | JP6908618B2 (es) |
KR (1) | KR102465214B1 (es) |
CN (1) | CN108781293B9 (es) |
AU (1) | AU2017238068B2 (es) |
BR (1) | BR112018068927A2 (es) |
CA (1) | CA3014785A1 (es) |
CL (1) | CL2018002664A1 (es) |
CO (1) | CO2018009880A2 (es) |
ES (1) | ES2901503T3 (es) |
HK (1) | HK1256749A1 (es) |
HU (1) | HUE057252T2 (es) |
MX (1) | MX2018011376A (es) |
MY (1) | MY199026A (es) |
PH (1) | PH12018501701A1 (es) |
RU (1) | RU2746935C2 (es) |
SA (1) | SA518392315B1 (es) |
SG (1) | SG11201806737RA (es) |
WO (1) | WO2017165375A1 (es) |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3046321B1 (fr) * | 2015-12-29 | 2018-01-26 | B<>Com | Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes |
US10212444B2 (en) | 2016-01-15 | 2019-02-19 | Qualcomm Incorporated | Multi-type-tree framework for video coding |
MX2018014493A (es) * | 2016-05-25 | 2019-08-12 | Arris Entpr Llc | Particionamiento binario, ternario, cuaternario para jvet. |
US10880548B2 (en) * | 2016-06-01 | 2020-12-29 | Samsung Electronics Co., Ltd. | Methods and apparatuses for encoding and decoding video according to coding order |
CN109479131B (zh) * | 2016-06-24 | 2023-09-01 | 世宗大学校产学协力团 | 视频信号处理方法及装置 |
US10609423B2 (en) * | 2016-09-07 | 2020-03-31 | Qualcomm Incorporated | Tree-type coding for video coding |
EP4432670A3 (en) | 2016-10-04 | 2024-11-20 | B1 Institute of Image Technology, Inc. | Image data encoding/decoding method and apparatus |
KR20200062365A (ko) | 2016-10-04 | 2020-06-03 | 김기백 | 영상 데이터 부호화/복호화 방법 및 장치 |
US20190238888A1 (en) * | 2017-07-17 | 2019-08-01 | Ki Baek Kim | Image data encoding/decoding method and apparatus |
US12035049B2 (en) | 2016-10-06 | 2024-07-09 | B1 Institute Of Image Technology, Inc. | Image data encoding/decoding method and apparatus |
JPWO2018092868A1 (ja) | 2016-11-21 | 2019-10-17 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 符号化装置、復号装置、符号化方法及び復号方法 |
EP3544300B1 (en) | 2016-11-21 | 2021-10-13 | Panasonic Intellectual Property Corporation of America | Devices and methods for image coding and decoding using a block size dependent split ratio |
EP3562152A4 (en) * | 2016-12-26 | 2020-01-15 | Nec Corporation | IMAGE CODING METHOD, IMAGE DECODING METHOD, IMAGE CODING DEVICE, IMAGE DECODING DEVICE AND PROGRAM |
CN108781287A (zh) * | 2016-12-26 | 2018-11-09 | 日本电气株式会社 | 视频编码方法、视频解码方法、视频编码设备、视频解码设备以及程序 |
US10848788B2 (en) | 2017-01-06 | 2020-11-24 | Qualcomm Incorporated | Multi-type-tree framework for video coding |
US10542280B2 (en) | 2017-01-09 | 2020-01-21 | QUALCOMM Incorpated | Encoding optimization with illumination compensation and integer motion vector restriction |
US10992934B2 (en) | 2017-07-05 | 2021-04-27 | Arris Enterprises Llc | Post-filtering for weighted angular prediction |
US11057629B2 (en) | 2017-07-19 | 2021-07-06 | Samsung Electronics Co., Ltd. | Encoding method and apparatus therefor, decoding method and apparatus therefor |
WO2019045391A1 (ko) * | 2017-08-29 | 2019-03-07 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
CN116489353A (zh) | 2017-09-28 | 2023-07-25 | Lg 电子株式会社 | 图像编译系统中根据块分离结构的图像解码方法和设备 |
EP3682639A1 (en) * | 2017-10-02 | 2020-07-22 | ARRIS Enterprises LLC | System and method for reducing blocking artifacts and providing improved coding efficiency |
WO2019093523A1 (ja) * | 2017-11-13 | 2019-05-16 | シャープ株式会社 | 動画像符号化装置および動画像復号装置 |
KR20190067732A (ko) * | 2017-12-07 | 2019-06-17 | 한국전자통신연구원 | 채널들 간의 선택적인 정보 공유를 사용하는 부호화 및 복호화를 위한 방법 및 장치 |
KR102618692B1 (ko) * | 2018-06-15 | 2024-01-02 | 삼성전자주식회사 | 노이즈 또는 디서의 영향을 감소시키기 위한 디스플레이 구동 회로 및 방법 |
US10904529B2 (en) | 2018-01-19 | 2021-01-26 | Qualcomm Incorporated | Quantization group for video coding |
US10652571B2 (en) | 2018-01-25 | 2020-05-12 | Qualcomm Incorporated | Advanced motion vector prediction speedups for video coding |
US20190238845A1 (en) * | 2018-01-26 | 2019-08-01 | Qualcomm Incorporated | Adaptive loop filtering on deblocking filter results in video coding |
US20190246122A1 (en) | 2018-02-08 | 2019-08-08 | Qualcomm Incorporated | Palette coding for video coding |
WO2019169339A1 (en) * | 2018-03-01 | 2019-09-06 | Arris Enterprises Llc | System and method of motion information storage for video coding and signaling |
US10735730B2 (en) * | 2018-03-07 | 2020-08-04 | Tencent America LLC | Flexible tree structure |
WO2019190202A1 (ko) * | 2018-03-27 | 2019-10-03 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
US11470359B2 (en) * | 2018-03-30 | 2022-10-11 | Sharp Kabushiki Kaisha | Systems and methods for partitioning video blocks at a boundary of a picture for video coding |
WO2019199045A1 (ko) * | 2018-04-11 | 2019-10-17 | 엘지전자 주식회사 | 제한된 참조 영역이 설정된 인터 예측을 이용한 영상 코딩 방법 및 그 장치 |
WO2019204234A1 (en) * | 2018-04-15 | 2019-10-24 | Arris Enterprises Llc | Unequal weight planar motion vector derivation |
US10609402B2 (en) | 2018-05-02 | 2020-03-31 | Tencent America LLC | Method and apparatus for prediction and transform for small blocks |
US10462486B1 (en) * | 2018-05-07 | 2019-10-29 | Tencent America, Llc | Fast method for implementing discrete sine transform type VII (DST 7) |
SG11202010880RA (en) * | 2018-05-30 | 2020-11-27 | Huawei Tech Co Ltd | Multi-type tree depth extension for picture boundary handling |
US10645396B2 (en) | 2018-06-04 | 2020-05-05 | Tencent America LLC | Method and apparatus for implicit transform splitting |
WO2019234609A1 (en) | 2018-06-05 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between ibc and bio |
WO2019234605A1 (en) | 2018-06-05 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Extended quad-tree with asymmetric sub-blocks and different tree for chroma |
TWI750483B (zh) | 2018-06-21 | 2021-12-21 | 大陸商北京字節跳動網絡技術有限公司 | 成分依賴的子區塊分割 |
WO2019244117A1 (en) | 2018-06-21 | 2019-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Unified constrains for the merge affine mode and the non-merge affine mode |
US10542260B1 (en) | 2018-07-02 | 2020-01-21 | Tencent America LLC | Method and apparatus for video coding |
US10609403B2 (en) * | 2018-07-09 | 2020-03-31 | Tencent America LLC | Method and apparatus for block partition with non-uniform quad split |
US10743029B2 (en) | 2018-07-30 | 2020-08-11 | Tencent America LLC | Constraints on coding unit partition |
WO2020065518A1 (en) | 2018-09-24 | 2020-04-02 | Beijing Bytedance Network Technology Co., Ltd. | Bi-prediction with weights in video coding and decoding |
CN112997480B (zh) | 2018-11-10 | 2023-08-22 | 北京字节跳动网络技术有限公司 | 成对平均候选计算中的取整 |
EP3864851B1 (en) * | 2018-11-12 | 2023-09-27 | Huawei Technologies Co., Ltd. | Video encoder, video decoder and method |
WO2020114508A1 (zh) * | 2018-12-06 | 2020-06-11 | 华为技术有限公司 | 视频编解码方法及装置 |
KR20240010542A (ko) * | 2018-12-17 | 2024-01-23 | 삼성전자주식회사 | 예측 모드를 시그널링하는 비디오 신호 처리 방법 및 장치 |
EP3907988A4 (en) | 2019-01-08 | 2022-06-29 | Huawei Technologies Co., Ltd. | Image prediction method, device, apparatus and system and storage medium |
EP3941046A4 (en) * | 2019-03-14 | 2022-12-21 | LG Electronics Inc. | IMAGE CODING/DECODING METHOD AND APPARATUS FOR PERFORMING INTRA PREDICTION, AND BITSTREAM TRANSMISSION METHOD |
SG11202111530YA (en) | 2019-04-24 | 2021-11-29 | Bytedance Inc | Constraints on quantized residual differential pulse code modulation representation of coded video |
KR102707777B1 (ko) | 2019-05-01 | 2024-09-20 | 바이트댄스 아이엔씨 | 양자화된 잔차 차동 펄스 코드 변조 코딩을 사용하는 인트라 코딩된 비디오 |
CN117615130A (zh) | 2019-05-02 | 2024-02-27 | 字节跳动有限公司 | 基于编解码树结构类型的编解码模式 |
WO2020223612A1 (en) | 2019-05-02 | 2020-11-05 | Bytedance Inc. | Signaling in transform skip mode |
JP2022543796A (ja) * | 2019-08-06 | 2022-10-14 | 北京字節跳動網絡技術有限公司 | カラーフォーマットに基づいたサイズ制限 |
BR112022003732A2 (pt) | 2019-09-02 | 2022-10-11 | Beijing Bytedance Network Tech Co Ltd | Método e aparelho para processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios |
MX2022003122A (es) | 2019-09-21 | 2022-04-06 | Beijing Bytedance Network Tech Co Ltd | Modo intra basado para croma de restriccion de tama?o. |
JP7469904B2 (ja) * | 2020-02-21 | 2024-04-17 | シャープ株式会社 | 画像復号装置、画像符号化装置、画像復号方法及び画像符号化方法 |
WO2021201384A1 (ko) * | 2020-04-03 | 2021-10-07 | 엘지전자 주식회사 | 포인트 클라우드 데이터 처리 장치 및 방법 |
US11729427B2 (en) * | 2020-09-17 | 2023-08-15 | Lemon Inc. | Chroma format and bit depth indication in coded video |
EP4349017A1 (en) * | 2021-05-24 | 2024-04-10 | Beijing Dajia Internet Information Technology Co., Ltd. | Methods and devices for overlapped block motion compensation for inter prediction |
CN117643056A (zh) * | 2021-06-30 | 2024-03-01 | 抖音视界有限公司 | 视频编解码中的递归预测单元 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100215101A1 (en) | 2007-04-09 | 2010-08-26 | Yong Joon Jeon | Method and an apparatus for processing a video signal |
KR101566564B1 (ko) | 2007-10-16 | 2015-11-05 | 톰슨 라이센싱 | 기하학적으로 분할된 수퍼 블록들의 비디오 인코딩 및 디코딩 방법 및 장치 |
FR2926694B1 (fr) | 2008-01-18 | 2010-04-16 | Sagem Comm | Decodeur de donnees video et procede de decodage de donnees video |
KR101487686B1 (ko) | 2009-08-14 | 2015-01-30 | 삼성전자주식회사 | 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치 |
JP5672678B2 (ja) | 2009-08-21 | 2015-02-18 | Tdk株式会社 | 電子部品及びその製造方法 |
MY189368A (en) | 2009-10-20 | 2022-02-08 | Sharp Kk | Moving image decoding device, moving image decoding method, moving image coding device, and moving image coding method |
KR101452713B1 (ko) * | 2009-10-30 | 2014-10-21 | 삼성전자주식회사 | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 |
KR101457396B1 (ko) | 2010-01-14 | 2014-11-03 | 삼성전자주식회사 | 디블로킹 필터링을 이용한 비디오 부호화 방법과 그 장치, 및 디블로킹 필터링을 이용한 비디오 복호화 방법 및 그 장치 |
MY165170A (en) | 2010-04-13 | 2018-02-28 | Samsung Electronics Co Ltd | Video encoding method and video encoding apparatus and video decoding method and video decoding apparatus, which perform deblocking filtering based on tree-structure encoding units |
CN106231333B (zh) | 2010-04-13 | 2020-06-19 | Ge视频压缩有限责任公司 | 解码器、解码方法、编码器以及编码方法 |
RS58137B1 (sr) | 2010-08-17 | 2019-02-28 | Samsung Electronics Co Ltd | Postupak dekodiranja video zapisa upotrebom jedinice za transformaciju promenljive strukture stabla |
US20120170648A1 (en) * | 2011-01-05 | 2012-07-05 | Qualcomm Incorporated | Frame splitting in video coding |
US9071851B2 (en) | 2011-01-10 | 2015-06-30 | Qualcomm Incorporated | Adaptively performing smoothing operations |
US8548057B2 (en) * | 2011-01-25 | 2013-10-01 | Microsoft Corporation | Video coding redundancy reduction |
KR20120090740A (ko) | 2011-02-07 | 2012-08-17 | (주)휴맥스 | 정밀한 단위의 필터 선택을 적용한 영상 부호화/복호화 장치 및 방법 |
AU2012274780B2 (en) * | 2011-06-24 | 2016-03-31 | Sun Patent Trust | Decoding method, coding method, decoding apparatus, coding apparatus, and coding and decoding apparatus |
US9883203B2 (en) | 2011-11-18 | 2018-01-30 | Qualcomm Incorporated | Adaptive overlapped block motion compensation |
US20130188719A1 (en) | 2012-01-20 | 2013-07-25 | Qualcomm Incorporated | Motion prediction in svc using motion vector for intra-coded block |
US9462275B2 (en) | 2012-01-30 | 2016-10-04 | Qualcomm Incorporated | Residual quad tree (RQT) coding for video coding |
CN102724508A (zh) * | 2012-06-07 | 2012-10-10 | 西安电子科技大学 | Jpeg2000的分辨率自适应节点树编码方法 |
US9973758B2 (en) | 2013-01-30 | 2018-05-15 | Intel Corporation | Content adaptive entropy coding for next generation video |
CN104065973B (zh) * | 2013-03-20 | 2017-11-17 | 华为技术有限公司 | 一种高性能视频编码搜索的方法及装置 |
GB2513111A (en) | 2013-04-08 | 2014-10-22 | Sony Corp | Data encoding and decoding |
US9906813B2 (en) | 2013-10-08 | 2018-02-27 | Hfi Innovation Inc. | Method of view synthesis prediction in 3D video coding |
US10687079B2 (en) | 2014-03-13 | 2020-06-16 | Qualcomm Incorporated | Constrained depth intra mode coding for 3D video coding |
US20170118486A1 (en) | 2014-06-11 | 2017-04-27 | Lg Electronics Inc. | Method And Apparatus For Encoding And Decoding Video Signal Using Embedded Block Partitioning |
US20160081020A1 (en) | 2014-09-16 | 2016-03-17 | Telefonaktiebolaget L M Ericsson (Publ) | Drx cycle configuration in dual connectivity |
FR3029333A1 (fr) | 2014-11-27 | 2016-06-03 | Orange | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
WO2016090568A1 (en) * | 2014-12-10 | 2016-06-16 | Mediatek Singapore Pte. Ltd. | Binary tree block partitioning structure |
US10382795B2 (en) * | 2014-12-10 | 2019-08-13 | Mediatek Singapore Pte. Ltd. | Method of video coding using binary tree block partitioning |
WO2016154963A1 (en) | 2015-04-01 | 2016-10-06 | Mediatek Inc. | Methods for chroma coding in video codec |
WO2017008263A1 (en) * | 2015-07-15 | 2017-01-19 | Mediatek Singapore Pte. Ltd. | Conditional binary tree block partitioning structure |
US20170150176A1 (en) | 2015-11-25 | 2017-05-25 | Qualcomm Incorporated | Linear-model prediction with non-square prediction units in video coding |
US10863207B2 (en) * | 2015-11-27 | 2020-12-08 | Mediatek Inc. | Method and apparatus of entropy coding and context modelling for video and image coding |
AU2015261734A1 (en) * | 2015-11-30 | 2017-06-15 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding video data according to local luminance intensity |
US10212444B2 (en) * | 2016-01-15 | 2019-02-19 | Qualcomm Incorporated | Multi-type-tree framework for video coding |
-
2017
- 2017-03-20 US US15/463,398 patent/US11223852B2/en active Active
- 2017-03-21 RU RU2018133028A patent/RU2746935C2/ru active
- 2017-03-21 WO PCT/US2017/023351 patent/WO2017165375A1/en active Application Filing
- 2017-03-21 EP EP17716021.5A patent/EP3434018B1/en active Active
- 2017-03-21 AU AU2017238068A patent/AU2017238068B2/en active Active
- 2017-03-21 MX MX2018011376A patent/MX2018011376A/es unknown
- 2017-03-21 CN CN201780017878.8A patent/CN108781293B9/zh active Active
- 2017-03-21 KR KR1020187027074A patent/KR102465214B1/ko active IP Right Grant
- 2017-03-21 HU HUE17716021A patent/HUE057252T2/hu unknown
- 2017-03-21 ES ES17716021T patent/ES2901503T3/es active Active
- 2017-03-21 CA CA3014785A patent/CA3014785A1/en active Pending
- 2017-03-21 MY MYPI2018702776A patent/MY199026A/en unknown
- 2017-03-21 SG SG11201806737RA patent/SG11201806737RA/en unknown
- 2017-03-21 JP JP2018549271A patent/JP6908618B2/ja active Active
- 2017-03-21 BR BR112018068927A patent/BR112018068927A2/pt unknown
-
2018
- 2018-08-10 PH PH12018501701A patent/PH12018501701A1/en unknown
- 2018-08-30 SA SA518392315A patent/SA518392315B1/ar unknown
- 2018-09-19 CO CONC2018/0009880A patent/CO2018009880A2/es unknown
- 2018-09-20 CL CL2018002664A patent/CL2018002664A1/es unknown
- 2018-12-11 HK HK18115829.5A patent/HK1256749A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP3434018A1 (en) | 2019-01-30 |
WO2017165375A1 (en) | 2017-09-28 |
PH12018501701A1 (en) | 2019-06-10 |
HUE057252T2 (hu) | 2022-04-28 |
CN108781293A (zh) | 2018-11-09 |
MX2018011376A (es) | 2019-02-13 |
JP2019512963A (ja) | 2019-05-16 |
MY199026A (en) | 2023-10-10 |
EP3434018B1 (en) | 2021-11-10 |
KR20180122638A (ko) | 2018-11-13 |
CA3014785A1 (en) | 2017-09-28 |
CO2018009880A2 (es) | 2018-09-28 |
NZ745288A (en) | 2024-08-30 |
RU2746935C2 (ru) | 2021-04-22 |
JP6908618B2 (ja) | 2021-07-28 |
AU2017238068B2 (en) | 2022-04-07 |
SG11201806737RA (en) | 2018-10-30 |
KR102465214B1 (ko) | 2022-11-10 |
RU2018133028A (ru) | 2020-04-22 |
US20170272782A1 (en) | 2017-09-21 |
AU2017238068A1 (en) | 2018-08-30 |
US11223852B2 (en) | 2022-01-11 |
CN108781293B9 (zh) | 2023-10-13 |
CL2018002664A1 (es) | 2019-01-25 |
HK1256749A1 (zh) | 2019-10-04 |
RU2018133028A3 (es) | 2020-07-14 |
BR112018068927A2 (pt) | 2019-01-22 |
CN108781293B (zh) | 2022-05-27 |
SA518392315B1 (ar) | 2023-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2901503T3 (es) | Decodificación de datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles | |
ES2884375T3 (es) | Intra predicción de croma de modelo lineal para codificación de vídeo | |
KR102292788B1 (ko) | 비디오 코딩을 위한 다중-유형-트리 프레임워크 | |
AU2017207452B2 (en) | Multi-type-tree framework for video coding | |
ES2867624T3 (es) | Extracción de subflujos de bits de MCTS para codificación de vídeo | |
EP3357247B1 (en) | Improved video intra-prediction using position-dependent prediction combination for video coding | |
AU2016271140B2 (en) | Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design | |
ES2975180T3 (es) | Modificación de las profundidades de bits en la codificación de transformación de espacio de color | |
ES2884723T3 (es) | Señalización de regiones de interés y actualización de decodificación gradual en la codificación de video | |
ES2973247T3 (es) | Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo | |
ES2899664T3 (es) | Construcción de listas de imágenes de referencia para codificación de vídeo multivistas o 3DV | |
US20130163664A1 (en) | Unified partition mode table for intra-mode coding | |
WO2017083710A1 (en) | Coding sign information of video data | |
ES2886344T3 (es) | Predicción residual generalizada para codificación de vídeo escalable y codificación de vídeo 3D | |
EP3158743A1 (en) | Cross-component prediction in video coding | |
ES2842082T3 (es) | Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa | |
CA2922410A1 (en) | Sub-prediction unit (pu) based temporal motion vector prediction in hevc and sub-pu design in 3d-hevc | |
ES2856099T3 (es) | Señalización mejorada de identificadores de capa para puntos de operación de un codificador de vídeo | |
KR20140130466A (ko) | B 슬라이스에서의 예측 유닛의 단방향성 인터 예측으로의 제한 | |
KR101747058B1 (ko) | 서브 pu 레벨 진보된 레지듀얼 예측 |