ES2993151T3 - Intra-frame prediction method and apparatus for video sequence - Google Patents

Intra-frame prediction method and apparatus for video sequence Download PDF

Info

Publication number
ES2993151T3
ES2993151T3 ES20799360T ES20799360T ES2993151T3 ES 2993151 T3 ES2993151 T3 ES 2993151T3 ES 20799360 T ES20799360 T ES 20799360T ES 20799360 T ES20799360 T ES 20799360T ES 2993151 T3 ES2993151 T3 ES 2993151T3
Authority
ES
Spain
Prior art keywords
chrominance
mode
coding tree
node
tree node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES20799360T
Other languages
English (en)
Inventor
Yin Zhao
Haitao Yang
Jianle Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2993151T3 publication Critical patent/ES2993151T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Se describe un método de predicción intra-cuadro para una secuencia de vídeo, comprendiendo el método: adquirir el tamaño y los medios de división de un nodo de árbol de codificación cromática; de acuerdo con el tamaño y los medios de división del nodo de árbol de codificación cromática, determinar si una unidad de codificación cromática incluida en el nodo de árbol de codificación cromática permite que se utilice la predicción intra-cuadro de modelo lineal de componentes cruzados (CCLM); de acuerdo con si la unidad de codificación cromática permite que se utilice el CCLM, determinar un modo de predicción de la unidad de codificación cromática; y procesar la unidad de codificación cromática de acuerdo con el modo de predicción de la unidad de codificación cromática, de modo de obtener un píxel predicho de la unidad de codificación cromática. Se describen además un aparato de predicción intra-cuadro y un decodificador. El uso de las realizaciones de la presente solicitud facilita una reducción en el retardo de procesamiento de la unidad de codificación cromática, aumentando de ese modo la tasa de rendimiento de un decodificador de hardware. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método y aparato de predicción intra-trama para secuencia de vídeo
CAMPO DE LA INVENCIÓN
Esta solicitud se refiere al campo de las tecnologías de codificación y decodificación de vídeo, en particular, a un método y aparato de intra predicción para una secuencia de vídeo.
ANTECEDENTES DE LA INVENCIÓN
En la norma de codificación de vídeo H.265, una trama de imagen es dividida en unidades de árbol de codificación (coding tree unit, CTU) que no se traslapan entre sí, y se puede establecer un tamaño de una CTU en 64 x 64 u otro valor. La CTU cuyo tamaño es 64 x 64 es una matriz de muestra rectangular incluyendo muestras 64 x 64. La matriz de muestras incluye 64 columnas, cada columna incluye 64 muestras, y cada muestra incluye un componente de luminancia y/o un componente de crominancia.
H.265 se basa en un modo de división de árbol cuaternario (quad-tree, QT) en el cual se utiliza una CTU como un nodo raíz de un árbol cuaternario, y la CTU es dividida recursivamente en varios nodos hoja. Un nodo corresponde a una región de imagen. Si un nodo no sigue siendo dividido, el nodo es referido como un nodo hoja, y una región de imagen correspondiente al nodo se convierte en una CU. Si un nodo sigue siendo dividido, una región de imagen correspondiente al nodo es dividida en cuatro regiones de imagen de igual tamaño, y cada región corresponde a un nodo. Si un nodo va a ser a ser dividido o no, esto es determinado por un indicador de división que está en una corriente de bits y que corresponde al nodo. La profundidad de un nodo raíz es 0, y la profundidad de un nodo hijo es la profundidad del nodo padre más 1.
Un nodo CTU cuyo tamaño es 64 x 64 (con la profundidad de 0) no puede ser dividido con base en un indicador de división correspondiente al nodo CTU, y se convierte en una CU cuyo tamaño es 64 x 64, o puede ser dividido en cuatro nodos cuyos tamaños son 32 x 32 (con la profundidad de 1). Cada uno de los cuatro nodos cuyos tamaños son 32 x 32 pueden seguir o no siendo divididos adicionalmente con base en un indicador de división correspondiente al nodo. Si un nodo cuyo tamaño es 32 x 32 continúa siendo dividido, se generan cuatro nodos cuyos tamaños son 16 x 16 (con la profundidad de 2). El resto puede ser deducido por analogía, hasta que ningún nodo es dividido adicionalmente. En este caso, una CTU es dividida en un grupo de CUs.
Con base en una división de árbol cuaternario, un modo de división de árbol binario (BT) y un modo de división de árbol ternario (TT) son agregados a software de referencia VTM.
Además, un modo de división de efecto cascada de un QT y un BT/TT puede ser utilizado en un modelo de prueba de codificación de vídeo versátil (VTM), y es referido como un modo de árbol cuaternario más árbol multi-tipo (QT-BTT). Es decir, un nodo en un árbol de codificación nivel-1 puede ser dividido en nodos hijo únicamente utilizando un modo QT, y un nodo hoja en el árbol de codificación nivel-1 es un nodo raíz de un árbol de codificación nivel-2; un nodo en el árbol de codificación nivel-2 puede ser dividido en nodos hijo utilizando uno de los siguientes cuatro modos de división: una división binaria horizontal, una división binaria vertical, una división ternaria horizontal, y una división ternaria vertical; un nodo hoja del árbol de codificación nivel-2 es una unidad de codificación.
Después que se conoce, a través de análisis, que un nodo es un nodo hoja y el nodo hoja es una CU, información de codificación (incluyendo información tal como un modo de predicción y un coeficiente de transformada de la CU, por ejemplo, una estructura de sintaxis codificación_unidad() en H.265) correspondiente a la CU es analizada adicionalmente. Después, el procesamiento de decodificación tal como predicción, descuantificación, transformada inversa, y filtración de bucle es ejecutado en la CU con base en la información de codificación, a fin de generar una imagen reconstruida correspondiente a la CU. Dicha estructura de árbol de codificación flexible como QT-MTT permite que la CTU sea dividida en un grupo de CUs de un tamaño apropiado con base en una característica local de una imagen.
Un modo de división de una CTU en un grupo de CUs corresponde a un árbol de codificación. En VTM, se permite el uso de una estructura de árbol de separación para una intra imagen (I picture). En este caso, iniciando desde un nodo específico A en un árbol de codificación, un bloque de luminancia del nodo A es dividido utilizando un árbol de codificación de luminancia, y un nodo hoja del árbol de codificación de luminancia es una CU de luminancia, e incluye solamente muestras de luminancia. Un bloque de crominancia del nodo A es dividido utilizando un árbol de codificación de crominancia, y un nodo hoja del árbol de codificación de crominancia es una CU de crominancia, e incluye solamente muestras de crominancia.
En VTM5 (concretamente, versión de software VTM 5), se puede utilizar una estructura de árbol de separación para una intra imagen. Para una intra imagen utilizando una estructura de árbol de separación, un nodo de árbol de codificación cuyo tamaño es 128 x 128 puede ser dividido en cuatro nodos cuyos tamaños son 64 x 64 utilizando un modo de división de árbol cuaternario, y cada nodo cuyo tamaño es 64 x 64 incluye muestras de luminancia y muestras de crominancia. Una estructura de árbol de separación es utilizada para un nodo cuyo tamaño es 64 x 64, es decir, un bloque de luminancia de un nodo cuyo tamaño es 64 x 64 es dividido utilizando un árbol de codificación de luminancia, y un bloque de crominancia del nodo cuyo tamaño es 64 x 64 es dividido utilizando un árbol de codificación de crominancia. Un modo de división utilizado para el árbol de codificación de luminancia puede ser diferente de un modo de división utilizado para el árbol de codificación de crominancia. Por ejemplo, un bloque de luminancia de un nodo cuyo tamaño es 64 x 64 puede ser dividido utilizando un modo de división de árbol cuaternario, y un bloque de crominancia puede ser dividido utilizando un modo de división binaria horizontal. En un formato YUV4:2:0, debido a que tasas de muestreo horizontal y vertical de crominancia son la mitad de aquellas de crominancia, un nodo cuyo tamaño es M x N corresponde a muestras de crominancia (M/2) x (N/2).
No obstante, cuando una estructura de árbol de separación es utilizada para una intra imagen, se puede provocar una latencia de procesamiento de crominancia comparativamente larga, reduciendo un rendimiento de un decodificador de hardware.
El documento de CHEN (HIKVISION) F ET AL: "CE3-related: Size restriction for CCLM" 14. CONGRESO DE JVET; 20190319 - 20190327; GINEBRA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16), n.° JVET-N0164 del 20 de marzo de 2019 (20-03-2019), XP030203869) divulga que la CCLM se utiliza con con restricción de tamaño.
COMPENDIO
Realizaciones de la presente invención se definen mediante las reivindicaciones independientes.
En lo que sigue a continuación, las partes de la descripción y los dibujos que hacen referencia a realizaciones anteriores, que no necesariamente comprenden todas las características para implementar las realizaciones de la invención reivindicada, no se representan como realizaciones de la invención sino como ejemplos útiles para comprender las realizaciones de la invención.
Realizaciones de esta solicitud proporcionan un método y aparato de intra predicción para una secuencia de vídeo. Las realizaciones de esta solicitud ayudan a reducir una latencia de procesamiento de crominancia y mejoran un rendimiento de un decodificador de hardware. La secuencia de vídeo (vídeo sequence) incluye una o más imágenes (picture).
Para brevedad de la descripción, un tamaño y una forma de un nodo en las realizaciones de la presente invención son un tamaño y una forma de una región de imagen correspondiente al nodo. En las realizaciones de la presente invención, ambas una anchura y una altura de un nodo son representadas por una cantidad de muestras de luminancia correspondiente al nodo.
La presente invención se define por las reivindicaciones adjuntas.
BREVE DESCRIPCIÓN DE LAS FIGURAS
Para describir las soluciones técnicas en las realizaciones de la presente invención o en la técnica previa de manera más clara, lo siguiente describe brevemente los dibujos acompañantes para describir las realizaciones o la técnica anterior. Resulta claro que los dibujos acompañantes en las siguientes descripciones muestran solamente algunas realizaciones de la presente invención, y un experto en la técnica puede derivar otros dibujos a partir de estos dibujos acompañantes sin esfuerzos creativos.
La figura 1 es un diagrama esquemático de un Modo de división CTU;
la figura 2 es un diagrama esquemático de un modo de división de un bloque de crominancia y un bloque de luminancia de acuerdo con una realización de la invención que se reivindica;
la figura 3 es un diagrama esquemático de otro modo de división de un bloque de crominancia y un bloque de luminancia no de acuerdo con una realización de la invención que se reivindica, pero útil para comprender la invención; la figura 4 es un diagrama de bloques esquemático de un sistema de codificación y decodificación de vídeo;
la figura 5a es un diagrama de bloques esquemático de un codificador de vídeo;
la figura 5b es un diagrama de bloques esquemático de un decodificador de vídeo;
la figura 5c es un diagrama de bloques de un ejemplo de un aparato de codificación o un aparato de decodificación; la figura 6 es un gráfico de flujo esquemático de un método de intra predicción para una secuencia de vídeo;
la figura 7 es un gráfico de flujo esquemático de un método de intra predicción para una secuencia de vídeo;
la figura 8 es un diagrama estructural esquemático de un aparato de intra predicción; y
la figura 9 es un diagrama estructural esquemático de un aparato de intra predicción.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
Lo siguiente describe las realizaciones de esta solicitud con referencia a los dibujos acompañantes.
Aquí, primero se describen términos en la presente invención.
Unidad de árbol de codificación (CTU): Una imagen incluye una pluralidad de CTUs, y una CTU generalmente corresponde a una región de imagen cuadrada, e incluye muestras de luminancia y muestras de crominancia en la región de imagen (o puede incluir solamente muestras de luminancia, o puede incluir solamente muestras de crominancia). La CTU además incluye elementos de sintaxis. Estos elementos de sintaxis indican un método referente a cómo dividir la CTU en al menos una unidad de codificación (CU) y decodificar cada unidad de codificación para obtener una imagen reconstruida.
CU: Una CU generalmente corresponde a una región rectangular A x B e incluye A x B muestras de luminancia y muestras de crominancia correspondientes a las muestras de luminancia, donde A es la anchura del rectángulo, B es la altura del rectángulo, y A puede ser lo mismo o diferente de B. Valores de A y B generalmente son potencias de entero de 2, por ejemplo, 256, 128, 64, 32, 16, 8, y 4. Una unidad de codificación puede ser decodificada para obtener una imagen reconstruida de una Región rectangular A x B. El procesamiento de decodificación generalmente incluye ejecutar procesamiento tal como predicción, descuantificación, y transformación inversa, para generar una imagen de predicción y un residual. Una imagen reconstruida es obtenida superponiendo la imagen de predicción y el residual.
Árbol cuaternario: El árbol cuaternario es una estructura en forma de árbol, y un nodo puede ser dividido en cuatro nodos hijo. Un modo de división CTU basado en árbol cuaternario es utilizado en la norma de codificación de vídeo H.265: Una CTU es utilizada como un nodo raíz, y cada nodo corresponde a una región cuadrada. Un nodo no puede ser dividido adicionalmente (en este caso, una región correspondiente al nodo es una CU), o un nodo es dividido en cuatro nodos de nivel inferior, es decir, una región cuadrada es dividida en cuatro regiones cuadradas de igual tamaño (donde la longitud y la anchura de cada una de las cuatro regiones cuadradas de igual tamaño son la mitad de la longitud y la anchura de la región cuadrada que existe antes de la división), y cada región corresponde a un nodo, tal como se muestra en la figura 1 a.
Árbol binario: El árbol binario es una estructura en forma de árbol, y un nodo puede ser dividido en dos nodos hijo. En un método de codificación existente en el cual se utiliza un árbol binario, un nodo en una estructura de árbol binario puede no ser dividido, o el nodo es dividido en dos nodos de nivel inferior. El nodo es dividido en dos nodos en cualquiera de las maneras: (1) una división binaria horizontal: Una región correspondiente al nodo es dividida en dos regiones de igual tamaño: una región superior y una región inferior, y cada región corresponde a un nodo, tal como se muestra en la figura 1b; o (2) una división binaria vertical: Una región correspondiente al nodo es dividida en dos regiones de igual tamaño: una región izquierda y una región derecha, y cada región corresponde a un nodo, tal como se muestra en la figura 1c.
Árbol ternario: El árbol ternario es una estructura en forma de árbol, y un nodo puede ser dividido en tres nodos hijo. En un método de codificación basado en árbol ternario existente, un nodo en una estructura de árbol ternario puede no ser dividido, o el nodo puede ser dividido en tres nodos de nivel inferior. El nodo es dividido en tres nodos en cualquiera de dos maneras: (1) una división ternaria horizontal: una región correspondiente al nodo es dividida en tres regiones: una región superior, una región media, y una región inferior, y cada región corresponde a un nodo, donde alturas de la región superior, la región media, y la región inferior son 1/4, 1/2, y 1/4 de la altura del nodo, respectivamente, tal como se muestra en la figura 1d; (2) una división ternaria vertical: Una región correspondiente al nodo es dividida en tres regiones: una región izquierda, una región media, y una región derecha, y cada región corresponde a un nodo, donde anchuras de la región izquierda, la región media, y la región derecha son 1/4, 1/2, y 1/4 de la altura del nodo, respectivamente, tal como se muestra en la figura 1f.
El modelo de prueba de codificación de vídeo versátil (VTM): es software de referencia de códec para la norma H.266/codificación de vídeo versátil (versatile vídeo coding test model, VVC) organizada y desarrollada por JVET.
Intra predicción de modelo lineal de componente cruzada (CCLM): es un método de predicción de crominancia utilizando una muestra de reconstrucción de luminancia, por ejemplo, una tecnología CCLM en VTM5. En CCLM, parámetros de modelo linealayfison estimados utilizando una muestra de luminancia reconstruida y una muestra de crominancia reconstruida alrededor de un bloque de crominancia actual; después que las muestras de luminancia reconstruidas correspondientes al bloque de crominancia actual son muestreadas hacia abajo, muestras de predicción del bloque de crominancia actual son obtenidas utilizando un modelo lineal, tal como se muestra en fórmula 1:
predC( i, j ) = a * recL( i, j ) b<(1)>
ayfison coeficientes de modelo lineal,predc(i, j) es un predictor de una muestra de crominancia en una posición (i,<j), y>recL (i, j )<representa valores de muestra de reconstrucción de luminancia en una posición (i, j) después que un>bloque de reconstrucción de luminancia correspondiente al bloque de crominancia actual es muestreado hacia abajo a resolución de componente de crominancia. Se debiera observar que, para un vídeo en un formato YUV4:2:0, la resolución de un componente de luminancia es cuatro veces (dos veces la anchura y dos veces la altura) la resolución de un componente de crominancia. Para obtener un bloque de luminancia con cierta resolución como un bloque de crominancia, un componente de luminancia necesita ser muestreado hacia abajo a resolución de crominancia de acuerdo con un mismo método de muestreo hacia abajo como el componente de crominancia, y después es utilizado.
Intra sub-división (ISP) es una tecnología de intra predicción basada en una división de sub-bloque, por ejemplo, una tecnología ISP en VTM5. Cuando se utiliza un modo ISP, un bloque de luminancia es dividido horizontalmente o verticalmente en una pluralidad de (por ejemplo, dos o cuatro) sub-bloques de luminancia de igual tamaño, y los sub bloques de luminancia son decodificados y reconstruidos en secuencia. Si un modo de intra predicción común (por ejemplo, un modo de predicción angular, un modo de predicción plano, o un modo de predicción actual directa) es utilizado para un bloque de crominancia, solamente muestras reconstruidas alrededor de un bloque de crominancia son utilizadas para intra predicción del bloque de crominancia. En este caso, la intra predicción del bloque de crominancia y la intra predicción del bloque de luminancia pueden ser ejecutadas de manera concurrente, una latencia máxima para ejecutar procesamiento de predicción en un bloque de crominancia con relación a la ejecución del procesamiento de predicción en un bloque de luminancia en una región correspondiente (la cual es una latencia de procesamiento de crominancia para abreviar) es un tiempo de procesamiento para ejecutar intra predicción y reconstrucción en una región incluyendo 0 muestras de luminancia. En un solo árbol, una CU incluye muestras de luminancia y muestras de crominancia. Cuando CCLM es ejecutado en la muestra de crominancia, se necesita utilizar una muestra de reconstrucción de luminancia en una posición correspondiente. Si un bloque de luminancia es dividido en una pluralidad de sub-regiones para procesamiento secuencial, después que se ejecuta la intra predicción en una sub-región de luminancia, predictores y residuales son superpuestos para obtener muestras reconstruidas de la sub región de luminancia, y predicción CCLM puede ser ejecutada en una sub-región de crominancia en la posición correspondiente utilizando las muestras reconstruidas de la sub-región de luminancia. Por lo tanto, cuando una estructura de árbol de separación es utilizada para una intra imagen, si se ejecuta predicción CCLM en un bloque de crominancia, se puede provocar un problema de una latencia de procesamiento de crominancia comparativamente larga.
Por ejemplo, cuando un bloque de luminancia de un nodo cuyo tamaño es 64 x 64 es dividido utilizando un modo de división de árbol cuaternario (tal como se muestra en la figura 2a), una secuencia de procesamiento de cuatro nodos de luminancia generados es un nodo 0, un nodo 1, un nodo 2, y un nodo 3. Cuando un bloque de crominancia del nodo cuyo tamaño es 64 x 64 es dividido, utilizando un modo de división binaria vertical mostrado en la figura 2b, para generar dos nodos de crominancia, si se ejecuta predicción CCLM en un nodo de crominancia 0, valores de muestra de reconstrucción de luminancia requeridos para predicción CCLM pueden ser obtenidos para el nodo de crominancia 0 solamente después que el nodo de luminancia 2 es reconstruido. Una latencia de procesamiento de crominancia es un tiempo de procesamiento de tres regiones de luminancia cuyos tamaños son 32 x 32 (es decir, 3072 muestras de luminancia). Para otro ejemplo, cuando un bloque de crominancia del nodo cuyo tamaño es 64 x 64 es dividido en dos nodos de crominancia utilizando un árbol binario horizontal mostrado en la figura 2c, y un bloque de crominancia de un nodo cuyo tamaño es 64 x 32 en el lado superior continúa siendo dividido adicionalmente en dos nodos utilizando un modo de árbol binario horizontal, si se ejecuta predicción CCLM en un nodo de crominancia 0, todos los valores de muestra de reconstrucción de luminancia requeridos para predicción CCLM pueden ser obtenidos para el nodo de crominancia 0 solamente después que el nodo de luminancia 1 es reconstruido, y una latencia de procesamiento de crominancia es un tiempo de procesamiento de dos regiones de luminancia (es decir, 2048 muestras de luminancia) cuyos tamaños son 32 x 32.
Cuando algunas divisiones son ejecutadas en un bloque de crominancia de un nodo cuyo tamaño es 64 x 64, una latencia de procesamiento para ejecutar CCLM en un nodo de crominancia no excede un tiempo de procesamiento de una región de luminancia cuyo tamaño es 32 x 32. Por ejemplo, cuando un bloque de luminancia cuyo tamaño es 64 x 64 es dividido utilizando un modo de división de árbol cuaternario, si un bloque de crominancia correspondiente también es dividido utilizando un modo de división de árbol cuaternario, tal como se muestra en la figura 2d, CCLM puede ser ejecutado en un nodo de crominancia 0 después que un nodo de luminancia 0 es reconstruido, CCLM puede ser ejecutado en un nodo de crominancia 1 después que un nodo de luminancia 1 es reconstruido, y así sucesivamente. Para otro ejemplo, si un bloque de crominancia de un nodo cuyo tamaño es 64 x 64 no es dividido, tal como se muestra en la figura 2e, el bloque de crominancia puede ser dividido en cuatro regiones p0, p1, p2, y p3 para intra predicción secuencial, CCLM puede ser ejecutado en la región de crominancia p0 después que un nodo de luminancia 0 es reconstruido, CCLM puede ser ejecutado en la región de crominancia p1 después que un nodo de luminancia 1 es reconstruido, y así sucesivamente. Para otro ejemplo, si un bloque de crominancia de un nodo cuyo tamaño es 64 x 64 es primero dividido utilizando un modo de división horizontal, un nodo de crominancia cuyo tamaño es 64 x 32 en el lado superior es dividido utilizando un modo de división vertical, y un nodo de crominancia cuyo tamaño es 64 x 32 en el lado inferior no es dividido, tal como se muestra en la figura 2f, latencias de procesamiento de crominancia de nodos de crominancia 0, 1, y 2 son todas una latencia en el procesamiento de una región de luminancia cuyo tamaño es 32 x 32. Esto se debe a que CCLM puede ser ejecutado en el nodo de crominancia 0 después que un nodo de luminancia 0 es reconstruido, CCLM puede ser ejecutado en el nodo de crominancia 2 después que un nodo de luminancia 1 es reconstruido, CCLM puede ser ejecutado en una región p0 del nodo de crominancia 2 después que un nodo de luminancia 2 es completado, y CCLM puede ser ejecutado en una región p1 de un nodo de crominancia 2 después que un nodo de luminancia 3 es reconstruido.
Además, si una estructura de árbol de separación es utilizada para una intra imagen, cuando un bloque de luminancia cuyo tamaño es 64 x 64 no es dividido y un modo ISP es utilizado para el bloque de luminancia, una latencia de procesamiento de crominancia puede exceder un tiempo de procesamiento de una región de luminancia cuyo tamaño es 32 x 32. Por ejemplo, cuando un bloque de luminancia de un nodo cuyo tamaño es 64 x 64 es dividido en cuatro sub-bloques de luminancia utilizando un modo ISP vertical, tal como se muestra en la figura 3a, si un bloque de crominancia del nodo cuyo tamaño es 64 x 64 es dividido utilizando un modo de división binaria horizontal, tal como se muestra en la figura 3b, CCLM puede ser ejecutado en un nodo de crominancia 0 solamente después que cuatro sub-bloques de luminancia son reconstruidos, y una latencia de procesamiento de crominancia es un tiempo de procesamiento de cuatro regiones de luminancia cuyos tamaños son 32 x 32. De manera similar, cuando un bloque de luminancia de un nodo cuyo tamaño es 64 x 64 es dividido en cuatro sub-bloques de luminancia utilizando un modo ISP horizontal, tal como se muestra en la figura 3e, si un bloque de crominancia del nodo cuyo tamaño es 64 x 64 es dividido utilizando un modo de división binaria vertical, tal como se muestra en la figura 3f, CCLM puede ser ejecutado en un nodo de crominancia 0 solamente después que cuatro sub-bloques de luminancia son reconstruidos, y una latencia de procesamiento de crominancia es un tiempo de procesamiento de cuatro regiones de luminancia cuyos tamaños son 32 x 32.
Cuando algunas divisiones son ejecutadas en un bloque de crominancia de un nodo cuyo tamaño es 64 x 64, incluso si un bloque de luminancia cuyo tamaño es 64 x 64 no es dividido y un modo ISP es utilizado para el bloque de luminancia, una latencia de procesamiento para ejecutar CCLM a través del nodo de crominancia no excede un tiempo de procesamiento de una región de luminancia cuyo tamaño es 32 x 32. Por ejemplo, cuando un modo ISP vertical es utilizado para un bloque de luminancia de un nodo cuyo tamaño es 64 x 64, si un bloque de crominancia del nodo cuyo tamaño es 64 x 64 no es dividido, tal como se muestra en la figura 3d, o un bloque de crominancia del nodo cuyo tamaño es 64 x 64 es dividido utilizando un modo binario vertical para obtener nodos cuyos tamaños son 32 x 64 y los nodos son divididos utilizando un modo de división binaria vertical o no son divididos, tal como se muestra en la figura 3c, una latencia de procesamiento de crominancia es un tiempo de procesamiento de una región de luminancia cuyo tamaño es 16 x 64, y también se puede considerar como siendo aproximadamente igual a un tiempo de procesamiento de una región de luminancia 32 x 32 (ambas corresponden a 1024 muestras de luminancia). De manera más específica, cuando el bloque de crominancia del nodo cuyo tamaño es 64 x 64 no es dividido, el bloque de crominancia puede ser verticalmente dividido en cuatro sub-regiones, y CCLM puede comenzar a ser ejecutado en cada sub-región después que un sub-bloque de luminancia correspondiente cuyo tamaño es 16 x 64 es reconstruido. Si el bloque de crominancia del nodo cuyo tamaño es 64 x 64 es dividido utilizando un modo binario vertical para obtener nodos cuyos tamaños son 32 x 64 y los nodos son divididos utilizando un modo de división binaria vertical, CCLM puede comenzar a ser ejecutado en cada nodo de crominancia cuyo tamaño es 16 x 64 después que un sub-bloque de luminancia correspondiente cuyo tamaño es 16 x 64 es reconstruido. Cuando un nodo cuyo tamaño es 32 x 64 no es horizontalmente dividido, el nodo puede ser verticalmente dividido en dos sub-regiones cuyo tamaño es 16 x 64, y CCLM puede comenzar a ser ejecutado en cada sub-región después que un sub-bloque de luminancia correspondiente cuyo tamaño es 16 x 64 es reconstruido. De manera similar, cuando un modo ISP horizontal es utilizado para un bloque de luminancia de un nodo cuyo tamaño es 64 x 64, si un bloque de crominancia del nodo cuyo tamaño es 64 x 64 no es dividido, tal como se muestra en la figura 3h, o un bloque de crominancia del nodo cuyo tamaño es 64 x 64 es dividido utilizando un modo de división binaria horizontal para obtener nodos cuyos tamaños son 64 x 32 y los nodos son divididos utilizando un modo de división binaria horizontal o no son divididos, tal como se muestra en la figura 3g, una latencia de procesamiento de crominancia es un tiempo de procesamiento de una región de luminancia cuyo tamaño es 64 x 16, y es igual a un tiempo de procesamiento de una región de luminancia cuyo tamaño es 32 x 32.
La figura 4 es un diagrama de bloques de un ejemplo de un sistema de codificación de vídeo 4. Tal como se utiliza en esta especificación, un término "códec de vídeo" generalmente se refiere a un codificador de vídeo y un decodificador de vídeo. En esta solicitud, un término "codificación de vídeo" o "codificación" generalmente se puede referir a la codificación de vídeo o decodificación de vídeo. Un codificador de vídeo 100 y un decodificador de vídeo 300 en el sistema de codificación de vídeo 1 están configurados para predecir información de movimiento, por ejemplo, un vector de movimiento, de un bloque de imágenes codificadas actual o un sub-bloque de un bloque de imágenes codificadas actual utilizando varios ejemplos de método descritos en cualquiera de una pluralidad de nuevos modos de inter predicción proporcionados en esta solicitud, de manera que un vector de movimiento de predicción está lo más cerca de un vector de movimiento obtenido mediante el uso de un método de cálculo de movimiento. De esta manera, una diferencia de vector de movimiento no necesita ser transmitida durante la codificación, mejorando más todavía el desempeño de la codificación y decodificación.
Tal como se muestra en la figura 4, un sistema de codificación de vídeo 1 incluye un aparato fuente 10 y un aparato destino 30. El aparato fuente 10 genera datos de vídeo codificados. Por lo tanto, el aparato fuente 10 puede ser referido como un aparato de codificación de vídeo. El aparato destino 30 puede decodificar los datos de vídeo codificados generados por el aparato fuente 10. Por lo tanto, el aparato fuente 30 puede ser referido como un aparato de intra predicción de vídeo. El aparato fuente 10, el aparato destino 30 o varias soluciones de implementación del aparato fuente 10 y el aparato destino 20 pueden incluir uno o más procesadores y una memoria acoplada a uno o más procesadores. La memoria puede incluir, pero no se limita a una RAM, una ROM, una EEPROM, una memoria flash, o cualquier otro medio que pueda ser utilizado para almacenar un código de programa deseado en una forma de una instrucción o una estructura de datos accesible a un ordenador, tal como se describió en esta especificación.
El aparato fuente 10 y el aparato destino 30 pueden incluir varios aparatos, incluyendo un ordenador de sobremesa, un aparato informático móvil, un portátil ligero (por ejemplo, un portátil), una tableta, un descodificador, un teléfono manual tal como un teléfono "inteligente", un equipo de televisión, una cámara, un aparato de despliegue, un reproductor de medios digitales, una consola de juegos de vídeo, un ordenador de vehículo o un aparato similar.
El aparato destino 30 puede recibir los datos de vídeo codificados del aparato fuente 10 a través de un enlace 50. El enlace 50 puede incluir uno o más medios o aparatos que pueden transferir los datos de vídeo codificados desde el aparato fuente 10 al aparato destino 30. En un ejemplo, el enlace 50 puede incluir uno o más medios de comunicaciones que permiten al aparato fuente 10 enviar directamente los datos de vídeo codificados al aparato destino 30 en tiempo real. En este ejemplo, el aparato fuente 10 puede modular los datos de vídeo codificados de acuerdo con una norma de comunicaciones (por ejemplo, un protocolo de comunicaciones inalámbricas), y puede enviar datos de vídeo modulados al aparato destino 30. El medio o medios de comunicaciones pueden incluir un medio de comunicaciones inalámbrico y/o o un medio de comunicaciones cableado, por ejemplo, un espectro de radiofrecuencia (RF) o uno o más cables de transmisión físicos. El medio o medios de comunicaciones pueden ser una parte de una red basada en paquete, y la red basada en paquete es, por ejemplo, una red de área local, una red de área amplia, o una red global (por ejemplo, la internet). El medio o medios de comunicaciones pueden incluir un enrutador, un interruptor, una estación base, u otro dispositivo que facilita la comunicación desde el aparato fuente 10 al aparato destino 30.
En otro ejemplo, los datos codificados pueden ser emitidos a un aparato de almacenamiento 40 a través de una interfaz de salida 140. De manera similar, se puede tener acceso a los datos de vídeo codificados desde el aparato de almacenamiento 40 a través de una interfaz de entrada 340. El aparato de almacenamiento 40 puede incluir cualquiera de una pluralidad de medios de almacenamiento de datos a los que se tiene acceso localmente o distribuidos, por ejemplo, una unidad de disco duro, un disco Blu-ray, un DVD, un CD-ROM, una memoria flash, una memoria volátil o no volátil, o cualquier otro medio de almacenamiento digital conveniente configurado para almacenar datos de vídeo codificados.
En otro ejemplo, el aparato de almacenamiento 40 puede corresponder a un servidor de archivos u otro aparato de almacenamiento intermedio que puede mantener un vídeo codificado generado por el aparato fuente 10. El aparato destino 30 puede tener acceso a los datos de vídeo almacenados desde el aparato de almacenamiento 40 a través de transmisión por secuencias o descarga. Un servidor de archivos puede ser cualquier tipo de servidor que pueda almacenar los datos de vídeo codificados y que envíe los datos de vídeo codificados al aparato destino 30. Por ejemplo, el servidor de archivos puede ser un servidor de red (por ejemplo, utilizado para un sitio Web), un servidor FTP, un aparato de almacenamiento unido a la red (NAS), o una unidad de disco local. El aparato destino 30 puede tener acceso a los datos de vídeo codificados a través de cualquier conexión de datos estándar (incluyendo una conexión de internet). La conexión de datos estándar puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión cableada (por ejemplo, un DSL o un módem de cable), o una combinación de los mismos que es conveniente para tener acceso a los datos de vídeo codificados almacenados en el servidor de archivos. La transmisión de los datos de vídeo codificados desde el aparato de almacenamiento 40 puede ser transmisión por secuencias, transmisión por descarga, o una combinación de los mismos.
Una tecnología de predicción de vector de movimiento en esta solicitud puede ser utilizada para codificación y decodificación de vídeo, para soportar una pluralidad de aplicaciones multimedia, por ejemplo, transmisión de televisión sobre-el-aire, transmisión de televisión por cable, transmisión de televisión satelital, transmisión de vídeo por secuencias (por ejemplo, sobre la internet), codificación de datos de vídeo almacenados en un medio de almacenamiento de datos, decodificació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 1 puede ser configurado para soportar transmisión de vídeo unidireccional o bidireccional, para soportar aplicaciones tales como transmisión de vídeo por secuencias, reproducción de vídeo, difusión de vídeo y/o vídeotelefonía.
El sistema de codificación de vídeo 1 descrito en la figura 4 es simplemente un ejemplo, y la tecnología en esta aplicación es aplicable a un aparato de codificación de vídeo (por ejemplo, codificación de vídeo o decodificación de vídeo) que no necesariamente incluye alguna comunicación de datos entre un aparato de codificación de vídeo y un aparato de decodificación de vídeo. En otros ejemplos, los datos son recuperados de una memoria local, transmitidos sobre una red, o similar. El aparato de codificación de vídeo puede codificar los datos y almacenar los datos en la memoria, y/o el aparato de decodificación de vídeo puede recuperar los datos de la memoria y puede decodificarlos. En muchos ejemplos, aparatos que solamente codifican datos y almacenan los datos en la memoria y/o recuperan los datos de la memoria y decodifican los datos y que no se comunican entre sí ejecutan codificación y decodificación.
En el ejemplo de la figura 4, el aparato fuente 10 incluye una fuente de vídeo 120, a codificador de vídeo 100, y la interfaz de salida 140. En algunos ejemplos, la interfaz de salida 140 puede incluir un modulador/desmodulador (módem) y/o un transmisor. La fuente de vídeo 120 puede incluir un aparato de captura de vídeo (por ejemplo, una cámara), un archivo de vídeo incluyendo 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 las fuentes de datos de vídeo anteriores.
El codificador de vídeo 100 puede codificar datos de vídeo que son de la fuente de vídeo 120. En algunos ejemplos, el aparato fuente 10 envía directamente los datos de vídeo codificados al aparato destino 30 a través de la interfaz de salida 140. En otro ejemplo, los datos de vídeo codificados alternativamente pueden ser almacenados en el aparato de almacenamiento 40, de manera que el aparato destino 30 posteriormente tiene acceso a los datos de vídeo codificados para decodificación y/o reproducción.
En el ejemplo de la figura 4, el aparato destino 30 incluye la interfaz de entrada 340, el decodificador de vídeo 300, y el aparato de despliegue 330. En algunos ejemplos, la interfaz de entrada 340 incluye un receptor y/o un módem. La interfaz de entrada 340 puede recibir los datos de vídeo codificados a través del enlace 30 y/o desde el aparato de almacenamiento 40. El aparato de despliegue 330 puede estar integrado con el aparato destino 30 o puede estar ubicado fuera del aparato destino 30. El aparato de despliegue 330 generalmente despliega datos de vídeo decodificados. El aparato de despliegue 330 puede incluir una pluralidad de tipos de aparatos de despliegue, por ejemplo, una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodo de emisión de luz orgánica (OLED), u otro tipo de aparato de despliegue.
Aunque no se muestra en la figura 4, en algunos aspectos, el codificador de vídeo 100 y el decodificador de vídeo 300 pueden estar integrados con un codificador de audio y un decodificador de audio respectivamente, y pueden incluir una unidad de multiplexor-desmultiplexor apropiado (MUX-DEMUX) u otro hardware y software, para codificar un audio y un vídeo en una corriente de datos común o una corriente de datos separada. En algunos ejemplos, si es aplicable, la unidad MUX-DEMUX puede cumplir con el protocolo de multiplexor ITU H.223, u otro protocolo tal como el protocolo de datagrama de usuario (UDP).
El codificador de vídeo 100 y el decodificador de vídeo 300 pueden ser implementados, por ejemplo, como cualquiera de la siguiente pluralidad de circuitos: uno o más microprocesadores, un procesador de señal digital (DSP), un circuito integrado de aplicación específica (ASIC), un arreglo de compuerta programable en campo (FPGA), lógica discreta, hardware, o cualquier combinación de los mismos. Si esta aplicación es implementada parcialmente a través de software, el aparato puede almacenar, en un medio de almacenamiento legible por ordenador no volátil apropiado, una instrucción utilizada para el software, y puede utilizar uno o más procesadores para ejecutar la instrucción en hardware con el fin de implementar la tecnología en esta aplicación. Cualquiera del contenido anterior (incluyendo hardware, software, una combinación de hardware y software, y similar) puede ser considerado como uno o más procesadores. El codificador de vídeo 100 y el decodificador de vídeo 300 pueden ser incluidos, cada uno, en uno o más codificadores o decodificadores, y cualquiera del codificador o el decodificador se pueden integrar en una parte de un codificador/decodificador combinado (códec) en un aparato correspondiente.
En esta solicitud, el codificador de vídeo 100 puede ser prácticamente referido como otro aparato "señalizando" o "enviando" cierta información, por ejemplo, al decodificador de vídeo 300. El término "señalizando" o "transmitiendo" pueden hacer referencia prácticamente a la transferencia de un elemento de sintaxis y/u otros datos utilizados para decodificar datos de vídeo comprimidos. La transmisión puede ocurrir en tiempo real o casi en tiempo real. Alternativamente, la comunicación puede ocurrir después de un periodo de tiempo, por ejemplo, puede ocurrir cuando un elemento de sintaxis en una corriente de bits codificada es almacenado en un medio de almacenamiento legible por ordenador durante la codificación, y después, el aparato de intra predicción puede recuperar el elemento de sintaxis en cualquier momento después que el elemento de sintaxis es almacenado en el medio.
El codificador de vídeo 100 y el decodificador de vídeo 300 pueden operar de acuerdo con una norma de compresión de vídeo, tal como codificación de vídeo de alta eficiencia (HEVC), o una extensión de la misma, y pueden cumplir con un modelo de prueba (HM) HEVC. Alternativamente, el codificador de vídeo 100 y el decodificador de vídeo 300 pueden ejecutar una operación de acuerdo con otras normas industriales, por ejemplo, las normas ITU-T H.264 y H.265, o extensiones de las normas. No obstante, las tecnologías en esta solicitud no quedan limitadas a alguna norma de codificación y decodificación específica.
La figura 5a es un diagrama de bloques esquemático/conceptual de un ejemplo de un codificador de vídeo 100 configurado para implementar una tecnología (divulgada) en esta solicitud. En el ejemplo de la figura 5a, el codificador de vídeo 100 incluye una unidad de cálculo residual 204, una unidad de procesamiento de transformada 206, una unidad de cuantificación 208, una unidad de cuantificación inversa 210, una unidad de procesamiento de transformada inversa 212, una unidad de reconstrucción 214, una memoria tampón 216, una unidad de filtro de bucle 220, una memoria tampón de imágenes decodificadas (decoded picture buffer, DPB) 230, una unidad de procesamiento de predicción 260, y una unidad de codificación entrópica 270. La unidad de procesamiento de predicción 260 puede incluir una unidad de inter predicción 244, una unidad de intra predicción 254, y una unidad de selección de modo 262. La unidad de inter predicción 244 puede incluir una unidad de estimación de movimiento y una unidad de compensación de movimiento (que no se muestra en la figura). El codificador de vídeo 100 mostrado en la figura 5a también se puede referir como un codificador de vídeo híbrido o un codificador de vídeo basado en un códec de vídeo híbrido.
Por ejemplo, la unidad de cálculo residual 204, la unidad de procesamiento de transformada 206, la unidad de cuantificación 208, la unidad de procesamiento de predicción 260, y la unidad de codificación entrópica 270 forman una trayectoria de señal de avance del codificador 100, mientras que, por ejemplo, la unidad de cuantificación inversa 210, la unidad de procesamiento de transformada inversa 212, la unidad de reconstrucción 214, la memoria tampón 216, el filtro de bucle 220, la memoria tampón de imágenes decodificadas (DPB) 230, y la unidad de procesamiento de predicción 260 forman una trayectoria de señal de retroceso del codificador, donde la trayectoria de señal de retroceso del codificador de vídeo corresponde a una trayectoria de señal de un decodificador (hacer referencia a un decodificador de vídeo 300 en la figura 5b).
El codificador 100 recibe, por ejemplo, a través de una entrada 202, una imagen 201 o un bloque 203 de una imagen 201, por ejemplo, una imagen en una secuencia de imágenes que forman un vídeo o una secuencia de vídeo. El bloque de imágenes 203 también puede ser referido como un bloque de imágenes actual o un bloque de imágenes aser-codificadas, y la imagen 201 puede ser referida como una imagen actual o una imagen a-ser-codificada (particularmente en la codificación de vídeo, para distinguir la imagen actual de otras imágenes, por ejemplo, imágenes previamente codificadas y/o decodificadas en una misma secuencia de vídeo, concretamente, la secuencia de vídeo que también incluye la imagen actual).
División
El codificador 100 puede incluir una unidad de división (la cual no es mostrada en la figura 5a) configurada para dividir la imagen 201 en una pluralidad de bloques tales como los bloques 203. La imagen 201 generalmente es dividida en una pluralidad de bloques que no se traslapan. La unidad de división puede ser configurada para: utilizar un mismo tamaño de bloque para todas las imágenes de una secuencia de vídeo y una rejilla correspondiente que define el tamaño de bloque, o cambiar un tamaño de bloque entre imágenes o subconjuntos o grupos de imágenes, y dividir cada imagen en bloques correspondientes.
En un ejemplo, la unidad de procesamiento de predicción 260 del codificador de vídeo 100 puede ser configurada para ejecutar cualquier combinación de las tecnologías de división anteriores.
Al igual que la imagen 201, el bloque 203 también es considerado o puede ser considerado como un arreglo o matriz bidimensional de muestras con valores de luminancia (valores de muestra), aunque un tamaño del bloque 203 es menor que un tamaño de la imagen 201. En otras palabras, el bloque 203 puede incluir, por ejemplo, un arreglo de muestras (por ejemplo, un arreglo de luminancia en un caso de una imagen monocromática 201), tres arreglos de muestras (por ejemplo, un arreglo de luminancia y dos arreglos de crominancia en un caso de una imagen de color), o cualquier otra cantidad y/o tipo de arreglos dependiendo de un formato de color aplicado. Una cantidad de muestras en las direcciones (o ejes) horizontal y vertical del bloque 203 definen un tamaño del bloque 203.
El codificador 100 mostrado en la figura 5a está configurado para codificar la imagen 201 bloque por bloque, por ejemplo, codificar y predecir cada bloque 203.
Cálculo residual
La unidad de cálculo residual 204 está configurada para calcular un bloque residual 205 con base en el bloque de imágenes 203 y un bloque de predicción 265 (detalles referentes al bloque de predicción 265 son proporcionados adicionalmente a continuación), por ejemplo, sustrayendo valores de muestra del bloque de predicción 265 de los valores de muestra del bloque de imágenes 203 muestra por muestra (sample by sample), para obtener el bloque residual 205 en un dominio de muestra.
Transformada
La unidad de procesamiento de transformada 206 está configurada para aplicar una transformada, por ejemplo, una transformada de coseno discreta (DCT) o una transformada de seno discreta (DST), a valores de muestra del bloque residual 205 para obtener coeficientes de transformada 207 en un dominio de transformada. Los coeficientes de transformada 207 también se pueden referir como coeficientes residuales de transformada y representan el bloque residual 205 en el dominio de transformada.
La unidad de procesamiento de transformada 206 puede ser configurada para aplicar aproximaciones de entero de DCT/DST, tal como transformadas especificadas en HEVC/H.265. En comparación con una transformada DCT ortogonal, dichas aproximaciones de entero generalmente están escaladas por un factor. Para preservar una norma de un bloque residual que es procesado utilizando transformadas de avance e inversa, se aplica un factor de escalación adicional como una parte del proceso de transformada. El factor de escalación generalmente es elegido con base en algunas restricciones, por ejemplo, el factor de escalación es una potencia de dos para una operación de cambio, una profundidad bit del coeficiente de transformada, y una compensación entre precisión y costos de implementación. Por ejemplo, un factor de escalación específico es especificado para la transformada inversa, por ejemplo, por la unidad de procesamiento de transformada inversa 212 en un lado del decodificador 30 (y una transformada inversa correspondiente, por ejemplo, por la unidad de procesamiento de transformada inversa 212 en un lado del codificador 20), y de manera correspondiente, un factor de escala correspondiente puede ser especificado para la transformada de avance por la unidad de procesamiento de transformada 206 en un lado del codificador 20.
Cuantificación
La unidad de cuantificación 208 está configurada para cuantificar los coeficientes de transformada 207 para obtener coeficientes de transformada cuantificados 209, por ejemplo, aplicando cuantificación escalar o cuantificación de vector. El coeficiente de transformada cuantificado 209 también puede ser referido como un coeficiente residual cuantificado 209. Un proceso de cuantificación puede reducir una profundidad de bit relacionada con algunos o todos los coeficientes de transformada 207. Por ejemplo, un coeficiente de transformada de n-bits puede ser redondeado hacia bajo a un coeficiente de transformada de m-bits durante la cuantificación, donde n es mayor que m. Un grado de cuantificación puede ser modificado ajustando un parámetro de cuantificación (QP). Por ejemplo, para cuantificación escalar, se puede aplicar diferente escalación para lograr una cuantificación más fina o más gruesa. Un tamaño de paso de cuantificación más pequeño corresponde a cuantificación más fina, y un tamaño de paso de cuantificación más grande corresponde a cuantificación más gruesa. Un tamaño de paso de cuantificación apropiado puede ser indicado por un parámetro de cuantificación (QP). Por ejemplo, el parámetro de cuantificación puede ser un índice a un conjunto predefinido de tamaños de paso de cuantificación apropiados. Por ejemplo, un parámetro de cuantificación más pequeño puede corresponder a una cuantificación más fina (un tamaño de paso de cuantificación más pequeño), y un parámetro de cuantificación más grande puede corresponder a una cuantificación más gruesa (un tamaño de paso de cuantificación más grande), o viceversa. La cuantificación puede incluir división por un tamaño de paso de cuantificación y cuantificación correspondiente o cuantificación inversa, por ejemplo, ejecutada por la unidad de cuantificación inversa 210, o puede incluir multiplicación por un tamaño de paso de cuantificación. Realizaciones de acuerdo con algunas normas tales como HEVC pueden utilizar un parámetro de cuantificación para determinar el tamaño de paso de cuantificación. Generalmente, el tamaño de paso de cuantificación puede ser calculado con base en un parámetro de cuantificación utilizando una aproximación de punto fijo de una ecuación incluyendo división. Factores de escalación adicionales pueden ser introducidos para cuantificación y descuantificación con el fin de restaurar la norma del bloque residual, la cual se puede modificar debido a la escalación utilizada en la aproximación de punto fijo de la ecuación para el tamaño de paso de cuantificación y el parámetro de cuantificación. En una implementación ejemplar, la escalación de la transformada inversa y descuantificación se puede combinar. Alternativamente, tablas de cuantificación personalizadas pueden ser utilizadas y señalizadas desde un codificador a un decodificador, por ejemplo, en una corriente de bits. La cuantificación es una operación con pérdida, donde la pérdida aumenta con el incremento de los tamaños de paso de cuantificación.
La unidad de cuantificación inversa 210 está configurada para aplicar cuantificación inversa de la unidad de cuantificación 208 en coeficientes cuantificados para obtener coeficientes descuantificados 211, por ejemplo, aplicar, con base en o utilizando un mismo tamaño de paso de cuantificación que la unidad de cuantificación 208, lo inverso de un esquema de cuantificación aplicado por la unidad de cuantificación 208. Los coeficientes descuantificados 211 también pueden ser referidos como coeficientes residuales descuantificados 211 y pueden corresponder a los coeficientes de transformada 207, aunque por lo general no idénticos a los coeficientes de transformada debido a la pérdida provocada por la cuantificación.
La unidad de procesamiento de transformada inversa 212 está configurada para aplicar una transformada inversa de la transformada aplicada por la unidad de procesamiento de transformada 206, por ejemplo, una transformada de coseno discreta inversa (DCT) o una transformada de seno discreta inversa (DST), para obtener un bloque de transformada inversa 213 en el dominio de muestra. El bloque de transformada inversa 213 también se puede referir como un bloque descuantificado de transformada inversa 213 o un bloque residual de transformada inversa 213.
La unidad de reconstrucción 214 (por ejemplo, una sumadora 214) está configurada para agregar el bloque de transformada inversa 213 (es decir, el bloque residual reconstruido 213) al bloque de predicción 265, por ejemplo, agregando valores de muestra del bloque residual reconstruido 213 y los valores de muestra del bloque de predicción 265, para obtener un bloque reconstruido 215 en el dominio de muestra.
Opcionalmente, una unidad de memoria tampón 216 (o "memoria tampón" 216 para abreviar), por ejemplo, de la memoria tampón de línea 216, está configurada para colocar en memoria tampón o guardar el bloque reconstruido 215 y un valor de muestra correspondiente, por ejemplo, para intra predicción. En otras realizaciones, el codificador puede ser configurado para utilizar un bloque reconstruido sin filtrar y/o un valor de muestra correspondiente almacenado en la unidad de memoria tampón 216 para cualquier tipo de estimación y/o predicción, por ejemplo, intra predicción.
Por ejemplo, en una realización, el codificador 100 puede ser configurado de manera que la unidad de memoria tampón 216 no solamente es utilizada para almacenar el bloque reconstruido 215 para intra predicción 254 sino que también se utiliza para la unidad de filtro de bucle 220 (la cual no se muestra en la figura 5a), y/o de manera que, por ejemplo, la unidad de memoria tampón 216 y la unidad de memoria tampón de imágenes decodificadas 230 forman una memoria tampón. En otras realizaciones, bloques filtrados 221 y/o bloques o muestras de la memoria tampón de imágenes decodificadas 230 (los bloques o muestras no se muestran en la figura 5a) son utilizados como una entrada o una base para intra predicción 254.
La unidad de filtro de bucle 220 (o "filtro de bucle" 220 para abreviar) está configurada para filtrar el bloque reconstruido 215 para obtener un bloque filtrado 221, para suavizar las transiciones de muestra o mejorar la calidad del vídeo. La unidad de filtro de bucle 220 está destinada a representar uno o más filtros de bucle tal como un filtro de desbloqueo, un filtro de compensación de muestra adaptable (SAO), u otro filtro tal como un filtro bilateral, un filtro de bucle adaptable (ALF), un filtro de afinamiento o suavización, o un filtro colaborativo. Aunque la unidad de filtro de bucle 220 se muestra como un filtro en-bucle en la figura 5a, en otra configuración, la unidad de filtro de bucle 220 puede ser implementada como un filtro post-bucle. El bloque filtrado 221 también puede ser referido como un bloque reconstruido filtrado 221. La memoria tampón de imágenes decodificadas 230 puede almacenar un bloque codificado reconstruido después que la unidad de filtro de bucle 220 ejecuta operación de filtración en el bloque codificado reconstruido.
En una realización, el codificador 100 (de manera correspondiente, la unidad de filtro de bucle 220) puede ser configurado para emitir un parámetro de filtro de bucle (tal como información de compensación de muestra adaptable), por ejemplo, directamente o después de la codificación entrópica ejecutada por la unidad de codificación entrópica 270 o cualquier otra unidad de codificación entrópica, de manera que, por ejemplo, el decodificador 30 puede recibir el mismo parámetro de filtro de bucle y puede aplicar el mismo parámetro de filtro de bucle para decodificación.
La memoria tampón de imágenes decodificadas (DPB) 230 puede ser una memoria de imágenes de referencia que almacena datos de imágenes de referencia para uso en la codificación de datos de vídeo por el codificador de vídeo 100. La DPB 230 puede ser formada por cualquiera de una variedad de dispositivos de memoria tal como una memoria de acceso aleatorio dinámica (DRAM) (incluyendo una DRAM sincronizada (synchronous DRAM, SDRAM), una RAM magnetoresistiva (MRAM), una RAM resistiva (RRAM)), u otros tipos de dispositivos de memoria. La DPB 230 y la memoria tampón 216 pueden ser proporcionadas por un mismo dispositivo de memoria o dispositivos de memoria separados. En un ejemplo, la memoria tampón de imágenes decodificadas (DPB) 230 está configurada para almacenar el bloque filtrado 221. La memoria tampón de imágenes decodificadas 230 puede ser configurada adicionalmente para almacenar otros bloques previamente filtrados, por ejemplo, bloques previamente reconstruidos y filtrados 221, de la misma imagen actual o de diferentes imágenes, por ejemplo, imágenes previamente reconstruidas, y pueden proporcionar imágenes previamente reconstruidas, es decir, decodificadas (y bloques y muestras de referencia correspondientes) y/o una imagen actual parcialmente reconstruida (y bloques y muestras de referencia correspondientes), por ejemplo, para inter predicción. En un ejemplo, si el bloque reconstruido 215 es reconstruido sin filtración en-bucle, la memoria tampón de imágenes decodificadas (DPB) 230 está configurada para almacenar el bloque reconstruido 215.
La unidad de procesamiento de predicción 260, también referida como una unidad de procesamiento de predicción de bloque 260, está configurada para recibir u obtener el bloque de imágenes 203 (un bloque actual 203 de la imagen actual 201) y datos de imagen reconstruida, por ejemplo, muestras de referencia de la misma imagen (actual) de la memoria tampón 216 y/o datos de imágenes de referencia 231 de una o más imágenes previamente decodificadas de la memoria tampón de imágenes decodificadas 230, y procesar dichos datos para predicción, para ser específicos, para proporcionar el bloque de predicción 265 que puede ser un bloque de inter predicción 245 o un bloque de intra predicción 255.
La unidad de selección de modo 262 puede ser configurada para seleccionar un modo de predicción (por ejemplo, un modo de intra o inter predicción) y/o un bloque de predicción correspondiente 245 o 255 que se va a utilizar como el bloque de predicción 265, para cálculo del bloque residual 205 y para reconstrucción del bloque reconstruido 215.
En una realización, la unidad de selección de modo 262 puede ser configurada para seleccionar el modo de predicción (por ejemplo, de entre los modos de predicción soportados por la unidad de procesamiento de predicción 260), donde el modo de predicción proporciona un mejor emparejamiento o en otras palabras un mínimo residual (el mínimo residual significa mejor compresión para transmisión o almacenamiento), o proporciona sobrecargas de señalización mínimas (las sobrecargas de señalización mínimas significan mejor compresión para transmisión o almacenamiento), o considera o equilibra ambos. La unidad de selección de modo 262 puede ser configurada para determinar el modo de predicción con base en la optimización de tasa-distorsión (RDO), para ser específicos, seleccionar un modo de predicción que proporciona una optimización mínima de tasa-distorsión o seleccionar un modo de predicción para el cual la tasa-distorsión relacionada satisface al menos un criterio de selección de modo de predicción.
En lo sucesivo, el procesamiento de predicción ejecutado (por ejemplo, utilizando la unidad de procesamiento de predicción 260) y la selección de modo ejecutada (por ejemplo, utilizando la unidad de selección de modo 262) por ejemplo del codificador 100 se describen con mayor detalle.
Tal como se describió antes, el codificador 100 está configurado para determinar o seleccionar el mejor u óptimo modo de predicción de entre un conjunto de modos de predicción (pre-determinados). El conjunto de modos de predicción puede incluir, por ejemplo, un modo de intra predicción y/o un modo de inter predicción.
Un conjunto de modos de intra predicción puede incluir 35 diferentes modos de intra predicción, por ejemplo, modos no-direccionales tal como un modo DC (o promedio) y un modo plano, o modos direccionales tal como aquellos definidos en H.265, o puede incluir 67 modos de intra predicción diferentes, por ejemplo, modos no direccionales tales como un modo DC (o promedio) y un modo plano, o modos direccionales tal como aquellos definidos en H.266 bajo desarrollo.
(Posiblemente) El conjunto de modos de inter predicción depende de una imagen de referencia disponible (es decir, al menos una parte de la imagen decodificada almacenada en el DBP 230) y otro parámetro de inter predicción, por ejemplo, dependiendo de si toda la imagen de referencia es utilizada o solamente una parte de la imagen de referencia, por ejemplo, una región de ventana de búsqueda alrededor de una región del bloque actual, para buscar un bloque de referencia de mejor emparejamiento, y/o dependiendo, por ejemplo, de si se aplica interpolación de muestras tal como interpolación de media-muestra y/o cuarto de muestra.
Además de los modos de predicción anteriores, se puede aplicar un modo de omisión y/o modo directo.
La unidad de procesamiento de predicción 260 puede ser configurada adicionalmente para dividir el bloque 203 en divisiones de bloque o sub-bloques más pequeños, por ejemplo, utilizando iterativamente división de árbol cuaternario (quad-tree, QT), división de árbol binario (BT), división de árbol ternario (TT), o cualquier combinación de los mismos, y para ejecutar, por ejemplo, predicción para cada una de las divisiones de bloque o sub-bloques. La selección de modo incluye la selección de una estructura de árbol del bloque dividido 203 y la selección de un modo de predicción aplicado a cada una de las divisiones de bloque o sub-bloques.
La unidad de inter predicción 244 puede incluir una unidad de estimación de movimiento (ME) (la cual no se muestra en la figura 5a) y una unidad de compensación de movimiento (MC) (la cual no se muestra en la figura 5a). La unidad de estimación de movimiento está configurada para recibir u obtener el bloque de imágenes 203 (el bloque de imágenes actual 203 de la imagen actual 201) y una imagen decodificada 231, o al menos uno o más bloques previamente reconstruidos, por ejemplo, uno o más bloques reconstruidos de otras/diferentes imágenes previamente decodificadas 231, para estimación de movimiento. Por ejemplo, una secuencia de vídeo puede incluir la imagen actual y las imágenes previamente decodificadas 31. En otras palabras, la imagen actual y las imágenes previamente decodificadas 31 pueden ser una parte de o formar una secuencia de imágenes que forman la secuencia de vídeo.
Por ejemplo, el codificador 100 puede ser configurado para seleccionar un bloque de referencia de una pluralidad de bloques de referencia de una misma imagen o diferentes imágenes de una pluralidad de otras imágenes y proporcionar, a la unidad de estimación de movimiento (la cual no se muestra en la figura 5a), una imagen de referencia y/o una compensación (una compensación espacial) entre una posición (coordinadas X y Y) del bloque de referencia y una posición del bloque actual como un parámetro de inter predicción. La compensación también es referida como un vector de movimiento (MV).
La unidad de compensación de movimiento está configurada para obtener, por ejemplo, recibir, el parámetro de inter predicción y ejecutar inter predicción con base en o utilizando el parámetro de inter predicción para obtener un bloque de inter predicción 245. La compensación de movimiento ejecutada por la unidad de compensación de movimiento (la cual no se muestra en la figura 5a) puede incluir la extracción o generación del bloque de predicción con base en un vector de movimiento/bloque determinado a través de estimación de movimiento (posiblemente ejecutando interpolaciones en precisión de sub-muestra). La filtración de interpolación puede generar muestras de muestras adicionales de muestras de muestras conocidas, incrementando así potencialmente una cantidad de bloques de predicción candidatos que pueden ser utilizados para codificar un bloque de imagen. Al momento de recibir un vector de movimiento para una PU del bloque de imágenes actual, la unidad de compensación de movimiento 246 puede ubicar un bloque de predicción al cual apunta el vector de movimiento en una de las listas de imágenes de referencia. La unidad de compensación de movimiento 246 también puede generar elementos de sintaxis asociados con los bloques y porciones de vídeo para uso por el decodificador de vídeo 300 en la decodificación de los bloques de imagen de la porción de vídeo.
La unidad de intra predicción 254 está configurada para obtener, por ejemplo, recibir, un bloque de imágenes 203 (el bloque de imágenes actual) y uno o más bloques previamente reconstruidos, por ejemplo, bloques vecinos reconstruidos, de una misma imagen para intra estimación. El codificador 100 puede ser configurado, por ejemplo, para seleccionar un modo de intra predicción de entre una pluralidad de modos de intra predicción (predeterminados).
En una realización, el codificador 100 puede ser configurado para seleccionar un modo de intra predicción con base en un criterio de optimización, por ejemplo, con base en un residual mínimo (por ejemplo, un modo de intra predicción proporcionado el bloque de predicción 255 que es más similar al bloque de imágenes actual 203) o tasa-distorsión mínima.
La unidad de intra predicción 254 además está configurada para determinar el bloque de intra predicción 255 con base, por ejemplo, en un parámetro de intra predicción en el modo de intra predicción seleccionado. En cualquier caso, después de seleccionar un modo de intra predicción de un bloque, la unidad de intra predicción 254 además está configurada para proporcionar un parámetro de intra predicción, es decir, información que indica el modo de intra predicción seleccionado del bloque, a la unidad de codificación entrópica 270. En un ejemplo, la unidad de intra predicción 254 puede ser configurada para ejecutar cualquier combinación de tecnologías de intra predicción descritas a continuación.
La unidad de codificación entrópica 270 está configurada para aplicar (o no aplicar) un algoritmo o esquema de codificación entrópica (por ejemplo, una variable de longitud variable (VLC), un esquema VLC adaptable al contexto (CAVLC), un esquema de codificación aritmética, codificación aritmética binaria adaptable al contexto (CABAC), codificación aritmética binaria adaptable al contexto basada en sintaxis (SBAC), codificación entrópica de división de intervalo de probabilidad (PIPE), u otra metodología o tecnología de codificación entrópica) para uno o todos los coeficientes residuales cuantificados 209, el parámetro de inter predicción, el parámetro de intra predicción, y/o el parámetro de filtro de bucle, para obtener datos de imagen codificados 21 que pueden ser emitidos a través de una salida 272, por ejemplo, en una forma de una corriente de bits codificada 21. La corriente de bits codificada puede ser transmitida al decodificador de vídeo 300, o archivada para posterior transmisión o recuperación por el decodificador de vídeo 300. La unidad de codificación entrópica 270 puede ser configurada adicionalmente para codificar por entropía otro elemento de sintaxis para una porción de vídeo actual que está siendo codificada.
Se pueden utilizar otras variaciones estructurales del codificador de vídeo 100 para codificar una corriente de vídeo. Por ejemplo, un codificador basado en no-transformada 100 puede cuantificar una señal residual directamente sin la unidad de procesamiento de transformada 206 para algunos bloques o tramas. En otra implementación, el codificador 100 puede tener la unidad de cuantificación 208 y la unidad de cuantificación inversa 210 combinadas en una sola unidad.
La figura 5b es un diagrama de bloques esquemático de un decodificador de vídeo. Un decodificador de entropía 303 del decodificador de vídeo 300 decodifica por entropía una corriente de bits para generar un coeficiente cuantificado y algunos elementos de sintaxis. El decodificador de entropía 303 reenvía los elementos de sintaxis a una unidad de procesamiento de predicción 308. El decodificador de vídeo 300 puede recibir elementos de sintaxis/un elemento de sintaxis a un nivel de porción de vídeo y/o un nivel de bloque de imágenes. En esta solicitud, en un ejemplo, el elemento de sintaxis aquí puede incluir datos de intra predicción relacionados con un nodo de árbol de codificación de crominancia, los datos de intra predicción pueden incluir un primer identificador qtbtt_dual_árbol_intra_indicador y un segundo identificador sps_cclm_habilitado_indicador, el primer identificador es utilizado para indicar si una estructura de árbol de separación es utilizada para una intra imagen en una secuencia de vídeo, y el segundo identificador es utilizado para indicar si se permite que CCLM sea ejecutado en un bloque de crominancia en una secuencia de vídeo. Opcionalmente, los datos de inter predicción además pueden incluir un tamaño y un indicador de división de un nodo de árbol de codificación de crominancia, y el indicador de división puede ser establecido a diferentes valores para indicar que diferentes modos de división son utilizados para el nodo de árbol de codificación de crominancia. Opcionalmente, se puede incluir otro elemento de sintaxis adicional.
El decodificador de entropía 303 decodifica por entropía la corriente de bits para obtener el primer identificador qtbtt_dual_árbol_intra_indicador y el segundo identificador sps_cclm_habilitado_indicador. Si el primer identificador indica que la estructura de árbol de separación es utilizada para la intra imagen, y el segundo identificador indica que se permite que CCLM sea ejecutado en un bloque de crominancia en la secuencia de vídeo, el decodificador de entropía 303 continúa analizando el tamaño y el indicador de división del nodo de árbol de codificación de crominancia de la corriente de bits, y un intra predictor 309 determina el modo de división del nodo de árbol de codificación de crominancia con base en el indicador de división, y determina, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia. El decodificador de entropía 303 analiza un primer índice CuPreModo de la unidad de codificación de crominancia de la corriente de bits. Si un valor del primer índice es igual a MODO_INTRA, el decodificador de entropía 303 continúa analizando un tercer identificador pcm_indicador de la corriente de bits. Si el tercer identificador indica que ningún modo PCM es utilizado para la unidad de codificación de crominancia, el decodificador de entropía 303 analiza un segundo índice intra_crominancia_pred_modo de la corriente de bits. El intra predictor 309 determina un modo de predicción de la unidad de codificación de crominancia con base en el segundo índice intra_crominancia_pred_modo y un modo de predicción de una unidad de codificación de luminancia correspondiente a la unidad de codificación de crominancia, y después intra predice la unidad de codificación de crominancia con base en el modo de predicción de la unidad de codificación de crominancia para obtener muestras de predicción de la unidad de codificación de crominancia. El decodificador de entropía 303 además analiza la corriente de bits para obtener información residual de la unidad de codificación de crominancia.
Un descuantificador 304 y un convertidor inverso 305 procesan la información residual de la unidad de codificación de crominancia para obtener residuales reconstruidos de la unidad de codificación de crominancia.
Después que el intra predictor 309 genera las muestras de predicción utilizadas para la unidad de codificación de crominancia, el decodificador de vídeo 300 agrega los residuales reconstruidos del convertidor inverso 305 y las muestras de predicción generadas por el intra predictor 310, para obtener muestras reconstruidas de una unidad de codificación de crominancia, es decir, un bloque de imágenes decodificado. Una sumadora 311 representa un componente que ejecuta una operación de suma. Cuando es necesario, un filtro de bucle (en o después de un bucle de decodificación) puede ser utilizado adicionalmente para suavizar las transiciones de muestra, o de otra manera mejorar la calidad del vídeo. Una unidad de filtro 306 puede representar uno o más filtros de bucle, por ejemplo, un filtro de desbloqueo, un filtro de bucle adaptable (ALF), y un filtro de compensación de muestra adaptable (SAO). Aunque la unidad de filtro 306 se muestra como un filtro en-bucle en la figura 5b, en otra implementación, la unidad de filtro 306 puede ser implementada como un filtro de post-bucle. En un ejemplo, la unidad de filtro 306 es aplicable a la reconstrucción de bloque para reducir la distorsión de bloque, y este resultado es emitido como una corriente de vídeo decodificada. Además, un bloque de imágenes decodificado en una trama o imagen determinada puede ser adicionalmente almacenado en una memoria tampón de imágenes decodificadas 307, y la memoria tampón de imágenes decodificadas 307 almacena una imagen de referencia utilizada para compensación de movimiento subsiguiente. La memoria tampón de imágenes decodificadas 307 puede ser una parte de una memoria, y además puede almacenar un vídeo decodificado para posterior presentación en un aparato de despliegue (por ejemplo, el aparato de despliegue 330 en la figura 4). Alternativamente, la memoria tampón de imágenes decodificadas 307 puede estar separada de dicha memoria.
Se debiera entender que se puede utilizar otra variante estructural del decodificador de vídeo 300 para decodificar una corriente de bits de vídeo codificada. Por ejemplo, el decodificador de vídeo 300 puede generar una corriente de vídeo de salida, sin procesamiento por la unidad de filtro 306. Alternativamente, para algunos bloques de imagen o tramas de imagen, el decodificador de entropía 303 del decodificador de vídeo 300 no obtiene un coeficiente cuantificado a través de decodificación, y de manera correspondiente, no se requiere procesamiento por el descuantificador 304 y el transformador inverso 305.
La figura 5c es un diagrama de bloques simplificado de un aparato 500 que puede ser utilizado como cualquiera o dos del dispositivo fuente 10 y el dispositivo destino 30 en la figura 4. El aparato 500 puede implementar las tecnologías de esta solicitud. El aparato 500 puede ser en una forma de un sistema de computación incluyendo una pluralidad de dispositivos informáticos, o en una forma de un solo dispositivo informático tal como un teléfono móvil, una tableta, una portátil o un ordenador de sobremesa.
Un procesador 502 del aparato 500 puede ser una unidad de procesamiento central. Alternativamente, un procesador 502 puede ser cualquier otro tipo de dispositivo o una pluralidad de dispositivos que pueden controlar o procesar información y que existen o van a ser desarrollados en el futuro. Tal como se muestra en la figura, aunque las implementaciones divulgadas pueden ser practicadas con un solo procesador tal como el procesador 502, se pueden lograr ventajas en velocidad y eficiencia utilizando más de un procesador.
En una implementación, una memoria 504 del aparato 500 puede ser un dispositivo de memoria de solo lectura (ROM) o un dispositivo de memoria de acceso aleatorio (RAM). Cualquier otro tipo apropiado de dispositivo de almacenamiento puede ser utilizado como la memoria 504. La memoria 504 puede incluir un código y datos 506 a los que se tiene acceso a través del procesador 502 utilizando un bus 512. La memoria 504 además puede incluir un sistema operativo 508 y programas de aplicación 510. Los programas de aplicación 510 incluyen al menos un programa que permite al procesador 502 ejecutar los métodos descritos en esta especificación. Por ejemplo, los programas de aplicación 510 pueden incluir aplicaciones 1 a N, y las aplicaciones 1 a N además incluyen una aplicación de codificación de vídeo que desarrolla el método descrito en esta especificación. El aparato 500 también puede incluir una memoria adicional en una forma de un almacenamiento secundario 514. El almacenamiento secundario 514 puede ser, por ejemplo, una tarjeta de memoria utilizada con un dispositivo informático móvil. Debido a que sesiones de comunicación de vídeo pueden contener una cantidad grande de información, toda o parte de esta información puede ser almacenada en el almacenamiento secundario 514 y ser cargada en la memoria 504 según sea necesario para procesamiento.
El aparato 500 también puede incluir uno o más dispositivos de salida, tal como una pantalla 518. En un ejemplo, la pantalla 518 puede ser una pantalla sensible al tacto que combine una pantalla con un elemento sensible al tacto que opera para detectar entradas táctiles. La pantalla 518 puede ser acoplada al procesador 502 utilizando el bus 512. Otros dispositivos de salida que permiten a un usuario programar o de otra forma utilizar el aparato 500 pueden ser proporcionados como algo adicional o como una alternativa a la pantalla 518. Cuando el dispositivo de salida es o incluye una pantalla, la pantalla puede ser implementada en varias formas, incluyendo por una pantalla de cristal líquido (LCD), una pantalla de tubo de rayos catódicos (CRT), una pantalla de plasma o pantalla de diodo de emisión de luz (LED), tal como una pantalla LED orgánica (OLED).
El aparato 500 también puede incluir o estar conectado a un dispositivo de detección de imágenes 520. El dispositivo de detección de imágenes 520 es, por ejemplo, una cámara o cualquier otro dispositivo de detección de imágenes 520 que pueda detectar una imagen y que exista o sea desarrollado en el futuro. La imagen, por ejemplo, es una imagen de un usuario quien corre el aparato 500. El dispositivo de detección de imágenes 520 puede ser colocado directamente de frente a un usuario quien corre el aparato 500. En un ejemplo, una posición y un eje óptico del dispositivo de detección de imágenes 520 pueden ser configurados de manera que un campo de visión del dispositivo de detección de imágenes 520 incluye una región estrechamente adyacente a la pantalla 518 y la pantalla 518 puede ser vista desde la región.
El aparato 500 también puede incluir o estar en comunicación con un dispositivo de detección de sonido 522, por ejemplo, un micrófono o cualquier otro dispositivo de detección de sonido que exista o sea desarrollado en el futuro y que pueda detectar sonidos cerca del aparato 500. El dispositivo de detección de sonido 522 puede ser colocado directamente de frente a un usuario quien corre el aparato 500, y puede ser configurado para recibir un sonido, por ejemplo, una voz u otro sonido, hecho por el usuario cuando corre el aparato 500.
Aunque la figura 5c muestra el procesador 502 y la memoria 504 del aparato 500 como estando integrados en una sola unidad, se pueden utilizar otras configuraciones. El corrimiento del procesador 502 puede estar distribuido en una pluralidad de máquinas (cada máquina tiene uno o más procesadores) que pueden estar acoplados directamente, o pueden estar distribuidos en una región local u otra red. La memoria 504 puede estar distribuida a través de una pluralidad de máquinas tal como una memoria basada en red o una memoria en una pluralidad de máquinas en las cuales corre el aparato 500. Aunque aquí se muestra como un solo bus, el bus 512 del aparato 500 puede incluir una pluralidad de buses. Además, el almacenamiento secundario 514 puede ser directamente acoplado a los otros componentes del aparato 500 o se puede tener acceso al mismo sobre una red y puede incluir una sola unidad integrada tal como una tarjeta de memoria o una pluralidad de unidades tal como una pluralidad de tarjetas de memoria. El aparato 500 entonces puede ser implementado en una amplia variedad de configuraciones.
Se debiera observar que el codificador mostrado en la figura 5a, el decodificador mostrado en la figura 5b, y el aparato mostrado en la figura 5c pueden ejecutar algunas o todas las siguientes realizaciones del método que se muestran en la figura 6 y la figura 7.
La figura 6 es un gráfico de flujo esquemático de un método de intra predicción para una secuencia de vídeo de acuerdo con una realización útil para comprender la presente invención. Tal como se muestra en la figura 6, el método incluye los siguientes pasos.
5601. Obtener un tamaño y un modo de división de un nodo de árbol de codificación de crominancia.
Específicamente, un elemento de sintaxis correspondiente en una corriente de bits es analizado para obtener el tamaño y el modo de división del nodo de árbol de codificación de crominancia. El modo de división del nodo de árbol de codificación de crominancia puede incluir al menos uno de no división, una división de árbol cuaternario, una división binaria horizontal, una división ternaria horizontal, una división binaria vertical, y una división ternaria vertical. Ciertamente, alternativamente puede haber otro modo de división.
Aquí se debiera observar que un formato de la secuencia de vídeo en esta realización puede ser un formato YUV4:2:0, un formato YUV4:2:2, o un formato YUV4:2:4.
5602. Determine, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia.
La unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia es una unidad de codificación de crominancia en una región de imagen correspondiente al nodo de árbol de codificación de crominancia. Si el nodo de árbol de codificación de crominancia no es dividido, el nodo de árbol de codificación de crominancia incluye una unidad de codificación de crominancia. Si el nodo de árbol de codificación de crominancia es dividido en nodos hijo, la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia es la unidad de codificación de crominancia correspondiente a todos los nodos hoja de árbol de codificación del nodo de árbol de codificación de crominancia.
En una realización viable, el tamaño del nodo de árbol de codificación de crominancia es M x N, y la determinación, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia además incluye:
cuando ambos M y N son iguales a un umbral preestablecido T1, si el modo de división del nodo de árbol de codificación de crominancia cumple con una primera condición preestablecida, determinar que se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o si el modo de división del nodo de árbol de codificación de crominancia no cumple con una primera condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia, donde la primera condición preestablecida incluye no división o un modo de división de árbol cuaternario, y el umbral T1 es, por ejemplo, 64 o 32; o
cuando M es igual a T1 y N es igual a T1/2, si el modo de división del nodo de árbol de codificación de crominancia cumple con una segunda condición preestablecida, determinar que se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o si el modo de división del nodo de árbol de codificación de crominancia no cumple con una segunda condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia, donde la segunda condición preestablecida incluye no división o un modo de división binaria vertical.
De manera más específica, cuando la primera condición preestablecida es el modo de no división o el modo de división de árbol cuaternario, "si el modo de división del nodo de árbol de codificación de crominancia cumple con una primera condición preestablecida" es "si el modo de división del nodo de árbol de codificación de crominancia es el modo de no división o el modo de división de árbol cuaternario". Cuando la segunda condición preestablecida es el modo de no división o el modo de división binaria vertical, "si el modo de división del nodo de árbol de codificación de crominancia cumple con una segunda condición preestablecida" es "si el modo de división del nodo de árbol de codificación de crominancia es el modo de no división o el modo de división binaria vertical". En otra realización viable, la primera condición preestablecida de manera alternativa puede ser no división, un modo de división de árbol cuaternario, o un modo de división binaria horizontal. En otra realización viable, la segunda condición preestablecida alternativamente puede ser no división, un modo de división binaria vertical, o un modo de división binaria horizontal.
Si el nodo de árbol de codificación de crominancia actual no es dividido, información de modo de codificación de la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia actual es analizada adicionalmente, y la decodificación y reconstrucción se completan. De otra manera, el nodo de árbol de codificación de crominancia actual es dividido en una pluralidad de nodos con base en el modo de división del nodo de árbol de codificación de crominancia actual.
Aquí se debiera observar que, si una estructura de árbol de separación es utilizada para una intra imagen, un nodo de árbol de codificación de crominancia cuyo tamaño es T1 x (T1/2) se puede obtener solamente dividiendo un nodo de árbol de codificación de crominancia cuyo tamaño es T1 x T1 utilizando el modo de división binaria horizontal; por lo tanto, que "el tamaño del nodo de árbol de codificación de crominancia sea T1 x (T1/2)" es equivalente a que un modo de división de un nodo padre (es decir, el nodo de árbol de codificación de crominancia cuyo tamaño es T1 x T1) del nodo de árbol de codificación de crominancia sea el modo de división binaria horizontal.
Por ejemplo, se asume que el tamaño del nodo de árbol de codificación de crominancia es 64 x 64. Cuando un bloque de luminancia del nodo de árbol de codificación de crominancia cuyo tamaño es 64 x 64 es dividido utilizando un modo de división de árbol cuaternario, tal como se muestra en la figura 2a, si un modo de división del nodo de árbol de codificación de crominancia es un modo de división de árbol cuaternario, es decir, el modo de división de árbol cuaternario es utilizado para un bloque de crominancia del nodo de árbol de codificación de crominancia, tal como se muestra en la figura 2d, CCLM puede ser ejecutado en un nodo de crominancia 0 después que un nodo de luminancia 0 es reconstruido, CCLM puede ser ejecutado en un nodo de crominancia 1 después que un nodo de luminancia 1 es reconstruido, y así sucesivamente. Para otro ejemplo, si el modo de división del nodo de árbol de codificación de crominancia es no división, es decir, el bloque de crominancia del nodo de árbol de codificación de crominancia no es dividido, tal como se muestra en la figura 2e, el bloque de crominancia puede ser dividido en cuatro sub-regiones p0, p1, p2, y p3, e intra predicción de p0, p1, p2, y p3 es completada en secuencia. CCLM puede ser ejecutado en la región de crominancia p0 después que el nodo de luminancia 0 es reconstruido, CCLM puede ser ejecutado en la región de crominancia p1 antes que el nodo de luminancia 1 sea reconstruido, y así sucesivamente.
Si el bloque de crominancia del nodo de árbol de codificación de crominancia cuyo tamaño es 64 x 64 es primero dividido utilizando un modo de división binaria horizontal, un nodo de crominancia cuyo tamaño es 64 x 32 en la parte superior es dividido utilizando un modo de división binaria vertical, y un nodo de crominancia cuyo tamaño es 64 x 32 en la parte inferior no es dividido, tal como se muestra en la figura 2f, CCLM puede ser ejecutado en un nodo de crominancia 0 después que un nodo de luminancia 0 es reconstruido, CCLM puede ser ejecutado en un nodo de crominancia 1 después que un nodo de luminancia 1 es reconstruido, CCLM puede ser ejecutado en una región p0 de un nodo de crominancia 2 después que un nodo de luminancia 2 es reconstruido, y CCLM puede ser ejecutado en una región p1 del nodo de crominancia 2 después que un nodo de luminancia 3 es reconstruido. Por lo tanto, cuando el bloque de crominancia del nodo de árbol de codificación de crominancia cuyo tamaño es 64 x 64 no es dividido o es dividido utilizando el modo de división de árbol cuaternario, o el bloque de crominancia del nodo de árbol de codificación de crominancia cuyo tamaño es 64 x 32 no es dividido o es dividido utilizando el modo de división binaria vertical, una latencia de procesamiento para ejecutar CCLM en el nodo de crominancia no excede un tiempo de procesamiento de una región de luminancia cuyo tamaño es 32 x 32.
En esta realización, un modo de división que puede ser utilizado por el nodo de árbol de codificación de luminancia cuyo tamaño es T1 x T1 puede quedar limitado a incluir únicamente el modo de no división y el modo de división de árbol cuaternario. Esta limitación puede ser implementada por una limitación de que un tamaño de nodo de árbol binario máximo (por ejemplo, MaxBtTamañoY en VTM5) de una imagen de trama-I no puede exceder T1/2 y un tamaño de nodo de árbol ternario máximo (por ejemplo, MaxTtTamañoY en VTM5) no puede exceder T1/2.
Además, ningún modo ISP es utilizado para una unidad de codificación de luminancia cuyo tamaño es T1 x T1 y que se incluye en el nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia.
En una realización viable, se determina, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia. Además, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, esto es determinado adicionalmente con base en un modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia.
En una realización viable, la determinación, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, respecto a si se permite que intra predicción de modelo lineal de componente cruzada (CCLM) sea ejecutada en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia incluye:
determinar, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, un modo de división de un nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia, y si se permite que un modo de intra sub-división ISP sea utilizado para un bloque de luminancia correspondiente cuando un nodo de árbol de codificación de luminancia no es dividido, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, donde el caso de que el nodo de árbol de codificación de luminancia no es dividido corresponde a una unidad de codificación de luminancia; por lo tanto, el bloque de luminancia correspondiente al caso de que el nodo de árbol de codificación de luminancia no es dividido es el bloque de luminancia de la unidad de codificación de luminancia correspondiente al nodo de árbol de codificación de luminancia.
El nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es un nodo de árbol de codificación de luminancia cuyo tamaño es T1 x T1 en un árbol de codificación de luminancia en un árbol de separación en el cual se localiza el árbol de codificación de crominancia. Por ejemplo, cuando se utiliza un árbol de separación para una intra imagen en VVC versión 5, un nodo de árbol de codificación 64 x 64 es dividido utilizando el árbol de separación, y el árbol de separación incluye un árbol de codificación de luminancia y un árbol de codificación de crominancia. Si T1 se establece en 64, el nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es un nodo raíz del árbol de codificación de luminancia del árbol de separación en el cual se localiza el árbol de codificación de crominancia.
En una realización viable, el tamaño del nodo de árbol de codificación de crominancia es M x N, y la determinación, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, de un modo de división de un nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia, y si se permite que un modo de intra sub-división ISP sea utilizado para un bloque de luminancia correspondiente cuando un nodo de árbol de codificación de luminancia no es dividido, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia incluye:
cuando el modo de división del nodo de árbol de codificación de crominancia cumple cualquier condición en una tercera condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia;
cuando el modo de división del nodo de árbol de codificación de crominancia no cumple con una tercera condición preestablecida, M es igual a T1, y N es igual a T1, si el modo de división del nodo de árbol de codificación de crominancia cumple con una primera condición preestablecida, determinar que se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o si el modo de división del nodo de árbol de codificación de crominancia no cumple con una primera condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia, donde la primera condición preestablecida incluye no división o un modo de división de árbol cuaternario; o
cuando el modo de división del nodo de árbol de codificación de crominancia no cumple con una tercera condición preestablecida, M es igual a T1, N es igual a T1/2, si el modo de división del nodo de árbol de codificación de crominancia cumple con una segunda condición preestablecida, determinar que se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o si el modo de división del nodo de árbol de codificación de crominancia no cumple con una segunda condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia, donde la segunda condición preestablecida incluye no división o un modo de división binaria vertical.
En una realización, la tercera condición preestablecida incluye una o cualquier combinación de la siguiente condición 1 a la condición 13, y la condición 1 a la condición 13 son como se muestra a continuación:
Condición 1: El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, y un modo ISP es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, donde un tamaño del nodo de árbol de codificación de luminancia es T1 x T1 (donde el nodo de árbol de codificación de luminancia y el nodo de árbol de codificación de crominancia pertenecen a un mismo árbol de separación, es decir, las coordenadas de la esquina superior-izquierda del nodo de árbol de codificación de luminancia son las mismas que las coordenadas de la esquina superior-izquierda de un nodo raíz del árbol de codificación de crominancia).
Condición 2: El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo, donde el tamaño del nodo de árbol de codificación de crominancia, un tamaño del nodo de árbol de codificación de luminancia, y un tamaño del bloque de luminancia son todos T1 x T1.
Condición 3: El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP horizontal es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando uno de un modo de división binaria vertical, un modo de división ternaria vertical, o un modo de división de árbol cuaternario, donde el tamaño del nodo de árbol de codificación de crominancia, un tamaño del nodo de árbol de codificación de luminancia, y un tamaño del bloque de luminancia son todos T1 x T1.
Condición 4: El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP horizontal es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando uno de un modo de división ternaria horizontal, un modo de división binaria vertical, un modo de división ternaria vertical, o un modo de división de árbol cuaternario, donde el tamaño del nodo de árbol de codificación de crominancia, un tamaño del nodo de árbol de codificación de luminancia, y un tamaño del bloque de luminancia son todos T1 x T1.
Condición 5: El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP horizontal es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando uno de un modo de división binaria vertical, un modo de división ternaria vertical, o un modo de división ternaria horizontal, donde un tamaño del nodo de árbol de codificación de luminancia es T1 x T1, y el tamaño del nodo de árbol de codificación de crominancia es T1 x (T1/2).
Condición 6: El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP vertical es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando uno de un modo de división binaria horizontal, un modo de división ternaria horizontal, o un modo de división de árbol cuaternario, donde ambos el tamaño del nodo de árbol de codificación de crominancia y un tamaño del nodo de árbol de codificación de luminancia son T1 x T1.
Condición 7: El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo de predicción ISP vertical es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando uno de un modo de división ternaria vertical, un modo de división binaria horizontal, un modo de división ternaria horizontal, o un modo de división de árbol cuaternario, donde el tamaño del nodo de árbol de codificación de crominancia, un tamaño del nodo de árbol de codificación de luminancia, y un tamaño del bloque de luminancia son todos T1 x T1.
Condición 8: El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP vertical es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando uno de un modo de división binaria horizontal, un modo de división ternaria horizontal, o un modo de división ternaria vertical, donde un tamaño del nodo de árbol de codificación de luminancia y un tamaño del bloque de luminancia son ambos T1 x T1, y el tamaño del nodo de árbol de codificación de crominancia es T1 x (T1/2).
Condición 9: El nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando un modo de división binaria horizontal, donde un tamaño del nodo de árbol de codificación de luminancia es T1 x T1.
Condición 10: El nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando un modo de división binaria vertical, donde un tamaño del nodo de árbol de codificación de luminancia es T1 x T1.
Condición 11: El nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando un modo de división ternaria horizontal, donde un tamaño del nodo de árbol de codificación de luminancia es T1 x T1.
Condición 12: El nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando un modo de división ternaria vertical, donde un tamaño del nodo de árbol de codificación de luminancia es T1 x T1.
Condición 13: El modo de división utilizado para el nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es un modo de división diferente a no división y una división de árbol cuaternario, donde un tamaño del nodo de árbol de codificación de luminancia es T1 x T1.
Se debiera observar que, el hecho de que el modo de división utilizado para el nodo de árbol de codificación de luminancia es un modo de división diferente a la no división y una división de árbol cuaternario significa que el modo de división utilizado para el nodo de árbol de codificación de luminancia no es una división de árbol cuaternario o no división.
Aquí se debiera observar que en una estructura de árbol cuaternario-árbol-multi-tipo (quad-tree plus multi-type tree, QT-MTT), modos de división permitidos para un nodo incluyen un máximo de no división, un modo de división binaria horizontal, un modo de división binaria vertical, un modo de división ternaria horizontal, un modo de división ternaria vertical, y un modo de división de árbol cuaternario; por lo tanto, "el nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando uno de un modo de división binaria vertical, un modo de división ternaria vertical, o un modo de división de árbol cuaternario" en la condición 3 puede ser descrito de manera equivalente, en la estructura QT-MTT, como "el modo de división utilizado para el nodo de árbol de codificación de crominancia no es un modo de división binaria horizontal, un modo de división ternaria horizontal, o no división ".
En una realización viable, sobre una premisa de que el modo de división utilizado para el nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia está limitado a no división y una división de árbol cuaternario, la tercera condición preestablecida incluye al menos una de las condiciones 1 a 9.
Aquí se debiera observar que, el hecho de que el nodo de árbol de codificación de crominancia sea dividido en nodos hijo específicamente significa que el nodo de árbol de codificación de crominancia es dividido en nodos hijo utilizando uno del modo de división binaria horizontal, el modo de división binaria vertical, el modo de división ternaria horizontal, el modo de división ternaria vertical, y el modo de división de árbol cuaternario.
En una realización viable, la tercera condición preestablecida incluye:
El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, y un modo de predicción ISP es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, donde un tamaño del nodo de árbol de codificación de luminancia es T1 x T1.
En una realización viable, la tercera condición preestablecida incluye:
El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo, donde el tamaño del nodo de árbol de codificación de crominancia, un tamaño del nodo de árbol de codificación de luminancia, y un tamaño del bloque de luminancia son todos T1 x T1.
En una realización viable, la tercera condición preestablecida incluye:
El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo; o el modo de división del nodo de árbol de codificación de luminancia es uno de un modo de división binaria horizontal y un modo de división binaria vertical, donde el tamaño del nodo de árbol de codificación de crominancia, un tamaño del nodo de árbol de codificación de luminancia, y un tamaño del bloque de luminancia son todos T1 x T1.
En una realización viable, la tercera condición preestablecida incluye una o más de las condiciones 1 a 13.
En una realización viable, la tercera condición preestablecida incluye la condición 1 o la condición 13.
En una realización viable, la tercera condición preestablecida incluye la condición 2 o la condición 13.
En una realización viable, la tercera condición preestablecida incluye la condición 3, la condición 5, la condición 6, la condición 8, y la condición 13.
En una realización viable, la tercera condición preestablecida incluye la condición 4, la condición 5, la condición 7, la condición 8, y la condición 13.
En una realización viable, la tercera condición preestablecida incluye la condición 4, la condición 5, la condición 7, la condición 8, la condición 9, la condición 10, la condición 11, y la condición 12.
En una posible realización, T1 puede ser igual a 64. Es decir, si el tamaño del nodo de árbol de codificación de crominancia es T1 x T1, el tamaño del nodo de árbol de codificación de crominancia en realidad es 64 x 64. Si el tamaño del nodo de árbol de codificación de crominancia es T1 x (T1/2), el tamaño del nodo de árbol de codificación de crominancia en realidad es 64 x 32. Si el tamaño del nodo de árbol de codificación de luminancia es T1 x T1, el tamaño del nodo de árbol de codificación de luminancia en realidad es 64 x 64. Si el tamaño of el bloque de luminancia del nodo de árbol de codificación de luminancia es T1 x T1, el tamaño del nodo de árbol de codificación de crominancia en realidad es 64 x 64.
En una realización viable, después que se determina, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, se determina si la unidad de codificación de crominancia satisface la tercera condición preestablecida, con la finalidad de determinar adicionalmente si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia.
S603. Obtener un modo de predicción de la unidad de codificación de crominancia dependiendo de si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia.
El modo de predicción de la unidad de codificación de crominancia incluye al menos uno de un modo directo, un modo plano, un modo actual directo (modo DC), un modo angular, un modo CCLM, un modo de modulación de pulso-código (PCM), y un modo de copia de intra bloque (IBC).
Específicamente, un elemento de sintaxis CuPredModo de la unidad de codificación de crominancia es analizado en una tabla de sintaxis. Si un valor de CuPredModo de la unidad de codificación de crominancia es igual a MODO_INTRA, pcm_indicador se obtiene a través del análisis, donde pcm_indicador es utilizado para indicar si un modo PCM es utilizado para la unidad de codificación de crominancia. En caso que se determine, con base en pcm_indicador, que ningún modo PCM es utilizado para la unidad de codificación de crominancia, un elemento de sintaxis intra_crominancia_pred_modo es analizado adicionalmente.
Si CCLM en la unidad de codificación de crominancia es no está permitido, el modo de predicción de la unidad de codificación de crominancia puede ser determinado, con base en la Tabla 1, por el elemento de sintaxis intra_crominancia_pred_modo y un modo de intra predicción de luminancia IntraPredModoY correspondiente a la unidad de codificación de crominancia.
Tabla 1
Si un modo CCLM está permitido para la unidad de codificación de crominancia, el modo de predicción de la unidad de codificación de crominancia puede ser determinado, con base en la Tabla 2, a través del elemento de sintaxis intra_crominancia_pred_modo y el modo de intra predicción de luminancia IntraPredModoY correspondiente a la unidad de codificación de crominancia.
Tabla 2
xCb y xCr representan las coordenadas (las cuales son expresadas utilizando una cantidad de muestras de luminancia correspondientes) de la esquina superior-izquierda de la unidad de codificación de crominancia, cbAnchura y cbAltura representan respectivamente la anchura y la altura (las cuales son expresadas utilizando una cantidad de muestras de luminancia correspondientes) de la unidad de codificación de crominancia, intra_crominancia_pred_modo[xCb][yCb] representa un número de modo de intra predicción de la unidad de codificación de crominancia, IntraPredModoY[xCb cbAnchura/2][yCb cbAltura/2] representa un modo de intra predicción de luminancia de una posición de coordenada (xCb cbAnchura/2, yCb cbAltura/2), y el modo de intra predicción IntraPredModoC[xCb][yCb] de la unidad de codificación de crominancia se puede obtener observando la Tabla 1 o la Tabla 2.
S604. Ejecutar intra predicción en la unidad de codificación de crominancia con base en el modo de predicción de la unidad de codificación de crominancia para obtener muestras de predicción de la unidad de codificación de crominancia.
En una realización viable, un primer identificador qtbtt_dual_árbol_intra_indicador y un segundo identificador sps_cclm_habilitado_indicador son analizados de la corriente de bits. El primer identificador es utilizado para indicar si una estructura de árbol de separación es utilizada para una intra imagen, y el segundo identificador es utilizado para indicar si se permite que CCLM sea ejecutado en el bloque de crominancia en la secuencia de vídeo. Por ejemplo, si un valor del primer identificador es un primer valor (por ejemplo, 1 o verdadero), el primer identificador es utilizado para indicar que una estructura de árbol de separación es utilizada para una intra imagen en la secuencia de vídeo; o si un valor del primer identificador es un segundo valor (por ejemplo, 0 o falso), el primer identificador es utilizado para indicar que ninguna estructura de árbol de separación es utilizada para una intra imagen en la secuencia de vídeo. Si un valor del segundo identificador es un primer valor (por ejemplo, 1 o verdadero), el segundo identificador es utilizado para indicar que CCLM en el bloque de crominancia en la secuencia de vídeo está permitido; o si un valor del segundo identificador es un segundo valor (por ejemplo, 0 o falso), el segundo identificador es utilizado para indicar que CCLM en el bloque de crominancia en la secuencia de vídeo no está permitido.
Cuando el valor del primer identificador y el valor del segundo identificador son el primer valor, se ejecuta una operación de intra predicción en la unidad de codificación de crominancia utilizando el método de intra predicción de la presente invención.
Se puede aprender que en la solución de esta realización, se determina, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, reduciendo así una latencia de procesamiento para ejecutar CCLM en la unidad de codificación de crominancia, y mejorando un rendimiento de un decodificador de hardware.
La figura 7 es un gráfico de flujo esquemático de un método de decodificación de acuerdo con una realización útil para comprender la presente invención. Tal como se muestra en la figura 7, el método incluye los siguientes pasos.
5701. Analizar una corriente de bits para obtener un tamaño y un modo de división de un nodo de árbol de codificación de crominancia.
Específicamente, una unidad de decodificación de vídeo decodifica la corriente de bits para obtener un elemento de sintaxis correspondiente, y además determina el tamaño y el modo de división del nodo de árbol de codificación de crominancia con base en el elemento de sintaxis.
5702. Determinar, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que intra predicción de modelo lineal de componente cruzada (CCLM) sea ejecutada en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia.
5703. Determinar un modo de predicción de la unidad de codificación de crominancia dependiendo de si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia.
5704. Procesar la unidad de codificación de crominancia con base en el modo de predicción de la unidad de codificación de crominancia para obtener muestras de predicción de la unidad de codificación de crominancia.
Se debiera observar que para descripciones específicas de los pasos S701 a S704, hacer referencia a descripciones relacionadas de los pasos S601 a S604 en la realización mostrada en la figura 6. Los detalles no se describen aquí nuevamente.
5705. Obtener residuales reconstruidos de la unidad de codificación de crominancia, y obtener muestras reconstruidas de una unidad de codificación de crominancia con base en los residuales reconstruidos de la unidad de codificación de crominancia y las muestras de predicción de la unidad de codificación de crominancia.
Específicamente, la corriente de bits es analizada. Si información residual de la unidad de codificación de crominancia es obtenida a través de análisis, se ejecuta procesamiento de descuantificación y procesamiento de transformada inversa en la información residual de la unidad de codificación de crominancia, para obtener los residuales reconstruidos de la unidad de codificación de crominancia; o si la información residual de la unidad de codificación de crominancia no es obtenida a través de análisis, se determina que los residuales reconstruidos de la unidad de codificación de crominancia son 0. La información residual incluye un indicador de bloque codificado y un coeficiente de transformada, y además puede incluir un tipo de transformada horizontal y un tipo de transformada vertical (por ejemplo, DCT-2, DCT-7, o DCT-8). Los residuales reconstruidos de la unidad de codificación de crominancia y las muestras de predicción de la unidad de codificación de crominancia son sumados, y los resultados de la suma son recortados para quedar dentro de un rango de valor preestablecido (por ejemplo, 0 a 255, o 0 a 1023), para obtener las muestras reconstruidas de la unidad de codificación de crominancia.
Se puede aprender que en la solución de esta realización, se determina, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, reduciendo así una latencia de procesamiento para ejecutar CCLM en la unidad de codificación de crominancia, mejorando un rendimiento de un decodificador de hardware, y mejorando la eficiencia de la decodificación de vídeo.
La figura 8 es un diagrama estructural esquemático de un aparato de intra predicción de acuerdo con una realización de la presente invención. Tal como se muestra en la figura 8, el aparato de intra predicción 800 incluye:
una unidad de obtención 801, configurada para obtener un tamaño y un modo de división de un nodo de árbol de codificación de crominancia;
una unidad de determinación 802, configurada para: determinar, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia; y determinar un modo de predicción de la unidad de codificación de crominancia dependiendo de si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia; y
una unidad de predicción 803, configurada para procesar la unidad de codificación de crominancia con base en el modo de predicción de la unidad de codificación de crominancia para obtener muestras de predicción de la unidad de codificación de crominancia.
En una realización viable, el tamaño del nodo de árbol de codificación de crominancia es M x N, y en un aspecto de la determinación, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, la unidad de determinación 802 está específicamente configurada para:
cuando ambos M y N son iguales a un umbral preestablecido T1, si el modo de división del nodo de árbol de codificación de crominancia cumple con una primera condición preestablecida, determinar que se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o si el modo de división del nodo de árbol de codificación de crominancia no cumple con una primera condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia, donde la primera condición preestablecida incluye no división o un modo de división de árbol cuaternario.
En una realización viable, el tamaño del nodo de árbol de codificación de crominancia es M x N, y en un aspecto de la determinación, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que CCLM sea ejecutado en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, la unidad de determinación 802 está específicamente configurada para:
cuando M es igual a T1 y N es igual a T1/2, si el modo de división del nodo de árbol de codificación de crominancia cumple con una segunda condición preestablecida, determinar que se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o si el modo de división del nodo de árbol de codificación de crominancia no cumple con una segunda condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia, donde la segunda condición preestablecida incluye no división o un modo de división binaria vertical.
En una realización viable, en un aspecto de la determinación, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que intra predicción de modelo lineal de componente cruzada (CCLM) sea ejecutada en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, la unidad de determinación 802 está específicamente configurada para:
determinar, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, un modo de división de un nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia, y si se permite que un modo ISP sea utilizado para un bloque de luminancia correspondiente cuando un nodo de árbol de codificación de luminancia no es dividido, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia.
En una realización viable, el tamaño del nodo de árbol de codificación de crominancia es M x N, y en un aspecto de la determinación, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, un modo de división de un nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia, y si se permite que un modo ISP sea utilizado para un bloque de luminancia correspondiente cuando un nodo de árbol de codificación de luminancia no es dividido, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, la unidad de determinación 802 está específicamente configurada para:
cuando el modo de división del nodo de árbol de codificación de crominancia cumple con una tercera condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o
cuando el modo de división del nodo de árbol de codificación de crominancia no cumple con una tercera condición preestablecida, M es igual a T1, y N es igual a T1, si el modo de división del nodo de árbol de codificación de crominancia cumple con una primera condición preestablecida, determinar que se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o si el modo de división del nodo de árbol de codificación de crominancia no cumple con una primera condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia, donde la primera condición preestablecida incluye no división o un modo de división de árbol cuaternario.
En una realización viable, el tamaño del nodo de árbol de codificación de crominancia es M x N, y en un aspecto de la determinación, con base en el tamaño y el modo de división del nodo de árbol de codificación de crominancia, un modo de división de un nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia, y si se permite que un modo ISP sea utilizado para un bloque de luminancia correspondiente cuando un nodo de árbol de codificación de luminancia no es dividido, si se permite que CCLM sea ejecutado en la unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia, la unidad de determinación 802 esta específicamente configurada para:
cuando el modo de división del nodo de árbol de codificación de crominancia cumple cualquier condición en una tercera condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o cuando el modo de división del nodo de árbol de codificación de crominancia no cumple con una tercera condición preestablecida, N = T1, y M = T1/2, si el modo de división del nodo de árbol de codificación de crominancia cumple con una segunda condición preestablecida, determinar que se permita que CCLM sea ejecutado en la unidad de codificación de crominancia; o si el modo de división del nodo de árbol de codificación de crominancia no cumple con una segunda condición preestablecida, determinar que no se permita que CCLM sea ejecutado en la unidad de codificación de crominancia, donde la segunda condición preestablecida incluye no división o un modo de división binaria vertical.
En una realización viable, la tercera condición preestablecida incluye una o más de la condición 1, la condición 2, la condición 3, la condición 4, la condición 5, la condición 6, la condición 7, la condición 8, la condición 9, la condición 10, la condición 11, la condición 12, y la condición 13 en el ejemplo mostrado en la figura 6.
En una realización viable, la tercera condición preestablecida incluye:
El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, y un modo de predicción ISP es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, donde un tamaño del nodo de árbol de codificación de luminancia y un tamaño del bloque de luminancia son ambos T1 x T1.
En una realización viable, la tercera condición preestablecida incluye:
El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo, donde el tamaño del nodo de árbol de codificación de crominancia, un tamaño del nodo de árbol de codificación de luminancia, y un tamaño del bloque de luminancia son todos T1 x T1.
En una realización viable, la tercera condición preestablecida incluye la condición 1 y la condición 13 en el ejemplo mostrado en la figura 6.
En una realización viable, la tercera condición preestablecida incluye la condición 2 y la condición 13 en el ejemplo mostrado en la figura 6.
En una realización viable, la tercera condición preestablecida incluye:
El modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es uno de no división, un modo de división de árbol cuaternario, un modo de división binaria horizontal, y un modo de división binaria vertical, donde el tamaño del nodo de árbol de codificación de luminancia es T1 x T1; o
el modo de división del nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es no división, un modo ISP es utilizado para un bloque de luminancia del nodo de árbol de codificación de luminancia, y el nodo de árbol de codificación de crominancia es dividido en nodos hijo; o el modo de división del nodo de árbol de codificación de luminancia es uno de un modo de división binaria horizontal y un modo de división binaria vertical, donde el tamaño del nodo de árbol de codificación de crominancia, un tamaño del nodo de árbol de codificación de luminancia, y un tamaño del bloque de luminancia son todos T1 x T1.
En una realización viable, la tercera condición preestablecida incluye la condición 3, la condición 5, la condición 6, la condición 8, y la condición 13 en el ejemplo mostrado en la figura 6.
En una realización viable, la tercera condición preestablecida incluye la condición 4, la condición 5, la condición 7, la condición 8, y la condición 13 en el ejemplo mostrado en la figura 6.
En una realización viable, la tercera condición preestablecida incluye la condición 3, la condición 5, la condición 7, la condición 8, la condición 9, la condición 10, la condición 11, y la condición 12 en el ejemplo mostrado en la figura 6.
En una realización viable, el umbral preestablecido T1 es igual a 64.
Se debiera observar que las unidades anteriores (la unidad de obtención 801, la unidad de determinación 802, y la unidad de predicción 803) están configuradas para ejecutar pasos relacionados de los métodos anteriores. Específicamente, la unidad de obtención 801 está configurada para ejecutar contenido relacionado en los pasos S601 y S701, la unidad de determinación 802 está configurada para ejecutar contenido relacionado en los pasos S602, S603, S702, y S703, y la unidad de predicción 803 está configurada para ejecutar contenido relacionado en los pasos S604 y S704. En otras palabras, la unidad de obtención 801 está configurada para implementar funciones relacionadas del decodificador de entropía 303 y el intra predictor 309 en la figura 5b, y la unidad de determinación 802 y la unidad de predicción 803 están configuradas para implementar funciones relacionadas del intra predictor 309 en la figura 5b.
En esta realización, el aparato de intra predicción 800 es presentado en una forma de una unidad. La "unidad" aquí puede ser un circuito integrado de aplicación específica (ASIC), un procesador y una memoria que ejecutan uno o más programas de software o firmware, un circuito lógico integrado, y/u otro dispositivo que puede proporcionar las funciones anteriores.
La figura 9 es un diagrama estructural esquemático de un aparato de intra predicción para una secuencia de vídeo de acuerdo con una realización útil para comprender la presente invención. Tal como se muestra en la figura 9, el aparato de intra predicción 900 incluye:
una unidad de decodificación 901, configurada para analizar una corriente de bits para obtener un primer identificador y un segundo identificador, donde el primer identificador es utilizado para indicar si una estructura de árbol de separación es utilizada para una intra imagen en la secuencia de vídeo, y el segundo identificador es utilizado para indicar si se permite que CCLM sea ejecutado en un bloque de crominancia en la secuencia de vídeo; y
una unidad de predicción 902, configurada para: si el primer identificador indica que la estructura de árbol de separación es utilizada para la intra imagen en la secuencia de vídeo, y el segundo identificador indica que se permite que CCLM sea ejecutado en el bloque de crominancia en la secuencia de vídeo, ejecutar una parte o todos los paso en el método de intra predicción para la secuencia de vídeo en la figura 6. IBC
Se debiera observar que las unidades anteriores (la unidad de decodificación 901 y la unidad de predicción 903) están configuradas para ejecutar pasos relacionados del método anterior. En otras palabras, la unidad de decodificación 901 está configurada para implementar funciones relacionadas del decodificador de entropía 303 en la figura 5b, y la unidad de predicción 902 está configurada para implementar funciones relacionadas del intra predictor 309 en la figura 5b.
Las realizaciones útiles para comprender la presente invención además proporcionan un medio de almacenamiento en ordenador. El medio de almacenamiento en ordenador puede almacenar un programa; cuando el programa es ejecutado, al menos una parte o todos los pasos de cualquiera de los métodos de intra predicción descritos en las realizaciones del método anterior quedan incluidos.
Un experto en la técnica puede entender que, las funciones descritas con referencia a varios bloques lógicos, módulos y pasos de algoritmo ilustrativos divulgados y descritos en esta especificación pueden ser implementadas por hardware, software, firmware, o cualquier combinación de los mismos. Si se implementa a través de software, las funciones descritas con referencia a los bloques lógicos, módulos y pasos ilustrativos pueden ser almacenadas en o transmitidas sobre un medio legible por ordenador como una o más instrucciones o código y ejecutadas por una unidad de procesamiento basada en hardware. El medio legible por ordenador puede incluir un medio de almacenamiento legible por ordenador, el cual corresponde a un medio tangible tal como un medio de almacenamiento de datos, o puede incluir cualquier medio de comunicaciones que facilite la transmisión de un programa informático de un lugar a otro (por ejemplo, de acuerdo con un protocolo de comunicaciones). De esta manera, el medio legible por ordenador generalmente puede corresponder a: (1) un medio de almacenamiento legible por ordenador tangible no-transitorio, o (2) un medio de comunicaciones tal como una señal o una portadora. El medio de almacenamiento de datos puede ser cualquier medio disponible al que se pueda tener acceso a través de una o más ordenadores o uno o más procesadores para recuperar instrucciones, código, y/o estructuras de datos para implementar las tecnologías descritas en esta solicitud. Un producto de programa informático puede incluir un medio legible por ordenador.
A manera de ejemplo pero no limitación, dicho medio de almacenamiento legible por ordenador puede incluir una RAM, una ROM, una EEPROM, un CD-ROM u otro aparato de almacenamiento de disco compacto, un aparato de almacenamiento de disco magnético u otro aparato de almacenamiento magnético, una memoria flash, o cualquier otro medio que pueda ser utilizado para almacenar un código de programa deseado en una forma de una instrucción o una estructura de datos y al que se pueda tener acceso a través de un ordenador. Además, cualquier conexión es referida apropiadamente como un medio legible por ordenador. Por ejemplo, si una instrucción es transmitida desde un sitio Web, un servidor, u otra fuente remota a través de un cable coaxial, una fibra óptica, un par torcido, una línea de suscriptor digital (DSL), o una tecnología inalámbrica tal como infrarrojo, radio o microondas, el cable coaxial, la fibra óptica, el par torcido, el DSL, o la tecnología inalámbrica tal como infrarrojo, radio, o microondas está incluida en una definición del medio. Sin embargo, se debiera entender que el medio de almacenamiento legible por ordenador y el medio de almacenamiento de datos no incluyen conexiones, portadoras, señales u otros medios transitorios, sino que realmente significa medio de almacenamiento tangible no-transitorio. Discos magnéticos (disks) o discos ópticos (discs) utilizados en esta especificación incluyen un disco compacto (CD), un disco láser, un disco óptico, un disco versátil digital (DVD), y un disco Blu-ray. Los discos magnéticos (disks) generalmente reproducen datos en forma magnética, mientras que los discos ópticos (disc) reproducen datos de manera óptica utilizando láser. Combinaciones de los elementos anteriores también debieran ser incluidas en el alcance del medio legible por ordenador.
Una instrucción puede ser ejecutada por uno o más procesadores tales como uno o más procesadores de señal digital (DSP), procesadores de propósito general, circuitos integrados de aplicación específica (ASIC), arreglos de compuerta programable en campo (FPGA), u otros circuitos integrados equivalentes o circuitos lógicos discretos. Por lo tanto, el término "procesador" utilizado en esta especificación puede ser cualquiera de las estructuras anteriores o cualquier otra estructura adecuada para implementar las tecnologías descritas en esta especificación. Además, en algunos aspectos, las funciones descritas en los bloques lógicos, módulos y pasos ilustrativos, descritos en esta especificación pueden ser proporcionados dentro de módulos de hardware y/o software dedicados configurados para codificación y decodificación, o pueden ser incorporados en un códec combinado. Además, todas las tecnologías pueden ser implementadas en uno o más circuitos o elementos lógicos.
Las tecnologías de esta solicitud pueden ser implementadas en diversos aparatos o dispositivos, incluyendo un equipo inalámbrico, un circuito integrado (IC), o un conjunto de ICs (por ejemplo, un conjunto de chips). Varios componentes, módulos o unidades se describen en esta solicitud para enfatizar aspectos funcionales de los aparatos configurados para implementar las tecnologías divulgadas, pero no necesariamente implementadas por diferentes unidades de hardware. En realidad, tal como se describió antes, varias unidades pueden ser combinadas en una unidad de hardware de códec en combinación con software y/o firmware apropiado, o se pueden proporcionar a través de unidades de hardware interoperativas (incluyendo uno o más procesadores antes descritos).
Las descripciones anteriores son simplemente ejemplos de implementaciones específicas de esta solicitud, pero no están destinadas a limitar el alcance de protección de esta solicitud. Por lo tanto, el alcance de protección de esta solicitud deberá estar sujeto al alcance de protección de las reivindicaciones.

Claims (2)

REIVINDICACIONES
1. Un método de intra predicción para una secuencia de vídeo, en donde se utiliza una estructura de árbol de separación para una intra imagen en la secuencia de vídeo, que comprende:
obtener (S601; S701) un tamaño y un modo de división de un nodo de árbol de codificación de crominancia; determinar (S602; S701), en función del tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que una intra predicción de modelo lineal de componente cruzada, CCLM, sea ejecutada en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia;
determinar (S603; S701) un modo de predicción de la unidad de codificación de crominancia dependiendo de si se permite que una intra predicción de CCLM sea ejecutada en la unidad de codificación de crominancia; y procesar (S604; S701) la unidad de codificación de crominancia en función del modo de predicción de la unidad de codificación de crominancia para obtener muestras de predicción de la unidad de codificación de crominancia, en donde el tamaño de un nodo de árbol de codificación de luminancia correspondiente al nodo de árbol de codificación de crominancia es T1 x T1, en donde T1 es un umbral preestablecido que es igual a 64, el nodo de árbol de codificación de luminancia se divide utilizando un modo de división de árbol cuaternario y el tamaño del nodo de árbol de codificación de crominancia es M x N, en donde determina, en función del tamaño y el modo de división del nodo de árbol de codificación de crominancia, si se permite que una intra predicción de CCLM sea ejecutada en una unidad de codificación de crominancia incluida en el nodo de árbol de codificación de crominancia incluye, además: cuando tanto M como N son iguales a T1, si el modo de división del nodo de árbol de codificación de crominancia es un modo de no división o el modo de división de árbol cuaternario, determinar que se permita que una intra predicción de CCLM sea ejecutada en la unidad de codificación de crominancia, o si el modo de división del nodo de árbol de codificación de crominancia no es ni un modo de división ni uno de división de árbol cuaternario, determinar que no se permita que una intra predicción de CCLM sea ejecutada en la unidad de codificación de crominancia; o cuando M es igual a T1 y N es igual a T1/2, si el modo de división del nodo de árbol de codificación de crominancia es un modo de no división o el modo de división de árbol binario vertical, determinar que se permita que una intra predicción de CCLM sea ejecutada en la unidad de codificación de crominancia, o si el modo de división del nodo de árbol de codificación de crominancia no es ni un modo de división ni uno de división de árbol binario vertical, determinar que no se permita que una intra predicción de CCLM sea ejecutada en la unidad de codificación de crominancia.
2. Un aparato de intra predicción para una secuencia de vídeo, que comprende:
instrucciones de almacenamiento en un medio de almacenamiento legible por ordenador; y
uno o más procesadores en comunicación con el medio y que tras la ejecución de las instrucciones están configurados para realizar el método de acuerdo con la reivindicación 1.
ES20799360T 2019-04-30 2020-03-27 Intra-frame prediction method and apparatus for video sequence Active ES2993151T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910370987.9A CN111866510A (zh) 2019-04-30 2019-04-30 视频序列的帧内预测方法及装置
PCT/CN2020/081672 WO2020220884A1 (zh) 2019-04-30 2020-03-27 视频序列的帧内预测方法及装置

Publications (1)

Publication Number Publication Date
ES2993151T3 true ES2993151T3 (en) 2024-12-23

Family

ID=72965849

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20799360T Active ES2993151T3 (en) 2019-04-30 2020-03-27 Intra-frame prediction method and apparatus for video sequence

Country Status (13)

Country Link
US (3) US12022081B2 (es)
EP (2) EP4482147A3 (es)
JP (3) JP7348307B2 (es)
KR (2) KR102836192B1 (es)
CN (5) CN111866510A (es)
AU (2) AU2020264569B2 (es)
BR (1) BR112021021679A2 (es)
ES (1) ES2993151T3 (es)
HU (1) HUE068014T2 (es)
MX (2) MX2021013320A (es)
PL (1) PL3955575T3 (es)
PT (1) PT3955575T (es)
WO (1) WO2020220884A1 (es)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202109150QA (en) 2019-03-08 2021-09-29 Beijing Bytedance Network Technology Co Ltd Constraints on model-based reshaping in video processing
CA3135521A1 (en) 2019-04-18 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation in cross component mode
JP7317991B2 (ja) 2019-04-23 2023-07-31 北京字節跳動網絡技術有限公司 クロスコンポーネント依存性を低減するための方法
EP3949395A4 (en) 2019-05-08 2022-06-29 Beijing Bytedance Network Technology Co., Ltd. Conditions for applicability of cross-component coding
JP7545997B2 (ja) * 2019-05-17 2024-09-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
KR102777916B1 (ko) 2019-06-22 2025-03-11 두인 비전 컴퍼니 리미티드 크로마 잔차 스케일링을 위한 신택스 요소
JP6899053B2 (ja) * 2019-06-24 2021-07-07 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
CN114128280B (zh) 2019-07-07 2023-11-14 北京字节跳动网络技术有限公司 色度残差缩放的信令通知
CN114615494B (zh) * 2020-12-04 2024-09-27 咪咕文化科技有限公司 一种图像处理方法、装置及设备
KR20250144723A (ko) * 2024-03-27 2025-10-13 광운대학교 산학협력단 효과적인 성분 간 상관관계 기반 색차 신호 부호화 및 복호화 방법 및 장치
KR20250144722A (ko) * 2024-03-27 2025-10-13 광운대학교 산학협력단 적응적 필터링을 이용한 성분 간 상관관계 기반 다중 모델에 기초한 색차 신호의 예측 방법 및 장치
CN119420938A (zh) * 2024-10-31 2025-02-11 湖南国科微电子股份有限公司 一种图像编码方法、装置、终端设备及解码方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103688533B (zh) 2011-06-20 2015-12-23 联发科技(新加坡)私人有限公司 可减少行存储器的色度帧内预测方法及装置
CN103220508B (zh) 2012-01-20 2014-06-11 华为技术有限公司 编解码方法和装置
WO2016074147A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd. Separated coding tree for luma and chroma
JP6895645B2 (ja) * 2016-03-25 2021-06-30 パナソニックIpマネジメント株式会社 信号依存型適応量子化を用いて動画像を符号化及び復号するための方法及び装置
MX384086B (es) * 2016-05-25 2025-03-14 Arris Entpr Llc Particionamiento binario, ternario, cuaternario para jvet.
US10419757B2 (en) * 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
US10652575B2 (en) 2016-09-15 2020-05-12 Qualcomm Incorporated Linear model chroma intra prediction for video coding
JP2018056685A (ja) 2016-09-27 2018-04-05 株式会社ドワンゴ 画像符号化装置、画像符号化方法、及び画像符号化プログラム、並びに、画像復号装置、画像復号方法、及び画像復号プログラム
JP2020031252A (ja) * 2016-12-22 2020-02-27 シャープ株式会社 画像復号装置及び画像符号化装置
CN109510987B (zh) * 2017-09-15 2022-12-06 华为技术有限公司 编码树节点划分方式的确定方法、装置及编码设备
JP2021010046A (ja) * 2017-10-06 2021-01-28 シャープ株式会社 画像符号化装置及び画像復号装置
US10819977B2 (en) * 2018-07-05 2020-10-27 Tencent America LLC Methods and apparatus for multiple line intra prediction in video compression
KR102906036B1 (ko) * 2018-12-28 2025-12-31 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020189960A1 (ko) * 2019-03-15 2020-09-24 엘지전자 주식회사 크로마 포맷에 대한 정보를 시그널링 하는 방법 및 장치
CA3135521A1 (en) * 2019-04-18 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation in cross component mode
US11611752B2 (en) * 2020-10-07 2023-03-21 Lemon Inc. Adaptation parameter set storage in video coding

Also Published As

Publication number Publication date
CN112042195A (zh) 2020-12-04
KR102836192B1 (ko) 2025-07-17
US20220053194A1 (en) 2022-02-17
US12256081B2 (en) 2025-03-18
JP7348307B2 (ja) 2023-09-20
CN111866510A (zh) 2020-10-30
PT3955575T (pt) 2024-07-30
AU2024201621B2 (en) 2025-07-31
US20250211752A1 (en) 2025-06-26
EP3955575A1 (en) 2022-02-16
AU2020264569A1 (en) 2021-12-02
EP3955575A4 (en) 2022-06-22
KR20220003022A (ko) 2022-01-07
WO2020220884A1 (zh) 2020-11-05
JP7757482B2 (ja) 2025-10-21
US20240305784A1 (en) 2024-09-12
CN114205592B (zh) 2023-10-20
EP3955575B1 (en) 2024-07-03
JP2023169238A (ja) 2023-11-29
JP7543508B2 (ja) 2024-09-02
JP2024178164A (ja) 2024-12-24
EP4482147A3 (en) 2025-03-26
PL3955575T3 (pl) 2024-10-28
CN114245132A (zh) 2022-03-25
JP2022531280A (ja) 2022-07-06
BR112021021679A2 (pt) 2021-12-21
MX2021013320A (es) 2022-01-24
AU2024201621A1 (en) 2024-03-28
CN114205591B (zh) 2024-04-09
EP4482147A2 (en) 2024-12-25
KR20250111247A (ko) 2025-07-22
US12022081B2 (en) 2024-06-25
AU2020264569B2 (en) 2023-12-14
CA3135596A1 (en) 2020-11-05
HUE068014T2 (hu) 2024-12-28
CN112042195B (zh) 2021-12-10
CN114205591A (zh) 2022-03-18
CN114205592A (zh) 2022-03-18
MX2024013304A (es) 2024-12-06

Similar Documents

Publication Publication Date Title
ES2993151T3 (en) Intra-frame prediction method and apparatus for video sequence
ES2989421T3 (es) Un codificador, un decodificador y métodos correspondientes para la intrapredicción
ES2992657T3 (en) Method and apparatus for affine based inter prediction of chroma subblocks
CN116208767B (zh) 一种对码流进行解码的方法、装置以及存储码流的设备
ES2984321T3 (es) Método y aparato de restricciones a nivel de bloque dependientes de modo y tamaño
KR102616713B1 (ko) 이미지 예측 방법, 장치 및 시스템, 디바이스 및 저장 매체
BR112021010896A2 (pt) Método e aparelho de codificação e decodificação de imagem de vídeo
ES2946058T3 (es) Un codificador, un decodificador y los métodos correspondientes que usan la codificación intramodo para la intrapredicción
CA3135596C (en) Intra prediction method and apparatus for video sequence
RU2801327C2 (ru) Способ и устройство внутреннего прогнозирования для видеопоследовательности
JP2026027234A (ja) ビデオ・シーケンスのイントラ予測方法及び装置
BR112021004124B1 (pt) Método de decodificação de vídeo, decodificador de vídeo e meio de armazenamento legível por computador
BR112021004124A2 (pt) método de decodificação de vídeo e decodificador de vídeo