ES2650795T3 - Codificación de indicadores de bloque codificado - Google Patents
Codificación de indicadores de bloque codificado Download PDFInfo
- Publication number
- ES2650795T3 ES2650795T3 ES13714458.0T ES13714458T ES2650795T3 ES 2650795 T3 ES2650795 T3 ES 2650795T3 ES 13714458 T ES13714458 T ES 13714458T ES 2650795 T3 ES2650795 T3 ES 2650795T3
- Authority
- ES
- Spain
- Prior art keywords
- node
- cbf
- rqt
- block
- coefficients
- 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/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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/186—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 a colour or a chrominance component
-
- 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/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/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/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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Dc Digital Transmission (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un procedimiento para codificar datos de vídeo, comprendiendo el procedimiento: generar (252) un flujo de bits que incluye datos que representan un árbol cuádruple residual, RQT, para una unidad de codificación, CU, siendo la CU más grande que el tamaño máximo permitido de unidad de transformación, TU, con el RQT que incluye una jerarquía de nodos, en el que un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU, en el que el flujo de bits incluye al menos un indicador de bloque codificado, CBF, de componente de croma en el nodo raíz del RQT, indicando cada CBF del componente de croma del nodo raíz del RQT si alguna de las TU de la CU está asociada con un bloque de coeficientes de croma significativos que está basado en muestras del componente de croma respectivo; y emitir (254) el flujo de bits.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Codificación de indicadores de bloque codificado CAMPO TÉCNICO
[0001] Esta divulgación se refiere a la codificación y compresión de vídeo y, en particular, a la codificación de indicadores de bloque codificado.
ANTECEDENTES
[0002] Las capacidades del vídeo digital pueden incorporarse a una amplia gama de dispositivos, incluidos televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, dispositivos de videoconferencia y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-TH.263, ITU-T H.264/MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC), la norma de Codificación de Vídeo de Alta eficiencia (HEVC), actualmente en desarrollo, y las extensiones de tales normas, para transmitir, recibir y almacenar información de vídeo digital de forma más eficaz.
[0003] Las técnicas de compresión de vídeo llevan a cabo la predicción espacial (intra-imagen) y/o la predicción temporal (inter-imagen) para reducir o eliminar la redundancia intrínseca en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo puede dividirse en bloques de vídeo, que también pueden denominarse bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo de un fragmento intra-codificado (I) de una imagen se codifican mediante predicción espacial con respecto a unas muestras de referencia de bloques próximos de la misma imagen. Los bloques de vídeo de un fragmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a unas muestras de referencia de bloques próximos de la misma imagen, o la predicción temporal con respecto a unas muestras de referencia de otras imágenes de referencia. Las imágenes pueden denominarse tramas y las imágenes de referencia pueden denominarse tramas de referencia.
[0004] "Evaluation results on Residual Quad Tree (RQT)” [Resultados de la evaluación en el árbol cuádruple residual (RQT)] se tratan en el artículo de Zhou et al publicado en ISO/IEC/JTC1/SC29/WG11, no m18807, 16 de enero de 2011. La "Non-square Transform for 2NxN and Nx2N Motion Partitions” [Transformación no cuadrada para las divisiones de movimiento 2NxN y Nx2N] se trata en el artículo de Guo et al publicado en ISO/IEC JTC1/SC29/WG11 no m20996, 16 de julio de 2011.
SUMARIO
[0005] En general, esta divulgación describe técnicas para indicar la presencia de bloques de coeficientes significativos. Un bloque de coeficientes significativos puede ser un bloque de coeficientes que incluye uno o más coeficientes distintos de cero. Más específicamente, un codificador de vídeo puede generar un flujo de bits que incluye datos que representan un árbol cuádruple residual (RQT) para una unidad de codificación (CU) que es mayor que el tamaño de unidad de transformación (TU) máximo permitido. El RQT incluye una jerarquía de nodos. Un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU. El nodo raíz está asociado con un indicador de bloque codificado (CBF) para un componente de croma. El CBF para el componente de croma puede indicar si alguna de las TU de la CU está asociada con un bloque de coeficientes significativos que se basa en muestras del componente de croma particular. Un descodificador de vídeo puede recibir el flujo de bits y puede determinar, basándose en el CBF, si alguno de los nodos de hoja está asociado con un bloque de coeficientes significativos para el componente de croma.
[0006] En un aspecto, un procedimiento para codificar datos de vídeo comprende la generación de datos que representan un RQT residual para una CU, siendo la CU más grande que un tamaño de TU máximo permitido. El RQT incluye una jerarquía de nodos. Un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU. El nodo raíz está asociado con un CBF para un componente de croma particular, con el CBF para el componente de croma particular que indica si alguna de las TU de la CU está asociada con un bloque de coeficientes de croma significativos que se basa en muestras del componente de croma particular. El procedimiento también comprende la salida de un flujo de bits que incluye el RQT para la CU.
[0007] En otro aspecto, un procedimiento para descodificar datos de vídeo comprende el análisis, a partir de un flujo de bits que incluye una representación codificada de los datos de vídeo, un CBF de un nodo raíz de un RQT de una CU. Un bloque de píxeles de la CU es más grande que un tamaño de TU máximo permitido. El procedimiento también comprende, si el CBF tiene un primer valor, analizar, a partir del flujo de bits, un bloque de coeficientes de croma asociado con un nodo de hoja del RQT. Si el CBF tiene un segundo valor que es diferente del primer valor, el bloque de coeficientes de croma asociado con el nodo de hoja no se analiza a partir del flujo de bits.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0008] En otro aspecto, un dispositivo de codificación de vídeo codifica datos de vídeo. El dispositivo de codificación de vídeo comprende uno o más procesadores configurados para generar datos que representan un RQT para una CU, siendo la CU más grande que un tamaño de TU máximo permitido, incluyendo el RQT una jerarquía de nodos. Un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU. El nodo raíz está asociado con un CBF para un componente de croma particular, con el CBF para el componente de croma particular que indica si alguna de las TU de la CU está asociada con un bloque de coeficientes de croma significativos que se basa en muestras del componente de croma particular.
[0009] En otro aspecto, un dispositivo de descodificación de vídeo descodifica los datos de vídeo. El dispositivo de descodificación de vídeo comprende uno o más procesadores configurados para analizar, a partir de un flujo de bits que incluye una representación codificada de los datos de vídeo, un CBF de un nodo raíz de un RQT de una CU. Un bloque de píxeles de la CU es más grande que un tamaño de TU máximo permitido. El uno o más procesadores están configurados para analizar, si el CBF tiene un primer valor, a partir del flujo de bits, un bloque de coeficientes de croma asociado con un nodo de hoja del RQT. Si el CBF tiene un segundo valor que es diferente del primer valor, el bloque de coeficientes de croma asociado con el nodo de hoja no se analiza a partir del flujo de bits.
[0010] En otro aspecto, un dispositivo de codificación de vídeo codifica datos de vídeo. El dispositivo de codificación de vídeo comprende medios para generar datos que representan un RQT para una CU, siendo la CU más grande que un tamaño de TU máximo permitido, incluyendo el RQT una jerarquía de nodos. Un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU. El nodo raíz está asociado con un CBF para un componente de croma particular, con el CBF para el componente de croma particular que indica si alguna de las TU de la CU está asociada con un bloque de coeficientes de croma significativos que se basa en muestras del componente de croma particular.
[0011] En otro aspecto, un dispositivo de descodificación de vídeo descodifica los datos de vídeo. El dispositivo de descodificación de vídeo comprende medios para analizar, a partir de un flujo de bits que incluye una representación codificada de los datos de vídeo, un CBF de un nodo raíz de un RQT de una CU. Un bloque de píxeles de la CU es más grande que un tamaño de TU máximo permitido. El dispositivo de descodificación de vídeo también comprende medios para analizar, si el CBF tiene un primer valor, a partir del flujo de bits, un bloque de coeficientes de croma asociado con un nodo de hoja del RQT. Si el CBF tiene un segundo valor que es diferente del primer valor, el bloque de coeficientes de croma asociado con el nodo de hoja no se analiza a partir del flujo de bits.
[0012] En otro aspecto, un medio de almacenamiento legible por ordenador almacena instrucciones que, cuando son ejecutadas por uno o más procesadores de un dispositivo de codificación de vídeo, configuran el dispositivo de codificación de vídeo para generar datos que representan un RQT para una CU, siendo la CU más grande que un tamaño de unidad de transformación (TU) máximo permitido, e incluyendo el RQT una jerarquía de nodos. Un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU. El nodo raíz está asociado con un CBF para un componente de croma particular, con el CBF para el componente de croma particular que indica si alguna de las TU de la CU está asociada con un bloque de coeficientes de croma significativos que se basa en muestras del componente de croma particular.
[0013] En otro aspecto, un medio de almacenamiento legible por ordenador almacena instrucciones que, cuando son ejecutadas por uno o más procesadores de un dispositivo de descodificación de vídeo, configuran el dispositivo de codificación de vídeo para analizar, a partir de un flujo de bits que incluye una representación codificada de los datos de vídeo, un CBF de un nodo raíz de un RQT de una CU. Un bloque de píxeles de la CU es más grande que un tamaño de TU máximo permitido. Las instrucciones también configuran el uno o más procesadores para analizar, si el CBF tiene un primer valor, a partir del flujo de bits, un bloque de coeficientes de croma asociado con un nodo de hoja del RQT. Si el CBF tiene un segundo valor que es diferente del primer valor, el bloque de coeficientes de croma asociado con el nodo de hoja no se analiza a partir del flujo de bits.
[0014] Los detalles de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y la descripción siguiente. Otras características, objetivos y ventajas resultarán evidentes a partir de la descripción, los dibujos y las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0015]
La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de sistema de codificación de vídeo que puede utilizar las técnicas de esta divulgación.
La FIG. 2A es un diagrama conceptual que ilustra un ejemplo de descomposición en árbol cuádruple de un bloque de píxeles residuales asociado con una unidad de codificación (CU).
La FIG. 2B es un diagrama conceptual que ilustra el esquema de descomposición de transformación de la FIG.
5
10
15
20
25
30
35
40
45
50
55
60
65
2A descrito usando un árbol.
La FIG. 3 es un diagrama conceptual que ilustra un ejemplo de árbol cuádruple residual (RQT).
La FIG. 4A es un diagrama conceptual que ilustra un ejemplo de bloque de muestras de luma residual de una CU 64x64.
La FIG. 4B es un diagrama conceptual que ilustra un ejemplo de bloque de muestras de croma residuales de una CU 64x64.
La FIG. 5 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo que puede implementar las técnicas de esta divulgación.
La FIG. 6 es un diagrama de bloques que ilustra un ejemplo de descodificador de vídeo que puede implementar las técnicas de esta divulgación.
La FIG. 7 es un diagrama conceptual que ilustra un ejemplo de árbol cuádruple residual (RQT) de acuerdo con una o más técnicas de esta divulgación.
La FIG. 8 es un diagrama de flujo que ilustra un ejemplo de operación de un codificador de vídeo de acuerdo con una o más técnicas de esta divulgación.
La FIG. 9 es un diagrama de flujo que ilustra un ejemplo de operación de un descodificador de vídeo de acuerdo con una o más técnicas de esta divulgación.
La FIG. 10A es un diagrama de flujo que ilustra un ejemplo de operación para analizar elementos sintácticos de un nodo de un RQT, de acuerdo con una o más técnicas de esta divulgación.
La FIG. 10B es un diagrama de flujo que ilustra una continuación de la operación de ejemplo de la FIG. 10A, de acuerdo con una o más técnicas de esta divulgación.
DESCRIPCIÓN DETALLADA
[0016] Un codificador de vídeo descompone un bloque de píxeles residuales de una unidad de codificación (CU) en uno o más bloques de píxeles residuales más pequeños, cada uno de los cuales está asociado con una unidad de transformación (TU) de la CU. Cada píxel de los bloques de píxeles residuales incluye una muestra de luma (Y) y también puede incluir dos muestras de croma, U y V. Una muestra U puede indicar una diferencia entre un componente azul de un píxel y una muestra Y para el píxel. Por esta razón, una muestra U también se puede denominar muestra Cb. Una muestra V puede indicar una diferencia entre una muestra roja de un píxel y una muestra Y para el píxel. Por esta razón, una muestra en V también se puede denominar una muestra Cr.
[0017] Debido a que cada píxel residual incluye una muestra Y y también puede incluir una muestra U y una muestra V, cada una de las TU puede estar asociada con un bloque de muestras Y residuales (es decir, un bloque de muestras residuales Y), un bloque de muestras U residuales (es decir, un bloque de muestras residuales U) y un bloque de muestras V residuales (es decir, un bloque de muestras residuales V). El codificador de vídeo puede aplicar una o más transformaciones a cada uno de los bloques de muestras residuales a fin de generar bloques de coeficientes que correspondan a los bloques de muestras residuales. Algunos de los bloques de coeficientes no incluyen coeficientes distintos de cero, lo cual significa que esos bloques de coeficientes incluyen solo coeficientes cero. Para facilitar la explicación, esta divulgación puede referirse a un bloque de coeficientes como un bloque de coeficientes significativos si el bloque de coeficientes incluye uno o más coeficientes distintos de cero. Si un bloque de coeficientes no incluye coeficientes distintos de cero (es decir, el bloque de coeficientes solo incluye coeficientes de valor cero), puede ser más eficiente que el codificador de vídeo genere un indicador que indique que el bloque de coeficientes no incluye coeficientes distintos de cero que indicar cada uno de los coeficientes de valor cero del bloque de coeficientes.
[0018] El codificador de vídeo puede generar datos que representan un árbol cuádruple residual (RQT) para la CU. El RQT también puede denominarse árbol de transformación. El RQT para la CU comprende un conjunto de nodos. Cada uno de los nodos corresponde a un bloque de muestras residuales. Un nodo raíz del RQT corresponde al bloque de píxeles residuales de la CU. Los nodos de hoja del RQT corresponden a los bloques de píxeles residuales de Tu de la CU. Los nodos del RQT pueden estar asociados con indicadores de división. El indicador de división de un nodo puede indicar si el nodo tiene una pluralidad de nodos secundarios del RQT.
[0019] Por otra parte, además de estar asociado con indicadores de división, cada nodo de la hoja del RQT está asociado con un indicador de bloque codificado (CBF) luma que indica si el nodo de hoja está asociado con un bloque de coeficiente de luma significativo. En esta divulgación, un CBF de luma también puede denominarse CBF Y y un bloque de coeficientes de luma se puede denominar un bloque de coeficientes Y. Un bloque de coeficientes Y
5
10
15
20
25
30
35
40
45
50
55
60
65
es un bloque de coeficientes basado en un bloque de muestras Y residuales. Además de los indicadores de división y los CBF de luma, los nodos del RQT también pueden estar asociados con CBF U y CBF V. Un CBF U de un nodo indica si el nodo, o cualquier nodo descendiente del nodo, está asociado con un bloque de coeficientes U significativo. El bloque de coeficientes U es un bloque de coeficientes basado en un bloque de muestras U residuales. Un primer nodo puede ser un nodo descendiente de un segundo nodo si el segundo nodo es el nodo raíz del RQT o hay una ruta a través del RQT desde el primer nodo hasta el nodo raíz que pasa a través del segundo nodo y no pasa a través de ningún nodo más de una vez. Si el CBF U de un nodo indica que el nodo, y cada nodo descendiente del nodo, no está asociado con un bloque de coeficientes U significativo, ningún nodo descendiente del nodo está asociado con un CBF U. Un CBF V de un nodo indica si el nodo, o cualquier nodo descendiente del nodo, está asociado con un bloque de coeficientes V significativo. Un bloque de coeficientes V es un bloque de coeficientes basado en un bloque de muestras V residuales. Si el CBF V de un nodo indica que el nodo, y cada nodo descendiente del nodo, no está asociado con un bloque de coeficientes V significativo, ningún nodo descendiente del nodo está asociado con un CBF V. Si un nodo corresponde a un bloque de muestras residuales que es más grande que un tamaño de TU máximo permitido, el nodo no está asociado con un CBF U o un CBF V.
[0020] Puede haber varios problemas con este sistema. En primer lugar, existen diferentes procedimientos para indicar si los nodos del RQT están asociados con bloques de coeficientes de luma significativos y bloques de coeficientes U y V significativos. Es decir, los CBF Y solo están codificadas en nodos de hoja del RQT, mientras que los CBF U y V pueden estar codificados en nodos que no sean de hoja del RQT. En segundo lugar, la codificación jerárquica de los CBF U y V solo se aplica a algunos niveles del RQT. Por ejemplo, el codificador de vídeo no indica CBF U y V en nodos que corresponden a bloques de píxeles residuales mayores que un tamaño de TU máximo permitido. Estos problemas pueden aumentar la complejidad de los codificadores de vídeo y descodificadores de vídeo.
[0021] De acuerdo con las técnicas de la presente divulgación, un codificador de vídeo puede generar datos que representan un RQT para una CU. La CU puede ser más grande que un tamaño de TU máximo permitido (es decir, un bloque de píxeles asociado con la CU puede ser mayor que el tamaño de TU máximo permitido). El tamaño de TU máximo permitido puede ser un tamaño máximo permitido de un bloque de píxeles asociado con una TU. Un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU. El nodo raíz está asociado con un CBF para un componente de croma particular, con el CBF para el componente de croma particular que indica si alguna de las TU de la CU está asociada con un bloque de coeficientes significativos que se basa en muestras del componente de croma particular. El componente de croma particular puede ser un componente U o un componente V. De manera similar, un descodificador de vídeo puede analizar, a partir de un flujo de bits que incluye una representación codificada de datos de vídeo, un CBF de un nodo raíz de un RQT de una CU, en el que un bloque de píxeles de la CU es mayor que un tamaño de TU máximo permitido. Si el CBF tiene un primer valor, el descodificador de vídeo puede analizar, a partir del flujo de bits, un bloque de coeficientes de croma asociado con un nodo de hoja del RQT. Si el CBF tiene un segundo valor que es diferente del primer valor, el bloque de coeficientes de croma asociado con el nodo de hoja no se analiza a partir del flujo de bits.
[0022] Las técnicas de esta divulgación pueden ofrecer varias ventajas. Por ejemplo, si un CBF de croma (por ejemplo, el CBF para el componente de croma particular) no se indica en el nodo raíz, los CBF de croma se indican en cada nodo en un primer nivel del RQT que corresponde a TU más pequeñas que el tamaño de TU máximo permitido. Por el contrario, si se indica un CBF de croma en el nodo raíz del RQT, es posible que el codificador de vídeo no tenga que indicar CBF de croma en cada nodo del primer nivel del RQT que corresponda a TU más pequeñas que el tamaño de TU máximo permitido, especialmente si el CBF en el nodo raíz tiene el segundo valor. De esta manera, las técnicas de esta divulgación pueden disminuir el número de CBF indicados, y por lo tanto, aumentar la eficacia de codificación.
[0023] Los dibujos adjuntos ilustran ejemplos. Los elementos indicados mediante números de referencia en los dibujos adjuntos corresponden a elementos indicados mediante números de referencia similares en la siguiente descripción. En esta divulgación, los elementos que tienen nombres que comienzan con palabras ordinales (por ejemplo, "primero", "segundo", "tercero", etc.) no necesariamente implican que los elementos tienen un orden particular. Más bien, tales palabras ordinales se usan simplemente para referirse a diferentes elementos de un mismo o similar tipo.
[0024] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación de vídeo de ejemplo 10 que puede utilizar las técnicas de esta divulgación. Tal como se utiliza descrito en el presente documento, el término "codificador de vídeo" se refiere genéricamente tanto a codificadores de vídeo como a descodificadores de vídeo. En esta divulgación, los términos "codificación de vídeo" o "codificación" pueden referirse genéricamente a la codificación de vídeo o la descodificación de vídeo.
[0025] Como se muestra en la FIG. 1, el sistema de codificación de vídeo 10 incluye un dispositivo de origen 12 y un dispositivo de destino 14. El dispositivo de origen 12 genera datos de vídeo codificados. En consecuencia, el dispositivo de origen 12 puede denominarse dispositivo de codificación de vídeo o aparato de codificación de vídeo. El dispositivo de destino 14 puede descodificar los datos de vídeo codificados generados por el dispositivo de origen 12. En consecuencia, el dispositivo de destino 14 puede denominarse dispositivo de descodificación de vídeo o
5
10
15
20
25
30
35
40
45
50
55
60
65
aparato de descodificación de vídeo. El dispositivo de origen 12 y el dispositivo de destino 14 pueden ser ejemplos de dispositivos de codificación de vídeo o aparatos de codificación de vídeo.
[0026] El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender una amplia variedad de dispositivos, incluyendo ordenadores de sobremesa, dispositivos informáticos móviles, notebooks (es decir, portátiles), ordenadores tipo tablet, descodificadores, equipos telefónicos portátiles tales como los denominados teléfonos inteligentes, televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, ordenadores de coche o similares.
[0027] El dispositivo de destino 14 puede recibir datos de vídeo codificados desde el dispositivo de origen 12 a través de un canal 16. El canal 16 puede comprender uno o más medios o dispositivos capaces de desplazar los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el canal 16 puede comprender uno o más medios de comunicaciones que permiten al dispositivo de origen 12 transmitir datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. En este ejemplo, el dispositivo de origen 12 puede modular los datos de vídeo codificados de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y puede transmitir los datos de vídeo modulados al dispositivo de destino 14. El uno o más medios de comunicaciones pueden incluir medios de comunicaciones inalámbricos y/o cableados, tales como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física. El uno o más medios de comunicación pueden formar parte de una red basada en paquetes, tal como una red de área local, una red de área extensa o una red global (por ejemplo, Internet). El canal 16 puede incluir varios tipos de dispositivos, como routers, conmutadores, estaciones base u otros equipos que faciliten la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[0028] En otro ejemplo, el canal 16 puede incluir un medio de almacenamiento que almacena los datos de vídeo codificados generados por el dispositivo de origen 12. En este ejemplo, el dispositivo de destino 14 puede acceder al medio de almacenamiento a través del acceso al disco o el acceso a la tarjeta. El medio de almacenamiento puede incluir una variedad de medios de almacenamiento de datos de acceso local, tales como discos Blu-ray, DVD, CD- ROM, memoria flash u otros medios adecuados de almacenamiento digital para almacenar datos de vídeo codificados.
[0029] En un ejemplo adicional, el canal 16 puede incluir un servidor de archivos u otro dispositivo de almacenamiento intermedio que almacene los datos de vídeo codificados generados por el dispositivo de origen 12. En este ejemplo, el dispositivo de destino 14 puede acceder a datos de vídeo codificados almacenados en el servidor de archivos u otro dispositivo de almacenamiento intermedio a través de transmisión o descarga. El servidor de archivos puede ser un tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir los datos de vídeo codificados al dispositivo de destino 14. Entre los ejemplos de servidores de archivos se incluyen servidores web (por ejemplo, para un sitio web), servidores de protocolo de transferencia de archivos (FTP), dispositivos de almacenamiento conectados a la red (NAS) y unidades de disco local.
[0030] El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de una conexión de datos estándar, como una conexión a Internet. Entre los ejemplos de tipos de conexiones de datos pueden incluirse canales inalámbricos (por ejemplo, conexiones Wi-Fi), conexiones alámbricas (por ejemplo, DSL, módem de cable, etc.), o una combinación de ambos que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el servidor de archivos puede ser una transmisión sin descarga, una transmisión de descarga o una combinación de ambas.
[0031] Las técnicas de esta divulgación no están limitadas a aplicaciones o configuraciones inalámbricas. Las técnicas pueden aplicarse a la codificación de vídeo, en soporte de una diversidad de aplicaciones multimedia, tales como radiodifusiones de televisión por el aire, radiodifusiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo en continuo, por ejemplo, mediante Internet, codificación de datos de vídeo para su almacenamiento en un medio de almacenamiento de datos, descodificación de datos de vídeo almacenados en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema de codificación de vídeo 10 puede configurarse para soportar transmisión de vídeo unidireccional o bidireccional para soportar aplicaciones tales como radiodifusión de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
[0032] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20 y una interfaz de salida 22. En algunos ejemplos, la interfaz de salida 22 puede incluir un modulador/desmodulador (módem) y/o un transmisor. La fuente de vídeo 18 puede incluir un dispositivo de captura de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contiene datos de vídeo previamente capturados, una interfaz de alimentación de vídeo para recibir datos de vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de vídeo, o una combinación de dichas fuentes de datos de vídeo.
[0033] El codificador de vídeo 20 puede codificar datos de vídeo de la fuente de vídeo 18. En algunos ejemplos, el dispositivo de origen 12 directamente transmite los datos de vídeo codificados al dispositivo destino 14 a través de un canal de comunicación 22. En otros ejemplos, los datos de vídeo codificados también pueden almacenarse en un
5
10
15
20
25
30
35
40
45
50
55
60
65
medio de almacenamiento o un servidor de archivos para un acceso posterior mediante el dispositivo de destino 14 para la descodificación y/o reproducción.
[0034] En el ejemplo de la FIG. 1, el dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de vídeo 30 y un dispositivo de visualización 32. En algunos ejemplos, la interfaz de entrada 28 incluye un receptor y/o un módem. La interfaz de entrada 28 puede recibir los datos de vídeo codificados por el canal 16. El dispositivo de visualización 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En general, el dispositivo de visualización 32 muestra datos de vídeo descodificados. El dispositivo de visualización 32 puede comprender una variedad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0035] En algunos ejemplos, el codificador de vídeo 20 y el descodificador de vídeo 30 funcionan de acuerdo con una norma de compresión de vídeo, tal como ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), incluidas sus extensiones de codificación de vídeo escalable (SVC) y codificación de vídeo de múltiples visualizaciones (MVC). En otros ejemplos, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con otras normas de compresión de vídeo, incluyendo la norma de Codificación de Vídeo de Alta Eficiencia (HEVC) actualmente en desarrollo. Un borrador de la siguiente norma HEVC, denominado “Borrador de Trabajo 9 de la HEVC” se describe en el documento de Bross et al. "Borrador 9 de Memoria Descriptiva Textual de Codificación de Vídeo de Alta Eficacia (HEVC)", Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 11.a reunión: Shanghái, China, octubre de 2012, que, desde el 7 de noviembre de 2012, puede descargarse en
http://phenix.intevry.fr/jct/doc_end_user/documents/11_Shanghai/wg11JCTVC-K1003-v8.zip, cuyo contenido completo se incorpora en el presente documento como referencia. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna técnica ni norma de codificación particular.
http://phenix.intevry.fr/jct/doc_end_user/documents/11_Shanghai/wg11JCTVC-K1003-v8.zip, cuyo contenido completo se incorpora en el presente documento como referencia. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna técnica ni norma de codificación particular.
[0036] La FIG. 1 es meramente un ejemplo y las técnicas de esta divulgación pueden aplicarse a ajustes de codificación de vídeo (por ejemplo, codificación de vídeo o descodificación de vídeo) que no incluyen necesariamente ninguna comunicación de datos entre los dispositivos de codificación de vídeo y descodificación de vídeo. En otros ejemplos, los datos se recuperan de una memoria local, se transmiten a través de una red o similar. Un dispositivo de codificación de vídeo puede codificar y almacenar datos en la memoria, y/o un dispositivo de descodificación de vídeo puede recuperar y descodificar datos de la memoria. En muchos ejemplos, la codificación y descodificación de vídeo se realiza mediante dispositivos que no se comunican entre sí, sino que simplemente codifican datos en la memoria y/o recuperan y descodifican datos de la memoria.
[0037] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden implementarse como cualquiera entre una variedad de circuitos adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), conjuntos de puertas programables sobre el terreno (FPGA), lógica discreta, hardware o cualquier combinación de los mismos. Si las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio de almacenamiento legible por ordenador no transitorio adecuado, y puede ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cualquiera de los anteriores (incluyendo hardware, software, una combinación de hardware y software, etc.) puede considerarse como uno o más procesadores. Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 pueden estar incluidos en uno o más codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
[0038] Esta divulgación puede referirse en general al codificador de vídeo 20 que "indica" cierta información. El término "indicar" puede referirse en general a la comunicación de elementos sintácticos y/u otros datos usados para descodificar los datos de vídeo comprimidos. Dicha comunicación puede producirse en tiempo real o casi real. De forma alternativa, dicha comunicación puede producirse durante un lapso de tiempo, tal como podría ocurrir cuando se almacenan elementos sintácticos en un medio de almacenamiento legible por ordenador en un flujo de bits codificado en el momento de la codificación, que a continuación un dispositivo de descodificación de vídeo puede recuperar en cualquier momento tras haber sido almacenado en este medio.
[0039] Como se ha mencionado brevemente anteriormente, el codificador de vídeo 20 codifica los datos de vídeo. Los datos de vídeo pueden comprender una o más imágenes. Cada una de las imágenes es una imagen fija que forma parte de un vídeo. Cuando el codificador de vídeo 20 codifica los datos de vídeo, el codificador de vídeo 20 puede generar un flujo de bits. El flujo de bits puede incluir una secuencia de bits que forma una representación codificada de los datos de vídeo. El flujo de bits puede incluir imágenes codificadas y datos asociados. Una imagen codificada es una representación codificada de una imagen. Los datos asociados pueden incluir conjuntos de parámetros de secuencia (SPS), conjuntos de parámetros de imagen (PPS) y otras estructuras sintácticas. Un SPS puede contener parámetros aplicables a cero o más secuencias de imágenes. Un PPS puede contener parámetros aplicables a cero o más imágenes.
[0040] Para generar una representación codificada de una imagen, el codificador de vídeo 20 puede dividir la imagen en una cuadrícula de bloques de árbol de codificación (CTB). En algunos casos, se puede hacer referencia a
5
10
15
20
25
30
35
40
45
50
55
60
65
un CTB como un "bloque de árbol", una "unidad de codificación más grande" (LCU) o una "unidad de árbol de codificación". Los CTB de HEVC pueden ser análogos en gran medida a los macrobloques de otras normas, tales como la H.264/AVC. Sin embargo, un CTB no está limitado necesariamente a un tamaño particular y puede incluir una o más unidades de codificación (CU).
[0041] Cada uno de los CTB puede estar asociado con un bloque de igual tamaño diferente de píxeles dentro de la imagen. Cada píxel puede comprender una muestra de luminancia (luma) y también puede comprender dos muestras de crominancia (croma). Por lo tanto, cada CTB puede asociarse con un bloque de muestras de luminancia y dos bloques de muestras de crominancia. Para facilitar la explicación, esta divulgación puede referirse a una matriz bidimensional de píxeles como un bloque de píxeles y puede referirse a una matriz bidimensional de muestras como un bloque de muestras. El codificador de vídeo 20 puede usar la división de árbol cuádruple para dividir el bloque de píxeles asociado con un CTB en bloques de píxeles asociados con CU, de ahí el nombre "bloques de árbol de codificación".
[0042] Los CTB de una imagen pueden agruparse en uno o más fragmentos. En algunos ejemplos, cada uno de los fragmentos incluye un número entero de CTB. Como parte de la codificación de una imagen, el codificador de vídeo 20 puede generar representaciones codificadas de cada fragmento de la imagen (es decir, fragmentos codificados). Para generar un fragmento codificado, el codificador de vídeo 20 puede codificar cada CTB del fragmento para generar representaciones codificadas de cada uno de los CTB del fragmento (es decir, CTB codificados).
[0043] Para generar un CTB codificado, el codificador de vídeo 20 puede llevar a cabo de forma recursiva división de árbol cuádruple en el bloque píxeles asociado con un CTB para dividir el bloque de píxeles en bloques de píxeles progresivamente más pequeños. Cada uno de los bloques de píxeles más pequeños puede estar asociado con una CU. Una CU dividida puede ser una CU cuyo bloque de píxeles se divida en bloques de píxeles asociados con otras CU. Una CU no dividida puede ser una CU cuyo bloque de píxeles no esté dividido en bloques de píxeles asociados con otras CU.
[0044] El codificador de vídeo 20 puede generar una o más unidades de predicción (PU) para cada CU no dividida. Cada una de las PU de una CU puede estar asociada con un bloque de píxeles diferente dentro del bloque de píxeles de la CU. El codificador de vídeo 20 puede generar bloques de píxeles predictivos para cada PU de la CU. El bloque de píxeles predictivos de una PU puede ser un bloque de píxeles.
[0045] El codificador de vídeo 20 puede usar intra-predicción o inter-predicción para generar el bloque de píxeles predictivos para una PU. Si el codificador de vídeo 20 utiliza intra-predicción para generar el bloque de píxeles predictivos de una PU, el codificador de vídeo 20 puede generar el bloque de píxeles predictivos de la PU basándose en píxeles descodificados de la imagen asociada con la PU. Si el codificador de vídeo 20 utiliza interpredicción para generar el bloque de píxeles predictivos de la PU, el codificador de vídeo 20 puede generar el bloque de píxeles predictivos de la PU basándose en píxeles descodificados de una o más imágenes distintas a la imagen asociada con la PU.
[0046] Después de que el codificador de vídeo 20 genere bloques de píxeles predichos para una o más PU de una CU, el codificador de vídeo 20 puede generar datos residuales para la CU basándose en los bloques de píxeles predichos para las PU de la CU. Los datos residuales para la CU pueden indicar diferencias entre muestras en los bloques de píxeles predichos para las PU de la CU y el bloque de píxeles original de la CU.
[0047] Cada píxel en el bloque de píxeles residuales de la CU puede incluir una muestra Y, una muestra U y una
muestra V. Por lo tanto, el bloque de píxeles residuales de la CU puede comprender un bloque de muestras residuales Y que incluye las muestras Y del bloque de píxeles residuales de la CU, un bloque de muestras
residuales U que incluye las muestras U del bloque de píxeles residuales de la CU y un bloque de muestras
residuales V que incluye las muestras V del bloque de píxeles residuales de la CU.
[0048] Además, como parte de la realización de una operación de codificación en una CU no dividida, el codificador
de vídeo 20 puede utilizar división de árbol cuádruple para descomponer la CU en una o más unidades de
transformación (TU). Cada una de las TU puede estar asociada con un bloque de muestras residuales Y, un bloque de muestras residuales U y un bloque de muestras residuales V. El bloque de muestras residuales Y asociado con la TU puede ser un sub-bloque del bloque de muestras residuales Y de la CU. El bloque de muestras residuales U puede ser un sub-bloque del bloque de muestras residuales U de la CU. El bloque de muestras residuales V puede ser un sub-bloque del bloque de muestras residuales V de la CU.
[0049] El codificador de vídeo 20 puede usar un árbol cuádruple residual (RQT) para indicar cómo se divide la CU en TU. En otras palabras, el codificador de vídeo 20 puede incluir, en un flujo de bits, datos que representan un RQT que indica cómo la CU se divide en TU. El RQT puede comprender una jerarquía de nodos. Los nodos de hoja del RQT pueden corresponder a las TU de la CU. Cada nodo del RQT puede asociarse con un indicador de división. Si el indicador de división de un nodo es igual a 1, el nodo tiene cuatro nodos secundarios. Si el indicador de división de un nodo es igual a 0, el nodo no tiene nodos secundarios. Un primer nodo puede ser un nodo secundario de un segundo nodo si el primer y el segundo nodos están vinculados en el RQT y el primer nodo está un nivel más bajo
5
10
15
20
25
30
35
40
45
50
55
60
65
en el RQT que el segundo nodo. Los niveles del RQT se pueden numerar de 0 hacia arriba, con el nivel 0 correspondiente al nodo raíz, el nivel 1 correspondiente a los nodos secundarios del nodo raíz, el nivel 2 correspondiente a los nodos sub-secundarios del nodo raíz, y así sucesivamente.
[0050] La FIG. 2A es un diagrama conceptual que ilustra un ejemplo de descomposición en árbol cuádruple de un bloque de píxeles residuales 38 asociado con una CU. En el ejemplo de la FIG. 2A, el bloque de píxeles residuales 38 está dividido en un bloque de píxeles residuales superior izquierdo, un bloque de píxeles residuales superior derecho, un bloque de píxeles residuales inferior izquierdo y un bloque de píxeles residuales inferior derecho. Las líneas internas en la FIG. 2A indican un resultado de ejemplo de la descomposición de bloque de transformación de acuerdo con una estructura de árbol cuádruple. Este resultado es solo una de las muchas descomposiciones posibles. En el ejemplo de la FIG. 2A, hay tres niveles de descomposiciones de transformación. En el nivel 0 (es decir, profundidad 0), el bloque de píxeles residuales 38 se divide en cuatro bloques de un cuarto de tamaño. Luego, en el nivel 1 (es decir, profundidad 1), el primer bloque de transformación de un cuarto de tamaño se divide adicionalmente en cuatro bloques de transformación de 1/16 de tamaño (división = 1). En otras palabras, el bloque de píxeles residuales superior izquierdo se divide adicionalmente en cuatro bloques de píxeles residuales más pequeños, etiquetados 40, 42, 44 y 46. No hay división adicional para los sub-bloques 40, 42, 44 y 46. En el ejemplo de la FIG. 2A, el bloque de píxeles residuales superior derecho se etiqueta 48, el bloque de píxeles residuales inferior izquierdo se etiqueta 50, y el bloque de píxeles residuales inferior derecho se etiqueta 52. No hay división adicional para los sub-bloques 48, 50 y 52.
[0051] La FIG. 2B es un diagrama conceptual que ilustra un esquema de descomposición en árbol cuádruple de la FIG. 2A, descrito usando un RQT 54. En el ejemplo de la FIG. 2B, cada círculo corresponde a un nodo de RQT 54. Cada nodo está asociado con un indicador de división que indica si el bloque de píxeles residuales asociado con el nodo se divide en cuatro bloques de píxeles residuales más pequeños. Los nodos de hoja de RQT 54 corresponden a los bloques de píxeles residuales etiquetados de la FIG. 2A. En la práctica, la determinación de si dividir un bloque de transformación puede basarse en una optimización de distorsión de velocidad.
[0052] El codificador de vídeo 20 puede realizar operaciones de transformación en bloques de muestras residuales Y, U y V asociados con TU de una CU. Cuando el codificador de vídeo 20 realiza la operación de transformación en un bloque de muestras residuales Y, el codificador de vídeo 20 puede aplicar una o más transformaciones al bloque de muestras residuales Y para generar un bloque de coeficientes Y. Cuando el codificador de vídeo 20 realiza la operación de transformación en un bloque de muestras residuales U, el codificador de vídeo 20 puede aplicar una o más transformaciones al bloque de muestras residuales U para generar un bloque de coeficientes U. Cuando el codificador de vídeo 20 realiza la operación de transformación en un bloque de muestras residuales V, el codificador de vídeo 20 puede aplicar una o más transformaciones al bloque de muestras residuales V para generar un bloque de coeficientes V. Conceptualmente, un bloque de coeficientes puede ser una matriz bidimensional (2D) de coeficientes.
[0053] Después de generar un bloque de coeficientes, el codificador de vídeo 20 puede cuantificar el bloque de coeficientes. La cuantificación se refiere, en general, a un proceso en el que los coeficientes se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando compresión adicional. Después de que el codificador de vídeo 20 cuantifique un bloque de coeficientes, el codificador de vídeo 20 puede realizar una operación de codificación por entropía en el bloque de coeficientes. Por ejemplo, el codificador de vídeo 20 puede realizar Codificación Aritmética Binaria Adaptable al Contexto (CABAC) en datos en los bloques de coeficientes.
[0054] Cuando el codificador de vídeo 20 realiza una operación de CABAC en un elemento sintáctico, el codificador de vídeo puede convertir el elemento sintáctico en un código binario. En otras palabras, el codificador de vídeo 20 puede binarizar el elemento sintáctico. Además, el codificador de vídeo 20 puede seleccionar un contexto de codificación entre múltiples contextos de codificación disponibles. El contexto de codificación puede indicar una probabilidad esperada de un "bin" del elemento sintáctico binario. Un bin puede ser un solo bit del elemento sintáctico binario. El codificador de vídeo 20 puede usar el contexto de codificación seleccionado para generar un número que represente el elemento sintáctico. El codificador de vídeo 20 puede emitir este número, junto con otros elementos sintácticos codificados, en un flujo de bits. El flujo de bits puede incluir una versión codificada de los datos de vídeo.
[0055] El descodificador de vídeo 30 puede recibir el flujo de bits generado por el codificador de vídeo 20. Además, el descodificador de vídeo 30 puede analizar el flujo de bits para extraer elementos sintácticos del flujo de bits. El descodificador de vídeo 30 puede reconstruir las imágenes de los datos de vídeo basándose en los elementos sintácticos extraídos del flujo de bits. El proceso para reconstruir los datos de vídeo basados en los elementos sintácticos puede ser en general recíproco al proceso realizado por el codificador de vídeo 20 para generar los elementos sintácticos.
[0056] El descodificador de vídeo 30 puede generar bloques de píxeles predichos para las PU de una CU basándose, al menos en parte, en los elementos sintácticos asociados con la CU. Además, el descodificador de vídeo 30 puede invertir bloques de coeficientes de cuantificación asociados con TU de la CU. El descodificador de
5
10
15
20
25
30
35
40
45
50
55
60
65
vídeo 30 puede realizar transformaciones inversas en los bloques de coeficientes para reconstruir los bloques de muestras residuales asociados con las TU de la CU. El descodificador de vídeo 30 puede reconstruir el bloque de píxeles de la CU basándose en los bloques de píxeles predichos y los bloques de píxeles residuales.
[0057] En algunos casos, puede no haber coeficientes distintos de cero en un bloque de coeficientes. En otras palabras, todos los coeficientes en un bloque de coeficientes pueden ser iguales a cero. Si no hay coeficientes distintos de cero en un bloque de coeficientes, puede no ser necesario que el codificador de vídeo 20 indique los valores de los coeficientes en el bloque de coeficientes. Esta divulgación puede usar el término "bloque de coeficientes significativos" para referirse a un bloque de coeficientes que incluye al menos un coeficiente distinto de cero.
[0058] En consecuencia, el codificador de vídeo 20 puede asociar CBF Y con los nodos de hoja del RQT para la CU. Para cada nodo de hoja respectivo del RQT, si el CBF Y del nodo de hoja respectivo es igual a 1, el bloque de coeficientes Y asociado con el nodo de hoja respectivo incluye al menos un coeficiente distinto de cero. Si el CBF Y del nodo de hoja respectivo es igual a 0, el bloque de coeficientes Y asociado con el nodo de hoja respectivo no incluye ningún coeficiente distinto de cero. Los nodos que no sean de hoja del RQT no están asociados con CBF Y.
[0059] El codificador de vídeo 20 puede codificar los CBF U y CBF V de una manera jerárquica. Si el CBF U de un nodo particular es igual a 0 y el nodo particular es un nodo de hoja, el nodo particular no está asociado con un bloque de coeficientes U significativo. Si el CBF U de un nodo particular es igual a 0 y el nodo particular no es un nodo de hoja, ningún nodo descendiente del nodo particular está asociado con un bloque de coeficientes U significativo. Debido a que el descodificador de vídeo 30 puede determinar, basándose en que CBF U del nodo particular es igual a 0, que ningún nodo descendiente del nodo particular está asociado con un bloque de coeficientes U significativo, puede ser innecesario que el codificador de vídeo 20 indique CBF U para los nodos descendientes del nodo particular.
[0060] Por otro lado, si el CBF U de un nodo particular es igual a 1 y el nodo particular es un nodo de hoja, el nodo particular está asociado con un bloque de coeficientes U significativo. Si el CBF U de un nodo particular es igual a 1 y el nodo particular no es un nodo de hoja, al menos un nodo descendiente del nodo particular está asociado con un bloque de coeficientes U significativo. Debido a que al menos un nodo descendiente del nodo particular está asociado con un bloque de coeficientes U significativo, cada nodo secundario del nodo particular puede estar asociado con un CBF U.
[0061] Si el CBF V de un nodo particular es igual a 0 y el nodo particular es un nodo de hoja, el nodo particular no está asociado con un bloque de coeficientes V significativo. Si el CBF V de un nodo particular es igual a 0 y el nodo particular no es un nodo de hoja, ningún nodo descendiente del nodo particular está asociado con un bloque de coeficientes V significativo. Debido a que el descodificador de vídeo 30 puede determinar, basándose en que el CBF V del nodo particular es igual a 0, que ningún nodo descendiente del nodo particular está asociado con un bloque de coeficientes V significativo, puede ser innecesario que el codificador de vídeo 20 indique CBF V para los nodos descendientes del nodo particular.
[0062] Por otro lado, si el CBF V de un nodo particular es igual a 1 y el nodo particular es un nodo de hoja, el nodo particular está asociado con un bloque de coeficientes V significativo. Si el CBF V de un nodo particular es igual a 1 y el nodo particular no es un nodo de hoja, al menos un nodo descendiente del nodo particular está asociado con un bloque de coeficientes V significativo. Debido a que al menos un nodo descendiente del nodo particular está asociado con un bloque de coeficientes V significativo, cada nodo secundario del nodo particular puede estar asociado con un CBF V.
[0063] En algunos casos, un bloque de píxeles residuales de una CU puede ser mayor que un tamaño de TU máximo permitido. Por ejemplo, un bloque de píxeles residuales de una CU puede ser de 64x64, mientras que el tamaño de TU máximo permitido puede ser de 32x32. Cuando un bloque de píxeles residuales de una CU es mayor que el tamaño de TU máximo permitido, el descodificador de vídeo 30 puede determinar automáticamente que la CU está dividida en al menos cuatro TU que tienen el tamaño de TU máximo permitido o más pequeño. Debido a que el descodificador de vídeo 30 puede determinar automáticamente que la Cu está dividida en al menos cuatro TU, puede ser innecesario que el codificador de vídeo 20 asocie un indicador de división con el nodo raíz del RQT de la CU. Además, el codificador de vídeo 20 no asocia CBF U ni CBF V con el nodo raíz del RQT de la CU.
[0064] La FIG. 3 es un diagrama conceptual que ilustra la codificación de un ejemplo de árbol cuádruple residual (RQT) 56. En este ejemplo de la FIG. 3, cada nodo de RQT 56 se representa como un círculo. Para cada nodo (es decir, en cada nivel), el codificador de vídeo 20 codifica un indicador de división. En el ejemplo de la FIG. 3, si un indicador de división es igual a 1, el nodo tiene cuatro nodos secundarios y el bloque de píxeles residuales asociado con el nodo se divide en cuatro bloques de píxeles residuales de tamaño uniforme (sub-bloques). Si el indicador de división de un nodo es igual a 0, el nodo no tiene nodos secundarios y el bloque de píxeles residuales asociado con el nodo no se divide en bloques de píxeles residuales más pequeños. Cada nodo de RQT 56 puede estar asociado con un CBF U y un CBF V, como se describió anteriormente. En otras palabras, en cada nivel, se pueden transmitir otros dos elementos sintácticos. Uno es cbfU (indicador de bloque codificado para el componente U) y el otro es
5
10
15
20
25
30
35
40
45
50
55
60
65
cbfV (indicador de bloque codificado para el componente V). Estos dos elementos sintácticos pueden estar codificados de forma jerárquica. Si cbfU = 0, no hay ningún coeficiente de transformación U distinto de cero en el bloque de transformación actual (si no está dividido) o todos los bloques de transformación más pequeños (si el bloque de transformación actual se divide en bloques más pequeños). En el último caso (es decir, el bloque de transformación actual se divide aún más), puede que no sea necesario transmitir ningún cbfU para estos bloques divididos adicionales. El proceso de codificación de cbfV puede ser el mismo.
[0065] Si, para un bloque, el indicador de división transmitido tiene valor 0, este bloque es un "nodo de hoja" en el RQT. En el nodo de hoja, se transmite CBF Y, y CBF U y CBF V también se pueden transmitir (dependiendo del valor de CBF U y CBF V en niveles superiores del RQT, es decir, si el CBF U / CBF V de nivel superior es 0, entonces puede que no haya necesidad de transmitir en este nivel inferior). Como se ilustra en el ejemplo de la FIG. 3, cada nodo de hoja puede estar asociado con un CBF Y. El CBF Y de un nodo indica si el nodo está asociado con un bloque de coeficientes Y significativo. Además, si un nodo de hoja está asociado con bloques de coeficientes Y, U y/o V significativos, el nodo de hoja puede estar asociado con elementos sintácticos que representan los bloques de coeficientes Y, U y V significativos. En otras palabras, en el nodo de hoja, los coeficientes de transformación se codifican para componentes Y, U, V (CoeffY, CoeffU, CoeffV) si el indicador correspondiente (cbfY, cbfU, cbfV) no es cero.
[0066] En algunos casos, el descodificador de vídeo 30 puede determinar (es decir, inferir) el valor de un elemento sintáctico de un nodo a partir de uno o más elementos sintácticos ya descodificados en el mismo nivel del RQT que el nodo o un nivel más alto del RQT más alto que el nivel del nodo. La determinación de los valores de los elementos sintácticos de esta manera puede aumentar la eficacia de la codificación. Por ejemplo, si un CBF U (o un CBF V) de un nodo en el nivel k es igual a 0, entonces el codificador de vídeo 30 puede determinar que todas los CBF U (o CBF V) en el nivel k+1 y todos los niveles inferiores son iguales a cero. En otro ejemplo, si un nodo está asociado con un bloque de píxeles residuales que es mayor que un tamaño de TU máximo permitido, el descodificador de vídeo 30 puede determinar que el indicador de división del nodo es igual a 1. En otro ejemplo, el descodificador de vídeo 30 puede determinar que un indicador de división de un nodo raíz es igual a 1 si la Cu asociada con el nodo raíz está dividida en cuatro PU y codificada usando intra-predicción (es decir, la CU es una CU NxN intra). En otro ejemplo, el descodificador de vídeo 30 puede determinar que un indicador de división de un nodo es igual a 0 si el tamaño del bloque de píxeles residuales asociado con el nodo es igual a un tamaño de TU mínimo permitido (mínimo disponible). En otro ejemplo, el descodificador de vídeo 30 puede determinar que un indicador de división de un nodo es igual a 0 si la profundidad en el RQT es igual a una profundidad máxima permitida para el tamaño de la CU asociada con el RQT. En otro ejemplo, si la CU está inter-predicha, el descodificador de vídeo 30 puede determinar que el CBF Y de un cuarto (es decir, último) nodo en el nivel k del RQT es igual a 1 si los primeros tres nodos (subbloques de un bloque dividido en cuartos) en el nivel k del RQT, tienen CBF Y, CBF U y CBF V iguales a 0. El tamaño de CU máximo y el tamaño de TU máximo se pueden decidir mediante los parámetros de codificación introducidos en el codificador de vídeo 20. De forma similar, el descodificador de vídeo 30 puede determinar el tamaño de CU máximo y el tamaño de TU máximo permitido basándose en los parámetros de codificación introducidos en el descodificador de vídeo 30. En algunos ejemplos, el tamaño de CU máximo permitido es mayor que el tamaño de TU máximo permitido.
[0067] La FIG. 4A es un diagrama conceptual que ilustra un ejemplo de bloque de muestras de luma (Y) residuales 60 de una CU 64x64. La FIG. 4B es un diagrama conceptual que ilustra un ejemplo de bloque de muestras de croma residuales 62 de una CU 64x64. El codificador de vídeo 20 puede muestrear de forma descendente las muestras de croma de una CU en un factor de 2: 1, dando como resultado un bloque de muestras de croma residuales para la CU que tiene la mitad de la anchura y la mitad de la altura del bloque de muestras Y residuales correspondiente para la misma CU. Debido a que el sistema visual humano es menos sensible a los cambios en la crominancia que a los cambios en luminancia, dicho muestreo descendente no necesariamente reduce la calidad visual.
[0068] En el ejemplo de las FIGs. 4A y 4B, se supone que el tamaño de CU máximo es 64x64 y se supone que el tamaño de TU máximo permitido es 32x32. Debido a que la CU es mayor que el tamaño de TU máximo permitido, el codificador de vídeo 20 divide el bloque de muestras Y residuales 60 en cuatro bloques de muestras residuales más pequeños, Y0 ... Y3. Aunque no se muestra en los ejemplos de las FIGs. 4A y 4B, el codificador de vídeo 20 puede dividir más los bloques de muestras residuales Y0 ... Y3.
[0069] El codificador de vídeo 20 puede dividir el bloque de muestras de croma 62 (de tamaño 32x32) de la misma manera que el codificador de vídeo 20 divide el bloque de muestras Y. Es decir, el bloque de croma se divide con luma. Por ejemplo, si el codificador de vídeo 20 divide un bloque de muestras Y residuales en cuatro bloques de muestras Y residuales más pequeños, el codificador de vídeo 20 también divide los bloques de muestras de croma residuales correspondientes en cuatro bloques de muestras de croma residuales más pequeños. Como se muestra en el ejemplo de las FIGs. 4A, el codificador de vídeo 20 ha dividido el bloque de muestras Y residuales 60 en cuatro bloques de muestras Y residuales más pequeños. Por lo tanto, en el ejemplo de la FIG. 4B, el codificador de vídeo 20 ha dividido el bloque de muestras de croma residuales 62 en cuatro bloques de muestras de croma residuales más pequeños.
[0070] Debido a que el bloque de muestras Y residuales 60 es mayor que un tamaño de TU máximo permitido, el
5
10
15
20
25
30
35
40
45
50
55
60
65
codificador de vídeo 20 no está asociado con un CBF U o un CBF V de un nodo raíz del RQT para la CU. En otras palabras, la codificación de CBF de croma no comienza desde un nivel raíz de CU (es decir, profundidad 0 de RQT). En cambio, el codificador de vídeo 20 puede comenzar asociando CBF U y CBF V con nodos a un nivel del RQT que corresponde al tamaño de TU máximo permitido. En otras palabras, la codificación de CBF de croma comienza desde el nivel que corresponde al tamaño de TU máximo. En el ejemplo de las FIGs. 4A y 4B, el bloque de muestras
Y residuales 60 es 64x64 y el tamaño de TU máximo permitido es 32x32. Por lo tanto, el nivel 1 del RQT de la CU corresponde al tamaño de TU máximo permitido. Como resultado, en los ejemplos de las FIGs. 4A y 4B, el codificador de vídeo 20 puede comenzar la codificación de CBF de croma (es decir, CBF U y CBF V) en los nodos en el nivel 1 del RQT de la CU. Como resultado, el codificador de vídeo 20 codifica un CBF U para U0 y los CBF U de sus sub-bloques (es decir, los sub-bloques del cuarto superior izquierdo de la CU entera) de una manera jerárquica, y a continuación un CBF U para U1 y los CBF U de sus sub-bloques, y así sucesivamente.
[0071] La implementación de codificador de vídeo 20 descrito anteriormente puede usar un procedimiento de codificación diferente para CBF Y y CBF de croma (es decir, CBF U y CBF V). Además, la implementación del codificador de vídeo 20 descrito anteriormente solo aplica codificación jerárquica de CBF de croma en algunos niveles del RQT. Esto puede aumentar la complejidad del codificador de vídeo 20.
[0072] Las técnicas de esta divulgación pueden remediar estos problemas y mejorar la codificación de CBF. De acuerdo con las técnicas de esta divulgación, la indicación de CBF de croma puede comenzar en el nodo raíz del árbol cuádruple residual asociado con la CU actual, incluso si la CU actual es mayor que un tamaño de TU máximo permitido. La CU actual puede ser la CU que se codifica actualmente. La indicación de CBF de croma de esta manera puede simplificar las implementaciones del codificador de vídeo 20 y el descodificador de vídeo 30.
[0073] Por ejemplo, en los códecs de vídeo anteriores, como HEVC, la codificación jerárquica de CBF de croma comienza a partir de las transformaciones más grandes permitidas, maxTransSize. Si en el nivel k, el tamaño del bloque es mayor que maxTransSize, no se codifica ningún CBF de croma en el nivel k. Por ejemplo, el tamaño de TU máximo permitido (maxTransSize) puede ser de 32x32 y el tamaño de la CU actual puede ser de 64x64. En este ejemplo, un codificador de vídeo puede dividir automáticamente el bloque porque el tamaño de transformación más grande es más pequeño que el tamaño del bloque actual y un descodificador de vídeo puede inferir que el indicador de división es igual a 1. A continuación, en el siguiente nivel, es decir, bloque de 32x32, se codifica un CBF de croma (por ejemplo, CBF U) para cada bloque de 32x32. De acuerdo con las técnicas de esta divulgación, la codificación de CBF de croma siempre puede comenzar desde el nodo raíz del RQT de CU (es decir, la profundidad 0 del RQT). Por ejemplo, el tamaño máximo de transformación es 32x32 y la CU actual es 64x64. En este ejemplo, el codificador de vídeo 20 puede indicar el valor de un CBF U para toda la CU 64x64 (es decir, esta indicación corresponde al nivel de raíz CU). En otras palabras, el nodo raíz del RQT (es decir, el nodo que corresponde a la CU 64x64 como un conjunto) puede asociarse con un CBF U que indica si alguna TU de la CU actual está asociada con un bloque de coeficientes U significativo. CBFU = 1 puede especificar que hay al menos un coeficiente distinto de cero en los sub-bloques, y CBFU puede transmitirse para cada uno de los cuatro sub-bloques 32x32. CBF U = 0 puede especificar que todos los coeficientes en los cuatro sub-bloques son cero, y por lo tanto tal vez no sea necesario que se transmita ningún CBFU. Lo mismo se puede aplicar a CBFV. Es decir, el nodo raíz del RQT puede estar asociado con un CBF V que indique si alguna TU de la CU actual está asociada con un bloque de coeficientes
V significativo.
[0074] Debido a que los CBF U o CBF V se indican de una manera jerárquica para cada nodo respectivo en el RQT, el nodo respectivo no incluye un CBF U a menos que el nodo respectivo sea el nodo raíz o un CBF U de un nodo principal del nodo respectivo indique que un nodo descendiente del nodo principal está asociado con un bloque de croma U significativo. El nodo respectivo no incluye un CBF V a menos que el nodo respectivo sea el nodo raíz o un CBF V del nodo principal del nodo respectivo indique que un nodo descendiente del nodo principal está asociado con un bloque de croma V significativo.
[0075] Por lo tanto, de acuerdo con las técnicas de esta divulgación, para cada nodo respectivo del RQT, si el nodo respectivo tiene un CBF para un componente de croma en particular y el CBF para el componente de croma en particular tiene un primer valor, el nodo respectivo o un nodo descendiente del nodo respectivo está asociado con un bloque de coeficientes significativos que se basa en muestras del componente de croma particular. Como se indicó anteriormente, esta divulgación puede usar el término "bloque de coeficientes significativos" para referirse a un bloque de coeficientes que incluye al menos un coeficiente distinto de cero. Si el nodo respectivo tiene un CBF para el componente de croma particular y el CBF para el componente de croma particular tiene un segundo valor, ni una TU que corresponda al nodo respectivo ni ninguna TU que corresponda a ningún nodo descendiente del nodo respectivo está asociada con un bloque de coeficientes significativos que se basa en muestras del componente de croma particular. Si el nodo respectivo tiene un CBF para el componente de croma particular y el CBF para el componente de croma particular tiene el segundo valor, ningún nodo descendiente del nodo respectivo está asociado con un CBF para el componente de croma particular.
[0076] En algunos códecs de vídeo existentes, como HEVC, los CBF de croma (es decir, CBF U y CBF V) se codifican de una manera jerárquicas y los CBF de luma (es decir, CBF Y) se codifican en solo nodos de hoja. Por el contrario, de acuerdo con las técnicas de esta divulgación, los CBF Y pueden indicarse, en cada nivel, de una
5
10
15
20
25
30
35
40
45
50
55
60
65
manera jerárquica, de forma similar a CBF U y V. Por ejemplo, el codificador de vídeo 20 puede indicar, en cada nivel, un CBF U y un CBF V. Si el CBF U está en el nivel 0 (es decir, el nivel del nodo raíz dentro del RQT del bloque actual), no hay coeficientes distintos de cero en los bloques de coeficientes U del bloque actual de bloques divididos adicionales del bloque actual, y, por lo tanto, tal vez no sea necesario transmitir más CBF U para los bloques divididos adicionales. Lo mismo se aplica a los CBF V. Además, el codificador de vídeo 20 puede indicar CBF Y de la misma manera jerárquica que CBF U y V. De esta manera, la codificación de CBF para luma y croma puede unificarse. Es decir, para cada nodo respectivo de un RQT, si el CBF Y del nodo respectivo es igual a 1, un bloque de coeficientes Y asociado con el nodo respectivo o un bloque de coeficientes Y asociado con un nodo descendiente del nodo respectivo incluye al menos un coeficiente distinto de cero. Si el CBF Y del nodo respectivo es igual a 0, el nodo respectivo no está asociado con un bloque de coeficientes Y significativo o ninguno de los nodos descendientes de los nodos respectivos está asociado con un bloque de coeficientes Y significativo. Si el CBF Y del nodo respectivo es igual a 0, ninguno de los nodos descendientes del nodo respectivo está asociado con un CBF Y. En otras palabras, si el CBF Y del nodo respectivo es igual a 0, el codificador de vídeo 20 no indica CBF Y para ningún nodo descendiente (es decir, bloques divididos) del nodo respectivo. Por lo tanto, los nodos pueden estar asociados con CBF Y de una manera similar a la de CBF U y V. Las técnicas de esta divulgación descritas anteriormente relacionadas con indicación de CBF de croma en un nodo raíz de un RQT también se pueden aplicar a CBF Y.
[0077] En algunos ejemplos, el codificador de vídeo 20 puede indicar un indicador residual (por ejemplo, "cbf_root_flag") en un nodo raíz del RQT de una CU. Si el indicador residual es igual a 0, el descodificador de vídeo 30 puede determinar automáticamente (por ejemplo, inferir) que ninguno de los bloques de coeficientes Y, U o V asociados con la CU es significativo (es decir, todos los coeficientes Y, U y V son 0). Si el indicador residual es igual a 1, al menos un bloque de coeficientes Y, U o V asociado con la CU es significativo. Además, si el indicador residual es igual a 1 y el CBF U y el CBF V del nodo raíz son iguales a 0, el descodificador de vídeo 30 puede determinar automáticamente (por ejemplo, inferir) que hay al menos un bloque de coeficientes Y significativo asociado con la CU. En otras palabras, el descodificador de vídeo 30 puede inferir un valor de 1 para CBF Y en este caso. En consecuencia, en algunos ejemplos, si el indicador residual es igual a 1 y tanto el CBF U como el CBF V del nodo raíz son iguales a 0, el codificador de vídeo 20 no indica el CBF Y para el nodo raíz.
[0078] Para cualquier nodo de un RQT en cada nivel del RQT, si CBF Y, CBF U y CBF V del nodo son iguales a 0, el descodificador de vídeo 30 puede determinar automáticamente (es decir, inferir) que el nodo no tiene ningún nodo secundario. En otras palabras, si CBF Y, CBF U y CBF V del nodo son iguales a 0, el descodificador de vídeo 30 puede inferir el valor 0 para el indicador de división del nodo. En consecuencia, si CBF Y, CBF U y CBF V de un nodo son iguales a 0, el codificador de vídeo 20 no indica el indicador de división del nodo.
[0079] Por otra parte, el codificador de vídeo 20 puede realizar codificación CABAC en los indicadores de división de los nodos. Para llevar a cabo codificación CABAC en un indicador de división, el codificador de vídeo 20 puede seleccionar un contexto de codificación para el indicador de división y a continuación usar el contexto de codificación para realizar codificación CABAC del indicador de división. De acuerdo con las técnicas de esta divulgación, el codificador de vídeo 20 puede seleccionar el contexto de codificación para el indicador de división de un nodo basándose, al menos en parte, en los valores de CBF Y, CBF U y/o CBF V del nodo. En otro ejemplo, si un CBF Y es igual a 0, un codificador de vídeo (por ejemplo, un codificador de vídeo 20 o un descodificador de vídeo 30) puede seleccionar un primer contexto de codificación para codificar el indicador de división. En este ejemplo, si un CBF Y es igual a 1, el codificador de vídeo puede usar un segundo contexto de codificación para codificar el indicador de división. En otro ejemplo, el codificador de vídeo puede seleccionar el contexto de codificación para el indicador de división basándose en si la CU está intra-predicha o inter-predicha. En este ejemplo, el codificador de vídeo puede determinar un índice de contexto de un contexto de codificación para codificar el indicador de división calculando el tipo de bloque CBF Y+ 2 * tipo de bloque, donde tipo de bloque es igual a 0 para una CU intra-predicha y tipo de bloque es igual a 1 para una CU inter-predicha.
[0080] Un codificador de vídeo (por ejemplo, el codificador de vídeo 20 o descodificador de vídeo 30) puede realizar CABAC en CBF Y, CBF U y CBF V de un nodo de un RQT. De acuerdo con las técnicas de esta divulgación, el codificador de vídeo puede, en algunos ejemplos, usar el mismo contexto de codificación cuando se realiza CABAC en CBF Y, CBF U y CbF V de un nodo. Usar el mismo contexto de codificación al realizar CABAC en CBF Y, CBF U y CBF V de un nodo puede simplificar el proceso de CABAC y puede acelerar la codificación de vídeo. En algunos ejemplos, el codificador de vídeo puede seleccionar el contexto de codificación basándose en la profundidad del nodo del RQT. Por ejemplo, el codificador de vídeo puede seleccionar un primer contexto de codificación si el nodo está en el nivel 0 del RQT, un segundo contexto de codificación si el nodo está en el nivel 1 del RQT, y así sucesivamente. En dichos ejemplos, el codificador de vídeo puede usar la siguiente ecuación para determinar un índice de contexto ctx_idx que identifica un contexto de codificación:
ctx_idx = transform_depth
En otros ejemplos, el codificador de vídeo puede seleccionar el contexto de codificación según si el nodo es el nodo raíz del RQT. Por ejemplo, el codificador de vídeo puede usar la siguiente ecuación para determinar un índice de contexto ctx_idx que identifica un contexto de codificación:
5
10
15
20
25
30
35
40
45
50
55
60
65
ctx_idx = transform_depth == 0 ? 0 : 1
[0081] La FIG. 5 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo 20 que está configurado para implementar las técnicas de esta divulgación. La FIG. 5 se proporciona con fines de explicación y no debe considerarse limitante de las técnicas ampliamente ejemplificadas y descritas en esta divulgación. Con fines de explicación, esta divulgación describe el codificador de vídeo 20 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otras normas o procedimientos de codificación.
[0082] En el ejemplo de la FIG. 5, el codificador de vídeo 20 incluyen una unidad de procesamiento de predicción 100, una unidad de generación residual 102, una unidad de procesamiento de transformación 104, una unidad de cuantificación 106, una unidad de cuantificación inversa 108, una unidad de procesamiento de transformación inversa 110, una unidad de reconstrucción 112, una unidad de filtro 113, una memoria intermedia de imágenes descodificadas 114, y una unidad de codificación por entropía 116. La unidad de procesamiento de predicción 100 incluye una unidad de procesamiento de inter-predicción 121 y una unidad de procesamiento de intra-predicción 126. La unidad de procesamiento de inter-predicción 121 incluye una unidad de estimación de movimiento 122 y una unidad de compensación de movimiento 124. En otros ejemplos, el codificador de vídeo 20 puede incluir más, menos o diferentes componentes funcionales.
[0083] El codificador de vídeo 20 puede recibir datos de vídeo. Para codificar los datos de vídeo, el codificador de vídeo 20 puede codificar cada fragmento de cada imagen de los datos de vídeo. Como parte de codificación en un fragmento, el codificador de vídeo 20 puede codificar cada CTB en el fragmento. Como parte de la codificación de un CTB, la unidad de procesamiento de predicción 100 puede realizar la división de árbol cuádruple en el bloque de píxeles asociado con el CTB para dividir el bloque de píxeles en bloques de píxeles progresivamente más pequeños. Los bloques de píxeles más pequeños se pueden asociar con CU. Por ejemplo, la unidad de procesamiento de predicción 100 puede dividir un bloque de píxeles de un CTB en cuatro sub-bloques de igual tamaño, dividir uno o más de los sub-bloques en cuatro sub-sub-bloques de igual tamaño, etc.
[0084] El codificador de vídeo 20 puede codificar CU de un CTB para generar representaciones codificadas de las CU (es decir, CU codificadas). Como parte de la codificación de una CU, la unidad de procesamiento de predicción 100 puede dividir el bloque de píxeles de la CU entre una o más PU de la CU. El codificador de vídeo 20 y el descodificador de vídeo 30 pueden soportar varios tamaños de PU. Suponiendo que el tamaño de una CU particular sea 2Nx2N, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden soportar tamaños de PU de 2Nx2N o NxN para intra-predicción, y tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N, NxN o similares para interpredicción. El codificador de vídeo 20 y el descodificador de vídeo 30 también pueden soportar división asimétrica para tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N para inter-predicción.
[0085] La unidad de procesamiento de inter-predicción 121 puede generar datos predictivos para una PU realizando inter-predicción en cada PU de una CU. Los datos predictivos para la PU pueden incluir un bloque de píxeles predictivos que corresponde a la PU y la información de movimiento para la PU. Los fragmentos pueden ser fragmentos I, fragmentos P o fragmentos B. La unidad de inter-predicción 121 puede realizar diferentes operaciones para una PU de una CU dependiendo de si la PU está en un fragmento I, un fragmento P o un fragmento B. En un fragmento en I, todas las PU son intra-predichas. Por lo tanto, si la PU está en un fragmento I, la unidad de interpredicción 121 no realiza inter-predicción en la PU.
[0086] Si una PU está en un fragmento P, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia en una lista de imágenes de referencia (por ejemplo, "lista 0") para un bloque de referencia para la PU. El bloque de referencia de la PU puede ser un bloque de píxeles que se corresponda más aproximadamente al bloque de píxeles de la PU. La unidad de estimación de movimiento 122 puede generar un índice de imagen de referencia que indica la imagen de referencia en la lista 0 que contiene el bloque de referencia de la PU y un vector de movimiento que indica un desplazamiento espacial entre el bloque de píxeles de la PU y el bloque de referencia. La unidad de estimación de movimiento 122 puede emitir el índice de imagen de referencia y el vector de movimiento como la información de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar el bloque de píxeles predictivos de la PU basándose en el bloque de referencia indicado por la información de movimiento de la PU.
[0087] Si una PU está en un fragmento B, la unidad de estimación de movimiento 122 puede llevar a cabo interpredicción unidireccional o inter-predicción bidireccional para la PU. Para realizar inter-predicción unidireccional para la PU, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia de una primera lista de imágenes de referencia ("lista 0") o una segunda lista de imágenes de referencia ("lista 1") para un bloque de referencia para la PU. La unidad de estimación de movimiento 122 puede generar, como la información de movimiento de la PU, un índice de imagen de referencia que indica una posición en la lista 0 o la lista 1 de la imagen de referencia que contiene el bloque de referencia, un vector de movimiento que indica un desplazamiento espacial entre el bloque de píxeles de la PU y el bloque de referencia, y un indicador de dirección de predicción que indica si la imagen de referencia está en la lista 0 o en la lista 1.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0088] Para realizar inter-predicción bidireccional para una PU, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia en la lista 0 para un bloque de referencia para la PU y también puede buscar las imágenes de referencia de la lista 1 para otro bloque de referencia para la PU. La unidad de estimación de movimiento 122 puede generar índices de imágenes de referencia que indiquen posiciones en la lista 0 y lista 1 de las imágenes de referencia que contienen los bloques de referencia. Además, la unidad de estimación de movimiento 122 puede generar vectores de movimiento que indican desplazamientos espaciales entre los bloques de referencia y el bloque de píxeles de la PU. La información de movimiento de la PU puede incluir los índices de imágenes de referencia y los vectores de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar el bloque de píxeles predictivos de la PU basándose en el bloque de referencia indicado por la información de movimiento de la PU.
[0089] La unidad de procesamiento de intra-predicción 126 puede generar datos predictivos para una PU realizando una intra-predicción en la PU. Los datos predictivos para la PU pueden incluir un bloque de píxeles predictivos para la PU y varios elementos sintácticos. La unidad de procesamiento de intra-predicción 126 puede realizar la intra- predicción en PU en fragmentos I, fragmentos P y fragmentos B.
[0090] Para realizar la intra-predicción en una PU, la unidad de procesamiento de intra-predicción 126 puede usar múltiples modos de intra-predicción para generar múltiples conjuntos de datos predictivos para la PU. Para usar un modo de intra-predicción para generar un conjunto de datos predictivos para la PU, la unidad de procesamiento de intra-predicción 126 puede extender muestras de bloques de muestras de PU próximas a través de los bloques de muestras de la PU en una dirección asociada con el modo de intra-predicción . Las PU próximas pueden estar arriba, arriba y a la derecha, arriba y a la izquierda, o a la izquierda de la PU, asumiendo un orden de codificación de arriba a abajo, de izquierda a derecha para los PU, CU y cTb. La unidad de procesamiento de intra-predicción 126 puede usar varios números de modos de intra-predicción, por ejemplo, 33 modos de intra-predicción direccional. En algunos ejemplos, el número de modos de intra-predicción puede depender del tamaño del bloque de píxeles de la PU.
[0091] La unidad de procesamiento de predicción 100 puede seleccionar los datos predictivos para PU de una CU entre los datos predictivos generados por la unidad de procesamiento de inter-predicción 121 para las PU o los datos predictivos generados por la unidad de procesamiento de de intra-predicción 126 para las PU. En algunos ejemplos, la unidad de procesamiento de predicción 100 selecciona los datos predictivos para la PU de la CU basándose en las métricas de velocidad / distorsión de los conjuntos de datos predictivos. Los bloques de píxeles predictivos de los datos predictivos seleccionados pueden denominarse en el presente documento bloques de píxeles predictivos seleccionados.
[0092] La unidad de generación residual 102 puede generar, basándose en el bloque de píxeles de una CU y los bloques de píxeles predictivos seleccionados de las PU de la CU, un bloque de píxeles residuales de una CU. Por ejemplo, la unidad de generación residual 102 puede generar el bloque de píxeles residuales de la CU de manera que cada muestra en el bloque de píxeles residuales tenga un valor igual a una diferencia entre una muestra en el bloque de píxeles de la CU y una muestra correspondiente en un bloque de píxeles predictivos seleccionado de una PU de la CU.
[0093] La unidad de procesamiento de transformación 104 puede realizar división de árbol cuádruple para dividir el bloque de píxeles residuales de una CU en sub-bloques. Cada bloque de píxeles residuales no dividido puede estar asociado con una TU diferente de la CU. Los tamaños y posiciones de los bloques de píxeles residuales asociados con las TU de una CU pueden o no basarse en los tamaños y posiciones de los bloques de píxeles asociados con las PU de la CU. Una estructura en árbol cuádruple conocida como "árbol cuádruple residual" (RQT) puede incluir nodos asociados con cada uno de los bloques de píxeles residuales. Las TU de una CU pueden corresponder a nodos de hoja del RQT.
[0094] Dado que los píxeles de los bloques de píxeles residuales de las TU pueden comprender una muestra Y, una muestra U y una muestra V, cada una de las TU puede estar asociada a un bloque de muestras Y, un bloque de muestras U y un bloque de muestras V. La unidad de procesamiento de transformación 104 puede generar bloques de coeficientes para cada TU de una CU aplicando una o más transformaciones a los bloques de muestras residuales asociados con la TU. La unidad de procesamiento de transformación 104 puede aplicar varias transformaciones a un bloque de muestras residuales asociado con una TU. Por ejemplo, la unidad de procesamiento de transformación 104 puede aplicar una transformación de coseno discreta (DCT), una transformación direccional o una transformación conceptualmente similar al bloque de muestras residuales.
[0095] De acuerdo con las técnicas de esta divulgación, la unidad de procesamiento de transformación 104 puede generar datos que representan un RQT para una CU. El RQT puede incluir una jerarquía de nodos. El nodo raíz del RQT puede estar asociado con un CBF U y un CBF V, independientemente de si el bloque de píxeles residuales de la CU es más grande que un tamaño de TU máximo permitido. Además, en algunos ejemplos, cualquier nodo del RQT puede estar asociado con un CBF Y.
[0096] La unidad de procesamiento de transformación 104 puede determinar una transformación para aplicar
5
10
15
20
25
30
35
40
45
50
55
60
65
basándose en un tamaño del bloque de muestras residuales al que se aplicará la transformación. Por ejemplo, la unidad de procesamiento de transformación 104 puede aplicar diferentes transformaciones dependiendo de si el bloque de muestras residuales es 4x4, 8x8, 16x16 u otro tamaño. En algunos ejemplos, la unidad de procesamiento de transformación 104 puede aplicar transformaciones a bloques de muestras residuales de forma rectangular, tales como bloques de muestras residuales que son 16x4, 32x8, etc.
[0097] La unidad de cuantificación 106 puede cuantificar los coeficientes en un bloque de coeficientes asociado con una TU. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos o a la totalidad de los coeficientes. Por ejemplo, un coeficiente de n bits puede redondearse a un coeficiente de m bits durante la cuantificación, donde n es mayor que m. La unidad de cuantificación 106 puede cuantificar un bloque de coeficientes asociado con una TU de una CU basándose en un valor de parámetro de cuantificación (QP) asociado con la CU. El codificador de vídeo 20 puede ajustar el grado de cuantificación aplicado a los bloques de coeficientes asociados con una CU ajustando el valor qP asociado con la CU.
[0098] La unidad de cuantificación inversa 108 y la unidad de procesamiento de transformación inversa 110 pueden aplicar cuantificación inversa y transformaciones inversas al bloque de coeficientes, respectivamente, para reconstruir un bloque de muestras residuales a partir del bloque de coeficientes. La unidad de reconstrucción 112 puede añadir el bloque de muestras residuales reconstruido a las muestras correspondientes de uno o más bloques de muestras predictivas generados por la unidad de procesamiento de predicción 100 para producir un bloque de muestras reconstruido asociado con una TU. Mediante la reconstrucción de bloques de muestras para cada TU de una CU de esta manera, el codificador de vídeo 20 puede reconstruir el bloque de píxeles de la CU.
[0099] La unidad de filtro 113 puede realizar una operación de desbloqueo para reducir los artefactos de bloqueo en el bloque de píxeles asociado con una CU. La memoria intermedia de imágenes descodificadas 114 puede almacenar los bloques de píxeles reconstruidos después de que la unidad de filtro 113 realice la una o más operaciones de desbloqueo en los bloques de píxeles reconstruidos. La unidad de inter-predicción 121 puede utilizar una imagen de referencia que contiene los bloques de píxeles reconstruidos para realizar inter-predicción en las PU de otras imágenes. Además, la unidad de procesamiento de intra-predicción 126 puede usar bloques de píxeles reconstruidos en la memoria intermedia de imágenes descodificadas 114 para realizar intra-predicción en otras PU en la misma imagen que la CU.
[0100] La unidad de codificación por entropía 116 puede recibir datos de otros componentes funcionales del codificador de vídeo 20. Por ejemplo, la unidad de codificación por entropía 116 puede recibir bloques de coeficientes de la unidad de cuantificación 106 y puede recibir elementos sintácticos de la unidad de procesamiento de predicción 100. La unidad de codificación por entropía 116 puede realizar una o más operaciones de codificación por entropía en los datos para generar datos codificados por entropía. Por ejemplo, la unidad de codificación por entropía 116 puede realizar una operación de codificación de longitud variable adaptable al contexto (CAVLC), una operación de CABAC, una operación de codificación de longitud variable a variable (V2V), una operación de codificación aritmética binaria adaptable al contexto basada en sintaxis (SBAC), una operación de codificación por entropía de división de intervalo de probabilidad (PIPE), una operación de codificación de Golomb exponencial u otro tipo de operación de codificación por entropía en los datos. El codificador de vídeo 20 puede emitir un flujo de bits que incluye datos codificados por entropía generados por la unidad de codificación por entropía 116. Por ejemplo, el flujo de bits puede incluir datos que representan un RQT para una CU.
[0101] La FIG. 6 es un diagrama de bloques que ilustra un ejemplo de descodificador de vídeo 30 que está configurado para implementar las técnicas de esta divulgación. La FIG. 6 se proporciona con fines de explicación y no se limita a las técnicas ampliamente ejemplificadas y descritas en esta divulgación. Con fines de explicación, esta divulgación describe el descodificador de vídeo 30 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otras normas o procedimientos de codificación.
[0102] En el ejemplo de la FIG. 6, el descodificador de vídeo 30 incluye una unidad de descodificación por entropía 150, una unidad de procesamiento de predicción 152, una unidad de cuantificación inversa 154, una unidad de procesamiento de transformación inversa 156, una unidad de reconstrucción 158, una unidad de filtro 159 y una memoria intermedia de imágenes descodificadas 160. La unidad de procesamiento de predicción 152 incluye una unidad de compensación de movimiento 162 y la unidad de procesamiento de intra-predicción 164. En otros ejemplos, el descodificador de vídeo 30 puede incluir más, menos o diferentes componentes funcionales.
[0103] El descodificador de vídeo 30 puede recibir un flujo de bits. La unidad de descodificación por entropía 150 puede analizar el flujo de bits para extraer elementos sintácticos del flujo de bits. Como parte del análisis del flujo de bits, la unidad de descodificación por entropía 150 puede descodificar por entropía de elementos sintácticos codificados por entropía en el flujo de bits. La unidad de procesamiento de predicción 152, la unidad de cuantificación inversa 154, la unidad de procesamiento de transformación inversa 156, la unidad de reconstrucción 158 y la unidad de filtro 159 pueden generar datos de vídeo descodificados basándose en los elementos sintácticos extraídos del flujo de bits.
[0104] El flujo de bits puede comprender una serie de unidades NAL. Las unidades NAL del flujo de bits pueden
5
10
15
20
25
30
35
40
45
50
55
60
65
incluir unidades NAL de fragmentos codificados. Como parte del análisis del flujo de bits, la unidad de descodificación por entropía 150 puede extraer y descodificar por entropía elementos sintácticos de las unidades NAL de fragmentos codificados. Cada uno de los fragmentos codificados puede incluir una cabecera de fragmento y datos de fragmento. La cabecera de fragmento puede contener elementos sintácticos pertenecientes a un fragmento. Los elementos sintácticos en la cabecera de fragmento pueden incluir un elemento sintáctico que identifica un PPS asociado con una imagen que contiene el fragmento.
[0105] De acuerdo con las técnicas de esta divulgación, la unidad de descodificación por entropía 150 puede analizar, a partir del flujo de bits, un CBF de un nodo raíz de un RQT de una CU, independientemente de si un bloque de píxeles residuales de la CU es mayor que una tamaño de TU máximo permitido. Además, si el CBF tiene un primer valor, la unidad de descodificación por entropía 150 puede analizar, a partir del flujo de bits, un bloque de coeficientes de croma (por ejemplo, un bloque de coeficientes U o un bloque de coeficientes V) asociado con un nodo de hoja del RQT. Si el CBF tiene un segundo valor que es diferente del primer valor, la unidad de descodificación por entropía 150 no analiza el bloque de coeficientes de croma a partir del flujo de bits.
[0106] Además, el descodificador de vídeo 30 puede realizar una operación de reconstrucción en una CU no dividida. Para realizar la operación de reconstrucción en una CU no dividida, el descodificador de vídeo 30 puede realizar una operación de reconstrucción en cada TU de la CU. Realizando la operación de reconstrucción para cada TU de la CU, el descodificador de vídeo 30 puede reconstruir un bloque de píxeles residuales asociado con la CU.
[0107] Como parte de la realización de una operación de reconstrucción en una TU de una CU, la unidad de cuantificación inversa 154 puede cuantificar de forma inversa, es decir, descuantificar, los bloques de coeficientes asociados con la TU. La unidad de cuantificación inversa 154 puede utilizar un valor QP asociado con la CU de la TU para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa para la unidad de cuantificación inversa 154 a aplicar.
[0108] Después de que la unidad de cuantificación inversa 154 cuantifique inversamente un bloque de coeficientes, la unidad de procesamiento de transformación inversa 156 puede aplicar una o más transformaciones inversas al bloque de coeficientes para generar un bloque de muestras residuales asociado con la TU. Por ejemplo, la unidad de procesamiento de transformación inversa 156 puede aplicar una DCT inversa, una transformación de número entero inversa, una transformación de Karhunen-Loeve (kLt) inversa, una transformación de rotación inversa, una transformación direccional inversa u otra transformación inversa al bloque de coeficientes.
[0109] Si se codifica una PU usando intra-predicción, la unidad de procesamiento de intra-predicción 164 puede realizar intra-predicción para generar un bloque de muestras predictivas para la PU. La unidad de procesamiento de intra-predicción 164 puede usar un modo de intra-predicción para generar el bloque de píxeles predictivos para la PU basándose en los bloques de píxeles de PU espacialmente contiguas. La unidad de procesamiento de intra- predicción 164 puede determinar el modo de intra-predicción para la PU basándose en uno o más elementos sintácticos analizados a partir del flujo de bits.
[0110] La unidad de compensación de movimiento 162 puede construir una primera lista de imágenes de referencia (lista 0) y una segunda lista de imágenes de referencia (lista 1) basándose en los elementos sintácticos extraídos del flujo de bits. Además, si se codifica una PU usando inter-predicción, la unidad de descodificación por entropía 150 puede extraer información de movimiento para la PU. La unidad de compensación de movimiento 162 puede determinar, basándose en la información de movimiento de la PU, uno o más bloques de referencia para la PU. La unidad de compensación de movimiento 162 puede generar, basándose en uno o más bloques de referencia para la PU, un bloque de píxeles predictivos para la PU.
[0111] La unidad de reconstrucción 158 puede utilizar los bloques de píxeles residuales asociados con las TU de una CU y los bloques de píxeles predictivos de las PU de la CU, es decir, datos de intra-predicción o datos de interpredicción, según corresponda, para reconstruir el bloque de píxeles de la CU. En particular, la unidad de reconstrucción 158 puede agregar muestras de los bloques de píxeles residuales a las muestras correspondientes de los bloques de píxeles predictivos para reconstruir el bloque de píxeles de la CU.
[0112] La unidad de filtro 159 puede realizar una operación de desbloqueo para reducir los artefactos de bloqueo asociados con el bloque de píxeles de la CU. El descodificador de vídeo 30 puede almacenar el bloque de píxeles de la CU en la memoria intermedia de imágenes descodificadas 160. La memoria intermedia de imágenes descodificadas 160 puede proporcionar imágenes de referencia para una posterior compensación de movimiento, intra-predicción y presentación en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 1. Por ejemplo, el descodificador de vídeo 30 puede realizar, basándose en los bloques de píxeles en la memoria intermedia de imágenes descodificadas 160, operaciones de intra-predicción o de inter-predicción en las PU de otras CU.
[0113] La FIG. 7 es un diagrama conceptual que ilustra un ejemplo de RQT 200 de acuerdo con una o más técnicas de esta divulgación. RQT 200 incluye los nodos 202-218. El nodo 202 es un nodo raíz del RQT 200. El nodo 202 puede corresponder a una CU. Los nodos 204-210 están en un segundo nivel (nivel 1) de RQT 200 y los nodos 212-
5
10
15
20
25
30
35
40
45
50
55
60
65
218 están en un tercer nivel (nivel 2) de RQT 200. Los nodos 206, 208, 210, 212, 214, 216 y 218 son nodos de hoja de RQT 200 y, en consecuencia, pueden ser TU de la CU. Como se indica mediante la línea discontinua en el ejemplo de la FIG. 7, el bloque de píxeles residuales asociado con el nodo raíz 202 puede ser mayor que un tamaño de TU máximo permitido.
[0114] De acuerdo con las técnicas de esta divulgación, el codificador de vídeo 20 puede generar un flujo de bits que incluye, para el nodo raíz 202, un indicador de división, un CBF Y, un CBF U y un CBF V. Como se ilustra en el ejemplo de la FIG. 7, el indicador de división, el CBF Y, el CBF U y el CBF V son iguales a 1. Debido a que el CBF Y, el CBF U y el CBF V del nodo raíz 202 son iguales a 1, cada nodo secundario del nodo raíz 202 (es decir, los nodos 204, 206, 208 y 210) está asociado con un indicador de división, un CBF Y, un CBF U y un CBF V. En el ejemplo de la FIG. 7, el CBF Y y el CBF V del nodo 204 son iguales a 0. Por lo tanto, los nodos secundarios del nodo 204 (es decir, los nodos 212, 214, 216 y 218) no están asociados con bloques de coeficientes Y significativos ni bloques de coeficientes V significativos y no están asociados con CBF Y ni CBF V.
[0115] La FIG. 8 es un diagrama de flujo que ilustra un ejemplo de operación 250 del codificador de vídeo 20 de acuerdo con las técnicas de esta divulgación. El diagrama de flujo de la FIG. 8 y los diagramas de flujo de las siguientes figuras se proporcionan como ejemplos. En otros ejemplos, los diagramas de flujo pueden incluir más, menos o diferentes pasos.
[0116] En el ejemplo de la FIG. 8, el codificador de vídeo 20 genera datos que representan un RQT para una CU (252). La CU es más grande que un tamaño de TU máximo permitido. El RQT incluye una jerarquía de nodos. Un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU. El nodo raíz está asociado con un CBF para un componente de croma particular, por ejemplo, U o V. El CBF para el componente de croma particular indica si alguna de las TU de la CU está asociada con un bloque de coeficientes de croma significativos. El codificador de vídeo 20 genera un flujo de bits que incluye los datos que representan el RQT para la CU (254).
[0117] La FIG. 9 es un diagrama de flujo que ilustra un ejemplo de operación 300 de un descodificador de vídeo 30, de acuerdo con las técnicas de esta divulgación. En el ejemplo de la FIG. 9, el descodificador de vídeo 30 analiza, a partir de un flujo de bits que incluye una representación codificada de los datos de vídeo, un CBF de un nodo raíz de un RQT de una CU (302). Un bloque de píxeles de la CU es más grande que un tamaño de unidad de transformación (TU) máximo permitido. Si el CBF tiene un primer valor, el descodificador de vídeo 30 puede analizar, a partir del flujo de bits, un bloque de coeficientes de croma asociado con un nodo de hoja del RQT (304). Si el CBF tiene un segundo valor que es diferente del primer valor, el bloque de coeficientes de croma asociado con el nodo de hoja no se analiza a partir del flujo de bits.
[0118] La FIG. 10A es un diagrama de flujo que ilustra un ejemplo de operación 340 para analizar elementos sintácticos de un nodo de un RQT, de acuerdo con las técnicas de esta divulgación. La operación 340 puede ser una versión ampliada de la operación 300 de la FIG. 9. En el ejemplo de la FIG. 10, la unidad de descodificación por entropía 150 del descodificador de vídeo 30 puede determinar si un nodo actual del RQT es el nodo raíz del RQT (342). En algunos ejemplos, la unidad de descodificación por entropía 150 puede determinar que el nodo actual es el nodo raíz si la profundidad del nodo actual del RQT es igual a 0.
[0119] En respuesta a la determinación de que el nodo actual es el nodo raíz del RQT ("SÍ" de 342), la unidad de descodificación por entropía 150 puede analizar un indicador residual a partir del flujo de bits (344). El indicador residual puede indicar si hay un nodo de hoja del RQT que esté asociado con un bloque de coeficientes significativos. Si el indicador residual indica que ningún nodo de hoja del RQT está asociado con un bloque de coeficientes significativos, ningún nodo del RQT está asociado con un CBF. Después de analizar el indicador residual, la unidad de descodificación por entropía 150 puede determinar si el indicador residual es igual a 0 (346).
[0120] En respuesta a la determinación de que el indicador residual es igual a 0 ("SÍ" de 346), la unidad de descodificación por entropía 150 puede haber terminado de analizar los elementos sintácticos del nodo actual del RQT. Por otro lado, en respuesta a la determinación de que el indicador residual es igual a 1 ("NO" de 346), la unidad de descodificación por entropía 150 puede analizar CBF Y, CBF U y CBF V del nodo actual a partir del flujo de bits (354) . El CBF Y del nodo raíz puede indicar si cualquier nodo de hoja del RQT está asociado con un bloque de coeficientes de luma significativos.
[0121] En respuesta a la determinación de que el nodo actual no es el nodo raíz del RQT ("NO" de 342), la unidad de descodificación por entropía 150 puede determinar si un CBF Y del nodo principal del nodo actual es igual a 1 (356). Si el nodo principal del nodo actual no tiene un CBF Y, la unidad de descodificación por entropía 150 puede determinar que el CBF Y del nodo principal del nodo actual es igual a 0. En respuesta a la determinación de que el CBF Y del nodo principal del nodo actual es igual a 1 ("SÍ" de 356), la unidad de descodificación por entropía 150 puede analizar un CBF Y a partir del flujo de bits (358). Por lo tanto, el nodo raíz está asociado con un CBF Y que indica si alguna de las TU de la CU está asociada con un bloque de coeficientes de luma significativos. En otras palabras, el CBF Y puede indicar si alguna TU que corresponde al nodo actual o un nodo descendiente del nodo actual está asociada con un bloque de coeficientes Y significativo.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0122] Después de analizar el CBF Y o después de determinar que el CBF Y del nodo principal del nodo actual no
es igual a 1 ("NO" de 356), la unidad de descodificación por entropía 150 puede determinar si un CBF U del nodo
principal del nodo actual es igual a 1 (360). Si el nodo principal del nodo actual no tiene un CBF U, la unidad de
descodificación por entropía 150 puede determinar que el CBF U del nodo principal del nodo actual es igual a 0. En respuesta a la determinación de que el CBF U del nodo principal del nodo actual es igual a 1 ("SÍ" de 360), la unidad de descodificación por entropía 150 puede analizar un CBF U del flujo de bits (362). El CBF U puede indicar si el nodo actual o cualquier nodo descendiente del nodo actual está asociado con un bloque de coeficientes U significativo.
[0123] Después de analizar el CBF U o después de determinar que el CBF U del nodo principal del nodo actual no
es igual a 1 ("NO" de 360), la unidad de descodificación por entropía 150 puede determinar si un CBF V del nodo
principal del nodo actual es igual a 1 (364). Si el nodo principal del nodo actual no tiene un CBF V, la unidad de
descodificación por entropía 150 puede determinar que el CBF V del nodo principal del nodo actual es igual a 0. En respuesta a la determinación de que el CBF V del nodo principal del nodo actual es igual a 1 ("SÍ" de 364), la unidad de descodificación por entropía 150 puede analizar un CBF V del flujo de bits (366). El CBF V puede indicar si el nodo actual o un nodo descendiente del nodo actual está asociado con un bloque de coeficientes V significativo.
[0124] Como se ha mencionado anteriormente, la unidad de descodificación por entropía 150 puede realizar CABAC al analizar algunos elementos sintácticos a partir del flujo de bits. En algunos ejemplos, el codificador de vídeo 20 puede realizar, basándose en un mismo contexto de codificación, codificación CABAC en CBF Y, CBF U y CBF V del nodo actual del RQT. En dichos ejemplos, cuando la unidad de descodificación por entropía 150 analiza CBF Y, CBF U y CBF V, la unidad de descodificación por entropía 150 puede realizar, basándose en el mismo contexto de codificación, descodificación CABAC en CBF Y, CBF U y CBF V del nodo actual del RQT.
[0125] Además, en algunos ejemplos, el codificador de vídeo 20 puede seleccionar, basándose en profundidades de nodos del RQT, contextos de codificación para CBF Y, CBF U y CBF V especificados por los nodos del RQT. En algunos ejemplos, un valor de índice del contexto de codificación seleccionado es igual a la profundidad de un nodo del RQT. Por ejemplo, si la profundidad de un nodo es 2, el valor de índice del contexto de codificación seleccionado es igual a 2. El codificador de vídeo 20 puede realizar, basándose en los contextos de codificación seleccionados para los CBF Y, U y V, operaciones de codificación por entropía en los CBF Y, U y V. Asimismo, cuando la unidad de descodificación por entropía 150 analiza los CBF Y, U y V, la unidad de descodificación por entropía 150 puede seleccionar, basándose en las profundidades de los nodos del RQT, contextos de codificación para CBF Y, U y V especificados por los nodos del RQT. La unidad de descodificación por entropía 150 puede realizar, basándose en los contextos de codificación seleccionados para los CBF Y, U y V, operaciones de descodificación por entropía en los CBF Y, U y V.
[0126] Después de analizar el CBF V, después de determinar que el CBF V del nodo principal del nodo actual no es igual a 1 ("NO" de 364), o después de analizar los CBF Y, CBF U y CBF V en acción 354 , la unidad de descodificación por entropía 150 puede determinar si un bloque de píxeles residuales asociado con el nodo actual es mayor que un tamaño de TU máximo permitido (368). En respuesta a la determinación de que el bloque de píxeles residuales asociado con el nodo actual no es mayor que el tamaño de TU máximo permitido ("NO" de 368), la unidad de descodificación por entropía 150 puede determinar si el bloque de píxeles residuales asociado con el nodo actual tiene un tamaño de TU mínimo permitido (370).
[0127] En respuesta a la determinación de que el bloque de píxeles residuales del nodo actual no tiene el tamaño de TU mínimo permitido ("NO" de 370), la unidad de descodificación por entropía 150 puede determinar si CBF Y, CBF U y CBF V del nodo actual son iguales a 0 (371). Si CBF Y, CBF U y cBf V del nodo actual son iguales a 0, la unidad de descodificación por entropía 150 puede determinar que el nodo actual es un nodo de hoja que no está asociado con ningún bloque de coeficientes significativos. En consecuencia, si CBF Y, CBF U y CBF V del nodo actual son iguales a 0 ("SÍ" de 371), la unidad de descodificación por entropía 150 puede haber terminado de analizar el nodo actual. Por lo tanto, si el CBF Y del nodo, el CBF U del nodo y el CBF V del nodo tienen un primer valor (por ejemplo, 0), el nodo no está asociado con un indicador de división, con el indicador de división indicando si el nodo tiene una pluralidad de nodos secundarios.
[0128] En respuesta a la determinación de que los elementos sintácticos CBF Y, CBF U y CBF V del nodo actual no son iguales a 0 ("NO" de 371), la unidad de descodificación por entropía 150 puede analizar un indicador de división a partir del flujo de bits (372). El indicador de división puede indicar si el nodo actual tiene una pluralidad de nodos secundarios. Por lo tanto, si al menos uno del CBF Y del nodo actual, el CBF U del nodo actual y el CBF V del nodo actual tiene un segundo valor (por ejemplo, 1) que es diferente del primer valor (por ejemplo. 0), el nodo actual está asociado con el indicador de división. De esta manera, la unidad de descodificación por entropía 150 puede hacer, basándose en un CBF Y de un nodo del RQT, un CBF U del nodo y un CBF V del nodo, una determinación para analizar un indicador de división de un nodo del RQT.
[0129] En algunos ejemplos, el codificador de vídeo 20 puede realizar codificación CABAC en el indicador de división. Cuando el codificador de vídeo 20 realiza codificación CABAC en el indicador de división, el codificador de
5
10
15
20
25
30
35
40
45
50
55
60
65
vídeo 20 puede seleccionar un contexto de codificación para el indicador de división. En algunos ejemplos, el codificador de vídeo 20 puede seleccionar el contexto de codificación basándose en un CBF (por ejemplo, CBF Y, CBF U y/o CBF V) del nodo actual. Además, en algunos ejemplos, el codificador de vídeo 20 puede seleccionar el contexto de codificación basándose en el CBF Y, el CBF U y el CBF V del nodo actual. El codificador de vídeo 20 puede realizar, basándose en el contexto de codificación seleccionado, codificación CABAC en el indicador de división del nodo actual. De manera similar, cuando la unidad de descodificación por entropía 150 analiza el indicador de división a partir del flujo de bits, la unidad de descodificación por entropía 150 puede seleccionar (por ejemplo, basándose en un CBF del nodo actual) un contexto de codificación. En algunos ejemplos, la unidad de descodificación por entropía 150 puede seleccionar el contexto de codificación basándose en el cBf Y, el CBF U y/o el CBF V del nodo actual. La unidad de descodificación por entropía 150 puede realizar, basándose en el contexto de codificación seleccionado, la descodificación CABAC en el indicador de división del nodo actual.
[0130] La unidad de descodificación por entropía 150 puede determinar si el indicador de división es igual a 1 (374). En respuesta a la determinación de que el indicador de división es igual a 1 ("SÍ" de 374) o en respuesta a la determinación de que el bloque de píxeles residuales asociado con el nodo actual es mayor que el tamaño de TU máximo permitido ("SÍ" de 368) , la unidad de descodificación por entropía 150 puede analizar los nodos secundarios del nodo actual (376). De esta forma, la unidad de descodificación por entropía 150 puede, en respuesta a tomar la determinación de analizar el indicador de división del flujo de bits, determinar, basándose en el indicador de división del nodo actual, si analizar a partir del flujo de bits una pluralidad de nodos secundarios del nodo actual. La unidad de descodificación por entropía 150 puede analizar los nodos secundarios realizando la operación 340 en cada uno de los nodos secundarios. En respuesta a la determinación de que el bloque de píxeles residuales del nodo actual tiene el tamaño de TU mínimo permitido ("SÍ" de 370) o en respuesta a la determinación de que el indicador de división no es igual a 1 ("NO" de 374), la unidad de descodificación por entropía 150 puede realizar la parte de la operación 340 ilustrada en el ejemplo de la FIG. 10B.
[0131] La FIG. 10B es un diagrama de flujo que ilustra una continuación del ejemplo de operación 340 de la FIG. 10A, de acuerdo con una o más técnicas de esta divulgación. En el ejemplo de la FIG. 10B, la unidad de descodificación por entropía 150 puede determinar si el CBF Y del nodo actual es igual a 1 (378). En respuesta a la determinación de que el CBF Y del nodo actual es igual a 1 ("SÍ" de 378), la unidad de descodificación por entropía 150 puede analizar un bloque de coeficientes Y a partir del flujo de bits (380). Además, en respuesta a la determinación de que el CBF Y del nodo actual no es igual a 1 ("NO" de 378) o después de analizar el bloque de coeficientes Y a partir del flujo de bits (380), la unidad de descodificación por entropía 150 puede determinar si el CBF U del nodo actual es igual a 1 (382).
[0132] En respuesta a la determinación de que el CBF U del nodo actual es igual a 1 ("SÍ" de 382), la unidad de descodificación por entropía 150 puede analizar un bloque de coeficientes U a partir del flujo de bits (384). Además, en respuesta a la determinación de que el CBF U del nodo actual no es igual a 1 ("NO" de 382) o después de analizar el bloque de coeficientes U a partir del flujo de bits (384), la unidad de descodificación por entropía 150 puede determinar si el CBF V del nodo actual es igual a 1 (386).
[0133] En respuesta a la determinación de que el CBF V del nodo actual es igual a 1 ("SÍ" de 386), la unidad de descodificación por entropía 150 puede analizar un bloque de coeficientes V a partir del flujo de bits (388). Además, en respuesta a la determinación de que el CBF V del nodo actual no es igual a 1 ("NO" de 386) o después de analizar el bloque de coeficientes V a partir del flujo de bits (388), la unidad de descodificación por entropía 150 puede haber terminado de analizar el nodo actual. Aunque el análisis anterior ha descrito comportamientos particulares cuando elementos sintácticos particulares tienen valores particulares (por ejemplo, 0 o 1), las técnicas de esta divulgación pueden ser aplicables cuando los elementos sintácticos particulares tienen valores distintos de los descritos anteriormente.
[0134] En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden almacenarse, como una o más instrucciones o código, en un medio legible por ordenador o transmitirse a través de este, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos o unos 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, los medios legibles por ordenador pueden corresponder en general a (1) unos medios de almacenamiento tangibles legibles por ordenador que son no transitorios, o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder desde 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.
[0135] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden 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
5
10
15
20
25
30
35
utilizarse para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe adecuadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una sede de la Red, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debería entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. El término disco, tal como se utiliza en el presente documento, incluye un disco compacto (CD), un disco láser, un disco óptico, un disco versátil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos normalmente reproducen datos magnéticamente, mientras que otros discos reproducen datos ópticamente con láseres. Las combinaciones de lo anterior deberían incluirse también dentro del alcance de los medios legibles por ordenador.
[0136] Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales 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), formaciones lógicas programables in situ (FPGA) u otros circuitos lógicos equivalentes, integrados o discretos. Por consiguiente, el término "procesador", como se usa en el presente documento, puede referirse a cualquier estructura anterior o a 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 módulos de hardware y/o software dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Además, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
[0137] Las técnicas de la esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un teléfono inalámbrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, que incluyen uno o más procesadores como los descritos anteriormente, conjuntamente con software y/o firmware adecuados.
[0138] Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.
Claims (14)
1.
10
15
2.
20
25
3.
30
4.
35
5.
40
45
50
6.
55 7.
60
8.
65
REIVINDICACIONES
Un procedimiento para codificar datos de vídeo, comprendiendo el procedimiento:
generar (252) un flujo de bits que incluye datos que representan un árbol cuádruple residual, RQT, para una unidad de codificación, CU, siendo la CU más grande que el tamaño máximo permitido de unidad de transformación, TU, con el RQT que incluye una jerarquía de nodos, en el que un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU, en el que el flujo de bits incluye al menos un indicador de bloque codificado, CBF, de componente de croma en el nodo raíz del RQT, indicando cada CBF del componente de croma del nodo raíz del RQT si alguna de las TU de la CU está asociada con un bloque de coeficientes de croma significativos que está basado en muestras del componente de croma respectivo; y
emitir (254) el flujo de bits.
Un procedimiento para descodificar datos de vídeo, comprendiendo el procedimiento:
analizar (302), a partir de un flujo de bits que incluye una representación codificada de los datos de vídeo, al menos un indicador de bloque codificado, CBF, de componente de croma de un nodo raíz de un árbol cuádruple residual, RQT, de una unidad de codificación, CU, en el que un bloque de píxeles de la CU es más grande que el tamaño máximo permitido de unidad de transformación, TU; y
si el CBF del componente de croma del nodo raíz del RQT tiene un primer valor, analizar (304), a partir del flujo de bits, un bloque de coeficientes de croma asociado con un nodo de hoja del RQT, en el que si el CBF del componente de croma del nodo raíz del RQT tiene un segundo valor que es diferente del primer valor, el bloque de coeficientes de croma asociado con el nodo de hoja no se analiza a partir del flujo de bits.
El procedimiento según la reivindicación 2, en el que el procedimiento comprende además analizar, a partir del flujo de bits, un CBF de luma, Y, del nodo raíz del RQT que indica si algún nodo de hoja del RQT está asociado con un bloque de coeficientes de luma significativos.
El procedimiento según la reivindicación 2, en el que el procedimiento comprende además analizar, a partir del flujo de bits, un indicador del nodo raíz del RQT, con el indicador que indica si hay un nodo de hoja del RQT que está asociado con un bloque de coeficientes significativos, en el que si el indicador indica que ningún nodo de hoja del RQT está asociado con un bloque de coeficientes significativos, ningún nodo en el RQT está asociado con un CBF.
El procedimiento según la reivindicación 2 que comprende además:
realizar, basándose en un CBF Y de un nodo del RQT, un CBF U del nodo y un CBF V del nodo, una determinación para analizar un indicador de división de un nodo del RQT; y
en respuesta a la realización de la determinación, determinar, basándose en el indicador de división del nodo, si se debe analizar a partir del flujo de bits una pluralidad de nodos secundarios del nodo, en el que el CBF Y indica si el nodo o cualquier nodo descendiente del nodo está asociado con un bloque de coeficientes Y significativo, el CBF U indica si el nodo o cualquier nodo descendiente del nodo está asociado con un bloque de coeficientes U significativo, y el CBF V indica si el nodo o cualquier nodo descendiente del nodo está asociado con un bloque de coeficientes V significativo.
El procedimiento según la reivindicación 1, en el que el flujo de bits incluye además un CBF de luma, Y, del nodo raíz del RQT que indica si alguna de las TU de la CU está asociada con un bloque de coeficientes de luma significativos.
El procedimiento según la reivindicación 1, en el que: el nodo raíz del RQT está asociado con un indicador,
si el indicador tiene un primer valor, al menos una de las TU de la CU está asociada con un bloque de coeficientes significativos, y
si el indicador tiene un segundo valor que es diferente del primer valor, ninguna de las TU de la CU está asociada con un bloque de coeficientes significativos, y ningún nodo en el RQT está asociado con un CBF Y, un CBF U o un CBF V.
El procedimiento según la reivindicación 1, en el que para cada nodo respectivo en el RQT:
si un CBF Y del nodo respectivo, un CBF U del nodo respectivo y un CBF V del nodo respectivo tienen
10
9.
15
20
10.
25 11.
30
12.
35
40
13.
45
50
14.
55
60
15.
65
todos un primer valor, el nodo respectivo no está asociado con un indicador de división, con el indicador de división que indica si el nodo respectivo tiene una pluralidad de nodos secundarios, si al menos uno de los CBF Y del nodo respectivo, CBF U del nodo respectivo, y el CBF V del nodo respectivo tiene un segundo valor que es diferente del primer valor, el nodo respectivo está asociado con el indicador de división,
en el que el CBF Y indica si alguna TU que corresponde al nodo respectivo o un nodo descendiente del nodo respectivo está asociada con un bloque de coeficientes Y significativo,
en el que el CBF U indica si alguna TU que corresponde al nodo respectivo o un nodo descendiente del nodo respectivo está asociada con un bloque de coeficientes U significativo, y en el que el CBF V indica si alguna TU que corresponde al nodo respectivo o un nodo descendiente del nodo respectivo está asociada con un bloque de coeficientes V significativo.
El procedimiento de las reivindicaciones 1 o 2, que comprende además:
seleccionar, basándose al menos en parte en un CBF de un nodo del RQT, un contexto de codificación; y
realizar, basándose en el contexto de codificación seleccionado, codificación aritmética binaria adaptable al contexto, CABAC, en un indicador de división del nodo, con el indicador de división que indica si el nodo tiene una pluralidad de nodos secundarios.
El procedimiento según la reivindicación 1 o 2, que comprende además realizar, basándose al menos en parte en un mismo contexto de codificación, respectivamente codificación o descodificación CABAC en un CBF Y, un CBF U y un CBF V de un nodo en el RQT.
El procedimiento según la reivindicación 1 o 2, en el que un nodo que no sea de hoja del RQT está asociado con un indicador de división, un CBF Y, un CBF U y un CBF V, con el indicador de división que indica que el nodo que no sea de hoja tiene una pluralidad de nodos descendientes, el CBF Y que indica si alguno de los nodos descendientes está asociado con un bloque de coeficientes de luma significativos, el CBF U que indica si alguno de los nodos descendientes está asociado con un bloque de coeficientes U significativo, el CBF V que indica si alguno de los nodos descendientes está asociado con un bloque de coeficientes V significativo.
El procedimiento de las reivindicaciones 1 o 2, que comprende además:
seleccionar, basándose en las profundidades de los nodos del RQT, contextos de codificación para CBF Y, U y V especificados por los nodos del RQT, en los que un valor de índice del contexto de codificación es igual a una profundidad de un nodo en el RQT que especifica el CBF; y
realizar, basándose en los contextos de codificación seleccionados para los CBF Y, U y V, respectivamente, operaciones de codificación o descodificación por entropía en los CBF Y, U y V.
El procedimiento según la reivindicación 1 o 2, en el que, para cada nodo respectivo en el RQT:
el nodo respectivo no incluye un CBF U a menos que el nodo respectivo sea el nodo raíz del RQT o un CBF U de un nodo principal del nodo respectivo indique que un nodo descendiente del nodo principal está asociado con un bloque de croma U significativo; y
el nodo respectivo no incluye un CBF V a menos que el nodo respectivo sea el nodo raíz del RQT o un CBF V del nodo principal del nodo respectivo indique que un nodo descendiente del nodo principal está asociado con un bloque de croma V significativo.
Un dispositivo de codificación de vídeo que codifica datos de vídeo; con el dispositivo de codificación de vídeo que comprende medios para generar un flujo de bits que incluye datos que representan un árbol cuádruple residual, RQT, para una unidad de codificación, CU, siendo la CU más grande que el tamaño máximo permitido de una unidad de transformación, TU, con el RQT que incluye una jerarquía de nodos, en el que un nodo raíz del RQT corresponde a la CU como un todo y los nodos de hoja del RQT corresponden a las TU de la CU,
en el que el flujo de bits incluye al menos un indicador de bloque codificado de componente de croma, CBF, en el nodo raíz del RQT, indicando cada CBF del componente de croma del nodo raíz del RQT si alguna de las TU de la CU está asociada con un bloque de coeficientes de croma significativos que esté basado en muestras del componente de croma respectivo.
Un dispositivo de descodificación de vídeo que descodifica datos de vídeo, con el dispositivo de descodificación de vídeo que comprende:
medios para analizar, a partir de un flujo de bits que incluye una representación codificada de los datos de vídeo, al menos un indicador de bloque codificado, CBF, de componente de croma de un nodo raíz de un
10
árbol cuádruple residual, RQT, de una unidad de codificación, CU, en el que un bloque de píxeles de la CU es más grande que el tamaño máximo permitido de una unidad de transformación, TU; y
medios para analizar, si el CBF del componente de croma del nodo raíz del RQT tiene un primer valor, a partir del flujo de bits, un bloque de coeficientes de croma asociado con un nodo de hoja del RQT, en el que si el cBf del componente de croma del nodo raíz del RQT tiene un segundo valor que es diferente del primer valor, el bloque de coeficientes de croma asociado con el nodo de hoja no se analiza a partir del flujo de bits.
16. Un medio de almacenamiento legible por ordenador que almacena instrucciones que, cuando son ejecutadas por uno o más procesadores de un dispositivo de codificación o descodificación de vídeo, hacen que el uno o más procesadores lleven a cabo el procedimiento de cualquier procedimiento respectivo de las reivindicaciones 1 a 13.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261620765P | 2012-04-05 | 2012-04-05 | |
| US201261620765P | 2012-04-05 | ||
| US13/739,598 US9467701B2 (en) | 2012-04-05 | 2013-01-11 | Coded block flag coding |
| US201313739598 | 2013-01-11 | ||
| PCT/US2013/032989 WO2013151785A1 (en) | 2012-04-05 | 2013-03-19 | Coded block flag coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2650795T3 true ES2650795T3 (es) | 2018-01-22 |
Family
ID=49292281
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13714458.0T Active ES2650795T3 (es) | 2012-04-05 | 2013-03-19 | Codificación de indicadores de bloque codificado |
Country Status (21)
| Country | Link |
|---|---|
| US (1) | US9467701B2 (es) |
| EP (1) | EP2834978B1 (es) |
| JP (1) | JP6181150B2 (es) |
| KR (1) | KR101773240B1 (es) |
| CN (1) | CN104247424B (es) |
| AR (1) | AR092816A1 (es) |
| AU (1) | AU2013243793B2 (es) |
| BR (1) | BR112014024920B1 (es) |
| CA (1) | CA2866900C (es) |
| DK (1) | DK2834978T3 (es) |
| ES (1) | ES2650795T3 (es) |
| HU (1) | HUE034972T2 (es) |
| IL (1) | IL234568A (es) |
| MY (1) | MY167824A (es) |
| PH (1) | PH12014502116A1 (es) |
| PT (1) | PT2834978T (es) |
| RU (1) | RU2627119C2 (es) |
| SG (1) | SG11201405546SA (es) |
| SI (1) | SI2834978T1 (es) |
| TW (1) | TWI527465B (es) |
| WO (1) | WO2013151785A1 (es) |
Families Citing this family (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9749645B2 (en) * | 2012-06-22 | 2017-08-29 | Microsoft Technology Licensing, Llc | Coded-block-flag coding and derivation |
| CN103533324B (zh) * | 2012-07-03 | 2017-04-05 | 乐金电子(中国)研究开发中心有限公司 | 一种深度图像帧内编码方法、装置及编码器 |
| US9088770B2 (en) * | 2012-08-15 | 2015-07-21 | Intel Corporation | Size based transform unit context derivation |
| WO2015051011A1 (en) * | 2013-10-02 | 2015-04-09 | Arris Enterprises, Inc. | Modified hevc transform tree syntax |
| CN106256125B (zh) * | 2014-05-05 | 2019-11-19 | 联发科技(新加坡)私人有限公司 | 确定残余转换树表达的方法及装置 |
| WO2016074147A1 (en) * | 2014-11-11 | 2016-05-19 | Mediatek Singapore Pte. Ltd. | Separated coding tree for luma and chroma |
| EP3293975A4 (en) * | 2015-09-08 | 2018-10-10 | Samsung Electronics Co., Ltd. | Device and method for entropy encoding and decoding |
| US20170150156A1 (en) * | 2015-11-25 | 2017-05-25 | Qualcomm Incorporated | Illumination compensation with non-square predictive blocks in video coding |
| JP7100582B2 (ja) * | 2016-02-11 | 2022-07-13 | インターデジタル ヴイシー ホールディングス, インコーポレイテッド | 輝度チャネル及び少なくとも1つのクロミナンスチャネルによって表される画像データを含む画像ユニットを符号化/復号する方法及び装置 |
| US9942548B2 (en) * | 2016-02-16 | 2018-04-10 | Google Llc | Entropy coding transform partitioning information |
| CN117221582A (zh) | 2016-06-22 | 2023-12-12 | Lx 半导体科技有限公司 | 图像编码/解码设备以及传输图像数据的设备 |
| US10609423B2 (en) * | 2016-09-07 | 2020-03-31 | Qualcomm Incorporated | Tree-type coding for video coding |
| US10609414B2 (en) | 2017-05-08 | 2020-03-31 | Qualcomm Incorporated | Context modeling for transform coefficient coding |
| WO2019027200A1 (ko) * | 2017-07-31 | 2019-02-07 | 에스케이텔레콤 주식회사 | 비-제로 계수들의 위치를 표현하는 방법 및 장치 |
| WO2019045538A1 (ko) * | 2017-09-04 | 2019-03-07 | 삼성전자 주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
| CN117499684A (zh) * | 2017-09-20 | 2024-02-02 | 韩国电子通信研究院 | 用于对图像进行编码/解码的方法和装置 |
| CN111345039B (zh) * | 2017-11-16 | 2024-04-02 | 松下电器(美国)知识产权公司 | 解码装置和解码方法 |
| CN110035287B (zh) | 2018-01-12 | 2023-05-09 | 富士通株式会社 | 对统一转换单元模式进行分组标识的方法、装置和电子设备 |
| WO2019151284A1 (ja) | 2018-01-30 | 2019-08-08 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
| CN116614644B (zh) | 2018-03-27 | 2025-12-02 | 株式会社Kt | 对图像进行解码或编码的方法以及图像数据的传送方法 |
| US11115660B2 (en) * | 2018-04-30 | 2021-09-07 | Mediatek Inc. | Method and apparatus of syntax interleaving for separate coding tree in video coding |
| KR101997681B1 (ko) * | 2018-06-11 | 2019-07-08 | 광운대학교 산학협력단 | 양자화 파라미터 기반의 잔차 블록 부호화/복호화 방법 및 장치 |
| JP7278719B2 (ja) | 2018-06-27 | 2023-05-22 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
| JP7193610B2 (ja) * | 2018-07-12 | 2022-12-20 | 華為技術有限公司 | ビデオ符号化における境界ブロックのパーティション分割 |
| WO2020114508A1 (zh) * | 2018-12-06 | 2020-06-11 | 华为技术有限公司 | 视频编解码方法及装置 |
| CN111416975B (zh) * | 2019-01-08 | 2022-09-16 | 华为技术有限公司 | 预测模式确定方法和装置 |
| EP3907988A4 (en) | 2019-01-08 | 2022-06-29 | Huawei Technologies Co., Ltd. | Image prediction method, device, apparatus and system and storage medium |
| KR102871363B1 (ko) * | 2019-02-28 | 2025-10-14 | 삼성전자주식회사 | 크로마 성분을 예측하는 비디오 부호화 및 복호화 방법, 및 크로마 성분을 예측하는 비디오 부호화 및 복호화 장치 |
| AU2020232820B2 (en) | 2019-03-01 | 2024-05-16 | Huawei Technologies Co., Ltd. | The method of efficient signalling of CBF flags |
| AU2019201649A1 (en) | 2019-03-11 | 2020-10-01 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a tree of blocks of video samples |
| WO2020216177A1 (en) | 2019-04-20 | 2020-10-29 | Beijing Bytedance Network Technology Co., Ltd. | Signaling of chroma and luma syntax elements in video coding |
| CN113678449A (zh) * | 2019-04-23 | 2021-11-19 | Oppo广东移动通信有限公司 | 图像解码方法、解码器以及存储介质 |
| WO2020233514A1 (en) * | 2019-05-17 | 2020-11-26 | Beijing Bytedance Network Technology Co., Ltd. | Signaling of syntax elements according to chroma format |
| CN115567707B (zh) | 2019-05-30 | 2025-05-13 | 抖音视界有限公司 | 一种处理视频数据的方法、装置、介质 |
| US20220277491A1 (en) * | 2019-05-31 | 2022-09-01 | Electronics And Telecommunications Research Institute | Method and device for machine learning-based image compression using global context |
| US11212545B2 (en) * | 2019-06-07 | 2021-12-28 | Tencent America LLC | Method and apparatus for improved implicit transform selection |
| WO2020252726A1 (zh) * | 2019-06-20 | 2020-12-24 | 富士通株式会社 | 图像编码和解码方法、装置以及视频编解码设备 |
| JP7273339B2 (ja) * | 2019-06-24 | 2023-05-15 | 日本電信電話株式会社 | 画像符号化方法、及び画像復号方法 |
| US11190777B2 (en) * | 2019-06-30 | 2021-11-30 | Tencent America LLC | Method and apparatus for video coding |
| WO2021018084A1 (en) * | 2019-07-26 | 2021-02-04 | Beijing Bytedance Network Technology Co., Ltd. | Interdependence of transform size and coding tree unit size in video coding |
| US11317090B2 (en) * | 2019-08-12 | 2022-04-26 | Tencent America LLC | Method and apparatus for video coding |
| US12155824B2 (en) * | 2020-03-16 | 2024-11-26 | Interdigital Ce Patent Holdings, Sas | Signaling chroma offset presence in video coding |
| JP7509927B2 (ja) * | 2020-06-12 | 2024-07-02 | ベイジン・ダジア・インターネット・インフォメーション・テクノロジー・カンパニー,リミテッド | 4:4:4色フォーマットにおけるビデオコーディングの方法及び装置 |
| CN114615500B (zh) | 2020-12-08 | 2025-07-18 | 华为技术有限公司 | 增强层编解码方法和装置 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2408076C1 (ru) * | 2009-07-02 | 2010-12-27 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." | Способ сжатия изображения |
| KR101675116B1 (ko) * | 2009-08-06 | 2016-11-10 | 삼성전자 주식회사 | 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
| US8942282B2 (en) | 2010-04-12 | 2015-01-27 | Qualcomm Incorporated | Variable length coding of coded block pattern (CBP) in video compression |
| US9094658B2 (en) * | 2010-05-10 | 2015-07-28 | Mediatek Inc. | Method and apparatus of adaptive loop filtering |
| US9172963B2 (en) | 2010-11-01 | 2015-10-27 | Qualcomm Incorporated | Joint coding of syntax elements for video coding |
| US20120114034A1 (en) * | 2010-11-08 | 2012-05-10 | Mediatek Inc. | Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding |
| US9210442B2 (en) * | 2011-01-12 | 2015-12-08 | Google Technology Holdings LLC | Efficient transform unit representation |
| US8948271B2 (en) * | 2011-01-13 | 2015-02-03 | Texas Instruments Incorporated | Method and apparatus for a low complexity transform unit partitioning structure for HEVC |
| US9380319B2 (en) * | 2011-02-04 | 2016-06-28 | Google Technology Holdings LLC | Implicit transform unit representation |
| US8953690B2 (en) * | 2011-02-16 | 2015-02-10 | Google Technology Holdings LLC | Method and system for processing video data |
| US9788019B2 (en) * | 2011-03-09 | 2017-10-10 | Hfi Innovation Inc. | Method and apparatus of transform unit partition with reduced complexity |
| US9848197B2 (en) | 2011-03-10 | 2017-12-19 | Qualcomm Incorporated | Transforms in video coding |
| US8494290B2 (en) * | 2011-05-05 | 2013-07-23 | Mitsubishi Electric Research Laboratories, Inc. | Method for coding pictures using hierarchical transform units |
| US9807426B2 (en) | 2011-07-01 | 2017-10-31 | Qualcomm Incorporated | Applying non-square transforms to video data |
| US8804816B2 (en) * | 2011-08-30 | 2014-08-12 | Microsoft Corporation | Video encoding enhancements |
-
2013
- 2013-01-11 US US13/739,598 patent/US9467701B2/en active Active
- 2013-03-19 BR BR112014024920-2A patent/BR112014024920B1/pt active IP Right Grant
- 2013-03-19 DK DK13714458.0T patent/DK2834978T3/da active
- 2013-03-19 JP JP2015504607A patent/JP6181150B2/ja active Active
- 2013-03-19 AU AU2013243793A patent/AU2013243793B2/en active Active
- 2013-03-19 ES ES13714458.0T patent/ES2650795T3/es active Active
- 2013-03-19 WO PCT/US2013/032989 patent/WO2013151785A1/en not_active Ceased
- 2013-03-19 PT PT137144580T patent/PT2834978T/pt unknown
- 2013-03-19 KR KR1020147030504A patent/KR101773240B1/ko active Active
- 2013-03-19 CA CA2866900A patent/CA2866900C/en active Active
- 2013-03-19 EP EP13714458.0A patent/EP2834978B1/en active Active
- 2013-03-19 SI SI201330867T patent/SI2834978T1/en unknown
- 2013-03-19 HU HUE13714458A patent/HUE034972T2/en unknown
- 2013-03-19 CN CN201380017989.0A patent/CN104247424B/zh active Active
- 2013-03-19 RU RU2014144293A patent/RU2627119C2/ru active
- 2013-03-19 SG SG11201405546SA patent/SG11201405546SA/en unknown
- 2013-03-19 MY MYPI2014702631A patent/MY167824A/en unknown
- 2013-04-03 AR ARP130101096A patent/AR092816A1/es active IP Right Grant
- 2013-04-03 TW TW102112223A patent/TWI527465B/zh active
-
2014
- 2014-09-10 IL IL234568A patent/IL234568A/en active IP Right Grant
- 2014-09-23 PH PH12014502116A patent/PH12014502116A1/en unknown
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2650795T3 (es) | Codificación de indicadores de bloque codificado | |
| JP6950004B2 (ja) | ビデオコーディングにおいて変換処理とともに適用されるイントラフィルタ処理 | |
| ES2633947T3 (es) | Predicción de paletas en la codificación de vídeo basada en paleta | |
| KR101825262B1 (ko) | B 슬라이스에서의 예측 유닛의 단방향성 인터 예측으로의 제한 | |
| ES2727814T3 (es) | Estructura sintáctica de parámetros de descodificador hipotético de referencia | |
| US9185405B2 (en) | Coded block flag inference in video coding | |
| ES2727635T3 (es) | Determinación de paletas en la codificación de vídeo basada en paletas | |
| ES2611349T3 (es) | Codificación de Indicador de bloque codificado (CBF) para el formato de muestra 4:2:2 en codificación de vídeo | |
| ES2739690T3 (es) | Codificación en modo paleta para codificación de vídeo | |
| ES2561609T3 (es) | Agrupación de elementos sintácticos codificados por circunvalación en la codificación de vídeo | |
| ES3023710T3 (en) | Enhanced multiple transforms for prediction residual | |
| ES2750957T3 (es) | Señalización de predictores de paleta con código de longitud de ejecución para codificación de vídeo | |
| ES2767103T3 (es) | Determinación de valores de parámetros de cuantificación (QP) y de valores QP delta para bloques codificados por paleta en la codificación de vídeo | |
| ES2874552T3 (es) | Diseño de codificación y descodificación en modo de paleta | |
| ES2648312T3 (es) | Relleno de píxeles de borde para intra-predicción en codificación de vídeo | |
| ES2677522T3 (es) | Series de codificación en codificación de vídeo basada en paleta | |
| ES2770664T3 (es) | Restricción en el tamaño de bloque de paleta en la codificación de vídeo | |
| ES2657546T3 (es) | Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo | |
| ES2928248T3 (es) | Relleno de segmentos en unidades NAL de la porción codificada | |
| WO2014005081A2 (en) | Coding of significance flags | |
| BR112019013705A2 (pt) | predição temporal de filtro de laço adaptativo modificada para suporte de escalabilidade temporal | |
| HK1203257B (en) | Coded block flag coding |