ES2966083T3 - Método y aparato para predicción - Google Patents

Método y aparato para predicción Download PDF

Info

Publication number
ES2966083T3
ES2966083T3 ES19859474T ES19859474T ES2966083T3 ES 2966083 T3 ES2966083 T3 ES 2966083T3 ES 19859474 T ES19859474 T ES 19859474T ES 19859474 T ES19859474 T ES 19859474T ES 2966083 T3 ES2966083 T3 ES 2966083T3
Authority
ES
Spain
Prior art keywords
intra
prediction
mode
refidx
block
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
ES19859474T
Other languages
English (en)
Inventor
Vasily Alexeevich Rufitskiy
Jianle Chen
Alexey Konstantinovich Filippov
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 ES2966083T3 publication Critical patent/ES2966083T3/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
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Abstract

La presente divulgación proporciona métodos y dispositivos para la intrapredicción de un bloque actual en la codificación o decodificación de vídeo. El método comprende: realizar procesamiento de intrapredicción del bloque actual de acuerdo con un modo de intrapredicción direccional, que comprende filtrado de muestras de referencia o filtrado de interpolación de subpíxeles aplicado a muestras de referencia en uno o más bloques de referencia, en donde el modo de intrapredicción direccional se clasifica en uno de los siguientes grupos: (A) modos verticales u horizontales, (B) modos direccionales que incluyen modos diagonales que representan ángulos que son múltiplos de 45 grados, (C) modos direccionales restantes; si el modo de intrapredicción direccional se clasifica como perteneciente al grupo B, se aplica un filtro de muestra de referencia a las muestras de referencia; si el modo de intrapredicción direccional se clasifica como perteneciente al grupo C, se aplica un filtro de interpolación de muestra de intrareferencia a las muestras de referencia. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método y aparato para predicción
Campo de la invención
La presente descripción se refiere al campo técnico de la codificación y decodificación de imagen y/o video, y en particular a un método y un aparato para intra/inter-predicción.
Antecedentes de la invención
La codificación de video (codificación y decodificación de video) se utiliza en un amplio intervalo de aplicaciones de video digital, por ejemplo, televisión digital de difusión, transmisión de video a través de Internet y redes móviles, aplicaciones conversacionales en tiempo real tal como chat de video, conferencia de video, discos DVD y Blu-ray, sistemas de adquisición y edición de contenido de video, y videocámaras de aplicaciones de seguridad.
La cantidad de datos de video necesarios para representar incluso un video relativamente corto puede ser sustancial, lo que puede tener como resultado dificultades cuando los datos se van a transmitir en tiempo real o comunicar de otra manera a través de una red de comunicaciones con capacidad de ancho de banda limitada. Por consiguiente, los datos de video se comprimen, generalmente, antes de comunicarse a través de redes de telecomunicaciones actuales. El tamaño de un video también podría ser un problema cuando el video se almacena en un dispositivo de almacenamiento debido a que los recursos de memoria pueden ser limitados. Los dispositivos de compresión de video a menudo utilizan software y/o hardware en la fuente para codificar los datos de video antes de la transmisión o almacenamiento, disminuyendo de esta manera la cantidad de datos necesarios para representar imágenes de video digital. Los datos comprimidos se reciben a continuación en el destino por un dispositivo de descompresión de video que decodifica los datos de video. Con recursos de red limitados y demandas cada vez mayores de más alta calidad de video, son deseables técnicas mejoradas de compresión y descompresión que mejoren la relación de compresión con poco a ningún sacrificio en la calidad de imagen.
El video digital se ha utilizado ampliamente desde la introducción de los discos DVD. Antes de la transmisión el video se codifica, y se transmite utilizando un medio de transmisión. El espectador recibe el video y utiliza un dispositivo de visualización para decodificar y mostrar el video. Durante los años, la calidad del video ha mejorado, por ejemplo, debido a resoluciones mayores, profundidades de color y velocidades de cuadros. Esto ha conducido a flujos de datos mayores que hoy en día se transportan comúnmente a través de Internet y redes de comunicación móvil.
Los videos de resolución mayor, sin embargo, habitualmente requieren más ancho de banda puesto que tienen más información. A fin de reducir los requisitos de ancho de banda, se han introducido estándares de codificación de video que implican la compresión del video. Cuando se codifica el video, se reducen los requisitos de ancho de banda (o los requisitos de memoria correspondientes en caso de almacenamiento). A menudo, esta reducción es a expensas de la calidad. Por consiguiente, los estándares de codificación de video intentan encontrar un equilibrio entre requisitos de ancho de banda y calidad.
La Codificación de Video de Alta Eficiencia (HEVC) es un ejemplo de un estándar de codificación de video que se conoce comúnmente por personas expertas en la técnica. En la HEVC, se divide una unidad de codificación (CU) en unidades de predicción (PU) o unidades de transformada (TU). El estándar de próxima generación de codificación de video versátil (VVC) es el proyecto de video conjunto más reciente de las organizaciones de estandarización del Grupo de Expertos en Codificación de Video (VCEG) de UIT-T y el Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC, que trabajan conjuntamente en una asociación conocida como el Equipo de Exploración Conjunta de Video (JVET). La VVC también se conoce como el estándar de UIT-T H.266/Codificación de Video de Próxima Generación (NGVC). En la VVC, se eliminarán los conceptos de múltiples tipos de división, es decir, la separación de los conceptos de CU, PU, y TU, excepto cuando sea necesario para las CU que tienen un tamaño demasiado grande para la longitud de transformada máxima, y soporta más flexibilidad para las formas de división de CU.
El procesamiento de estas unidades de codificación (CU) (también conocidas como bloques) depende de su tamaño, posición espacial y un modo de codificación especificado por un codificador. Los modos de codificación se pueden clasificar en dos grupos de acuerdo con el tipo de predicción: modos de intra-predicción y de inter-predicción. Los modos de intra-predicción utilizan muestras de la misma imagen (también conocidas como cuadro) para generar muestras de referencia para calcular los valores de predicción para las muestras del bloque que se está reconstruyendo. La intra-predicción también se conoce como predicción espacial. Los modos de inter-predicción se diseñan para predicción temporal y utilizan muestras de referencia de imágenes anteriores o siguientes para predecir muestras del bloque de la imagen actual.
VCEG de UIT-T (Q6/16) e MPEG de ISO/IEC (JTC 1/SC 29/WG 11) están estudiando la necesidad potencial de estandarización de la futura tecnología de codificación de video con una capacidad de compresión que excede significativamente la del estándar HEVC actual (incluyendo sus extensiones actuales y extensiones a corto plazo para codificación de contenido de pantalla y codificación de alto intervalo dinámico). Los grupos están trabajando conjuntamente en esta actividad de exploración en un esfuerzo de colaboración conjunta conocido como el Equipo de Exploración Conjunta de Video (JVET) para evaluar los diseños de tecnología de compresión propuestos por sus expertos en esta área.
El estándar VTM (Modelo de Prueba Versátil) utiliza 35 modos intra, mientras que el BMS (Conjunto de Referencias) utiliza 67 modos intra.
El esquema de codificación de modos intra actualmente descrito en BMS se considera complejo y una desventaja del conjunto de modos no seleccionados es que la lista de índices siempre es constante y no adaptativa en base a las propiedades de bloque actuales (por ejemplo, sus modos INTRA de bloques vecinos). La patente US20180262756A1 da a conocer un dispositivo de codificación de video que comprende una secuencia de filtros que son configurables mediante uno o más parámetros principales y uno o más parámetros secundarios, y un controlador de los filtros configurado para ajustar los uno o más parámetros secundarios en base a los uno o más parámetros principales y en base a un criterio de intensidad de la secuencia de filtros. La patente US20170034536A1 da a conocer un procedimiento para reconstruir bloques de una imagen utilizando predicción, que comprende: determinar muestras de referencia de uno o más bloques ya decodificados, para predecir un bloque a reconstruir; seleccionar un primer subconjunto de las muestras de referencia y un segundo subconjunto de las muestras de referencia; realizar un filtrado de pre-predicción del primer subconjunto y el segundo subconjunto de las muestras de referencia, donde los parámetros de filtro para filtrar las muestras de referencia del primer subconjunto difieren de los parámetros de filtro para filtrar las muestras de referencia del segundo subconjunto; y reconstruir el bloque a reconstruir mediante predicción en base a las muestras de referencia incluyendo las muestras de referencia filtradas por pre-predicción del primer subconjunto y el segundo subconjunto.
Compendio
Las realizaciones de la presente solicitud proporcionan aparatos y métodos para codificación y decodificación de acuerdo con las reivindicaciones independientes. La palabra “invención”, tal como se utiliza en la presente descripción, se refiere al concepto inventivo tal como lo entendió el solicitante en el momento de presentar la presente solicitud. La materia cuya protección se persigue está definida por las reivindicaciones adjuntas. Todas las apariciones de las palabras “realización” y “realizaciones”, si se refieren a combinaciones de características diferentes de las definidas por las reivindicaciones independientes, se refieren a ejemplos que fueron presentados originalmente pero que no representan realizaciones de la invención actualmente reivindicada; estos ejemplos se sigue manteniendo solamente con fines ilustrativos.
Lo anterior y otros objetos se consiguen mediante la presente materia de las reivindicaciones independientes. Otras formas de implementación son evidentes a partir de las reivindicaciones dependientes, la descripción y las figuras.
Breve descripción de las figuras
Las siguientes realizaciones se describen en más detalle haciendo referencia a las figuras adjuntas e ilustraciones, en las que:
La figura 1 es un diagrama de bloques que muestra un ejemplo de un sistema de codificación de video configurado para implementar realizaciones de la invención.
La figura 2 es un diagrama de bloques que muestra un ejemplo de un codificador de video configurado para implementar realizaciones de la invención.
La figura 3 es un diagrama de bloques que muestra una estructura de ejemplo de un decodificador de video configurado para implementar realizaciones de la invención.
La figura 4 muestra un diagrama esquemático que ilustra 67 modos de intra-predicción.
La figura 5 ilustra un primer ejemplo de uso de diferentes filtros de interpolación en intra e inter-predicción. La figura 6 ilustra un segundo ejemplo de uso de diferentes filtros de interpolación en intra e inter-predicción. La figura 7 ilustra un tercer ejemplo de uso de diferentes filtros de interpolación en intra e inter-predicción.
La figura 8 ilustra el uso de un filtro de interpolación común que se va a utilizar para muestras intra e interpredichas.
La figura 9 ilustra una realización que utiliza un módulo de filtrado que se acopla en la predicción de muestras de crominancia en compensación de movimiento y que predice muestras de luminancia y crominancia cuando realiza intra-predicción.
La figura 10 ilustra una realización, en la que los módulos de filtrado de hardware cargan coeficientes almacenados en una ROM.
La figura 11 ilustra un diagrama esquemático de una pluralidad de modos de intra-predicción.
La figura 12 ilustra un ejemplo de selección de filtro de interpolación para modos menores y mayores que diagonales en el caso de un bloque no cuadrado.
La figura 13 ilustra la división de bloques de Árbol Cuaternario más Árbol Binario (QTBT).
La figura 14 muestra una orientación horizontal y una orientación vertical de un bloque.
La figura 15 ilustra esquemáticamente la selección de un filtro de interpolación para un bloque no cuadrado. La figura 16 ilustra una realización para la selección de filtro de interpolación de muestras de referencia para un bloque no cuadrado.
La figura 17 ilustra una realización alternativa para la selección de filtro de interpolación de muestras de referencia para un bloque no cuadrado.
La figura 18 muestra un diagrama esquemático que ilustra 93 direcciones de intra-predicción.
La figura 19 muestra un diagrama de bloques de un aparato de acuerdo con una realización.
La figura 20 muestra un diagrama de bloques de un aparato de acuerdo con otra realización
La figura 21 muestra un bloque a predecir utilizando un modo de intra-predicción.
Descripción detallada de realizaciones
En la siguiente descripción, se hace referencia a los dibujos adjuntos, que forman parte de la descripción, y en los que se muestran, a manera de ilustración, aspectos específicos en los que se puede situar la invención. Se entiende que las realizaciones de la invención se pueden utilizar en otros aspectos y comprenden cambios estructurales o lógicos no representados en las figuras. La siguiente descripción detallada, por consiguiente, no se va a tomar en un sentido limitante, y el alcance de la presente invención se define por las reivindicaciones adjuntas.
Por ejemplo, se entiende que una descripción en relación con un método descrito también puede ser válida para un dispositivo o sistema correspondiente configurado para realizar el método y viceversa. Por ejemplo, si se describe una o una pluralidad de etapas de método específicas, un dispositivo correspondiente puede incluir una o una pluralidad de unidades, por ejemplo, unidades funcionales, para realizar las una o una pluralidad de etapas de método descritas (por ejemplo, una unidad que realiza la una o la pluralidad de etapas, o una pluralidad de unidades que realiza, cada una, una o más de la pluralidad de etapas), incluso si dichas una o más unidades no se describen o ilustran explícitamente en las figuras. Por otra parte, por ejemplo, si un aparato específico se describe en base a una o una pluralidad de unidades, por ejemplo, unidades funcionales, un método correspondiente puede incluir una etapa para realizar la funcionalidad de la una o la pluralidad de unidades (por ejemplo, una etapa que realiza la funcionalidad de la una o la pluralidad de unidades, o una pluralidad de etapas que realizan, cada una, la funcionalidad de una o más de la pluralidad de unidades), incluso si dichas una o una pluralidad de estas etapas no se describen o ilustran explícitamente en las figuras. Además, se entiende que las características de las diversas realizaciones y/o aspectos de ejemplo descritos en la presente memoria se pueden combinar entre sí, salvo que se indique específicamente lo contrario. La codificación de video habitualmente se refiere al procesamiento de una secuencia de imágenes, que forman el video o la secuencia de video. Los términos imagen o cuadro se pueden utilizar/se utilizan de manera sinónima en el campo de codificación de video, así como en esta solicitud. Cada imagen se divide habitualmente en un conjunto de bloques no solapados. La codificación/decodificación de la imagen se realiza habitualmente a nivel de bloque donde, por ejemplo, se utiliza predicción de inter-cuadro o predicción de intracuadro para generar un bloque de predicción, para restar el bloque de predicción del bloque actual (bloque actualmente procesado/que se va a procesar) para obtener un bloque residual, que se transforma y cuantifica adicionalmente para reducir la cantidad de datos que se van a transmitir (compresión) mientras que en el lado de decodificador se aplica el procesamiento inverso al bloque codificado/comprimido para reconstruir el bloque para la representación.
En caso de codificación de video sin pérdidas, las imágenes de video originales se pueden reconstruir, es decir, las imágenes de video reconstruidas tienen la misma calidad que las imágenes de video originales (asumiendo que no hay pérdida de transmisión u otra pérdida de datos durante el almacenamiento o transmisión). En caso de codificación de video con pérdidas, se realiza compresión adicional, por ejemplo, por cuantificación, para reducir la cantidad de datos que representan las imágenes de video, que no se pueden reconstruir completamente en el decodificador, es decir, la calidad de imágenes de video reconstruidas es menor o peor comparada con la calidad de las imágenes de video originales.
Diversos estándares de codificación de video pertenecen al grupo de “códecs de video híbridos con pérdidas” (es decir, combinan predicción espacial y temporal en el dominio de muestra y codificación de transformada 2D para aplicar cuantificación en el dominio de transformada). Cada imagen de una secuencia de video se divide habitualmente en un conjunto de bloques no solapados y la codificación se realiza habitualmente a nivel de bloque. En otras palabras, en el codificador, el video se procesa habitualmente, es decir, se codifica, a nivel de bloque (bloque de video), por ejemplo, utilizando predicción espacial (intra-imagen) y/o predicción temporal (inter-imagen) para generar un bloque de predicción, restando el bloque de predicción del bloque actual (bloque actualmente procesado/que se va a procesar) para obtener un bloque residual, transformando el bloque residual y cuantificando el bloque residual en el dominio de transformada para reducir la cantidad de datos que se van a transmitir (compresión), mientras que en el decodificador, el procesamiento inverso comparado con el codificador se aplica al bloque codificado o comprimido para reconstruir el bloque actual para la representación. Además, el codificador duplica el bucle de procesamiento de decodificador de manera que ambos generan predicciones (por ejemplo, intra- e inter-predicciones) y/o reconstrucciones idénticas para procesar, es decir, codificar, los bloques posteriores.
En las siguientes realizaciones de un sistema de codificación de video 10, se describen un codificador de video 20 y un decodificador de video 30 en base a las figuras 1 a 3.
La figura 1 es un diagrama de bloques conceptual o esquemático que ilustra un sistema de codificación de ejemplo 10, por ejemplo, un sistema de codificación de video que puede utilizar técnicas de esta presente solicitud (presente descripción). El codificador 20 (por ejemplo, codificador de video 20) y el decodificador 30 (por ejemplo, decodificador de video 30) del sistema de codificación de video representan ejemplos de dispositivos que pueden estar configurados para realizar técnicas de acuerdo con varios ejemplos descritos en la presente solicitud. Como se muestra en la figura 1, el sistema de codificación comprende un dispositivo fuente 12 configurado para proporcionar datos codificados 13, por ejemplo, una imagen codificada 13, por ejemplo, a un dispositivo de destino 14 para decodificar los datos codificados 13.
El dispositivo fuente 12 comprende un codificador 20, y puede comprender adicionalmente, es decir, opcionalmente, una fuente de imágenes 16, una unidad de preprocesamiento 18, por ejemplo, una unidad de preprocesamiento de imagen 18, y una interfaz de comunicación o unidad de comunicación 22.
La fuente de imágenes 16 puede comprender, o ser, cualquier clase de dispositivo de captura de imagen, por ejemplo, para capturar una imagen de mundo real, y/o cualquier clase de dispositivo generador de imagen o comentario (para codificación de contenido de pantalla, algunos textos en la pantalla también se consideran una parte de una imagen a codificar), por ejemplo, un procesador de gráficos de ordenador para generar una imagen animada por ordenador, o cualquier clase de dispositivo para obtener y/o proporcionar una imagen de mundo real, una imagen animada por ordenador (por ejemplo, un contenido de pantalla, una imagen de realidad virtual (VR)) y/o cualquier combinación de las mismas (por ejemplo, una imagen de realidad aumentada (AR)).
Una imagen (digital) es, o se puede considerar como, una matriz bidimensional de muestras con valores de intensidad. Una muestra en la matriz también se puede denominar píxel (forma corta de elemento de imagen) o pel. El número de muestras en la dirección (o el eje) horizontal y vertical de la matriz o imagen define el tamaño y/o la resolución de la imagen. Para la representación del color, habitualmente se emplean tres componentes de color, es decir, la imagen se puede representar con, o puede incluir tres matrices de muestras. En el formato RBG o espacio de color, una imagen comprende matrices de muestras roja, verde y azul correspondientes. Sin embargo, en codificación de video, cada píxel se representa habitualmente en un formato de luminancia/crominancia o espacio de color, por ejemplo, YCbCr, que comprende un componente de luminancia indicado por Y (algunas veces también se utiliza L en su lugar) y dos componentes de crominancia indicados por Cb y Cr. El componente de luminancia (o luma, abreviado) Y representa el brillo o intensidad de nivel de gris (por ejemplo, como en una imagen a escala de grises), mientras que los dos componentes de crominancia (o croma, abreviado) Cb y Cr representan los componentes de información de color o cromaticidad. Por consiguiente, una imagen en formato YCbCr comprende una matriz de muestras de luminancia de valores de muestra de luminancia (Y) y dos matrices de muestras de crominancia de valores de crominancia (Cb y Cr). Las imágenes en formato RGB se pueden convertir a, o transformar en formato YCbCr y viceversa, conociéndose también el proceso también como conversión o transformación de color. Si una imagen es monocromática, la imagen puede comprender sólo una matriz de muestras de luminancia.
La fuente de imagen 16 (por ejemplo, fuente de video 16) puede ser, por ejemplo, una cámara para capturar una imagen, una memoria, por ejemplo, una memoria de imagen, que comprende o que almacena una imagen capturada o generada previamente, y/o cualquier clase de interfaz (interna o externa) para obtener o recibir una imagen. La cámara puede ser, por ejemplo, una cámara local o integrada, integrada en el dispositivo fuente, la memoria puede ser una memoria local o integrada, por ejemplo, integrada en el dispositivo fuente. La interfaz puede ser, por ejemplo, una interfaz externa para recibir una imagen de una fuente de video externa, por ejemplo, un dispositivo de captura de imagen externo como una cámara, una memoria externa, o un dispositivo generador de imagen externo, por ejemplo, un procesador de gráficos de ordenador, un ordenador o un servidor externo. La interfaz puede ser cualquier clase de interfaz, por ejemplo, una interfaz cableada o inalámbrica, una interfaz óptica, de acuerdo con cualquier protocolo de interfaz patentado o estandarizado. La interfaz para obtener los datos de imagen 17 puede ser la misma interfaz que la interfaz de comunicación 22 o una parte de la misma.
A diferencia de la unidad de preprocesamiento 18 y del procesamiento realizado por la unidad de preprocesamiento 18, la imagen o los datos de imagen 17 (por ejemplo, datos de video 16) también se pueden denominar imagen no editada o datos de imagen en bruto 17.
La unidad de preprocesamiento 18 está configurada para recibir los datos de imagen (en bruto) 17 y para realizar preprocesamiento en los datos de imagen 17 para obtener una imagen preprocesada 19 o datos de imagen preprocesados 19. El preprocesamiento realizado por la unidad de preprocesamiento 18 puede comprender, por ejemplo, recorte, conversión de formato de color (por ejemplo, de RGB a YCbCr), corrección de color, o reducción de ruido. Se puede entender que la unidad de preprocesamiento 18 puede ser un componente opcional.
El codificador 20 (por ejemplo, codificador de video 20) está configurado para recibir los datos de imagen preprocesados 19 y proporcionar datos de imagen codificados 21 (se describirán detalles adicionales a continuación, por ejemplo, en base a la figura 2).
La interfaz de comunicación 22 del dispositivo fuente 12 puede estar configurada para recibir los datos de imagen codificados 21 y transmitirlos a otro dispositivo, por ejemplo, el dispositivo de destino 14 o cualquier otro dispositivo, para almacenamiento o reconstrucción directa, o para procesar los datos de imagen codificados 21 para, respectivamente, antes de almacenar los datos codificados 13 y/o transmitir los datos codificados 13 a otro dispositivo, por ejemplo, el dispositivo de destino 14 o cualquier otro dispositivo para decodificación o almacenamiento.
El dispositivo de destino 14 comprende un decodificador 30(por ejemplo, un decodificador de video 30), y puede comprender adicionalmente, es decir, opcionalmente, una interfaz de comunicación o unidad de comunicación 28, una unidad de postprocesamiento 32 y un dispositivo de visualización 34.
La interfaz de comunicación 28 del dispositivo de destino 14 está configurada para recibir los datos de imagen codificados 21 o los datos codificados 13, por ejemplo, directamente del dispositivo fuente 12 o de cualquier otra fuente, por ejemplo, un dispositivo de almacenamiento, por ejemplo, un dispositivo de almacenamiento de datos de imagen codificados.
La interfaz de comunicación 22 y la interfaz de comunicación 28 pueden estar configuradas para transmitir o recibir los datos de imagen codificados 21 o datos codificados 13 mediante un enlace de comunicación directa entre el dispositivo fuente 12 y el dispositivo de destino 14, por ejemplo, una conexión directa cableada o inalámbrica, o mediante cualquier clase de red, por ejemplo, una red cableada o inalámbrica o cualquier combinación de las mismas, o cualquier clase de red privada y pública, o cualquier tipo de combinación de las mismas.
La interfaz de comunicación 22 puede estar configurada, por ejemplo, para empaquetar los datos de imagen codificados 21 en un formato apropiado, por ejemplo, paquetes, para transmisión a través de un enlace de comunicación o red de comunicación.
La interfaz de comunicación 28, que forma la contraparte de la interfaz de comunicación 22, puede estar configurada, por ejemplo, para desempaquetar los datos codificados 13 para obtener los datos de imagen codificados 21.
Tanto la interfaz de comunicación 22 como la interfaz de comunicación 28 pueden estar configuradas como interfaces de comunicación unidireccional como se indica por la flecha para los datos de imagen codificados 13 en la figura 1A que apuntan desde el dispositivo fuente 12 hasta el dispositivo de destino 14, o interfaces de comunicación bidireccional, y pueden estar configuradas, por ejemplo, para enviar y recibir mensajes, por ejemplo, para establecer una conexión, para acusar recibo de, e intercambiar cualquier otra información relativa al enlace de comunicación y/o transmisión de datos, por ejemplo, transmisión de datos de imagen codificados.
El decodificador 30 está configurado para recibir los datos de imagen codificados 21 y proporcionar datos de imagen decodificados 31 o una imagen decodificada 31 (se describirán detalles adicionales a continuación, por ejemplo, en base a la figura 3).
El postprocesador 32 del dispositivo de destino 14 está configurado para postprocesar los datos de imagen decodificados 31 (también llamados datos de imagen reconstruidos), por ejemplo, la imagen decodificada 31, para obtener datos de imagen postprocesados 33, por ejemplo, una imagen postprocesada 33. El postprocesamiento realizado por la unidad de postprocesamiento 32 puede comprender, por ejemplo, conversión de formato de color (por ejemplo, de YCbCr a RGB), corrección de color, recorte, o re-muestreo, o cualquier otro procesamiento, por ejemplo, para preparar los datos de imagen decodificados 31 para su visualización, por ejemplo, por el dispositivo de visualización 34.
El dispositivo de visualización 34 del dispositivo de destino 14 está configurado para recibir los datos de imagen postprocesados 33 para mostrar la imagen, por ejemplo, a un usuario o espectador. El dispositivo de visualización 34 puede ser o comprender cualquier clase de pantalla para representar la imagen reconstruida, por ejemplo, un monitor o pantalla externa o integrada. Las pantallas pueden comprender, por ejemplo, pantallas de cristal líquido (LCD), pantallas de diodos emisores de luz orgánicos (OLED), pantallas de plasma, proyectores, pantallas de micro LED, cristal líquido sobre silicio (LCoS), procesador de luz digital (DLP) o cualquier clase de otra pantalla.
Aunque la figura 1 representa el dispositivo fuente 12 y el dispositivo de destino 14 como dispositivos separados, las realizaciones de dispositivos también pueden comprender ambas funcionalidades, tanto el dispositivo fuente 12 o la funcionalidad correspondiente como el dispositivo de destino 14 o la funcionalidad correspondiente. En estas realizaciones, el dispositivo fuente 12 o la funcionalidad correspondiente y el dispositivo de destino 14 o la funcionalidad correspondiente se pueden implementar utilizando el mismo hardware y/o software o mediante hardware y/o software separado o cualquier combinación de los mismos.
Como será evidente para el experto en la materia basándose en la descripción, la existencia y división (exacta) de funcionalidades de las diferentes unidades o funcionalidades dentro del dispositivo fuente 12 y/o dispositivo de destino 14, que se muestra en la figura 1, puede variar dependiendo del dispositivo y de la aplicación reales.
El codificador 20 (por ejemplo, un codificador de video 20) y el decodificador 30 (por ejemplo, un decodificador de video 30) se pueden implementar, cada uno, como cualquiera de una variedad de circuitos adecuados, tales como uno o más microprocesadores, procesadores de señal digital (DSP), circuitos integrados de aplicación específica (ASIC), matrices de puertas programables en campo (FPGA), lógica discreta, hardware, o cualesquiera combinaciones de los mismos. Si las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio de almacenamiento legible por ordenador y puede ejecutar las instrucciones en hardware utilizando uno o más procesadores para realizar las técnicas de esta descripción. Cualquiera de lo anterior (incluyendo hardware, software, una combinación de hardware y software, etc.) se puede considerar que es uno o más procesadores. Cada uno del codificador de video 20 y el decodificador de video 30 se pueden incluir en uno o más codificadores o decodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/decodificador combinado (CODEC) en un respectivo dispositivo.
El dispositivo fuente 12 y el dispositivo de destino 14 pueden comprender cualquiera de una amplia variedad de dispositivos, incluyendo cualquier clase de dispositivos portátiles o estacionarios, por ejemplo, ordenadores portátiles ligeros o portátiles, teléfonos móviles, teléfonos inteligentes, tabletas u ordenadores de tableta, cámaras, ordenadores de escritorio, decodificadores, televisores, dispositivos de visualización, reproductores multimedia digitales, consolas de videojuegos, dispositivos de transmisión en tiempo real de video (tales como servidores de servicios de contenido o servidores de distribución de contenido), dispositivo receptor de difusión, dispositivo transmisor de difusión o similares, y pueden utilizar cualquier clase de sistema operativo o ninguno. En algunos casos, el dispositivo fuente 12 y el dispositivo de destino 14 pueden estar equipados para comunicación inalámbrica. Por consiguiente, el dispositivo fuente 12 y el dispositivo de destino 14 pueden ser dispositivos de comunicación inalámbrica.
En algunos casos, el sistema de codificación de video ilustrado en la figura 1 es simplemente un ejemplo y las técnicas de la presente solicitud se pueden aplicar a configuraciones de codificación de video (por ejemplo, codificación de video o decodificación de video) que no incluyen necesariamente ninguna comunicación de datos entre los dispositivos de codificación y decodificación. En otros ejemplos, los datos se recuperan de una memoria local, se transmiten en tiempo real a través de una red o similares. Un dispositivo de codificación de video puede codificar y almacenar datos en la memoria, y/o un dispositivo de decodificación de video puede recuperar y decodificar datos de la memoria. En algunos ejemplos, la codificación y decodificación se realiza mediante dispositivos que no se comunican entre sí, sino que simplemente codifican datos en la memoria y/o recuperan y decodifican datos de la memoria.
La figura 2 muestra un diagrama de bloques esquemático/conceptual de un codificador de video de ejemplo 20 que está configurado para implementar las técnicas de la presente solicitud. En el ejemplo de la figura 2, el codificador de video 20 comprende 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 y una unidad de procesamiento de transformada inversa 212, una unidad de reconstrucción 214, una memoria intermedia 216, una unidad de filtro de bucle 220, una memoria intermedia de imagen decodificada (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 (no mostradas). Un codificador de video 20, como se muestra en la figura 2, también se puede denominar codificador de video híbrido o un codificador de video acorde con un códec de video 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 ruta de señal directa del codificador 20, 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 intermedia 216, el filtro de bucle 220, la memoria intermedia de imagen decodificada (DPB) 230, unidad de procesamiento de predicción 260 forman una ruta de señal inversa del codificador, donde la ruta de señal inversa del codificador corresponde a la ruta de señal del decodificador (ver el decodificador 30 en la figura 3).
El codificador 20 está configurado para recibir, por ejemplo, mediante la entrada 202, una imagen 201 o un bloque 203 de la imagen 201, por ejemplo, la imagen de una secuencia de imágenes que forma un video o secuencia de video. El bloque de imagen 203 también se puede denominar bloque de imagen actual o bloque de imagen a codificar, y la imagen 201 como imagen actual o imagen a codificar (en particular, en la codificación de video para distinguir la imagen actual de otras imágenes, por ejemplo, imágenes codificadas previamente y/o decodificadas de la misma secuencia de video, es decir, la secuencia de video que también comprende la imagen actual).
La unidad de procesamiento de predicción 260, también denominada unidad de procesamiento de predicción de bloque 260, está configurada para recibir u obtener el bloque 203 (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 intermedia 216 y/o datos de imagen de referencia 231 de una o una pluralidad de imágenes decodificadas previamente de la memoria intermedia de imagen decodificada 230, y para procesar estos datos para la predicción, es decir, para proporcionar un bloque de predicción 265, que puede ser un bloque interpredicho 245 o un bloque intra-predicho 255.
La unidad de selección de modo 262 puede estar 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 bloque de predicción 265 para el cálculo del bloque residual 205 y para la reconstrucción del bloque reconstruido 215.
Las realizaciones de la unidad de selección de modo 262 pueden estar configuradas para seleccionar el modo de predicción (por ejemplo, de los soportados por la unidad de procesamiento de predicción 260), que proporciona la mejor coincidencia o, en otras palabras, el residuo mínimo (residuo mínimo significa mejor compresión para transmisión o almacenamiento), o una sobrecarga de señalización mínima (sobrecarga de señalización mínima significa mejor compresión para transmisión o almacenamiento), o que considera o equilibra ambos. La unidad de selección de modo 262 puede estar configurada para determinar el modo de predicción en base a la optimización de distorsión de velocidad (RDO), es decir, seleccionar el modo de predicción que proporciona una optimización de distorsión de velocidad mínima o cuya distorsión de velocidad asociada cumple al menos un criterio de selección de modo de predicción.
La unidad de intra-predicción 254 está configurada además para determinar, en base al parámetro de intrapredicción, por ejemplo el modo de intra-predicción seleccionado, el bloque de intra-predicción 255. En cualquier caso, después de seleccionar un modo de intra-predicción para un bloque, la unidad de intrapredicción 254 también está configurada para proporcionar un parámetro de intra-predicción, es decir, información indicativa del modo de intra-predicción seleccionado para el bloque a la unidad de codificación entrópica 270. En un ejemplo, la unidad de intra-predicción 254 puede estar configurada para realizar cualquier combinación de las técnicas de intra-predicción descritas más adelante.
Las realizaciones del codificador de video 20 pueden comprender una unidad de división de imagen (no representada en la figura 2) configurada para dividir la imagen en una pluralidad de bloques de imagen (habitualmente no solapados). Estos bloques también se pueden denominar bloques de raíz, bloques de macro (H.264/AVC) o bloques de árbol de codificación (CTB) o unidades de árbol de codificación (CTU) (H.265/HEVC y VVC). La unidad de división de imagen puede estar configurada para utilizar el mismo tamaño de bloque para todas las imágenes de una secuencia de video y la cuadrícula correspondiente que define el tamaño de bloque, o para cambiar el tamaño de bloque entre imágenes o subconjuntos o grupos de imágenes, y dividir cada imagen en los bloques correspondientes.
Como la imagen, también el bloque de imagen es, o se puede considerar como una matriz bidimensional de muestras con valores de intensidad (valores de muestra), aunque de dimensión menor que la imagen. En otras palabras, el bloque puede comprender, por ejemplo, una matriz de muestras (por ejemplo, una matriz de luma en el caso de una imagen monocromática, o una matriz de luma o de croma en el caso de una imagen de color) o tres matrices de muestras (por ejemplo, una matriz de luma y dos de croma en el caso de una imagen de color) o cualquier otro número y/o clase de matrices dependiendo del formato de color aplicado. El número de muestras en dirección horizontal y vertical (o eje) del bloque define el tamaño del bloque. Por consiguiente, un bloque puede ser, por ejemplo, una matriz de muestras de MxN (M columnas por N filas), o una matriz de MxN de coeficientes de transformada.
Las realizaciones del codificador de video mostrado en la figura 2 pueden estar configuradas para codificar el bloque de imagen por bloque, por ejemplo, la codificación y predicción se realizan por bloque.
Las realizaciones del codificador de video mostrado en la figura 2 pueden estar configuradas adicionalmente para dividir y/o codificar la imagen utilizando segmentos (también denominados segmentos de video), donde una imagen se puede dividir en, o codificar utilizando uno o más segmentos (habitualmente no solapados), y cada segmento puede comprender uno o más bloques (por ejemplo, CTU).
Las realizaciones del codificador de video mostrado en la figura 2 pueden estar configuradas adicionalmente para dividir y/o codificar la imagen utilizando grupos de teselas (también conocidos como grupos de teselas de video) y/o teselas (también conocidas como teselas de video), donde una imagen se puede dividir o codificar utilizando uno o más grupos de teselas (habitualmente no solapados), y cada grupo de teselas puede comprender, por ejemplo, uno o más bloques (por ejemplo, CTU) o una o más teselas, donde cada tesela, por ejemplo, puede ser de forma rectangular y puede comprender uno o más bloques (por ejemplo, CTU), por ejemplo, bloques completos o fraccionarios.
La figura 3 muestra un decodificador de video de ejemplo 30 que está configurado para implementar las técnicas de esta presente solicitud. El decodificador de video 30 está configurado para recibir datos de imagen codificados (por ejemplo, flujo de bits codificado) 21, por ejemplo, codificados por el codificador 100, para obtener una imagen decodificada 131. Durante el proceso de decodificación, el decodificador de video 30 recibe datos de video, por ejemplo, un flujo de bits de video codificado que representa bloques de imagen de un segmento de video codificado y elementos de sintaxis asociados, del codificador de video 100.
En el ejemplo de la figura 3, el decodificador 30 comprende una unidad de decodificación entrópica 304, una unidad de cuantificación inversa 310, una unidad de procesamiento de transformada inversa 312, una unidad de reconstrucción 314 (por ejemplo, un sumador 314), una memoria intermedia 316, un filtro de bucle 320, una memoria intermedia de imagen decodificada 330 y una unidad de procesamiento de predicción 360. La unidad de procesamiento de predicción 360 puede incluir una unidad de inter-predicción 344, una unidad de intrapredicción 354 y una unidad de selección de modo 362. El decodificador de video 30 puede, en algunos ejemplos, realizar una pasada de decodificación en general recíproca respecto de la pasada de codificación descrita con respecto al codificador de video 20 de la figura 2.
La unidad de decodificación entrópica 304 está configurada para realizar decodificación entrópica a los datos de imagen codificados 21 para obtener, por ejemplo, coeficientes cuantificados 309 y/o parámetros de codificación decodificados (no mostrados en la figura 3), por ejemplo, cualquiera o todos (decodificados) de entre los parámetros de inter-predicción, parámetro de intra-predicción, parámetros de filtro de bucle, y/u otros elementos de sintaxis. La unidad de decodificación entrópica 304 está configurada además para reenviar parámetros de inter-predicción, parámetro de intra-predicción y/u otros elementos de sintaxis a la unidad de procesamiento de predicción 360. El decodificador de video 30 puede recibir los elementos de sintaxis a nivel de segmento de video y/o a nivel de bloque de video.
La unidad de cuantificación inversa 310 puede ser idéntica en su función a la unidad de cuantificación inversa 110, la unidad de procesamiento de transformada inversa 312 puede ser idéntica en su función a la unidad de procesamiento de transformada inversa 112, la unidad de reconstrucción 314 puede ser idéntica en su función a la unidad de reconstrucción 114, la memoria intermedia 316 puede ser idéntica en su función a la memoria intermedia 116, el filtro de bucle 320 puede ser idéntico en su función al filtro de bucle 120 , y la memoria intermedia de imagen decodificada 330 puede ser idéntica en su función a la memoria intermedia de imagen decodificada 130.
La unidad de procesamiento de predicción 360 puede comprender una unidad de inter-predicción 344 y una unidad de intra-predicción 354, donde la unidad de inter-predicción 344 puede parecerse a la unidad de inter predicción 144 en su función, y la unidad de intra-predicción 354 se puede parecer a la unidad de intrapredicción 154 en su función. La unidad de procesamiento de predicción 360 está configurada habitualmente para realizar la predicción de bloque y/u obtener el bloque de predicción 365 a partir de los datos codificados 21, y para recibir u obtener (explícitamente o implícitamente) los parámetros relacionados con la predicción y/o la información sobre el modo de predicción seleccionado, por ejemplo, de la unidad de decodificación entrópica 304.
Cuando el segmento de video se codifica como un segmento intra codificado (I), la unidad de intra-predicción 354 de la unidad de procesamiento de predicción 360 está configurada para generar un bloque de predicción 365 para un bloque de imagen del segmento de video actual en base a un modo de intra-predicción señalizado y datos a partir de bloques decodificados previamente del cuadro o imagen actual. Cuando el cuadro de video se codifica como un segmento inter codificado (es decir, B o P), la unidad de inter-predicción 344 (por ejemplo, unidad de compensación de movimiento) de la unidad de procesamiento de predicción 360 está configurada para producir bloques de predicción 365 para un bloque de video del segmento de video actual en base a los vectores de movimiento y otros elementos de sintaxis recibidos de la unidad de decodificación entrópica 304. Para la inter-predicción, los bloques de predicción se pueden producir a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador de video 30 puede construir las listas de cuadro de referencia, Lista 0 y Lista 1, utilizando técnicas de construcción predeterminadas en base a imágenes de referencia almacenadas en la DPB 330.
La unidad de procesamiento de predicción 360 está configurada para determinar información de predicción para un bloque de video del segmento de video actual analizando sintácticamente los vectores de movimiento y otros elementos de sintaxis, y utiliza la información de predicción para producir los bloques de predicción para el bloque de video actual que se está decodificando. Por ejemplo, la unidad de procesamiento de predicción 360 utiliza algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra o inter-predicción) utilizado para codificar los bloques de video del segmento de video, un tipo de segmento de inter-predicción (por ejemplo, segmento B, segmento P, o segmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento, vectores de movimiento para cada bloque de video inter-codificado del segmento, estado de inter-predicción para cada bloque de video inter-codificado del segmento y otra información para decodificar los bloques de video en el segmento de video actual.
La unidad de cuantificación inversa 310 está configurada para cuantificar de manera inversa, es decir, descuantificar, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y decodificados por la unidad de decodificación entrópica 304. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el codificador de video 100 para cada bloque de video en el segmento de video para determinar un grado de cuantificación y, de manera similar, un grado de cuantificación inversa que se debe aplicar.
La unidad de procesamiento de transformada inversa 312 está configurada para aplicar una transformada inversa, por ejemplo, una DCT inversa, una transformada inversa de número entero, o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada a fin de producir bloques residuales en el dominio de píxel.
La unidad de reconstrucción 314 (por ejemplo, sumador 314) está configurada para sumar el bloque de transformada inversa 313 (es decir, el bloque residual reconstruido 313) al bloque de predicción 365 para obtener un bloque reconstruido 315 en el dominio de muestra, por ejemplo, sumando los valores de muestra del bloque residual reconstruido 313 y los valores de muestra del bloque de predicción 365.
La unidad de filtro de bucle 320 (ya sea en el bucle de codificación o después del bucle de codificación) está configurada para filtrar el bloque reconstruido 315 para obtener un bloque filtrado 321, por ejemplo, para suavizar las transiciones de píxeles, o mejorar de otra manera la calidad de video. En un ejemplo, la unidad de filtro de bucle 320 puede estar configurada para realizar cualquier combinación de las técnicas de filtrado descritas más adelante. La unidad de filtro de bucle 320 pretende representar uno o más filtros de bucle tal como un filtro de desbloqueo, un filtro de desfase adaptativo de muestras (SAO) u otros filtros, por ejemplo, un filtro bilateral o un filtro de bucle adaptativo (ALF) o un filtro de definición o suavizado o filtros colaborativos. Aunque la unidad de filtro de bucle 320 se muestra en la figura 3 siendo un filtro de bucle, en otras configuraciones, la unidad de filtro de bucle 320 se puede implementar como un filtro de bucle posterior.
Los bloques de video decodificados 321 en un cuadro o imagen determinada se almacenan a continuación en la memoria intermedia de imagen decodificada 330, que almacena imágenes de referencia utilizadas para compensación de movimiento posterior.
El decodificador 30 está configurado para emitir la imagen decodificada 331, por ejemplo, mediante la salida 332, para su presentación o visualización a un usuario.
Otras variaciones del decodificador de video 30 se pueden utilizar para decodificar el flujo de bits comprimido. Por ejemplo, el decodificador 30 puede producir la transmisión en tiempo real de video de salida sin la unidad de filtrado de bucle 320. Por ejemplo, un decodificador no basado en transformada 30 puede cuantificar inversamente la señal residual directamente sin la unidad de procesamiento de transformada inversa 312 para ciertos bloques o cuadros. En otra implementación, el decodificador de video 30 puede tener la unidad de cuantificación inversa 310 y la unidad de procesamiento de transformada inversa 312 combinadas en una sola unidad.
Las realizaciones del decodificador de video mostrado en la figura 3 pueden estar configuradas para dividir y/o decodificar la imagen utilizando segmentos (también denominados segmentos de video), donde una imagen se puede dividir en, o decodificar utilizando uno o más segmentos (habitualmente no solapados), y cada segmento puede comprender uno o más bloques (por ejemplo, CTU).
Las realizaciones del decodificador de video mostrado en la figura 3 pueden estar configuradas para dividir y/o decodificar la imagen utilizando grupos de teselas (también conocidos como grupos de teselas de video) y/o teselas (también conocidas como teselas de video), donde una imagen se puede dividir en, o decodificar utilizando uno o más grupos de teselas (habitualmente no solapados), y cada grupo de teselas puede comprender, por ejemplo, uno o más bloques (por ejemplo, CTU) o una o más teselas, donde cada tesela, por ejemplo, puede ser de forma rectangular y puede comprender uno o más bloques (por ejemplo, CTU), por ejemplo, bloques completos o fraccionarios.
Se debe entender que, en el codificador y el decodificador, un resultado de procesamiento de una etapa actual se puede procesar adicionalmente y emitir a continuación a la siguiente etapa. Por ejemplo, después del filtrado de interpolación, de la derivación de vector de movimiento o del filtrado de bucle, se puede realizar una operación adicional, tal como recorte o desplazamiento, sobre el resultado de procesamiento del filtrado de interpolación, de la derivación de vector de movimiento o del filtrado de bucle.
De acuerdo con el estándar HEVC/H.265, están disponibles 35 modos de intra-predicción. Este conjunto contiene los siguientes modos: modo planar (el índice de modo de intra-predicción es 0), modo de CC (el índice de modo de intra-predicción es 1), y modos direccionales (angulares) que cubren el intervalo de 180° y tienen el intervalo de valor de índice de modo de intra-predicción de 2 a 34. Para capturar las direcciones de borde arbitrarias presentes en video natural, el número de modos intra direccionales se extiende de 33, tal como se utiliza en HEVC, a 65. Los modos direccionales adicionales se muestran en la figura 4, y los modos planar y de CC siguen siendo los mismos. Vale la pena señalar que el intervalo que se cubre por los modos de intrapredicción puede ser más amplio que 180°. En particular, 62 modos direccionales con valores de índice de 3 a 64 cubren el intervalo de aproximadamente 230°, es decir, varios pares de modos tienen direccionalidad opuesta. En el caso del modelo de referencia (HM) de HEVC y plataformas de JEM, sólo un par de modos angulares (es decir, modos 2 y 66) tiene direccionalidad opuesta como se muestra en la figura 4. Para construir un predictor, los modos angulares convencionales toman muestras de referencia y (si es necesario) las filtran para obtener un predictor de muestras. El número de muestras de referencia requeridas para construir un predictor depende de la longitud del filtro utilizado para la interpolación (por ejemplo, los filtros bilineales y cúbicos tienen longitudes de 2 y 4, respectivamente).
La figura 4 muestra un ejemplo de 67 modos de intra-predicción, por ejemplo, como se propone para VVC, la pluralidad de modos de intra-predicción de 67 modos de intra-predicción que comprenden: modo planar (índice 0), modo de CC (índice 1), y modos angulares con índices 2 a 66, donde el modo angular inferior izquierdo en la figura 4 se refiere al índice 2 y la numeración de los índices se incrementa hasta que el índice 66 es el modo angular más superior derecho de la figura 4.
Los esquemas de codificación de video tal como H.264/AVC y HEVC están diseñados sobre el principio exitoso de codificación de video híbrida basada en bloques. Utilizando este principio, una imagen se divide primero en bloques y, a continuación, cada bloque se predice mediante el uso de predicción de intra-imagen o inter imagen.
Como se utiliza en la presente memoria, el término “bloque” puede ser una parte de una imagen o un cuadro. Por comodidad de la descripción, las realizaciones de la invención se describen en la presente memoria haciendo referencia a Codificación de Video de Alta Eficiencia (HEVC) o al software de referencia de Codificación de Video Versátil (VVC), desarrollado por el Equipo de Colaboración Conjunta en Codificación de Video (JCT-VC) del Grupo de Expertos en Codificación de Video (VCEG) de UIT-T y el Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC. Un experto en la materia entenderá que las realizaciones de la invención no se limitan a HEVC o VVC. Estas se pueden referir a una CU, PU, y TU. En HEVC, una CTU se divide en CU utilizando una estructura de árbol cuaternario denotada como árbol de codificación. La decisión de codificar un área de imagen utilizando predicción de inter-imagen (temporal) o intra-imagen (espacial) se toma al nivel de CU. Cada CU se puede dividir adicionalmente en una, dos o cuatro PU de acuerdo con el tipo de división de PU. Dentro de una PU, se aplica el mismo proceso de predicción y la información pertinente se transmite al decodificador en una base de PU. Después de obtener el bloque residual mediante la aplicación del proceso de predicción en base al tipo de división de PU, una CU se puede dividir en unidades de transformada (TU) de acuerdo con otra estructura de árbol cuaternario similar al árbol de codificación para la CU. En el desarrollo más reciente de la técnica de compresión de video, se utiliza la división de árbol cuaternario y árbol binario (QTBT) para dividir un bloque de codificación. En la estructura de bloques de QTBT, una CU puede tener una forma cuadrada o bien rectangular. Por ejemplo, una unidad de árbol de codificación (CTU) se divide primero mediante una estructura de árbol cuaternario. Los nodos hoja de árbol cuaternario se dividen adicionalmente mediante una estructura de árbol binario. Los nodos hoja de árbol binario se llaman unidades de codificación (CU), y esa segmentación se utiliza para el procesamiento de predicción y transformada sin ninguna división adicional. Esto significa que la Cu , PU y TU tienen el mismo tamaño de bloque en la estructura del bloque de codificación de QTBT. En paralelo, también se propuso utilizar división de multiplicación, por ejemplo, división de árbol triple, junto con la estructura de bloque de QTBT.
VCEG de UIT-T (Q6/16) e MPEG de ISO/IEC (JTC 1/SC 29/WG 11) están estudiando la necesidad potencial de estandarización de la futura tecnología de codificación de video con una capacidad de compresión que excede significativamente la del estándar HEVC actual (incluyendo sus extensiones actuales y extensiones a corto plazo para codificación de contenido de visualización de pantalla y codificación de alto intervalo dinámico). Los grupos están trabajando conjuntamente en esta actividad de exploración en un esfuerzo de colaboración conjunta conocido como el Equipo de Exploración Conjunta de Video (JVET) para evaluar los diseños de tecnología de compresión propuestos por sus expertos en esta área.
El VTM (Modelo de Prueba Versátil) utiliza 35 modos intra, mientras que el BMS (Conjunto de Referencias) utiliza 67 modos intra. La intra-predicción es un mecanismo utilizado en muchas estructuras de codificación de video para incrementar la eficiencia de compresión en los casos donde sólo un cuadro determinado se puede implicar.
Como se muestra en la figura 4, la última versión de JEM tiene algunos modos que corresponden a direcciones de intra-predicción sesgadas. Para cualquiera de estos modos, predecir muestras dentro de una interpolación de bloque de un conjunto de muestras de referencia vecinas se debe realizar si una posición correspondiente dentro de un lado de bloque es fraccionaria. HEVC y VVC utilizan interpolación lineal entre dos muestras de referencia adyacentes. JEM utiliza filtros de interpolación de 4 derivaciones más sofisticados. Los coeficientes de filtro se seleccionan para ser ya sea gaussianos o cúbicos dependiendo de los valores de anchura o de altura. La decisión sobre si utilizar anchura o altura se armoniza con la decisión sobre la selección de lado de referencia principal: cuando el modo de intra-predicción es mayor o igual al modo diagonal, el lado superior de las muestras de referencia se selecciona para ser el lado de referencia principal y el valor de anchura se selecciona para determinar el filtro de interpolación en uso. En otro caso, la referencia de lado principal se selecciona del lado izquierdo del bloque y la altura controla el proceso de selección de filtro. Específicamente, si la longitud lateral seleccionada es menor o igual a 8 muestras, se aplican 4 derivaciones de interpolación cúbica. De lo contrario, el filtro de interpolación es uno gaussiano de 4 derivaciones.
El coeficiente de filtro específico utilizado en JEM se proporciona en la tabla 1. La muestra predicha se calcula por convolución con coeficientes seleccionados de la tabla 1 de acuerdo con el desfase de subpíxel y el tipo de filtro, como sigue:
»
En esta ecuación, “ ” indica una operación de desplazamiento a la derecha a nivel de bits.
Si se selecciona filtro cúbico, la muestra predicha se recorta adicionalmente al intervalo permitido de valores, que se define ya sea en SPS o se deriva de la profundidad de bits del componente seleccionado.
Tabla 1. Filtros de interpolación de intra-predicción
El proceso de compensación de movimiento también utiliza filtrado para predecir valores de muestra cuando los desplazamientos de los píxeles del bloque de referencia son fraccionarios. En JEM, se utiliza filtrado de 8 derivaciones para el componente de luminancia y se utiliza filtrado de 4 derivaciones para el componente de crominancia. El filtro de interpolación de movimiento se aplica en primer lugar horizontalmente, y la salida del filtrado horizontal se filtra además verticalmente. Los coeficientes de un filtro de crominancia de 4 derivaciones se proporcionan en la tabla 2.
Tabla 2. Coeficientes de filtro de interpolación de movimiento de crominancia
Las soluciones de codificación de video de última generación utilizan diferentes filtros de interpolación en intra e inter-predicción. En particular, las figuras 5 a 7 muestran diferentes ejemplos de filtros de interpolación.
La figura 5 ilustra esquemáticamente un ejemplo de los filtros de interpolación como se utilizan en JEM. Como se puede ver a partir de la figura, para la interpolación de compensación de movimiento una posición fraccionaria en inter-predicción, se utiliza un filtro de interpolación de 8 derivaciones con coeficientes de 6 bits para luma y un filtro de interpolación de 4 derivaciones con coeficientes de 6 bits para croma. Además, para interpolación de muestras de referencia intra en intra-predicción, se utiliza un filtro gaussiano de interpolación de 4 derivaciones con coeficientes de 8 bits o un filtro cúbico de interpolación de 4 derivaciones con coeficientes de 8 bits.
La figura 6 ilustra esquemáticamente un ejemplo de los filtros de interpolación propuestos para el experimento central CE3 3.1.3 (G. Van der Auwera et al: JVET K1023 “Description of Core Experiment 3 (CE3):Intra predictionand Mode Coding”, versión 2). Como se puede ver a partir de la figura, para la interpolación de compensación de movimiento una posición fraccionaria en inter-predicción, se utiliza un filtro de interpolación de 8 derivaciones con coeficientes de 6 bits para luma y se utiliza un filtro de interpolación de 4 derivaciones con coeficientes de 6 bits para croma. Además, para interpolación de muestras de referencia intra en intrapredicción, se utiliza un filtro gaussiano de interpolación de 6 derivaciones con coeficientes de 8 bits o un filtro cúbico de interpolación de 4 derivaciones con coeficientes de 8 bits.
La figura 7 ilustra esquemáticamente un ejemplo de los filtros de interpolación propuestos en G. Van der Auwera et al.: JVET K0064 “CE3-related: On<m>D<i>S and intra interpolation filter switching”, versión 2. Como se puede ver a partir de la figura, para la interpolación de compensación de movimiento una posición fraccionaria en inter-predicción, se utiliza un filtro de interpolación de 8 derivaciones con coeficientes de 6 bits para luma y se utiliza un filtro de interpolación de 4 derivaciones con coeficientes de 6 bits para croma. Además, para interpolación de muestras de referencia intra en intra-predicción, se utiliza un filtro gaussiano de interpolación de 6 derivaciones con coeficientes de 8 bits o un filtro cúbico de interpolación de 6 derivaciones con coeficientes de 8 bits.
De acuerdo con esta descripción, las tablas de consulta y los módulos de hardware del filtro de subpel de compensación de movimiento de croma se reutilizan para interpolar valores de píxeles dentro de un intrapredictor, si caen en posiciones fraccionarias entre muestras de referencia. Puesto que se propone que el mismo hardware esté en uso tanto para inter- como para intra-predicción, la precisión de coeficientes de filtro debe ser consistente, es decir, el número de bits para representar los coeficientes de filtro para la interpolación de muestras de referencia intra se debe alinear con la precisión de coeficiente de filtrado de interpolación de compensación de movimiento de subpel de movimiento.
La figura 8 ilustra la idea de la descripción proporcionada. El “filtro de interpolación de 4 derivaciones con coeficientes de 6 bits para croma” sombreado (también conocido como “filtro de intra/inter unificado”) se puede utilizar para ambos procesos: interpolación de muestras intra- e inter-predichas.
Un ejemplo que utiliza este diseño se muestra en la figura 9. En esta implementación, se implementa un módulo de filtrado como una unidad separada que se acopla en ambas: predicción de muestras de crominancia en compensación de movimiento y predicción de muestras de luminancia y crominancia cuando se realiza intrapredicción. En esta implementación, la parte de filtrado de hardware se está utilizando en procesos de intra- e inter-predicción.
Otro ejemplo muestra la implementación cuando sólo se reutilizan LUT de coeficientes de filtro, como se ilustra en la figura 10. En esta realización, los módulos de filtrado de hardware cargan coeficientes de LUT almacenados en ROM. Un conmutador mostrado en el proceso de intra-predicción determina el tipo de filtro que se está utilizando dependiendo de la longitud del lado principal seleccionado para el proceso de intrapredicción. Una realización de la solicitud dada a conocer puede utilizar los siguientes coeficientes (ver tabla 3).
Tabla 3: Filtros de intra-interpolación e inter-interpolación
Una muestra intra-predicha se puede calcular por convolución con coeficientes seleccionados de la tabla 1 de acuerdo con el desfase de subpíxel y el tipo de filtro, como sigue:
»
En esta ecuación, “ ” indica una operación de desplazamiento a la derecha a nivel de bits.
Si se selecciona “filtro de intra/inter unificado”, la muestra predicha se recorta adicionalmente al intervalo permitido de valores, que se define ya sea en SPS o se deriva de la profundidad de bits del componente seleccionado.
Para interpolación de muestras de referencia intra e interpolación de compensación de movimiento de subpel, el mismo filtro se puede utilizar para reutilizar módulos de hardware y para reducir el tamaño total de la memoria requerida,
La precisión de los coeficientes de filtro utilizados para interpolación de muestras de referencia intra además del filtro reutilizado se debe alinear con la precisión de los coeficientes del filtro reutilizado mencionado anteriormente.
Se debe observar que el procesamiento de luma en compensación de movimiento no necesariamente utiliza filtrado de 8 derivaciones, sino que también puede funcionar en filtrado de 4 derivaciones. En este caso, se podría seleccionar un filtro de 4 derivaciones para unificar.
El método se puede aplicar en diferentes partes del proceso de intra-predicción que pueden implicar interpolación. En particular, cuando se extienden las muestras de referencia principales, las muestras de referencia laterales también se pueden filtrar utilizando un filtro de interpolación unificado (ver V. Drugeon: JVET-K0211 “CE3: DC mode without divisions and modifications to intra filtering (Tests 1.2.1, 2.2.2 y 2.5.1)” versión 1 para detalles).
Las operaciones de copia de bloque de intra también implican una etapa de interpolación que puede utilizar el método propuesto (ver [Xiaozhong Xu, Shan Liu, Tzu-Der Chuang, Yu-Wen Huang, Shawmin Lei, Krishnakanth Rapaka, Chao Pang, Vadim Seregin, Ye-Kui Wang, Marta Karczewicz: Intra Block Copy in HEVC Screen Content Coding Extensions. IEEE J. Emerg. Sel. Topics Circuits Syst. 6(4): 409-419 (2016)] para la descripción de copia de bloque de intra). Se da a conocer un método para la intra-predicción, comprendiendo el método: utilizar un filtro de interpolación para el componente de crominancia como el filtro de interpolación para la intrapredicción de un bloque.
En una realización, una tabla de consulta del filtro de interpolación para el componente de crominancia es la misma que una tabla de consulta del filtro de interpolación para intra-predicción.
En una realización, una tabla de consulta del filtro de interpolación para el componente de crominancia no es la misma que una tabla de consulta del filtro de interpolación para intra-predicción.
En una realización, el filtro de interpolación es un filtro de 4 derivaciones.
En una realización, la tabla de consulta del filtro de interpolación para el componente de crominancia es
Se da a conocer un método para la intra-predicción, comprendiendo el método: seleccionar un filtro de interpolación de un conjunto de filtros de interpolación para la intra-predicción de un bloque.
En una realización, el conjunto de filtros de interpolación comprende un filtro gaussiano y un filtro cúbico. En una realización, una tabla de consulta del filtro de interpolación seleccionado es la misma que una tabla de consulta del filtro de interpolación para el componente de crominancia.
En una realización, el filtro de interpolación seleccionado es un filtro de 4 derivaciones.
En una realización, el filtro de interpolación seleccionado es un filtro cúbico.
En una realización, una tabla de consulta del filtro de interpolación seleccionado es
En una realización, una tabla de consulta del filtro de interpolación seleccionado es
Se da a conocer un codificador que comprende circuitos de procesamiento para llevar a cabo cualquiera de los métodos anteriores.
Se da a conocer un decodificador que comprende circuitos de procesamiento para llevar a cabo cualquiera de los métodos anteriores.
Se da a conocer un producto de programa informático que comprende un código de programa para realizar cualquiera de los métodos anteriores.
Se da a conocer un decodificador, que comprende: uno o más procesadores; y un medio de almacenamiento no transitorio legible por ordenador acoplado a los procesadores y que almacena programación para su ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el decodificador para llevar a cabo cualquiera de los métodos anteriores.
Se da a conocer un codificador, que comprende: uno o más procesadores; y un medio de almacenamiento no transitorio legible por ordenador acoplado a los procesadores y que almacena programación para su ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el codificador para llevar a cabo cualquiera de los métodos anteriores.
Por ejemplo, se entiende que una descripción en relación con un método descrito también puede ser válida para un dispositivo o sistema correspondiente configurado para realizar el método, y viceversa. Por ejemplo, si se describe una etapa de método específica, un dispositivo correspondiente puede incluir una unidad para realizar la etapa de método descrita, incluso si esta unidad no se describe o ilustra explícitamente en las figuras. Además, se entiende que las características de los diversos aspectos de ejemplo descritos en la presente memoria se pueden combinar entre sí, salvo que se indique específicamente lo contrario.
Se da a conocer un método para filtrado dependiente de la relación de aspecto para intra-predicción, comprendiendo el método:
seleccionar un filtro de interpolación para que se prediga un bloque dependiendo de una relación de aspecto del bloque.
En un ejemplo, el filtro de interpolación se selecciona dependiendo de una dirección para formación de umbrales de un modo de intra-predicción del bloque a predecir.
En un ejemplo, la dirección corresponde a un ángulo de una diagonal principal del bloque a predecir.
En un ejemplo, un ángulo de la dirección se calcula como:
ccT<=>arctan
dondeW<,>Hson la anchura y la altura del bloque a predecir, respectivamente.
En un ejemplo, la relación de aspecto es
R<a>= log2(W) - log2(H )dondeW, Hson la anchura y la altura del bloque a predecir,respectivamente.
En un ejemplo, el ángulo de la diagonal principal del bloque a predecir se determina en base a la relación de aspecto.
En un ejemplo, un umbral de un modo de intra-predicción del bloque se determina en base al ángulo de la diagonal principal del bloque a predecir.
En un ejemplo, el filtro de interpolación se selecciona dependiendo del lado al que pertenecen las muestras de referencia que se utilizan.
En un ejemplo, una línea recta con un ángulo que corresponde a una dirección de intra divide el bloque en dos áreas.
En un ejemplo, las muestras de referencia que pertenecen a diferentes áreas se predicen utilizando diferentes filtros de interpolación.
En un ejemplo, el filtro incluye un filtro cúbico de interpolación o un filtro gaussiano de interpolación.
En una forma de implementación de la presente solicitud, un cuadro es el mismo que una imagen.
En una forma de implementación de la presente descripción, un valor que corresponde al VER_IDX es 50; un valor que corresponde al HOR_IDX es 18; un valor que corresponde al VDIA_<i>D<x>es 66, y este valor puede ser el valor más grande en los valores que corresponden a los modos angulares; el valor 2 que corresponde al modo intra 2 puede ser el valor más pequeño en los valores que corresponden a los modos angulares; un valor que corresponde al DIA_IDX es 34.
La presente descripción se dirige a la mejora en el esquema de señalización de modo intra. En la presente descripción, se propone un método de decodificación de video y un decodificador de video.
En otro aspecto de la presente descripción, se da a conocer un decodificador que comprende circuitos de procesamiento configurado para llevar a cabo los métodos de decodificación anteriores.
En otro aspecto de la presente descripción, se da a conocer un producto de programa informático que comprende un código de programa para realizar cualquiera de los métodos de decodificación anteriores. En otro aspecto de la presente descripción, se da a conocer un decodificador para decodificar datos de video, comprendiendo el decodificador: uno o más procesadores; y un medio de almacenamiento no transitorio legible por ordenador acoplado a los procesadores y que almacena programación para su ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el decodificador para llevar a cabo cualquiera de los métodos de decodificación anteriores.
Los circuitos de procesamiento se pueden implementar en hardware, o en una combinación de hardware y software, por ejemplo, por un procesador programable por software o similares.
Los circuitos de procesamiento se pueden implementar en hardware, o en una combinación de hardware y software, por ejemplo, por un procesador programable por software o similares.
La figura 11 ilustra un diagrama esquemático de una pluralidad de modos de intra-predicción utilizados en el esquema de UIP de HEVC. Para los bloques de luminancia, los modos de intra-predicción pueden comprender hasta 36 modos de intra-predicción, que pueden incluir tres modos no direccionales y 33 modos direccionales. Los modos no direccionales pueden comprender un modo de predicción planar, un modo de predicción de media (CC), y un modo de predicción de croma desde luma (LM). El modo de predicción planar puede realizar predicciones asumiendo una superficie de amplitud de bloque con una inclinación horizontal y vertical derivada del límite del bloque. El modo de predicción de CC puede realizar predicciones asumiendo una superficie de bloque plana con un valor que coincide con el valor medio del límite de bloque. El modo de predicción de LM puede realizar predicciones asumiendo que un valor de croma para el bloque coincide con el valor de luma para el bloque. Los modos direccionales pueden realizar predicciones en base a bloques adyacentes como se muestra en la figura 11.
H.264/AVC y HEVC especifican que se podría aplicar un filtro de paso bajo a las muestras de referencia antes de utilizarse en el proceso de intra-predicción. Una decisión sobre si utilizar o no el filtro de muestras de referencia se determina por modo de intra-predicción y tamaño de bloque. Estos mecanismos se pueden denominar intra-suavizado dependiente de modo (MDIS). También existe una pluralidad de métodos en relación con MDIS. Por ejemplo, el método de suavizado de muestras de referencia adaptativa (ARSS) puede señalizar explícitamente (es decir, un indicador se incluye en un flujo de bits) o implícitamente (es decir, por ejemplo, se utiliza ocultamiento de datos para evitar poner un indicador en un flujo de bits para reducir la sobrecarga de señalización) si las muestras de predicción se filtran. En este caso, el codificador puede tomar la decisión de suavizado mediante probar el coste de distorsión de velocidad (RD) para todos los modos de intra-predicción potenciales.
Como se muestra en la figura 11, la última versión de JEM (JEM-7.2) tiene algunos modos que corresponden a direcciones de intra-predicción sesgadas. Para cualquiera de estos modos, predecir muestras dentro de una interpolación de bloque de un conjunto de muestras de referencia vecinas se debe realizar si una posición correspondiente dentro de un lado de bloque es fraccionaria. HEVC y VVC utilizan interpolación lineal entre dos muestras de referencia adyacentes. JEM utiliza filtros de interpolación de 4 derivaciones más sofisticados. Los coeficientes de filtro se seleccionan para ser ya sea gaussianos o cúbicos dependiendo de los valores de anchura o de altura. Una decisión sobre si utilizar anchura o altura se armoniza con la decisión sobre la selección de lado de referencia principal: cuando el modo de intra-predicción es mayor o igual al modo diagonal, el lado superior de las muestras de referencia se selecciona para ser el lado de referencia principal y el valor de anchura se selecciona para determinar el filtro de interpolación en uso. De lo contrario, la referencia de lado principal se selecciona desde el lado izquierdo del bloque y la altura controla el proceso de selección de filtro. Específicamente, si la longitud lateral seleccionada es menor que o igual a 8 muestras, se aplican 4 derivaciones de interpolación cúbica. De lo contrario, el filtro de interpolación es uno gaussiano de 4 derivaciones.
Un ejemplo de selección de filtro de interpolación para modos menores y mayores que el diagonal (denotado como 45°) en el caso de bloque de 32x4 se muestra en la figura 12.
En VVC, se utiliza un mecanismo de división basado en árbol cuaternario y árbol binario y conocido como QTBT. Como se representa en la figura 13, la división de QTBT puede proporcionar no solo bloques cuadrados sino también rectangulares. Por supuesto, alguna sobrecarga de señalización y una complejidad computacional incrementada en el lado de codificador son el precio de la división de QTBT comparada con la división basada en árboles cuaternarios convencional utilizada en el estándar HEVC/H.265. Sin embargo, la división basada en QTBT está equipada con mejores propiedades de segmentación y, por consiguiente, demuestra una eficiencia de codificación significativamente mayor que el árbol cuaternario convencional.
Sin embargo, VVC en su estado actual aplica el mismo filtro a ambos lados de las muestras de referencia (izquierdas y superiores). No importa si un bloque está orientado de manera vertical u horizontalmente, un filtro de muestras de referencia será el mismo para ambos lados de muestra de referencia.
En este documento, los términos “bloque verticalmente orientado” (“orientación vertical de un bloque”) y “bloque horizontalmente orientado” (“orientación horizontal de un bloque”) se aplican a bloques rectangulares generados por la estructura de QTBT. Estos términos tienen el mismo significado que se muestra en la figura 14.
La presente descripción da a conocer un mecanismo para seleccionar diferentes filtros de muestras de referencia a fin de considerar la orientación de un bloque. Específicamente, la anchura y la altura de un bloque se verifican de manera independiente de manera que se aplican diferentes filtros de muestras de referencia a la muestra de referencia ubicada en diferentes lados de un bloque a predecir.
En la revisión de la técnica anterior, se describió que la selección de filtro de interpolación se armoniza con la decisión sobre la selección de lado de referencia principal. Ambas de estas decisiones actualmente dependen de la comparación del modo de intra-predicción con la dirección diagonal (45 grados).
Sin embargo, se pudo observar que este diseño tiene un grave defecto para los bloques alargados. A partir de la figura 15 se pudo observar que incluso si el lado más corto se selecciona como la referencia principal utilizando criterios de comparación de modo, la mayoría de los píxeles predichos aún se derivarían de las muestras de referencia del lado más largo (mostradas como área sombreada).
La presente descripción propone utilizar una dirección alternativa para formación de umbrales de un modo de intra-predicción durante el proceso de selección de filtro de interpolación. Específicamente, las direcciones corresponden al ángulo de diagonal principal del bloque a predecir. Por ejemplo, para bloques de tamaño 32x4 y 4x32, el modo de umbral mT utilizado para determinar el filtro de muestras de referencia se define como se muestra en la figura 16.
El valor específico del ángulo de intra-predicción de umbral se podría calcular utilizando la siguiente fórmula:
= a r c t a n ^ )
<T>W
Donde W y H son la anchura y la altura de bloque, respectivamente.
Otra realización de la presente descripción es utilizar diferentes filtros de interpolación dependiendo de a qué lado pertenecen las muestras de referencia que se utilizan. Un ejemplo de esta determinación se muestra en la figura 17
Una línea recta con un ángulo que corresponde a la dirección de intra m divide un bloque predicho en dos áreas. Las muestras que pertenecen a diferentes áreas se predicen utilizando diferentes filtros de interpolación.
Los valores de ejemplo demT (para el conjunto de modos de intra-predicción definidos en BMS1.0) y losángulos correspondientes se proporcionan en la tabla 4. Los ángulos a se proporcionan como se muestra en la figura 16.
Tabla 4. Valores de ejemplo demT (para el conjunto de modos de intra-predicción definidos en BMS1.0)
Comparada con la tecnología y las soluciones existentes, la presente descripción utiliza muestras dentro de un bloque que se predicen utilizando diferentes filtros de interpolación, donde el filtro de interpolación utilizado para predecir una muestra se selecciona de acuerdo con la forma del bloque, la orientación que es horizontal o vertical, y el ángulo de modo de intra-predicción.
La presente descripción se puede aplicar en la etapa de filtrado de muestras de referencia. En particular, es posible determinar el filtro de suavizado de muestra de referencia utilizando reglas similares descritas anteriormente para el proceso de selección de filtro de interpolación.
Además del filtrado de interpolación, el filtrado de muestras de referencia también se puede aplicar a muestras de referencia inmediatamente antes de predecir muestras dentro de un intra-predictor. Las muestras de referencia filtradas obtenidas después del filtrado de muestras de referencia se pueden utilizar ya sea para copiarlas en muestras correspondientes dentro de un intra-predictor de acuerdo con una dirección seleccionada del modo de intra-predicción o para filtrado de interpolación adicional. Los siguientes filtros se pueden aplicar a las muestras de referencia de esta manera:
Tabla 5. Filtros de muestras de referencia de ejemplo
La figura 21 ilustra un bloque actual 1130, ilustrado con un cuadro en negrita circundante y que incluye muestras 1120. Además, la figura ilustra muestras de referencia 1110 de bloques vecinos. Por ejemplo, las muestras de referencia pueden ser muestras de un bloque superior o de un bloque izquierdo.
De acuerdo con una realización, el método dado a conocer incluye las siguientes etapas:
1. cada modo de intra-predicción direccional seleccionado se clasifica en uno de los siguientes grupos:
A. modos verticales u horizontales,
B. modos diagonales que representan ángulos que son múltiplos de 45 grados,
C. modos direccionales restantes;
2. si el modo de intra-predicción direccional se clasifica como perteneciente al grupo A, entonces no se aplican filtros a las muestras de referencia 1110 para generar muestras 1120 que pertenecen a un intra-predictor. Las muestras de referencia 1110 se separan de las muestras 1120 dentro de un bloque a predecir (intra-predictor) con límites de bloque 1130 como se muestra en la figura 11;
3. si un modo cae en el grupo B, entonces se aplica un filtro de muestras de referencia (cualquiera del filtro de muestras de referencia mostrado en la tabla 5, por ejemplo, [1, 2, 1]) a las muestras de referencia para copiar adicionalmente estos valores filtrados en un intra-predictor de acuerdo con la dirección seleccionada, pero no se aplican filtros de interpolación;
4. si un modo se clasifica como perteneciente al grupo C, entonces sólo se aplica un filtro de interpolación de muestras de referencia intra (por ejemplo, filtros presentados en la tabla 3) a las muestras de referencia para generar una muestra predicha que cae en una posición fraccionaria o de número entero entre muestras de referencia de acuerdo con una dirección seleccionada (no se realiza filtrado de muestras de referencia). De acuerdo con una realización, el método dado a conocer proporciona las siguientes etapas:
1. El modo de intra-predicción direccional para el procesamiento de intra-predicción de un bloque actual se clasifica en uno de los siguientes grupos:
A. Modos verticales u horizontales
B. Modos direccionales que incluyen modos diagonales que representan ángulos que son múltiplos de 45 grados,
C. Modos direccionales restantes.
2. Si el modo de intra-predicción direccional se clasifica como perteneciente al grupo B, se aplica un filtro de muestras de referencia a las muestras de referencia;
3. Si el modo de intra-predicción direccional se clasifica como que pertenece al grupo C, se aplica un filtro de interpolación de muestras de referencia intra a las muestras de referencia.
En otras palabras, dependiendo de la clasificación del modo de intra-predicción que se va a utilizar para la intra-predicción de un bloque actual, se aplica una muestra de referencia (clasificación B) o bien se aplica un filtro de interpolación de muestras de referencia (clasificación C).
En particular, de acuerdo con la realización, se aplica un filtro de muestras o bien un filtro de interpolación de muestras. En particular, no se aplica ningún filtro de interpolación en un caso donde el filtro de muestras de referencia de acuerdo con un modo de intra-predicción direccional no es una muestra fraccionaria. En otras palabras, en un caso donde la muestra de referencia de acuerdo con la dirección de predicción cae en una muestra de número entero, no se tiene que utilizar ningún filtro de interpolación.
Además, en función de la clasificación, no se puede utilizar ningún filtro en absoluto. Por ejemplo, en un caso de clasificación A del modo de intra-predicción que se va a utilizar para la intra-predicción del bloque actual, no se puede utilizar un filtro de muestras de referencia ni un filtro de interpolación de muestras de referencia.
Las muestras predichas se pueden obtener de las líneas izquierda y superior de muestras de referencia, como se ilustra en la figura 21. Dependiendo del modo de intra-predicción, para cada una de la muestra predicha, se determina una posición correspondiente de muestra de referencia. Si el modo tiene una inclinación no de número entero, la posición de la muestra de referencia es fraccionaria y el valor de muestra de referencia se obtiene aplicando un filtro de interpolación al subconjunto de muestras de referencia que es adyacente a esta posición fraccionaria.
La posición de esta muestra de referencia dentro de una línea de muestras de referencia tiene un desfase horizontal (cuando el modo de intra-predicción es mayor que DIA_IDX) o vertical (cuando el modo de intrapredicción es menor que DIA-IDX) con respecto a la posición de muestra predicha. El valor de este desfase depende del ángulo del modo y de la distancia desde la muestra predicha hasta la línea de muestras de referencia. Cuando el modo de intra-predicción es 2 o VDIA_IDX, el ángulo de predicción es igual a 45 grados, y el valor del desfase es igual al valor de la distancia a la línea de muestras de referencia.
Los modos diagonales del grupo B también pueden comprender modos de ángulo ancho de inclinación de número entero. En este caso, de manera similar a los modos DIA_IDX y VDIA_IDX, el valor del desfase es un múltiplo de la distancia a la línea de muestras de referencia, y las posiciones de muestra de referencia para cada muestra predicha no son fraccionarias.
Por ejemplo, cuando no se utiliza predicción de línea de múltiples referencias (el índice de línea de referencia es igual a cero) y la posición de una muestra predicha dentro de un bloque es igual a (1,3) en relación con la muestra predicha superior izquierda que tiene la posición (0, 0), la distancia a las líneas de muestra de referencia es igual a 4 muestras cuando el modo de intra-predicción es mayor que DIA_IDX. Cuando el modo de intra-predicción es menor que DIA_IDX, esta distancia es igual a 2.
Cuando el modo de intra-predicción es un modo angular amplio y su inclinación es un número entero, el valor de la muestra predicha se puede calcular como:
predSamples[x,y]=p[ x A] [ -1],
A=N * (y+1)
cuando el modo de intra-predicción es mayor que DIA_IDX, por el contrario,
predSamples[x,y]=p[-1][ y A],
A = N * (x+1) .
Aquí, A denota el valor del desfase.
El valor N para los modos 2 de ángulo de 45 y VDIA_IDX es igual a 1.
Los modos que representan ángulos que son un múltiplo de 45 grados utilizarían las mismas expresiones para determinar muestras predichas "predSamples[x][y]”, pero el valor de N sería mayor que 1 y número entero. Se debe observar que los modos que representan ángulos que son múltiplos de 45 grados no necesariamente incluyen los modos horizontal y vertical.
Se pudo observar que el valor de desfase A para los modos de inclinación de número entero de ángulo amplio es un múltiplo del desfase para el modo 2 y el modo VDIA_IDX,
Generalmente, el valor del desfase se puede mapear al modo de intra-predicción (predModeIntra) utilizando un parámetro “intraPredAngle”. Un mapeo específico de este parámetro al modo de intra-predicción se muestra en la tabla 6 a continuación:
El parámetro de ángulo inverso invAngle se deriva en base a intraPredAngle, como sigue:
invAngle = redondeará intra 2P5r6e*d3A2ngle )
A continuación se describe una derivación de ejemplo de muestras predichas:
Los valores de las muestras de predicción predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1 se derivan como sigue:
Si predModeIntra es mayor que o igual a 34, se aplican las siguientes etapas ordenadas:
1. La matriz de muestras de referencia ref[ x ] se especifica como sigue:
- Se aplica lo siguiente:
ref[ x ] = p[ -1 - refIdx x ][ -1 - refIdx ], con x = 0..nTbW refIdx
- Si intraPredAngle es menor que 0, la matriz de muestras de referencia principal se extiende como sigue: - Cuando ( nTbH * intraPredAngle ) >> 5 es menor que -1,
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx ( ( x * invAngle 128 ) >> 8 ) ],
con x = -1..( nTbH * intraPredAngle ) >> 5
ref[ ( ( nTbH * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbH * intraPredAngle ) >> 5 ]
ref[ nTbW 1 refIdx ] = ref[ nTbW refIdx ]
- De lo contario,
ref[ x ] = p[ -1 - refIdx x ][ -1 - refIdx ], con x = nTbW 1 refIdx..refW refIdx
ref[ -1 ] = ref[ 0 ]
- Las muestras adicionales ref[ refW refIdx x ] con x = 1.. ( Max( 1, nTbW / nTbH ) * refIdx 1) se derivan como sigue:
ref[ refW refIdx x ] = p[ -1 refW ][ -1 - refIdx ]
2. Los valores de las muestras de predicción predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1 se derivan como sigue:
- La variable de índice iIdx y el factor de multiplicación iFact se derivan como sigue:
iIdx = ( ( y 1 refIdx ) * intraPredAngle ) >> 5 refIdx
iFact = ( ( y 1 refIdx ) * intraPredAngle ) & 31
- Si cIdx es igual a 0, se aplica lo siguiente:
- Los coeficientes de filtro de interpolación fT[ j ] con j = 0..3 se derivan como sigue:
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]
- El valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue:
2 f =0ÍT[ i ] * r e f [ x ildx i]
predSamplesj x ][ y ] = Clip1Y( ( ( ) 32 ) » 6 )
- De lo contrario (cIdx no es igual a 0), dependiendo del valor de iFact, se aplica lo siguiente:
- Si iFact no es igual a 0, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ]= ( ( 32 - iFact ) * ref[ x ildx 1 ] iFact * ref[ x ildx 2 ] 16 ) >> 5
- De lo contrario, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] = ref[ x iIdx 1 ]
- De lo contrario (predModeIntra es menor que 34), se aplican las siguientes etapas ordenadas:
3. La matriz de muestras de referencia ref[ x ] se especifica como sigue:
- Se aplica lo siguiente:
ref[ x ] = p[ -1 - refldx ][ -1 - refldx x ], con x = 0..nTbH refldx
- Si intraPredAngle es menor que 0, la matriz de muestras de referencia principal se extiende como sigue: - Cuando ( nTbW * intraPredAngle ) >> 5 es menor que -1,
ref[ x ] = p[ -1 - refIdx ( ( x * invAngle 128 ) >> 8 ) ][ -1 - refIdx ],
con x = -1..( nTbW * intraPredAngle ) >> 5
ref[ ( ( nTbW * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbW * intraPredAngle ) >> 5 ]
ref[ nTbG 1 refIdx ] = ref[ nTbH refIdx ]
- De lo contario,
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx x ], con x = nTbH 1 refIdx..refH refIdx
ref[ -1 ] = ref[ 0 ]
- Las muestras adicionales ref[ refH refIdx x ] con x = 1..( Max( 1, nTbW / nTbH ) * refIdx 1) se derivan como sigue:
ref[ refH refIdx x ] = p[ -1 refH ][ -1 - refIdx ]
4. Los valores de las muestras de predicción predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1 se derivan como sigue:
- La variable de índice iIdx y el factor de multiplicación iFact se derivan como sigue:
iIdx = ( ( x 1 refIdx ) * intraPredAngle ) >> 5
iFact = ( ( x 1 refIdx ) * intraPredAngle ) & 31
- Si cIdx es igual a 0, se aplica lo siguiente:
- Los coeficientes de filtro de interpolación fT[ j ] con j = 0..3 se derivan como sigue:
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]
- El valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue:
£ ¡ = o f T [ i ] * ™ f I y n d x i ]
predSamples[ x ][ y ] = Clip1Y( ( ( ) 32 ) » 6 )
- De lo contrario (cIdx no es igual a 0), dependiendo del valor de iFact, se aplica lo siguiente:
- Si iFact no es igual a 0, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] =
( ( 32 - iFact ) * ref[ y iIdx 1 ] iFact * ref[ y iIdx 2 ] 16 ) >> 5
- De lo contrario, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] = ref[ y iIdx 1 ]
A partir del ejemplo anterior y la tabla anterior, se puede observar que la invocación de interpolación para algunos de los modos es redundante. Específicamente, esto se presenta para los modos que tienen un parámetro intraPredAngle correspondiente que es un múltiplo de 32. El valor 32 corresponde a un modo con inclinación de número entero de 45 grados. De hecho, el valor de predAngle es una representación de número entero de punto fijo de 5 bits para el valor de desfase que se utilizaría para muestras predichas adyacentes a la línea de muestras de referencia.
Específicamente, para los modos [-14, -12, -10, -6, 2, 34, 66, 72, 76, 78, 80], el cálculo de muestras predichas no requiere interpolación. Los valores de muestras predichas se pueden obtener copiando muestras de referencia.
Una versión de una especificación de borrador de VVC que incorpora una implementación de ejemplo de una realización de la descripción se proporciona en el texto a continuación:
8.4.4.2.1 Predicción de muestra de intra general
Las entradas para este proceso son:
- una ubicación de muestra ( xTbCmp, yTbCmp ) que especifica la muestra superior izquierda del bloque de transformada actual en relación con la muestra superior izquierda de la imagen actual,
- una variable predModeIntra que especifica el modo de intra-predicción,
- una variable nTbW que especifica la anchura de bloque de transformada,
- una variable nTbH que especifica la altura de bloque de transformada,
- una variable nCbW que especifica la anchura del bloque de codificación,
- una variable nCbH que especifica la altura del bloque de codificación,
- una variable cIdx que especifica el componente de color del bloque actual.
Las salidas de este proceso son las muestras predichas predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1.
Las variables refW y refH se derivan como sigue:
- Si IntraSubPartitionsSplitType es igual a ISP_NO_SPLIT o cIdx no es igual a 0, se aplica lo siguiente: refW = nTbW * 2 (8-103) refH = nTbH * 2 (8-104) - De lo contrario (IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 ), se aplica lo siguiente:
refW = nCbW * 2 (8-105) refH = nCbH * 2 (8-106) La variable refIdx que especifica el índice de línea de referencia de intra-predicción se deriva como sigue: refIdx = ( cIdx = = 0 ) ? IntraLumaRefLineIdx[ xTbCmp ][ yTbCmp ] : 0 (8-107) Para la generación de las muestras de referencia p[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx, se aplican las siguientes etapas ordenadas:
1. El proceso de marcado de disponibilidad de muestra de referencia que se especifica en la cláusula 8.4.4.2.2 de Brass B et al.: “Versatile Cideo Coding (Draft 4)”, JVET-M1001-v7, marzo de 2019, (en lo siguiente, este documento se denomina JVET-M1001-v7) se invoca con la ubicación de muestra ( xTbCmp, yTbCmp ), el índice de línea de referencia de intra-predicción refIdx, la anchura de muestra de referencia refW, la altura de muestra de referencia refH, el índice de componente de color cIdx como entradas, y las muestras de referencia refUnfilt[ x ][ y ] con x = -1 - refldx, y = -1 - refIdx..refH - 1 y x = - refIdx..refW - 1, y = -1 - refldx como salida.
2. Cuando al menos una muestra refUnfilt[ x ][ y ] con x = -1 - refldx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refldx está marcada como "no disponible para intra-predicción", un proceso de sustitución de muestra de referencia que se especifica en la cláusula 8.4.4.2.3 de JVET-M1001-v7 se invoca con el índice de línea de referencia de intra-predicción refIdx, la anchura de muestra de referencia refW, la altura de muestra de referencia refH, las muestras de referencia refUnfilt[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx, y el índice de componente de color cIdx como entradas, y las muestras de referencia modificadas refUnfilt[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx como salida.
3. Si predModeIntra es igual a INTRA_CC, RefFilterFlag se ajusta igual a 0. De lo contrario, el parámetro intraPredAngle, RefFilterFlag e InterpolationFlag se obtienen invocando el parámetro intraPredAngle correspondiente y el proceso de derivación de indicadores de filtro especificado en la cláusula 8.4.4.2.7 a continuación, con el modo de intra-predicción predModeIntra, el índice de línea de referencia de intra-predicción refIdx, la anchura de bloque de transformada nTbW, la altura de bloque de transformada nTbH, la anchura nCbW y la altura nCbH del bloque de codificación, y el índice de componente de color cIdx.
4. El proceso de filtrado de muestras de referencia que se especifica en la cláusula 8.4.4.2.4 a continuación, se invoca con el índice de línea de referencia de intra-predicción refIdx, la anchura nTbW y la altura nTbH de bloque de transformada, la anchura de muestra de referencia refW, la altura de muestra de referencia refH, las muestras no filtradas refUnfilt[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx, el parámetro RefFilterFlag y el índice de componente de color cIdx como entradas, y las muestras de referencia p[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx como salida.
El proceso de predicción de muestra de intra de acuerdo con predModeIntra se aplica como sigue:
- Si predModeIntra es igual a INTRA_PLANAR, se invoca el proceso de modo de intra-predicción correspondiente especificado en la cláusula 8.4.4.2.5 de JVET-M1001-v7 con la anchura de bloque de transformada nTbW, y la altura de bloque de transformada nTbH, y la matriz de muestras de referencia p como entradas, y la salida es la matriz de muestras predicha predSamples.
- De lo contario, si predModeIntra es igual a INTRA_CC, se invoca el proceso de modo de intra-predicción correspondiente especificado en la cláusula 8.4.4.2.6 de JVET-M1001-v7 con la anchura de bloque de transformada nTbW, la altura de bloque de transformada nTbH, y la matriz de muestras de referencia p como entradas, y la salida es la matriz de muestras predicha predSamples.
- De lo contrario, si predModeIntra es igual a INTRA_LT_CCLM, INTRA_L_CCLM o INTRA_T_CCLM, el proceso de modo de intra-predicción correspondiente especificado en la cláusula 8.4.4.2.8 se invoca con el modo de intra-predicción predModeIntra, la ubicación de muestra ( xTbC, yTbC ) ajustada igual a ( xTbCmp, yTbCmp ), la anchura nTbW y la altura nTbH de bloque de transformada, y la matriz de muestras de referencia p como entradas, y la salida es la matriz de muestras predicha predSamples.
- De lo contrario, el proceso de modo de intra-predicción correspondiente especificado en la cláusula 8.4.4.2.8 a continuación, se invoca con el modo de intra-predicción predModeIntra, el índice de línea de referencia de intra-predicción refIdx, la anchura de bloque de transformada nTbW, la altura de bloque de transformada nTbH, la anchura de muestra de referencia refW, la altura de muestra de referencia refH, la anchura nCbW y la altura nCbH del bloque de codificación, el indicador de selección de filtro de interpolación InterpolationFlag, el indicador de filtro de referencia RefFilterFlag y la matriz de muestras de referencia p como entradas, y el modo de intra-predicción modificado predModeIntra y la matriz de muestras predicha predSamples como salidas.
Cuando todas las siguientes condiciones son verdaderas, el proceso de filtrado de muestras de predicción dependiente de la posición especificado en la cláusula 8.4.4.2.9 de JVET-M1001-v7 se invoca con el modo de intra-predicción predModeIntra, la anchura de bloque de transformada nTbW, la altura de bloque de transformada nTbH, las muestras predichas predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1, la anchura de muestra de referencia refW, la altura de muestra de referencia refH, las muestras de referencia p[ x ][ y ], con x = -1, y = -1..refH - 1 y x = 0..refW - 1, y = -1, y el índice de componente de color cIdx como entradas, y la salida es la matriz de muestras predicha modificado predSamples:
- IntraSubPartitionsSplitType es igual a ISP_NO_SPLIT o cIdx no es igual a 0
- refIdx es igual a 0 o cIdx no es igual a 0
- Una de las siguientes condiciones es verdadera:
- predModeIntra es igual a INTRA_PLANAR
- predModeIntra es igual a INTRA_CC
- predModeIntra es igual a INTRA_ANGULAR18
- predModeIntra es igual a INTRA_ANGULAR50
- p redModeIntra es menor que o igual a INTRA_ANGULAR10
- predModeIntra es mayor que o igual a INTRA_ANGULAR58
8.4.4.2.4 Proceso de filtrado de muestras de referencia
Las entradas para este proceso son:
- una variable refIdx que especifica el índice de línea de referencia de intra-predicción,
- una variable nTbW que especifica la anchura de bloque de transformada,
- una variable nTbH que especifica la altura de bloque de transformada,
- una variable refW que especifica la anchura de muestras de referencia,
- una variable refH que especifica la altura de muestras de referencia,
- las muestras vecinas (no filtradas) refUnfilt[ x ][ y ], con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx,
- Parámetro RefFilterFlag
Las salidas de este proceso son las muestras de referencia p[ x ][ y ], con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx.
Para la derivación de las muestras de referencia p[ x ][ y ], se aplica lo siguiente:
- Si RefFilterFlag es igual a 1, los valores de muestra filtrada p[ x ][ y ] con x = -1, y = -1..refH - 1 y x = 0..refW - 1, y = -1 se derivan como sigue:
p[ -1 ][ -1 ] = ( refUnfilt[ -1 ][ 0 ] 2 * refUnfilt[ -1 ][ -1 ] refUnfilt[ 0 ][ -1 ] 2 ) >> 2 (8-111) p[ -1 ][ y ] = ( refUnfilt[ - refUnfilt[ -1 ][ y ] refUnfilt[ -1 ][ y - 1 ] para y = 0..refH - 2 (8-112) p[ -1 ][ refH - 1 ] = refUnfilt[ -1 ][ refH - 1 ] (8-113) p[ x ][ -1 ] = ( refUnfilt[ x - 1 ][ -1 ] 2 * refUnfilt[ x ][ -1 ] refUnfilt[ x 1 ][ -1 ] 2 ) >> 2
para x = 0..refW - 2 (8-114) p[ refW - 1 ][ -1 ] = refUnfilt[ refW - 1 ][ -1 ] (8-115)
- De lo contrario, los valores de muestras de referencia p[ x ][ y ] se ajustan igual a los valores de muestra no filtrada refUnfilt[ x ][ y ] con x = - 1 - refIdx, y = - 1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = - 1 - refIdx.
8.4.4.2.7 Especificación del parámetro intraPredAngle y derivación de indicadores de filtro
Las entradas para este proceso son:
- el modo de intra-predicción predModeIntra,
- una variable nTbW que especifica la anchura de bloque de transformada,
- una variable nTbH que especifica la altura de bloque de transformada,
- una variable nCbW que especifica la anchura del bloque de codificación,
- una variable nCbH que especifica la altura del bloque de codificación,
- un índice de componente de color cIdx
Las salidas de este proceso son el modo de intra-predicción modificado predModeIntra, el parámetro intraPredAngle y las variables RefFilterFlag e InterpolationFlag.
Las variables nW y nH se derivan como sigue:
- Si IntraSubPartitionsSplitType es igual a ISP_NO_SPLIT o cIdx no es igual a 0, se aplica lo siguiente: nW = nTbW
nH = nTbH
- De lo contrario (IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 ), se aplica lo siguiente:
nW = nCbW
nH = nCbH
La variable whRatio se ajusta igual a Abs( Log2( nW / nH ) ).
Para bloques no cuadrados (nW no es igual a nH), el modo de intra-predicción predModeIntra se modifica como sigue:
- Si todas las siguientes condiciones son verdaderas, predModeIntra se ajusta igual a ( predModeIntra 65 ). - nW es mayor que nH
- predModeIntra es mayor que o igual a 2
- predModeIntra es menor que ( whRatio > 1 ) ? ( 8 2 * whRatio ) : 8
- De lo contrario, si todas las siguientes condiciones son verdaderas, predModeIntra se ajusta igual a ( predModeIntra - 67 ).
- nH es mayor que nW
- predModeIntra es menor que o igual a 66
- predModeIntra es mayor que ( whRatio > 1 ) ? ( 60 - 2 * whRatio ) : 60
El parámetro de ángulo intraPredAngle se determina como se especifica en la tabla 7 utilizando el valor predModeIntra.
La variable filterFlag se deriva como sigue:
- Si una o más de las siguientes condiciones son verdaderas, filterFlag se ajusta igual a 0.
- cIdx no es igual a 0
- refIdx no es igual a 0
- IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 y predModeIntra es mayor que o igual a INTRA_ANg Ul a R34 y nW es mayor que 8
- IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 y predModeIntra es menor que INTRA_ANGULAR34 y nH es mayor que 8.
- De lo contrario, si predModeIntra es INTRA_PLANAR, la variable filterFlag se ajusta igual a nTbS>5?1: 0 - De lo contrario, si intraPredAngle es mayor que 32, la variable filterFlag se ajusta igual a 1
- De lo contrario, se aplica lo siguiente:
- La variable minDistVerHor se ajusta igual a Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 )). - La variable intraHorVerDistThres[ nTbS ] se especifica en la tabla 8.
- La variable filterFlag se deriva como sigue:
- Si minDistVerHor es mayor que intraHorVerDistThres[ nTbS ] o Abs (intraPredAngle)>32, filterFlag se ajusta igual a 1.
Tabla 8 - Especificación de intraHorVerDistThres[ nTbS ] para varios tamaños de bloque de transformada nTbS
Las variables de salida RefFilterFlag e InterpolationFlag se derivan como sigue:
- Si predModeIntra es INTRA_PLANAR o predIntraAng es un múltiplo de número entero de 32, la variable RefFilterFlag se ajusta igual a filterFlag, InterpolationFlag se ajusta igual a 0,
- De lo contrario, la variable RefFilterFlag se ajusta igual a 0, InterpolationFlag se ajusta igual a filterFlag. Informativo: RefFilterFlag e InterpolationFlag nunca serán iguales a 1 para cualquier predModeIntra, ver tabla 9):
Tabla 9 - Especificación de RefFilterFlag e InterpolationFlag (informativo)
8.4.4.2.8 Especificación de modos de intra-predicción angular
Las entradas para este proceso son:
- Modo de intra-predicción predModeIntra,
- el parámetro intraPredAngle,'
- una variable refldx que especifica el índice de línea de referencia de intra-predicción,
- una variable nTbW que especifica la anchura de bloque de transformada,
- una variable nTbH que especifica la altura de bloque de transformada,
- una variable refW que especifica la anchura de muestras de referencia,
- una variable refH que especifica la altura de muestras de referencia,
- una variable nCbW que especifica la anchura del bloque de codificación,
- una variable nCbH que especifica la altura del bloque de codificación,
- una variable InterpolationFlag que especifica el uso de interpolación de filtro de 4 derivaciones,
- una variable RefFilterFlag que especifica si las muestras vecinas se filtran
- las muestras vecinas p[ x ][ y ], con x = - 1 - refldx, y = - 1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = - 1 -refldx.
Las salidas de este proceso son el modo de intra-predicción modificado predModeIntra y las muestras predichas predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1.
La variable nTbS se ajusta igual a ( Log2 ( nTbW ) Log2 ( nTbH ) ) >> 1
La figura 18 ilustra las 93 direcciones de predicción, donde las direcciones discontinuas están asociadas con los modos de ángulo amplio que sólo se aplican a bloques no cuadrados.
El parámetro de ángulo inverso invAngle se deriva en base a intraPredAngle, como sigue:
/ 256* 32 \
VintraPredAngle/
invAngle = redondear
Los coeficientes de filtro de interpolación fC[ fase ][ j ] y fG[ fase ][ j ] con fase = 0..31 y j = 0..3 se especifican en la tabla 10.
Tabla 10 - Especificación de coeficientes de filtro de interpolación fC y fG
Los valores de las muestras de predicción predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1 se derivan como sigue:
- Si predModeIntra es mayor que o igual a 34, se aplican las siguientes etapas ordenadas:
1. La matriz de muestras de referencia ref[ x ] se especifica como sigue:
- Se aplica lo siguiente:
ref[ x ] = p[ -1 - refIdx x ][ -1 - refIdx ], con x = 0..nTbW refIdx
- Si intraPredAngle es menor que 0, la matriz de muestras de referencia principal se extiende como sigue: - Cuando ( nTbH * intraPredAngle ) >> 5 es menor que -1,
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx ( ( x * invAngle 128 ) >> 8 ) ],
con x = -1..( nTbH * intraPredAngle ) >> 5
ref[ ( ( nTbH * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbH * intraPredAngle ) >> 5 ]
ref[ nTbW 1 refIdx ] = ref[ nTbW refIdx ]
- De lo contario,
ref[ x ] = p[ -1 - refldx x ][ -1 - refldx ], con x = nTbW 1 refIdx..refW refldx
ref[ -1 ] = ref[ 0 ]
- Las muestras adicionales ref[ refW refldx x ] con x = 1..( Max( 1, nTbW / nTbH ) * refldx 1) se derivan como sigue:
ref[ refW refldx x ] = p[ -1 refW ][ -1 - refldx ]
2. Los valores de las muestras de predicción predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1 se derivan como sigue:
- La variable de índice iIdx y el factor de multiplicación iFact se derivan como sigue:
iIdx = ( ( y 1 refIdx ) * intraPredAngle ) >> 5 refIdx
iFact = ( ( y 1 refIdx ) * intraPredAngle ) & 31
- Si RefFilterFlag es igual a 0, se aplica lo siguiente:
- Los coeficientes de filtro de interpolación fT[ j ] con j = 0..3 se derivan como sigue:
fT[ j ] = InterpolationFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]
- El valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue:
<predSamples[ x ] [ y ] = C lip l Y ( ( ( I f U f F [ i J * r e f [ x ild x i I )>32<) »>6<)>
- De lo contrario (RefFilterFlag no es igual a 0), dependiendo del valor de iFact, se aplica lo siguiente:
- Si iFact no es igual a 0, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] =
((32 - iFact )*ref[ x ildx 1 ] iFact * ref[ x ildx 2]+16) >> 5
- De lo contrario, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] = ref[ x iIdx 1 ]
- De lo contrario (predModeIntra es menor que 34), se aplican las siguientes etapas ordenadas:
1. La matriz de muestras de referencia ref[ x ] se especifica como sigue:
- Se aplica lo siguiente:
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx x ], con x = 0..nTbH refIdx
- Si intraPredAngle es menor que 0, la matriz de muestras de referencia principal se extiende como sigue: - Cuando ( nTbW * intraPredAngle ) >> 5 es menor que -1,
ref[ x ] = p[ -1 - refIdx ( ( x * invAngle 128 ) >> 8 ) ][ -1 - refIdx ],
con x = -1..( nTbW * intraPredAngle ) >> 5
ref[ ( ( nTbW * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbW * intraPredAngle ) >> 5 ]
ref[ nTbG 1 refIdx ] = ref[ nTbH refIdx ]
- De lo contario,
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx x ], con x = nTbH 1 refIdx..refH refIdx
ref[ -1 ] = ref[ 0 ]
- Las muestras adicionales ref[ refH refldx x ] con x = 1..( Max( 1, nTbW / nTbH ) * refldx 1) se derivan como sigue:
ref[ refH refIdx x ] = p[ -1 refH ][ -1 - refldx ]
2. Los valores de las muestras de predicción predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1 se derivan como sigue:
- La variable de índice iIdx y el factor de multiplicación iFact se derivan como sigue:
iIdx = ( ( x 1 refIdx ) * intraPredAngle ) >> 5
iFact = ( ( x 1 refIdx ) * intraPredAngle ) & 31
- Si RefFilterFlag es igual a 0, se aplica lo siguiente:
- Los coeficientes de filtro de interpolación fT[ j ] con j = 0..3 se derivan como sigue:
fT[ j ] = InterpolationFlag? fG[ iFact ][ j ] : fC[ iFact ][ j ]
- El valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue:
predSamples[ x ] [ y ] = Clipl Y( ( ( I^U íT I i ] * ref[x ildx i ] ) 32 ) » 6 )
- De lo contrario (RefFilterFlag no es igual a 0), dependiendo del valor de iFact, se aplica lo siguiente:
- Si iFact no es igual a 0, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] =
( ( 32 - iFact ) * ref[ y iIdx 1 ] iFact * ref[ y iIdx 2 ] 16 ) >> 5
- De lo contrario, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] = ref[ y iIdx 1 ]
Basándose en el tamaño del bloque predicho, los modos de ángulo amplio pueden caer en diferentes grupos. En el ejemplo dado a continuación, estos modos todavía pertenecerían al grupo “B” o al grupo "C” dependiendo de si tienen una pendiente no fraccionaria. Sin embargo, la selección del filtro de interpolación para los modos del grupo “C” y la presencia de la etapa de filtrado de muestras de referencia para los modos de grupo “B” dependería del tamaño del bloque. La parte de la derivación de filterFlag se puede modificar como sigue: La variable filterFlag se deriva como sigue:
- Si una o más de las siguientes condiciones son verdaderas, filterFlag se ajusta igual a 0.
- cIdx no es igual a 0
- refIdx no es igual a 0
- IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 y predModeIntra es mayor que o igual a INTRA_ANg Ul a R34 y nW es mayor que 8
- IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 y predModeIntra es menor que INTRA_ANGULAR34 y nH es mayor que 8.
- De lo contrario, si predModeIntra es INTRA_PLANAR, la variable filterFlag se ajusta igual a nTbS>5?1:0 - De lo contrario, si intraPredAngle es mayor que 32 y nTbW * nTbH es mayor que 32, la variable filterFlag se ajusta igual a 1
- De lo contrario, se aplica lo siguiente:
- La variable minDistVerHor se ajusta igual a Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 )).
- La variable intraHorVerDistThres[ nTbS ] se especifica en la tabla 11.
- La variable filterFlag se deriva como sigue:
- Si minDistVerHor es mayor que intraHorVerDistThres[ nTbS ] o Abs (intraPredAngle)>32, filterFlag se ajusta igual a 1.
Tabla 11 - Especificación de intraHorVerDistThres[ nTbS ] para varios tamaños de bloque de transformada nTbS
Los modos de ángulo amplio pueden ser modos que indican direcciones dentro de la parte inferior del cuadrante inferior izquierdo o la parte derecha o el cuadrante superior derecho. Específicamente, en el ejemplo ilustrado en la figura 18, los modos de ángulo amplio son los modos -14 a -1, así como los modos 67 a 80.
A continuación, se proporciona otra versión de una especificación de borrador de VVC que incorpora una implementación de ejemplo de una realización de la presente descripción que comprende la siguiente parte que se refiere al filtrado de muestras de referencia:
Para la generación de las muestras de referencia p[ x ][ y ] con x = -1 - refldx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx, se aplican las siguientes etapas ordenadas:
1. El proceso de marcado de disponibilidad de muestra de referencia que se especifica en la cláusula 8.4.4.2.2 de JVET-M1001-v7 se invoca con la ubicación de muestra ( xTbCmp, yTbCmp ), el índice de línea de referencia de intra-predicción refIdx, la anchura de muestra de referencia refW, la altura de muestra de referencia refH, el índice de componente de color cIdx como entradas, y las muestras de referencia refUnfilt[ x ][ y ] con x = -1 -refIdx, y = -1 - refIdx..refH - 1 y x = - refIdx..refW - 1, y = -1 - refIdx como salida.
2. Cuando al menos una muestra refUnfilt[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx está marcada como "no disponible para intra-predicción", el proceso de sustitución de muestra de referencia que se especifica en la cláusula 8.4.4.2.3 de JVET-M1001-v7 se invoca con el índice de línea de referencia de intra-predicción refIdx, la anchura de muestra de referencia refW, la altura de muestra de referencia refH, las muestras de referencia refUnfilt[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx, y el índice de componente de color cIdx como entradas, y las muestras de referencia modificadas refUnfilt[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx como salida si predModeIntra no es igual a INTRA_PLANAR y predModeIntra no es igual a INTRA_CC, el parámetro intraPredAngle se obtiene invocando el proceso de modo de intra-predicción correspondiente especificado en la cláusula 8.4.4.2.7 a continuación, de lo contrario, si predModeIntra es igual a INTRA_PLANAR, intraPredAngle se ajusta a 32; de lo contrario, intraPredAngle se ajusta a 0.
3. El proceso de filtrado de muestras de referencia que se especifica en la cláusula 8.4.4.2.4 a continuación, se invoca con el índice de línea de referencia de intra-predicción refIdx, la anchura nTbW y la altura nTbH de bloque de transformada, la anchura de muestra de referencia refW, la altura de muestra de referencia refH, las muestras no filtradas refUnfilt[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx, el parámetro intraPredAngle y el índice de componente de color cIdx como entradas, y las muestras de referencia p[ x ][ y ] con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx como salida.
El proceso de predicción de muestra de intra de acuerdo con predModeIntra se aplica como sigue:
- Si predModeIntra es igual a INTRA_PLANAR, se invoca el proceso de modo de intra-predicción correspondiente especificado en la cláusula 8.4.4.2.5 de JVET-M1001-v7 con la anchura de bloque de transformada nTbW, y la altura de bloque de transformada nTbH, y la matriz de muestras de referencia p como entradas, y la salida es la matriz de muestras predicha predSamples.
- De lo contario, si predModeIntra es igual a INTRA_CC, se invoca el proceso de modo de intra-predicción correspondiente especificado en la cláusula 8.4.4.2.6 de JVET-M1001-v7 con la anchura de bloque de transformada nTbW, la altura de bloque de transformada nTbH, y la matriz de muestras de referencia p como entradas, y la salida es la matriz de muestras predicha predSamples.
- De lo contrario, si predModeIntra es igual a INTRA_LT_CCLM, INTRA_L_CCLM o INTRA_T_CCLM, el proceso de modo de intra-predicción correspondiente especificado en la cláusula 8.4.4.2.8 a continuación, se invoca con el modo de intra-predicción predModeIntra, la ubicación de muestra ( xTbC, yTbC ) ajustada igual a ( xTbCmp, yTbCmp ), la anchura nTbW y la altura nTbH de bloque de transformada, y la matriz de muestras de referencia p como entradas, y la salida es la matriz de muestras predicha predSamples.
- De lo contrario, si una o más de las siguientes condiciones son verdaderas, fourTapFlag se ajusta igual a 0: - el índice de componente de color cIdx no es igual a 0
- intraPredAngle es un múltiplo de 32.
- De lo contrario, el proceso de modo de intra-predicción correspondiente especificado en la cláusula 8.4.4.2.7 a continuación, se invoca con el modo de intra-predicción predModeIntra, el índice de línea de referencia de intra-predicción refIdx, la anchura de bloque de transformada nTbW, la altura de bloque de transformada nTbH, la anchura de muestra de referencia refW, la altura de muestra de referencia refH, la anchura nCbW y la altura nCbH del bloque de codificación, fourTapFlag y la matriz de muestras de referencia p como entradas, y el modo de intra-predicción modificado predModeIntra y la matriz de muestras predicha predSamples como salidas.
8.4.4.2.4 Proceso de filtrado de muestras de referencia
Las entradas para este proceso son:
- una variable refIdx que especifica el índice de línea de referencia de intra-predicción,
- una variable nTbW que especifica la anchura de bloque de transformada,
- una variable nTbH que especifica la altura de bloque de transformada,
- una variable refW que especifica la anchura de muestras de referencia,
- una variable refH que especifica la altura de muestras de referencia,
- las muestras vecinas (no filtradas) refUnfilt[ x ][ y ], con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx,
- el parámetro predIntraAngle
- una variable cIdx que especifica el componente de color del bloque actual.
Las salidas de este proceso son las muestras de referencia p[ x ][ y ], con x = -1 - refIdx, y = -1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = -1 - refIdx.
La variable filterFlag se deriva como sigue:
- Si todas las siguientes condiciones son verdaderas, filterFlag se ajusta igual a 1:
- refIdx es igual a 0
- nTbW * nTbH es mayor que 32
- cIdx es igual a 0
- IntraSubPartitionsSplitType es igual a ISP_NO_SPLIT
- predIntraAngle no es igual a 0 y es un múltiplo de 32
- De lo contrario, filterFlag se ajusta igual a 0.
Para la derivación de las muestras de referencia p[ x ][ y ] se aplica lo siguiente:
- Si filterFlag es igual a 1, los valores de muestra filtrada p[ x ][ y ] con x = -1, y = -1..refH - 1 y x = 0..refW -1, y = -1 se derivan como sigue:
p[ -1 ][ -1 ] = ( refUnfilt[ -1 ][ 0 ] 2 * refUnfilt[ -1 ][ -1 ] refUnfilt[ 0 ][ -1 ] 2 ) >> 2 (8-111) p[ -1 ][ y ] = ( refUnfilt[ -1 ][ y 1 ] 2 * refUnfilt[ -1 ][ y ] refUnfilt[ -1 ][ y - 1 ] 2 ) >> 2
para y = 0..refH - 2 (8-112) p[ -1 ][ refH - 1 ] = refUnfilt[ -1 ][ refH - 1 ] (8-113) P[ x ][ -1 ] = ( refUnfilt[ x - 1 ][ -1 ] 2 * refUnfilt[ x ][ -1 ] refUnfilt[ x 1 ][ -1 ] 2 ) >> 2
para x = 0..refW - 2 (8-114) p[ refW - 1 ][ -1 ] = refUnfilt[ refW - 1 ][ -1 ] (8-115) - De lo contrario, los valores de muestras de referencia p[ x ][ y ] se ajustan igual a los valores de muestra no filtrada refUnfilt[ x ][ y ] con x = - 1 - refldx, y = - 1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = - 1 - refldx. 8.4.4.2.7 Especificación del parámetro intraPredAngle
Las entradas para este proceso son:
- el modo de intra-predicción predModeIntra,
- una variable nTbW que especifica la anchura de bloque de transformada,
- una variable nTbH que especifica la altura de bloque de transformada,
- una variable nCbW que especifica la anchura del bloque de codificación,
- una variable nCbH que especifica la altura del bloque de codificación,
Las salidas de este proceso son el modo de intra-predicción modificado predModeIntra, el parámetro intraPredAngle y una variable filterFlag.
Las variables nW y nH se derivan como sigue:
- Si IntraSubPartitionsSplitType es igual a ISP_NO_SPLIT o cIdx no es igual a 0, se aplica lo siguiente: nW = nTbW (8-125) nH = nTbH (8-126) - De lo contrario (IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 ), se aplica lo siguiente:
nW = nCbW (8-127) nH = nCbH (8-128) La variable whRatio se ajusta igual a Abs( Log2( nW / nH ) ).
Para bloques no cuadrados (nW no es igual a nH), el modo de intra-predicción predModeIntra se modifica como sigue:
- Si todas las siguientes condiciones son verdaderas, predModeIntra se ajusta igual a ( predModeIntra 65 ). - nW es mayor que nH
- predModeIntra es mayor que o igual a 2
- predModeIntra es menor que ( whRatio > 1 ) ? ( 8 2 * whRatio ) : 8
- De lo contrario, si todas las siguientes condiciones son verdaderas, predModeIntra se ajusta igual a ( predModeIntra - 67 ).
- nH es mayor que nW
- predModeIntra es menor que o igual a 66
- predModeIntra es mayor que ( whRatio > 1 ) ? ( 60 - 2 * whRatio ) : 60
El parámetro de ángulo intraPredAngle se determina como se especifica en la tabla 12 utilizando el valor predModeIntra.
La variable filterFlag se deriva como sigue:
- Si una o más de las siguientes condiciones son verdaderas, filterFlag se ajusta igual a 0.
- refIdx no es igual a 0
- IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 y predModeIntra es mayor que o igual a INTRA_ANg Ul a R34 y nW es mayor que 8
- IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 y predModeIntra es menor que INTRA_ANGULAR34 y nH es mayor que 8.
- De lo contrario, se aplica lo siguiente:
- La variable minDistVerHor se ajusta igual a Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 )). - La variable intraHorVerDistThres[ nTbS ] se especifica en la tabla 11.
- La variable filterFlag se deriva como sigue:
- Si minDistVerHor es mayor que intraHorVerDistThres[ nTbS ] o Abs (intraPredAngle)>32, filterFlag se ajusta igual a 1.
8.4.4.2.8 Especificación de modos de intra-predicción angular
Las entradas para este proceso son:
- Modo de intra-predicción predModeIntra,
- el parámetro intraPredAngle,
- una variable refIdx que especifica el índice de línea de referencia de intra-predicción,
- una variable nTbW que especifica la anchura de bloque de transformada,
- una variable nTbH que especifica la altura de bloque de transformada,
- una variable refW que especifica la anchura de muestras de referencia,
- una variable refH que especifica la altura de muestras de referencia,
- una variable nCbW que especifica la anchura del bloque de codificación,
- una variable nCbH que especifica la altura del bloque de codificación,
- una variable fourTapFlag que especifica el uso de interpolación de filtro de 4 derivaciones,
- una variable filterFlag
- las muestras vecinas p[ x ][ y ], con x = - 1 - refIdx, y = - 1 - refIdx..refH - 1 y x = -refIdx..refW - 1, y = - 1 -refIdx.
Las salidas de este proceso son el modo de intra-predicción modificado predModeIntra y las muestras predichas predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1.
La variable nTbS se ajusta igual a ( Log2 ( nTbW ) Log2 ( nTbH ) ) >> 1.
La variable filterFlag se deriva como sigue:
- Si una o más de las siguientes condiciones es verdadera, filterFlag se ajusta igual a 0.
- refIdx no es igual a 0
- IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 y predModeIntra es mayor que o igual a INTRA_AN<g>U<l a>R34 y nW es mayor que 8
- IntraSubPartitionsSplitType no es igual a ISP_NO_SPLIT y cIdx es igual a 0 y predModeIntra es menor que INTRA_ANGULAR34 y nH es mayor que 8.
- De lo contrario, se aplica lo siguiente:
- La variable minDistVerHor se ajusta igual a Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 )). - La variable intraHorVerDistThres[ nTbS ] se especifica en la tabla 13.
- La variable filterFlag se deriva como sigue:
- Si minDistVerHor es mayor que intraHorVerDistThres[ nTbS ] o Abs(intraPredAngle) es mayor que 32, filterFlag se ajusta igual a 1.
- De lo contrario, filterFlag se ajusta igual a 0.
Tabla 13 - Especificación de intraHorVerDistThres[ nTbS ] para varios tamaños de bloque de transformada nTbS
La figura 18 ilustra las 93 direcciones de predicción, donde las direcciones discontinuas están asociadas con los modos de ángulo amplio que sólo se aplican a bloques no cuadrados.
( ¡ntra2predAngie)El parámetro de ángulo inverso invAngle se deriva en base a intraPredAngle, como sigue: invAngle = Round (8-129)
Los coeficientes de filtro de interpolación fC[ fase ][ j ] y fG[ fase ][ j ] con fase = 0..31 y j = 0..3 se especifican en la tabla 14.
Tabla 14 - Especificación de coeficientes de filtro de interpolación fC y fG
Los valores de las muestras de predicción predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH - 1 se derivan como sigue:
- Si predModeIntra es mayor que o igual a 34, se aplican las siguientes etapas ordenadas:
1. La matriz de muestras de referencia ref[ x ] se especifica como sigue:
- Se aplica lo siguiente:
ref[ x ] = p[ -1 - refIdx x ][ -1 - refIdx ], con x = 0..nTbW refIdx (8-130) - Si intraPredAngle es menor que 0, la matriz de muestra de referencia principal se extiende como sigue: - Cuando ( nTbH * intraPredAngle ) >> 5 es menor que -1,
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx ( ( x * invAngle 128 ) >> 8 ) ],
con x = -1..( nTbH * intraPredAngle ) >> 5 (8-131) ref[ ( ( nTbH * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbH * intraPredAngle ) >> 5 ] (8-132) ref[ nTbW 1 refIdx ] = ref[ nTbW refIdx ] (8-133) - De lo contario,
ref[ x ] = p[ -1 - refIdx x ][ -1 - refIdx ], con x = nTbW 1 refIdx..refW refIdx (8-134) ref[ -1 ] = ref[ 0 ] (8-135) - Las muestras adicionales ref[ refW refldx x ] con x = 1..( Max( 1, nTbW / nTbH ) * refldx 1) se derivan como sigue:
ref[ refW refldx x ] = p[ -1 refW ][ -1 - refldx ] (8-136) 2. Los valores de las muestras de predicción predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH -1 se derivan como sigue:
- La variable de índice iIdx y el factor de multiplicación iFact se derivan como sigue:
iIdx = ( ( y 1 refIdx ) * intraPredAngle ) >> 5 refIdx (8-137) iFact = ( ( y 1 refIdx ) * intraPredAngle ) & 31 (8-138) Si fourTapFlag es igual a 1, se aplica lo siguiente:
- Los coeficientes de filtro de interpolación fT[ j ] con j = 0..3 se derivan como sigue:
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ] (8-139) - El valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue:
<predSamples[ x ][ y ] = C lip lY ( ( ( Sf=sf T [ i ]: * re f[x i ld x i J ) 32) »>6 )(8-140) De lo contrario (fourTapFlag no es igual a 1), dependiendo del valor de iFact, se aplica lo siguiente:
- Si iFact no es igual a 0, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] = ( ( 32 - iFact ) * ref[ x iIdx 1 ] iFact * ref[ x iIdx 2 ] 16 ) >> 5 (8-141) - De lo contrario, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] = ref[ x iIdx 1 ] (8-142) - De lo contrario (predModeIntra es menor que 34), se aplican los siguientes pasos ordenados:
1. La matriz de muestra de referencia ref[ x ] se especifica como sigue:
- Se aplica lo siguiente:
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx x ], con x = 0..nTbH refIdx (8-143) - Si intraPredAngle es menor que 0, la matriz de muestra de referencia principal se extiende como sigue: - Cuando ( nTbW * intraPredAngle ) >> 5 es menor que -1,
ref[ x ] = p[ -1 - refIdx ( ( x * invAngle 128 ) >> 8 ) ][ -1 - refIdx ],
con x = -1..( nTbW * intraPredAngle ) >> 5 (8-144) ref[ ( ( nTbW * intraPredAngle ) >> 5 ) - 1 ] = ref[ ( nTbW * intraPredAngle ) >> 5 ] (8-145) ref[ nTbG 1 refIdx ] = ref[ nTbH refIdx ] (8-146) - De lo contario,
ref[ x ] = p[ -1 - refIdx ][ -1 - refIdx x ], con x = nTbH 1 refIdx..refH refIdx (8-147) ref[ -1 ] = ref[ 0 ] (8-148) - Las muestras adicionales ref[ refH refIdx x ] con x = 1..( Max( 1, nTbW / nTbH ) * refIdx 1) se derivan como sigue:
ref[ refH refIdx x ] = p[ -1 refH ][ -1 - refIdx ] (8-149) 2. Los valores de las muestras de predicción predSamples[ x ][ y ], con x = 0..nTbW - 1, y = 0..nTbH -1 se derivan como sigue:
- La variable de índice iIdx y el factor de multiplicación iFact se derivan como sigue:
iIdx = ( ( x 1 refIdx ) * intraPredAngle ) >> 5 (8-150) iFact = ( ( x 1 refIdx ) * intraPredAngle ) & 31 (8-151) - Si fourTapFlag es igual a 1, se aplica lo siguiente:
- Los coeficientes de filtro de interpolación fT[ j ] con j = 0..3 se derivan como sigue:
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ] (8-152) - El valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue:
predSamples[ x ][ y ] = Clip1Y( ( ( ) ^ = o ^ 1 ] * r e f [ y i Id x 1 ] 32 ) » 6 ) (8-153)
- De lo contrario (fourTapFlag no es igual a 1), dependiendo del valor de iFact, se aplica lo siguiente:
- Si iFact no es igual a 0, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] =
( ( 32 - iFact ) * ref[ y iIdx 1 ] iFact * ref[ y iIdx 2 ] 16 ) >> 5 (8-154) - De lo contrario, el valor de las muestras de predicción predSamples[ x ][ y ] se deriva como sigue: predSamples[ x ][ y ] = ref[ y iIdx 1 ]
La figura 19 es un diagrama esquemático de un dispositivo de red 1300 (por ejemplo, dispositivo de codificación) de acuerdo con una realización de la descripción. El dispositivo de red 1300 es adecuado para implementar las realizaciones dadas a conocer, que se describen en la presente memoria. El dispositivo de red 1300 comprende puertos de entrada 1310 y unidades receptoras (Rx) 1320 para recibir datos; un procesador, unidad de lógica, o unidad central de procesamiento (CPU) 1330 para procesar los datos; unidades transmisoras (Tx) 1340 y puertos de salida 1350 para transmitir los datos; y una memoria 1360 para almacenar los datos. El dispositivo de red 1300 también puede comprender componentes de óptico a eléctrico (OE) y componentes de eléctrico a óptico (EO) acoplados a los puertos de entrada 1310, las unidades receptoras 1320, las unidades transmisoras 1340 y los puertos de salida 1350 para la salida o entrada de señales ópticas o eléctricas.
El procesador 1330 se implementa mediante hardware y software. El procesador 1330 se puede implementar como uno o más chips de CPU, núcleos (por ejemplo, como un procesador de múltiples núcleos), matrices de puertas programables en campo (FPGA), circuitos integrados de aplicación específica (ASIC), y procesadores de señal digital (DSP). El procesador 1330 está en comunicación con los puertos de entrada 1310, unidades receptoras 1320, unidades transmisoras 1340, puertos de salida 1350, y memoria 1360. El procesador 1330 comprende un módulo de codificación 1370. El módulo de codificación 1370 implementa las realizaciones dadas a conocer descritas anteriormente. Por ejemplo, el módulo de codificación 1370 implementa, procesa, prepara, o proporciona las diversas funciones de red. Por consiguiente, la inclusión del módulo de codificación 1370 proporciona una mejora sustancial a la funcionalidad del dispositivo de red 1300 y efectúa una transformación del dispositivo de red 1300 a un estado diferente. Alternativamente, el módulo de codificación 1370 se implementa como instrucciones almacenadas en la memoria 1360 y ejecutadas por el procesador 1330.
La memoria 1360 comprende uno o más discos, unidades de cinta, y unidades de estado sólido y se puede utilizar como un dispositivo de almacenamiento de datos de desbordamiento, para almacenar programas cuando estos programas se seleccionan para su ejecución, y para almacenar instrucciones y datos que se leen durante la ejecución de los programas. La memoria 1360 puede ser volátil y/o no volátil y puede ser memoria de sólo lectura (ROM), memoria de acceso aleatorio (RAM), memoria de contenido direccionable ternario (TCAM), y/o memoria de acceso aleatorio estática (SRAM).
Se da a conocer un decodificador que comprende circuitos de procesamiento configurados para llevar a cabo cualquiera de los métodos anteriores.
En la presente descripción, se da a conocer un producto de programa informático, comprendiendo el producto de programa informático un código de programa para realizar cualquiera de los métodos anteriores.
En la presente descripción, se da a conocer un decodificador para decodificar datos de video, comprendiendo el decodificador: uno o más procesadores; y un medio de almacenamiento no transitorio legible por ordenador acoplado a los procesadores y que almacena programación para su ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el decodificador para llevar a cabo cualquiera de los métodos anteriores.
Un dispositivo de red adecuado para implementar las realizaciones dadas a conocer que se describen en la presente memoria se describe en lo siguiente. El dispositivo de red comprende puertos de entrada y unidades receptoras (Rx) para recibir datos; un procesador, unidad de lógica, o unidad central de procesamiento (CPU) para procesar los datos; unidades transmisoras (Tx) y puertos de salida para transmitir los datos; y una memoria para almacenar los datos. El dispositivo de red también puede comprender componentes de óptico a eléctrico (OE) y componentes de eléctrico a óptico (EO) acoplados a los puertos de entrada, las unidades receptoras, las unidades transmisoras, y los puertos de salida para la salida o entrada de señales ópticas o eléctricas.
El procesador se implementa mediante hardware y software. El procesador se puede implementar como uno o más chips de CPU, núcleos (por ejemplo, como un procesador de múltiples núcleos), matrices de puertas programables en campo (FPGA), circuitos integrados de aplicación específica (ASIC), y procesadores de señal digital (DSP). El procesador está en comunicación con los puertos de entrada, unidades receptoras, unidades transmisoras, puertos de salida y memoria. El procesador comprende un módulo de codificación. El módulo de codificación implementa las realizaciones dadas a conocer descritas anteriormente. Por ejemplo, el módulo de codificación implementa, procesa, prepara, o proporciona las diversas funciones de red. Por consiguiente, la inclusión del módulo de codificación proporciona una mejora sustancial a la funcionalidad del dispositivo de red y efectúa una transformación del dispositivo de red a un estado diferente. Alternativamente, el módulo de codificación se implementa como instrucciones almacenadas en la memoria y ejecutadas por el procesador.
La memoria comprende uno o más discos, unidades de cinta, y unidades de estado sólido y se puede utilizar como un dispositivo de almacenamiento de datos de desbordamiento, para almacenar programas cuando estos programas se seleccionan para su ejecución, y para almacenar instrucciones y datos que se leen durante la ejecución de los programas. La memoria puede ser volátil y/o no volátil y puede ser memoria de sólo lectura (ROM), memoria de acceso aleatorio (RAM), memoria de contenido direccionable ternario (TCAM), y/o memoria de acceso aleatorio estática (SRAM).
La figura 20 es un diagrama de bloques de un aparato 1500 que se puede utilizar para implementar diversas realizaciones. El aparato 1500 puede ser el dispositivo fuente 12 que se muestra en la figura 1, o el codificador de video 20 que se muestra en la figura 2, o el dispositivo de destino 14 que se muestra en la figura 1, o el decodificador de video 30 que se muestra en la figura 3. Adicionalmente, el aparato 1500 puede alojar uno o más de los elementos descritos. En algunas realizaciones, el aparato 1500 está equipado con uno o más dispositivos de entrada/salida, tales como un altavoz, micrófono, ratón, pantalla táctil, teclado numérico, teclado, impresora, pantalla y similares. El aparato 1500 puede incluir una o más unidades centrales de procesamiento (CPU) 1510, una memoria 1520, un almacenamiento masivo 1530, un adaptador de video 1540, y una interfaz de E/S 1560 conectada a un bus. El bus es uno o más de cualquier tipo de varias arquitecturas de bus que incluyen un bus de memoria o controlador de memoria, un bus periférico, un bus de video o similares.
La CPU 1510 puede tener cualquier tipo de procesador de datos electrónico. La memoria 1520 puede tener, o ser, cualquier tipo de memoria de sistema tal como memoria de acceso aleatorio estática (SRAM), memoria de acceso aleatorio dinámica (DRAM), DRAM síncrona (SDRAM), memoria de sólo lectura (ROM), una combinación de las mismas o similares. En una realización, la memoria 1520 puede incluir ROM para uso en el arranque, y DRAM para el almacenamiento de programas y datos para uso mientras que se ejecutan programas. En las realizaciones, la memoria 1520 es no transitoria. El almacenamiento masivo 1530 incluye cualquier tipo de dispositivo de almacenamiento que almacena datos, programas, y otra información, y para hacer los datos, programas, y otra información accesibles mediante el bus. El almacenamiento masivo 1530 incluye, por ejemplo, uno o más de una unidad de estado sólido, unidad de disco duro, una unidad de disco magnético, una unidad de disco óptico o similares.
El adaptador de video 1540 y la interfaz de E/S 1560 proporcionan interfaces para acoplar dispositivos externos de entrada y salida al aparato 1500. Por ejemplo, el aparato 1100 puede proporcionar una interfaz de comando de SQL a clientes. Como se ilustra, los ejemplos de dispositivos de entrada y salida incluyen una pantalla 1590 acoplada al adaptador de video 1540 y cualquier combinación de ratón/teclado/impresora 1570 acoplada a la interfaz de E/S 1560. Otros dispositivos se pueden acoplar al aparato 1500 y se pueden utilizar más, o menos tarjetas de interfaz. Por ejemplo, una tarjeta de interfaz en serie (no mostrada) se puede utilizar para proporcionar una interfaz en serie para una impresora.
El aparato 1100 también incluye una o más interfaces de red 1550, que incluye enlaces cableados, tal como un cable Ethernet o similar, y/o enlaces inalámbricos para acceder a nodos o una o más redes 1580. La interfaz de red 1550 permite que el aparato 1500 se comunique con unidades remotas mediante las redes 1580. Por ejemplo, la interfaz de red 1550 puede proporcionar comunicación a la base de datos. En una realización, el aparato 1500 se acopla a una red de área local o una red de área amplia para procesamiento de datos y comunicaciones con dispositivos remotos, tales como otras unidades de procesamiento, Internet, instalaciones de almacenamiento remoto o similares.
Se introduce aproximación lineal de función definida a trozos a fin de calcular los valores de coeficientes de ponderación requeridos para predecir píxeles dentro de un bloque determinado. La aproximación lineal de función definida a trozos , por una parte, reduce significativamente la complejidad computacional del mecanismo de predicción ponderada por distancia comparado con el cálculo de coeficientes de ponderación directo y, por otra parte, ayuda a conseguir una precisión mayor de los valores de coeficiente de ponderación comparada con simplificaciones de la técnica anterior.
Las realizaciones se pueden aplicar a otras técnicas de intra-predicción dependientes de la posición y bidireccionales (por ejemplo, diferentes modificaciones de PDPC), así como a mecanismos que utilizan coeficientes de ponderación que dependen de la distancia de un píxel a otro para mezclar diferentes partes de una imagen (por ejemplo, algunos métodos de mezcla en el procesamiento de imágenes).
Además, las técnicas, sistemas, subsistemas y métodos descritos e ilustrados en las diversas realizaciones como discretos o separados se pueden combinar o integrar con otros sistemas, módulos, técnicas o métodos. Otros artículos mostrados o analizados como acoplados o directamente acoplados o que se comunican entre pueden estar acoplados indirectamente o comunicarse a través de alguna interfaz, dispositivo, o componente intermedio, ya sea eléctricamente, mecánicamente, o de otra manera. Otros ejemplos de cambios, sustituciones, y alteraciones se pueden determinar por un experto en la materia y se podrían realizar.
Las implementaciones de la presente materia y las operaciones descritas en esta descripción se pueden implementar en circuitos de electrónica digital, o en un software, software inalterable o hardware informático, que incluye las estructuras dadas a conocer en esta descripción y sus equivalentes estructurales, o en combinaciones de uno o más de los mismos. Las implementaciones de la presente materia descritas en esta descripción se pueden implementar como uno o más programas informáticos, es decir, uno o más módulos de instrucciones de programa informático, codificar en un medio de almacenamiento por ordenador para su ejecución mediante, o para controlar el funcionamiento de, un aparato de procesamiento de datos. Alternativa o adicionalmente, las instrucciones de programa se pueden codificar en una señal propagada generada artificialmente, por ejemplo, una señal eléctrica, óptica, o electromagnética generada por máquina que se genera para codificar información para su transmisión a un aparato receptor adecuado para su ejecución por un aparato de procesamiento de datos. Un medio de almacenamiento por ordenador, por ejemplo, el medio legible por ordenador, puede ser, o se estar incluido en, un dispositivo de almacenamiento legible por ordenador, un sustrato de almacenamiento legible por ordenador, un dispositivo o matriz de memoria de acceso aleatorio o en serie, o una combinación de uno o más de los mismos. Además, si bien un medio de almacenamiento por ordenador no es una señal propagada, un medio de almacenamiento por ordenador puede ser una fuente o destino de instrucciones de programa informático codificadas en una señal propagada generada artificialmente. El medio de almacenamiento por ordenador también puede ser, o estar incluido en, uno o más medios o componentes físicos y/o no transitorios separados (por ejemplo, múltiples CD, discos, u otros dispositivos de almacenamiento).
En algunas implementaciones, las operaciones descritas en esta descripción se pueden implementar como un servicio hospedado proporcionado en un servidor en una red informática en la nube. Por ejemplo, el medio de almacenamiento legible por ordenador se puede agrupar lógicamente y puede ser accesible dentro de una red informática en la nube. Los servidores dentro de la red informática en la nube pueden incluir una plataforma informática en la nube para proporcionar servicios basados en la nube. Los términos “nube”, “informática en la nube” y “basada en la nube” se pueden utilizar indistintamente según sea apropiado sin salirse del alcance de esta descripción. Los servicios basados en la nube pueden ser servicios hospedados que son proporcionados por servidores y distribuidos a través de una red a una plataforma de cliente para mejorar, complementar, o reemplazar aplicaciones ejecutadas localmente en un ordenador de cliente. El circuito puede utilizar servicios basados en la nube para recibir rápidamente actualizaciones de software, aplicaciones, y otros recursos que de otra manera requerirían un período de tiempo prolongado antes de que los recursos se puedan distribuir al circuito.
Un programa informático (también conocido como un programa, software, aplicación de software, secuencia de comandos, o código) puede estar escrito en cualquier forma de lenguaje de programación, incluyendo lenguajes compilados o interpretados, lenguajes declarativos o de procedimiento, y se puede desplegar en cualquier forma, incluyendo como un programa independiente o como un módulo, componente, subrutina, objeto, u otra unidad adecuada para uso en un entorno informático. Un programa informático puede, pero no tiene por qué, corresponder a un archivo en un sistema de archivos. Un programa se puede almacenar en una parte de un archivo que contiene otros programas o datos (por ejemplo, una o más secuencias de comandos almacenadas en un documento de lenguaje de marcado), en un archivo individual dedicado al programa en cuestión, o en múltiples archivos coordinados (por ejemplo, archivos que almacenan uno o más módulos, subprogramas o partes de código). Un programa informático se puede desplegar para ser ejecutado en un ordenador o en múltiples ordenadores que están localizados en un sitio o distribuidos a través de múltiples sitios e interconectados por medio de una red de comunicación.
Los procesos y flujos lógicos descritos en esta descripción se pueden llevar a cabo mediante uno o más procesadores programables que ejecutan uno o más programas informáticos para realizar acciones funcionando sobre datos de entrada y generando una salida. Los procesos y flujos lógicos también se pueden llevar a cabo por, y el aparato también se puede implementar como, circuitos de lógica de propósito especial, por ejemplo, una matriz de puertas lógicas programables en campo (FPGA) o un ASIC (circuito integrado de aplicación específica).
Los procesadores adecuados para la ejecución de un programa informático incluyen, a modo de ejemplo, microprocesadores de propósito general y especial, y cualesquiera uno o más procesadores de cualquier tipo de ordenador digital. En general, un procesador recibirá instrucciones y datos desde una memoria de sólo lectura o una memoria de acceso aleatorio, o ambas. Los elementos esenciales de un ordenador son un procesador para realizar acciones de acuerdo con instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. En general, un ordenador incluirá, o se acoplará operativamente para, recibir datos de, o transferir datos a, o ambos, uno o más dispositivos de almacenamiento masivo para almacenar datos, por ejemplo, discos magnéticos, magneto-ópticos, o discos ópticos. Sin embargo, no es necesario que un ordenador tenga tales dispositivos. Además, un ordenador puede estar integrado en otro dispositivo, por ejemplo, un teléfono móvil, un asistente digital personal (PDA), un reproductor de audio o video móvil, una consola de juegos, un receptor de Sistema de Posicionamiento Global (GPS), o un dispositivo de almacenamiento portátil (por ejemplo, una unidad flash de bus en serie universal (USB)), por nombrar solo unos pocos. Los dispositivos adecuados para almacenar instrucciones y datos de programa informático incluyen todas las formas de memoria no volátil, medios y dispositivos de memoria, incluyendo a modo de ejemplo, dispositivos de memoria de semiconductor, por ejemplo, EPROM, EEPROM, y dispositivos de memoria flash; discos magnéticos, por ejemplo, discos duros internos o discos extraíbles; discos magnetoópticos; y discos CD-ROM y DVD-ROM. El procesador y la memoria se pueden complementar mediante, o incorporar en, circuitos de lógica de propósito especial.
Si bien esta descripción contiene muchos detalles de implementación específicos, estos no se deben interpretar como limitaciones en el alcance de cualquier implementación o de lo que se puede reivindicar, sino como descripciones de características específicas para implementaciones particulares. Ciertas características que se describen en esta descripción en el contexto de implementaciones separadas también se pueden implementar en combinación en una implementación individual. A la inversa, diversas características que se describen en el contexto de una implementación individual también se pueden implementar en múltiples implementaciones por separado o en cualquier subcombinación adecuada. Por otra parte, aunque las características se pueden describir anteriormente como que actúan en ciertas combinaciones e incluso inicialmente se reivindican como tales, una o más características de una combinación reivindicada se pueden separar en algunos casos de la combinación, y la combinación reivindicada se puede dirigir a una subcombinación o variación de una subcombinación.
Del mismo modo, si bien las operaciones se ilustran en los dibujos en un orden determinado, esto no se debe entender como que se requiera que tales operaciones se lleven a cabo en el orden particular mostrado o en un orden secuencial, o que se lleven a cabo todas las operaciones ilustradas, con el fin de conseguir los resultados deseables. En ciertas circunstancias, la multitarea y el procesamiento paralelo pueden ser ventajosos. Además, la separación de diversos componentes de sistema en las implementaciones descritas anteriormente no se debe entender como que requiera esta separación en todas las implementaciones, y se debe entender que los sistemas y componentes de programa descritos pueden, en general, integrarse conjuntamente en un producto de software individual o empaquetar en múltiples productos de software.
Por consiguiente, se han descrito implementaciones particulares de la presente materia. Otras implementaciones están dentro del alcance de las siguientes reivindicaciones. En algunos casos, las acciones citadas en las reivindicaciones se pueden realizar en un orden diferente y aún conseguir resultados deseables. Además, los procesos representados en las figuras adjuntas no requieren necesariamente el orden mostrado particular, o el orden secuencial, para conseguir los resultados deseables. En ciertas implementaciones, la multitarea y el procesamiento paralelo pueden ser ventajosos.
Además, las técnicas, sistemas, subsistemas, y métodos descritos e ilustrados en las diversas realizaciones como discretos o separados se pueden combinar o integrar con otros sistemas, módulos, técnicas, o métodos sin salirse del alcance de la presente descripción. Otros artículos mostrados o analizados como acoplados o directamente acoplados o que se comunican entre sí se pueden acoplar indirectamente o comunicar a través de alguna interfaz, dispositivo, o componente intermedio, ya sea eléctricamente, mecánicamente o de otra manera. Otros ejemplos de cambios, sustituciones, y alteraciones se pueden determinar por un experto en la materia y se podrían realizar sin salirse del espíritu y alcance descritos en la presente memoria.
Definiciones de acrónimos y glosario
JEM Modelo de Exploración Conjunta (la base de códigos de software para la exploración de codificación de video futura)
JVET Equipo Conjunto de Expertos en Video
LUT Tabla de consulta
QT Árbol cuaternario
QTBT Árbol cuaternario más árbol binario
RDO Optimización de distorsión de velocidad
ROM Memoria de sólo lectura
VTM Modelo de prueba de VVC
VVC Codificación de Video Versátil, el proyecto de estandarización desarrollado por JVET. CTU/CTB Unidad de Árbol de Codificación/Bloque de Árbol de Codificación
CU/CB Unidad de Codificación/Bloque de Codificación
PU / PB Unidad de Predicción/Bloque de Predicción
TU/TB Unidad de transformada/Bloque de transformada
HEVC Codificación de video de alta eficiencia

Claims (3)

REIVINDICACIONES
1. Un procedimiento de codificación de video para realizar un procesamiento de intra-predicción de un bloque de codificación actual, donde el procedimiento comprende:
obtener un modo de intra-predicción del bloque de codificación actual;
realizar un procesamiento de intra-predicción del bloque de codificación actual de acuerdo con el modo de intra-predicción del bloque de codificación actual, mediante realizar un proceso de filtrado de muestra de referencia sobre una muestra de referencia para el bloque de codificación actual, cuando el modo de intrapredicción del bloque de codificación actual es un modo diagonal, donde el modo diagonal representa un ángulo que es un múltiplo de 45 grados y el modo diagonal no comprende un modo vertical y un modo horizontal, donde el proceso de filtrado de muestra de referencia se realiza utilizando un filtro de 3 derivaciones, [1,2,1] realizar un procesamiento de intra-predicción del bloque de codificación actual de acuerdo con el modo de intra-predicción del bloque de codificación actual, mediante realizar un proceso de filtrado de interpolación sobre una muestra de referencia para el bloque de codificación actual, cuando el modo de intra-predicción del bloque de codificación actual es un modo direccional pero no es uno de los siguientes modos de intra-predicción direccional: modo vertical, modo horizontal y modos diagonales, donde el proceso de filtrado de interpolación se realiza utilizando un filtro de Gauss o un filtro cúbico;
realizar un procesamiento de intra-predicción del bloque de codificación actual de acuerdo con el modo de intra-predicción del bloque de codificación actual y una muestra de referencia para el bloque de codificación actual,
en donde, cuando el modo de intra-predicción del bloque de codificación actual es el modo vertical o el modo horizontal, no se aplica ningún proceso de filtrado a la muestra de referencia para el bloque de codificación actual.
2. Un aparato para intra-predicción de un bloque actual en codificación o decodificación de video, en donde el aparato comprende circuitos de procesamiento configurados para
obtener un modo de intra-predicción del bloque de codificación actual;
realizar un procesamiento de intra-predicción del bloque de codificación actual de acuerdo con el modo de intra-predicción del bloque de codificación actual, mediante realizar un proceso de filtrado de muestra de referencia sobre una muestra de referencia para el bloque de codificación actual, cuando el modo de intrapredicción del bloque de codificación actual es un modo diagonal, donde el modo diagonal representa un ángulo que es un múltiplo de 45 grados y el modo diagonal no comprende modo vertical y modo horizontal, donde el proceso de filtrado de muestra de referencia se realiza utilizando un filtro de 3 derivaciones, [1,2,1] realizar un procesamiento de intra-predicción del bloque de codificación actual de acuerdo con el modo de intra-predicción del bloque de codificación actual, mediante realizar un proceso de filtrado de interpolación sobre una muestra de referencia para el bloque de codificación actual, cuando el modo de intra-predicción del bloque de codificación actual es un modo direccional pero no es uno de los siguientes modos de intra-predicción direccional: modo vertical, modo horizontal y modos diagonales, donde el proceso de filtrado de interpolación se realiza utilizando un filtro de Gauss o un filtro cúbico;
realizar un procesamiento de intra-predicción del bloque de codificación actual de acuerdo con el modo de intra-predicción del bloque de codificación actual y una muestra de referencia para el bloque de codificación actual,
en donde, cuando el modo de intra-predicción del bloque de codificación actual es el modo vertical o el modo horizontal, no se aplica ningún proceso de filtrado a la muestra de referencia para el bloque de codificación actual.
3. Un producto de programa informático que comprende código de programa para realizar el procedimiento según la reivindicación 1, cuando se ejecuta en un ordenador o procesador.
ES19859474T 2018-09-16 2019-09-13 Método y aparato para predicción Active ES2966083T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862731970P 2018-09-16 2018-09-16
US201962822775P 2019-03-22 2019-03-22
US201962822868P 2019-03-23 2019-03-23
PCT/RU2019/050153 WO2020055292A1 (en) 2018-09-16 2019-09-13 Method and apparatus for prediction

Publications (1)

Publication Number Publication Date
ES2966083T3 true ES2966083T3 (es) 2024-04-18

Family

ID=69778614

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19859474T Active ES2966083T3 (es) 2018-09-16 2019-09-13 Método y aparato para predicción

Country Status (15)

Country Link
US (2) US11647185B2 (es)
EP (2) EP3847815B1 (es)
JP (2) JP2021536203A (es)
KR (2) KR102551917B1 (es)
CN (3) CN111543061A (es)
AU (2) AU2019340292B2 (es)
BR (1) BR112021004679A2 (es)
CA (1) CA3112913C (es)
ES (1) ES2966083T3 (es)
HU (1) HUE063986T2 (es)
IL (1) IL281544A (es)
MX (1) MX2021002953A (es)
PL (1) PL3847815T3 (es)
PT (1) PT3847815T (es)
WO (1) WO2020055292A1 (es)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020060185A1 (ko) * 2018-09-19 2020-03-26 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US10469845B1 (en) * 2018-09-21 2019-11-05 Tencent America, Llc Method and apparatus for intra mode coding
KR20210137058A (ko) * 2019-03-22 2021-11-17 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 기반 영상 디코딩 방법 및 그 장치
WO2022180031A1 (en) * 2021-02-25 2022-09-01 Interdigital Vc Holdings France, Sas Methods and apparatuses for encoding/decoding a video
KR102615727B1 (ko) 2021-04-28 2023-12-20 주식회사 넥스트바이오메디컬 분해시간 조절이 가능한 색전용 수화겔 및 이의 제조방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5597968B2 (ja) * 2009-07-01 2014-10-01 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
CN101895751B (zh) * 2010-07-06 2012-02-08 北京大学 帧内预测的方法及装置、基于帧内预测的编/解码方法及系统
US9363533B2 (en) * 2010-09-29 2016-06-07 Electronics And Telecommunications Research Institute Method and apparatus for video-encoding/decoding using filter information prediction
CN107920249A (zh) * 2011-11-08 2018-04-17 株式会社Kt 对视频信号进行解码的方法
CN102984523B (zh) * 2012-12-14 2015-12-09 北京大学 一种多方向的帧内预测编解码方法及装置
CN103248892A (zh) * 2013-05-07 2013-08-14 北京大学 一种帧内预测方法及装置
JP6324510B2 (ja) * 2014-05-23 2018-05-16 華為技術有限公司Huawei Technologies Co.,Ltd. ブロック予測技法での使用のための事前予測フィルタリングのための方法及び装置
WO2016129851A1 (ko) * 2015-02-13 2016-08-18 엘지전자(주) 비균등 위상 보간을 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
US20160373770A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
WO2017043786A1 (ko) * 2015-09-10 2017-03-16 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
CN113301334B (zh) * 2015-11-17 2023-11-03 华为技术有限公司 视频编码样本自适应滤波的方法和装置
US10194170B2 (en) * 2015-11-20 2019-01-29 Mediatek Inc. Method and apparatus for video coding using filter coefficients determined based on pixel projection phase
US10362314B2 (en) * 2015-11-27 2019-07-23 Mediatek Inc. Apparatus and method for video coding by intra-prediction
US10382781B2 (en) * 2016-09-28 2019-08-13 Qualcomm Incorporated Interpolation filters for intra prediction in video coding
CN116320498A (zh) * 2016-11-28 2023-06-23 韩国电子通信研究院 用于滤波的方法和装置
CN116248868A (zh) * 2017-07-03 2023-06-09 汉阳大学校产学协力团 利用包含追加区域的分割单位的影像解码方法以及装置
EP3737093A4 (en) * 2017-11-28 2022-02-09 Electronics and Telecommunications Research Institute METHOD AND DEVICE FOR CODING/DECODING IMAGES AND RECORDING MEDIA STORED WITH A BITSTREAM
US11128872B2 (en) * 2018-07-16 2021-09-21 Qualcomm Incorporated Position dependent intra prediction combination with wide angle intra prediction
WO2020216255A1 (en) * 2019-04-25 2020-10-29 Mediatek Inc. Method and apparatus of encoding or decoding with mode dependent intra smoothing filter in intra prediction

Also Published As

Publication number Publication date
CN114143539A (zh) 2022-03-04
US11647185B2 (en) 2023-05-09
AU2023248190A1 (en) 2023-11-02
HUE063986T2 (hu) 2024-02-28
EP3847815A1 (en) 2021-07-14
JP2023169242A (ja) 2023-11-29
WO2020055292A1 (en) 2020-03-19
EP3847815A4 (en) 2021-09-08
CN114143539B (zh) 2023-08-04
KR20230105003A (ko) 2023-07-11
KR20210055086A (ko) 2021-05-14
BR112021004679A2 (pt) 2021-06-01
EP4270958A2 (en) 2023-11-01
IL281544A (en) 2021-05-31
KR102551917B1 (ko) 2023-07-04
CN112040228A (zh) 2020-12-04
EP3847815B1 (en) 2023-11-08
CN111543061A (zh) 2020-08-14
CN112040228B (zh) 2021-08-03
US20210203928A1 (en) 2021-07-01
JP2021536203A (ja) 2021-12-23
PL3847815T3 (pl) 2024-03-11
PT3847815T (pt) 2023-12-26
EP4270958A3 (en) 2024-02-28
AU2019340292B2 (en) 2023-07-13
CA3112913C (en) 2023-10-31
AU2019340292A1 (en) 2021-04-15
MX2021002953A (es) 2021-07-15
US20230319270A1 (en) 2023-10-05
CA3112913A1 (en) 2020-03-19

Similar Documents

Publication Publication Date Title
ES2960283T3 (es) Método y aparato para el filtrado de la interpolación para la intra e interpredicción en la codificación de vídeo
ES2966083T3 (es) Método y aparato para predicción
BR112020027043A2 (pt) Método e decodificador para interpredição
ES2965083T3 (es) Terminación temprana para el refinamiento de flujo óptico
BR112021003679A2 (pt) método, codificador e decodificador para predição intra
BR112021011723A2 (pt) Método e aparelho de predição intra e codificador, decodificador, programa de computador, mídia de armazenamento não transitória, e fluxo de bits
BR112021013644A2 (pt) Codificador, decodificador e métodos correspondentes de adaptação de filtro de deblocagem
JP2023022071A (ja) イントラ予測のための方法及び機器
KR102543792B1 (ko) 이웃 블록에 기초한 인트라 예측 모드 도출