ES2950165T3 - Sistemas, aparatos y métodos para el refinamiento de la predicción inter con flujo óptico - Google Patents

Sistemas, aparatos y métodos para el refinamiento de la predicción inter con flujo óptico Download PDF

Info

Publication number
ES2950165T3
ES2950165T3 ES20709041T ES20709041T ES2950165T3 ES 2950165 T3 ES2950165 T3 ES 2950165T3 ES 20709041 T ES20709041 T ES 20709041T ES 20709041 T ES20709041 T ES 20709041T ES 2950165 T3 ES2950165 T3 ES 2950165T3
Authority
ES
Spain
Prior art keywords
subblock
motion
current block
motion vector
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES20709041T
Other languages
English (en)
Inventor
Jiancong Luo
Yuwen He
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.)
Vid Scale Inc
Original Assignee
Vid Scale 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 Vid Scale Inc filed Critical Vid Scale Inc
Application granted granted Critical
Publication of ES2950165T3 publication Critical patent/ES2950165T3/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Measuring Volume Flow (AREA)

Abstract

Se describen métodos, aparatos y sistemas. En una realización, un método de decodificación incluye obtener una señal de predicción de movimiento basada en subbloques para un bloque actual del vídeo; obtener uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques o uno o más valores de diferencia del vector de movimiento; obtener una señal de refinamiento para el bloque actual basándose en uno o más gradientes espaciales obtenidos o uno o más valores de diferencia del vector de movimiento obtenidos; obtener una señal de predicción de movimiento refinada para el bloque actual basándose en la señal de predicción de movimiento basada en subbloques y la señal de refinamiento; y decodificar el bloque actual basándose en la señal de predicción de movimiento refinada. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Sistemas, aparatos y métodos para el refinamiento de la predicción inter con flujo óptico
Referencia cruzada
Esta aplicación reivindica el beneficio de las solicitudes de patente provisional de EE.UU. n° 62/802,428, presentada el 7 de febrero de 2019, 62/814,611, presentada el 6 de marzo de 2019, y 62/883,999 presentada el 15 de abril de 2019. Campo de la invención
Esta solicitud se relaciona con la codificación de video y, en particular, con los sistemas, aparatos y métodos que utilizan el refinamiento de la predicción inter con flujo óptico.
Técnica relacionada
Los sistemas de codificación de video se usan ampliamente para comprimir señales de video digital para reducir el ancho de banda de almacenamiento y/o transmisión de dichas señales. Entre los diversos tipos de sistemas de codificación de video, como los sistemas basados en bloques, basados en ondículas y basados en objetos, hoy en día los sistemas de codificación de video híbridos basados en bloques son los más utilizados y desplegados. Los ejemplos de sistemas de codificación de video basados en bloques incluyen estándares internacionales de codificación de video como MPEG1/2/4 parte 2, H.264/MPEG-4 parte 10 AVC, VC-1 y el último estándar de codificación de video llamado Codificación de Video de Alta Eficiencia (HEVC), que fue desarrollado por JCT-VC (Equipo de Colaboración Conjunto sobre Codificación de Video) de ITU-T/SG16/Q.6/VCEG e ISO/IEC/MPEG.
El documento "Test Model 3 of Versatile Video Coding (VTM 3)", 124. REUNIÓN MPEG; 20181008 - 20181012; MACAO; (MOTION PICTURE EXPERT GROUP O ISO/IEC JTC1/SC29/WG11), n2 n18028 14 de enero de 2019 (2019-01 -14), describe la introducción de predicción compensada de movimiento afín en el estándar VVC.
El documento XIU (INTERDIGITAL) X ET AL: "CE9-related: Complexity reduction and bit-width control for bi-directional optical flow (BIO)", 124. REUNIÓN MPEG; 20181008 - 20181012; MACAO; (GRUPO DE EXPERTOS EN IMÁGENES EN MOVIMIENTO O ISO/IEC JTC1/SC29/WG11), n2 m44280 8 de octubre de 2018 (2018-10-08), revela que para derivar el refinamiento del movimiento BIO de cada bloque de 4x4, tanto las muestras de predicción como los gradientes deben calcularse para todas las muestras en una ventana circundante de 6x6.
Compendio de la realización
La invención se define en las reivindicaciones independientes. Las realizaciones preferidas se exponen en las reivindicaciones dependientes.
Según la invención, se proporciona un método de decodificación como se establece en la reivindicación 1, un método de codificación como se establece en la reivindicación 2, un decodificador como se establece en la reivindicación 6 y un codificador como se establece en la reivindicación 7.
Breve descripción de los dibujos
Puede obtenerse una comprensión más detallada a partir de la descripción detallada a continuación, dada a modo de ejemplo junto con los dibujos adjuntos. Las figuras en la descripción son ejemplos. Como tal, las Figuras y la descripción detallada no deben considerarse limitantes, y son posibles y probables otros ejemplos igualmente efectivos. Además, los números de referencia similares en las figuras indican elementos similares, y en donde: la FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación de video basado en bloques representativo;
la FIG. 2 es un diagrama de bloques que ilustra un decodificador de video basado en bloques representativo; la FIG. 3 es un diagrama de bloques que ilustra un codificador de vídeo basado en bloques representativo con soporte de predicción bi generalizada (GBi);
la FIG. 4 es un diagrama que ilustra un módulo GBi representativo para un codificador;
la FIG. 5 es un diagrama que ilustra un decodificador de video basado en bloques representativo con soporte; la FIG. 6 es un diagrama que ilustra un módulo GBi representativo para un decodificador;
la FIG. 7 es un diagrama que ilustra un flujo óptico bidireccional representativo;
las FIG. 8A y 8B son diagramas que ilustran un modo afín de cuatro parámetros representativo;
la FIG. 9 es un diagrama que ilustra un modo afín de seis parámetros representativo;
a FIG. 10 es un diagrama que ilustra un procedimiento de predicción entrelazada representativo;
a FIG. 11 es un diagrama que ilustra valores de peso representativos (por ejemplo, asociados con píxeles) en un subbloque;
a FIG. 12 es un diagrama que ilustra las regiones en donde se aplica la predicción entrelazada y otras regiones en donde no se aplica la predicción entrelazada;
as FIG. 13A y 13B son diagramas que ilustran un proceso SbTMVP;
a FIG. 14 es un diagrama que ilustra bloques de movimiento vecinos (por ejemplo, bloques de movimiento de 4x4) que pueden usarse para la derivación de parámetros de movimiento;
a FIG. 15 es un diagrama que ilustra bloques de movimiento vecinos que pueden usarse para la derivación de parámetros de movimiento;
a FIG. 16 es un diagrama que ilustra una diferencia Av(i,j) de MV a nivel de pixel de MV de subbloque después de una predicción compensada de movimiento afín basada en subbloques;
a FIG. 17A es un diagrama que ilustra un procedimiento representativo para determinar un MV correspondiente a un centro real de un subbloque;
a FIG. 17B es un diagrama que ilustra ubicaciones de muestras de crominancia en un formato de crominancia 4:2:0;
a FIG. 17C es un diagrama que ilustra un subbloque de predicción ampliado;
a FIG. 18A es un diagrama de flujo que ilustra un primer método de codificación/descodificación representativo; a FIG. 18B es un diagrama de flujo que ilustra un segundo método de codificación/descodificación representativo; a FIG. 19 es un diagrama de flujo que ilustra un tercer método de codificación/descodificación representativo; a FIG. 20 es un diagrama de flujo que ilustra un cuarto método de codificación/descodificación representativo; a FIG. 21 es un diagrama de flujo que ilustra un quinto método de codificación/descodificación representativo; a FIG. 22 es un diagrama de flujo que ilustra un sexto método de codificación/descodificación representativo; a FIG. 23 es un diagrama de flujo que ilustra un séptimo método de codificación/descodificación representativo; a FIG. 24 es un diagrama de flujo que ilustra un octavo método de codificación/descodificación representativo; a FIG. 25 es un diagrama de flujo que ilustra un método de cálculo de gradiente representativo;
a FIG. 26 es un diagrama de flujo que ilustra un noveno método de codificación/descodificación representativo; a FIG. 27 es un diagrama de flujo que ilustra un décimo método de codificación/descodificación representativo; a FIG. 28 es un diagrama de flujo que ilustra un undécimo método de codificación/descodificación representativo; a FIG. 29 es un diagrama de flujo que ilustra un método de codificación representativo;
a FIG. 30 es un diagrama de flujo que ilustra otro método de codificación representativo;
a FIG. 31 es un diagrama de flujo que ilustra un duodécimo método de codificación/descodificación representativo; a FIG. 32 es un diagrama de flujo que ilustra un decimotercer método de codificación/descodificación representativo;
a FIG. 33 es un diagrama de flujo que ilustra un decimocuarto método de codificación/descodificación representativo;
a FIG. 34A es un diagrama de sistema que ilustra un sistema de comunicaciones ejemplar en donde se pueden mplementar una o más realizaciones descritas;
a FIG. 34B es un diagrama de sistema que ilustra una unidad de transmisión/recepción inalámbrica (WTRU) ejemplar que puede usarse dentro del sistema de comunicaciones ilustrado en la FIG. 34A según una realización; a FIG. 34C es un diagrama de sistema que ilustra una red de acceso por radio (RAN) ejemplar y una red central (CN) ejemplar que pueden usarse dentro del sistema de comunicaciones ilustrado en la FIG. 34A según una realización; y
la FIG. 34D es un diagrama de sistema que ilustra una RAN ejemplar adicional y una CN ejemplar adicional que pueden usarse dentro del sistema de comunicaciones ilustrado en la FIG. 34A según una realización.
Descripción detallada
Procedimientos de codificación de video híbrido basados en bloques
Al igual que HEVC, WC se basa en el marco de codificación de video híbrido basado en bloques.
La FIG. 1 es un diagrama de bloques que ilustra un sistema genérico de codificación de video híbrido basado en bloques.
Haciendo referencia a la FIG. 1, el codificador 100 puede estar provisto de una señal 102 de video de entrada que se procesa bloque por bloque (llamados unidades de codificación (CU)) y puede usarse para comprimir eficientemente señales de video de alta resolución (1080p y más). En HEVC, una Cu puede tener hasta 64x64 píxeles. Una CU puede dividirse además en unidades de predicción o PU, para las cuales pueden aplicarse procedimientos de predicción separados. Para cada bloque de video de entrada (MB y/o CU), se puede realizar la predicción 160 espacial y/o la predicción 162 temporal. La predicción espacial (o “predicción intra”) puede usar píxeles de los bloques vecinos ya codificados en la misma imagen/corte de video para predecir el bloque de video actual.
La predicción espacial puede reducir la redundancia espacial inherente a la señal de vídeo. La predicción temporal (también conocida como “predicción inter” o “predicción con compensación de movimiento”) utiliza píxeles de las imágenes de video ya codificadas para predecir el bloque de video actual. La predicción temporal puede reducir la redundancia temporal inherente a la señal de vídeo. La señal de predicción temporal para un bloque de video dado puede estar (por ejemplo, normalmente puede estar) señalado por uno o más vectores de movimiento (MV) que pueden indicar la cantidad y/o la dirección del movimiento entre el bloque actual (CU) y su bloque de referencia.
Si se admiten múltiples imágenes de referencia (como es el caso de los estándares de codificación de video recientes como H.264/AVC o HEVC), para cada bloque de video, se puede enviar su índice de imagen de referencia (por ejemplo, se puede enviar adicionalmente); y/o el índice de referencia puede usarse para identificar de qué imagen de referencia en el almacenamiento 164 de imágenes de referencia proviene la señal de predicción temporal. Después de la predicción espacial y/o temporal, el bloque 180 de decisión de modo en el codificador 100 puede elegir el mejor modo de predicción, por ejemplo, basado en el método/procedimiento de optimización de distorsión de velocidad. El bloque de predicción de la predicción 160 espacial o la predicción 162 temporal se puede restar del bloque 116 de video actual; y/o el residual de predicción puede descorrelacionarse usando la transformada 104 y cuantificarse 106 para lograr la tasa de bits objetivo. Los coeficientes residuales cuantificados pueden cuantificarse 110 inversamente y transformarse 112 inversamente para formar el residual reconstruido, que puede volver a sumarse al bloque de predicción en 126 para formar el bloque de vídeo reconstruido. Se puede aplicar más filtrado 166 en bucle, como filtro de desbloqueo y filtros de bucle adaptables, al bloque de vídeo reconstruido antes de colocarlo en el almacén 164 de imágenes de referencia y se puede utilizar para codificar futuros bloques de vídeo. Para formar el flujo de bits 120 de video de salida, el modo de codificación (inter o intra), la información del modo de predicción, la información de movimiento y los coeficientes residuales cuantificados pueden enviarse (por ejemplo, todos enviados) a la unidad 108 de codificación de entropía para comprimirse y/o o empaquetarse para formar el flujo de bits.
El codificador 100 puede implementarse utilizando un procesador, una memoria y un transmisor que proporcionan los diversos elementos/módulos/unidades descritas anteriormente. Por ejemplo, un experto en la materia entiende que: el transmisor puede transmitir un flujo de bits 120 a un decodificador; y que (2) el procesador puede configurarse para ejecutar software para permitir la recepción del video 102 de entrada y la realización de funciones asociadas con los diversos bloques del codificador 100.
La FIG. 2 es un diagrama de bloques que ilustra un decodificador de video basado en bloques.
Haciendo referencia a la FIG. 2, el decodificador 200 de video se puede proporcionar con el flujo de bits 202 de video que se puede desempaquetar y decodificar por entropía en la unidad 208 de decodificación de entropía. El modo de codificación y la información de predicción se pueden enviar a la unidad 260 de predicción espacial (para el modo de codificación intra) y/o la unidad 262 de predicción temporal (para el modo de codificación inter) para que el apropiado de ellos forme el bloque de predicción. Los coeficientes de transformada residual pueden enviarse a una unidad 210 de cuantificación inversa y a una unidad 212 de transformada inversa para reconstruir el bloque residual. El bloque reconstruido puede pasar por el filtrado 266 en bucle antes de almacenarse en el almacén 264 de imágenes de referencia. El video 220 reconstruido puede enviarse, por ejemplo, para controlar un dispositivo de visualización, además de guardarse en el almacén 264 de imágenes de referencia para usar en la predicción de futuros bloques de video.
El decodificador 200 puede implementarse utilizando un procesador, una memoria y un receptor que pueden proporcionar los diversos elementos/módulos/unidades descritas anteriormente. Por ejemplo, un experto en la materia entiende que: (1) el receptor puede configurarse para recibir un flujo de bits 202; y (2) el procesador puede configurarse para ejecutar software para permitir la recepción del flujo de bits 202 y la salida del video 220 reconstruido y la realización de funciones asociadas con los diversos bloques del decodificador 200.
Un experto en la técnica entiende que muchas de las funciones/operaciones/procesos de un codificador basado en bloques y un decodificador basado en bloques son los mismos.
En los códecs de video modernos, la predicción compensada de movimiento bidireccional (MCP) se puede usar para una alta eficiencia en la eliminación de la redundancia temporal al explotar las correlaciones temporales entre las imágenes. La señal de predicción doble puede formarse combinando dos señales de predicción única utilizando un valor de peso igual a 0,5, que puede no ser óptimo para combinar las señales de predicción única, especialmente en algunas condiciones en donde la iluminancia cambia rápidamente de una imagen de referencia a otra. Ciertas técnicas/operaciones y/o procedimientos de predicción pueden implementarse para compensar la variación de iluminancia a lo largo del tiempo aplicando algunos pesos globales/locales y/o valores de compensación a valores de muestra en imágenes de referencia (por ejemplo, algunos o cada uno de los valores de muestra en imágenes de referencia).
El uso de la predicción compensada de movimiento bidireccional (MCP) en los códecs de video permite eliminar las redundancias temporales al explotar las correlaciones temporales entre las imágenes. Se puede formar una señal de predicción doble combinando dos señales de predicción única utilizando un valor de peso (por ejemplo, 0,5). En ciertos videos, las características de iluminación pueden cambiar rápidamente de una imagen de referencia a otra. Por lo tanto, las técnicas de predicción pueden compensar las variaciones en la iluminancia a lo largo del tiempo (por ejemplo, transiciones de desvanecimiento) aplicando pesos globales o locales y/o valores de compensación a uno o más valores de muestra en las imágenes de referencia.
La predicción bi generalizada (GBi) puede mejorar la MCP para el modo de predicción bi. En el modo de predicción bidireccional, la señal de predicción en la muestra x dada puede calcularse mediante la Ecuación 1 de la siguiente manera:
Figure imgf000005_0001
En la ecuación anterior, P[x] puede denotar la señal de predicción resultante de una muestra x ubicada en una posición de imagen X. Pi[X+vi] puede ser la señal de predicción compensada por movimiento de x utilizando el vector de movimiento (MV) vi para i-ésimo lista (por ejemplo, lista 0, lista 1, etc.). w0 y w1 pueden ser los dos valores de peso compartidos entre (por ejemplo, todas) las muestras en un bloque. Con base en esta ecuación, se pueden obtener una variedad de señales de predicción ajustando el valor de peso, w0 y w1. Algunas configuraciones de w0 y w1 puede implicar la misma predicción que la predicción uni y la predicción bi. Por ejemplo, (w0, w1) = (1, 0) se puede utilizar para la predicción uni con la lista de referencia L0. (w0, w1) = (0, 1) se puede utilizar para la predicción uni con la lista de referencia L1. (w0, w1) = (0.5, 0.5) puede ser para la predicción bi con dos listas de referencia. El peso puede ser señalado por CU. Para reducir la sobrecarga de señalización, se puede aplicar una restricción, como w0+ w1 =1, de manera que se puede señalar un peso. Como tal, la Ecuación 1 se puede simplificar aún más como se establece en la Ecuación 2 de la siguiente manera:
Figure imgf000005_0002
Para reducir aún más la sobrecarga de señalización de peso, se puede discretizar w1 (por ejemplo, -2/8, 2/8, 3/8, 4/8, 5/8, 6/8, 10/8, etc.). Entonces, cada valor de peso puede indicarse mediante un valor de índice dentro de un rango limitado (por ejemplo, pequeño).
La FIG. 3 es un diagrama de bloques que ilustra un codificador de video basado en bloques representativo con soporte GBi.
El codificador 300 puede incluir un módulo 304 de decisión de modo, un módulo 306 de predicción espacial, un módulo 308 de predicción de movimiento, un módulo 310 de transformación, un módulo 312 de cuantificación, un módulo 316 de cuantificación inversa, un módulo 318 de transformación inversa, un filtro 320 de bucle, un almacenamiento 322 de imágenes de referencia y un módulo 314 de codificación de entropía. Algunos o todos los módulos o componentes del codificador (por ejemplo, el módulo 306 de predicción espacial) pueden ser iguales o similares a los descritos en relación con la FiG. 1. Además, el módulo 306 de predicción espacial y el módulo 308 de predicción de movimiento pueden ser módulos de predicción de dominio de píxeles. Por lo tanto, un flujo de bits 302 de video de entrada puede procesarse de manera similar al flujo de bits 102 de video de entrada, aunque el módulo 308 de predicción de movimiento puede incluir además soporte de GBi. Como tal, el módulo 308 de predicción de movimiento puede combinar dos señales de predicción separadas en forma de promedio ponderado. Además, el índice de peso seleccionado puede señalizarse en el flujo de bits 324 de vídeo de salida.
El codificador 300 puede implementarse utilizando un procesador, una memoria y un transmisor que proporcione los diversos elementos/módulos/unidades descritas anteriormente. Por ejemplo, un experto en la materia entiende que: el transmisor puede transmitir un flujo de bits 324 a un decodificador; y que (2) el procesador puede configurarse para ejecutar software para permitir la recepción del video 302 de entrada y la realización de funciones asociadas con los diversos bloques del codificador 300.
La FIG. 4 es un diagrama que ilustra un módulo 400 de estimación de GBi representativo que puede emplearse en un módulo de predicción de movimiento de un codificador, como el módulo 308 de predicción de movimiento. El módulo 400 de estimación de GBi puede incluir un módulo 402 de estimación de valor de peso y un módulo 404 de estimación de movimiento. Como tal, el módulo 400 de estimación de GBi puede utilizar un proceso (por ejemplo, una operación/proceso de dos pasos) para generar una señal de predicción intermedia, tal como una señal de predicción intermedia final. El módulo 404 de estimación de movimiento puede realizar la estimación de movimiento usando un bloque 401 de video de entrada y una o más imágenes de referencia recibidas de un almacén 406 de imágenes de referencia y buscando dos vectores de movimiento óptimos (MV) que apuntan a (por ejemplo, dos) bloques de referencia. El módulo 402 de estimación de valor de peso puede recibir: (1) una salida del módulo 404 de estimación de movimiento (por ejemplo, vectores de movimiento v0 y v 1), una o más imágenes de referencia del almacén 406 de imágenes de referencia y la información de peso W y puede buscar el índice de peso óptimo para minimizar el error de predicción bi ponderado entre el bloque de video actual y la predicción de predicción bi. Se contempla que la información de peso W pueda describir una lista de valores de peso disponibles o conjuntos de peso de tal manera que el índice de peso determinado y la información de peso W juntos puedan usarse para especificar los pesos w0 y w1 para ser utilizado en GBi. La señal de predicción de la predicción bi generalizada puede calcularse como un promedio ponderado de los dos bloques de predicción. La salida del módulo 400 de estimación de GBi puede incluir una señal de predicción inter, vectores de movimiento v0 y v 1, y/o índice de peso peso_idx, entre otros).
La FIG. 5 es un diagrama que ilustra un decodificador de video basado en bloques representativo compatible con GBi que puede decodificar un flujo de bits 502 (por ejemplo, de un codificador) que admite GBi, como el flujo de bits 324 producido por el codificador 300 descrito en relación con la FIG. 3. Como se muestra en la FIG. 5, el decodificador 500 de video puede incluir un decodificador 504 de entropía, un módulo 506 de predicción espacial, un módulo 508 de predicción de movimiento, un almacén 510 de imágenes de referencia, un módulo 512 de cuantificación inversa, un módulo 514 de transformación inversa y/o un módulo 518 de filtro de bucle Algunos o todos los módulos del decodificador pueden ser iguales o similares a los descritos en relación con la FIG. 2, aunque el módulo 508 de predicción de movimiento puede incluir además compatibilidad con GBi. Como tal, el modo de codificación y la información de predicción pueden usarse para derivar una señal de predicción usando predicción espacial o MCP con soporte de GBi. Para GBi, la información de movimiento del bloque y el valor de peso (por ejemplo, en forma de un índice que indica un valor de peso) pueden recibirse y decodificarse para generar el bloque de predicción.
El decodificador 500 puede implementarse utilizando un procesador, memoria y un receptor que pueden proporcionar los diversos elementos/módulos/unidades descritas anteriormente. Por ejemplo, un experto en la materia entiende que: (1) el receptor puede configurarse para recibir un flujo de bits 502; y (2) el procesador puede configurarse para ejecutar software para permitir la recepción del flujo de bits 502 y la salida del video 520 reconstruido y la realización de funciones asociadas con los diversos bloques del decodificador 500.
La FIG. 6 es un diagrama que ilustra un módulo de predicción de GBi representativo que puede emplearse en un módulo de predicción de movimiento de un decodificador, como el módulo 508 de predicción de movimiento.
Haciendo referencia a la FIG. 6, el módulo de predicción de GBi puede incluir un módulo 602 de promedio ponderado y un módulo 604 de compensación de movimiento, que pueden recibir una o más imágenes de referencia desde un almacén 606 de imágenes de referencia. El módulo 602 de promedio ponderado puede recibir la salida del módulo 604 de compensación de movimiento, información de peso W y un índice de peso (por ejemplo, peso_idx). La salida del módulo 604 de compensación de movimiento puede incluir información de movimiento, que puede corresponder a bloques de la imagen. El módulo 600 de predicción de GBi puede usar la información de movimiento de bloque y el valor de peso para calcular una señal de predicción de GBi (por ejemplo, una señal 608 de predicción inter) como un promedio ponderado de (por ejemplo, dos) bloques de predicción compensados por movimiento.
Predicción bipredictiva representativa basada en el modelo de flujo óptico
La FIG. 7 es un diagrama que ilustra un flujo óptico bidireccional representativo.
Haciendo referencia a la FIG. 7, una predicción bipredictiva puede basarse en un modelo de flujo óptico. Por ejemplo, una predicción asociada con un bloque actual (por ejemplo, curblk 700) puede basarse en el flujo óptico asociado con un primer bloque de predicción. / 0) 702 (por ejemplo, bloque de predicción temporalmente anterior, por ejemplo desplazado en el tiempo por T0) y un segundo bloque de predicción /(1) 704 (por ejemplo, bloque temporalmente futuro, por ejemplo desplazado en el tiempo por T1). La predicción bi en la codificación de video puede ser una combinación de dos bloques 702 y 704 de predicción temporal obtenidos a partir de las imágenes de referencia que ya están reconstruidas. Debido a la limitación de la compensación de movimiento (MC) basada en bloques, podría quedar un pequeño movimiento que se puede observar entre las muestras de dos bloques de predicción, lo que reduce la eficiencia de la predicción con compensación de movimiento. Se puede aplicar flujo óptico bidireccional (BIO, o denominado BDOF) para reducir los impactos de dicho movimiento para cada muestra dentro de un bloque. BIO puede proporcionar un refinamiento de movimiento de muestra que se puede realizar además de las predicciones compensadas de movimiento basadas en bloques cuando se usa predicción bi. Para BIO, la derivación del vector de movimiento refinado para cada muestra en un bloque puede basarse en un modelo de flujo óptico clásico. Por ejemplo, donde I(k)(x, y) es el valor de la muestra en la coordenada (x, y) del bloque de predicción derivado de la lista de imágenes de referencia k (k = 0, 1), y dyo(k)(x,y)/ dx y dyo(K)(x,y)/ dy son los gradientes horizontal y vertical de la muestra, dado el modelo de flujo óptico, el refinamiento del movimiento (vx,vy) en (x, y) se puede derivar por la Ecuación 3 de la siguiente manera:
Figure imgf000007_0001
En la FIG. 7, (MVxo, MVyo) asociado con el primer bloque 702 de predicción y (MVxi, MVyi) asociados con el segundo bloque 704 de predicción indican los vectores de movimiento a nivel de bloque que pueden usarse para generar los dos bloques de predicción / 0) y /(1). El refinamiento del movimiento (vx,vy) en el lugar de la muestra (x, y) puede calcularse minimizando la diferencia A entre los valores de las muestras después de la compensación de refinamiento de movimiento (por ejemplo, A y B en la FIG. 7), como se establece en la Ecuación 4 de la siguiente manera:
Figure imgf000007_0002
Por ejemplo, para asegurar la regularidad del refinamiento de movimiento derivado, se contempla que el refinamiento de movimiento sea consistente para las muestras dentro de una unidad pequeña (por ejemplo, un bloque 4x4 u otras unidades pequeñas). En Benchmark Set (BMS)-2.0, el valor de (vx,vy) se obtiene minimizando A dentro de la ventana de 6x6 Q alrededor de cada bloque de 4x4 como se establece en la Ecuación 5 de la siguiente manera:
Figure imgf000007_0003
Para resolver la optimización especificada en la Ecuación 5, el BIO puede usar un método/operación/procedimiento progresivo que puede optimizar el refinamiento del movimiento en la dirección horizontal y en la dirección vertical (por ejemplo, luego en la dirección vertical). Esto puede dar como resultado las Ecuaciones/Desigualdades 6 y 7 de la siguiente manera:
Figure imgf000007_0004
Dónde N puede ser una función suelo que puede generar el mayor valor que es menor o igual que la entrada y thBio puede ser el umbral de refinamiento de movimiento, por ejemplo para evitar la propagación de errores debido al ruido de codificación y/o movimiento local irregular, que es igual a 218-BD. Los valores de Si, S2 , S3, S5 y S6 puede calcularse adicionalmente como se establece en las Ecuaciones 8-12 de la siguiente manera:
Figure imgf000007_0005
donde los diversos gradientes pueden establecerse en las Ecuaciones 13-15 de la siguiente manera:
Figure imgf000007_0006
Por ejemplo, en BMS-2.0, los gradientes BIO en las Ecuaciones 13-15 en las direcciones horizontal y vertical se pueden obtener directamente calculando la diferencia entre dos muestras vecinas (por ejemplo, horizontal o verticalmente según la dirección del gradiente que se deriva) en una posición de muestra de cada bloque de predicción L0/L1, como se establece en las Ecuaciones 16 y 17 de la siguiente manera:
Figure imgf000007_0007
En las ecuaciones 8-12, L puede ser el aumento de profundidad de bits para el proceso/procedimiento BIO interno para mantener la precisión de los datos, por ejemplo, que puede establecerse en 5 en BMS-2.0. Para evitar la división por un valor menor, los parámetros de regulación r y m en las Ecuaciones 6 y 7 puede definirse como se establece en las Ecuaciones 18 y 19 de la siguiente manera:
Figure imgf000008_0001
dónde BD puede ser la profundidad de bits del vídeo de entrada. Con base en el refinamiento de movimiento derivado de las Ecuaciones 4 y 5, la señal de predicción bi final de la CU actual se puede calcular interpolando las muestras de predicción L0/L1 a lo largo de la trayectoria de movimiento con base en el flujo óptico de la Ecuación 3, como se especifica en las Ecuaciones 20 y 21 de la siguiente manera:
Figure imgf000008_0002
dónde shift y ooffset puede ser el desplazamiento a la derecha y el desplazamiento que se puede aplicar para combinar las señales de predicción L0 y L1 para la predicción bidireccional, por ejemplo, que se puede establecer igual a 15 - BD y 1 « (14 - BD) + 2-(1 « 13), respectivamente. Rnd(.) es una función de redondeo que puede redondear el valor de entrada al valor entero más cercano.
Modo afín representativo
En HEVC, se aplica un modelo de movimiento de traslación (solo un movimiento de traslación) para la predicción con compensación de movimiento. En el mundo real, hay muchos tipos de movimiento (por ejemplo, acercamiento/alejamiento, rotación, movimientos de perspectiva y otros movimientos irregulares). En WC Test Model (VTM)-2.0, se aplica una predicción compensada de movimiento afín. El modelo de movimiento afín es de 4 o 6 parámetros. La primera bandera para cada CU intercodificada se señaliza para indicar si se aplica el modelo de movimiento de traslación o el modelo de movimiento afín para la predicción inter. Si se aplica el modelo de movimiento afín, se envía una segunda bandera para indicar si el modelo es un modelo de 4 o 6 parámetros.
El modelo de movimiento afín de 4 parámetros tiene los siguientes parámetros: dos parámetros para el movimiento de traslación en las direcciones horizontal y vertical, un parámetro para el movimiento de zoom en ambas direcciones y un parámetro para el movimiento de rotación en ambas direcciones. Un parámetro de zoom horizontal es igual a un parámetro de zoom vertical. Un parámetro de rotación horizontal es igual a un parámetro de rotación vertical. El modelo de movimiento afín de cuatro parámetros se codifica en VTM usando dos vectores de movimiento en dos posiciones de puntos de control definidas en una esquina 810 superior izquierda y una esquina 820 superior derecha de la CU actual. También son posibles otras posiciones de puntos de control, como en otras esquinas y/o bordes de la CU actual.
Aunque anteriormente se describió un modelo de movimiento afín, otros modelos afines son igualmente posibles y podrían usarse en varias realizaciones en este documento.
Las FIG. 8A y 8B son diagramas que ilustran un modelo afín de cuatro parámetros representativo y una derivación de movimiento a nivel de subbloque para bloques afines. Haciendo referencia a las FIG. 8A y 8B, el campo de movimiento afín del bloque se describe mediante dos vectores de movimiento de punto de control en un primer punto 810 de control (en la esquina superior izquierda del bloque actual) y en un segundo punto 820 de control (en la esquina superior derecha del bloque actual), respectivamente. Basado en el movimiento del punto de control, el campo de movimiento (vx, vy) de un bloque codificado afín se describe como se establece en las Ecuaciones 22 y 23 de la siguiente manera:
Figure imgf000008_0003
dónde (vox, voy) puede ser un vector de movimiento del punto de control de la esquina 810 superior izquierda, (vix, viy) puede ser un vector de movimiento del punto de control de la esquina 820 superior derecha, como se muestra en la FIG. 8A, y w puede ser el ancho de la CU. Por ejemplo, en VTM-2.0, el campo de movimiento de una CU codificada afín se deriva en el nivel de bloque 4x4; eso es, (vx, vy) se deriva para cada uno de los bloques 4x4 dentro de la CU actual y se aplica al bloque 4x4 correspondiente.
Los cuatro parámetros del modelo afín de 4 parámetros pueden estimarse iterativamente. Los pares de MV en el paso
k se pueden indicar como ^(vox>voy)< (vix>viy)}j |a señal original (por ejemplo, señal de luminancia) como l(i,j), y la señal de predicción (por ejemplo, señal de luminancia) como /'*(/, j). El gradiente espacial gx(ij) y gy(ij) puede derivarse con un filtro Sobel aplicado a la señal de predicción /’k(i,j) en dirección horizontal y/o vertical, por ejemplo, respectivamente. La derivada de la Ecuación 3 se puede representar como se establece en las Ecuaciones 24 y 25 de la siguiente manera:
Figure imgf000009_0003
donde (a, b) pueden ser parámetros de traslación delta y (c, d) pueden ser parámetros de zoom y rotación delta en el paso k. El delta MV en los puntos de control se puede derivar con sus coordenadas como se establece en las Ecuaciones 26-29 como sigue. Por ejemplo, (0, 0), (w, 0) pueden ser coordenadas para los puntos 810 y 820 de control superior izquierdo y superior derecho, respectivamente.
Figure imgf000009_0004
Con base en la ecuación de flujo óptico, la relación entre el cambio de intensidad (por ejemplo, luminancia) y el gradiente espacial y el movimiento temporal se formula en la Ecuación 30 de la siguiente manera:
Figure imgf000009_0001
sustituyendo dvx (.^ f) y
Figure imgf000009_0002
con las Ecuaciones 24 y 25, la Ecuación 31 para el parámetro (a, b, c, d) se obtiene de la siguiente manera:
Figure imgf000009_0005
Dado que las muestras (por ejemplo, todas las muestras) en la CU satisfacen la Ecuación 31, el conjunto de parámetros (por ejemplo, a, b, c, d) puede resolverse utilizando, por ejemplo, un método de error de mínimos cuadrados. Los MV en dos puntos de control
Figure imgf000009_0006
en el paso (k+1) se pueden resolver con las Ecuaciones 26-29, y se pueden redondear a una precisión específica (por ejemplo, precisión de 1/4 de píxel (pel) u otra precisión de subpíxel, entre otras). Usando la iteración, los MV en dos puntos de control pueden refinarse, por ejemplo, hasta la convergencia (por ejemplo, cuando los parámetros (a, b, c, d) son todos ceros o el tiempo de iteración alcanza un límite predefinido).
La FIG. 9 es un diagrama que ilustra un modo afín de seis parámetros representativo en donde, por ejemplo: V0, V1, y V2 son vectores de movimiento en los puntos 910, 920 y 930 de control, respectivamente y (MVx, MVy) es el vector de movimiento de un subbloque centrado en la posición (x, y).
Haciendo referencia a la FIG.9, un modelo de movimiento afín (por ejemplo, con 6 parámetros) puede tener cualquiera de los siguientes parámetros: (1) un parámetro para el movimiento de traslación en la dirección horizontal; (2) un parámetro para el movimiento de traslación en la dirección vertical, (3) un parámetro para el movimiento de zoom en la dirección horizontal; (4) un parámetro para el movimiento de rotación en dirección horizontal, (5) un parámetro para el movimiento de acercamiento en dirección vertical y/o (6) un parámetro para el movimiento de rotación en dirección vertical. El modelo de movimiento afín de 6 parámetros puede codificarse con tres MV en tres puntos 910, 920 y 930 de control. Como se muestra en la FIG. 9, se definen tres puntos 910, 920 y 930 de control para CU codificada afín de 6 parámetros en las esquinas superior izquierda, superior derecha e inferior izquierda de CU, respectivamente. El movimiento en el punto 910 de control superior izquierdo puede estar relacionado con un movimiento de traslación, y el movimiento en el punto 920 de control superior derecho puede estar relacionado con un movimiento de rotación en dirección horizontal y/o un movimiento de zoom en dirección horizontal, y el movimiento en el punto 930 de control inferior izquierdo puede estar relacionado con una rotación en la dirección vertical y/o un movimiento de zoom en la dirección vertical. Para un modelo de movimiento afín de 6 parámetros, el movimiento de rotación y/o el movimiento de zoom en la dirección horizontal pueden no ser los mismos que los mismos movimientos en la dirección vertical. El vector de movimiento de cada subbloque (vx, vy) puede derivarse usando tres MV en los puntos 910, 920 y 930 de control como se establece en las Ecuaciones 32 y 33 de la siguiente manera:
Figure imgf000010_0002
dónde (v2x, V2y) puede ser el vector de movimiento V2 del punto 930 de control inferior izquierdo, (x, y) puede ser la posición central del subbloque, w puede ser el ancho de la CU y h puede ser la altura de la CU.
Los seis parámetros del modelo afín de 6 parámetros pueden estimarse de manera similar. Las Ecuaciones 24 y 25 pueden cambiarse como se establece en las Ecuaciones 34 y 35 de la siguiente manera.
Figure imgf000010_0003
donde (a, b) pueden ser parámetros de traslación delta, (c, d) pueden ser parámetros de zoom y rotación delta para dirección horizontal, y (e, f) pueden ser parámetros de rotación y zoom delta para dirección vertical, en el paso k. Las ecuaciones 31 pueden cambiarse como se establece en la ecuación 36, de la siguiente manera:
Figure imgf000010_0001
El conjunto de parámetros (a, b, c, d, e, f) puede resolverse, por ejemplo, usando el método/procedimiento/operación de mínimos cuadrados considerando las muestras (por ejemplo, todas las muestras) dentro de la CU. El MV del punto vk+i vk +1
de control superior izquierdo ( 0x ’ ) puede calcularse con las Ecuaciones 26-29. El MV del punto de control ' fc+l vk +1
superior derecho ( lx ’ ) puede calcularse con las Ecuaciones 37 y 38 como se establece a continuación. El MV fc+i
del punto de control inferior izquierdo (V2x ,v 2y ) puede calcularse con las Ecuaciones 39 y 40 como se establece a continuación.
Figure imgf000010_0004
Aunque los modelos afines de 4 y 6 parámetros se muestran en las FIG. 8A, 8B y 9, un experto entiende que son igualmente posibles modelos afines con diferentes números de parámetros y/o diferentes puntos de control.
Aunque los modelos afines se describen aquí junto con el refinamiento del flujo óptico, un experto en la materia entiende que son igualmente posibles otros modelos de movimiento junto con el refinamiento del flujo óptico.
Predicción entrelazada representativa para compensación de movimiento afín
Con la compensación de movimiento afín (AMC), por ejemplo, en VTM, un bloque de codificación se divide en subbloques tan pequeños como 4x4, a cada uno de los cuales se le puede asignar un vector de movimiento (MV) individual derivado del modelo afín, por ejemplo, como se muestra en las FIG. 8A y 8B o la FIG. 9. Con un modelo afín de 4 o 6 parámetros, el MV puede derivarse de los MV de los dos o tres puntos de control.
AMC puede enfrentar un dilema asociado con el tamaño de los subbloques. Con subbloques más pequeños, AMC puede lograr un mejor rendimiento de codificación, pero puede sufrir una mayor carga de complejidad.
La FIG. 10 es un diagrama que ilustra un procedimiento de predicción entrelazada representativo que puede lograr una granularidad más fina de los MV, por ejemplo, a cambio de un aumento moderado en la complejidad.
En la FIG. 10, un bloque 1010 de codificación puede dividirse en subbloques con dos patrones de división diferentes (por ejemplo, patrones 0 y 1 primero y segundo). El primer patrón 0 de división (por ejemplo, un patrón de primer subbloque, por ejemplo, un patrón de subbloque de 4x4) puede ser el mismo que en VTM y el segundo patrón 1 de división (por ejemplo, un segundo patrón de subbloque superpuesto y/o entrelazado) puede dividir el bloque 1010 de codificación en subbloques de 4x4 con un desplazamiento de 2x2 desde el primer patrón 0 de división, como se ilustra en la FIG. 10. Varias predicciones auxiliares (por ejemplo, dos predicciones P0 y P1 auxiliares) puede ser generadas por el AMC con los dos patrones de división (por ejemplo, el primer y segundo patrón 0 y 1 de división). El MV para cada subbloque en cada uno de los patrones 0 y 1 de división puede derivarse de los vectores de movimiento del punto de control (CPMV) mediante el modelo afín.
La predicción final P puede calcularse como una suma ponderada de las predicciones auxiliares (por ejemplo, dos predicciones auxiliares P0 y P1), formulada como se establece en las Ecuaciones 41 y 42, como sigue:
Figure imgf000011_0001
La FIG. 11 es un diagrama que ilustra valores de peso representativos (por ejemplo, asociados con píxeles) en un subbloque. Haciendo referencia a la FIG. 11, una muestra de predicción auxiliar ubicada en el centro (por ejemplo, píxeles centrales) del subbloque 1100 se puede asociar con un valor de peso 3 y una muestra de predicción auxiliar ubicada en un límite del subbloque 1100 se puede asociar con un valor de peso 1.
La FIG. 12 es un diagrama que ilustra las regiones en donde se aplica la predicción entrelazada y otras regiones en donde no se aplica la predicción entrelazada. Haciendo referencia a la FIG. 12, una región 1200 puede incluir una primera región 1210 (que se muestra en la FIG. 12 sin líneas cruzadas), por ejemplo, que tiene subbloques de 4x4 en donde se aplica la predicción entrelazada y una segunda región 1220 (que se muestra en la FIG. 12 como líneas cruzadas), por ejemplo, en donde no se aplica la predicción entrelazada. Para evitar la compensación de movimiento de bloques diminutos, la predicción entrelazada solo se puede aplicar a regiones donde el tamaño de los subbloques alcanza un tamaño umbral (por ejemplo, es 4x4), por ejemplo, para el primer y el segundo patrón de división.
En VTM-3.0, el tamaño de los subbloques puede ser de 4x4 en los componentes de crominancia y se puede aplicar la predicción entrelazada a los componentes de crominancia y/o al componente de luminancia. El ancho de banda no puede incrementarse mediante la predicción entrelazada ya que la región utilizada para realizar la compensación de movimiento (MC) para los subbloques (por ejemplo, todos los subbloques) puede recuperarse como un todo en el AMC. Para mayor flexibilidad, se puede señalar una bandera en una cabecera de segmento para indicar si se usa o no la predicción entrelazada. Para la predicción entrelazada, la bandera se puede señalar como una bandera de 1 bit (por ejemplo, un primer nivel lógico que siempre se puede señalar como 0 o 1).
Procedimientos representativos para la predicción de vectores de movimiento temporal basada en subbloques (SbTMVP)
SbTMVP es compatible con VTM. Similar a la predicción de vector de movimiento temporal (TMVP) en HEVC, SbTMVP puede usar un campo de movimiento en la imagen colocada, por ejemplo, para mejorar la predicción de vector de movimiento y el modo de fusión para las CU en la imagen actual. La misma imagen coubicada utilizada por TMVP puede usarse para SbTMVP. SbTMVP puede diferir de TMVP en lo siguiente: (1) TMVP puede predecir el movimiento a un nivel de CU y SbTMVP puede predecir el movimiento a un nivel de subCU; y/o (2) TMVP puede obtener los vectores de movimiento temporal del bloque colocado en la imagen colocada (por ejemplo, el bloque colocado puede ser el inferior derecho o el bloque central en relación con la CU actual) y SbTMVP puede aplicar un cambio de movimiento antes de obtener la información de movimiento temporal de la imagen colocada (por ejemplo, el cambio de movimiento puede obtenerse del vector de movimiento de uno de los bloques vecinos espaciales de la CU actual), entre otros.
Las FIG. 13A y 13B son diagramas que ilustran un proceso SbTMVP. La FIG. 13A muestra bloques vecinos espaciales usados por ATMVP y la FIG. 13B muestra una derivación de un campo de movimiento de sub-CU aplicando un cambio de movimiento desde el vecino espacial y escalando la información de movimiento de las correspondientes sub-CU coubicadas.
Haciendo referencia a las FIG. 13A y 13B, SbTMVP puede predecir vectores de movimiento de las sub-CU dentro de las operaciones CU actuales (por ejemplo, en dos operaciones). En la primera operación, los bloques vecinos espaciales A1, B1, B0 y A0 pueden examinarse en un orden de A1, B1, B0 y A0. Tan pronto como y/o después de que se identifique el primer bloque vecino espacial que tiene un vector de movimiento que usa la imagen coubicada como su imagen de referencia, este vector de movimiento puede seleccionarse para que sea el cambio de movimiento a aplicar. Si no se identifica tal movimiento a partir de los bloques vecinos espaciales, entonces el cambio de movimiento se puede establecer en (0, 0). En la segunda operación, el cambio de movimiento identificado en la primera operación se puede aplicar (por ejemplo, sumar a las coordenadas del bloque actual) para obtener información de movimiento de nivel inferior a CU (por ejemplo, vectores de movimiento e índices de referencia) de la imagen colocada, como ilustrado en la FIG. 13B. El ejemplo de la FIG. 13B ilustra el cambio de movimiento ajustado para bloquear el movimiento de A1. Para cada sub-CU, la información de movimiento de su bloque correspondiente (por ejemplo, la cuadrícula de movimiento más pequeña que cubre la muestra central) en la imagen coubicada puede usarse para derivar la información de movimiento para la sub-CU. Después de identificar la información de movimiento de la sub-CU coubicada, la información de movimiento puede convertirse en los vectores de movimiento y los índices de referencia de la su-CU actual de manera similar al proceso TMVP de HEVC. Por ejemplo, se puede aplicar una escala de movimiento temporal para alinear las imágenes de referencia de los vectores de movimiento temporal con las de la CU actual.
Una lista de combinación basada en subbloques combinados puede usarse en VTM-3 y puede contener o incluir SbTMVP y candidatos de combinación afines, por ejemplo, para usarse para señalar un modo de combinación basado en subbloques. El modo SbTMVP puede activarse/desactivarse mediante una bandera de conjunto de parámetros de secuencia (SPS). Si el modo SbTMVP está habilitado, el predictor SbTMVP se puede agregar como la primera entrada de la lista de candidatos de fusión basados en subbloques, seguido por los candidatos de fusión afines. El tamaño de la lista de combinación basada en subbloques puede señalarse en SPS y el tamaño máximo permitido de la lista de combinación basada en subbloques puede ser un número entero, por ejemplo, 5 en VTM3.
El tamaño de sub-CU utilizado en SbTMVP puede fijarse, por ejemplo, en 8x8 u otro tamaño de sub-CU, y como se hizo para el modo de fusión afín, el modo SbTMVP puede ser aplicable (por ejemplo, solo puede ser aplicable) a la CU con ambos anchura y altura que pueden ser mayores o iguales a 8. La lógica de codificación del candidato de fusión SbTMVP adicional puede ser la misma que para los otros candidatos de fusión. Por ejemplo, para cada CU en el segmento P o B, se puede realizar una verificación adicional de Distorsión de velocidad (RD) para decidir si usar el candidato SbTMVP.
Campo de vector de movimiento basado en regresión representativo
Para proporcionar una granularidad fina de los vectores de movimiento dentro de un bloque, se puede implementar una herramienta de Campo de Vector de Movimiento basada de Regresión (RMVF) (por ejemplo, en JVET-M0302), que puede intentar modelar los vectores de movimiento de cada bloque en un nivel de subbloque basado en los vectores de movimiento espacialmente vecinos.
La FIG. 14 es un diagrama que ilustra bloques de movimiento vecinos (por ejemplo, bloques de movimiento de 4x4) que pueden usarse para la derivación de parámetros de movimiento. Una fila 1410 y una columna 1420 de vectores de movimiento contiguos inmediatos sobre la base de subbloques de 4x4 (y sus ubicaciones centrales) de cada lado del bloque pueden usarse en un proceso de regresión. Por ejemplo, los vectores de movimiento vecinos pueden usarse en la derivación de parámetros de movimiento RMVF.
La FIG. 15 es un diagrama que ilustra bloques de movimiento vecinos que pueden usarse para la derivación de parámetros de movimiento para reducir la información de movimiento vecino (por ejemplo, el número de bloques de movimiento vecinos que se usarán en el proceso de regresión en relación con la FiG. 14 puede reducirse). Se puede usar una cantidad reducida de información de movimiento vecino para la derivación de parámetros RMVF de los bloques de movimiento 4x4 vecinos para la derivación de parámetros de movimiento (por ejemplo, aproximadamente la mitad, por ejemplo, aproximadamente cada otro bloque de movimiento vecino se puede usar para la derivación de parámetros de movimiento). Ciertos bloques de movimiento vecinos de la fila 1410 y la columna 1420 pueden seleccionarse, determinarse o predeterminarse para reducir la información de movimiento vecino.
Aunque aproximadamente la mitad de los bloques de movimiento vecinos de la fila 1410 y la columna 1420 se muestran seleccionados, se pueden seleccionar otros porcentajes (con otras ubicaciones de bloques de movimiento), por ejemplo, para reducir el número de bloques de movimiento vecinos que se utilizarán en el proceso de regresión. Se pueden usar cinco regiones (por ejemplo, abajo a la izquierda, izquierda, arriba a la izquierda, arriba, arriba a la derecha) como se muestra en las figuras al recopilar la información de movimiento para la derivación de parámetros de movimiento. Las regiones de movimiento de referencia superior derecha e inferior izquierda pueden estar limitadas a la mitad (por ejemplo, solo la mitad) del ancho o alto correspondiente del bloque actual.
En el modo RMVF, el movimiento del bloque se puede definir mediante un modelo de movimiento de 6 parámetros. Estos parámetros axx, axy, ayx, ayy, bx y by puede calcularse resolviendo un modelo de regresión lineal en el sentido del error cuadrático medio (MSE). La entrada al modelo de regresión puede consistir o incluir las ubicaciones centrales (x, y) y/o los vectores de movimiento (mvx y mvy) de los subbloques vecinos 4x4 disponibles como se define anteriormente. Vector de movimiento (MVx_subPu, MVysubPÜ) para un subbloque de 8x8 con ubicación central en (XsubPu, YsubPu) puede calcularse como se establece en la Ecuación 43 de la siguiente manera:
Figure imgf000012_0001
Los vectores de movimiento pueden calcularse para subbloques de 8x8 en relación con la ubicación central de los subbloques (por ejemplo, cada subbloque). Por ejemplo, la compensación de movimiento se puede aplicar con una precisión de subbloque de 8x8 en el modo RMVF. Para tener un modelado eficiente para el campo de vectores de movimiento, la herramienta RMVF se aplica solo en los casos en que está disponible al menos un vector de movimiento de al menos tres de las regiones candidatas.
Los parámetros del modelo de movimiento afín se pueden usar para derivar el vector de movimiento de ciertos píxeles (por ejemplo, cada píxel) en una CU. Aunque la complejidad de generar una predicción compensada de movimiento afín basada en píxeles puede ser alta (por ejemplo, muy alta) y también debido a que el requisito de ancho de banda de acceso a la memoria para este tipo de MC basado en muestras puede ser alto, un procedimiento/método de compensación de movimiento afín basado en subbloques se puede implementar (por ejemplo, por WC). Por ejemplo, una CU puede dividirse en subbloques (por ejemplo, subbloques de 4x4, subbloques cuadrados y/o subbloques de forma no cuadrada). A cada uno de los subbloques se le puede asignar un MV que se puede derivar de parámetros de modelo afines. El MV puede ser un MV en un centro del subbloque (u otra ubicación en el subbloque). Los píxeles del subbloque (por ejemplo, todos los píxeles del subbloque) pueden compartir el MV del subbloque. La compensación de movimiento afín basada en subbloques puede ser una compensación entre la eficiencia y la complejidad de la codificación. Para lograr una granularidad más fina de la compensación de movimiento, se puede implementar una predicción entrelazada para una compensación de movimiento afín y se puede generar promediando ponderadamente dos predicciones de compensación de movimiento de subbloque. La predicción entrelazada puede requerir y/o utilizar dos o más predicciones con compensación de movimiento por subbloque y, por lo tanto, puede aumentar el ancho de banda y la complejidad de la memoria.
En ciertas realizaciones representativas, pueden implementarse métodos, aparatos, procedimientos y/u operaciones para refinar la predicción compensada de movimiento afín basada en subbloques con flujo óptico (por ejemplo, usando y/o basándose en flujo óptico). Por ejemplo, después de realizar la compensación de movimiento afín basada en subbloques, la intensidad de píxel se puede refinar agregando un valor de diferencia derivado de la ecuación de flujo óptico, que se denomina refinamiento de predicción con flujo óptico (PROF). PROF puede lograr granularidad a nivel de píxeles sin aumentar significativamente la complejidad y puede mantener el ancho de banda de acceso a la memoria en el peor de los casos comparable con la compensación de movimiento afín basada en subbloques. PROF se puede aplicar en cualquier escenario en donde el campo del vector de movimiento a nivel de píxel esté disponible (por ejemplo, se pueda calcular) además de una señal de predicción (por ejemplo, una señal de predicción de movimiento sin refinar y/o una señal de predicción de movimiento basada en subbloques). Además del modo afín o además del mismo, los procedimientos PROF de predicción pueden utilizarse en otros modos de predicción de subbloques. Puede implementarse la aplicación de PROF en modos de subbloque, tales como SbTMVP y/o RMVF. La aplicación de PROF en predicción bi se describe aquí.
Procedimientos PROF representativos para el modo afín
En ciertas realizaciones representativas, se pueden implementar métodos, aparatos y/o procedimientos para mejorar la granularidad de la predicción compensada de movimiento afín basada en subbloques, por ejemplo aplicando un cambio en la intensidad de píxel derivado del flujo óptico (por ejemplo, la ecuación de flujo óptico ) y puede usar y/o requerir una operación de compensación de movimiento por subbloque (por ejemplo, solo una operación de compensación de movimiento por subbloque), que es la misma que la compensación de movimiento afín existente, por ejemplo en VVC.
La FIG. 16. Es un diagrama que ilustra un MV de subbloque y la diferencia de vector de movimiento a nivel de píxel Av(/,y) (por ejemplo, también denominado a veces MV de refinamiento para un píxel) después de una predicción compensada de movimiento afín basada en subbloques.
Haciendo referencia a la FIG. 16, una CU 1600 incluye subbloques 1610, 1620, 1630 y 1640. Cada subbloque 1610, 1620, 1630 y 1640 puede incluir una pluralidad de píxeles (por ejemplo, 16 píxeles en el subbloque 1610). Se ilustra el MV 1650 del subbloque (por ejemplo, como un MV de subbloque grueso o promedio) asociado con cada píxel 1660 (i, j) del subbloque 1610. Para cada píxel respectivo (i,j) en el subbloque 1610, un MV 1670 de refinamiento (i,j) (que es indicativo de la diferencia entre el MV 1660 real del píxel (i,j) y el subbloque Se determina MV 1650 (donde (i,j) define la posición de píxel en el subbloque 1610). Para mayor claridad de la FIG. 16, solo se etiqueta el MV 1670 de refinamiento (1,1), aunque se muestran otros movimientos individuales a nivel de píxel. En ciertas realizaciones representativas, el MV 1670 de refinamiento (i, j) se determina como una diferencia de vector de movimiento a nivel de píxel Av(/,y) (a veces denominada diferencia de vector de movimiento).
En ciertas realizaciones representativas, se pueden implementar métodos, aparatos, procedimientos y/u operaciones que incluyen cualquiera de las siguientes operaciones:
(1) en la primera operación: se puede realizar un AMC basado en subbloques como se describe en este documento para generar una predicción de movimiento basada en subbloques /(/,y);
(2) en la segunda operación: gradientes espaciales gx(/,y) y gy(/,y) de la predicción de movimiento basada en subbloques /(/,y) en cada ubicación de muestra (en un ejemplo, los gradientes espaciales pueden generarse utilizando el mismo proceso que la generación de gradientes utilizado en BDOF. Por ejemplo, el gradiente horizontal en una ubicación de muestra puede calcularse como la diferencia entre su muestra vecina derecha y su muestra vecina izquierda, y/o el gradiente vertical en una ubicación de muestra puede calcularse como la diferencia entre su muestra vecina inferior y su muestra vecina superior. En otro ejemplo, los gradientes espaciales pueden generarse usando un filtro Sobel);
(3) en la tercera operación: se puede calcular un cambio de intensidad de luminancia por píxel en una CU usando y/o mediante la ecuación de flujo óptico, por ejemplo, como se establece en la Ecuación 44 de la siguiente manera:
Figure imgf000013_0001
donde un valor de la diferencia del vector de movimiento Av(/,y) es la diferencia 1670 entre un MV a nivel de píxel calculado para la ubicación de la muestra (/, y), denotado por v(/, y), y el nivel de MV 1650 del subbloque del subbloque que cubre el píxel 1660 (/,y), como se muestra en la FiG. 16. El MV a nivel de píxel v(i,i) puede derivarse de los MV del punto de control mediante las Ecuaciones 22 y 23 para un modelo afín de 4 parámetros o mediante las Ecuaciones 32 y 33 para un modelo afín de 6 parámetros.
En ciertas realizaciones representativas, el valor de diferencia del vector de movimiento Av(/j) puede obtenerse mediante el parámetro de modelo afín mediante o utilizando las Ecuaciones 24 y 25, donde x e y pueden ser el desplazamiento desde la ubicación del píxel hasta el centro del subbloque. Dado que los parámetros del modelo afín y las compensaciones de píxeles no cambian de un subbloque a otro, el valor de la diferencia del vector de movimiento Av(i, j) puede calcularse para un primer subbloque y reutilizarse en otros subbloques de la misma CU. Por ejemplo, la diferencia entre un MV a nivel de píxel y un MV a nivel de subbloque se puede calcular usando las Ecuaciones 45 y 46 de la siguiente manera, ya que los parámetros afines de traducción (a, b) pueden ser los mismos para el MV a nivel de píxel y el MV del subbloque. (c, d, e, f) pueden ser cuatro parámetros afines adicionales (por ejemplo, cuatro parámetros afines distintos de los parámetros afines de traducción)
Figure imgf000014_0001
donde (i, j) puede ser la ubicación del píxel en relación con la posición superior izquierda de un subbloque, (Xsb, ysb) puede ser la posición central del subbloque con respecto a la posición superior izquierda del subbloque.
La FIG. 17A es un diagrama que ilustra un procedimiento representativo para determinar un MV correspondiente a un centro real de un subbloque.
Haciendo referencia a la FIG. 17A, dos subbloques SB0 y SB1 se muestran como subbloques de 4x4. Si el ancho de un subbloque es SW y la altura de un subbloque es SH, la posición central de un subbloque puede establecerse como ((SW-1)/2, (SH-1)/2). En otros ejemplos, la posición central del subbloque puede estimarse en base a la posición establecida como (SW/2, SH/2). El punto central real para el primer subbloque SB0 es P0 ‘ y para el segundo subbloque SB1 es P1’ usando ((SW-1)/2, (SH-1)/2). El punto central estimado para el primer subbloque SB0 es P0 y para el segundo subbloque SB1 es P1 usando, por ejemplo (SW/2, SH/2) (por ejemplo, en WC). En ciertas realizaciones representativas, el MV de un subbloque puede basarse con mayor precisión en la posición central real en lugar de la posición central estimada (que se usa en WC).
La FIG. 17B es un diagrama que ilustra ubicaciones de muestras de crominancia en un formato de crominancia 4:2:0. Haciendo referencia a la FIG. 17B, el MV del subbloque crominancia puede derivarse de los MV de los subbloques luminancia. Por ejemplo, en el formato de crominancia 4:2:0, un subbloque de crominancia de 4x4 puede corresponder a un área de luminancia de 8x8. Aunque se muestran realizaciones representativas junto con un formato de crominancia 4:2:0, el experto entiende que pueden usarse igualmente otros formatos de crominancia, como un formato de crominancia 4:2:2.
El MV del subbloque de crominancia puede obtenerse promediando un MV del subbloque de luminancia 4x4 superior izquierdo y un MV del subbloque de luminancia inferior derecho. El MV del subbloque de crominancia derivado puede o no estar ubicado en un centro del subbloque de crominancia para los tipos de ubicación de muestra de crominancia 0, 2 y/o 3. Para los tipos de ubicación de muestra de crominancia 0, 2 y 3, la ubicación del centro del bloque de crominancia (xsb,ysb) puede ser o puede necesitar ser ajustado por una compensación. Por ejemplo, para la ubicación de muestra de crominancia 4:2:0 tipo 0, 2 y 3, se pueden aplicar ajustes como se establece en las Ecuaciones 47-49 de la siguiente manera:
Figure imgf000014_0002
La predicción de movimiento basada en subbloques i(/,j) se puede refinar agregando un cambio de intensidad (por ejemplo, un cambio de intensidad de luminancia, por ejemplo como se proporciona en la Ecuación 44). La predicción final (es decir, refinada) /’(/,/) puede generarse mediante o usando la Ecuación 50 de la siguiente manera.
Figure imgf000014_0003
Cuando se aplica el refinamiento, la compensación de movimiento afín basada en subbloques puede lograr una granularidad a nivel de píxeles sin aumentar el ancho de banda y/o el ancho de banda de la memoria en el peor de los casos.
Para mantener la precisión de la predicción y/o el cálculo del gradiente, la profundidad de bits en el rendimiento relacionado con la operación del AMC basado en subbloques puede ser una profundidad de bits intermedia que puede ser mayor que la profundidad de bits de codificación.
El proceso descrito anteriormente se puede usar para refinar la intensidad de crominancia (por ejemplo, además o en lugar del refinamiento de la intensidad de luminancia). En un ejemplo, la diferencia de intensidad utilizada en la Ecuación 50 puede multiplicarse por un factor de peso w antes de agregarse a la predicción, como se ilustra en la Ecuación 51 de la siguiente manera:
Figure imgf000015_0003
donde w puede establecerse en un valor entre 0 y 1 inclusive. W puede señalizarse en un nivel CU o en un nivel de imagen. Por ejemplo, w puede estar señalado por un índice de peso. Por ejemplo, la tabla de índice 1 se puede utilizar para señalar w.
Figure imgf000015_0004
Tabla de índices 1
El algoritmo del codificador puede elegir el valor de w que resulte en el coste de distorsión de tasa más bajo.
Gradientes de muestras de predicción, por ejemplo, gxy/o gy, puede calcularse de diferentes maneras. En ciertas realizaciones representativas, las muestras de predicción gx y gy puede calcularse aplicando un filtro Sobel bidimensional. A continuación, se muestra un ejemplo de filtros Sobel 3x3 para gradientes horizontales y verticales:
Filtro Sobel horizontal:
Figure imgf000015_0001
1 2 1
Filtro Sobel vertical:
Figure imgf000015_0002
En otras realizaciones representativas, los gradientes pueden calcularse con un filtro unidimensional de 3 derivaciones. Un ejemplo puede incluir [-1 01], que puede ser más simple (por ejemplo, mucho más simple) que un filtro Sobel.
La FIG. 17C es un diagrama que ilustra una predicción de subbloque extendida. Los círculos 1710 sombreados son muestras de relleno alrededor de un subbloque de 4x4 (por ejemplo, los círculos 1720 no sombreados). Usando un filtro Sobel, como ejemplo, las muestras en la caja 1730 pueden usarse para calcular los gradientes de la muestra 1740 en el centro. Aunque los gradientes se pueden calcular utilizando un filtro Sobel, son posibles otros filtros, como un filtro de 3 pasos.
Para los filtros de gradiente ejemplares anteriores, por ejemplo, el filtro Sobel 3x3 y el filtro unidimensional, se puede usar y/o requerir una predicción de subbloque extendida para el cálculo de gradiente de subbloque. Se puede rellenar una fila en los límites superior e inferior y una columna en los límites izquierdo y derecho del subbloque, por ejemplo, para calcular el gradiente de aquellas muestras en los límites del subbloque.
Puede haber diferentes métodos/procedimientos y/u operaciones para obtener la predicción de subbloque ampliado. En una realización representativa, dada N x M como el tamaño del subbloque, a (N 2) x (M 2) la predicción de subbloque ampliado se puede obtener realizando una (N + 2) x (M 2) compensación de movimiento de bloque usando el MV del subbloque. Con esta realización, se puede aumentar el ancho de banda de la memoria. Para evitar el aumento del ancho de banda de la memoria, en ciertas realizaciones representativas, el (N K - 1) x (M + K - 1) las muestras de referencia enteras antes de la interpolación pueden obtenerse para la interpolación de N x M subbloque dado un filtro de interpolación K-pasos en ambas direcciones horizontal y vertical, muestras de borde del (N + K - 1) x (M K - 1) el bloque se puede copiar de una muestra adyacente del (N + K - 1) x (M K - 1) subbloque tal que la región extendida puede ser (N + K - 1 2) x (M K - 1 2). La región extendida se puede utilizar para la interpolación del (N + 2) x (M 2) subbloque. Estas realizaciones representativas aún pueden usar y/o requerir operaciones de interpolación adicionales para generar la (N + 2) x (M 2) predicción si el MV del subbloque apunta a una posición fraccionaria.
Por ejemplo, para reducir la complejidad del cálculo, en otras realizaciones representativas, la predicción del subbloque puede obtenerse mediante una N x M compensación de movimiento de bloque con el MV del subbloque. El borde de la (N + 2) x (M 2) predicción puede obtenerse sin interpolación mediante cualquiera de los siguientes: (1) compensación de movimiento de número entero siendo MV la parte entera del MV del subbloque; (2) compensación de movimiento de número entero, siendo MV el número entero más cercano MV del MV del subbloque; y/o (3) copiar de las muestras adyacentes más cercanas en la predicción de subbloques N x M.
La precisión y/o el rango del MV de refinamiento a nivel de píxel, por ejemplo, Av* y Avy puede afectar la precisión del PROF. En ciertas realizaciones representativas, se puede implementar una combinación de un componente fraccionario de múltiples bits y otro componente entero de múltiples bits. Por ejemplo, se puede utilizar un componente fraccionario de 5 bits y un componente entero de 11 bits. La combinación del componente fraccionario de 5 bits y el componente entero de 11 bits puede representar un rango de MV de -1024 a 1023 con una precisión de 1/32 pel con un número total de 16 bits.
La precisión de los gradientes, por ejemplo, gx y gy, y la del cambio de intensidad AI puede afectar el desempeño del PROF. En ciertas realizaciones representativas, la precisión de la muestra de predicción se puede mantener en un número predeterminado o un número señalado de bits (por ejemplo, la precisión de la muestra interna definida en el borrador VVC actual, que es de 14 bits). En ciertas realizaciones representativas, los gradientes y/o el cambio de intensidad AI puede mantenerse con la misma precisión que la muestra de predicción.
El rango del cambio de intensidad A I puede afectar el desempeño del PROF. El cambio de intensidad A I se puede recortar a un rango más pequeño para evitar un valor falso generado por un modelo afín inexacto. En un ejemplo, el cambio de intensidad AI puede ser recortado a profundidad de bits de predicción - 2.
La combinación del número de bits del componente de fracción de Avx y Avy, el número de bits del componente fraccional del gradiente y el número de bits del cambio de intensidad AI juntos pueden afectar la complejidad en ciertas implementaciones de hardware o software. En una realización representativa, se pueden usar 5 bits para representar el componente fraccionario de Avx y Avy, se pueden usar 2 bits para representar el componente fraccionario del gradiente, y se pueden usar 12 bits para representar AI, sin embargo, pueden ser cualquier número de bits.
Para reducir la complejidad del cálculo, el PROF puede omitirse en ciertas situaciones. Por ejemplo, si la magnitud de todo el delta basado en píxeles (por ejemplo, refinamiento) MV (Av(iJ)) dentro de un subbloque 4x4 es menor que un umbral, el PROF puede omitirse para toda una CU afín. Si el gradiente de todas las muestras dentro del subbloque 4x4 es menor que un umbral, se puede omitir el PROF.
El PROF se puede aplicar a componentes de crominancia tales como componentes Cb y/o Cr. El MV delta de los componentes Cb y/o Cr del subbloque puede reutilizar el MV delta del subbloque (por ejemplo, puede reutilizar el MV delta calculado para un subbloque diferente en la misma CU).
Aunque el procedimiento de gradiente (por ejemplo, la extensión de un subbloque para el cálculo de gradiente usando muestras de referencia copiadas) descrito en el presente documento se ilustra como si se usara con una operación PROF, el procedimiento de gradiente puede usarse con otras operaciones como operaciones BDOF y/u operaciones de estimación de movimiento afín, entre otros.
Procedimientos PROF representativos para otros modos de subbloques
PROF puede aplicarse en cualquier escenario en donde el campo de vector de movimiento a nivel de píxel esté disponible (por ejemplo, puede calcularse) además de una señal de predicción (por ejemplo, una señal de predicción no refinada). Por ejemplo, además del modo afín, el refinamiento de la predicción con flujo óptico se puede utilizar en otros modos de predicción de subbloques, por ejemplo, el modo SbTMVP (por ejemplo, el modo ATMVP en WC), o el campo de vector de movimiento basado en regresión (RMVF)
En ciertas realizaciones representativas, se puede implementar un método para aplicar PROF a SbTMVP. Por ejemplo, tal método puede incluir cualquiera de:
(1) en la primera operación, pueden generarse MV a nivel de subbloque y predicciones de subbloque basándose en el proceso SbTMVP existente descrito en este documento;
(2) en la segunda operación, los parámetros del modelo afín pueden ser estimados por el campo MV del subbloque usando un método/procedimiento de regresión lineal;
(3) en la tercera operación, los MV a nivel de píxel pueden obtenerse mediante los parámetros del modelo afín obtenidos en la segunda operación, y los vectores de refinamiento de movimiento a nivel de píxel asociados relativos a los MV de subbloque (Av(i,j)) pueden ser calculados; y/o
(4) en la cuarta operación, se puede aplicar el proceso de refinamiento de predicción con flujo óptico para generar la predicción final, entre otros.
En ciertas realizaciones representativas, se puede implementar un método para aplicar PROF a RMVF. Por ejemplo, tal método puede incluir cualquiera de:
(1) en la primera operación, el campo MV de nivel de subbloque, las predicciones de subbloque y/o los parámetros del modelo afín axx, axy, ayx, ayy, bx y bx puede generarse en base al proceso RMVF descrito en este documento; (2) en la segunda operación, las compensaciones de MV a nivel de píxel de los MV a nivel de subbloque (Av(i,j)) pueden derivarse mediante los parámetros del modelo afín axx, axy, ayx, ayy, bx y bx, por la Ecuación 52, como sigue:
Figure imgf000016_0001
donde (i,j) es el desplazamiento de píxeles desde el centro del subbloque. Dado que los parámetros afines y/o las compensaciones de píxeles desde el centro del subbloque no se cambian de un subbloque a otro, las compensaciones de MV de píxeles pueden calcularse (por ejemplo, solo se necesita o debe calcularse) para el primer subbloque y puede ser reutilizado para otros subbloques en la CU; y/o
(3) en la tercera operación, se puede aplicar el proceso PROF para generar la predicción final, por ejemplo, aplicando las Ecuaciones 44 y 50.
Procedimientos PROF representativos para predicción bi
Además de o en lugar de usar PROF en predicción uni como se describe en este documento, la técnica PROF puede usarse en predicción bi. Cuando se usa en predicción bi, el PROF puede usarse para generar predicción L0 y/o predicción L1, por ejemplo, antes de que se combinen con ponderaciones. Para reducir la complejidad del cálculo, se puede aplicar PROF (por ejemplo, solo se puede aplicar) a una predicción tal como L0 o L1. En ciertas realizaciones representativas, PROF se puede aplicar (por ejemplo, solo se puede aplicar) a una lista (por ejemplo, asociada con o a qué imagen de referencia está cerca la imagen actual (por ejemplo, dentro de un umbral de) y/o más cercana).
Procedimientos representativos para la habilitación de PROF
La habilitación de PROF puede señalarse en o en una cabecera de conjunto de parámetros de secuencia (SPS), una cabecera de conjunto de parámetros de imagen (PPS) y/o una cabecera de grupo de mosaicos. En ciertas realizaciones, se puede señalizar una bandera para indicar si PROF está habilitado o no para un modo afín. Si la bandera se establece en un primer nivel lógico (por ejemplo, "Verdadero"), PROF se puede utilizar tanto para la predicción uni como para la predicción bi. En ciertas realizaciones, se puede usar una segunda bandera si la primera bandera se establece en "Verdadero" para indicar si PROF está habilitado o no para el modo afín de predicción bi. Si la primera bandera se establece en un segundo nivel lógico (por ejemplo, "Falso"), se puede inferir que la segunda bandera se establece en "Falso". La aplicación de PROF para el componente crominancia se puede señalar con una bandera en la cabecera SPS, la cabecera PPS y/o la cabecera del grupo de mosaicos si la primera bandera se establece en "Verdadero", de modo que el control de PROF en luminancia y los componentes cromáticos se pueden separar.
Procedimientos representativos para PROF habilitado condicionalmente
Por ejemplo, para reducir la complejidad, PROF se puede aplicar cuando (por ejemplo, solo cuando) se cumplen ciertas condiciones. Por ejemplo, para un tamaño de CU pequeño (por ejemplo, por debajo de un nivel de umbral), el movimiento afín puede ser relativamente pequeño, de modo que el beneficio de aplicar PROF puede ser limitado. En ciertas realizaciones representativas, cuando o con la condición de que el tamaño de CU sea pequeño (por ejemplo, para un tamaño de CU que no sea superior a 16x16 como 8x8, 8x16, 16x8), PROF puede desactivarse en la compensación de movimiento afín para reducir la complejidad tanto para el codificador como para el decodificador. En ciertas realizaciones representativas, cuando el tamaño de CU es pequeño (por debajo del mismo nivel de umbral o diferente), PROF puede omitirse en la estimación de movimiento afín (por ejemplo, solo en la estimación de movimiento afín), por ejemplo, para reducir la complejidad del codificador, y PROF pueden realizarse en el decodificador independientemente del tamaño de CU. Por ejemplo, en el lado del codificador, después de la estimación de movimiento que busca los parámetros del modelo afín (por ejemplo, los MV del punto de control), se puede invocar un procedimiento de compensación de movimiento (MC) y se puede realizar PROF. Para cada iteración durante la estimación de movimiento, también se puede invocar el procedimiento MC. En la estimación de MC en movimiento, se puede omitir PROF para ahorrar complejidad y no habrá un desajuste de predicción entre el codificador y el decodificador porque el MC final en el codificador debe ejecutar PROF. Es decir, es posible que el codificador no aplique el refinamiento PROF mientras busca los parámetros del modelo afín (por ejemplo, los MV afines) para usarlos para la predicción de una CU, y una vez que el codificador complete la búsqueda, o después de que finalice la búsqueda, el codificador puede aplicar PROF para refinar la predicción para la CU utilizando los parámetros del modelo afín determinados a partir de la búsqueda.
En algunas realizaciones representativas, se puede usar una diferencia entre los CPMV como criterio para determinar si habilitar PROF. Cuando una diferencia entre los CPMV es pequeña (por ejemplo, por debajo de un nivel de umbral) de modo que el movimiento afín es pequeño, el beneficio de aplicar PROF puede ser limitado y PROF puede desactivarse para la compensación de movimiento afín y/o la estimación de movimiento afín. Por ejemplo, para el modo afín de 4 parámetros, si se cumplen las siguientes condiciones (por ejemplo, se cumplen todas las condiciones siguientes), se puede desactivar PROF:
Figure imgf000017_0001
Para un modo afín de 6 parámetros, además de o en lugar de la condición anterior, si se cumplen las siguientes condiciones (por ejemplo, todas las siguientes condiciones también se cumplen), PROF puede desactivarse:
Figure imgf000017_0002
Figure imgf000018_0001
donde T es un umbral predefinido, por ejemplo, 4. Este procedimiento de omisión de PROF basado en parámetros afines o CPMV se puede aplicar (por ejemplo, también solo se aplica) en el codificador y el decodificador puede o no omitir PROF.
Procedimientos representativos para PROF combinado con o en lugar de filtro de desbloqueo
Dado que PROF puede ser un refinamiento de píxeles que puede compensar el MC basado en bloques, la diferencia de movimiento entre los límites de los bloques puede reducirse (por ejemplo, puede reducirse en gran medida). Un codificador y/o un decodificador pueden omitir la aplicación de un filtro de desbloqueo y/o pueden aplicar filtros más débiles en los límites de los subbloques cuando se aplica PROF. Para una CU que se divide en múltiples unidades de transformación (TU), el artefacto de bloqueo puede aparecer en el límite del bloque de transformación.
En ciertas realizaciones representativas, un codificador y/o un decodificador pueden omitir la aplicación de un filtro de desbloqueo o pueden aplicar uno o más filtros más débiles en los límites del subbloque, a menos que el límite del subbloque coincida con un límite de TU.
Cuando o con la condición de que PROF se aplique a luminancia (por ejemplo, solo se aplique a luminancia), un codificador y/o decodificador puede omitir la aplicación del filtro de desbloqueo y/o puede aplicar uno o más filtros más débiles en los límites de subbloque para luminancia (por ejemplo, solo luminancia). Por ejemplo, el parámetro de intensidad límite Bs se puede utilizar para aplicar un filtro de desbloqueo más débil.
Por ejemplo, un codificador y/o un decodificador pueden omitir la aplicación de un filtro de desbloqueo en los límites de subbloque cuando se aplica PROF, a menos que el límite de subbloque coincida con un límite de TU. En ese caso, se puede aplicar un filtro de desbloqueo para reducir o eliminar los artefactos de bloqueo que pueden resultar a lo largo del límite de la TU.
Como otro ejemplo, un codificador y/o un decodificador pueden aplicar un filtro de desbloqueo débil en los límites de subbloque cuando se aplica PROF, a menos que el límite de subbloque coincida con un límite de TU. Se contempla que un filtro de desbloqueo 'débil' puede ser un filtro de desbloqueo más débil que el que se puede aplicar normalmente a los límites de los subbloques cuando no se aplica PROF. Cuando el límite del subbloque coincide con un límite de TU, se puede aplicar un filtro de desbloqueo más fuerte para reducir o eliminar los artefactos de bloqueo que se espera que sean más visibles a lo largo de los límites del subbloque que coinciden con los límites de la TU.
En ciertas realizaciones representativas, cuando o con la condición de que PROF se aplique (por ejemplo, solo se aplique) a luminancia, un codificador y/o un decodificador puede alinear la aplicación del filtro de desbloqueo para crominancia a luminancia, por ejemplo, a pesar de la falta de aplicación de PROF en crominancia, con fines de unificación de diseño. Por ejemplo, si PROF se aplica solo a luminancia, la aplicación normal del filtro de desbloqueo para luminancia se puede cambiar en función de si se aplicó PROF (y posiblemente en función de si había un límite de TU en el límite del subbloque). En ciertas realizaciones representativas, en lugar de tener una lógica separada/diferente para aplicar el filtro de desbloqueo a los píxeles de crominancia correspondientes, se puede aplicar un filtro de desbloqueo a los límites de los subbloques para que el crominancia coincida (y/o refleje) con el procedimiento de desbloqueo de luminancia.
La FIG. 18A es un diagrama de flujo que ilustra un primer método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 18A, el método 1800 representativo para codificar y/o decodificar incluye, en el bloque 1805, un codificador 100 o 300 y/o un decodificador 200 o 500, obteniendo una señal de predicción de movimiento basada en subbloque para un bloque actual, por ejemplo de un video. En el bloque 1810, el codificador 100 o 300 y/o el decodificador 200 o 500 obtienen uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloque para el bloque actual o uno o más valores de diferencia de vector de movimiento asociados con un subbloque del bloque actual. En el bloque 1815, el codificador 100 o 300 y/o el decodificador 200 o 500 obtienen una señal de refinamiento para el bloque actual en base a uno o más gradientes espaciales obtenidos o uno o más valores de diferencia de vector de movimiento obtenidos asociados con el subbloque del bloque actual. En el bloque 1820, el codificador 100 o 300 y/o el decodificador 200 o 500 obtienen una señal de predicción de movimiento refinada para el bloque actual basándose en la señal de predicción de movimiento basada en subbloque y la señal de refinamiento. En ciertas realizaciones, el codificador 100 o 300 codifica el bloque actual en función de la señal de predicción de movimiento refinada o el decodificador 200 o 500 decodifica el bloque actual en función de la señal de predicción de movimiento refinada. La señal de predicción de movimiento refinada puede ser una señal de predicción intermedia de movimiento refinada generada (por ejemplo, por un codificador 300 GBi y/o un decodificador 500 GBi) y puede usar una o más operaciones PROF.
En ciertas realizaciones representativas, por ejemplo, relacionadas con otros métodos descritos en este documento, incluidos los métodos 1850 y 1900, la obtención de una señal de predicción de movimiento basada en subbloques para un bloque actual del video puede incluir generar la señal de predicción de movimiento basada en subbloques.
En ciertas realizaciones representativas, por ejemplo relacionadas con otros métodos descritos en este documento, incluidos los métodos 1850 y 1900, entre otros, la obtención de uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques para el bloque actual o uno o más vectores de movimiento los valores de diferencia asociados con un subbloque del bloque actual pueden incluir la determinación de uno o más gradientes espaciales (por ejemplo, asociados con un filtro de gradiente) de la señal de predicción de movimiento basada en subbloque.
En ciertas realizaciones representativas, por ejemplo relacionadas con otros métodos descritos en este documento, incluidos los métodos 1850 y 1900, entre otros, la obtención de uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques para el bloque actual o uno o más vectores de movimiento valores de diferencia asociados con un subbloque del bloque actual incluye determinar uno o más valores de diferencia de vector de movimiento asociados con el subbloque del bloque actual.
En ciertas realizaciones representativas, por ejemplo relacionadas con otros métodos descritos en este documento, incluidos los métodos 1850 y 1900, entre otros, la obtención de la señal de refinamiento para el bloque actual en función de uno o más gradientes espaciales determinados o uno o más valores de diferencia de vector de movimiento determinados incluyen la determinación de una señal de refinamiento de predicción de movimiento, como la señal de refinamiento, para el bloque actual en función de los gradientes espaciales determinados.
En ciertas realizaciones representativas, por ejemplo relacionadas con otros métodos descritos en este documento, incluidos los métodos 1850 y 1900, entre otros, la obtención de la señal de refinamiento para el bloque actual en función de uno o más gradientes espaciales determinados o uno o más valores de diferencia de vector de movimiento determinados puede incluir la determinación de una señal de refinamiento de predicción de movimiento, como la señal de refinamiento, para el bloque actual en base a los valores de diferencia de vector de movimiento determinados.
Los términos "determinar" o "que determina" cuando se relacionan con algo, como información, generalmente pueden incluir uno o más de: estimar, calcular, predecir, obtener y/o recuperar la información. Por ejemplo, determinar puede referirse a recuperar algo de la memoria o un flujo de bits, entre otros.
En ciertas realizaciones representativas, por ejemplo relacionadas con otros métodos descritos en este documento, incluidos los métodos 1850 y 1900, entre otros, la obtención de la señal de predicción de movimiento refinada para el bloque actual en función de la señal de predicción de movimiento basada en subbloques y la señal de refinamiento incluye combinar (por ejemplo, sumar o restar, entre otros) la señal de predicción de movimiento basada en subbloque y la señal de refinamiento de predicción de movimiento para producir la señal de predicción de movimiento refinada para el bloque actual.
En ciertas realizaciones representativas, por ejemplo relacionadas con otros métodos descritos en este documento, incluidos los métodos 1850 y 1900, entre otros, la codificación y/o decodificación del bloque actual en función de la señal de predicción de movimiento refinada incluye la codificación del video usando la señal de predicción de movimiento refinada, como la predicción para el bloque actual y/o la decodificación del vídeo usando la señal de predicción de movimiento refinada, como la predicción para el bloque actual.
La FIG. 18B es un diagrama de flujo que ilustra un segundo método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 18B, el método 1850 representativo para codificar y/o decodificar un video incluye, en el bloque 1855, un codificador 100 o 300 y/o un decodificador 200 o 500, que genera una señal de predicción de movimiento basada en subbloque. En el bloque 1860, el codificador 100 o 300 y/o el decodificador 200 o 500 determina uno o más gradientes espaciales (por ejemplo, asociados con un filtro de gradiente) de la señal de predicción de movimiento basada en subbloque. En el bloque 1865, el codificador 100 o 300 y/o el decodificador 200 o 500 determina una señal de refinamiento de predicción de movimiento para el bloque actual basándose en los gradientes espaciales determinados. En el bloque 1870, el codificador 100 o 300 y/o el decodificador 200 o 500 combina (por ejemplo, suma o resta, entre otros) la señal de predicción de movimiento basada en subbloque y la señal de refinamiento de predicción de movimiento para producir una señal de predicción de movimiento refinada para el bloque actual. En el bloque 1875, el codificador 100 o 300 codifica el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual y/o el decodificador 200 o 500 decodifica el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual. En ciertas realizaciones, las operaciones en los bloques 1810, 1820, 1830 y 1840 se pueden realizar para un bloque actual que es el bloque que generalmente se refiere al bloque que se está codificando o decodificando actualmente. La señal de predicción de movimiento refinada puede ser una señal de predicción intermedia de movimiento refinada generada (por ejemplo, por un codificador 300 GBi y/o un decodificador 500 GBi) y puede usar una o más operaciones PROF.
Por ejemplo, la determinación de uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques, por parte del codificador 100 o 300 y/o el decodificador 200 o 500, puede incluir la determinación de un primer conjunto de gradientes espaciales asociados con una primera imagen de referencia y un segundo conjunto de gradientes espaciales asociados con una segunda imagen de referencia. La determinación de la señal de refinamiento de predicción de movimiento para el bloque actual, por parte del codificador 100 o 300 y/o el decodificador 200 o 500, se basa en los gradientes espaciales determinados y puede incluir la determinación de una señal de refinamiento de predicción inter de predicciones de movimiento (por ejemplo, una señal de predicción bi) para el bloque actual en función del primer y segundo conjunto de gradientes espaciales y también puede basarse en la información de peso W (por ejemplo, que indica o incluye uno o más valores de peso que están asociados con una o más imágenes de referencia ).
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, el codificador 100 o 300 puede generar, usar y/o enviar la información de peso W al decodificador 200 o 500 y/o el decodificador 200 o 500 puede recibir u obtener la información de peso W. Por ejemplo, la señal de refinamiento de predicción de movimiento para el bloque actual puede basarse en: (1) un primer valor de gradiente derivado del primer conjunto de gradientes espaciales y ponderado según un primer factor de peso indicado por la información de peso W y/o (2) un segundo valor de gradiente derivado del segundo conjunto de gradientes espaciales y ponderado según un segundo factor de peso indicado por la información de peso W.
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden comprender además el codificador 100 o 300 y/o el decodificador 200 o 500 que determina los parámetros del modelo de movimiento afín para el bloque actual del vídeo de modo que la señal de predicción de movimiento basada en subbloques pueda generarse utilizando los parámetros del modelo de movimiento afín determinados.
En ciertas realizaciones representativas que incluyen los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden incluir una determinación, por parte del codificador 100 o 300 y/o el decodificador 200 o 500, de uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques que puede incluir un cálculo de al menos un valor de gradiente para una ubicación de muestra respectiva, una parte de las ubicaciones de muestra respectivas o cada ubicación de muestra respectiva en al menos un subbloque de la señal de predicción de movimiento basada en subbloques. Por ejemplo, el cálculo de al menos un valor de gradiente para una ubicación de muestra respectiva, una parte de las ubicaciones de muestra respectivas o cada ubicación de muestra respectiva en al menos un subbloque de la señal de predicción de movimiento basada en subbloques puede incluir, para una ubicación de muestra respectiva, una parte de las ubicaciones de muestra respectivas o cada ubicación de muestra respectiva, aplicar un filtro de gradiente a la ubicación de muestra respectiva en al menos un subbloque de la señal de predicción de movimiento basada en subbloque.
En ciertas realizaciones representativas que incluyen los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos comprenden además el codificador 100 o 300 y/o el decodificador 200 o 500 que determina un conjunto de valores de diferencia de vector de movimiento asociados con el ubicaciones de muestra de un primer subbloque del bloque actual de la señal de predicción de movimiento basada en subbloque. En algunos ejemplos, los valores de diferencia pueden determinarse para un subbloque (por ejemplo, un primer subbloque) y pueden reutilizarse para algunos o todos los otros subbloques en el bloque actual. En ciertos ejemplos, la señal de predicción de movimiento basada en subbloques puede generarse y el conjunto de valores de diferencia de vector de movimiento puede determinarse utilizando un modelo de movimiento afín o un modelo de movimiento diferente (por ejemplo, otro modelo de movimiento basado en subbloques, como un modelo SbTMVP). Como ejemplo, el conjunto de valores de diferencia de vector de movimiento puede determinarse para un primer subbloque del bloque actual y puede usarse para determinar la señal de refinamiento de predicción de movimiento para uno o más subbloques adicionales del bloque actual.
En ciertas realizaciones representativas que incluyen los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, los uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques y el conjunto de valores de diferencia de vector de movimiento se utilizan para determinar la señal de refinamiento de predicción de movimiento para el bloque actual.
En ciertas realizaciones representativas que incluyen los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, la señal de predicción de movimiento basada en subbloques se genera y el conjunto de valores de diferencia de vector de movimiento se determina utilizando un modelo de movimiento afín para el bloque actual.
En ciertas realizaciones representativas que incluyen los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, la determinación de uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques puede incluir: para uno o más subbloques respectivos del bloque actual: una determinación de un subbloque extendido, usando la señal de predicción de movimiento basada en el subbloque y muestras de referencia adyacentes que bordean y rodean el subbloque respectivo; y una determinación, usando el subbloque extendido determinado, de gradientes espaciales del subbloque respectivo para determinar la señal de refinamiento de predicción de movimiento.
La FIG. 19 es un diagrama de flujo que ilustra un tercer método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 19, el método 1900 representativo para codificar y/o decodificar un video incluye, en el bloque 1910, un codificador 100 o 300 y/o un decodificador 200 o 500, que genera una señal de predicción de movimiento basada en subbloque. En el bloque 1920, el codificador 100 o 300 y/o el decodificador 200 o 500 determina un conjunto de valores de diferencia de vector de movimiento asociados con un subbloque del bloque actual (por ejemplo, el conjunto de valores de diferencia de vector de movimiento puede estar asociado con, por ejemplo, todos los subbloques del bloque actual). En el bloque 1930, el codificador 100 o 300 y/o el decodificador 200 o 500 determina una señal de refinamiento de predicción de movimiento para el bloque actual basándose en el conjunto determinado de valores de diferencia de vector de movimiento. En el bloque 1940, el codificador 100 o 300 y/o el decodificador 200 o 500 combina (por ejemplo, suma o resta, entre otros) la señal de predicción de movimiento basada en subbloque y la señal de refinamiento de predicción de movimiento para producir o generar una señal de predicción de movimiento refinada para el bloque actual. En el bloque 1950, el codificador 100 o 300 codifica el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual y/o el decodificador 200 o 500 decodifica el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual. En ciertas realizaciones, las operaciones en los bloques 1910, 1920, 1930 y 1940 se pueden realizar para un bloque actual que generalmente se refiere al bloque que se está codificando o decodificando actualmente. En ciertas realizaciones representativas, la señal de predicción de movimiento refinada puede ser una señal de predicción inter de movimiento refinada generada (por ejemplo, por un codificador GBi 300 o un decodificador GBi 500) y puede usar una o más operaciones PROF.
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden incluir una determinación, por parte del codificador 100 o 300 y/o el decodificador 200 o 500, de los parámetros del modelo de movimiento (por ejemplo, uno o más parámetros de modelo de movimiento afín) para el bloque actual del vídeo de modo que la señal de predicción de movimiento basada en subbloques pueda generarse utilizando los parámetros de modelo de movimiento determinados (por ejemplo, parámetros de modelo de movimiento afín).
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos incluyen una determinación, por parte del codificador 100 o 300 y/o el decodificador 200 o 500, de uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques. Por ejemplo, la determinación de uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques puede incluir un cálculo de al menos un valor de gradiente para una ubicación de muestra respectiva, una parte de las ubicaciones de muestra respectivas o cada ubicación de muestra respectiva en al menos un subbloque de la señal de predicción de movimiento basada en subbloques. Por ejemplo, el cálculo de al menos un valor de gradiente para una ubicación de muestra respectiva, una parte de las ubicaciones de muestra respectivas o cada ubicación de muestra respectiva en al menos un subbloque de la señal de predicción de movimiento basada en subbloques puede incluir, para una ubicación de muestra respectiva, una parte de las ubicaciones de muestra respectivas o cada ubicación de muestra respectiva, aplicar un filtro de gradiente a la ubicación de muestra respectiva en al menos un subbloque de la señal de predicción de movimiento basada en subbloque.
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden incluir una determinación, por parte del codificador 100 o 300 y/o el decodificador 200 o 500, de la señal de refinamiento de predicción de movimiento para el bloque actual utilizando valores de gradiente asociados con los gradientes espaciales para una ubicación de muestra respectiva, una parte de las ubicaciones de muestra respectivas o cada ubicación de muestra respectiva del bloque actual y el conjunto determinado de valores de diferencia de vector de movimiento asociados con las ubicaciones de muestra de un subbloque (por ejemplo, cualquier subbloque) del bloque actual de la señal de predicción de movimiento del subbloque.
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, la determinación de la señal de refinamiento de predicción de movimiento para el bloque actual puede usar valores de gradiente asociados con los gradientes espaciales para una o más ubicaciones de muestra o cada ubicación de muestra de uno o más subbloques del bloque actual y el conjunto determinado de valores de diferencia de vector de movimiento.
La FIG. 20 es un diagrama de flujo que ilustra un cuarto método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 20, el método 2000 representativo para codificar y/o decodificar un video puede incluir, en el bloque 2010, un codificador 100 o 300 y/o un decodificador 200 o 500, generando una señal de predicción de movimiento basada en subbloque usando al menos un primer vector de movimiento para un primer subbloque del bloque actual y otro vector de movimiento para un segundo subbloque del bloque actual. En el bloque 2020, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden calcular un primer conjunto de valores de gradiente para una primera ubicación de muestra en el primer subbloque de la señal de predicción de movimiento basada en subbloques y un segundo conjunto diferente de valores de gradiente para una segunda ubicación de muestra en el primer subbloque de la señal de predicción de movimiento basada en subbloque. En el bloque 2030, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar un primer conjunto de valores de diferencia de vector de movimiento para la primera ubicación de muestra y un segundo conjunto diferente de valores de diferencia de vector de movimiento para la segunda ubicación de muestra. Por ejemplo, el primer conjunto de valores de diferencia de vector de movimiento para una primera ubicación de muestra puede ser indicativo de una diferencia entre un vector de movimiento en la primera ubicación de muestra y el vector de movimiento del primer subbloque y el segundo conjunto de valores de diferencia de vector de movimiento para una segunda ubicación de muestra puede ser indicativo de una diferencia entre un vector de movimiento en la segunda ubicación de muestra y el vector de movimiento del primer subbloque. En el bloque 2040, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar una señal de refinamiento de predicción usando los conjuntos primero y segundo de valores de gradiente y los conjuntos primero y segundo de valores de diferencia de vector de movimiento. En el bloque 2050, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden combinar (por ejemplo, sumar o restar, entre otros) la señal de predicción de movimiento basada en subbloque con la señal de refinamiento de predicción para producir una señal de predicción de movimiento refinada. En el bloque 2060, el codificador 100 o 300 puede codificar el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual y/o el decodificador 200 o 500 puede decodificar el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual. En ciertas realizaciones, las operaciones en los bloques 2010, 2020, 2030, 2040 y 2050 pueden realizarse para un bloque actual que incluye una pluralidad de subbloques.
La FIG. 21 es un diagrama de flujo que ilustra un quinto método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 21, el método 2100 representativo para codificar y/o decodificar un video puede incluir, en el bloque 2110, un codificador 100 o 300 y/o un decodificador 200 o 500 que genera una señal de predicción de movimiento basada en subbloque para un bloque actual. En el bloque 2120, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar una señal de refinamiento de predicción utilizando información de flujo óptico indicativa de un movimiento refinado de una pluralidad de ubicaciones de muestra en el bloque actual de señal de predicción de movimiento basada en subbloques. En el bloque 2130, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden combinar (por ejemplo, sumar o restar, entre otros) la señal de predicción de movimiento basada en subbloque con la señal de refinamiento de predicción para producir una señal de predicción de movimiento refinada. En el bloque 2140, el codificador 100 o 300 puede codificar el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual y/o el decodificador 200 o 500 puede decodificar el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual. Por ejemplo, el bloque actual puede incluir una pluralidad de subbloques y la señal de predicción de movimiento basada en subbloques puede generarse utilizando al menos un primer vector de movimiento para un primer subbloque del bloque actual y un vector de movimiento adicional para un segundo subbloque del bloque actual.
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden incluir una determinación, por parte del codificador 100 o 300 y/o el decodificador 200 o 500, de la señal de refinamiento de predicción que puede utilizar información de flujo óptico. Esta determinación puede incluir el cálculo, por parte del codificador 100 o 300 y/o el decodificador 200 o 500, de un primer conjunto de valores de gradiente para una primera ubicación de muestra en el primer subbloque de la señal de predicción de movimiento basada en subbloques y un segundo conjunto diferente de valores de gradiente para una segunda ubicación de muestra en el primer subbloque de la señal de predicción de movimiento basada en subbloques. Se puede determinar un primer conjunto de valores de diferencia de vector de movimiento para la primera ubicación de muestra y un segundo conjunto diferente de valores de diferencia de vector de movimiento para la segunda ubicación de muestra. Por ejemplo, el primer conjunto de valores de diferencia de vector de movimiento para una primera ubicación de muestra puede ser indicativo de una diferencia entre un vector de movimiento en la primera ubicación de muestra y el vector de movimiento del primer subbloque y el segundo conjunto de valores de diferencia de vector de movimiento. para una segunda ubicación de muestra puede ser indicativo de una diferencia entre un vector de movimiento en la segunda ubicación de muestra y el vector de movimiento del primer subbloque. El codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar la señal de refinamiento de predicción utilizando los conjuntos primero y segundo de valores de gradiente y los conjuntos primero y segundo de valores de diferencia de vector de movimiento.
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden incluir una determinación, por parte del codificador 100 o 300 y/o el decodificador 200 o 500, del refinamiento de predicción señal que puede utilizar información de flujo óptico. Esta determinación puede incluir el cálculo de un tercer conjunto de valores de gradiente para la primera ubicación de muestra en el segundo subbloque de la señal de predicción de movimiento basada en subbloque y un cuarto conjunto de valores de gradiente para la segunda ubicación de muestra en el segundo subbloque de la señal de predicción de movimiento basada en subbloques. El codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar la señal de refinamiento de predicción para el segundo subbloque usando los conjuntos tercero y cuarto de valores de gradiente y los conjuntos primero y segundo de valores de diferencia de vector de movimiento.
La FIG. 22 es un diagrama de flujo que ilustra un sexto método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 22, el método 2200 representativo para codificar y/o decodificar un video puede incluir, en el bloque 2210, un codificador 100 o 300 y/o un decodificador 200 o 500 que determina un modelo de movimiento para un bloque actual del video. El bloque actual incluye una pluralidad de subbloques. Por ejemplo, el modelo de movimiento puede generar vectores de movimiento individuales (por ejemplo, por muestra) para una pluralidad de ubicaciones de muestra en el bloque actual. En el bloque 2220, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden generar, utilizando el modelo de movimiento determinado, una señal de predicción de movimiento basada en subbloques para el bloque actual. La señal de predicción de movimiento basada en subbloque generada puede usar un vector de movimiento para cada subbloque del bloque actual. En el bloque 2230, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden calcular valores de gradiente aplicando un filtro de gradiente a una parte de la pluralidad de ubicaciones de muestra de la señal de predicción de movimiento basada en subbloque. En el bloque 2240, el codificador 100 o 300 y/o el decodificador 200 o 500 determina valores de diferencia de vector de movimiento para la parte de las ubicaciones de muestra, cada uno de los valores de diferencia de vector de movimiento puede ser indicativo de una diferencia entre un vector de movimiento (por ejemplo, un vector de movimiento individual) generado para una ubicación de muestra respectiva, según el modelo de movimiento, y el vector de movimiento utilizado para producir la señal de predicción de movimiento basada en subbloque para el subbloque que incluye la ubicación de muestra respectiva. En el bloque 2250, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar una señal de refinamiento de predicción usando los valores de gradiente y los valores de diferencia de vector de movimiento. En el bloque 2260, el codificador 100 o 300 y/o el decodificador 200 o 500 combina (por ejemplo, suma o resta, entre otros) la señal de predicción de movimiento basada en subbloque con la señal de refinamiento de predicción para producir una señal de predicción de movimiento refinada para el bloque actual. En el bloque 2270, el codificador 100 o 300 codifica el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual y/o el decodificador 200 o 500 decodifica el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual.
La FIG. 23 es un diagrama de flujo que ilustra un séptimo método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 23, el método 2300 representativo para codificar y/o decodificar un video puede incluir, en el bloque 2310, un codificador 100 o 300 y/o un decodificador 200 o 500, que realiza una compensación de movimiento basada en subbloques para generar una señal de predicción de movimiento basada en subbloques, como una señal de predicción de movimiento aproximado. En el bloque 2320, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden calcular uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques en ubicaciones de muestra. En el bloque 2330, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden calcular un cambio de intensidad por píxel en el bloque actual basándose en los gradientes espaciales calculados. En el bloque 2340, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar una señal de predicción de movimiento basada en píxel basada en el cambio de intensidad calculado por píxel, como una señal de predicción de movimiento refinada. En el bloque 2350, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden predecir el bloque actual usando la señal de predicción de movimiento aproximado de cada subbloque del bloque actual y usando la señal de predicción de movimiento refinada de cada píxel del bloque actual. En ciertas realizaciones, las operaciones en los bloques 2310, 2320, 2330, 2340 y 2350 pueden realizarse para al menos un bloque (por ejemplo, el bloque actual) en el video. Por ejemplo, el cálculo del cambio de intensidad por píxel en el bloque actual puede incluir determinar un cambio de intensidad de luminancia para cada píxel en el bloque actual según una ecuación de flujo óptico. La predicción del bloque actual puede incluir la predicción de un vector de movimiento para cada píxel respectivo en el bloque actual mediante la combinación de un vector de predicción de movimiento aproximado para un subbloque que incluye el píxel respectivo con un vector de predicción de movimiento refinado que es relativo al movimiento aproximado vector de predicción y asociado con el píxel respectivo.
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300 y 2600 representativos, uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques pueden incluir cualquiera de: un gradiente horizontal y /o un gradiente vertical, y por ejemplo, el gradiente horizontal puede calcularse como una diferencia de luminancia o una diferencia de crominancia entre una muestra vecina derecha de una muestra de un subbloque y una muestra vecina izquierda de la muestra del subbloque y/o el gradiente vertical puede calcularse como la diferencia de luminancia o la diferencia de crominancia entre una muestra vecina inferior de la muestra del subbloque y una muestra vecina superior de la muestra del subbloque.
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300 y 2600 representativos, uno o más gradientes espaciales de la predicción de subbloques pueden generarse utilizando un filtro Sobel.
En ciertas realizaciones representativas que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300 y 2600 representativos, la señal de predicción de movimiento aproximado puede usar uno de: un modelo afín de 4 parámetros o un modelo afín de 6 parámetros. Por ejemplo, la compensación de movimiento basada en subbloques puede ser una de: (1) una compensación de movimiento basada en subbloques afines; o (2) otra compensación (por ejemplo, una compensación de movimiento en modo de predicción de vector de movimiento temporal basada en subbloque (SbTMVP); y/o una compensación basada en modo de campo de vector de movimiento basado en regresión (RMVF)). Con la condición de que se realice la compensación de movimiento basada en el modo SbTMVP, el método puede incluir: estimar, mediante una operación de regresión lineal, parámetros de modelo afines usando un campo de vector de movimiento de subbloque; y derivar vectores de movimiento a nivel de píxel utilizando los parámetros del modelo afín estimados. Con la condición de que se realice la compensación de movimiento basada en el modo RMVF, el método puede incluir: estimar parámetros de modelo afines; y derivar compensaciones de vector de movimiento a nivel de píxel a partir de vectores de movimiento a nivel de subbloque usando los parámetros de modelo afines estimados. Por ejemplo, los desplazamientos del vector de movimiento de píxeles pueden ser relativos a un centro (por ejemplo, el centro real o una ubicación de muestra más cercana al centro real) del subbloque. Por ejemplo, el vector de predicción de movimiento aproximado para el subbloque puede basarse en una posición central real del subbloque.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300 y 2600 representativos, estos métodos pueden incluir el codificador 100 o 300 o el decodificador 200 o 500 seleccionando uno de: (1) un centro de cada subbloque o (2) una de las ubicaciones de píxeles (por ejemplo, muestra) más cercanas al centro del subbloque, como una posición central asociada con el vector de predicción de movimiento aproximado (por ejemplo, predicción de movimiento basada en subbloque vector) para cada subbloque. Por ejemplo, la predicción del bloque actual utilizando la señal de predicción de movimiento aproximado (por ejemplo, señal de predicción de movimiento basada en subbloque) del bloque actual y utilizando la señal de predicción de movimiento refinada de cada píxel (por ejemplo, muestra) del bloque actual puede basarse en la posición central seleccionada de cada subbloque. Por ejemplo, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar una posición central asociada con los píxeles de crominancia del subbloque; y puede determinar un desplazamiento a la posición central de los píxeles de crominancia del subbloque en base a un tipo de muestra de ubicación de crominancia asociado con los píxeles de crominancia. La señal de predicción de movimiento aproximado (por ejemplo, la señal de predicción de movimiento basada en subbloque) para el subbloque puede basarse en la posición real del subbloque correspondiente a la posición central determinada de los píxeles de crominancia ajustados por el desplazamiento.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300 y 2600 representativos, estos métodos pueden incluir que el codificador 100 o 300 genere o el decodificador 200 o 500 reciba información que indique si el Refinamiento de Predicción con Flujo Óptico (PROF) está habilitado en uno de: (1) una cabecera de conjunto de parámetros de secuencia (SPS), (2) una cabecera de conjunto de parámetros de imagen (PPS) o (3) una cabecera de grupo de mosaicos. Por ejemplo, con la condición de que PROF esté habilitado, se puede realizar una operación de predicción de movimiento refinada de modo que la señal de predicción de movimiento aproximado (por ejemplo, la señal de predicción de movimiento basada en subbloque) y la señal de predicción de movimiento refinada se pueden usar para predecir el bloque actual. Como otro ejemplo, con la condición de que PROF no esté habilitado, la operación de predicción de movimiento refinada no se realiza de manera que solo la señal de predicción de movimiento aproximado (por ejemplo, la señal de predicción de movimiento basada en subbloque) puede usarse para predecir el bloque actual.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300 y 2600 representativos, estos métodos pueden incluir el codificador 100 o 300 y/o el decodificador 200 o 500 que determina si realizar una operación de predicción de movimiento refinado en el bloque actual o en una estimación de movimiento afín basada en atributos del bloque actual y/o atributos de la estimación de movimiento afín.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300 y 2600 representativos, estos métodos pueden incluir el codificador 100 o 300 y/o el decodificador 200 o 500 que determina si realizar una operación de predicción de movimiento refinado en el bloque actual o en una estimación de movimiento afín basada en atributos del bloque actual y/o atributos de la estimación de movimiento afín. Por ejemplo, la determinación de realizar la operación de predicción de movimiento refinada en el bloque actual en función de los atributos del bloque actual puede incluir determinar si se realiza la operación de predicción de movimiento refinada en el bloque actual en función de si: cualquiera de: (1) un tamaño del bloque actual excede un tamaño particular; y/o (2) una diferencia de vector de movimiento de punto de control (CPMV) supera un valor de umbral.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300 y 2600 representativos, estos métodos pueden incluir el codificador 100 o 300 y/o el decodificador 200 o 500 aplicando un primer filtro de desbloqueo a uno o más límites de un subbloque del bloque actual que coinciden con un límite de unidad de transformación y un segundo filtro de desbloqueo diferente a otros límites del subbloque del bloque actual que no coinciden con ningún límite de unidad de transformación. Por ejemplo, el primer filtro de desbloqueo puede ser un filtro de desbloqueo más fuerte que el segundo filtro de desbloqueo.
La FIG. 24 es un diagrama de flujo que ilustra un octavo método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 24, el método 2400 representativo para codificar y/o decodificar un video puede incluir, en el bloque 2410, un codificador 100 o 300 y/o un decodificador 200 o 500, que realiza una compensación de movimiento basada en subbloques para generar una señal de predicción de movimiento basada en subbloques, como una señal de predicción de movimiento aproximado. En el bloque 2420, el codificador 100 o 300 y/o el decodificador 200 o 500, para cada muestra de borde respectiva de un subbloque del bloque actual, puede determinar una o más muestras de referencia correspondientes a muestras adyacentes a la muestra de borde respectiva y que rodean el subbloque, como muestras de referencia circundantes, y puede determinar, utilizando las muestras de referencia circundantes y las muestras del subbloque adyacente a la muestra de borde respectiva, uno o más gradientes espaciales asociados con la muestra de borde respectiva. En el bloque 2430, el codificador 100 o 300 y/o el decodificador 200 o 500, para cada muestra que no está en el borde respectiva en el subbloque, puede determinar, usando muestras del subbloque adyacente a la muestra que no está en el borde respectiva, uno o más gradientes espaciales asociados con la muestra que no está en el borde respectiva. En el bloque 2440, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden calcular un cambio de intensidad por píxel en el bloque actual utilizando los gradientes espaciales determinados del subbloque. En el bloque 2450, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar una señal de predicción de movimiento basada en píxel basada en el cambio de intensidad calculado por píxel, como una señal de predicción de movimiento refinada. En el bloque 2460, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden predecir el bloque actual usando la señal de predicción de movimiento aproximado asociada con cada subbloque del bloque actual y usando la señal de predicción de movimiento refinada asociada con cada píxel del bloque actual. En ciertas realizaciones, las operaciones en los bloques 2410, 2420, 2430, 2440, 2450 y 2460 pueden realizarse para al menos un bloque (por ejemplo, el bloque actual) en el video.
En ciertas realizaciones representativas, incluidos al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300, 2400 y 2600 representativos, la determinación de uno o más gradientes espaciales de las muestras de borde y que no están en el borde puede incluir calcular uno o más gradientes espaciales usando cualquiera de: (1) un filtro Sobel vertical; (2) un filtro Sobel horizontal; o (3) un filtro de 3 pasos.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300, 2400 y 2600 representativos, estos métodos pueden incluir el codificador 100 o 300 y/o el decodificador 200 o 500 copiando muestras de referencia circundantes desde un almacén de referencia sin ninguna manipulación adicional y la determinación de uno o más gradientes espaciales asociados con la respectiva muestra de borde puede usar las muestras de referencia circundantes copiadas para determinar uno o más gradientes espaciales asociados con la respectiva muestra de borde.
La FIG. 25 es un diagrama de flujo que ilustra un método de cálculo de gradiente representativo.
Haciendo referencia a la FIG. 25, el método 2500 representativo para calcular un gradiente de un subbloque usando muestras de referencia correspondientes a muestras adyacentes a un borde del subbloque (por ejemplo, usado para codificar y/o decodificar un video) puede incluir, en el bloque 2510, un codificador 100 o 300 y/o un decodificador 200 o 500, para cada muestra de borde respectiva del subbloque del bloque actual, determinando una o más muestras de referencia correspondientes a muestras adyacentes a la muestra de borde respectiva y que rodean el subbloque, como muestras de referencia circundantes, y determinar, utilizando las muestras de referencia circundantes y las muestras del subbloque adyacente a la muestra de borde respectiva, uno o más gradientes espaciales asociados con la muestra de borde respectiva. En el bloque 2520, el codificador 100 o 300 y/o el decodificador 200 o 500, para cada muestra que no está en el borde respectiva en el subbloque, puede determinar, usando muestras del subbloque adyacente a la muestra que no está en el borde respectiva, uno o más gradientes espaciales asociados con la muestra que no está en el borde respectiva. En ciertas realizaciones, las operaciones en los bloques 2510 y 2520 pueden realizarse para al menos un bloque (por ejemplo, el bloque actual) en el video.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300, 2400, 2500 y 2600 representativos, el uno o más gradientes espaciales determinados pueden usarse para predecir el bloque actual mediante cualquiera de: (1) una operación de refinamiento de predicción con flujo óptico (PROF), (2) una operación de flujo óptico bidireccional o (3) una operación de estimación de movimiento afín.
La FIG. 26 es un diagrama de flujo que ilustra un noveno método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 26, el método 2600 representativo para codificar y/o decodificar un video puede incluir, en el bloque 2610, un codificador 100 o 300 y/o un decodificador 200 o 500 que genera una señal de predicción de movimiento basada en subbloques para un bloque actual del video. Por ejemplo, el bloque actual puede incluir una pluralidad de subbloques. En el bloque 2620, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden, para uno o más o cada uno de los subbloques respectivos del bloque actual, determinar un subbloque extendido, utilizando la señal de predicción de movimiento basada en subbloques y muestras de referencia adyacentes que limitan y rodean el subbloque respectivo, y determinan, usando el subbloque extendido determinado, los gradientes espaciales del subbloque respectivo. En el bloque 2630, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar una señal de refinamiento de predicción de movimiento para el bloque actual basándose en los gradientes espaciales determinados. En el bloque 2640, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden combinar (por ejemplo, sumar o restar, entre otros) la señal de predicción de movimiento basada en subbloque y la señal de refinamiento de predicción de movimiento para producir una señal de predicción de movimiento refinada para el bloque actual. En el bloque 2650, el codificador 100 o 300 puede codificar el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual y/o el decodificador 200 o 500 puede decodificar el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual. En ciertas realizaciones, las operaciones en el bloque 2610, 2620, 2630, 2640 y 2650 pueden realizarse para al menos un bloque (por ejemplo, el bloque actual) en el video.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden incluir el codificador 100 o 300 y/o el decodificador 200 o 500 copiando las muestras de referencia adyacentes de un almacén de referencia sin más manipulación. Por ejemplo, la determinación de los gradientes espaciales del subbloque respectivo puede usar las muestras de referencia adyacentes copiadas para determinar los valores de gradiente asociados con ubicaciones de muestra en un borde del subbloque respectivo. Las muestras de referencia adyacentes del bloque extendido pueden copiarse desde las posiciones enteras más cercanas en una imagen de referencia que incluye el bloque actual. En ciertos ejemplos, las muestras de referencia adyacentes del bloque extendido tienen un vector de movimiento entero más cercano redondeado desde una precisión original.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden incluir el codificador 100 o 300 y/o el decodificador 200 o 500 que determina los parámetros del modelo de movimiento afín para el bloque actual del vídeo de manera que la señal de predicción de movimiento basada en subbloques pueda generarse utilizando los parámetros del modelo de movimiento afín determinados.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2300, 2500 y 2600 representativos, la determinación de gradientes espaciales del subbloque respectivo puede incluir el cálculo de al menos un valor de gradiente para cada ubicación de la muestra respectiva en el subbloque respectivo. Por ejemplo, el cálculo de al menos un valor de gradiente para cada ubicación de muestra respectiva en el subbloque respectivo puede incluir, para cada ubicación de muestra respectiva, aplicar un filtro de gradiente a la ubicación de muestra respectiva en el subbloque respectivo. Como otro ejemplo, el cálculo de al menos un valor de gradiente para cada ubicación de muestra respectiva en el subbloque respectivo puede incluir determinar un cambio de intensidad para cada ubicación de muestra respectiva en el subbloque respectivo según ecuaciones de flujo óptico.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden incluir el codificador 100 o 300 y/o el decodificador 200 o 500 que determina un conjunto de valores de diferencia de vector de movimiento asociados con las ubicaciones de muestra del subbloque respectivo. Por ejemplo, la señal de predicción de movimiento basada en subbloques puede generarse y el conjunto de valores de diferencia de vector de movimiento puede determinarse usando un modelo de movimiento afín para el bloque actual.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, el conjunto de valores de diferencia de vector de movimiento puede determinarse para el subbloque respectivo del bloque actual y puede usarse para determinar la señal de refinamiento de predicción de movimiento para otros subbloques restantes del bloque actual.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, la determinación de los gradientes espaciales del subbloque respectivo puede incluir el cálculo de los gradientes espaciales usando cualquiera de: (1 ) un filtro Sobel vertical; (2) un filtro Sobel horizontal; y/o (3) un filtro de 3 pasos.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, las muestras de referencia adyacentes que bordean y rodean el subbloque respectivo pueden usar una compensación de movimiento entera.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, los gradientes espaciales del subbloque respectivo pueden incluir cualquiera de: un gradiente horizontal o un gradiente vertical. Por ejemplo, el gradiente horizontal puede calcularse como una diferencia de luminancia o una diferencia de crominancia entre una muestra vecina derecha de una muestra respectiva y una muestra vecina izquierda de la muestra respectiva; y/o el gradiente vertical puede calcularse como la diferencia de luminancia o la diferencia de crominancia entre una muestra vecina inferior de la muestra respectiva y una muestra vecina superior de la muestra respectiva.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, la señal de predicción de movimiento basada en subbloques puede generarse utilizando cualquiera de: (1) un modelo afín de 4 parámetros; (2) un modelo afín de 6 parámetros; (3) una compensación de movimiento en modo Predicción de Vector de Movimiento Temporal (SbTMVP) basada en subbloques; o (3) una compensación de movimiento basada en regresión. Por ejemplo, con la condición de que se realice una compensación de movimiento en modo SbTMVP, el método puede incluir: estimar, mediante una operación de regresión lineal, parámetros de modelo afines usando un campo de vector de movimiento de subbloque; y/o derivar vectores de movimiento a nivel de píxel utilizando los parámetros del modelo afín estimados. Como otro ejemplo, con la condición de que se realice una compensación de movimiento basada en el modo RMVF, el método puede incluir: estimar parámetros de modelo afines; y/o derivar compensaciones de vector de movimiento a nivel de píxel a partir de vectores de movimiento a nivel de subbloque usando los parámetros del modelo afín estimados. Los desplazamientos del vector de movimiento de píxeles pueden ser relativos a un centro del subbloque respectivo.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, la señal de predicción de movimiento refinada para el subbloque respectivo puede basarse en una posición central real del subbloque respectivo o puede basarse en una ubicación de muestra más cercana al centro real del subbloque respectivo.
Por ejemplo, estos métodos pueden incluir que el codificador 100 o 300 y/o el decodificador 200 o 500 seleccionen, como una posición central asociada con un vector de predicción de movimiento para cada subbloque respectivo, uno de: (1) un centro real de cada subbloque respectivo o (2) una ubicación de muestra más cercana al centro real del subbloque respectivo. La señal de predicción de movimiento refinada puede basarse en la posición central seleccionada de cada subbloque.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, estos métodos pueden incluir el codificador 100 o 300 y/o el decodificador 200 o 500 que determina una posición central asociada con píxeles de crominancia del subbloque respectivo; y un desplazamiento a la posición central de los píxeles de crominancia del subbloque respectivo basado en un tipo de muestra de ubicación de crominancia asociado con los píxeles de crominancia. La señal de predicción de movimiento refinada para el subbloque respectivo puede basarse en la posición real del subbloque correspondiente a la posición central determinada de los píxeles de crominancia ajustados por el desplazamiento.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200 y 2600 representativos, el codificador 100 o 300 puede generar y transmitir información que indica si el refinamiento de predicción con flujo óptico (PROF) está habilitado en una de: (1) una cabecera de conjunto de parámetros de secuencia (SPS), (2) una cabecera de conjunto de parámetros de imagen (PPS) o (3) una cabecera de grupo de mosaicos y/o el decodificador 200 o 500 puede recibir la información que indica si PROF está habilitado en uno de: (1) la cabecera SPS, (2) la cabecera PPS o (3) una cabecera de grupo de mosaicos.
La FIG. 27 es un diagrama de flujo que ilustra un décimo método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 27, el método 2700 representativo para codificar y/o decodificar un video puede incluir, en el bloque 2710, un codificador 100 o 300 y/o un decodificador 200 o 500 que determina una posición central real de cada subbloque respectivo del bloque actual. En el bloque 2720, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden generar una señal de predicción de movimiento basada en subbloque o una señal de predicción de movimiento refinada utilizando la posición central real de cada subbloque respectivo del bloque actual. En el bloque 2730, (1) el codificador 100 o 300 puede codificar el video usando la señal de predicción de movimiento basada en subbloque o la señal de predicción de movimiento refinada generada, como predicción para el bloque actual o (2) el decodificador 200 o 500 puede decodificar el vídeo utilizando la señal de predicción de movimiento basada en subbloques o la señal de predicción de movimiento refinada generada, como predicción para el bloque actual. En ciertas realizaciones, las operaciones en los bloques 2710, 2720 y 2730 pueden realizarse para al menos un bloque (por ejemplo, el bloque actual) en el video. Por ejemplo, la determinación de la posición central real de cada subbloque respectivo del bloque actual puede incluir la determinación de una posición central de crominancia asociada con píxeles de crominancia de un subbloque respectivo y un desplazamiento de la posición central de crominancia con respecto a la posición central. del subbloque respectivo basado en un tipo de muestra de ubicación de crominancia de los píxeles de crominancia. La señal de predicción de movimiento basada en subbloque o la señal de predicción de movimiento refinada para el subbloque respectivo puede basarse en la posición central real del subbloque respectivo, que corresponde a la posición central de crominancia determinada ajustada por el desplazamiento. Aunque el centro real de cada subbloque respectivo del bloque actual se describe como determinado/utilizado para las diversas operaciones, se contempla que una, una parte o todas las posiciones centrales de tales subbloques pueden determinarse/utilizarse.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 y 2800 representativos, la generación de la señal de predicción de movimiento refinada puede usar la señal de predicción de movimiento basada en subbloques, por cada subbloque respectivo del bloque actual, determinar uno o más gradientes espaciales de la señal de predicción de movimiento basada en el subbloque, determinar una señal de refinamiento de predicción de movimiento para el bloque actual en función de los gradientes espaciales determinados y/o combinar los subbloques la señal de predicción de movimiento basada en bloques y la señal de refinamiento de predicción de movimiento para producir la señal de predicción de movimiento refinada para el bloque actual. Por ejemplo, la determinación de uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques puede incluir: determinar un subbloque extendido, usando la señal de predicción de movimiento basada en subbloques y muestras de referencia adyacentes que bordean y rodean el subbloque respectivo y/o determinar, usando el subbloque extendido determinado, uno o más gradientes espaciales del respectivo subbloque.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 y 2800 representativos, la determinación de gradientes espaciales del subbloque respectivo puede incluir el cálculo de al menos un valor de gradiente para cada ubicación de la muestra respectiva en el subbloque respectivo. Por ejemplo, el cálculo de al menos un valor de gradiente para cada ubicación de muestra respectiva en el subbloque respectivo puede incluir, para cada ubicación de muestra respectiva, aplicar un filtro de gradiente a la ubicación de muestra respectiva en el subbloque respectivo.
Como otro ejemplo, el cálculo de al menos un valor de gradiente para cada ubicación de muestra respectiva en el subbloque respectivo puede incluir determinar un cambio de intensidad para una o más ubicaciones de muestra respectivas en el subbloque respectivo según ecuaciones de flujo óptico.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 y 2800 representativos, estos métodos pueden incluir el codificador 100 o 300 y/o el decodificador 200 o 500 determinando un conjunto de valores de diferencia de vector de movimiento asociados con las ubicaciones de muestra del subbloque respectivo. La señal de predicción de movimiento basada en subbloques puede generarse y el conjunto de valores de diferencia de vector de movimiento puede determinarse usando un modelo de movimiento afín para el bloque actual. En ciertos ejemplos, el conjunto de valores de diferencia de vector de movimiento puede determinarse para el subbloque respectivo del bloque actual y puede usarse (por ejemplo, reutilizarse) para determinar la señal de refinamiento de predicción de movimiento para ese subbloque y otros subbloques restantes del bloque actual. Por ejemplo, la determinación de los gradientes espaciales del subbloque respectivo puede incluir el cálculo de los gradientes espaciales usando cualquiera de: (1) un filtro Sobel vertical; (2) un filtro Sobel horizontal; y/o (3) un filtro de 3 pasos. Las muestras de referencia adyacentes que limitan y rodean el subbloque respectivo pueden usar compensación de movimiento de enteros.
En algunas realizaciones, los gradientes espaciales del subbloque respectivo pueden incluir cualquiera de: un gradiente horizontal o un gradiente vertical. Por ejemplo, el gradiente horizontal puede calcularse como una diferencia de luminancia o una diferencia de crominancia entre una muestra vecina derecha de la muestra respectiva y una muestra vecina izquierda de la muestra respectiva. Como otro ejemplo, el gradiente vertical se puede calcular como la diferencia de luminancia o la diferencia de crominancia entre una muestra vecina inferior de la muestra respectiva y una muestra vecina superior de la muestra respectiva.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 y 2800 representativos, la señal de predicción de movimiento basada en subbloques puede generarse usando cualquiera de: (1) un modelo afín de 4 parámetros; (2) un modelo afín de 6 parámetros; (3) una compensación de movimiento en modo Predicción de Vector de Movimiento Temporal (SbTMVP) basada en subbloques; y/o (3) una compensación de movimiento basada en regresión. Por ejemplo, con la condición de que se realice una compensación de movimiento en modo SbTMVP, el método puede incluir: estimar, mediante una operación de regresión lineal, parámetros de modelo afines usando un campo de vector de movimiento de subbloque; y/o derivar vectores de movimiento a nivel de píxel utilizando los parámetros del modelo afín estimados. Como otro ejemplo, con la condición de que se realice una compensación de movimiento basada en el modo de campo de vector de movimiento de regresión (RMVF), el método puede incluir: estimar parámetros de modelo afines; y/o derivar compensaciones de vector de movimiento a nivel de píxel a partir de vectores de movimiento a nivel de subbloque utilizando los parámetros del modelo afín estimados, en donde las compensaciones de vector de movimiento de píxel son relativas a un centro del subbloque respectivo.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 y 2800 representativos, la señal de predicción de movimiento refinada puede generarse utilizando una pluralidad de vectores de movimiento asociados con puntos de control del bloque actual.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2600, 2700 y 2800 representativos, el codificador 100 o 300 puede generar, codificar y transmitir y el decodificador 200 o 500 puede recibir y decodificar información que indica si el Refinamiento de Predicción con Flujo Óptico (PROF) está habilitado en uno de: (1) una cabecera de conjunto de parámetros de secuencia (SPS), (2) una cabecera de conjunto de parámetros de imagen (PPS) o (3) una cabecera de grupo de mosaicos.
La FIG. 28 es un diagrama de flujo que ilustra un undécimo método de codificación y/o decodificación representativo.
Haciendo referencia a la FIG. 28, el método 2800 representativo para codificar y/o decodificar un video puede incluir, en el bloque 2810, un codificador 100 o 300 y/o un decodificador 200 o 500 seleccionando, como una posición central asociada con un vector de predicción de movimiento para cada respectivo subbloque, uno de: (1) un centro real de cada subbloque respectivo o (2) una ubicación de muestra más cercana al centro real del subbloque respectivo. En el bloque 2820, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden determinar la posición central seleccionada de cada subbloque respectivo del bloque actual. En el bloque 2830, el codificador 100 o 300 y/o el decodificador 200 o 500 pueden generar una señal de predicción de movimiento basada en subbloque o una señal de predicción de movimiento refinada usando la posición central seleccionada de cada subbloque respectivo del bloque actual. En el bloque 2840, (1) el codificador 100 o 300 puede codificar el video usando la señal de predicción de movimiento basada en subbloque o la señal de predicción de movimiento refinada generada, como predicción para el bloque actual o (2) el decodificador 200 o 500 puede decodificar el vídeo utilizando la señal de predicción de movimiento basada en subbloques o la señal de predicción de movimiento refinada generada, como predicción para el bloque actual. En ciertas realizaciones, las operaciones en los bloques 2810, 2820, 2830 y 2840 pueden realizarse para al menos un bloque (por ejemplo, el bloque actual) en el video. Aunque la selección de la posición central se describe con respecto a cada subbloque respectivo del bloque actual, se contempla que una, una parte o la totalidad de las posiciones centrales de dichos subbloques pueden seleccionarse/utilizarse en las diversas operaciones..
La FIG. 29 es un diagrama de flujo que ilustra un método de codificación representativo.
Haciendo referencia a la FIG. 29, el método 2900 representativo para codificar un video puede incluir, en el bloque 2910, un codificador 100 o 300, que realiza una estimación de movimiento para el bloque actual del video, incluida la determinación de parámetros de modelo de movimiento afines para el bloque actual usando una operación iterativa de compensación de movimiento, y generar una señal de predicción de movimiento basada en subbloques para el bloque actual utilizando los parámetros del modelo de movimiento afín determinados. En el bloque 2920, el codificador 100 o 300, después de realizar una estimación de movimiento para el bloque actual, puede realizar una operación de Refinamiento de Predicción con Flujo Óptico (PROF) para generar una señal de predicción de movimiento refinada. En el bloque 2930, el codificador 100 o 300 puede codificar el video usando la señal de predicción de movimiento refinada, como predicción para el bloque actual. Por ejemplo, la operación PROF puede incluir: determinar uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques; determinar una señal de refinamiento de predicción de movimiento para el bloque actual en base a los gradientes espaciales determinados; y/o combinar la señal de predicción de movimiento basada en subbloques y la señal de refinamiento de predicción de movimiento para producir una señal de predicción de movimiento refinada para el bloque actual.
En ciertas realizaciones representativas, que incluyen al menos los métodos 1800, 1850, 1900, 2000, 2100, 2200, 2600 y 2900 representativos, la operación PROF puede realizarse después (por ejemplo, solo después) de que se complete la operación de compensación de movimiento iterativo. Por ejemplo, durante la estimación de movimiento para el bloque actual, no se realiza la operación PROF.
La FIG. 30 es un diagrama de flujo que ilustra otro método de codificación representativo.
Haciendo referencia a la FIG. 30, el método 3000 representativo para codificar un video puede incluir, en el bloque 3010, un codificador 100 o 300, durante la estimación de movimiento para el bloque actual, determinando parámetros de modelo de movimiento afines usando una operación iterativa de compensación de movimiento y generar un subbloque basado en señal de predicción de movimiento utilizando los parámetros del modelo de movimiento afín determinados. En el bloque 3020, el codificador 100 o 300 puede, después de la estimación de movimiento para el bloque actual, con la condición de que el tamaño de un bloque actual alcance o exceda un tamaño de umbral, realizar una operación de Refinamiento de Predicción con Flujo Óptico (PROF) para generar una señal de predicción de movimiento refinada. En el bloque 3030, el codificador 100 o 300 puede codificar el video: (1) usando la señal de predicción de movimiento refinada, como predicción para el bloque actual, con la condición de que el bloque actual alcance o exceda el tamaño del umbral o (2) usando la señal de predicción de movimiento basada en subbloques, como la predicción para el bloque actual, con la condición de que el bloque actual no alcance el tamaño de umbral.
La FIG. 31 es un diagrama de flujo que ilustra un duodécimo método de codificación/descodificación representativo.
Haciendo referencia a la FIG. 31, el método 3100 representativo para codificar y/o decodificar un video puede incluir, en el bloque 3110, un codificador 100 o 300 que determina u obtiene información que indica un tamaño de un bloque actual o un decodificador 200 o 500 que recibe información que indica un tamaño del bloque actual. En el bloque 3120, el codificador 100 o 300 o el decodificador 200 o 500 pueden generar una señal de predicción de movimiento basada en subbloques. En el bloque 3130, el codificador 100 o 300 o el decodificador 200 o 500, con la condición de que el tamaño de un bloque actual alcance o exceda un tamaño de umbral, puede realizar una operación de Refinamiento de Predicción con Flujo Óptico (PROF) para generar una señal de predicción de movimiento refinada. En el bloque 3140, el codificador 100 o 300 puede codificar el video: (1) usando la señal de predicción de movimiento refinada, como predicción para el bloque actual, con la condición de que el bloque actual alcance o exceda el tamaño del umbral o (2) usando el señal de predicción de movimiento basada en subbloques, como la predicción para el bloque actual, con la condición de que el bloque actual no cumpla con el tamaño de umbral o el decodificador 200 o 500 puede decodificar el video: (1) usando la señal de predicción de movimiento refinada, como la predicción para el bloque actual, con la condición de que el bloque actual cumpla o exceda el tamaño del umbral o (2) utilizando la señal de predicción de movimiento basada en subbloque, como la predicción para el bloque actual, con la condición de que el bloque actual no cumpla el tamaño del umbral.
La FIG. 32 es un diagrama de flujo que ilustra un decimotercer método de codificación/descodificación representativo.
Haciendo referencia a la FIG. 32, el método 3200 representativo para codificar y/o decodificar un video puede incluir, en el bloque 3210, un codificador 100 o 300 que determina si se debe realizar una compensación de movimiento a nivel de píxeles o un decodificador 200 o 500 que recibe una bandera que indica si se va a realizar la compensación de movimiento a nivel de píxeles. En el bloque 3220, el codificador 100 o 300 o el decodificador 200 o 500 pueden generar una señal de predicción de movimiento basada en subbloques. En el bloque 3230, con la condición de que se realice la compensación de movimiento a nivel de píxel, el codificador 100 o 300 o el decodificador 200 o 500 pueden: determinar uno o más gradientes espaciales de la señal de predicción de movimiento basada en subbloques, determinar una señal de refinamiento de predicción de movimiento para el bloque actual en función de los gradientes espaciales determinados, y combinar la señal de predicción de movimiento basada en subbloque y la señal de refinamiento de predicción de movimiento para producir una señal de predicción de movimiento refinada para el bloque actual. En el bloque 3240, según la determinación de si se debe realizar la compensación de movimiento a nivel de píxel, el codificador 100 o 300 puede codificar el video utilizando la señal de predicción de movimiento basada en subbloque o la señal de predicción de movimiento refinada, como la predicción para el bloque actual o el decodificador 200 o 500, según una indicación de la bandera, puede decodificar el video usando la señal de predicción de movimiento basada en subbloque o la señal de predicción de movimiento refinada, como la predicción para el bloque actual. En ciertas realizaciones, las operaciones en los bloques 3220 y 3230 se pueden realizar para un bloque (por ejemplo, el bloque actual) en el video.
La FIG. 33 es un diagrama de flujo que ilustra un decimocuarto método de codificación/descodificación representativo.
Haciendo referencia a la FIG. 33, el método 3300 representativo para codificar y/o decodificar un video puede incluir, en el bloque 3310, un codificador 100 o 300 que determina u obtiene, o un decodificador 200 o 500 que recibe información de peso de predicción inter que indica uno o más pesos asociados con la primera y la segunda imágenes de referencia. En el bloque 3320, el codificador 100 o 300 o el decodificador 200 o 500, para un bloque actual del video, puede generar una señal de predicción de movimiento basada en subbloques, puede determinar un primer conjunto de gradientes espaciales asociados con una primera imagen de referencia y un segundo conjunto de gradientes espaciales asociados con una segunda imagen de referencia, puede determinar una señal de refinamiento de predicción inter de movimiento para el bloque actual en función del primer y segundo conjunto de gradientes espaciales y la información de peso de predicción inter, y puede combinar la señal de predicción inter de movimiento basada en subbloques y la señal de refinamiento de predicción inter de movimiento para producir una señal de predicción inter de movimiento refinada para el bloque actual. En el bloque 3330, el codificador 100 o 300 puede codificar el video usando la señal de predicción inter de movimiento refinado, como la predicción para el bloque actual o el decodificador 200 o 500 puede decodificar el video usando la señal de predicción inter de movimiento refinado, como la predicción para el bloque actual. Por ejemplo, la información de peso de predicción inter es cualquiera de: (1) una bandera que indica un primer factor de peso que se aplicará a la primera imagen de referencia y/o un segundo factor de peso que se aplicará a la segunda imagen de referencia; o (2) un índice de peso. En ciertas realizaciones, la señal de refinamiento de predicción inter de movimiento para el bloque actual puede basarse en: (1) un primer valor de gradiente derivado del primer conjunto de gradientes espaciales y ponderado según un primer factor de peso indicado por la predicción inter información de peso, y (2) un segundo valor de gradiente derivado del segundo conjunto de gradientes espaciales y ponderado según un segundo factor de peso indicado por la información de peso de predicción inter.
Ejemplos de redes para la implementación de las realizaciones
La FIG.34A es un diagrama que ilustra un sistema 3400 de comunicaciones ejemplar en donde se pueden implementar una o más realizaciones descritas. El sistema 3400 de comunicaciones puede ser un sistema de acceso múltiple que proporciona contenido, como voz, datos, video, mensajería, transmisión, etc., a múltiples usuarios inalámbricos. El sistema 3400 de comunicaciones puede permitir que múltiples usuarios inalámbricos accedan a dicho contenido compartiendo los recursos del sistema, incluido el ancho de banda inalámbrico. Por ejemplo, los sistemas 3400 de comunicaciones pueden emplear uno o más métodos de acceso a canales, como acceso múltiple por división de código (CDMA), acceso múltiple por división de tiempo (TDMA), acceso múltiple por división de frecuencia (FDMA), FDMA ortogonal (OFDMA), portadora única FDMA (SC-FDMA), palabra única de cola cero DFT-Spread OFDM (ZT UW DTS-s OFDM), palabra única OFDM (UW-OFDM), bloque de recursos filtrado OFDM, banco de filtros multiportadora (FBMC) y similares.
Como se muestra en la FIG. 34A, el sistema 3400 de comunicaciones puede incluir unidades 3402a, 3402b, 3402c, 3402d inalámbricas de transmisión/recepción (WTRU), una RAN 3404/3413, una CN 3406/3415, una red telefónica pública conmutada (PSTN) 3408, Internet 3410, y otras redes 3412, aunque se apreciará que las realizaciones descritas contemplan cualquier número de WTRU, estaciones base, redes y/o elementos de red. Cada una de las WTRU 3402a, 3402b, 3402c, 3402d puede ser cualquier tipo de dispositivo configurado para funcionar y/o comunicarse en un entorno inalámbrico. A modo de ejemplo, las WTRU 3402a, 3402b, 3402c, 3402d, cualquiera de las cuales puede denominarse "estación" y/o "STA", puede configurarse para transmitir y/o recibir señales inalámbricas y puede incluir un equipo de usuario (UE), una estación móvil, una unidad de abonado fija o móvil, una unidad basada en suscripción, un buscapersonas, un teléfono celular, un asistente digital personal (PDA), un teléfono inteligente, un ordenador portátil, un ordenador portátil ligero, un ordenador personal, un sensor inalámbrico, un punto de acceso o dispositivo Mi-Fi, un dispositivo de Internet de las cosas (loT), un reloj u otro dispositivo portátil, una pantalla montada en la cabeza (HMD), un vehículo, un dron, un dispositivo médico y aplicaciones (por ejemplo, cirugía remota), un dispositivo y aplicaciones industriales (por ejemplo, un robot y/u otros dispositivos inalámbricos que funcionan en un contexto industrial y/o de cadena de procesamiento automatizado), un dispositivo electrónico de consumo, un dispositivo que funciona en redes inalámbricas comerciales y/o industriales redes, y similares. Cualquiera de las WTRU 3402a, 3402b, 3402c y 3402d puede denominarse indistintamente UE.
Los sistemas 3400 de comunicaciones también pueden incluir una estación 3414a base y/o una estación 3414b base. Cada una de las estaciones 3414a, 3414b base puede ser cualquier tipo de dispositivo configurado para interactuar de forma inalámbrica con al menos una de las WTRU 3402a, 3402b, 3402c, 3402d para facilitar el acceso a una o más redes de comunicación, como CN 3406/3415, Internet 3410 y/o las otras redes 3412. A modo de ejemplo, las estaciones 3414a, 3414b base pueden ser una estación transceptora base (BTS), un Nodo-B, un eNodo B (extremo), un Nodo doméstico B ( HNB), un eNodo B doméstico (HeNB), un gNB, un NR Nodo B, un controlador de sitio, un punto de acceso (AP), un enrutador inalámbrico y similares. Aunque cada una de las estaciones 3414a, 3414b base se representa como un único elemento, se apreciará que las estaciones 3414a, 3414b base pueden incluir cualquier número de estaciones base y/o elementos de red interconectados.
La estación 3414a base puede ser parte de la RAN 3404/3413, que también puede incluir otras estaciones base y/o elementos de red (no mostrados), como un controlador de estación base (BSC), un controlador de red de radio (RNC), nodos de repetición, etc. La estación 3414a base y/o la estación 3414b base pueden configurarse para transmitir y/o recibir señales inalámbricas en una o más frecuencias portadoras, que pueden denominarse celda (no mostrado). Estas frecuencias pueden estar en espectro con licencia, espectro sin licencia o una combinación de espectro con licencia y sin licencia. Una celda puede brindar cobertura para un servicio inalámbrico a un área geográfica específica que puede ser relativamente fija o que puede cambiar con el tiempo. La celda puede dividirse además en sectores de celda. Por ejemplo, la celda asociada con la estación 3414a base puede dividirse en tres sectores. Así, en una realización, la estación 3414a base puede incluir tres transceptores, es decir, uno para cada sector de la celda. En una realización, la estación 3414a base puede emplear tecnología de múltiples entradas, múltiples salidas (MIMO) y puede utilizar múltiples transceptores para cada sector de la celda. Por ejemplo, la formación de haces puede usarse para transmitir y/o recibir señales en direcciones espaciales deseadas.
Las estaciones 3414a, 3414b base pueden comunicarse con una o más de las WTRU 3402a, 3402b, 3402c, 3402d a través de una interfaz 3416 aérea, que puede ser cualquier enlace de comunicación inalámbrico adecuado (por ejemplo, radiofrecuencia (RF), microondas, onda centimétrica, onda micrométrica, infrarrojo (IR), ultravioleta (UV), luz visible, etc.). La interfaz 3416 aérea puede establecerse utilizando cualquier tecnología de acceso por radio (RAT) adecuada.
Más específicamente, como se indicó anteriormente, el sistema 3400 de comunicaciones puede ser un sistema de acceso múltiple y puede emplear uno o más esquemas de acceso a canales, como CDMA, TDMA, FDMA, OFDMA, SC-FDMA y similares. Por ejemplo, la estación 3414a base en la RAN 3404/3413 y las WTRU 3402a, 3402b, 3402c pueden implementar una tecnología de radio tal como el Sistema Universal de Telecomunicaciones Móviles (UMTS) Acceso por Radio Terrestre (UTRA), que puede establecer la interfaz 3415/ 3416/3417 aérea usando CDMA de banda ancha (WCDMA). WCDMA puede incluir protocolos de comunicación como Acceso a Paquetes de Alta Velocidad (HSPA) y/o HSPA evolucionado (HSPA+). HSPA puede incluir Acceso a Paquetes de Enlace Descendente (DL) de Alta Velocidad (HSDPA) y/o Acceso a Paquetes UL de Alta Velocidad (HSUpA).
En una realización, la estación 3414a base y las WTRU 3402a, 3402b, 3402c pueden implementar una tecnología de radio como Acceso por Radio Terrestre UMTS Evolucionado (E-UTRA), que puede establecer la interfaz 3416 aérea usando Evolución a Largo Plazo (LTE) y/ o LTE-Avanzado (LTE-A) y/o LTE-Avanzado Pro (LTE-A Pro).
En una realización, la estación 3414a base y las WTRU 3402a, 3402b, 3402c pueden implementar una tecnología de radio tal como Acceso por Radio NR, que puede establecer la interfaz 3416 aérea usando Radio Nueva (NR).
En una realización, la estación 3414a base y las WTRU 3402a, 3402b, 3402c pueden implementar múltiples tecnologías de acceso por radio. Por ejemplo, la estación 3414a base y las WTRU 3402a, 3402b, 3402c pueden implementar acceso de radio LTE y acceso de radio NR juntos, por ejemplo, usando principios de conectividad dual (DC). Por lo tanto, la interfaz aérea utilizada por las WTRU 3402a, 3402b, 3402c puede caracterizarse por múltiples tipos de tecnologías de acceso de radio y/o transmisiones enviadas a/desde múltiples tipos de estaciones base (por ejemplo, un extremo y un gNB).
En otras realizaciones, la estación 3414a base y las WTRU 3402a, 3402b, 3402c pueden implementar tecnologías de radio como IEEE 802.11 (es decir, Fidelidad Inalámbrica (WiFi), IEEE 802.16 (es decir, Interoperabilidad Mundial para Acceso por Microondas (WiMAX)), CDMA2000, CDMA2000 1 X, CDMA2000 EV-DO, Interim Standard 2000 (IS-2000), Interim Standard 95 (IS-95), Interim Standard 856 (IS-856), Sistema global para comunicaciones móviles (GSM), Velocidades de datos mejoradas para Evolución de GSM (EDGE), GSM EDGE (GERAN), y similares.
La estación 3414b base en la FIG. 34A puede ser un enrutador inalámbrico, Nodo B Doméstico, eNodo B Doméstico o un punto de acceso, por ejemplo, y puede utilizar cualquier RAT adecuado para facilitar la conectividad inalámbrica en un área localizada, como un lugar de trabajo, una casa, un vehículo, un campus, una instalación industrial, un corredor aéreo (por ejemplo, para uso de drones), una carretera y similares. En una realización, la estación 3414b base y las WTRU 3402c, 3402d pueden implementar una tecnología de radio tal como IEEE 802.11 para establecer una red de área local inalámbrica (WLAN). En una realización, la estación 3414b base y las WTRU 3402c, 3402d pueden implementar una tecnología de radio tal como IEEE 802.15 para establecer una red de área personal inalámbrica (WPAN). En otra realización más, la estación 3414b base y las WTRU 3402c, 3402d pueden utilizar una RAT basada en celular (por ejemplo, WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.) para establecer una picocélula o femtocelda. Como se muestra en la FIG. 34A, la estación 3414b base puede tener una conexión directa a Internet 3410. Por lo tanto, es posible que no se requiera que la estación 3414b base acceda a Internet 3410 a través del CN 3406/3415.
La RAN 3404/3413 puede estar en comunicación con la CN 3406/3415, que puede ser cualquier tipo de red configurada para proporcionar servicios de voz, datos, aplicaciones y/o voz sobre protocolo de Internet (VoIP) a una o más de las Wt r U 3402a, 3402b, 3402c, 3402d. Los datos pueden tener diferentes requisitos de calidad de servicio (QoS), tales como diferentes requisitos de rendimiento, requisitos de latencia, requisitos de tolerancia a errores, requisitos de confiabilidad, requisitos de rendimiento de datos, requisitos de movilidad y similares. La CN 3406/3415 puede proporcionar control de llamadas, servicios de facturación, servicios móviles basados en la ubicación, llamadas prepagas, conectividad a Internet, distribución de video, etc., y/o realizar funciones de seguridad de alto nivel, como la autenticación de usuarios. Aunque no se muestra en la FIG. 34A, se apreciará que la RAN 1084/3413 y/o la CN 3406/3415 pueden estar en comunicación directa o indirecta con otras RAN que emplean la misma RAT que la RAN 3404/3413 o una RAT diferente. Por ejemplo, además de estar conectada a la rAn 3404/3413, que puede estar utilizando una tecnología de radio NR, el CN 3406/3415 también puede estar en comunicación con otra RAN (no mostrado) empleando GSM, UMTS, c Dm A 2000, Tecnología de radio WiMAX, E-UTRA o WiFi.
La CN 3406/3415 también puede servir como puerta de enlace para que las WTRU 3402a, 3402b, 3402c, 3402d accedan a la PSTN 3408, a Internet 3410 y/o a las otras redes 3412. La PSTN 3408 puede incluir redes telefónicas con conmutación de circuitos que proporcionar el servicio de telefonía simple (POTS). Internet 3410 puede incluir un sistema global de redes informáticas interconectadas y dispositivos que utilizan protocolos de comunicación comunes, como el protocolo de control de transmisión (TCP), el protocolo de datagramas de usuario (UDP) y/o el protocolo de Internet (IP) en el conjunto de protocolos de internet TCP/IP. Las redes 3412 pueden incluir redes de comunicaciones cableadas y/o inalámbricas propiedad de otros proveedores de servicios u operadas por ellos. Por ejemplo, las redes 3412 pueden incluir otra CN conectada a una o más RAN, que pueden emplear la misma RAT que la RAN 3404/3413 o una RAT diferente.
Algunas o todas las WTRU 3402a, 3402b, 3402c, 3402d en el sistema 3400 de comunicaciones pueden incluir capacidades multimodo (por ejemplo, las WTRU 3402a, 3402b, 3402c, 3402d pueden incluir múltiples transceptores para comunicarse con diferentes redes inalámbricas a través de diferentes enlaces inalámbricos). Por ejemplo, la WTRU 3402c que se muestra en la FIG. 34A puede configurarse para comunicarse con la estación 3414a base, que puede emplear una tecnología de radio basada en celular, y con la estación 3414b base, que puede emplear una tecnología de radio IEEE 802.
La FIG. 34B es un diagrama de sistema que ilustra un ejemplo de WTRU 3402. Como se muestra en la FIG. 34B, la WTRU 3402 puede incluir un procesador 3418, un transceptor 3420, un elemento 3422 de transmisión/recepción, un altavoz/micrófono 3424, un teclado 3426, una pantalla/panel táctil 3428, una memoria 3430 no extraíble, una memoria 3432 extraíble, una fuente 3434 de alimentación, un conjunto 3436 de chips de sistema de posicionamiento global (GPS) y/u otros periféricos 3438, entre otros. Se apreciará que la WTRU 3402 puede incluir cualquier subcombinación de los elementos anteriores sin dejar de ser coherente con una realización.
El procesador 3418 puede ser un procesador de propósito general, un procesador de propósito especial, un procesador convencional, un procesador de señal digital (DSP), una pluralidad de microprocesadores, uno o más microprocesadores en asociación con un núcleo DSP, un controlador, un microcontrolador, Circuitos Integrados de Aplicación Específicas (ASIC), circuitos de Matriz de Puertas Programables en Campo (FPGA), cualquier otro tipo de circuito integrado (IC), una máquina de estado y similares. El procesador 3418 puede realizar la codificación de señales, el procesamiento de datos, el control de potencia, el procesamiento de entrada/salida y/o cualquier otra funcionalidad que permita que la WTRU 3402 funcione en un entorno inalámbrico. El procesador 3418 puede acoplarse al transceptor 3420, que puede acoplarse al elemento 3422 de transmisión/recepción. Mientras que la FIG. 34B representa el procesador 3418 y el transceptor 3420 como componentes separados, se apreciará que el procesador 3418 y el transceptor 3420 pueden integrarse juntos en un paquete o chip electrónico. El procesador 3418 puede configurarse para codificar o decodificar video (por ejemplo, cuadros de video).
El elemento 3422 de transmisión/recepción puede configurarse para transmitir señales a, o recibir señales de, una estación base (por ejemplo, la estación 3414a base) a través de la interfaz 3416 aérea. Por ejemplo, en una realización, el elemento 3422 de transmisión/recepción puede ser una antena configurada para transmitir y/o recibir señales de RF. En una realización, el elemento 3422 de transmisión/recepción puede ser un emisor/detector configurado para transmitir y/o recibir señales IR, UV o de luz visible, por ejemplo. En otra realización más, el elemento 3422 de transmisión/recepción puede configurarse para transmitir y/o recibir tanto señales de RF como de luz. Se apreciará que el elemento 3422 de transmisión/recepción puede configurarse para transmitir y/o recibir cualquier combinación de señales inalámbricas.
Aunque el elemento 3422 de transmisión/recepción se representa en la FIG. 34B como un solo elemento, la WTRU 3402 puede incluir cualquier número de elementos 3422 de transmisión/recepción. Más específicamente, la WTRU 3402 puede emplear tecnología MIMO. Por lo tanto, en una realización, la WTRU 3402 puede incluir dos o más elementos 3422 de transmisión/recepción (por ejemplo, varias antenas) para transmitir y recibir señales inalámbricas a través de la interfaz 3416 aérea.
El transceptor 3420 puede configurarse para modular las señales que debe transmitir el elemento 3422 de transmisión/recepción y para demodular las señales que recibe el elemento 3422 de transmisión/recepción. Como se señaló anteriormente, la WTRU 3402 puede tener multimodo. capacidades. Por lo tanto, el transceptor 3420 puede incluir múltiples transceptores para permitir que la WTRU 3402 se comunique a través de múltiples RAT, como NR e IEEE 802.11, por ejemplo.
El procesador 3418 de la WTRU 3402 puede estar acoplado y puede recibir datos de entrada del usuario desde el altavoz/micrófono 3424, el teclado 3426 y/o la pantalla/panel táctil 3428 (por ejemplo, una unidad de visualización de pantalla de cristal líquido (LCD) o unidad de pantalla de diodo orgánico emisor de luz (OLED)). El procesador 3418 también puede enviar datos de usuario al altavoz/micrófono 3424, el teclado 3426 y/o la pantalla/panel táctil 3428. Además, el procesador 3418 puede acceder a información y almacenar datos en cualquier tipo de memoria adecuada, como la memoria 3430 no extraíble y/o la memoria 3432 extraíble. La memoria 3430 no extraíble puede incluir memoria de acceso aleatorio (RAM), memoria de solo lectura (ROM), un disco duro o cualquier otro tipo de memoria dispositivo de almacenamiento. La memoria 3432 extraíble puede incluir una tarjeta de módulo de identidad de abonado (SIM), una tarjeta de memoria, una tarjeta de memoria digital segura (SD) y similares. En otras realizaciones, el procesador 3418 puede acceder a la información y almacenar datos en la memoria que no está ubicada físicamente en la WTRU 3402, como en un servidor o un ordenador doméstico (no mostrado).
El procesador 3418 puede recibir energía de la fuente 3434 de alimentación y puede configurarse para distribuir y/o controlar la energía a los otros componentes en la WTRU 3402. La fuente 3434 de alimentación puede ser cualquier dispositivo adecuado para alimentar la WTRU 3402. Por ejemplo, la fuente 3434 de alimentación puede incluir una o más baterías de celda seca (por ejemplo, níquel-cadmio (NiCd), níquel-zinc (NiZn), hidruro metálico de níquel (NiMH), iones de litio (Li-ion), etc.), celdas solares, celdas de combustible, y similares.
El procesador 3418 también puede acoplarse al conjunto de chips 3436 GPS, que puede configurarse para proporcionar información de ubicación (por ejemplo, longitud y latitud) con respecto a la ubicación actual de la WTRU 3402. Además de, o en lugar de, la información del conjunto de chips 3436 GPS, la WTRU 3402 puede recibir información de ubicación a través de la interfaz 3416 aérea desde una estación base (por ejemplo, estaciones 3414a, 3414b base) y/o determinar su ubicación en función del tiempo de las señales que se reciben de dos o más bases cercanas estaciones Se apreciará que la WTRU 3402 puede adquirir información de ubicación por medio de cualquier método de determinación de ubicación adecuado mientras permanece consistente con una realización.
El procesador 3418 puede acoplarse además a otros periféricos 3438, que pueden incluir uno o más módulos de software y/o hardware que proporcionan características, funcionalidad y/o conectividad por cable o inalámbrica adicionales. Por ejemplo, los periféricos 3438 pueden incluir un acelerómetro, una brújula electrónica, un transceptor de satélite, una cámara digital (para fotografías y/o video), un puerto de bus serie universal (USB), un dispositivo de vibración, un transceptor de televisión, un auricular manos libres, un módulo bluetooth®, una unidad de radio de frecuencia modulada (FM), un reproductor de música digital, un reproductor multimedia, un módulo reproductor de videojuegos, un navegador de Internet, un dispositivo de realidad virtual y/o realidad aumentada (VR/AR), un rastreador de actividad y similares. Los periféricos 3438 pueden incluir uno o más sensores, los sensores pueden ser uno o más de un giroscopio, un acelerómetro, un sensor de efecto hall, un magnetómetro, un sensor de orientación, un sensor de proximidad, un sensor de temperatura, un sensor de tiempo; un sensor de geolocalización; un altímetro, un sensor de luz, un sensor táctil, un magnetómetro, un barómetro, un sensor de gestos, un sensor biométrico y/o un sensor de humedad.
El procesador 3418 de la WTRU 3402 puede comunicarse operativamente con varios periféricos 3438 que incluyen, por ejemplo, cualquiera de: uno o más acelerómetros, uno o más giroscopios, el puerto USB, otras interfaces/puertos de comunicación, la pantalla y/u otros indicadores visuales/de audio para implementar realizaciones representativas descritas en este documento.
La WTRU 3402 puede incluir una radio full dúplex para la cual la transmisión y recepción de algunas o todas las señales (por ejemplo, asociadas con subtramas particulares tanto para el UL (por ejemplo, para transmisión) como para el enlace descendente (por ejemplo, para recepción) pueden ser concurrentes y/o simultáneas. La radio full dúplex puede incluir una unidad de gestión de interferencias para reducir o eliminar sustancialmente la autointerferencia a través de hardware (por ejemplo, un estrangulador) o procesamiento de señales a través de un procesador (por ejemplo, un procesador separado (no mostrado) o a través del procesador 3418).En una realización, la WTRU 3402 puede incluir una radio semidúplex para la cual la transmisión y recepción de algunas o todas las señales (por ejemplo, asociadas con subtramas particulares para el UL (por ejemplo, para transmisión) o el enlace descendente (por ejemplo, para la recepción)).
La FIG. 34C es un diagrama de sistema que ilustra la RAN 104 y la CN 3406 según una realización. Como se indicó anteriormente, la RAN 3404 puede emplear una tecnología de radio E-UTRA para comunicarse con las WTRU 3402a, 3402b, 3402c a través de la interfaz 3416 aérea. La RAN 3404 también puede estar en comunicación con la CN 3406.
La RAN 3404 puede incluir eNodo Bs 3460a, 3460b, 3460c, aunque se apreciará que la RAN 3404 puede incluir cualquier número de eNodo B sin dejar de ser coherente con una realización. Cada uno de los eNodo Bs 3460a, 3460b, 3460c puede incluir uno o más transceptores para comunicarse con las WTRU 3402a, 3402b, 3402c a través de la interfaz 3416 aérea. En una realización, el eNodo Bs 3460a, 3460b, 3460c puede implementar tecnología MIMO. Por lo tanto, el eNodo B 3460a, por ejemplo, puede usar varias antenas para transmitir señales inalámbricas y/o recibir señales inalámbricas de la WTRU 3402a.
Cada uno de los eNodo Bs 3460a, 3460b, 3460c puede asociarse con una celda particular (no mostrado) y puede configurarse para manejar decisiones de gestión de recursos de radio, decisiones de traspaso, programación de usuarios en Ul y/o DL, y similares. Como se muestra en la FIG. 34C, los eNodo Bs 3460a, 3460b, 3460c pueden comunicarse entre sí a través de una interfaz X2.
La CN 3406 mostrada en la FIG. 34C puede incluir una entidad 3462 de gestión de movilidad (MME), una puerta 3464 de enlace de servicio (SGW) y una puerta 3466 de enlace de red de paquetes de datos (PDN) (o PGW). Si bien cada uno de los elementos anteriores se representa como parte de la CN 3406, se apreciará que cualquiera de estos elementos puede ser propiedad y/o ser operado por una entidad distinta al operador NC.
La MME 3462 puede conectarse a cada uno de los eNodo Bs 3460a, 3460b, 3460c en la RAN 3404 a través de una interfaz S1 y puede servir como un nodo de control. Por ejemplo, la MME 3462 puede ser responsable de autenticar a los usuarios de las WTRU 3402a, 3402b, 3402c, activar/desactivar portadores, seleccionar una puerta de enlace de servicio particular durante una conexión inicial de las WTRU 3402a, 3402b, 3402c y similares. La MME 3462 puede proporcionar una función de plano de control para cambiar entre la RAN 3404 y otras RAN (no mostrado) que emplean otras tecnologías de radio, como GSM y/o WCDMA.
La SGW 3464 se puede conectar a cada uno de los eNodo Bs 3460a, 3460b, 3460c en la RAN 104 a través de la interfaz S1. La SGW 3464 generalmente puede enrutar y reenviar paquetes de datos de usuario hacia/desde las WTRU 3402a, 3402b, 3402c. La SGW 3464 puede realizar otras funciones, como anclar planos de usuario durante traspasos entre eNodos B, activar paginación cuando los datos DL están disponibles para las WTRU 3402a, 3402b, 3402c, administrar y almacenar contextos de las WTRU 3402a, 3402b, 3402c y similares.
La SGW 3464 se puede conectar a la PGW 3466, que puede proporcionar a las WTRU 3402a, 3402b, 3402c acceso a redes de conmutación de paquetes, como Internet 3410, para facilitar las comunicaciones entre las WTRU 3402a, 3402b, 3402c y las habilitadas para dispositivos IP.
La CN 3406 puede facilitar las comunicaciones con otras redes. Por ejemplo, la CN 106 puede proporcionar a las WTRU 3402a, 3402b, 3402c acceso a redes de conmutación de circuitos, como la PSTN 3408, para facilitar las comunicaciones entre las WTRU 3402a, 3402b, 3402c y los dispositivos tradicionales de comunicación por línea terrestre. Por ejemplo, la CN 3406 puede incluir, o puede comunicarse con, una puerta de enlace IP (por ejemplo, un servidor de subsistema multimedia (IMS) IP) que sirve como interfaz entre la CN 3406 y la PSTN 3408. Además, la CN 3406 puede proporcionar a las WTRU 3402a, 3402b, 3402c acceso a las otras redes 3412, que pueden incluir otras redes cableadas y/o inalámbricas que son propiedad y/o están operadas por otros proveedores de servicios.
Aunque la WTRU se describe en las FIG. 34A-34D como un terminal inalámbrico, se contempla que en ciertas realizaciones representativas dicho terminal puede usar (por ejemplo, de forma temporal o permanente) interfaces de comunicación por cable con la red de comunicación.
En realizaciones representativas, la otra red 3412 puede ser una WLAN.
Una WLAN en modo de conjunto de servicios básicos de infraestructura (BSS) puede tener un punto de acceso (AP) para el BSS y una o más estaciones (STA) asociadas con el AP. El AP puede tener un acceso o una interfaz a un Sistema de Distribución (DS) u otro tipo de red cableada/inalámbrica que transporta tráfico hacia y/o desde el BSS. El tráfico a las STA que se origina fuera del BSS puede llegar a través del AP y puede entregarse a las STA. El tráfico que se origina en las STA hacia destinos fuera del BSS se puede enviar al AP para que se entregue en los respectivos destinos. El tráfico entre las STA dentro del BSS se puede enviar a través del AP, por ejemplo, donde la STA de origen puede enviar tráfico al AP y el AP puede entregar el tráfico a la STA de destino. El tráfico entre STA dentro de un BSS puede considerarse y/o denominarse tráfico de igual a igual. El tráfico de igual a igual se puede enviar entre (por ejemplo, directamente entre) las STA de origen y de destino con una configuración de enlace directo (DLS). En ciertas realizaciones representativas, el DLS puede usar un DLS 802.11e o un DLS tunelizado (TDLS) 802.11z. Una WLAN que usa un modo BSS independiente (IBSS) puede no tener un AP, y las STA (por ejemplo, todas las STA) dentro o que usan el IBSS pueden comunicarse directamente entre sí. El modo de comunicación del IBSS puede denominarse a veces en este documento como un modo de comunicación "ad-hoc".
Cuando se utiliza el modo de operación de infraestructura 802.11ac o un modo de operación similar, el AP puede transmitir una baliza en un canal fijo, como un canal principal. El canal principal puede tener un ancho fijo (por ejemplo, un ancho de banda de 20 MHz) o un ancho establecido dinámicamente a través de la señalización. El canal principal puede ser el canal operativo del BSS y puede ser utilizado por las STA para establecer una conexión con el AP. En ciertas realizaciones representativas, puede implementarse Acceso Múltiple con Detección de Portadora con Prevención de Colisiones (CSMA/CA), por ejemplo, en sistemas 802.11. Para CSMA/CA, las STA (por ejemplo, cada STA), incluido el AP, pueden detectar el canal principal. Si una STA en particular percibe/detecta y/o determina que el canal principal está ocupado, la STA en particular puede retroceder. Una STA (por ejemplo, solo una estación) puede transmitir en un momento dado en un BSS dado.
Las STA de alto rendimiento (HT) pueden usar un canal de 40 MHz de ancho para la comunicación, por ejemplo, a través de una combinación del canal principal de 20 MHz con un canal de 20 MHz adyacente o no adyacente para formar un canal de 40 MHz de ancho.
Las STA de muy alto rendimiento (VHT) pueden admitir canales de 20 MHz, 40 MHz, 80 MHz y/o 160 MHz de ancho. Los canales de 40 MHz y/u 80 MHz pueden formarse combinando canales contiguos de 20 MHz. Un canal de 160 MHz puede formarse combinando 8 canales contiguos de 20 MHz o combinando dos canales no contiguos de 80 MHz, lo que puede denominarse configuración 80+80. Para la configuración 80+80, los datos, después de la codificación del canal, pueden pasar a través de un analizador de segmentos que puede dividir los datos en dos flujos. El procesamiento por Transformada Rápida de Fourier Inversa (IFFT) y el procesamiento en el dominio del tiempo se pueden realizar en cada flujo por separado. Los flujos pueden asignarse a los dos canales de 80 MHz, y los datos pueden transmitirse mediante una STA transmisora. En el receptor de la STA receptora, la operación descrita anteriormente para la configuración 80+80 puede invertirse, y los datos combinados pueden enviarse al Control de Acceso al Medio (MAC).
Los modos de funcionamiento inferiores a 1 GHz son compatibles con 802.11 af y 802.11ah. Los anchos de banda operativos del canal y las portadoras se reducen en 802.11 af y 802.11ah en relación con los utilizados en 802.11n y 802.11ac. 802.11af admite anchos de banda de 5 MHz, 10 MHz y 20 MHz en el espectro Espacio Blanco de t V (TVWS), y 802.11 ah admite anchos de banda de 1 MHz, 2 MHz, 4 MHz, 8 MHz y 16 MHz utilizando espectro que no es TVWS. Según una realización representativa, 802.11ah puede admitir comunicaciones de Control de Tipo Medidor/Tipo Máquina, como dispositivos MTC en un área de cobertura macro. Los dispositivos MTC pueden tener ciertas capacidades, por ejemplo, capacidades limitadas que incluyen soporte para (por ejemplo, solo soporte para) ciertos y/o anchos de banda limitados. Los dispositivos MTC pueden incluir una batería con una duración de batería superior a un umbral (por ejemplo, para mantener una duración de batería muy larga).
Los sistemas WLAN, que pueden admitir múltiples canales y anchos de banda de canal, como 802.11n, 802.11ac, 802.11 af y 802.11 ah, incluyen un canal que puede designarse como canal principal. El canal principal puede tener un ancho de banda igual al mayor ancho de banda operativo común soportado por todas las STA en el BSS. El ancho de banda del canal principal puede establecerse y/o limitarse por una STA, de entre todas las STA que operan en un BSS, que admite el modo operativo de ancho de banda más pequeño. En el ejemplo de 802.11ah, el canal principal puede tener 1 MHz de ancho para las STA (por ejemplo, dispositivos de tipo MTC) que admiten (por ejemplo, solo admiten) un modo de 1 MHz, incluso si el AP y otras s Ta en el BSS admiten 2 MHz, 4 MHz, 8 MHz, 16 MHz y/u otros modos operativos de ancho de banda del canal. Los ajustes de detección de portadora y/o vector de asignación de red (NAV) pueden depender del estado del canal principal. Si el canal principal está ocupado, por ejemplo, debido a que una STA (que solo admite un modo operativo de 1 MHz) está transmitiendo al AP, todas las bandas de frecuencia disponibles pueden considerarse ocupadas, aunque la mayoría de las bandas de frecuencia permanezcan inactivas y puede estar disponible.
En Estados Unidos, las bandas de frecuencia disponibles, que pueden ser utilizadas por 802.11ah, son de 902 MHz a 928 MHz. En Corea, las bandas de frecuencia disponibles son de 917,5 MHz a 923,5 MHz. En Japón, las bandas de frecuencia disponibles son de 916,5 MHz a 927,5 MHz. El ancho de banda total disponible para 802.11ah es de 6 MHz a 26 MHz según el código de país.
La FIG. 34D es un diagrama de sistema que ilustra la RAN 3413 y la CN 3415 según una realización. Como se indicó anteriormente, la RAN 3413 puede emplear una tecnología de radio NR para comunicarse con las WTRU 3402a, 3402b, 3402c a través de la interfaz 3416 aérea. La RAN 3413 también puede estar en comunicación con la CN 3415.
La RAN 3413 puede incluir gNB 3480a, 3480b, 3480c, aunque se apreciará que la RAN 3413 puede incluir cualquier número de gNB sin dejar de ser coherente con una realización. Cada uno de los gNB 3480a, 3480b, 3480c puede incluir uno o más transceptores para comunicarse con las WTRU 3402a, 3402b, 3402c a través de la interfaz 3416 aérea. En una realización, los gNB 3480a, 3480b, 3480c pueden implementar tecnología MIMO. Por ejemplo, los gNB 3480a, 3480b pueden utilizar formación de haces para transmitir señales y/o recibir señales de los gNB 3480a, 3480b, 3480c. Por lo tanto, el gNB 3480a, por ejemplo, puede usar múltiples antenas para transmitir señales inalámbricas y/o recibir señales inalámbricas desde la WTRU 3402a. En una realización, los gNB 3480a, 3480b, 3480c pueden implementar tecnología de agregación de portadoras. Por ejemplo, el gNB 3480a puede transmitir portadoras de múltiples componentes a la WTRU 3402a (no mostrado). Un subconjunto de estos operadores de componentes puede estar en espectro sin licencia, mientras que los operadores de componentes restantes pueden estar en espectro con licencia. En una realización, los gNB 3480a, 3480b, 3480c pueden implementar la tecnología Multi Punto Coordinado (CoMP). Por ejemplo, la WTRU 102a puede recibir transmisiones coordinadas de gNB 3480a y gNB 3480b (y/o gNB 3480c).
Las WTRU 3402a, 3402b, 3402c pueden comunicarse con los gNB 3480a, 3480b, 3480c usando transmisiones asociadas con una numerología escalable. Por ejemplo, el espaciado de símbolos OFDM y/o el espaciado de subportadoras OFDM pueden variar para diferentes transmisiones, diferentes celdas y/o diferentes porciones del espectro de transmisión inalámbrica. Las WTRU 3402a, 3402b, 3402c pueden comunicarse con los gNB 3480a, 3480b, 3480c utilizando subtramas o intervalos de tiempo de transmisión (TTI) de varias longitudes o escalables (por ejemplo, que contienen un número variable de símbolos OFDM y/o una duración variable de tiempo absoluto).
Los gNB 3480a, 3480b, 3480c pueden configurarse para comunicarse con las WTRU 3402a, 3402b, 3402c en una configuración independiente y/o no independiente. En la configuración independiente, las WTRU 3402a, 3402b, 3402c pueden comunicarse con los gNB 3480a, 3480b, 3480c sin acceder también a otras RAN (por ejemplo, como eNodo Bs 3460a, 3460b, 3460c). En la configuración independiente, las WTRU 3402a, 3402b, 3402c pueden utilizar uno o más gNB 3480a, 3480b, 3480c como punto de anclaje de movilidad. En la configuración independiente, las WTRU 3402a, 3402b, 3402c pueden comunicarse con los gNB 3480a, 3480b, 3480c mediante señales en una banda sin licencia. En una configuración no independiente, las WTRU 3402a, 3402b, 3402c pueden comunicarse con/conectarse a gNB 3480a, 3480b, 3480c mientras también se comunican con/conectan a otra RAN como eNodo Bs 3460a, 3460b, 3460c. Por ejemplo, las WTRU 3402a, 3402b, 3402c pueden implementar principios de CC para comunicarse con uno o más gNB 3480a, 3480b, 3480c y uno o más eNodo Bs 3460a, 3460b, 3460c de manera sustancialmente simultánea. En la configuración no independiente, eNodo Bs 3460a, 3460b, 3460c puede servir como anclaje de movilidad para WTRU 3402a, 3402b, 3402c y gNB 3480a, 3480b, 3480c puede proporcionar cobertura y/o rendimiento adicional para dar servicio a WTRU 3402a, 3402b, 3402c.
Cada uno de los gNB 3480a, 3480b, 3480c se puede asociar con una celda en particular (no mostrado) y se puede configurar para manejar decisiones de gestión de recursos de radio, decisiones de traspaso, programación de usuarios en UL y/o DL, soporte de segmentación de red, conectividad dual, interfuncionamiento entre NR y E-UTRA, enrutamiento de datos del plano de usuario hacia la Función de Plano de Usuario (UPF) 3484a, 3484b, enrutamiento de información del plano de control hacia la Función de Gestión de Acceso y Movilidad (AMF) 3482a, 3482b y similares. Como se muestra en la FIG. 34D, los gNB 3480a, 3480b, 3480c pueden comunicarse entre sí a través de una interfaz Xn.
La CN 3415 mostrada en la FIG. 34D puede incluir al menos una AMF 3482a, 3482b, al menos una UPF 3484a, 3484b, al menos una Función de Gestión de Sesión (SMF) 3483a, 3483b y posiblemente una Red de Datos (DN) 3485a, 3485b. Si bien cada uno de los elementos anteriores se representa como parte de la CN 3415, se apreciará que cualquiera de estos elementos puede ser propiedad y/o ser operado por una entidad distinta del operador de la CN.
La AMF 3482a, 3482b se puede conectar a uno o más de los gNB 3480a, 3480b, 3480c en la RAN 3413 a través de una interfaz N2 y puede servir como nodo de control. Por ejemplo, la AMF 3482a, 3482b puede ser responsable de autenticar a los usuarios de las WTRU 3402a, 3402b, 3402c, soporte para segmentación de red (por ejemplo, manejo de diferentes sesiones de Unidades de Datos de Protocolo (PDU) con diferentes requisitos), seleccionar una SMF 3483a particular, 3483b, gestión del área de registro, terminación de señalización de Estrato de No Acceso (NAS), gestión de movilidad, y similares. La AMF 3482a, 3482b puede utilizar la segmentación de red para personalizar el soporte de CN para las WTRU 3402a, 3402b, 3402c en función de los tipos de servicios que se utilizan en las WTRU 3402a, 3402b, 3402c. Por ejemplo, se pueden establecer diferentes segmentos de red para diferentes casos de uso, como servicios que dependen del acceso de comunicación de baja latencia ultra confiable (URLLC), servicios que dependen del acceso de banda ancha móvil mejorada (por ejemplo, móvil masivo) (eMBB), servicios para el tipo de máquina acceso a comunicaciones (MTC), y/o similares. La AMF 3462 puede proporcionar una función de plano de control para cambiar entre la RAN 3413 y otras RAN (no mostrado) que emplean otras tecnologías de radio, como LTE, LTE-A, LTE-A Pro y/o tecnologías de acceso que no son 3GPP como como WiFi.
La SMF 3483a, 3483b se puede conectar a una AMF 3482a, 3482b en la CN 3415 a través de una interfaz N11. La SMF 3483a, 3483b también se puede conectar a una UPF 3484a, 3484b en la CN 3415 a través de una interfaz N4. La SMF 3483a, 3483b puede seleccionar y controlar la UPF 3484a, 3484b y configurar el enrutamiento del tráfico a través de la UPF 3484a, 3484b. La SMF 3483a, 3483b puede realizar otras funciones, como administrar y asignar direcciones IP de UE, administrar sesiones de PDU, controlar la aplicación de políticas y QoS, proporcionar notificaciones de datos de enlace descendente y similares. Un tipo de sesión de PDU puede estar basado en IP, no basado en IP, basado en Ethernet y similares.
La UPF 3484a, 3484b se puede conectar a uno o más de los gNB 3480a, 3480b, 3480c en la RAN 3413 a través de una interfaz N3, que puede proporcionar a las WTRU 3402a, 3402b, 3402c acceso a redes de conmutación de paquetes, como la Internet 3410, para facilitar las comunicaciones entre las WTRU 3402a, 3402b, 3402c y los dispositivos habilitados para IP. La UPF 3484, 3484b puede realizar otras funciones, como enrutamiento y reenvío de paquetes, aplicación de políticas de plano de usuario, soporte de sesiones de PDU de conexión múltiple, manejo de QoS de plano de usuario, almacenamiento en búfer de paquetes de enlace descendente, provisión de anclaje de movilidad y similares.
La CN 3415 puede facilitar las comunicaciones con otras redes. Por ejemplo, la CN 3415 puede incluir, o puede comunicarse con, una puerta de enlace IP (por ejemplo, un servidor de subsistema multimedia (IMS) IP) que sirve como interfaz entre la CN 3415 y la PSTN 3408. Además, la CN 3415 puede proporcionar a las w Tr U 3402a, 3402b, 3402c acceso a las otras redes 3412, que pueden incluir otras redes cableadas y/o inalámbricas que son propiedad y/o están operadas por otros proveedores de servicios. En una realización, las WTRU 3402a, 3402b, 3402c pueden conectarse a una red de datos local (DN) 3485a, 3485b a través de la UPF 3484a, 3484b a través de la interfaz N3 a la UPF 3484a, 3484b y una interfaz N6 entre la UPF 3484a, 3484b y el DN 3485a, 3485b.
A la vista de las FIG. 34A-34D, y la descripción correspondiente de las FIGS. 34A-34D, una o más, o todas, de las funciones descritas en este documento con respecto a una o más de: WTRU 3402a-d, estación 3414a base-b, eNodo B 3460a-c, MME 3462, SGW 3464, PGW 3466, gNB 3480a-c, AMF 3482a-b, UPF 3484a-b, SMF 3483a-b, DN 3485ab y/o cualquier otro dispositivo descrito en este documento, pueden ser realizados por uno o más dispositivos de emulación (no mostrado). Los dispositivos de emulación pueden ser uno o más dispositivos configurados para emular una o más, o todas, las funciones descritas en este documento. Por ejemplo, los dispositivos de emulación pueden usarse para probar otros dispositivos y/o para simular funciones de red y/o WTRU.
Los dispositivos de emulación pueden diseñarse para implementar una o más pruebas de otros dispositivos en un entorno de laboratorio y/o en un entorno de red de operador. Por ejemplo, uno o más dispositivos de emulación pueden realizar una o más funciones, o todas, mientras se implementan total o parcialmente y/o se implementan como parte de una red de comunicación cableada y/o inalámbrica para probar otros dispositivos dentro de la red de comunicación. El uno o más dispositivos de emulación pueden realizar una o más, o todas, las funciones mientras se implementan/despliega temporalmente como parte de una red de comunicación cableada y/o inalámbrica. El dispositivo de emulación puede acoplarse directamente a otro dispositivo con fines de prueba y/o puede realizar pruebas utilizando comunicaciones inalámbricas por aire.
El uno o más dispositivos de emulación pueden realizar una o más funciones, incluidas todas, mientras no se implementen/desplieguen como parte de una red de comunicación cableada y/o inalámbrica. Por ejemplo, los dispositivos de emulación pueden utilizarse en un escenario de prueba en un laboratorio de prueba y/o una red de comunicación cableada y/o inalámbrica no implementada (por ejemplo, prueba) para implementar la prueba de uno o más componentes. El uno o más dispositivos de emulación pueden ser equipos de prueba. Los dispositivos de emulación pueden usar acoplamiento de RF directo y/o comunicaciones inalámbricas a través de circuitos de RF (por ejemplo, que pueden incluir una o más antenas) para transmitir y/o recibir datos.
El estándar HEVC ofrece un ahorro de tasa de bits de aproximadamente un 50 % para una calidad de percepción equivalente en comparación con el estándar de codificación de video H.264/MPEG AVC de la generación anterior. Aunque el estándar HEVC proporciona mejoras de codificación significativas en comparación con su predecesor, se pueden lograr mejoras de eficiencia de codificación adicionales con herramientas de codificación adicionales. El Equipo Conjunto de Exploración de Video (JVET) lanzó un proyecto para desarrollar el estándar de codificación de video de nueva generación, llamado Codificación de Video Versátil (WC), por ejemplo, para proporcionar tales mejoras en la eficiencia de codificación, y una base de código de software de referencia, llamada modelo de prueba WC (VTM), se estableció para demostrar una implementación de referencia del estándar WC. Para facilitar la evaluación de nuevas herramientas de codificación, también se generó otra base de software de referencia denominada benchmark set (BMS). En el código base de BMS, se incluye una lista de herramientas de codificación adicionales, que brindan una mayor eficiencia de codificación y una complejidad de implementación moderada, además del VTM y se utilizan como punto de referencia al evaluar tecnologías de codificación similares durante el proceso de estandarización de WC. Además de las herramientas de codificación JEM (por ejemplo, transformada secundaria no separable (NSST) 4x4, predicción bi generalizada (GBi), flujo óptico bidireccional (BIO), refinamiento del vector de movimiento del lado del decodificador (DMVR) e imagen de referencia actual (CPR) integrado en el BMS-2.0, incluye la herramienta de cuantificación codificada Trellis.
Los sistemas y métodos para procesar datos según realizaciones representativas pueden ser realizados por uno o más procesadores que ejecutan secuencias de instrucciones contenidas en un dispositivo de memoria. Dichas instrucciones pueden leerse en el dispositivo de memoria desde otros medios legibles por ordenador, como dispositivos de almacenamiento de datos secundarios. La ejecución de las secuencias de instrucciones contenidas en el dispositivo de memoria hace que el procesador funcione, por ejemplo, como se ha descrito anteriormente. En realizaciones alternativas, se puede usar un circuito cableado en lugar de o en combinación con instrucciones de software para implementar una o más realizaciones. Dicho software puede ejecutarse en un procesador alojado dentro de un aparato/asistencia robótica (RAA) y/u otro dispositivo móvil de forma remota. En el último caso, los datos pueden transferirse por cable o de forma inalámbrica entre el RAA u otro dispositivo móvil que contiene los sensores y el dispositivo remoto que contiene el procesador que ejecuta el software que realiza la estimación y compensación de escala como se describe anteriormente. Según otras realizaciones representativas, parte del procesamiento descrito anteriormente con respecto a la localización se puede realizar en el dispositivo que contiene los sensores/cámaras, mientras que el resto del procesamiento se puede realizar en un segundo dispositivo después de recibir los datos parcialmente procesados del dispositivo que contiene los sensores/cámaras.
Aunque las características y elementos se describen anteriormente en combinaciones particulares, un experto en la materia apreciará que cada característica o elemento se puede usar solo o en cualquier combinación con las otras características y elementos. Además, los métodos descritos en el presente documento pueden implementarse en un programa informático, software o firmware incorporado en un medio legible por ordenador para su ejecución por un ordenador o procesador. Los ejemplos de medios de almacenamiento legibles por ordenador no transitorios incluyen, entre otros, una memoria de solo lectura (ROM), una memoria de acceso aleatorio (RAM), un registro, memoria caché, dispositivos de memoria semiconductores, medios magnéticos como discos duros internos y discos extraíbles, medios magneto-ópticos y medios ópticos tales como discos CD-ROM y discos versátiles digitales (DVD). Se puede usar un procesador en asociación con el software para implementar un transceptor de radiofrecuencia para usar en una WTRU 3402, UE, terminal, estación base, RNC o cualquier ordenador central.
Además, en las realizaciones descritas anteriormente, se indican las plataformas de procesamiento, los sistemas informáticos, los controladores y otros dispositivos que contienen procesadores. Estos dispositivos pueden contener al menos una Unidad Central de Procesamiento ("CPU") y memoria. Según las prácticas de los expertos en la técnica de la programación informática, las diversas CPU y memorias pueden realizar referencias a actos y representaciones simbólicas de operaciones o instrucciones. Dichos actos y operaciones o instrucciones pueden denominarse "ejecutados", "ejecutados por ordenador" o "ejecutados por CPU".
Un experto normal en la técnica apreciará que los actos y las operaciones o instrucciones representadas simbólicamente incluyen la manipulación de señales eléctricas por parte de la CPU. Un sistema eléctrico representa bits de datos que pueden provocar una transformación o reducción resultante de las señales eléctricas y el mantenimiento de bits de datos en ubicaciones de memoria en un sistema de memoria para reconfigurar o alterar de otro modo el funcionamiento de la CPU, así como otros procesamientos de señales. Las ubicaciones de memoria donde se mantienen los bits de datos son ubicaciones físicas que tienen propiedades eléctricas, magnéticas, ópticas u orgánicas particulares correspondientes o representativas de los bits de datos. Debe entenderse que las realizaciones representativas no se limitan a las plataformas o CPU mencionadas anteriormente y que otras plataformas y CPU pueden admitir los métodos proporcionados.
Los bits de datos también se pueden mantener en un medio legible por ordenador, incluidos discos magnéticos, discos ópticos y cualquier otro medio volátil (por ejemplo, memoria de acceso aleatorio ("RAM")) o no volátil (por ejemplo, memoria de solo lectura ("ROM") sistema de almacenamiento masivo legible por la CPU. El medio legible por ordenador puede incluir un medio legible por ordenador cooperante o interconectado, que existe exclusivamente en el sistema de procesamiento o se distribuye entre múltiples sistemas de procesamiento interconectados que pueden ser locales o remotos al sistema de procesamiento. Se entiende que las realizaciones representativas no se limitan a las memorias mencionadas anteriormente y que otras plataformas y memorias pueden soportar los métodos descritos.
Debe entenderse que las realizaciones representativas no se limitan a las plataformas o CPU mencionadas anteriormente y que otras plataformas y CPU pueden admitir los métodos proporcionados.
En una realización ilustrativa, cualquiera de las operaciones, procesos, etc. descritos aquí puede implementarse como instrucciones legibles por ordenador almacenadas en un medio legible por ordenador . Las instrucciones legibles por ordenador pueden ser ejecutadas por un procesador de una unidad móvil, un elemento de red y/o cualquier otro dispositivo informático.
Queda poca distinción entre las implementaciones de hardware y software de los aspectos de los sistemas. El uso de hardware o software es generalmente (pero no siempre, ya que en ciertos contextos la elección entre hardware y software puede volverse significativa) una elección de diseño que representa compensaciones entre coste y eficiencia. Puede haber varios vehículos por los cuales los procesos y/o sistemas y/u otras tecnologías descritas en el presente pueden verse afectados (por ejemplo, hardware, software y/o firmware), y el vehículo preferido puede variar según el contexto en donde los procesos y/o o se implementan sistemas y/u otras tecnologías. Por ejemplo, si un implementador determina que la velocidad y la precisión son primordiales, el implementador puede optar por un vehículo principalmente de hardware y/o firmware. Si la flexibilidad es primordial, el implementador puede optar por una implementación principalmente de software. Alternativamente, el implementador puede optar por alguna combinación de hardware, software y/o firmware.
La descripción detallada anterior ha expuesto varias realizaciones de los dispositivos y/o procesos mediante el uso de diagramas de bloques, diagramas de flujo y/o ejemplos. En la medida en que dichos diagramas de bloques, diagramas de flujo y/o ejemplos contengan una o más funciones y/u operaciones, los especialistas en la técnica entenderán que cada función y/u operación dentro de dichos diagramas de bloques, diagramas de flujo o ejemplos puede implementarse, individualmente y/o colectivamente, por una amplia gama de hardware, software, firmware o prácticamente cualquier combinación de los mismos. Los procesadores adecuados incluyen, a modo de ejemplo, un procesador de propósito general, un procesador de propósito especial, un procesador convencional, un procesador de señal digital (DSP), una pluralidad de microprocesadores, uno o más microprocesadores en asociación con un núcleo DSP, un controlador, un microcontrolador, Circuitos Integrados de Aplicación Específicas (ASIC), Productos Estándar Específicos de la Aplicación (ASSP); Circuitos de Matriz de Puertas Programables en Campo (FPGA), cualquier otro tipo de circuito integrado (IC) y/o una máquina de estado.
Aunque las características y los elementos se proporcionan anteriormente en combinaciones particulares, un experto normal en la técnica apreciará que cada característica o elemento se puede usar solo o en cualquier combinación con las otras características y elementos. La presente descripción no debe limitarse en términos de las realizaciones particulares descritas en esta solicitud, que pretenden ser ilustraciones de diversos aspectos. Se pueden realizar muchas modificaciones y variaciones sin apartarse de su espíritu y alcance, como será evidente para los expertos en la materia. Ningún elemento, acto o instrucción utilizado en la descripción de la presente solicitud debe interpretarse como crítico o esencial para las realizaciones a menos que se indique explícitamente como tal. Los métodos y aparatos funcionalmente equivalentes dentro del alcance de la descripción, además de los enumerados en este documento, serán evidentes para los expertos en la técnica a partir de las descripciones anteriores. Tales modificaciones y variaciones están destinadas a caer dentro del alcance de las reivindicaciones adjuntas. La presente descripción está limitada únicamente por los términos de las reivindicaciones adjuntas, junto con el alcance completo de los equivalentes a los que tienen derecho dichas reivindicaciones. Debe entenderse que esta descripción no se limita a métodos o sistemas particulares.
También debe entenderse que la terminología utilizada en este documento tiene el propósito de describir realizaciones particulares solamente, y no pretende ser limitante. Tal como se utiliza en el presente documento, cuando se hace referencia al mismo, los términos "estación" y su abreviatura "STA", "equipo de usuario" y su abreviatura "UE" pueden significar (i) una unidad inalámbrica de transmisión y/o recepción (WTRU), como descrito infra; (ii) cualquiera de una serie de realizaciones de una WTRU, tal como se describe a continuación; (iii) un dispositivo con capacidad inalámbrica y/o con capacidad por cable (por ejemplo, anclable) configurado con, entre otras cosas, algunas o todas las estructuras y funciones de una WTRU, tal como se describe a continuación; (iii) un dispositivo con capacidad inalámbrica y/o con capacidad por cable configurado con menos de todas las estructuras y funciones de una WTRU, tal como se describe a continuación; o (iv) similares. Los detalles de una WTRU de ejemplo, que puede ser representativa de cualquier UE mencionado en este documento, se proporcionan a continuación con respecto a las FIG. 34A-34D.
En ciertas realizaciones representativas, varias partes del tema descrito en este documento pueden implementarse a través de Circuitos Integrados de Aplicación Específicas (ASIC), Circuitos de Matriz de Puertas Programables en Campo (FPGA), procesadores de señales digitales (DSP) y/u otros formatos integrados. Sin embargo, los expertos en la técnica reconocerán que algunos aspectos de las realizaciones descritas en este documento, en su totalidad o en parte, pueden implementarse de manera equivalente en circuitos integrados, como uno o más programas informáticos que se ejecutan en uno o más ordenadores (por ejemplo, como uno o más más programas que se ejecutan en uno o más sistemas informáticos), como uno o más programas que se ejecutan en uno o más procesadores (por ejemplo, como uno o más programas que se ejecutan en uno o más microprocesadores), como firmware, o prácticamente como cualquier combinación de los mismos, y que diseñar el circuito y/o escribir el código para el software y/o el firmware estaría bien dentro de la experiencia de un experto en la técnica a la luz de esta descripción. Además, los expertos en la materia apreciarán que los mecanismos del tema descrito en este documento pueden distribuirse como un producto de programa en una variedad de formas, y que una realización ilustrativa del tema descrito en este documento se aplica independientemente del tipo particular de medio portador de señal utilizado para llevar a cabo realmente la distribución. Los ejemplos de un medio portador de señales incluyen, entre otros, los siguientes: un medio de tipo grabable, como un disquete, una unidad de disco duro, un CD, un DVD, una cinta digital, una memoria de ordenador, etc., y un medio de tipo de transmisión tal como un medio de comunicación digital y/o analógico (por ejemplo, un cable de fibra óptica, una guía de ondas, un enlace de comunicaciones por cable, un enlace de comunicaciones inalámbricas, etc.).
El tema descrito en este documento a veces ilustra diferentes componentes contenidos dentro, o conectados con, otros componentes diferentes. Debe entenderse que dichas arquitecturas representadas son meramente ejemplos y que, de hecho, pueden implementarse muchas otras arquitecturas que logren la misma funcionalidad. En un sentido conceptual, cualquier arreglo de componentes para lograr la misma funcionalidad está efectivamente "asociado" de manera que se pueda lograr la funcionalidad deseada. Por lo tanto, cualquiera de los dos componentes aquí combinados para lograr una funcionalidad particular puede verse como "asociados entre sí" de manera que se logra la funcionalidad deseada, independientemente de las arquitecturas o los componentes intermedios. Del mismo modo, dos componentes cualesquiera asociados de este modo también pueden verse como "conectados operativamente" o "acoplados operativamente" entre sí para lograr la funcionalidad deseada, y dos componentes cualesquiera capaces de asociarse también pueden verse como "conectados operativamente" o "acoplados operativamente" entre sí para lograr la funcionalidad deseada. Los ejemplos específicos de acoplables operativamente incluyen, pero no se limitan a, componentes físicamente acoplables y/o que interactúan físicamente y/o componentes que interactúan de forma inalámbrica y/o componentes que interactúan de forma inalámbrica y/o componentes que interactúan lógicamente y/o componentes que interactúan lógicamente.
Con respecto al uso de sustancialmente cualquier término plural y/o singular en el presente documento, los expertos en la técnica pueden traducir del plural al singular y/o del singular al plural según sea apropiado para el contexto y/o la aplicación. Las diversas permutaciones de singular/plural pueden establecerse expresamente en este documento en aras de la claridad.
Los expertos en la técnica entenderán que, en general, los términos utilizados en este documento, y especialmente en las reivindicaciones adjuntas (por ejemplo, los cuerpos de las reivindicaciones adjuntas), se entienden generalmente como términos "abiertos" (por ejemplo, el término "incluido" debe interpretarse como "que incluye pero no se limita a", el término "tener" se debe interpretar como "que tiene al menos", el término "incluye" se debe interpretar como "incluye pero no se limita a", etc.). Los especialistas en la técnica comprenderán además que, si se pretende un número específico de una recitación de reivindicación introducida, dicha intención se recitará explícitamente en la reivindicación y, en ausencia de dicha recitación, dicha intención no estará presente. Por ejemplo, cuando solo se pretende un elemento, se puede utilizar el término "único" o un lenguaje similar. Como ayuda para la comprensión, las siguientes reivindicaciones adjuntas y/o las descripciones en este documento pueden contener el uso de las frases introductorias "al menos uno" y "uno o más" para introducir recitaciones de reivindicaciones. Sin embargo, el uso de tales frases no debe interpretarse en el sentido de que la introducción de una mención de reivindicación mediante los artículos indefinidos "un" o "uno" limita cualquier reivindicación particular que contenga dicha mención de reivindicación introducida a las realizaciones que contengan solo una mención de este tipo, incluso cuando la misma afirmación incluye las frases introductorias "uno o más" o "al menos uno" y artículos indefinidos como "un" o "uno" (por ejemplo, "un" y/o "uno" debe interpretarse como "al menos uno" o "uno o más"). Lo mismo se aplica al uso de artículos definidos para introducir recitaciones de reivindicaciones. Además, incluso si se recita explícitamente un número específico de una recitación de reivindicación introducida, los expertos en la materia reconocerán que dicha recitación debe interpretarse como al menos el número recitado (por ejemplo, la recitación simple de "dos recitaciones", sin otros modificadores, significa al menos dos recitaciones, o dos o más recitaciones). Además, en aquellos casos en que una convención análoga a "al menos uno de A, B y C, etc." se utiliza, en general, dicha construcción se pretende en el sentido de que alguien con experiencia en la técnica entendería la convención (por ejemplo, "un sistema que tiene al menos uno de A, B y C" incluiría, entre otros, sistemas que tener A solo, B solo, C solo, A y B juntos, A y C juntos, B y C juntos, y/o A, B y C juntos, etc.). En aquellos casos en que una convención análoga a "al menos uno de A, B o C, etc." se utiliza, en general, dicha construcción se pretende en el sentido de que alguien con experiencia en la técnica entendería la convención (por ejemplo, "un sistema que tiene al menos uno de A, B o C" incluiría, entre otros, sistemas que tener A solo, B solo, C solo, A y B juntos, A y C juntos, B y C juntos, y/o A, B y C juntos, etc.). Los expertos en la técnica comprenderán además que prácticamente cualquier palabra y/o frase disyuntiva que presente dos o más términos alternativos, ya sea en la descripción, las reivindicaciones o los dibujos, debe entenderse que contempla las posibilidades de incluir uno de los términos, cualquiera de los términos, o ambos términos. Por ejemplo, se entenderá que la frase "A o B" incluye las posibilidades de "A" o "B" o "A y B". Además, los términos "cualquiera de" seguido de una lista de una pluralidad de artículos y/o una pluralidad de categorías de artículos, tal como se utilizan en el presente documento, pretenden incluir "cualquiera de", "cualquier combinación de", "cualquier múltiplo de," y/o "cualquier combinación de múltiplos de" los artículos y/o las categorías de artículos, individualmente o en conjunto con otros artículos y/u otras categorías de artículos. Además, como se usa aquí, el término "conjunto" o "grupo" pretende incluir cualquier número de elementos, incluido cero. Además, como se usa aquí, el término "número" pretende incluir cualquier número, incluido el cero.
Además, cuando las características o aspectos de la descripción se describen en términos de grupos de Markush, los expertos en la técnica reconocerán que la descripción también se describe en términos de cualquier miembro individual o subgrupo de miembros del grupo de Markush.
Como entenderá un experto en la técnica, para todos y cada uno de los propósitos, como en términos de proporcionar una descripción escrita, todos los rangos descritos en el presente documento también abarcan todos y cada uno de los posibles subintervalos y combinaciones de los mismos. Cualquier rango enumerado puede reconocerse fácilmente como una descripción suficiente y permitir que el mismo rango se divida en al menos iguales mitades, tercios, cuartos, quintos, décimos, etc. Como ejemplo no limitante, cada rango discutido en este documento puede dividirse fácilmente en un tercio inferior, un tercio medio y un tercio superior, etc. Como también entenderá un experto en la materia, todo lenguaje como "hasta", "al menos", "mayor que", "menor que" y similares incluye el número recitado y se refiere a rangos que pueden dividirse posteriormente en subrangos como se explicó anteriormente. Finalmente, como entenderá un experto en la materia, un rango incluye cada miembro individual. Así, por ejemplo, un grupo que tiene de 1 a 3 celdas se refiere a grupos que tienen 1,2 o 3 celdas. De manera similar, un grupo que tiene de 1 a 5 celdas se refiere a grupos que tienen 1,2, 3, 4 o 5 celdas, y así sucesivamente.
Además, las reivindicaciones no deben interpretarse como limitadas al orden o los elementos proporcionados a menos que se indique a tal efecto. Además, el uso de los términos "medios para" en cualquier reivindicación pretende invocar 35 U.S.C. §112, 6 o formato de reivindicación de medios más función, y cualquier reivindicación sin los términos "medios para" no tiene esa intención.
Se puede usar un procesador en asociación con el software para implementar un transceptor de radiofrecuencia para usar en una unidad de recepción de transmisión inalámbrica (WTRU), equipo de usuario (UE), terminal, estación base, Entidad de Gestión de Movilidad (MME) o Núcleo de Paquetes Evolucionado (EPC), o cualquier ordenador servidor. La WTRU se puede usar junto con módulos, implementados en hardware y/o software que incluyen una radio definida por software (SDR) y otros componentes como una cámara, un módulo de cámara de video, un videoteléfono, un altavoz, un dispositivo de vibración, un altavoz, un micrófono, un transceptor de televisión, unos auriculares manos libres, un teclado, un módulo Bluetooth® , una unidad de radio de frecuencia modulada (FM), un módulo de comunicación de campo cercano (NFC), una unidad de pantalla de cristal líquido (LCD), una unidad de pantalla de diodo orgánico emisor de luz (OLED), un reproductor de música digital, un reproductor multimedia, un módulo de reproductor de videojuegos, un navegador de Internet y/o cualquier módulo de red de área local inalámbrica (WLAN) o de banda ultraancha (UWB).
A lo largo de la descripción, un experto en la materia entiende que ciertas realizaciones representativas pueden usarse como alternativa o en combinación con otras realizaciones representativas.
Además, los métodos descritos en el presente documento pueden implementarse en un programa informático, software o firmware incorporado en un medio legible por ordenador para su ejecución por un ordenador o procesador. Los ejemplos de medios de almacenamiento legibles por ordenador no transitorios incluyen, entre otros, una memoria de solo lectura (ROM), una memoria de acceso aleatorio (RAM), un registro, una memoria caché, dispositivos de memoria semiconductores, medios magnéticos como discos duros internos y discos extraíbles, medios magnetoópticos y medios ópticos tales como discos CD-ROM y discos versátiles digitales (DVD). Se puede usar un procesador en asociación con software para implementar un transceptor de radiofrecuencia para usar en una WTRU, UE, terminal, estación base, RNC o cualquier ordenador central.

Claims (10)

REIVINDICACIONES
1. Un método para decodificar un video, el método comprende:
para un bloque actual del video, el bloque actual comprende una pluralidad de subbloques:
generar un vector de movimiento de un subbloque (1650),
generar (1910) una señal de predicción de movimiento basada en subbloque utilizando el vector de movimiento del subbloque,
determinar (1920) un conjunto de valores de diferencia de vector de movimiento a nivel de píxel asociados con un subbloque del bloque actual, donde un valor de la diferencia de vector de movimiento a nivel de píxel indica una diferencia (1670) entre un vector de movimiento a nivel de píxel obtenido para una ubicación de muestra en el subbloque y el vector de movimiento del subbloque (1650),
determinar los gradientes espaciales de la señal de predicción de movimiento basada en subbloques en cada ubicación de muestra del subbloque, en función de una diferencia entre muestras contiguas horizontalmente y una diferencia entre muestras contiguas verticalmente,
determinar (1930) una señal de refinamiento de predicción de movimiento para el bloque actual en función del conjunto determinado de valores de diferencia de vector de movimiento a nivel de píxel y los gradientes espaciales determinados, y
combinar (1940) la señal de predicción de movimiento basada en subbloques y la señal de refinamiento de predicción de movimiento para producir una señal de predicción de movimiento refinada para el bloque actual; y decodificar (1950) el video usando la señal de predicción de movimiento refinada, como la predicción para el bloque actual,
en donde se genera el vector de movimiento del subbloque y se determina el conjunto de valores de diferencia de vector de movimiento a nivel de píxel usando un modelo de movimiento afín para el bloque actual.
2. Un método para codificar un video, el método comprende :
para un bloque actual del video, el bloque actual comprende una pluralidad de subbloques:
generar un vector de movimiento de un subbloque (1650),
generar (1910) una señal de predicción de movimiento basada en subbloque utilizando el vector de movimiento del subbloque,
determinar (1920) un conjunto de valores de diferencia de vector de movimiento a nivel de píxel asociados con un subbloque del bloque actual, donde un valor de la diferencia de vector de movimiento a nivel de píxel indica una diferencia (1670) entre un vector de movimiento a nivel de píxel obtenido para una ubicación de muestra en el subbloque y el vector de movimiento del subbloque (1650),
determinar los gradientes espaciales de la señal de predicción de movimiento basada en subbloques en cada ubicación de muestra del subbloque, en función de una diferencia entre muestras contiguas horizontalmente y una diferencia entre muestras contiguas verticalmente,
determinar (1930) una señal de refinamiento de predicción de movimiento para el bloque actual en función del conjunto determinado de valores de diferencia de vector de movimiento a nivel de píxel y los gradientes espaciales determinados, y
combinar (1940) la señal de predicción de movimiento basada en subbloques y la señal de refinamiento de predicción de movimiento para producir una señal de predicción de movimiento refinada para el bloque actual; y codificar (1950) el video usando la señal de predicción de movimiento refinada, como la predicción para el bloque actual,
en donde se genera el vector de movimiento del subbloque y se determina el conjunto de valores de diferencia de vector de movimiento a nivel de píxel usando un modelo de movimiento afín para el bloque actual.
3. El método de la reivindicación 1 o 2, en donde la determinación de los gradientes espaciales de la señal de predicción de movimiento basada en subbloques incluye:
para uno o más subbloques respectivos del bloque actual:
determinar un subbloque extendido, usando la señal de predicción de movimiento basada en subbloques y muestras de referencia adyacentes que bordean y rodean el respectivo subbloque; y
determinar, usando el subbloque extendido determinado, gradientes espaciales del subbloque respectivo para determinar la señal de refinamiento de predicción de movimiento.
4. El método de cualquiera de las reivindicaciones anteriores, en donde el conjunto de valores de diferencia de vector de movimiento a nivel de píxel se determina para un subbloque del bloque actual y se utiliza para determinar la señal de refinamiento de predicción de movimiento para uno o más subbloques adicionales del bloque actual.
5. El método de una cualquiera o de las reivindicaciones anteriores, que comprende además determinar los parámetros del modelo de movimiento afín para el bloque actual del video de manera que la señal de predicción de movimiento basada en subbloques se genera utilizando los parámetros del modelo de movimiento afín determinados.
6. Un decodificador configurado para decodificar un video, que comprende:
un procesador (3418) configurado para:
para un bloque actual del video, el bloque actual comprende una pluralidad de subbloques:
generar un vector de movimiento de un subbloque,
generar una señal de predicción de movimiento basada en subbloque utilizando el vector de movimiento del subbloque,
determinar un conjunto de valores de diferencia de vector de movimiento a nivel de píxel asociados con un subbloque del bloque actual, donde un valor de la diferencia de vector de movimiento a nivel de píxel indica una diferencia entre un vector de movimiento a nivel de píxel obtenido para una ubicación de muestra en el subbloque y el vector de movimiento del subbloque,
determinar los gradientes espaciales de la señal de predicción de movimiento basada en subbloques en cada ubicación de muestra del subbloque, en función de una diferencia entre muestras contiguas horizontalmente y una diferencia entre muestras contiguas verticalmente,
determinar una señal de refinamiento de predicción de movimiento para el bloque actual en función del conjunto de valores de diferencia de vector de movimiento a nivel de píxel y los gradientes espaciales determinados, y combinar la señal de predicción de movimiento basada en subbloques y la señal de refinamiento de predicción de movimiento para producir una señal de predicción de movimiento refinada para el bloque actual; y decodificar el video usando la señal de predicción de movimiento refinada, como la predicción para el bloque actual,
en donde el procesador está configurado para usar un modelo de movimiento afín para el bloque actual para generar el vector de movimiento del subbloque y para determinar el conjunto de valores de diferencia de vector de movimiento a nivel de píxel.
7. Un codificador configurado para codificar un video, que comprende:
un procesador (3418) configurado para:
para un bloque actual del video, el bloque actual comprende una pluralidad de subbloques:
generar un vector de movimiento de un subbloque,
generar una señal de predicción de movimiento basada en subbloque utilizando el vector de movimiento del subbloque,
determinar un conjunto de valores de diferencia de vector de movimiento a nivel de píxel asociados con un subbloque del bloque actual, donde un valor de la diferencia de vector de movimiento a nivel de píxel indica una diferencia entre un vector de movimiento a nivel de píxel obtenido para una ubicación de muestra en el subbloque y el vector de movimiento del subbloque,
determinar los gradientes espaciales de la señal de predicción de movimiento basada en subbloques en cada ubicación de muestra del subbloque, en función de una diferencia entre muestras contiguas horizontalmente y una diferencia entre muestras contiguas verticalmente,
determinar una señal de refinamiento de predicción de movimiento para el bloque actual en función del conjunto de valores de diferencia de vector de movimiento a nivel de píxel y los gradientes espaciales determinados, y combinar la señal de predicción de movimiento basada en subbloques y la señal de refinamiento de predicción de movimiento para producir una señal de predicción de movimiento refinada para el bloque actual; y codificar el video usando la señal de predicción de movimiento refinada, como la predicción para el bloque actual, en donde el procesador está configurado para usar un modelo de movimiento afín para el bloque actual para generar el vector de movimiento del subbloque y para determinar el conjunto de valores de diferencia de vector de movimiento a nivel de píxel.
8. El decodificador de la reivindicación 6 o el codificador de la reivindicación 7, en donde el procesador está configurado para:
para uno o más subbloques respectivos del bloque actual:
determinar un subbloque extendido, usando la señal de predicción de movimiento basada en subbloques y muestras de referencia adyacentes que bordean y rodean el respectivo subbloque; y
determinar, usando el subbloque extendido determinado, los gradientes espaciales del subbloque respectivo para determinar la señal de refinamiento de predicción de movimiento.
9. El decodificador de la reivindicación 6 u 8 o el codificador de la reivindicación 7 u 8, en donde el procesador está configurado para determinar el conjunto de valores de diferencia de vector de movimiento a nivel de píxel para el subbloque del bloque actual, que se utiliza para determinar la señal de refinamiento de predicción de movimiento para uno o más subbloques adicionales del bloque actual.
10. El decodificador de la reivindicación 6, 8 o 9 o el codificador de la reivindicación 7, 8 o 9, en donde el procesador está configurado para determinar parámetros de modelo de movimiento afines para el bloque actual del video de modo que se genera la señal de predicción de movimiento basada en subbloque usando los parámetros determinados del modelo de movimiento afín.
ES20709041T 2019-02-07 2020-02-04 Sistemas, aparatos y métodos para el refinamiento de la predicción inter con flujo óptico Active ES2950165T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962802428P 2019-02-07 2019-02-07
US201962814611P 2019-03-06 2019-03-06
US201962833999P 2019-04-15 2019-04-15
PCT/US2020/016564 WO2020163319A1 (en) 2019-02-07 2020-02-04 Systems, apparatus and methods for inter prediction refinement with optical flow

Publications (1)

Publication Number Publication Date
ES2950165T3 true ES2950165T3 (es) 2023-10-05

Family

ID=69740830

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20709041T Active ES2950165T3 (es) 2019-02-07 2020-02-04 Sistemas, aparatos y métodos para el refinamiento de la predicción inter con flujo óptico

Country Status (19)

Country Link
US (2) US11695950B2 (es)
EP (2) EP4221223A1 (es)
JP (2) JP7307184B2 (es)
KR (2) KR102612975B1 (es)
CN (2) CN114666582A (es)
AU (1) AU2020219836A1 (es)
BR (1) BR112021015598A2 (es)
CA (1) CA3129080A1 (es)
DK (1) DK3922025T3 (es)
ES (1) ES2950165T3 (es)
FI (1) FI3922025T3 (es)
HU (1) HUE062450T2 (es)
IL (2) IL285212B1 (es)
MX (1) MX2021009333A (es)
PL (1) PL3922025T3 (es)
SG (1) SG11202108295YA (es)
TW (1) TW202046736A (es)
WO (1) WO2020163319A1 (es)
ZA (1) ZA202105444B (es)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022525876A (ja) * 2019-03-17 2022-05-20 北京字節跳動網絡技術有限公司 オプティカルフローベースの予測精緻化の計算
EP3942823A4 (en) 2019-03-18 2023-04-05 Tencent America LLC VIDEO CODING METHOD AND APPARATUS
US11523109B2 (en) * 2019-05-02 2022-12-06 Tencent America LLC Method and apparatus for improvements of affine prof
WO2021001220A1 (en) * 2019-07-01 2021-01-07 Interdigital Vc Holdings France, Sas Bi-directional optical flow refinement of affine motion compensation
WO2021050234A1 (en) * 2019-09-12 2021-03-18 Alibaba Group Holding Limited Method and apparatus for signaling video coding information
WO2021050226A1 (en) * 2019-09-12 2021-03-18 Alibaba Group Holding Limited Method and apparatus for encoding or decoding video
CN114079784A (zh) * 2020-08-20 2022-02-22 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器以及计算机存储介质
WO2022061680A1 (zh) * 2020-09-24 2022-03-31 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器以及计算机存储介质
WO2022082053A1 (en) * 2020-10-15 2022-04-21 Beijing Dajia Internet Information Technology Co., Ltd. Enhanced motion estimation for inter coding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2719340C2 (ru) * 2011-10-18 2020-04-17 Кт Корпорейшен Способ декодирования видеосигнала
WO2016008157A1 (en) 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
WO2016070808A1 (en) * 2014-11-05 2016-05-12 Mediatek Singapore Pte. Ltd. Method and apparatus of video coding with prediction offset
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
CN116866586A (zh) * 2017-05-17 2023-10-10 株式会社Kt 对图像解码的方法以及存储压缩视频数据的装置
JP7168593B2 (ja) * 2017-07-03 2022-11-09 ヴィド スケール インコーポレイテッド 双方向オプティカルフローに基づいた動き補償予測
JP7339890B2 (ja) * 2018-02-06 2023-09-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置及び復号装置
JP7181039B2 (ja) 2018-09-28 2022-11-30 能美防災株式会社 防災システム
US20200296405A1 (en) * 2019-03-14 2020-09-17 Qualcomm Incorporated Affine motion compensation refinement using optical flow

Also Published As

Publication number Publication date
EP3922025A1 (en) 2021-12-15
ZA202105444B (en) 2023-12-20
KR102612975B1 (ko) 2023-12-11
HUE062450T2 (hu) 2023-11-28
CN114666582A (zh) 2022-06-24
PL3922025T3 (pl) 2023-09-11
IL309973A (en) 2024-03-01
WO2020163319A1 (en) 2020-08-13
IL285212A (en) 2021-09-30
EP3922025B1 (en) 2023-05-24
JP2023130415A (ja) 2023-09-20
KR20210133956A (ko) 2021-11-08
US20220210462A1 (en) 2022-06-30
SG11202108295YA (en) 2021-08-30
US20230291927A1 (en) 2023-09-14
JP7307184B2 (ja) 2023-07-11
JP2022519358A (ja) 2022-03-23
BR112021015598A2 (pt) 2021-10-05
DK3922025T3 (da) 2023-07-24
KR20230170987A (ko) 2023-12-19
CA3129080A1 (en) 2020-08-13
EP4221223A1 (en) 2023-08-02
CN113383551A (zh) 2021-09-10
US11695950B2 (en) 2023-07-04
TW202046736A (zh) 2020-12-16
MX2021009333A (es) 2021-10-13
IL285212B1 (en) 2024-02-01
FI3922025T3 (fi) 2023-07-07
AU2020219836A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
ES2950165T3 (es) Sistemas, aparatos y métodos para el refinamiento de la predicción inter con flujo óptico
KR102653715B1 (ko) 양방향 광학 흐름에 기반한 모션 보상 예측
US20230108208A1 (en) Complexity reduction of overlapped block motion compensation
US20230179795A1 (en) Bl-PREDICTION FOR VIDEO CODING
US20230188748A1 (en) Bi-directional optical flow method with simplified gradient derivation
WO2020132272A1 (en) Symmetric motion vector difference coding
CA3105072A1 (en) Adaptive control point selection for affine motion model based video coding
KR20210118070A (ko) 인터 및 인트라 결합 예측
KR20210142610A (ko) Affine 모션 모델 유도 방법
RU2811563C2 (ru) Системы, устройства и способы для уточнения интерпрогнозирования с помощью оптического потока
KR20210074280A (ko) 아핀 모델 기반 비디오 코딩에 대한 아핀 모션 추정
RU2817790C2 (ru) Улучшенное внутрипланарное прогнозирование с применением кандидатов векторов движения в режиме объединения