ES2779461T3 - Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo - Google Patents

Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo Download PDF

Info

Publication number
ES2779461T3
ES2779461T3 ES16775947T ES16775947T ES2779461T3 ES 2779461 T3 ES2779461 T3 ES 2779461T3 ES 16775947 T ES16775947 T ES 16775947T ES 16775947 T ES16775947 T ES 16775947T ES 2779461 T3 ES2779461 T3 ES 2779461T3
Authority
ES
Spain
Prior art keywords
values
video
prediction
unfiltered
filtered
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
ES16775947T
Other languages
English (en)
Inventor
Amir Said
Xin Zhao
Jianle Chen
Marta Karczewicz
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2779461T3 publication Critical patent/ES2779461T3/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/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/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/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/146Data rate or code amount at the encoder output
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/172Methods 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 picture, frame or field

Landscapes

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

Abstract

Un procedimiento de descodificación de datos de vídeo, comprendiendo el procedimiento: descodificar bloques vecinos de un bloque actual en una imagen de datos de vídeo; formar una predicción filtrada calculando una matriz de referencia filtrada que comprende una pluralidad de valores de referencia filtrados que comprenden versiones filtradas de píxeles vecinos del bloque actual en los bloques vecinos; formar una predicción no filtrada calculando una matriz de referencia no filtrada que comprende una pluralidad de valores de referencia no filtrados que corresponden a versiones no filtradas de los píxeles vecinos; calcular un conjunto de valores predictivos asociados con un conjunto de píxeles del bloque actual; y reconstruir el bloque actual en base al conjunto calculado de valores predictivos, caracterizado por que el conjunto de valores predictivos se calcula en base a una combinación lineal de la predicción filtrada multiplicada por un primer conjunto de pesos y la predicción no filtrada multiplicada por un segundo conjunto de pesos.

Description

DESCRIPCIÓN
Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo
[0001] Esta solicitud reivindica el beneficio de la solicitud de patente provisional de EE. UU. n.° 62/234,645 presentada el 29 de septiembre de 2015.
CAMPO TÉCNICO
[0002] Esta divulgación se refiere a la codificación de vídeo.
ANTECEDENTES
[0003] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, que incluye televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, ordenadores de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, radioteléfonos celulares o por satélite, los llamados "teléfonos inteligentes", dispositivos de teleconferencia por vídeo, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de codificación de vídeo, tales como las descritas en diversas normas definidas por ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, ITU-T H.264/MPEG-4, Parte 10, Codificación de vídeo avanzada (AVC) e ITU-T H.265, Codificación de vídeo de alta eficacia (HEVC) y ampliaciones de dichas normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente implementando dichas técnicas de codificación de vídeo.
[0004] Las técnicas de codificación de vídeo incluyen predicción espacial (intraimagen) y/o predicción temporal (interimagen) para reducir o eliminar la redundancia inherente a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un sector de vídeo (por ejemplo, una trama de vídeo o una parte de una trama de vídeo) se puede dividir en bloques de vídeo, que también se pueden denominar bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un sector intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a unas muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un sector intercodificado (P o B) de una imagen pueden usar la predicción espacial con respecto a unas muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a unas muestras de referencia en otras imágenes de referencia. Las imágenes se pueden denominar tramas, y las imágenes de referencia se pueden denominar tramas de referencia.
[0005] La predicción espacial o temporal dan como resultado un bloque predictivo para un bloque que se va a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se va a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificación y con los datos residuales. Para una compresión adicional, los datos residuales se pueden transformar desde el dominio del píxel a un dominio de la transformada, dando como resultado unos coeficientes de transformada residuales, que a continuación se pueden cuantificar. Los coeficientes de transformada cuantificados, inicialmente dispuestos en una matriz bidimensional, se pueden explorar para generar un vector unidimensional de coeficientes de transformada, y se puede aplicar codificación entrópica para conseguir todavía más compresión.
SUMARIO
[0006] En general, esta divulgación describe técnicas relacionadas con una intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición en la codificación de vídeo. Las técnicas se pueden usar en el contexto de los códecs de vídeo avanzados, tales como de las ampliaciones de HEVC o la próxima generación de normas de codificación de vídeo. En HEVC, por ejemplo, se usa un conjunto de 35 predictores lineales para realizar intracodificación y la predicción se puede calcular a partir de un conjunto no filtrado o filtrado de píxeles de "referencia" vecinos, dependiendo del modo de predictor seleccionado y el tamaño de bloque. Las técnicas de esta divulgación pueden usar una combinación ponderada de los conjuntos no filtrados y filtrados de píxeles de referencia para lograr una mejor compresión (por medio de, por ejemplo, una predicción mejorada y, por lo tanto, un pequeño residuo), permitir un cálculo paralelo eficaz de todos los conjuntos de valores de predicción y mantener baja la complejidad (por ejemplo, aplicando filtrado solo a un conjunto de píxeles de referencia y no a los propios valores predichos).
[0007] En un ejemplo, esta divulgación está dirigida a un procedimiento de descodificación de datos de vídeo, comprendiendo el procedimiento descodificar bloques vecinos de un bloque actual en una imagen de datos de vídeo; formar una matriz de referencia filtrada que comprende una pluralidad de valores de referencia filtrados que comprenden versiones filtradas de píxeles vecinos del bloque actual en los bloques vecinos; formar una matriz de referencia no filtrada que comprende una pluralidad de valores de referencia no filtrados correspondientes a versiones no filtradas de los píxeles vecinos; calcular un conjunto de valores predictivos asociados con un conjunto de píxeles del bloque actual en base a una combinación lineal de uno o más de la pluralidad de valores de referencia filtrados en la matriz de referencia filtrada multiplicada por un primer conjunto de pesos y uno o más de la pluralidad de valores de referencia no filtrados en la matriz de referencia no filtrada multiplicada por un segundo conjunto de pesos; y reconstruir el bloque actual en base al conjunto calculado de valores predictivos.
[0008] En otro ejemplo, esta divulgación está dirigida a un procedimiento de codificación de datos de vídeo, comprendiendo el procedimiento recibir un bloque actual de una imagen, una matriz de referencia filtrada que comprende una pluralidad de valores de referencia filtrados y una matriz de referencia no filtrada que comprende una pluralidad de valores de referencia no filtrados; descodificar bloques vecinos de un bloque actual en una imagen de datos de vídeo; formar una matriz de referencia filtrada que comprende una pluralidad de valores de referencia filtrados que comprenden versiones filtradas de píxeles vecinos del bloque actual en los bloques vecinos; formar una matriz de referencia no filtrada que comprende una pluralidad de valores de referencia no filtrados correspondientes a versiones no filtradas de los píxeles vecinos; generar un bloque predictivo para el bloque actual, en el que generar comprende calcular un conjunto de valores predictivos asociados con un conjunto de píxeles del bloque actual en base a una combinación lineal de uno o más de la pluralidad de valores de referencia filtrados en la matriz de referencia filtrada multiplicada por un primer conjunto de pesos y uno o más de la pluralidad de valores de referencia no filtrados en la matriz de referencia no filtrada multiplicada por un segundo conjunto de pesos; generar un bloque residual en base a una diferencia entre el bloque actual y el bloque predictivo; y codificar datos que representan el bloque residual en un flujo de bits.
[0009] En otro ejemplo, esta divulgación está dirigida a un dispositivo para descodificar datos de vídeo, comprendiendo el dispositivo una memoria y uno o más procesadores en comunicación con la memoria. El uno o más procesadores están configurados para descodificar bloques vecinos de un bloque actual en una imagen de datos de vídeo; formar una matriz de referencia filtrada que comprende una pluralidad de valores de referencia filtrados que comprenden versiones filtradas de píxeles vecinos del bloque actual en los bloques vecinos; formar una matriz de referencia no filtrada que comprende una pluralidad de valores de referencia no filtrados correspondientes a versiones no filtradas de los píxeles vecinos; calcular un conjunto de valores predictivos asociados con un conjunto de píxeles del bloque actual en base a una combinación lineal de uno o más de la pluralidad de valores de referencia filtrados en la matriz de referencia filtrada multiplicada por un primer conjunto de pesos y uno o más de la pluralidad de valores de referencia no filtrados en la matriz de referencia no filtrada multiplicada por un segundo conjunto de pesos; y reconstruir el bloque actual en base al conjunto calculado de valores predictivos.
[0010] En otro ejemplo, esta divulgación está dirigida a un dispositivo para codificar datos de vídeo como se define en la reivindicación 14.
[0011] En otro ejemplo, esta divulgación está dirigida a un dispositivo para descodificar datos de vídeo como se define en la reivindicación 13.
[0012] En otro ejemplo, esta divulgación está dirigida a un medio no transitorio legible por ordenador como se define en la reivindicación 15.
[0013] Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características, objetos y ventajas resultarán evidentes a partir de la descripción y los dibujos y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0014]
La FIG. 1 es un diagrama que ilustra un bloque de 4 x 4 píxeles que se van a predecir en la codificación intratrama que puede utilizar unas técnicas descritas en esta divulgación.
La FIG. 2 es un diagrama que ilustra unas configuraciones de filtro para los predictores direccionales en base al tamaño de bloque.
La FIG. 3 ilustra una predicción de un bloque 4x4 usando una referencia sin filtrar de acuerdo con unas técnicas de la presente divulgación.
La FIG. 4 ilustra una predicción de un bloque 4x4 usando una referencia filtrada de acuerdo con unas técnicas de la presente divulgación.
La FIG. 5 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo que puede utilizar unas técnicas descritas en esta divulgación.
La FIG. 6 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo que puede implementar unas técnicas descritas en esta divulgación.
La FIG. 7 es un diagrama de bloques que ilustra un ejemplo de descodificador de vídeo que puede implementar unas técnicas descritas en esta divulgación.
La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo de acuerdo con las técnicas de esta divulgación.
La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de ejemplo de acuerdo con las técnicas de esta divulgación.
DESCRIPCIÓN DETALLADA
[0015] En general, esta divulgación describe técnicas relacionadas con una intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición en la codificación de vídeo. Las técnicas se pueden usar en el contexto de los códecs de vídeo avanzados, tales como de las ampliaciones de HEVC o la próxima generación de normas de codificación de vídeo.
[0016] Las técnicas de esta divulgación se describen en general con respecto a ITU-T H.265, también conocida como Codificación de vídeo de alta eficacia (HEVC), que se describe en el documento "SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services-Coding of moving video" Codificación de vídeo de alta eficacia, ITU-T H.265, abril de 2013. Sin embargo, estas técnicas se pueden aplicar a otras normas de codificación de vídeo, que incluyen ampliaciones de HEVC y ampliaciones de otras normas. Los ejemplos de otras normas de codificación de vídeo incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU -Th .264/MPEG-4, Parte 10, Codificación de vídeo avanzada (AVC), incluyendo sus ampliaciones Codificación de vídeo escalable (SVC) y Codificación de vídeo multivista (MVC).
[0017] El Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T y el Grupo de Expertos en Imágenes en Movimiento (MPEG) ISO/IEC finalizaron recientemente la norma H.265. El último borrador de especificación HEVC, a continuación en el presente documento denominado HEVC WD, está disponible en http://phenix.intevry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1 .zip.
[0018] El JCT-3V también ha elaborado la ampliación multivista de HEVC, MV-HEVC. Un ejemplo de borrador de trabajo (WD) de MV-HEVC, denominado MV-HEVC WD8, está disponible en phenix.itsudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H1002-v5.zip. El JCT-VC también ha elaborado una ampliación escalable de HEVC, denominada SHVC. Un ejemplo de borrador de trabajo (WD) de SHVC, denominado SHVC WD6, está disponible en phenix.itsudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1008-v2.zip.
[0019] En la norma de compresión de vídeo HEVC, la predicción intratrama se aplica a bloques con NxN píxeles, usando un grupo de 4N 1 píxeles que son adyacentes al bloque que se va a predecir, a saber, unos píxeles de referencia. Esos píxeles de referencia tienen valores que se han reconstruido y son conocidos en el codificador y el descodificador cuando se calcula la predicción de bloque. Por ejemplo, la FIG. 1 muestra un bloque de 4 x 4 píxeles que se van a predecir en el procedimiento de codificación intratrama usado por la HEVC. Los píxeles que se van a predecir 90 se muestran como cuadrados blancos y los píxeles de referencia 92 como cuadrados grises.
[0020] La intrapredicción es una herramienta de codificación que se emplea para reducir o eliminar redundancias espaciales usando píxeles vecinos dentro de una imagen. Para encontrar direcciones de predicción exactas y eliminar redundancias eficazmente, la HEVC puede usar hasta 35 modos de predicción para cada PU. Puede haber dos conjuntos de valores que se usan para la predicción, dependiendo del modo de predictor (plano, DC o direccional) y el tamaño de bloque. Para cada modo, se puede usar una versión no filtrada o filtrada de los píxeles de referencia para la predicción. La HEVC, por ejemplo, define una tabla fija para determinar si se han de usar píxeles de referencia filtrados o no filtrados en la intrapredicción. El documento WO2012/102929 divulga la intrapredicción usando píxeles de referencia filtrados y no filtrados. Cada píxel de predicción usa valores de referencia filtrados o no filtrados de acuerdo con unos datos estadísticos locales del píxel que se va a codificar o su vecindad causal. La selección también puede depender de la posición, seleccionando los píxeles más cercanos a los vecinos causales la referencia no filtrada.
[0021] La FIG. 2 es un diagrama conceptual que ilustra una representación gráfica que define configuraciones de filtro para predicción direccional en base al tamaño de bloque. En la FIG. 2, se muestra un círculo donde un modo de predicción (por ejemplo, el modo de predicción direccional) usa un filtrado de muestras de referencia para un tamaño de bloque en particular (por ejemplo, 8x8, 16x16 y 32x32). En la FIG. 2, se muestra una "x" gris donde un modo de predicción usa muestras de referencia no filtradas para un tamaño de bloque en particular. Por ejemplo, los modos de predicción 2, 18 y 34 pueden usar píxeles de referencia filtrados independientemente del tamaño de bloque, los modos 10 y 26 pueden utilizar píxeles de referencia no filtrados independientemente del tamaño de bloque, los modos 3-8, 12-17, 19-24 y 28-33 pueden utilizar píxeles de referencia no filtrados en bloques de tamaño 8x8 pero usan píxeles de referencia filtrados en bloques de tamaños 16x16 y 32x32, y los modos 9, 11,25 y 27 utilizan píxeles de referencia no filtrados en bloques de tamaños 8x8 y 16x16 y píxeles de referencia filtrados en bloques de tamaño 32x32. Además, puede haber un tipo de filtro de paso bajo que se puede usar, con las tres tomas (1/4, 1/2, 1/4).
[0022] Los procedimientos actuales pueden ser más adecuados para los vídeos de baja resolución usados en el pasado, donde la mejor compresión se logra principalmente con bloques pequeños (por ejemplo, 4 x 4 u 8 x 8). Sin embargo, una tendencia más reciente es tener vídeo 1080 x 1920 HD o vídeo 2160 x 3840 UHD. Para esas resoluciones, la predicción usando tamaños de bloque mayores puede ser más eficaz y obtener una mejor compresión.
[0023] Se puede utilizar un filtrado de paso bajo más fuerte de la referencia en esos bloques más grandes para obtener una mejor compresión. Sin embargo, en esos casos, un único filtro de paso bajo que optimiza la predicción para todos los bloques de un tamaño de bloque determinado y el filtro óptimo varían de acuerdo con la textura en cada bloque.
[0024] Un dispositivo de vídeo que implementa la norma HEVC actual usa una predicción que está basada en la referencia filtrada o en la referencia no filtrada, que no admite una forma de combinar información de esos dos casos, aunque esos datos pueden estar fácilmente disponibles en el codificador y el descodificador.
[0025] Un dispositivo de codificación de vídeo, tal como un codificador de vídeo o un descodificador de vídeo, puede usar las técnicas de la presente divulgación para realizar una combinación de predicción dependiente de la posición (PDPC), es decir, usar una o más ecuaciones parametrizadas que definen cómo combinar predicciones en base a valores de referencia filtrados y no filtrados, y en la posición del píxel predicho. La presente divulgación describe varios conjuntos de parámetros, de modo que el codificador puede probar cada uno de ellos (por ejemplo, por medio del uso de un análisis de tasa-distorsión) y señalizar al descodificador los parámetros óptimos (por ejemplo, los parámetros que dan como resultado el mejor rendimiento de tasa-distorsión entre los parámetros que se prueban).
[0026] La FIG. 3 ilustra una predicción de un bloque 4x4 (p) usando una referencia no filtrada (r) de acuerdo con unas técnicas de la presente divulgación. La FIG. 4 ilustra una predicción de un bloque 4x4 (q) usando una referencia filtrada (s) de acuerdo con unas técnicas de la presente divulgación. Aunque las FIGS. 3 y 4 ilustran un bloque 4x4 de píxeles y 17 (4x4+1) valores de referencia respectivos, las técnicas de la presente divulgación se pueden aplicar a cualquier tamaño de bloque y número de valores de referencia.
[0027] Un codificador de vídeo que realiza una combinación de predicción dependiente de la posición puede utilizar una combinación entre las predicciones filtradas (q) y no filtradas (p), de modo que un bloque predicho para un bloque actual que se va a codificar se puede calcular usando valores de píxel tanto de las matrices de referencia filtradas (s) como de las no filtradas (r).
[0028] En un ejemplo de las técnicas de PDPC, dados dos conjuntos cualesquiera de predicciones de píxel pr[x, y] y qs[x, y], calculados usando solo las referencias no filtradas y filtradas r y s , respectivamente, el valor predicho combinado de un píxel, denotado por v[x, y], se define por
v\x,y ] = c[x,y] pr[x,y] (1 - c[x,y ]) qs[x,y] (1)
donde c[x, y] es el conjunto de parámetros de combinación. El valor del peso c[x, y] puede ser un valor entre 0 y 1. La suma de los pesos c[x, y] y (1 - c[x, y]) puede ser igual a uno.
[0029] En determinados ejemplos, puede no ser práctico tener un conjunto de parámetros tan grande como el número de píxeles del bloque. En dichos ejemplos, c[x, y] se puede definir mediante un conjunto mucho más pequeño de parámetros, más una ecuación para calcular todos los valores de combinación a partir de esos parámetros. En dicho ejemplo, se puede usar un ejemplo de la siguiente fórmula:
Figure imgf000005_0001
donde cf,cf,C i,c%, g y dv, dh e {1,2} son parámetros de predicción, N es el tamaño de bloque, PrHEVC)[x,y] y ^(hevc) ^ , ^ son valores de predicción calculados usando la norma HEVC, para el modo específico, usando respectivamente las referencias no filtradas y filtradas, y
Figure imgf000006_0001
es un factor de normalización (es decir, para hacer que los pesos globales asignados a p(HEVC>[x,y] y g(HEVC>[x, y] sumen 1), definido por los parámetros de predicción.
[0030] La fórmula 2 se puede generalizar para cualquier norma de codificación de vídeo en la fórmula 2A:
Figure imgf000006_0002
donde cf, c f , cf, c f , g y dv, dh e {1,2}, son parámetros de predicción, N es el tamaño de bloque, PrSTD>[x,y] y q4STD>[x,y] son valores de predicción calculados usando una norma de codificación de vídeo (o sistema o algoritmo de codificación de vídeo), para el modo específico, usando respectivamente las referencias no filtradas y filtradas, y
S h ) ( h )
b[x,y] = 1 ( ff-m lnpe.ylN
2b'/dfJ l\x/dh\ (3A) Ñ ) 9
es un factor de normalización (es decir, para hacer los pesos globales asignados a p¿STD>[x,y] y q ,fTD>[x,y] sumen 1), definido por los parámetros de predicción.
[0031] Estos parámetros de predicción pueden incluir pesos para proporcionar una combinación lineal óptima de los términos predichos de acuerdo con el tipo de modo de predicción usado (por ejemplo, DC, plano y 33 modos direccionales de HEVC). Por ejemplo, la HEVC contiene 35 modos de predicción. Se puede construir una tabla de consulta con valores para cada uno de los parámetros de predicción c f , c f , cf, c f , g, dv y dh para cada uno de los modos de predicción (es decir, 35 valores de cf, cf, c f , cf, g, dv y dh para cada modo de predicción). Dichos valores se pueden codificar en un flujo de bits con el vídeo o pueden ser valores constantes conocidos de antemano por el codificador y el descodificador y que puede que no se necesiten transmitir en un archivo o flujo de bits. Los valores para c f , cf, c1, c1, g, dv y dh se pueden determinar mediante un algoritmo de entrenamiento de optimización encontrando los valores para los parámetros de predicción que proporcionan la mejor compresión para un conjunto de vídeos de entrenamiento. En otro ejemplo, hay una pluralidad de conjuntos de parámetros de predicción predefinidos para cada modo de predicción (por ejemplo, en una tabla de consulta) y el conjunto de parámetros de predicción seleccionado (pero no los parámetros en sí) se transmite a un descodificador en un archivo o flujo de bits codificados. En otro ejemplo, un codificador de vídeo puede generar sobre la marcha los valores para c f, cf, c1, c1, g, dv y dh y transmitirlos a un descodificador en un archivo o flujo de bits codificados.
[0032] En otro ejemplo, en lugar de usar una predicción HEVC, un dispositivo de codificación de vídeo que realiza estas técnicas puede usar una versión modificada de HEVC, como una que usa 65 predicciones direccionales en lugar de 33 predicciones direccionales. De hecho, se puede usar cualquier tipo de predicción intratrama.
[0033] En otro ejemplo, la fórmula se puede elegir para facilitar los cálculos. Por ejemplo, podemos usar el siguiente tipo de predictor
Figure imgf000006_0003
donde
Figure imgf000006_0004
[0034] Dicho enfoque puede aprovechar la linealidad de la predicción HEVC (u otra). Definiendo h como la respuesta de impulso de un filtro k de un conjunto predefinido, si se tiene
s = a r (1 — a )(h * r) (7)
donde "*" representa convolución, entonces
p £ r W ] = p s(HEVC)[ * > y ] ( 8)
es decir, la predicción combinada linealmente se puede calcular a partir de la referencia combinada linealmente.
[0035] Las fórmulas 4, 6 y 8 se pueden generalizar para cualquier norma de codificación de vídeo en las fórmulas 4A, 6A y 8A:
Figure imgf000007_0001
donde
Figure imgf000007_0002
y
p £ . D) [x, y ] = a p (S f T D u> ) [x, y ] + (1 - a ) (ST ' D u> ) r [x, y ] . (6A)
Dicho enfoque puede aprovechar la linealidad de la predicción de la norma de codificación. Definiendo h como la respuesta de impulso de un filtro k de un conjunto predefinido, si se tiene
s = a r + (1 - a )(h * r) (7A)
donde "*" representa convolución, entonces
(STD) r i (STD) r ■,
Va, r,s [X.y] = Ps [*.y] (8A)
es decir, la predicción combinada linealmente se puede calcular a partir de la referencia combinada linealmente.
[0036] En un ejemplo, unas funciones de predicción pueden usar el vector de referencia (por ejemplo, r y s) solo como entrada. En este ejemplo, el comportamiento del vector de referencia no cambia, tanto si la referencia se ha filtrado como si no se ha filtrado. Si r y s son iguales (por ejemplo, determinada referencia r no filtrada resulta ser la misma que otra referencia filtrada s), entonces unas funciones predictivas, por ejemplo, pr[x, y] (también escrita como p(x,y,r)) es igual a ps[x, y] (también escrita como p(x,y,s), aplicadas a unas referencias filtradas y no filtradas son iguales. Adicionalmente, las predicciones de píxel p y q pueden ser equivalentes (por ejemplo, generar la misma salida dada la misma entrada). En dicho ejemplo, las fórmulas (1)-(8) se pueden reescribir con la predicción de píxel p[x, y] que reemplaza la predicción de píxel q[x, y].
[0037] En otro ejemplo, la predicción (por ejemplo, los conjuntos de funciones) puede cambiar dependiendo de la información de que se ha filtrado una referencia. En este ejemplo, se pueden denotar diferentes conjuntos de funciones (por ejemplo, pr[x, y] y qs[x, y]). En este caso, aunque r y s sean iguales, pr[x, y] y qs[x, y] pueden no ser iguales. En otras palabras, la misma entrada puede crear una salida diferente dependiendo de si la entrada se ha filtrado o no. En dicho ejemplo, tal vez no se pueda reemplazar p[x, y] por q[x, y].
[0038] Una ventaja de las ecuaciones de predicción mostradas es que, con la formulación parametrizada, se pueden determinar conjuntos de parámetros óptimos (es decir, los que optimizan la exactitud de la predicción), para diferentes tipos de texturas de vídeo, usando técnicas tales como el entrenamiento. Este enfoque, a su vez, se puede ampliar en algunos ejemplos calculando varios conjuntos de parámetros predictores para algunos tipos típicos de texturas, y teniendo un sistema de compresión donde el codificador prueba los predictores de cada conjunto, y codifica como información secundaria la que logra una mejor compresión.
[0039] La FIG. 5 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo 10 que puede utilizar unas técnicas descritas en esta divulgación, incluyendo PDPC. Como se muestra en la FIG. 5, el sistema de descodificación 10 incluye un dispositivo de origen 12 que proporciona datos de vídeo codificados que un dispositivo de destino 14 va a descodificar en un momento posterior. En particular, el dispositivo de origen 12 proporciona los datos de vídeo al dispositivo de destino 14 por medio de un medio legible por ordenador 16. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualesquiera de entre una amplia gama de dispositivos, incluyendo ordenadores de escritorio, cuadernos digitales (es decir, ordenadores portátiles), ordenadores de tableta, descodificadores, equipos telefónicos manuales tales como los denominados teléfonos "inteligentes", los denominados teclados "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión continua de vídeo o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicación inalámbrica.
[0040] El dispositivo de destino 14 puede recibir los datos de vídeo codificados que se van a descodificar por medio del medio legible por ordenador 16. El medio legible por ordenador 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de vídeo codificados desde el dispositivo de origen 12 hasta el dispositivo de destino 14. En un ejemplo, el medio legible por ordenador 16 puede comprender un medio de comunicación para permitir que el dispositivo de origen 12 transmita datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados se pueden modular de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitir al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o alámbrica, tal como un espectro de radiofrecuencia (RF) o una o más líneas físicas de transmisión. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global como Internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 hasta el dispositivo de destino 14.
[0041] En algunos ejemplos, los datos codificados se pueden facilitar desde la interfaz de salida 22 hasta un dispositivo de almacenamiento. De forma similar, la interfaz de entrada puede acceder a los datos codificados desde el dispositivo de almacenamiento. El dispositivo de almacenamiento puede incluir cualquiera de una variedad de medios de almacenamiento de datos de acceso distribuido o local, tales como un disco duro, unos discos Blu-ray, unos DVD, unos CD-ROM, una memoria flash, una memoria volátil o no volátil, u otros medios de almacenamiento digital cualesquiera adecuados para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo de almacenamiento puede corresponder a un servidor de archivos u otro dispositivo de almacenamiento intermedio que puede almacenar el vídeo codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a los datos de vídeo almacenados del dispositivo de almacenamiento por medio de transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Los servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor de FTP, unos dispositivos de almacenamiento conectados a la red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión wifi), una conexión alámbrica (por ejemplo, DSL, módem de cable, etc.), o una combinación de ambos que sea adecuada para acceder a los datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento puede ser una transmisión continua, una transmisión de descarga o una combinación de las mismas.
[0042] Las técnicas de esta divulgación no se limitan necesariamente a las aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como radiodifusiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones continuas de vídeo por Internet, tales como la transmisión continua dinámica adaptativa a través de HTTP (DASH), vídeo digital que se codifica en un medio de almacenamiento de datos, descodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema de descodificación 10 puede estar configurado para admitir una transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión continua de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
[0043] En el ejemplo de la FIG. 5, el dispositivo de origen 12 incluye la fuente de vídeo 18, el codificador de vídeo 20 y la interfaz de salida 22. El dispositivo de destino 14 incluye la interfaz de entrada 28, el descodificador de vídeo 30 y el dispositivo de visualización 32. De acuerdo con esta divulgación, el codificador de vídeo 20 del dispositivo de origen 12 puede estar configurado para aplicar las técnicas descritas en esta divulgación, tales como unas técnicas relacionadas con la intrapredicción de vídeo mejorada usando una combinación de predicción dependiente de la posición. De acuerdo con esta divulgación, el descodificador de vídeo 30 del dispositivo de destino 14 puede estar configurado para aplicar las técnicas descritas en esta divulgación, tales como unas técnicas relacionadas con la intrapredicción de vídeo mejorada usando una combinación de predicción dependiente de la posición. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen 12 puede recibir datos de vídeo desde una fuente de vídeo externa 18, tal como una cámara externa. Del mismo modo, el dispositivo de destino 14 puede conectarse con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
[0044] Como se indica anteriormente, el dispositivo de origen 12 incluye una interfaz de salida 22 y el dispositivo de destino 14 incluye una interfaz de entrada 28. En algunos ejemplos, la interfaz de salida 22 representa un transmisor y la interfaz de entrada 28 representa un receptor. En otros ejemplos, la interfaz de salida 22 y la interfaz de entrada 28 representan ejemplos de transceptores (es decir, interfaces capaces de transmitir y recibir inalámbricamente señales de datos). Los transceptores pueden estar configurados para enviar y recibir datos de vídeo en señales inalámbricas. Por ejemplo, la interfaz de salida 22, cuando se implementa como un transceptor, puede enviar una señal de datos (por ejemplo, un medio legible por ordenador 16) que incluye datos de vídeo codificados, mientras que la interfaz de entrada 28, cuando se implementa como un transceptor, puede recibir una señal de datos (por ejemplo, un medio legible por ordenador 16) que incluye datos de vídeo codificados. Como se analiza anteriormente, el codificador de vídeo 20 puede proporcionar los datos de vídeo codificados a la interfaz de salida 22, mientras que la interfaz de entrada 28 puede proporcionar datos de vídeo codificados al descodificador de vídeo 30.
[0045] El sistema de descodificación ilustrado 10 de la FIG. 5 es simplemente un ejemplo. Las técnicas descritas en esta divulgación se pueden realizar mediante cualquier dispositivo de codificación y/o descodificación de vídeo digital. Aunque, en general, las técnicas de esta divulgación se realizan mediante un dispositivo de codificación de vídeo, las técnicas también se pueden realizar mediante un codificador/descodificador de vídeo, típicamente denominado "CÓDEC". Además, las técnicas de esta divulgación también se pueden realizar mediante un preprocesador de vídeo. El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de dichos dispositivos de codificación, en los que el dispositivo de origen 12 genera datos de vídeo codificados para su transmisión al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de una manera sustancialmente simétrica, de modo que cada uno de los dispositivos 12, 14 incluye componentes de codificación y descodificación de vídeo. Por consiguiente, el sistema de descodificación 10 puede admitir la transmisión de vídeo unidireccional o bidireccional entre los dispositivos de vídeo 12, 14, por ejemplo, para transmisión continua de vídeo, reproducción de vídeo, radiodifusión de vídeo o videotelefonía.
[0046] La fuente de vídeo 18 del dispositivo de origen 12 puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo capturado previamente y/o una interfaz de transmisión de vídeo para recibir vídeo desde un proveedor de contenido de vídeo. Como otra alternativa, la fuente de vídeo 18 puede generar datos basados en gráficos de ordenador como vídeo de origen, o una combinación de vídeo en directo, vídeo archivado y vídeo generado por ordenador. En algunos casos, si la fuente de vídeo 18 es una cámara de vídeo, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, como se menciona anteriormente, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general, y se pueden aplicar a aplicaciones inalámbricas y/o alámbricas. En cada caso, el codificador de vídeo 20 puede codificar el vídeo capturado, precapturado o generado por ordenador. La interfaz de salida 22 puede facilitar a continuación la información de vídeo codificado a un medio legible por ordenador 16.
[0047] El medio legible por ordenador 16 puede incluir medios transitorios, tales como una radiodifusión inalámbrica o una transmisión de red alámbrica, o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tales como un disco duro, una unidad flash, un disco compacto, un disco de vídeo digital, un disco Bluray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificado desde el dispositivo de origen 12 y proporcionar los datos de vídeo codificado al dispositivo de destino 14, por ejemplo, por medio de una transmisión de red. De forma similar, un dispositivo informático de una instalación de producción de medios, tal como una instalación de estampado de discos, puede recibir datos de vídeo codificado desde el dispositivo de origen 12 y producir un disco que contiene los datos de vídeo codificado. Por lo tanto, se puede entender que el medio legible por ordenador 16 incluye uno o más medios legibles por ordenador de diversas formas, en diversos ejemplos.
[0048] La interfaz de entrada 28 del dispositivo de destino 14 recibe información desde un medio legible por ordenador 16. La información del medio legible por ordenador 16 puede incluir información sintáctica definida por el codificador de vídeo 20, usada también por el descodificador de vídeo 30, que incluye elementos sintácticos que describen características y/o el procesamiento de bloques y otras unidades codificadas, por ejemplo, unos GOP. El dispositivo de visualización 32 visualiza los datos de vídeo descodificado ante un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0049] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con una norma de codificación de vídeo, como las normas descritas anteriormente y, en algunos ejemplos, de acuerdo con la norma de codificación de vídeo de alta eficacia (HEVC), también denominada ITU-T H.265, o ampliaciones de la norma HEVC, o de acuerdo con la próxima generación de normas de codificación de vídeo. Las técnicas de esta divulgación, sin embargo, no están limitadas a ninguna norma de codificación en particular. Otros ejemplos de normas de codificación de vídeo incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la FIG. 5, en algunos aspectos, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar integrados cada uno con un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro hardware y software, para gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si corresponde, las unidades MUX-DEMUX pueden adaptarse a un protocolo tal como el protocolo de multiplexor ITU H.223 u otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0050] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar implementados cada uno como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o combinaciones cualesquiera de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio no transitorio legible por ordenador adecuado y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno de entre el codificador de vídeo 20 y el descodificador de vídeo 30 puede estar incluido en uno o más codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador combinado (CÓDEC) en un dispositivo respectivo.
[0051] En general, una trama o imagen de vídeo se puede dividir en una secuencia de bloques de árbol, que también se conocen como unidades de codificación más grandes (LCU), que pueden incluir muestras de luma y de croma. Los datos sintácticos dentro de un flujo de bits pueden definir un tamaño para la LCU, que es la unidad de codificación más grande en términos del número de píxeles. Un sector incluye un número de bloques de árbol consecutivos en orden de codificación. Una trama o imagen de vídeo se puede dividir en uno o más sectores. Cada bloque de árbol se puede dividir en unidades de codificación (CU) de acuerdo con una estructura de árbol cuaternario. En general, una estructura de datos de árbol cuaternario incluye un nodo por CU, con un nodo raíz correspondiente al bloque de árbol. Si una CU se divide en cuatro sub-CU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las sub-CU.
[0052] Cada nodo de la estructura de datos de árbol cuaternario puede proporcionar datos sintácticos para la CU correspondiente. Por ejemplo, un nodo del árbol cuaternario puede incluir un indicador de división, que indica si la CU correspondiente al nodo se divide en sub-CU. Los elementos sintácticos para una CU se pueden definir de forma recursiva y pueden depender de si la CU se divide en sub-CU. Si una CU no se divide más, se denomina CU hoja. En esta divulgación, cuatro sub-CU de una CU hoja también se denominan CU hoja incluso si no hay ninguna división explícita de la CU hoja original. Por ejemplo, si una CU de tamaño 16x16 no se divide más, las cuatro sub-CU de tamaño 8x8 también se denominan CU hoja, aunque la CU de tamaño 16x16 no se haya dividido nunca.
[0053] Una CU tiene un propósito similar a un macrobloque de la norma H.264, excepto porque una CU no tiene una distinción de tamaño. Por ejemplo, un bloque de árbol se puede dividir en cuatro nodos hijo (también denominados sub-CU), y cada nodo hijo puede a su vez ser un nodo padre y dividirse en otros cuatro nodos hijo. Un nodo hijo final, no dividido, denominado nodo hoja del árbol cuaternario, comprende un nodo de codificación, también denominado CU hoja. Los datos sintácticos asociados a un flujo de bits codificado pueden definir un número máximo de veces que un bloque de árbol se puede dividir, lo que se conoce como una profundidad de CU máxima, y también pueden definir un tamaño mínimo de los nodos de codificación. En consecuencia, un flujo de bits también puede definir una unidad de codificación más pequeña (SCU). Esta divulgación usa el término "bloque" para referirse a cualquiera de entre una CU, una unidad de predicción (PU) o una unidad de transformada (TU), en el contexto de la HEVC, o a estructuras de datos similares en el contexto de otras normas (por ejemplo, macrobloques y subbloques de los mismos en H.264/AVC).
[0054] Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas al nodo de codificación. Un tamaño de la Cu corresponde a un tamaño del nodo de codificación y en general tiene forma cuadrada. El tamaño de la CU puede variar desde 8x8 píxeles hasta el tamaño del bloque de árbol, con un tamaño máximo de 64x64 píxeles o mayor. Cada CU puede contener una o más PU y una o más TU. Los datos sintácticos asociados a una CU pueden describir, por ejemplo, la división de la CU en una o más PU. Los modos de división pueden diferir dependiendo de cómo esté codificada la CU: en modo de omisión o directa, en modo de intrapredicción o en modo de interpredicción. Las PU se pueden dividir para que no tengan forma cuadrada. Los datos sintácticos asociados a una CU también pueden describir, por ejemplo, la división de la CU en una o más TU de acuerdo con un árbol cuaternario. Una TU puede tener forma cuadrada o no cuadrada (por ejemplo, rectangular).
[0055] La norma HEVC permite transformaciones de acuerdo con las TU, que pueden ser diferentes para diferentes CU. Las TU tienen típicamente un tamaño basado en el tamaño de las PU dentro de una CU determinada definida para una LCU dividida, aunque puede que no siempre sea así. Las TU son típicamente del mismo tamaño o más pequeñas que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU se pueden subdividir en unidades más pequeñas usando una estructura de árbol cuaternario conocida como "árbol cuaternario residual" (RQT). Los nodos hoja del RQT se pueden denominar unidades de transformada (TU). Los valores de diferencia de píxeles asociados a las TU se pueden transformar para generar coeficientes de transformada, que se pueden cuantificar.
[0056] Una CU hoja puede incluir una o más PU. En general, una PU representa un área espacial correspondiente a la totalidad o a una parte de la CU correspondiente, y puede incluir datos para recuperar y/o generar una muestra de referencia para la PU. Por otra parte, una PU incluye datos relacionados con la predicción. Por ejemplo, cuando la PU está codificada en modo intra, los datos para la PU pueden estar incluidos en un árbol cuaternario residual (RQT), que puede incluir datos que describen un modo de intrapredicción para una TU correspondiente a la PU. El RQT también se puede denominar árbol de transformada. En algunos ejemplos, el modo de intrapredicción se puede señalizar en la sintaxis de la CU hoja, en lugar del RQT. Como otro ejemplo, cuando la PU está codificada en modo inter, la PU puede incluir datos que definen información de movimiento, tales como uno o más vectores de movimiento, para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, precisión de un cuarto de píxel o precisión de un octavo de píxel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imágenes de referencia (por ejemplo, Lista 0, Lista 1 o Lista C) para el vector de movimiento.
[0057] Una CU hoja que tiene una o más PU también puede incluir una o más TU. Las unidades de transformada se pueden especificar usando un RQT (también denominado estructura de árbol cuaternario de TU), como se analiza anteriormente. Por ejemplo, un indicador de división puede indicar si una CU hoja está dividida en cuatro unidades de transformada. A continuación, cada unidad de transformada se puede dividir en otras sub-TU. Cuando una TU no se divide más, se puede denominar TU hoja. En general, para intracodificación, todas las TU hoja que pertenecen a una CU hoja comparten el mismo modo de intrapredicción. Es decir, el mismo modo de intrapredicción se aplica en general para calcular valores predichos para todas las TU de una CU hoja. Para intracodificación, un codificador de vídeo puede calcular un valor residual para cada TU hoja usando el modo de intrapredicción, como una diferencia entre la parte de la CU correspondiente a la TU y el bloque original. Una TU no se limita necesariamente al tamaño de una PU. Por tanto, las TU pueden ser más grandes o más pequeñas que una PU. Para intracodificación, una PU puede estar situada junto con una TU hoja correspondiente para la misma CU. En algunos ejemplos, el tamaño máximo de una TU hoja puede corresponder al tamaño de la CU hoja correspondiente.
[0058] Además, las TU de las CU hoja también pueden estar asociadas a unas respectivas estructuras de datos de árbol cuaternario, denominadas árboles cuaternarios residuales (RQT) o árboles de transformada, como se indica anteriormente. Es decir, una CU hoja puede incluir un árbol cuaternario que indica cómo se divide la CU hoja en unas TU. El nodo raíz de un árbol cuaternario de TU en general corresponde a una CU hoja, mientras que el nodo raíz de un árbol cuaternario de CU en general corresponde a un bloque de árbol (o LCU). Las TU del RQT que no están divididas se denominan TU hoja. En general, esta divulgación usa los términos CU y TU para referirse, respectivamente, a CU hoja y TU hoja, a menos que se indique lo contrario.
[0059] Una secuencia de vídeo típicamente incluye una serie de tramas o imágenes de vídeo. Un grupo de imágenes (GOP) en general comprende una serie de una o más de las imágenes de vídeo. Un GOP puede incluir, en una cabecera del GOP, una cabecera de una o más de las imágenes o en otro lugar, datos sintácticos que describen un número de imágenes incluidas en el GOP. Cada sector de una imagen puede incluir datos sintácticos de sector que describen un modo de codificación para el respectivo sector. El codificador de vídeo 20 típicamente actúa en bloques de vídeo dentro de sectores de vídeo individuales para codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden tener tamaños fijos o variables, y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
[0060] Como ejemplo, la predicción se puede realizar para PU de diversos tamaños. Suponiendo que el tamaño de una CU en particular es 2Nx2N, la intrapredicción se puede realizar en tamaños de PU de 2Nx2N o NxN, y la interpredicción se puede realizar en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. La división asimétrica para interpredicción también se puede realizar para tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la división asimétrica, una dirección de una CU no se divide, mientras que la otra dirección se divide en un 25 % y un 75 %. La parte de la CU correspondiente a la división del 25 % se indica con una "n" seguida de una indicación de "encima", "debajo", "izquierda" o "derecha". Por tanto, por ejemplo, "2NxnU" se refiere a una CU 2Nx2N que está dividida horizontalmente, con una PU 2Nx0,5N en la parte superior y una PU 2Nx1,5N en la parte inferior.
[0061] De acuerdo con las técnicas de esta divulgación, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar configurados para intrapredecir un bloque de datos de vídeo usando una combinación lineal de un conjunto de valores de referencia filtrados y un conjunto de valores de referencia no filtrados, donde los valores de referencia corresponden a píxeles vecinos previamente descodificados. Es decir, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden aplicar uno o más filtros a los píxeles vecinos para formar el conjunto de valores de referencia filtrados, y usar los propios píxeles vecinos como valores de referencia no filtrados. Además, la combinación lineal puede incluir aplicar conjuntos respectivos de pesos y/u otros parámetros de predicción a los valores de referencia filtrados y no filtrados. Por ejemplo, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden calcular un bloque predicho usando cualquiera de las fórmulas (1), (2) y (4) como se analiza anteriormente.
[0062] Más en particular, como se analiza en mayor detalle a continuación, el codificador de vídeo 20 en general predice y a continuación codifica datos de vídeo usando estas técnicas, y también puede determinar y a continuación señalizar los parámetros de predicción que se van a usar durante la intrapredicción. El descodificador de vídeo 30, del mismo modo, recupera los parámetros de predicción del flujo de bits, cuando dichos parámetros de predicción están codificados en el flujo de bits, y a continuación aplica estas técnicas para predecir, descodificar y reconstruir datos de vídeo.
[0063] En esta divulgación, "NxN" y "N por N" se pueden usar de manera intercambiable para referirse a las dimensiones en píxeles de un bloque de vídeo, en términos de dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 16x16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Del mismo modo, un bloque NxN en general tiene N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles de un bloque pueden estar dispuestos en filas y columnas. Además, los bloques no han de tener necesariamente el mismo número de píxeles en la dirección horizontal que en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
[0064] Después de la codificación intrapredictiva o interpredictiva usando las PU de una CU, el codificador de vídeo 20 puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos sintácticos que describen un procedimiento o modo de generar datos de píxeles predictivos en el dominio espacial (también denominado dominio del píxel) y las TU pueden comprender coeficientes en el dominio de la transformada después de la aplicación de una transformada, por ejemplo, una transformada discreta de coseno (DCT), una transformada entera, una transformada de wavelet o una transformada conceptualmente similar, a unos datos de vídeo residuales. Los datos residuales pueden corresponder a diferencias de píxeles entre píxeles de la imagen no codificada y valores de predicción correspondientes a las PU. El codificador de vídeo 20 puede formar las TU para que incluyan coeficientes de transformada cuantificados representativos de los datos residuales para la CU. Es decir, el codificador de vídeo 20 puede calcular los datos residuales (en forma de un bloque residual), transformar el bloque residual para generar un bloque de coeficientes de transformada, y a continuación cuantificar los coeficientes de transformada para formar coeficientes de transformada cuantificados. El codificador de vídeo 20 puede formar una TU que incluye los coeficientes de transformada cuantificados, así como otra información sintáctica (por ejemplo, información de división para la TU).
[0065] Como se indica anteriormente, después de cualquier transformada para generar coeficientes de transformada, el codificador de vídeo 20 puede realizar una cuantificación de los coeficientes de transformada. La cuantificación en general se refiere a un proceso en el que unos coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando una compresión adicional. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos o la totalidad de los coeficientes. Por ejemplo, un valor de n bits se puede redondear a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
[0066] Después de la cuantificación, el codificador de vídeo 20 puede explorar los coeficientes de transformada, generando un vector unidimensional a partir de la matriz bidimensional que incluye los coeficientes de transformada cuantificados. La exploración se puede diseñar para que los coeficientes de mayor energía (y, por lo tanto, de menor frecuencia) se coloquen en la parte delantera de la matriz y para que los coeficientes de menor energía (y, por lo tanto, de mayor frecuencia) se coloquen en la parte posterior de la matriz. En algunos ejemplos, el codificador de vídeo 20 puede utilizar un orden de exploración predefinido para explorar los coeficientes de transformada cuantificados, para generar un vector en serie que se puede codificar entrópicamente. En otros ejemplos, el codificador de vídeo 20 puede realizar una exploración adaptativa. Después de explorar los coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador de vídeo 20 puede codificar entrópicamente el vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC), la codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), la codificación entrópica de división de intervalos de probabilidad (PIPE) u otra metodología de codificación entrópica. El codificador de vídeo 20 también puede codificar entrópicamente elementos sintácticos asociados a los datos de vídeo codificados para su uso por el descodificador de vídeo 30 en la descodificación de los datos de vídeo.
[0067] Para realizar la CABAC, el codificador de vídeo 20 puede asignar un contexto dentro de un modelo de contexto a un símbolo que se va a transmitir. El contexto se puede referir, por ejemplo, a si los valores vecinos del símbolo son o no distintos de cero. Para realizar la CAVLC, el codificador de vídeo 20 puede seleccionar un código de longitud variable para un símbolo que se va a transmitir. Las palabras de código en la VLC se pueden construir de modo que unos códigos relativamente más cortos correspondan a símbolos más probables, mientras que unos códigos más largos correspondan a símbolos menos probables. De esta manera, el uso de la VLC puede permitir un ahorro de bits con respecto, por ejemplo, al uso de palabras de código de igual longitud para cada símbolo que se va a transmitir. La determinación de probabilidad puede estar basada en un contexto asignado al símbolo.
[0068] En general, el descodificador de vídeo 30 realiza un proceso sustancialmente similar, aunque recíproco, al realizado por el codificador de vídeo 20 para descodificar datos codificados. Por ejemplo, el descodificador de vídeo 30 realiza una cuantificación inversa y una transformada inversa de unos coeficientes de una TU recibida para reproducir un bloque residual. El descodificador de vídeo 30 usa un modo de predicción señalizado (de intra- o interpredicción) para formar un bloque predicho. A continuación, el descodificador de vídeo 30 combina el bloque predicho y el bloque residual (de píxel en píxel) para reproducir el bloque original. Se puede realizar un procesamiento adicional, tal como realizar un proceso de eliminación de bloques para reducir artefactos visuales a lo largo de los límites de bloque. Además, el descodificador de vídeo 30 puede descodificar elementos sintácticos usando CABAC de una manera sustancialmente similar, aunque recíproca, al proceso de codificación CABAC del codificador de vídeo 20.
[0069] El codificador de vídeo 20 puede enviar además datos sintácticos, tales como datos sintácticos basados en bloque, datos sintácticos basados en trama y datos sintácticos basados en GOP, al descodificador de vídeo 30, por ejemplo, en una cabecera de trama, una cabecera de bloque, una cabecera de sector o una cabecera de GOP. Los datos sintácticos de GOP pueden describir un número de tramas en el GOP respectivo, y los datos sintácticos de trama pueden indicar un modo de codificación/predicción usado para codificar la trama correspondiente.
[0070] El codificador de vídeo 20 y el descodificador de vídeo 30 se pueden implementar, cada uno, como cualquiera de una variedad de circuitos codificadores o descodificadores adecuados, según corresponda, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), circuitos de lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cada uno de entre el codificador de vídeo 20 y el descodificador de vídeo 30 puede estar incluido en uno o más codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CÓDEC) de vídeo combinado. Un dispositivo que incluye un codificador de vídeo 20 y/o un descodificador de vídeo 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono móvil.
[0071] La FIG. 6 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo 20 que puede implementar técnicas descritas en esta divulgación, tales como unas técnicas relacionadas con la intrapredicción de vídeo mejorada usando una combinación de predicción dependiente de la posición. De acuerdo con esta divulgación, el codificador de vídeo 20 puede estar configurado para aplicar las técnicas descritas en esta divulgación, tales como unas técnicas relacionadas con la intrapredicción de vídeo mejorada usando una combinación de predicción dependiente de la posición. El codificador de vídeo 20 puede realizar una intracodificación y una intercodificación de bloques de vídeo dentro de sectores de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de una trama o imagen de vídeo dada. La intercodificación se basa en una predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de tramas o imágenes adyacentes de una secuencia de vídeo. El modo intra (modo I) se puede referir a cualquiera de varios modos de codificación basados en el espacio. Los modos inter, tales como la predicción unidireccional (modo P) o la bipredicción (modo B), se pueden referir a cualquiera de varios modos de codificación basados en el tiempo.
[0072] Como se muestra en la FIG. 6, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de una trama de vídeo que se va a codificar. En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una unidad de selección de modo 40, una memoria de imágenes de referencia 64 (que también se puede denominar memoria intermedia de imágenes descodificadas (DPB)), un sumador 50, una unidad de procesamiento de transformada 52, una unidad de cuantificación 54 y una unidad de codificación entrópica 56. La unidad de selección de modo 40, a su vez, incluye una unidad de compensación de movimiento 44, una unidad de estimación de movimiento 42, una unidad de intrapredicción 46 y una unidad de división 48. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 también incluye una unidad de cuantificación inversa 58, una unidad de transformada inversa 60 y un sumador 62. El filtro de paso bajo 66 puede recibir información de imagen desde la memoria de imágenes de referencia 64 y puede filtrar previamente las muestras de referencia para su uso por la unidad de selección de modo 40 (y la unidad de intrapredicción 46). También se puede incluir un filtro de eliminación de bloques (no mostrado en la FIG. 6) para filtrar límites de bloques y eliminar las distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de eliminación de bloques podría filtrar típicamente la salida del sumador 62. También se pueden usar filtros adicionales (en el bucle o posteriores al bucle) además del filtro de eliminación de bloques y el filtro de paso bajo 66.
[0073] Durante el proceso de codificación, el codificador de vídeo 20 recibe una trama o sector de vídeo que se ha de codificar. La trama o el sector se pueden dividir en múltiples bloques de vídeo. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 realizan una codificación interpredictiva del bloque de vídeo recibido, en relación con uno o más bloques en una o más tramas de referencia, para proporcionar predicción temporal. La unidad de intrapredicción 46 puede realizar de forma alternativa la codificación intrapredictiva del bloque de vídeo recibido, en relación con uno o más bloques vecinos en la misma trama o sector que el bloque que se va a codificar, para proporcionar predicción espacial. El codificador de vídeo 20 puede realizar múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación adecuado para cada bloque de datos de vídeo.
[0074] El filtro de paso bajo 66 se puede aplicar a todos los bloques o, en algunos ejemplos, a bloques por encima de determinado tamaño (por ejemplo, bloques mayores de 4x4 en HEVC). En algunos ejemplos, el filtro de paso bajo 66 se puede aplicar solo a los píxeles de referencia. Se puede aplicar un filtro de paso bajo de 3 tomas a los bloques de datos de vídeo. Sin embargo, un experto en la técnica reconocerá que se puede usar cualquier número de tipos de filtros de paso bajo en base a las técnicas descritas.
[0075] En los ejemplos de la presente divulgación, se puede aplicar un filtro más fuerte a los valores de referencia de algunos o todos los bloques y combinarlos con los píxeles de referencia no filtrados y/o con filtrado de paso bajo para usar en una ecuación de predicción. A continuación, se analizan más detalles con respecto al uso de dichos filtros y la intrapredicción resultante realizada por la unidad de intrapredicción 46.
[0076] Además, la unidad de división 48 puede dividir bloques de datos de vídeo en subbloques, en base a la evaluación de sistemas de división previos en pasadas de codificación previas. Por ejemplo, la unidad de división 48 puede dividir inicialmente una trama o sector en unas LCU, y dividir cada una de las LCU en sub-CU en base al análisis de tasa-distorsión (por ejemplo, optimización de tasa-distorsión). La unidad de selección de modo 40 puede generar además una estructura de datos de árbol cuaternario, indicativa de la división de una LCU en sub-CU. Las CU de nodo hoja del árbol cuaternario pueden incluir una o más PU y una o más TU.
[0077] La unidad de selección de modo 40 puede seleccionar uno de los modos de predicción, intra o inter, por ejemplo, en base a resultados de errores, y proporciona el bloque predicho resultante al sumador 50 para generar datos residuales y al sumador 62 para reconstruir el bloque codificado para su uso como trama de referencia. La unidad de selección de modo 40 también proporciona elementos sintácticos, tales como vectores de movimiento, indicadores de modo intra, información de división y otra información sintáctica de ese tipo, a la unidad de codificación entrópica 56.
[0078] La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar sumamente integradas, pero se ilustran por separado con propósitos conceptuales. La estimación de movimiento, realizada por la unidad de estimación de movimiento 42, es el proceso de generar vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una trama o imagen de vídeo actual en relación con un bloque predictivo dentro de una trama de referencia (u otra unidad codificada) con respecto al bloque actual que se está codificando dentro de la trama actual (u otra unidad codificada). Un bloque predictivo es un bloque que resulta coincidir estrechamente con el bloque que se va a codificar, en términos de diferencia de píxeles, que se puede determinar mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones de píxel subentero de imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxel fraccionario de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento relativa a las posiciones de píxel completo y las posiciones de píxel fraccionario, y generar un vector de movimiento con una precisión de píxel fraccionario.
[0079] La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de vídeo en un sector intercodificado comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia se puede seleccionar a partir de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación entrópica 56 y a la unidad de compensación de movimiento 44.
[0080] La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar obtener o generar el bloque predictivo en base al vector de movimiento determinado por la unidad de estimación de movimiento 42. De nuevo, la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar funcionalmente integradas en algunos ejemplos. Al recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxeles, como se analiza a continuación. En general, la unidad de estimación de movimiento 42 realiza la estimación de movimiento en relación con unos componentes de luma, y la unidad de compensación de movimiento 44 usa unos vectores de movimiento calculados en base a los componentes de luma, tanto para componentes de croma como para componentes de luma. La unidad de selección de modo 40 también puede generar elementos sintácticos asociados a los bloques de vídeo y al sector de vídeo, para su uso por el descodificador de vídeo 30 en la descodificación de los bloques de vídeo del sector de vídeo.
[0081] La unidad de intrapredicción 46 puede intrapredecir un bloque actual, como alternativa a la interpredicción realizada por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se ha descrito anteriormente. En particular, la unidad de intrapredicción 46 puede determinar un modo de intrapredicción que se ha de usar para codificar un bloque actual. En algunos ejemplos, la unidad de intrapredicción 46 puede codificar un bloque actual usando diversos modos de intrapredicción, por ejemplo, durante pasadas de codificación separadas, y la unidad de intrapredicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar de entre los modos probados un modo de intrapredicción adecuado que se va a usar.
[0082] La unidad de intrapredicción 46 puede realizar la predicción a partir de un conjunto no filtrado o filtrado de píxeles de "referencia" vecinos, dependiendo del modo de predictor seleccionado y el tamaño de bloque usando una coordinación de predicción dependiente de la posición. Los píxeles de referencia filtrados se pueden filtrar por medio del filtro de paso bajo 66. La unidad de intrapredicción 46 puede usar una o más de un número de fórmulas ejemplares (1 )-(8) para calcular un valor predicho combinado de un píxel.
[0083] En un ejemplo, la unidad de intrapredicción 46, cuando se dan dos conjuntos de predicciones de píxel pr[x, y] y qs[x, y], calculados usando solo las referencias no filtradas y filtradas r y s , respectivamente, puede calcular un valor predicho combinado de un píxel, denotado por v[x, y], por medio de la fórmula (1) como se define anteriormente.
[0084] En otro ejemplo, la unidad de intrapredicción 46 puede utilizar una ecuación con un conjunto de parámetros más pequeño. En dichos ejemplos, c[x, y] se puede definir mediante un conjunto mucho más pequeño de parámetros, más una ecuación para calcular todos los valores de combinación a partir de esos parámetros. En dicho ejemplo, la unidad de intrapredicción 46 puede usar la fórmula (2) como se define anteriormente.
[0085] En otro ejemplo, la fórmula se puede elegir para facilitar los cálculos. Por ejemplo, la unidad de intrapredicción 46 puede usar un predictor como se define en la fórmula (4) anterior. Dicho enfoque puede aprovechar la linealidad de la predicción HEVC (u otra) como se muestra en las fórmulas (7) y (8) anteriores.
[0086] La unidad de intrapredicción 46 puede seleccionar parámetros de predicción (por ejemplo, c[x, y], c” , c%, c1 , c-¿, g, dv, y/o dh) que se corresponden con la ecuación de predicción usada por la unidad de intrapredicción 46 que mejor se ajusta a la predicción (por ejemplo, que tiene las mejores características de tasa-distorsión).
[0087] Por ejemplo, la unidad de selección de modo 40 puede calcular valores de tasa-distorsión usando un análisis de tasa-distorsión para los diversos modos de intrapredicción probados, y seleccionar el modo de intrapredicción y los parámetros de predicción que tienen las mejores características de tasa-distorsión entre los modos probados. Usando el análisis de tasa-distorsión, la unidad de selección de modo 40 en general determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado, que se ha codificado para generar el bloque codificado, así como una tasa de bits (es decir, un número de bits) usada para generar el bloque codificado. La unidad de selección de modo 40 puede calcular las proporciones a partir de las distorsiones y las tasas para los diversos bloques codificados, para determinar qué modo de intrapredicción presenta el mejor valor de tasa-distorsión para el bloque. Por ejemplo, la unidad de intrapredicción 46 puede probar cada una de un conjunto de ecuaciones parametrizadas combinando valores de referencia filtrados y no filtrados. La unidad de intrapredicción 46 puede probar cada uno (o una pluralidad) de los conjuntos de parámetros para determinar qué modo y parámetros presentan el mejor valor de tasa-distorsión para el bloque.
[0088] En un ejemplo, la unidad de selección de modo 40 puede utilizar una tabla que contiene parámetros de predicción para cada uno de los modos de predicción. La unidad de selección de modo 40 puede calcular los resultados de tasa-distorsión para cada procedimiento de combinación de predicción dependiente de la posición (PDPC), así como para no usar PDPC. La unidad de selección de modo 40 a continuación puede seleccionar el modo de predicción y los parámetros de predicción (o la ausencia de parámetros de predicción) que presenta el mejor valor de tasadistorsión. En un ejemplo donde no se usa ninguna técnica de aceleración, el número de pruebas realizadas por la unidad de selección de modo 40 sería igual a (número de modos de predicción) x (número de conjuntos de parámetros PDPC 1).
[0089] Después de seleccionar un modo de intrapredicción para un bloque, la unidad de selección de modo 40 puede proporcionar información indicativa del modo de intrapredicción seleccionado y los parámetros de predicción PDPC para el bloque a la unidad de codificación entrópica 56. La unidad de codificación entrópica 56 puede codificar la información que indica el modo de intrapredicción seleccionado. El codificador de vídeo 20 puede incluir en el flujo de bits transmitido datos de configuración, que pueden incluir una pluralidad de tablas de índices de modos de intrapredicción y una pluralidad de tablas modificadas de índices de modos de intrapredicción (también denominadas tablas de correlación de palabras de código), definiciones de contextos de codificación para diversos bloques e indicaciones de un modo de intrapredicción más probable, parámetros de predicción (ya sean valores de parámetros de predicción o bien un único valor correspondiente a un conjunto predefinido de parámetros de predicción), una tabla de índices de modos de intrapredicción y una tabla modificada de índices de modos de intrapredicción que se va a usar para cada uno de los contextos. El codificador de vídeo 20 puede incluir parámetros de predicción en uno o más de un conjunto de parámetros de vídeo (VPS), un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS), una cabecera de sector, una cabecera de bloque u otros de dichos datos.
[0090] El codificador de vídeo 20 forma un bloque de vídeo residual restando los datos de predicción de la unidad de selección de modo 40 del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de procesamiento de transformada 52 aplica una transformada, tal como una transformada discreta de coseno (DCT) o una transformada conceptualmente similar, al bloque residual, generando un bloque de vídeo que comprende valores de coeficientes de transformada. En lugar de una DCT, se podrían usar transformadas de wavelet, transformadas enteras, transformadas de subbandas, transformadas discretas de seno (DST) u otros tipos de transformadas. En cualquier caso, la unidad de procesamiento de transformada 52 aplica la transformada al bloque residual, generando un bloque de coeficientes de transformada. La transformada puede convertir la información residual de un dominio del píxel a un dominio de la transformada, tal como un dominio de la frecuencia. La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir aún más la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos o la totalidad de los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación.
[0091] Después de la cuantificación, la unidad de codificación entrópica 56 explora y codifica entrópicamente los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación entrópica 56 puede realizar codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC), codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), codificación entrópica de división en intervalos de probabilidad (PIPE), u otra técnica de codificación entrópica. En el caso de la codificación entrópica basada en contexto, el contexto puede estar basado en bloques vecinos. Después de la codificación entrópica mediante la unidad de codificación entrópica 56, el flujo de bits codificado se puede transmitir a otro dispositivo (por ejemplo, el descodificador de vídeo 30) o archivar para su posterior transmisión o recuperación.
[0092] La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican una cuantificación inversa y una transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio del píxel. En particular, el sumador 62 suma el bloque residual reconstruido al bloque de predicción con compensación de movimiento, generado por la unidad de compensación de movimiento 44 o la unidad de intrapredicción 46, para generar un bloque de vídeo reconstruido para su almacenamiento en la memoria de imágenes de referencia 64. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden usar el bloque de vídeo reconstruido como bloque de referencia para intercodificar un bloque en una trama de vídeo posterior.
[0093] El codificador de vídeo 20 en general usa el proceso analizado anteriormente para codificar cada bloque de cada imagen en una secuencia de vídeo codificada. Además, en algunos ejemplos, el codificador de vídeo 20 puede determinar las capas temporales a las cuales se va a asignar cada una de las imágenes. Además, el codificador de vídeo 20 puede estar configurado para codificar imágenes de otras capas, por ejemplo, otras vistas, capas de codificación de vídeo escalable, o similares. En cualquier caso, el codificador de vídeo 20 puede codificar además datos que indican una capa a la que pertenece cada imagen, para una o más capas (por ejemplo, de diversas dimensiones de vídeo).
[0094] La FIG. 7 es un diagrama de bloques que ilustra un ejemplo de descodificador de vídeo 30 que puede implementar unas técnicas descritas en esta divulgación. De acuerdo con esta divulgación, el descodificador de vídeo 30 puede estar configurado para aplicar las técnicas descritas en esta divulgación, tales como unas técnicas relacionadas con la intrapredicción de vídeo mejorada usando una combinación de predicción dependiente de la posición. En el ejemplo de la FIG. 7, el descodificador de vídeo 30 incluye una unidad de descodificación entrópica 70, una unidad de compensación de movimiento 72, una unidad de intrapredicción 74, una unidad de cuantificación inversa 76, una unidad de transformada inversa 78, una memoria de imágenes de referencia 82, un filtro de paso bajo 84 y un sumador 80. El descodificador de vídeo 30 puede, en algunos ejemplos, realizar una pasada de descodificación en general recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 (FIG. 6). La unidad de compensación de movimiento 72 puede generar datos de predicción en base a vectores de movimiento recibidos desde la unidad de descodificación entrópica 70 (tanto directamente como por medio del filtro de paso bajo 84), mientras que la unidad de intrapredicción 74 puede generar datos de predicción en base a unos indicadores de modo de intrapredicción y unos parámetros de predicción recibidos desde la unidad de descodificación entrópica 70.
[0095] Durante el proceso de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un sector de vídeo codificado y elementos sintácticos asociados, desde el codificador de vídeo 20. La unidad de descodificación entrópica 70 del descodificador de vídeo 30 descodifica entrópicamente el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intrapredicción, parámetros de predicción PDPC y otros elementos sintácticos. La unidad de descodificación entrópica 70 reenvía los vectores de movimiento y otros elementos sintácticos a la unidad de compensación de movimiento 72. El descodificador de vídeo 30 puede recibir los elementos sintácticos en el nivel de sector de vídeo y/o el nivel de bloque de vídeo.
[0096] Cuando el sector de vídeo se codifica como un sector intracodificado (I), la unidad de intrapredicción 74 puede generar datos de predicción para un bloque de vídeo del sector de vídeo actual, en base a un modo de intrapredicción señalizado, unos datos de predicción y en unos datos de bloques descodificados previamente de la trama o imagen actual. Algunos o la totalidad de los bloques descodificados de la trama o imagen actual se filtran por medio del filtro de paso bajo 84 para su uso por la unidad de intrapredicción 74.
[0097] La unidad de intrapredicción 74 puede realizar la predicción a partir de un conjunto no filtrado o filtrado de píxeles de "referencia" vecinos, dependiendo del modo de predictor seleccionado y el tamaño de bloque usando una coordinación de predicción dependiente de la posición. Los píxeles de referencia filtrados se pueden filtrar por medio del filtro de paso bajo 84. La unidad de intrapredicción 74 puede usar una o más de un número de fórmulas ejemplares (1 )-(8) definidas anteriormente para calcular un valor predicho combinado de un píxel.
[0098] En un ejemplo, la unidad de intrapredicción 74, cuando se dan dos conjuntos de predicciones de píxel pr[x, y] y qs[x, y], calculados usando solo las referencias no filtradas y filtradas r y s , respectivamente, puede calcular un valor predicho combinado de un píxel, denotado por v[x, y], por medio de la fórmula (1) como se define anteriormente.
[0099] En otro ejemplo, la unidad de intrapredicción 74 puede utilizar una ecuación con un conjunto de parámetros más pequeño. En dichos ejemplos, c[x, y] se puede definir mediante un conjunto mucho más pequeño de parámetros, más una ecuación para calcular todos los valores de combinación a partir de esos parámetros. En dicho ejemplo, la unidad de intrapredicción 74 puede usar la fórmula (2) como se define anteriormente.
[0100] En otro ejemplo, la fórmula se puede elegir para facilitar los cálculos. Por ejemplo, la unidad de intrapredicción 74 puede usar un predictor como se define en la fórmula (4) anterior. Dicho enfoque puede aprovechar la linealidad de la predicción HEVC (u otra) como se muestra en las fórmulas (7) y (8) anteriores.
[0101] La unidad de intrapredicción 74 puede usar parámetros de predicción descodificados (por ejemplo, c[x, y], c j , c j , c2, C2 , g, dv, y/o dh) que corresponden a la ecuación de predicción usada por la unidad de intrapredicción 74 para calcular el bloque predicho.
[0102] Cuando la trama de vídeo se codifica como un sector intercodificado (es decir, B, P o GPB), la unidad de compensación de movimiento 72 genera bloques predictivos para un bloque de vídeo del sector de vídeo actual, en base a los vectores de movimiento y otros elementos sintácticos recibidos desde la unidad de descodificación entrópica 70. Los bloques predictivos se pueden generar a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El descodificador de vídeo 30 puede construir las listas de tramas de referencia, Lista 0 y Lista 1, usando técnicas de construcción predeterminadas en base a imágenes de referencia almacenadas en la memoria de imágenes de referencia 82. La unidad de compensación de movimiento 72 determina la información de predicción para un bloque de vídeo del sector de vídeo actual, analizando los vectores de movimiento y otros elementos sintácticos, y usa la información de predicción para generar los bloques predictivos para el bloque de vídeo actual que se está descodificando. Por ejemplo, la unidad de compensación de movimiento 72 usa algunos de los elementos sintácticos recibidos para determinar un modo de predicción (por ejemplo, intra- o interpredicción) usado para codificar los bloques de vídeo del sector de vídeo, un tipo de sector de interpredicción (por ejemplo, sector B, sector P o sector GPB), información de construcción para una o más de las listas de imágenes de referencia para el sector, vectores de movimiento para cada bloque de vídeo intercodificado del sector, el estado de interpredicción para cada bloque de vídeo intercodificado del sector y otra información para descodificar los bloques de vídeo en el sector de vídeo actual.
[0103] La unidad de compensación de movimiento 72 también puede realizar una interpolación en base a unos filtros de interpolación. La unidad de compensación de movimiento 72 puede usar filtros de interpolación como los que usa el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular unos valores interpolados para los píxeles subenteros de unos bloques de referencia. En este caso, la unidad de compensación de movimiento 72 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 a partir de los elementos sintácticos recibidos y usar los filtros de interpolación para generar bloques predictivos.
[0104] La unidad de cuantificación inversa 76 realiza la cuantificación inversa, es decir, la descuantificación, de los coeficientes de transformada cuantificados proporcionados en el flujo de bits y descodificados por la unidad de descodificación entrópica 70. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QPy calculado por el descodificador de vídeo 30 para cada bloque de vídeo en el sector de vídeo, para determinar un grado de cuantificación y, de igual modo, un grado de cuantificación inversa que se debería aplicar.
[0105] La unidad de transformada inversa 78 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada entera inversa o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada con el fin de generar bloques residuales en el dominio del píxel.
[0106] Después de que la unidad de compensación de movimiento 72 o la unidad de intrapredicción 74 genere el bloque predictivo para el bloque de vídeo actual en base a los vectores de movimiento y otros elementos sintácticos, el descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales de la unidad de transformada inversa 78 con los correspondientes bloques predictivos generados por la unidad de compensación de movimiento 72 o la unidad de intrapredicción 74. El sumador 80 representa el componente o los componentes que realizan esta operación de suma. Si se desea, también se puede aplicar un filtro de eliminación de bloques para filtrar los bloques descodificados para eliminar las distorsiones de efecto pixelado. También se pueden usar otros filtros de bucle (ya sea en el bucle de codificación o después del bucle de codificación) para allanar las transiciones de píxeles, o mejorar de otro modo la calidad del vídeo. Los bloques de vídeo descodificados en una trama o imagen dadas se almacenan a continuación en la memoria de imágenes de referencia 82, que almacena imágenes de referencia usadas para una posterior compensación de movimiento. La memoria de imágenes de referencia 82 también almacena vídeo descodificado para una presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 5.
[0107] El descodificador de vídeo 30 en general usa el proceso analizado anteriormente para descodificar cada bloque de cada imagen en una secuencia de vídeo codificada. Además, en algunos ejemplos, el descodificador de vídeo 30 puede descodificar datos que indican capas temporales a las que se asignan imágenes. Además, el descodificador de vídeo 30 puede estar configurado para descodificar imágenes de otras capas, por ejemplo, otras vistas, capas de codificación de vídeo escalable o similares. En cualquier caso, el descodificador de vídeo 30 además puede descodificar datos que indican una capa a la que pertenece cada imagen, para una o más capas (por ejemplo, de diversas dimensiones de vídeo).
[0108] La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo de acuerdo con las técnicas de esta divulgación. En un ejemplo de la divulgación, la unidad de intrapredicción 46 en el codificador de vídeo 20 puede estar configurada para codificar bloques de una imagen actual en un orden de barrido (100). El codificador de vídeo 20 puede estar configurado además para determinar la intrapredicción de un bloque actual de una imagen actual (102). El codificador de vídeo 20 puede estar configurado además para formar valores de referencia filtrados a partir de bloques descodificados vecinos del bloque actual (104). El filtro de paso bajo 66 puede estar configurado para filtrar los valores de referencia anteriores. El codificador de vídeo 20 puede estar configurado además para determinar parámetros de predicción para intrapredecir el bloque actual (106). Determinar los parámetros de predicción puede incluir procesar diversos parámetros para determinar el conjunto de parámetros que es óptimo. Los ejemplos adicionales incluyen seleccionar un subconjunto de todos los parámetros de predicción y verificar cada combinación de parámetros del subconjunto para seleccionar un conjunto de parámetros que sea óptimo. La selección del conjunto de parámetros óptimo puede estar basado en un análisis de tasa-distorsión.
[0109] El codificador de vídeo 20 puede estar configurado además para intrapredecir el bloque actual usando valores de referencia filtrados y valores de referencia no filtrados usando parámetros de predicción para formar el bloque predicho (108). En un ejemplo, el codificador de vídeo 20 puede estar configurado para generar un bloque predictivo calculando un conjunto de valores predictivos asociados con un conjunto de píxeles en base a una combinación lineal de uno o más de la pluralidad de valores de referencia filtrados en la matriz de referencia filtrada multiplicada por un primer conjunto de pesos y el uno o más de la pluralidad de valores de referencia no filtrados en la matriz de referencia no filtrada multiplicada por un segundo conjunto de pesos. En un ejemplo, calcular el conjunto de valores predictivos comprende calcular el conjunto de valores predictivos una pluralidad de veces con valores de parámetros diferentes y seleccionar un conjunto de parámetros óptimo de los valores de parámetros diferentes. El codificador de vídeo 20 puede estar configurado para generar el bloque predictivo por medio de cualquiera de las fórmulas paramétricas (1)-(8) analizadas anteriormente.
[0110] El codificador de vídeo 20 puede estar configurado además para calcular un bloque residual que representa las diferencias entre el bloque predicho y el bloque original (110). El codificador de vídeo 20 puede estar configurado además para transformar y cuantificar el bloque residual (112). El codificador de vídeo 20 puede estar configurado además para codificar entrópicamente coeficientes de transformada cuantificados, parámetros de predicción y una indicación del modo de intrapredicción para el bloque actual (114). El codificador de vídeo 20 puede estar configurado además para generar un flujo de bits con los coeficientes de transformada cuantificados codificados entrópicamente, los parámetros de predicción y la indicación de modo de intrapredicción para el bloque actual.
[0111] La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de ejemplo de acuerdo con las técnicas de esta divulgación. En un ejemplo de la divulgación, la unidad de intrapredicción 74 en el descodificador de vídeo 30 puede estar configurada para descodificar bloques de la imagen actual en un orden de barrido (200). El descodificador de vídeo 30 puede estar configurado además para descodificar entrópicamente coeficientes de transformada cuantificados, parámetros de predicción y una indicación de modo de intrapredicción para el bloque actual (202).
[0112] El descodificador de vídeo 30 puede estar configurado además para descuantificar el bloque residual (204).
[0113] El descodificador de vídeo 30 puede estar configurado además para formar valores de referencia filtrados a partir de bloques descodificados vecinos del bloque actual (206).
[0114] El descodificador de vídeo 30 puede estar configurado además para intrapredecir el bloque actual usando valores de referencia filtrados y valores de referencia no filtrados usando parámetros de predicción descodificados para formar el bloque predicho (208). En un ejemplo, el descodificador de vídeo 30 puede estar configurado para calcular un conjunto de valores predictivos asociados con un conjunto de píxeles en base a una combinación lineal de uno o más de la pluralidad de valores de referencia filtrados en la matriz de referencia filtrada multiplicada por un primer conjunto de pesos y el uno o más de la pluralidad de valores de referencia no filtrados en la matriz de referencia no filtrada multiplicada por un segundo conjunto de pesos. En un ejemplo, el primer conjunto de pesos y el segundo conjunto de pesos varían en base a la posición de un píxel predicho del conjunto de píxeles. En otro ejemplo, un primer peso dentro del primer conjunto de pesos es mayor que un segundo peso del primer conjunto de pesos donde una primera distancia entre un primer valor predictivo del conjunto de valores predichos asociados con el primer peso y la matriz de referencia filtrada es mayor que una segunda distancia entre un segundo valor predictivo del conjunto de valores predichos asociados con el segundo peso y la matriz de referencia filtrada. En dicho ejemplo, en los píxeles predictivos dentro del bloque predictivo que están más lejos de los píxeles de referencia, el peso de los píxeles de referencia filtrados es mayor.
[0115] En otro ejemplo, el descodificador de vídeo 30 puede estar configurado para calcular un conjunto de valores de predicción no filtrados en base a la pluralidad de valores de referencia no filtrados en la matriz de referencia no filtrada y calcular un conjunto de valores de predicción filtrados en base a la pluralidad de valores de referencia filtrados en la matriz de referencia filtrada. El conjunto de valores de predicción no filtrados y el conjunto de valores de predicción filtrados pueden estar basado en uno o más parámetros de predictor direccionales (por ejemplo, modo de predicción direccional tal como los modos de predicción direccional HEVC descritos en la FIG. 2 anterior) descodificados a partir del flujo de bits.
[0116] En un ejemplo, el descodificador de vídeo 30 puede estar configurado para calcular el conjunto de valores predictivos por medio de fórmulas paramétricas (1)-(8) como se analiza anteriormente.
[0117] El descodificador de vídeo 30 puede estar configurado además para reconstruir un bloque de vídeo en base al conjunto calculado de valores predictivos (210).
[0118] Se ha de reconocer que dependiendo del ejemplo, determinados actos o actividades de cualquiera de las técnicas descritas en el presente documento se pueden realizar en una secuencia diferente, se pueden añadir, fusionar u omitir por completo (por ejemplo, no todos los actos o las actividades descritas son necesarias para la puesta en práctica de las técnicas). Además, en determinados ejemplos, los actos o las actividades se pueden realizar de forma concurrente, por ejemplo, a través de subprocesamiento múltiple, procesamiento de interrupción o múltiples procesadores, en lugar de secuencialmente.
[0119] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en, o transmitir a través de, un medio legible por ordenador como una o más instrucciones o código, y ejecutar mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos, o medios de comunicación que incluyen cualquier medio que facilita la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador en general pueden corresponder a (1) medios de almacenamiento tangibles legibles por ordenador que no son transitorios o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder mediante uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0120] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otros dispositivos de almacenamiento en disco óptico, almacenamiento en disco magnético u otros tipos de almacenamiento magnético, memoria flash o cualquier otro medio que se puede usar para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que se puede acceder mediante un ordenador. Además, cualquier conexión se denomina apropiadamente medio legible por ordenador. Por ejemplo, si se transmiten instrucciones desde un sitio web, un servidor o cualquier otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o unas tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, se debería entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que en su lugar están dirigidos a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen discos compactos (CD), discos láser, discos ópticos, discos versátiles digitales (DVD), discos flexibles y discos Blu-ray, de los cuales los discos flexibles normalmente reproducen datos magnéticamente, mientras que los demás discos reproducen datos ópticamente con láseres. Las combinaciones de los anteriores también deberían estar incluidos dentro del alcance de los medios legibles por ordenador.
[0121] Las instrucciones se pueden ejecutar mediante uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programable in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. En consecuencia, el término "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de módulos de hardware y/o software dedicados, configurados para codificar y descodificar, o incorporar en un códec combinado. Además, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0122] Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En esta divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de los dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En su lugar, como se ha descrito anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar mediante un grupo de unidades de hardware interoperativas, que incluyen uno o más procesadores como se ha descrito anteriormente, junto con software y/o firmware adecuados.
[0123] Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (15)

REIVINDICACIONES
1. Un procedimiento de descodificación de datos de vídeo, comprendiendo el procedimiento:
descodificar bloques vecinos de un bloque actual en una imagen de datos de vídeo;
formar una predicción filtrada calculando una matriz de referencia filtrada que comprende una pluralidad de valores de referencia filtrados que comprenden versiones filtradas de píxeles vecinos del bloque actual en los bloques vecinos;
formar una predicción no filtrada calculando una matriz de referencia no filtrada que comprende una pluralidad de valores de referencia no filtrados que corresponden a versiones no filtradas de los píxeles vecinos; calcular un conjunto de valores predictivos asociados con un conjunto de píxeles del bloque actual; y reconstruir el bloque actual en base al conjunto calculado de valores predictivos,
caracterizado por que el conjunto de valores predictivos se calcula en base a una combinación lineal de la predicción filtrada multiplicada por un primer conjunto de pesos y la predicción no filtrada multiplicada por un segundo conjunto de pesos.
2. El procedimiento de la reivindicación 1, en el que el primer conjunto de pesos y el segundo conjunto de pesos varían en base a una posición de un píxel predicho del conjunto de píxeles; y preferentemente en el que un primer peso dentro del primer conjunto de pesos es mayor que un segundo peso del primer conjunto de pesos cuando una primera distancia entre un primer valor predictivo del conjunto de valores predictivos asociados con el primer peso y la matriz de referencia filtrada es mayor que una segunda distancia entre un segundo valor predictivo del conjunto de valores predictivos asociados con el segundo peso y la matriz de referencia filtrada.
3. El procedimiento de la reivindicación 1, que comprende además:
calcular un conjunto de valores predictivos no filtrados en base a la pluralidad de valores de referencia no filtrados en la matriz de referencia no filtrada; y
calcular un conjunto de valores predictivos filtrados en base a la pluralidad de valores de referencia filtrados en la matriz de referencia filtrada,
en el que calcular el conjunto de valores predictivos comprende calcular el conjunto de valores predictivos usando el conjunto de valores predictivos no filtrados y el conjunto de valores predictivos filtrados; y preferentemente en el que
el conjunto de valores de predicción no filtrados y el conjunto de valores de predicción filtrados están basados en un modo de intracodificación direccional.
4. El procedimiento de la reivindicación 1, en el que calcular el conjunto de valores predichos comprende calcular el conjunto de valores predictivos por medio de una fórmula paramétrica:
Figure imgf000020_0001
en el que x representa un identificador de columna para un píxel del bloque actual e y representa un identificador de fila para el píxel del bloque actual, v[x, y] representa un valor predictivo combinado para el píxel del bloque actual en una posición definida por x e y, pr[x, y] representa el uno o más de la pluralidad de valores de referencia no filtrados, qs[x, y] representa el uno o más de la pluralidad de valores de referencia filtrados en la matriz de referencia filtrada, c representa el segundo conjunto de pesos, y 1 -c representa el primer conjunto de pesos.
5. El procedimiento de la reivindicación 1, en el que calcular el conjunto de valores predichos comprende calcular el conjunto de valores predictivos por medio de una fórmula paramétrica:
Figure imgf000020_0002
(N - mín(x,y)>
g píSTD)[x,y]+ b[x,y] q ( ^ ST l D lJ ) J[ . x,y]
( Ñ v
donde x representa un identificador de columna para un píxel del bloque actual e y representa un identificador de fila para un píxel del bloque actual, v[x, y] representa un valor predictivo combinado, r representa la matriz de referencia no filtrada, el segundo conjunto de pesos comprende c j, cj, cjf, c£, g, dv y dh que son parámetros de predicción, N es un tamaño del bloque actual, PrSTD)[x,y] representa la pluralidad de valores de referencia no filtrados calculados de acuerdo con una predicción no filtrada de una norma de codificación de vídeo, ^ STD)[x,y] representa la pluralidad de valores de referencia filtrados calculados de acuerdo con una predicción filtrada de la norma de codificación de vídeo, el primer conjunto de pesos comprende b [x, y] que representa un factor de normalización y min() representa una función mínimo.
6. El procedimiento de la reivindicación 4, en el que:
Figure imgf000021_0001
7. El procedimiento de la reivindicación 1, en el que calcular el conjunto de valores predichos comprende calcular el conjunto de valores predictivos por medio de una fórmula paramétrica:
Figure imgf000021_0002
donde
Figure imgf000021_0003
y
PÍSrTsD)[^y] = a Pi-STD) [%> y] + (1 - a) q¡STD)[x,y], donde x representa un identificador de columna para un píxel del bloque actual e y representa un identificador de fila para un píxel del bloque actual, v[x, y] representa un valor predictivo combinado, r representa la matriz de referencia no filtrada, el segundo conjunto de pesos comprende a, c j, c j, c1, c£, dv y dh que son parámetros de predicción, el primer conjunto de pesos comprende b[x, y], p£STD)[x,y] representa la pluralidad de valores de referencia no filtrados calculados de acuerdo con una predicción no filtrada de una norma de codificación de vídeo, ^sSTD)[x,y] representa la pluralidad de valores de referencia filtrados calculados de acuerdo con una predicción filtrada de la norma de codificación de vídeo.
8. Un procedimiento de codificación de datos de vídeo, comprendiendo el procedimiento:
recibir un bloque actual de una imagen, una matriz de referencia filtrada que comprende una pluralidad de valores de referencia filtrados, y una matriz de referencia no filtrada que comprende una pluralidad de valores de referencia no filtrados;
descodificar bloques vecinos de un bloque actual en una imagen de datos de vídeo;
formar una predicción filtrada calculando una matriz de referencia filtrada que comprende una pluralidad de valores de referencia filtrados que comprenden versiones filtradas de píxeles vecinos del bloque actual en los bloques vecinos;
formar una predicción no filtrada calculando una matriz de referencia no filtrada que comprende una pluralidad de valores de referencia no filtrados que corresponden a versiones no filtradas de los píxeles vecinos; generar un bloque predictivo para el bloque actual, en el que generar comprende calcular un conjunto de valores predictivos asociados con un conjunto de píxeles del bloque actual;
generar un bloque residual en base a una diferencia entre el bloque actual y el bloque predictivo; y codificar datos que representan el bloque residual en un flujo de bits;
caracterizado por que el conjunto de valores predictivos se calcula en base a una combinación lineal de la predicción filtrada multiplicada por un primer conjunto de pesos y la predicción no filtrada multiplicada por un segundo conjunto de pesos.
9. El procedimiento de la reivindicación 8, en el que el cálculo del conjunto de valores predictivos comprende: calcular una pluralidad de conjuntos de valores predictivos usando diferentes valores de parámetros; y seleccionar uno de los conjuntos de valores predictivos como un conjunto óptimo de valores predictivos.
10. El procedimiento de la reivindicación 9, en el que seleccionar el uno de los conjuntos de valores predictivos como el conjunto óptimo de valores predictivos comprende:
realizar un análisis de tasa-distorsión en la pluralidad de conjuntos de valores predictivos; y seleccionar el uno de los conjuntos de valores predictivos que logra el mejor rendimiento de tasa-distorsión entre la pluralidad de conjuntos de valores predictivos.
11. El procedimiento de la reivindicación 10, en el que generar un bloque predictivo para el bloque actual comprende además:
calcular un segundo conjunto de valores predictivos asociados con un conjunto de píxeles del bloque actual en base a uno o más de la pluralidad de valores de referencia filtrados en la matriz de referencia filtrada o el uno o más de la pluralidad de valores de referencia no filtrados en la matriz de referencia no filtrada; realizar un segundo análisis de tasa-distorsión en el segundo conjunto de valores predictivos; y seleccionar uno del segundo conjunto de valores predictivos y el conjunto óptimo de valores predictivos.
12. El procedimiento de la reivindicación 9, que comprende además codificar los valores de parámetros correspondientes al uno seleccionado de los conjuntos de valores predictivos en el flujo de bits.
13. Un dispositivo para descodificar datos de vídeo, comprendiendo el dispositivo:
una memoria configurada para almacenar datos de vídeo asociados con una imagen; y
uno o más procesadores en comunicación con la memoria y configurados para llevar a cabo las etapas de procedimiento de las reivindicaciones 1 a 7.
14. Un dispositivo para codificar datos de vídeo, comprendiendo el dispositivo:
una memoria configurada para almacenar vídeo asociado con una imagen; y uno o más procesadores en comunicación con la memoria y configurados para llevar a cabo las etapas de procedimiento de las reivindicaciones 8 a 12.
15. Un medio no transitorio legible por ordenador que tiene almacenadas instrucciones para procesar datos de vídeo que, cuando se ejecutan, hacen que uno o más procesadores lleven a cabo las etapas de cualquiera de las reivindicaciones de procedimiento 1 a 12.
ES16775947T 2015-09-29 2016-09-22 Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo Active ES2779461T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562234645P 2015-09-29 2015-09-29
US15/272,034 US10425648B2 (en) 2015-09-29 2016-09-21 Video intra-prediction using position-dependent prediction combination for video coding
PCT/US2016/053126 WO2017058635A1 (en) 2015-09-29 2016-09-22 Improved video intra-prediction using position-dependent prediction combination for video coding

Publications (1)

Publication Number Publication Date
ES2779461T3 true ES2779461T3 (es) 2020-08-17

Family

ID=58407611

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16775947T Active ES2779461T3 (es) 2015-09-29 2016-09-22 Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo

Country Status (10)

Country Link
US (2) US10425648B2 (es)
EP (1) EP3357247B1 (es)
JP (1) JP6903644B2 (es)
KR (1) KR20180063201A (es)
CN (2) CN113612997A (es)
BR (1) BR112018006408B1 (es)
CA (1) CA3000373C (es)
ES (1) ES2779461T3 (es)
TW (1) TWI766844B (es)
WO (1) WO2017058635A1 (es)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180107082A (ko) * 2016-02-16 2018-10-01 삼성전자주식회사 비디오 부호화 방법 및 장치, 그 복호화 방법 및 장치
US10567759B2 (en) 2016-03-21 2020-02-18 Qualcomm Incorporated Using luma information for chroma prediction with separate luma-chroma framework in video coding
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
JP6956471B2 (ja) * 2016-05-13 2021-11-02 日本放送協会 符号化装置、復号装置及びプログラム
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
KR20180029905A (ko) * 2016-09-13 2018-03-21 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018054269A1 (en) * 2016-09-22 2018-03-29 Mediatek Inc. Method and apparatus for video coding using decoder side intra prediction derivation
US10506228B2 (en) 2016-10-04 2019-12-10 Qualcomm Incorporated Variable number of intra modes for video coding
US11146795B2 (en) * 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
JP7036628B2 (ja) * 2017-03-10 2022-03-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
AU2018230328B2 (en) * 2017-03-10 2021-05-06 Hfi Innovation Inc. Method and apparatus of implicit intra coding tool settings with intra directional prediction modes for video coding
US10728548B2 (en) * 2017-04-04 2020-07-28 Futurewei Technologies, Inc. Processing reference samples used for intra-prediction of a picture block
CN112153029A (zh) 2017-04-21 2020-12-29 泽尼马克斯媒体公司 基于编码器提示的渲染和预编码负载估计的系统和方法
US10638126B2 (en) * 2017-05-05 2020-04-28 Qualcomm Incorporated Intra reference filter for video coding
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
KR102361010B1 (ko) * 2017-06-21 2022-02-09 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치
WO2019002171A1 (en) * 2017-06-26 2019-01-03 Interdigital Vc Holdings, Inc. METHOD AND APPARATUS FOR INTEGRATED MULTI-REFERENCE INTRA PREDICTION
EP3652936A1 (en) 2017-07-05 2020-05-20 Huawei Technologies Co., Ltd. Devices and methods for video coding
CN110720216B (zh) 2017-07-05 2022-05-10 华为技术有限公司 用于视频编码的设备和方法
CA3075641A1 (en) * 2017-09-15 2019-03-21 Sony Corporation Image processing device and method
EP3661212A4 (en) * 2017-09-28 2020-11-25 Samsung Electronics Co., Ltd. IMAGE CODING PROCESS AND APPARATUS, AND IMAGE DECODING PROCESS AND APPARATUS
US10965941B2 (en) 2017-10-09 2021-03-30 Qualcomm Incorporated Position-dependent prediction combinations in video coding
EP3487177A1 (en) 2017-11-21 2019-05-22 Thomson Licensing Method and apparatus for low-complexity bi-directional intra prediction in video encoding and decoding
US11611757B2 (en) 2018-04-02 2023-03-21 Qualcomm Incorproated Position dependent intra prediction combination extended with angular modes
EP3554071A1 (en) * 2018-04-12 2019-10-16 InterDigital VC Holdings, Inc. Method and apparatus for intra prediction using a composite reference array
WO2019199142A1 (ko) * 2018-04-13 2019-10-17 엘지전자 주식회사 인트라 예측 방법을 결정하기 위한 영상 코딩 방법 및 장치
MX2020012068A (es) * 2018-05-14 2021-02-09 Interdigital Vc Holdings Inc Direcciones de prediccion intra adaptativas a la forma de bloque para arbol cuadruple-arbol binario.
EP3815361A1 (en) * 2018-06-26 2021-05-05 InterDigital VC Holdings, Inc. Multiple reference intra prediction using variable weights
US11277644B2 (en) * 2018-07-02 2022-03-15 Qualcomm Incorporated Combining mode dependent intra smoothing (MDIS) with intra interpolation filter switching
US10567752B2 (en) 2018-07-02 2020-02-18 Tencent America LLC Method and apparatus for intra prediction for non-square blocks in video compression
US11128872B2 (en) * 2018-07-16 2021-09-21 Qualcomm Incorporated Position dependent intra prediction combination with wide angle intra prediction
US10911765B2 (en) * 2018-08-01 2021-02-02 Tencent America LLC Method and apparatus for video coding
US10491893B1 (en) * 2018-08-29 2019-11-26 Tencent America LLC Method and apparatus for multi-line intra prediction
AU2019342129A1 (en) * 2018-09-21 2021-05-20 Interdigital Vc Holdings, Inc. Harmonization of intra transform coding and wide angle intra prediction
GB2577337A (en) * 2018-09-24 2020-03-25 Sony Corp Image data encoding and decoding
JP2022503990A (ja) * 2018-10-12 2022-01-12 オッポ広東移動通信有限公司 ビデオ画像成分予測方法および装置、コンピュータ記憶媒体
CN117459722A (zh) 2018-11-12 2024-01-26 北京字节跳动网络技术有限公司 组合帧间-帧内预测的简化
US11310515B2 (en) * 2018-11-14 2022-04-19 Tencent America LLC Methods and apparatus for improvement for intra-inter prediction mode
WO2020111982A1 (en) 2018-11-26 2020-06-04 Huawei Technologies Co., Ltd. Method of intra predicting a block of a picture
KR20210091322A (ko) * 2018-12-21 2021-07-21 후아웨이 테크놀러지 컴퍼니 리미티드 모드 및 크기 의존적 블록 레벨 제한의 방법 및 장치
CN113196763B (zh) * 2018-12-21 2024-04-12 北京字节跳动网络技术有限公司 使用多项式模型的帧内预测
KR20210114386A (ko) 2019-02-08 2021-09-23 주식회사 윌러스표준기술연구소 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치
JP7293376B2 (ja) 2019-02-28 2023-06-19 ヒューマックス・カンパニー・リミテッド イントラ予測ベースのビデオ信号処理方法及び装置
WO2020178352A1 (en) * 2019-03-05 2020-09-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Use-case driven context model selection for hybrid video coding tools
WO2020177755A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Usage of converted uni-prediction candidate
EP3939275A4 (en) * 2019-03-11 2022-06-22 Telefonaktiebolaget Lm Ericsson (Publ) VIDEO ENCODING WITH GOP-BASED TEMPORAL FILTRATION
WO2020185943A1 (en) * 2019-03-11 2020-09-17 Tencent America LLC Improvement for inter pdpc mode
US11445174B2 (en) * 2019-05-06 2022-09-13 Tencent America LLC Method and apparatus for video coding
WO2020229394A1 (en) * 2019-05-10 2020-11-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Matrix-based intra prediction
US11197009B2 (en) * 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels
US11202070B2 (en) 2019-05-30 2021-12-14 Hulu, LLC Parallel bi-directional intra-coding of sub-partitions
US11134275B2 (en) * 2019-06-04 2021-09-28 Tencent America LLC Method and apparatus for performing primary transform based on filtering of blocks
US11039156B2 (en) 2019-06-11 2021-06-15 Tencent America LLC Unified position dependent prediction combination process
KR20220035108A (ko) * 2019-07-22 2022-03-21 인터디지털 브이씨 홀딩스 인코포레이티드 행렬 기반 인트라 예측을 이용한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
WO2021015934A1 (en) * 2019-07-22 2021-01-28 Interdigital Vc Holdings, Inc. Method and apparatus for video encoding and decoding with matrix based intra-prediction
JP2022544764A (ja) 2019-08-14 2022-10-21 北京字節跳動網絡技術有限公司 イントラモードにおける予測サンプルフィルタリングのための重み付け係数
WO2021027925A1 (en) 2019-08-14 2021-02-18 Beijing Bytedance Network Technology Co., Ltd. Position-dependent intra prediction sample filtering
KR20220061908A (ko) 2019-09-24 2022-05-13 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 예측값의 확정 방법, 인코더, 디코더 및 컴퓨터 저장 매체
WO2021068738A1 (en) * 2019-10-08 2021-04-15 Huawei Technologies Co., Ltd. Method and apparatus of adaptive adjustment of weighting prediction parameter precision
US11671592B2 (en) * 2019-12-09 2023-06-06 Qualcomm Incorporated Position-dependent intra-prediction combination for angular intra-prediction modes for video coding
CN111193934A (zh) * 2020-04-10 2020-05-22 杭州雄迈集成电路技术股份有限公司 一种帧内预测方法、系统、计算机设备及可读存储介质
CN113965764B (zh) * 2020-07-21 2023-04-07 Oppo广东移动通信有限公司 图像编码方法、图像解码方法及相关装置
US11743459B2 (en) * 2020-09-29 2023-08-29 Qualcomm Incorporated Filtering process for video coding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0120009D0 (en) * 2001-08-15 2001-10-10 Uws Ventures Ltd Cause and effect diagnosis
WO2011047542A1 (zh) * 2009-10-22 2011-04-28 浙江大学 基于空域预测的视频和图像编解码系统
US9154807B2 (en) * 2010-06-25 2015-10-06 Qualcomm Incorporated Inclusion of switched interpolation filter coefficients in a compressed bit-stream
US9930366B2 (en) * 2011-01-28 2018-03-27 Qualcomm Incorporated Pixel level adaptive intra-smoothing
CN107071411B (zh) * 2011-04-25 2020-08-28 Lg电子株式会社 一种由解码设备和编码设备执行的帧内预测方法
US9288500B2 (en) * 2011-05-12 2016-03-15 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
US9282344B2 (en) * 2011-11-04 2016-03-08 Qualcomm Incorporated Secondary boundary filtering for video coding
US9020294B2 (en) * 2012-01-18 2015-04-28 Dolby Laboratories Licensing Corporation Spatiotemporal metrics for rate distortion optimization
JP5841670B2 (ja) * 2012-09-28 2016-01-13 日本電信電話株式会社 イントラ予測符号化方法、イントラ予測復号方法、イントラ予測符号化装置、イントラ予測復号装置、それらのプログラム並びにプログラムを記録した記録媒体
US9451254B2 (en) * 2013-07-19 2016-09-20 Qualcomm Incorporated Disabling intra prediction filtering
WO2015057947A1 (en) * 2013-10-17 2015-04-23 Huawei Technologies Co., Ltd. Improved reference pixel selection and filtering for intra coding of depth map
CN108141609A (zh) * 2015-10-21 2018-06-08 夏普株式会社 预测图像生成装置、图像解码装置以及图像编码装置
US10230961B2 (en) * 2016-06-03 2019-03-12 Mediatek Inc. Method and apparatus for template-based intra prediction in image and video coding
US10674165B2 (en) * 2016-12-21 2020-06-02 Arris Enterprises Llc Constrained position dependent intra prediction combination (PDPC)
US20190089952A1 (en) * 2017-09-19 2019-03-21 Futurewei Technologies, Inc. Bidirectional Weighted Intra Prediction

Also Published As

Publication number Publication date
WO2017058635A1 (en) 2017-04-06
US20170094285A1 (en) 2017-03-30
BR112018006408A2 (pt) 2018-10-09
EP3357247A1 (en) 2018-08-08
JP6903644B2 (ja) 2021-07-14
BR112018006408B1 (pt) 2023-12-26
US20190373267A1 (en) 2019-12-05
US10425648B2 (en) 2019-09-24
TW201729595A (zh) 2017-08-16
KR20180063201A (ko) 2018-06-11
CA3000373C (en) 2024-01-16
CN108141608B (zh) 2021-08-24
EP3357247B1 (en) 2019-12-18
TWI766844B (zh) 2022-06-11
CA3000373A1 (en) 2017-04-06
CN113612997A (zh) 2021-11-05
JP2018530246A (ja) 2018-10-11
CN108141608A (zh) 2018-06-08

Similar Documents

Publication Publication Date Title
ES2779461T3 (es) Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo
ES2884375T3 (es) Intra predicción de croma de modelo lineal para codificación de vídeo
ES2715555T3 (es) Predicción residual de componentes cruzadas adaptativa
ES2867624T3 (es) Extracción de subflujos de bits de MCTS para codificación de vídeo
ES2938068T3 (es) Codificador de video, decodificador de video y métodos de codificación y decodificación correspondientes
ES2763443T3 (es) Codificación de vídeo en modo intra
ES2611349T3 (es) Codificación de Indicador de bloque codificado (CBF) para el formato de muestra 4:2:2 en codificación de vídeo
ES2657546T3 (es) Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo
ES2761301T3 (es) Coeficientes de codificación por entropía usando un modelo de contexto conjunto
ES2625821T3 (es) Simplificación de decisión de modo para predicción intra
ES2880744T3 (es) Señalización de resolución adaptable del vector de movimiento para la codificación de vídeo
ES2656494T3 (es) Filtro intra-suavizante para codificación de vídeo
ES2952256T3 (es) Modelado de contexto eficiente de memoria
ES2705746T3 (es) Inicialización de estados y probabilidades de contexto para codificación de entropía adaptativa al contexto
ES2648312T3 (es) Relleno de píxeles de borde para intra-predicción en codificación de vídeo
ES2892479T3 (es) Modo de predicción ponderada para codificación de video escalable
ES2649532T3 (es) Predicción ponderada explícita de alta precisión para la codificación de vídeo
ES2736312T3 (es) Señalización de imágenes de referencia a largo plazo para codificación de vídeo
ES2886344T3 (es) Predicción residual generalizada para codificación de vídeo escalable y codificación de vídeo 3D
ES2750124T3 (es) Elementos sintácticos de señalización para coeficientes de transformada para subconjuntos de una unidad de codificación a nivel de hoja
ES2736308T3 (es) Predicción de texturas entre capas para codificación de vídeo
ES2842082T3 (es) Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa
JP2013543713A (ja) ビデオ符号化のための適応動きベクトル解像度信号伝達
KR20160031496A (ko) 인트라 모션 보상 확장
ES2856099T3 (es) Señalización mejorada de identificadores de capa para puntos de operación de un codificador de vídeo