ES3013325T3 - Video encoding and decoding - Google Patents

Video encoding and decoding Download PDF

Info

Publication number
ES3013325T3
ES3013325T3 ES19902594T ES19902594T ES3013325T3 ES 3013325 T3 ES3013325 T3 ES 3013325T3 ES 19902594 T ES19902594 T ES 19902594T ES 19902594 T ES19902594 T ES 19902594T ES 3013325 T3 ES3013325 T3 ES 3013325T3
Authority
ES
Spain
Prior art keywords
block
sub
motion information
prediction value
target motion
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
ES19902594T
Other languages
English (en)
Inventor
Fangdong Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Application granted granted Critical
Publication of ES3013325T3 publication Critical patent/ES3013325T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component

Landscapes

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

Abstract

Se describe un método y un dispositivo de codificación y decodificación de vídeo. El método comprende: si el bloque actual cumple la condición específica para iniciar el modo de predicción triangular y se determina que se inicia dicho modo, dividir el bloque actual en un primer subbloque triangular y un segundo subbloque triangular; obtener la primera información de movimiento del objetivo del primer subbloque triangular y la segunda información de movimiento del objetivo del segundo subbloque triangular, siendo la primera información de movimiento del objetivo diferente de la segunda; codificar o decodificar el bloque actual según la primera información de movimiento del objetivo y la segunda información de movimiento del objetivo. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Codificación y decodificación de vídeo
Campo técnico
La presente descripción se refiere a la codificación y decodificación de vídeo y, más particularmente, a la codificación mediante el uso del modo de partición geométrica con partición triangular.
Antecedentes
En general, un método de codificación de vídeo puede incluir procesos como, por ejemplo, predicción, transformación, cuantificación, filtrado y codificación por entropía. La codificación de predicción puede incluir codificación de intrapredicción y codificación de interpredicción. La codificación de interpredicción se refiere a la codificación de predicción que usa valores de píxeles reconstruidos de un bloque vecino temporal de un bloque actual (el bloque vecino temporal y el bloque actual no están ubicados en una misma imagen). La codificación de intrapredicción se refiere a la codificación de predicción que usa valores de píxeles reconstruidos de un bloque vecino espacial del bloque actual (el bloque vecino espacial y el bloque actual están ubicados en una misma imagen).
En la codificación de interpredicción, se puede usar un vector de movimiento (MV, por sus siglas en inglés) para representar un desplazamiento relativo entre el bloque actual del segmento actual y un bloque de referencia de la imagen de referencia. Por ejemplo, el segmento A actual y la imagen B de referencia tienen una alta correlación en el dominio del tiempo. Cuando es necesario transmitir un bloque A1 actual del segmento A actual, se puede buscar un bloque B1 de referencia que coincida mejor con el bloque A1 actual en la imagen B de referencia, y el desplazamiento relativo entre el bloque A1 actual y el bloque B1 de referencia se determina y se usa como el vector de movimiento del bloque A1 actual.
Puede haber dos objetos diferentes en un bloque correspondiente a un borde de objeto físico como, por ejemplo, un primer plano (es decir, un objeto físico) y un segundo plano al mismo tiempo. En este caso, si solo se usa un bloque rectangular para la predicción, el efecto de predicción de una cierta parte del objeto en el bloque rectangular puede ser indeseable, dando como resultado un gran residuo de codificación.
El documento de R-L LIAO (PANASONIC) Y OTROS:"CE10.3.1.b: Triangular prediction unit mode",124. REUNIÓN MPEG; 20181008-20181012; MACAO; (GRUPO DE EXPERTOS DE IMÁGENES EN MOVIMIENTO O 1S0/IEC JTC1/SC29/WG11) se refiere al concepto de un modo de unidad de predicción triangular para introducir una partición triangular para la predicción compensada por movimiento. Una CU se divide en dos unidades de predicción triangulares, en dirección diagonal o diagonal inversa. El modo de unidad de predicción triangular solo se aplica a una CU cuyo tamaño de bloque es mayor que o igual a 8x8, y su modo de predicción de codificación solo se aplica a los modos de salto y fusión.
Compendio
La invención se define en las reivindicaciones independientes. En las reivindicaciones dependientes se exponen realizaciones particulares.
La presente descripción provee un método de codificación y decodificación de vídeo, que puede ser llevado a cabo por un codificador de vídeo o un decodificador de vídeo, e incluye: dividir un bloque actual en un primer subbloque triangular y un segundo subbloque triangular cuando el bloque actual satisface condiciones específicas para habilitar un modo de partición geométrica con partición triangular y se determina que el modo de partición geométrica con partición triangular está habilitado; obtener la primera información de movimiento objetivo del primer subbloque triangular y la segunda información de movimiento objetivo es diferente de la segunda información de movimiento objetivo; y llevar a cabo un procesamiento de codificación o un procesamiento de decodificación en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo.
La presente descripción provee un decodificador de vídeo, que incluye un procesador y un medio de almacenamiento legible por máquina, en donde el medio de almacenamiento legible por máquina almacena instrucciones ejecutables por máquina que pueden invocarse por el procesador; cuando el procesador ejecuta las instrucciones, se hace que el procesador lleve a cabo el método de codificación y decodificación de vídeo.
La presente descripción provee un codificador de vídeo, que incluye un procesador y un medio de almacenamiento legible por máquina, en donde el medio de almacenamiento legible por máquina almacena instrucciones ejecutables por máquina que pueden invocarse por el procesador; cuando el procesador ejecuta las instrucciones, se hace que el procesador lleve a cabo el método de codificación y decodificación de vídeo.
La presente descripción provee un medio de almacenamiento legible por máquina en donde se almacenan instrucciones de ordenador. Cuando las instrucciones del ordenador son ejecutadas por un procesador, se hace que el procesador lleve a cabo el método de codificación y decodificación de vídeo.
Breve descripción de los dibujos
La FIG. 1 es un diagrama esquemático de un marco de un sistema de codificación de vídeo según un ejemplo de la presente descripción.
La FIG. 2 es un diagrama de flujo de un método de decodificación de vídeo según un ejemplo de la presente descripción.
La FIG. 3 es un diagrama de flujo de un método de codificación de vídeo según un ejemplo de la presente descripción.
Las FIGs.4A a 4B son diagramas esquemáticos de la partición de un bloque actual según un ejemplo de la presente descripción.
Las FIGs. 5A a 5C son diagramas esquemáticos de bloques candidatos según un ejemplo de la presente descripción.
Las FIGs. 6A a 6C son diagramas esquemáticos de la partición de subbloques según un ejemplo de la presente descripción.
Las FIGs. 7A a 7B son diagramas esquemáticos de almacenamiento de información de movimiento según un ejemplo de la presente descripción.
La FIG. 8 es un diagrama de bloques esquemático de un decodificador de vídeo según un ejemplo de la presente descripción.
La FIG. 9 es un diagrama de bloques esquemático de un codificador de vídeo según un ejemplo de la presente descripción.
Descripción detallada de las realizaciones
Los ejemplos de la presente descripción pueden implicar los siguientes conceptos.
Intra predicción: codificación de predicción usando valores de píxeles reconstruidos de un bloque vecino espacial (en la misma imagen que el bloque actual) de un bloque actual. Se han propuesto una variedad de modos de intrapredicción, y cada modo de intrapredicción, excepto un modo DC, corresponde a una dirección de textura. Los píxeles predichos del bloque actual pueden generarse a partir de valores de píxeles de reconstrucción de límites del bloque vecino en su dirección de predicción. Por ejemplo, si la textura de la imagen está en dirección horizontal, entonces un modo de predicción horizontal puede predecir mejor la información de imagen.
Interpredicción: codificación de predicción usando valores de píxeles reconstruidos de un bloque vecino temporal (en una imagen diferente del bloque actual) de un bloque actual. Parte de la interpredicción de las normas principales de codificación de vídeo adopta una tecnología de compensación de movimiento basada en bloques, en donde se encuentra un bloque de mejor coincidencia en una imagen de referencia para el bloque actual. Este proceso se denomina estimación de movimiento (ME, por sus siglas en inglés).
Vector de movimiento (MV). En la codificación de interpredicción, se usa un vector de movimiento para representar un desplazamiento relativo entre un bloque codificado actual y un bloque de mejor coincidencia en una imagen de referencia. Cada bloque obtenido por partición tiene un vector de movimiento correspondiente para ser transmitido a un decodificador. Si el vector de movimiento de cada bloque se codifica y transmite independientemente, especialmente cuando se obtienen bloques de menor tamaño de la partición, tienen que consumirse más bits. Con el fin de reducir el número de bits usados para codificar el vector de movimiento, puede usarse correlación espacial entre bloques de imagen vecinos en codificación de vídeo para predecir el vector de movimiento del bloque actual a codificar basándose en el vector de movimiento del bloque codificado vecino, y luego se codifica una diferencia de predicción. Por lo tanto, el número de bits que representan el vector de movimiento puede reducirse de manera efectiva. En el proceso de codificación del vector de movimiento del bloque de imagen actual, el vector de movimiento del bloque codificado vecino se usa generalmente para predecir el vector de movimiento del macrobloque actual, y luego se codifica una diferencia de vector de movimiento (MVD, por sus siglas en inglés) entre un valor de predicción de vector de movimiento (MVP, por sus siglas en inglés) y un valor de estimación real del vector de movimiento, reduciendo así eficazmente el número de bits codificados para el MV.
Información de movimiento. Dado que el vector de movimiento representa el desplazamiento del bloque de imagen actual con respecto a un bloque en una imagen de referencia, para obtener con precisión la información del bloque de imagen indicado, además del vector de movimiento, también se necesita un índice de referencia para indicar qué imagen de referencia se usa para el bloque de imagen actual. En la tecnología de codificación de vídeo, para el segmento actual, normalmente se puede establecer una lista de imágenes de referencia, y el índice de referencia especifica qué imagen de referencia enumerada en la lista de imágenes de referencia se usa por el bloque de imágenes actual. Además, muchas tecnologías de codificación también soportan múltiples listas de imágenes de referencia, por lo que se necesita un índice para indicar qué lista de imágenes de referencia se usa, y este índice puede denominarse como una dirección de referencia. En la tecnología de codificación de vídeo, la información de codificación relacionada con el movimiento como, por ejemplo, el vector de movimiento, el índice de referencia y la dirección de referencia, puede denominarse conjuntamente información de movimiento.
Distorsión de velocidad optimizada (RDO, por sus siglas en inglés). Normalmente hay dos indicadores para evaluar la eficiencia de codificación de vídeo: la velocidad de bits y la relación señal pico a ruido (PSNR, por sus siglas en inglés). Cuanto menor sea el flujo de bits, mayor será la tasa de compresión; cuanto mayor sea la PSNR, mejor será la calidad de la imagen reconstruida. La selección de un modo se basa normalmente en una evaluación exhaustiva de los dos indicadores. Por ejemplo, el coste correspondiente a un modo se puede calcular según la siguiente fórmula: J(modo) =D+ A*R, dondeDrepresenta una distorsión, medida normalmente por una suma de diferencias al cuadrado (SSE) entre un bloque de imagen reconstruida y un bloque de imagen de origen; A representa un multiplicador de Lagrange;Rrepresenta un número real de bits necesarios para codificar un bloque de imagen en este modo, incluido un número total de bits necesarios para codificar información de modo, información de movimiento, residuos, etc. La decisión de selección del modo de codificación basada en la política RDO normalmente puede garantizar un buen rendimiento de codificación.
La FIG. 1 muestra esquemáticamente un marco de un sistema de codificación de vídeo, que puede utilizarse para implementar el procesamiento en un codificador según un ejemplo de la presente descripción. El marco del sistema de codificación de vídeo puede incluir un módulo de intrapredicción, un módulo de estimación de movimiento/compensación de movimiento, un búfer de imagen de referencia, un módulo de filtrado en bucle, un módulo de reconstrucción, un módulo de transformada, un módulo de cuantificación, un módulo de transformada inversa, un módulo de cuantificación inversa, un codificador de entropía, etc. De manera similar, el marco del sistema de decodificación de vídeo correspondiente al marco del sistema de codificación de vídeo puede utilizarse para implementar el procesamiento en un decodificador según un ejemplo de la presente descripción.
A continuación se describirán en detalle algunos ejemplos de la presente descripción con referencia a los dibujos anexos.
Implementación 1
La FIG. 2 es un diagrama de flujo de un método de decodificación de vídeo según un ejemplo de la presente descripción. Este método se puede aplicar a un decodificador y puede incluir las etapas 201 a 203.
Etapa 201, si un bloque actual satisface condiciones específicas para habilitar el modo de partición geométrica con partición triangular y se determina habilitar el modo de partición geométrica con partición triangular, el decodificador de vídeo está configurado para dividir el bloque actual en un primer subbloque triangular y un segundo subbloque triangular, es decir, el bloque actual se puede dividir en dos subbloques triangulares.
Etapa 202, el decodificador de vídeo está configurado para obtener la primera información de movimiento objetivo del primer subbloque triangular y la segunda información de movimiento objetivo del segundo subbloque triangular. La primera información de movimiento objetivo puede ser diferente de la segunda información de movimiento objetivo.
Etapa 203, el decodificador de vídeo está configurado para llevar a cabo el proceso de decodificación del bloque actual en función de la primera información de movimiento objetivo y la segunda información de movimiento objetivo.
En un ejemplo, después de recibir un flujo de bits codificado, el decodificador de vídeo puede llevar a cabo un proceso de decodificación de datos codificados correspondientes al bloque actual en el flujo de bits codificado recibido basándose en la primera información de movimiento objetivo y la segunda información de movimiento objetivo.
En el ejemplo de la presente descripción, si un bloque actual satisface condiciones específicas para habilitar el modo de partición geométrica con partición triangular y se determina habilitar el modo de partición geométrica con partición triangular, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular. Por lo tanto, el bloque actual se puede predecir basándose en la primera información de movimiento objetivo del primer subbloque triangular y la segunda información de movimiento objetivo del segundo subbloque triangular. Por lo tanto, se pueden mejorar la precisión de predicción, el rendimiento de predicción y el rendimiento de codificación, y se pueden reducir los residuos de codificación.
Implementación 2
Con referencia a la FIG. 3, esta es un diagrama de flujo de un método de codificación de vídeo según un ejemplo de la presente descripción. El método se puede aplicar a un codificador y puede incluir las etapas 301 a 303.
Etapa 301, si un bloque actual satisface condiciones específicas para habilitar el modo de partición geométrica con partición triangular y se determina habilitar el modo de partición geométrica con partición triangular, el codificador de vídeo está configurado para particionar el bloque actual en el primer subbloque triangular y el segundo subbloque triangular, es decir, el bloque actual se puede particionar en dos subbloques triangulares.
Etapa 302, el codificador de vídeo está configurado para obtener la primera información de movimiento objetivo del primer subbloque triangular y la segunda información de movimiento objetivo del segundo subbloque triangular. La primera información de movimiento objetivo puede ser diferente de la segunda información de movimiento objetivo.
Etapa 303, el codificador de vídeo está configurado para codificar el bloque actual basándose en la primera información de movimiento objetivo y la segunda información de movimiento objetivo.
En un ejemplo, el codificador de vídeo puede codificar el flujo de bits correspondiente al bloque actual basándose en la primera información de movimiento objetivo y la segunda información de movimiento objetivo para obtener un flujo de bits codificado.
En el ejemplo de la presente descripción, si un bloque actual satisface condiciones específicas para habilitar el modo de partición geométrica con partición triangular y se determina habilitar el modo de partición geométrica con partición triangular, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular. Por lo tanto, el bloque actual se puede predecir basándose en la primera información de movimiento objetivo del primer subbloque triangular y la segunda información de movimiento objetivo del segundo subbloque triangular. Por lo tanto, se pueden mejorar la precisión de predicción, el rendimiento de predicción y el rendimiento de codificación, y se pueden reducir los residuos de codificación.
Implementación 3
En la etapa 201 y la etapa 301, el decodificador de vídeo/codificador de vídeo está configurado para determinar si el bloque actual satisface condiciones específicas para habilitar el modo de partición geométrica con partición triangular; si es así, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular; y si no, el bloque actual no se divide en el primer subbloque triangular y el segundo subbloque triangular. La determinación de si el bloque actual satisface las condiciones específicas puede incluir las etapas de: determinar si el tipo de segmento de un segmento actual donde se encuentra el bloque actual, el modo de información de movimiento del bloque actual y la información de tamaño del bloque actual satisfacen las condiciones específicas.
Por ejemplo, si el tipo de segmento del segmento actual es un segmento B o un segmento no I, se puede determinar que el tipo de segmento satisface las condiciones específicas. Alternativamente, si el tipo de segmento del segmento actual permite la copia dentro del bloque, se puede determinar que el tipo de segmento satisface las condiciones específicas.
En un ejemplo, si un modo de información de movimiento del bloque actual es un modo de fusión general, se puede determinar que el modo de información de movimiento satisface las condiciones específicas. Sin embargo, cuando el modo de información de movimiento del bloque actual es otro tipo de modo (como, por ejemplo, el modo de predicción avanzada de vector de movimiento (AMVP, por sus siglas en inglés) o similar), también se puede determinar que el modo de información de movimiento satisface las condiciones específicas.
En un ejemplo, si el ancho del bloque actual es mayor que o igual a un primer valor, y una altura del bloque actual es mayor que o igual a un segundo valor, se puede determinar que la información de tamaño del bloque actual satisface las condiciones específicas. Alternativamente, si el ancho del bloque actual es mayor que o igual a un tercer valor, o la altura del bloque actual es mayor que o igual a un cuarto valor, se puede determinar que la información de tamaño del bloque actual satisface las condiciones específicas. Alternativamente, si el ancho del bloque actual es mayor que o igual a un quinto valor y menor que o igual a un sexto valor, y la altura del bloque actual es mayor que o igual a un séptimo valor y menor que o igual a un octavo valor, se puede determinar que la información de tamaño del bloque actual satisface las condiciones específicas. Alternativamente, si el ancho del bloque actual es mayor que o igual a un noveno valor y menor que o igual a un décimo valor, o la altura del bloque actual es mayor que o igual a un undécimo valor y menor que o igual a un duodécimo valor, se puede determinar que la información de tamaño del bloque actual satisface las condiciones específicas. Alternativamente, si el ancho del bloque actual es mayor que o igual a un decimotercer valor y menor que o igual a un decimocuarto valor, la altura del bloque actual es mayor que o igual a un decimoquinto valor y menor que o igual a un decimosexto valor, y un área del bloque actual es mayor que o igual a un decimoséptimo valor y menor que o igual a un decimoctavo valor, se puede determinar que la información de tamaño del bloque actual satisface las condiciones específicas.
Los valores anteriores se pueden establecer en función de la experiencia como, por ejemplo, 8, 16, 32, 64, 128, etc. En un ejemplo, el primer valor puede ser 8, el segundo valor puede ser 8, el tercer valor puede ser 8, el cuarto valor puede ser 8, el quinto valor puede ser 8, el sexto valor puede ser 128, el séptimo valor puede ser 8, el octavo valor puede ser 128, el noveno valor puede ser 8, el décimo valor puede ser 32, el undécimo valor puede ser 8, el duodécimo valor puede ser 32, el decimotercero valor puede ser 8, el decimocuarto valor puede ser 64, el decimoquinto valor puede ser 8, el decimosexto valor puede ser 64, el decimoséptimo valor puede ser 16 y el decimoctavo valor puede ser 1024.
Con respecto a la etapa 201 y a la etapa 301, a continuación se dan varios ejemplos.
Ejemplo 1. Si el bloque actual satisface todas las siguientes condiciones, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular; de lo contrario, el bloque actual no se divide en el primer subbloque triangular y el segundo subbloque triangular:
el segmento actual es un segmento B, es decir, el segmento actual permite dos listas de imágenes de referencia; el modo de información de movimiento del bloque actual es el modo de fusión general; y
el área (ancho*altura) del bloque corriente es superior o igual a N*N y N es 8, por ejemplo.
Ejemplo 2. Si el bloque actual satisface todas las siguientes condiciones, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular; de lo contrario, el bloque actual no se divide en el primer subbloque triangular y el segundo subbloque triangular:
el segmento actual es un segmento no I, es decir, el segmento actual permite al menos una lista de imágenes de referencia;
el modo de información de movimiento del bloque actual es el modo de fusión general; y
el área (ancho * altura) del bloque actual es superior o igual a N*N, y N es 8, por ejemplo.
Ejemplo 3. Si el bloque actual satisface todas las siguientes condiciones, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular; de lo contrario, el bloque actual no se divide en el primer subbloque triangular y el segundo subbloque triangular:
el segmento actual es un segmento B, es decir, el segmento actual permite dos listas de imágenes de referencia; el modo de información de movimiento del bloque actual es el modo de fusión general; y
el ancho o la altura del bloque actual es superior o igual a N, y N es 8, por ejemplo.
Ejemplo 4. Si el bloque actual satisface todas las siguientes condiciones, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular; de lo contrario, el bloque actual no se divide en el primer subbloque triangular y el segundo subbloque triangular:
el segmento actual es un segmento no I, es decir, el segmento actual permite al menos una lista de imágenes de referencia;
el modo de información de movimiento del bloque actual es el modo de fusión general; y
el ancho o la altura del bloque actual es superior o igual a N, y N es 8, por ejemplo.
Ejemplo 5. Si el bloque actual satisface todas las siguientes condiciones, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular; de lo contrario, el bloque actual no se divide en el primer subbloque triangular y el segundo subbloque triangular:
el segmento actual es un segmento no I, es decir, el segmento actual permite al menos una lista de imágenes de referencia;
el modo de información de movimiento del bloque actual es el modo de fusión general;
el ancho o la altura del bloque actual es superior o igual a N, N es 8, por ejemplo; y
el ancho o la altura del bloque actual es inferior o igual a M, y M es 128, por ejemplo.
Ejemplo 6. Si el bloque actual satisface todas las siguientes condiciones, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular; de lo contrario, el bloque actual no se divide en el primer subbloque triangular y el segundo subbloque triangular:
el segmento actual es un segmento no I, es decir, el segmento actual permite al menos una lista de imágenes de referencia;
el modo de información de movimiento del bloque actual es el modo de fusión general;
el ancho o la altura del bloque actual es superior o igual a N, N es 8, por ejemplo; y
el área (es decir, ancho*altura) del bloque actual es inferior o igual a M*M, y M es 32, por ejemplo.
Ejemplo 7. Si el bloque actual satisface todas las siguientes condiciones, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular; de lo contrario, el bloque actual no se divide en el primer subbloque triangular y el segundo subbloque triangular:
el segmento actual es un segmento no I, es decir, el segmento actual permite al menos una lista de imágenes de referencia;
el modo de información de movimiento del bloque actual es el modo de fusión general;
el ancho del bloque actual está comprendido en un intervalo de [Wmín, Wmáx], Wmín es, por ejemplo, 8, y Wmáx es, por ejemplo, 64;
la altura del bloque actual está comprendida en un intervalo de [Hmín, Hmáx], Hmín es, por ejemplo, 8, Hmáx es, por ejemplo, 64; y
el área (es decir, ancho * altura) del bloque actual está dentro del intervalo de [Smín, Smáx]. Smín es 16, por ejemplo, y Smáx es 1024, por ejemplo.
Ejemplo 8. Para cualquiera de los Ejemplos 1 a 7, la restricción en el tipo de segmento puede modificarse a: el segmento actual permite la copia intrabloque (es decir, permite buscar bloques similares al bloque actual en los bloques reconstruidos del segmento actual que se han decodificado). Por ejemplo, para el Ejemplo 1, las condiciones enumeradas pueden convertirse en:
el segmento actual permite una copia intrabloque;
el modo de información de movimiento del bloque actual es el modo de fusión general; y
el área (ancho*altura) del bloque actual es superior o igual a N*N y N es 8, por ejemplo.
Ejemplo 9. Para cualquiera de los Ejemplos 1 a 8, la restricción en el modo de información de movimiento puede modificarse a: el modo de información de movimiento del bloque actual es el modo de fusión general, y no cualquiera de un modo de partición de subbloque, un modo de múltiples hipótesis y un modo de fusión general de diferencia de información de movimiento de codificación. Es decir, cuando cualquiera del modo de partición de subbloque, el modo de múltiples hipótesis, el modo de fusión general de la diferencia de información de movimiento de codificación está habilitado para el bloque actual, se determina que el bloque actual no satisface las condiciones específicas y, por lo tanto, el bloque actual no está particionado en el primer subbloque triangular y el segundo subbloque triangular.
Implementación 4
En la etapa 201 y la etapa 301, si el bloque actual satisface las condiciones específicas para habilitar el modo de partición geométrica con partición triangular y se determina habilitar el modo de partición geométrica con partición triangular, el decodificador de vídeo/codificador de vídeo está configurado para dividir el bloque actual en el primer subbloque triangular y el segundo subbloque triangular. En un ejemplo, el bloque actual puede dividirse en el primer subbloque triangular y el segundo subbloque triangular con un primer método diagonal (es decir, usando una diagonal que forma un ángulo agudo (por ejemplo, un ángulo de 45 grados) con la dirección horizontal y derecha) como, por ejemplo, se muestra en la FIG. 4A. Alternativamente, el bloque actual puede dividirse en el primer subbloque triangular y el segundo subbloque triangular con un segundo método diagonal (es decir, usando una diagonal con un ángulo obtuso (por ejemplo, un ángulo de 135 grados) desde la dirección horizontal y derecha), como se muestra en la FIG. 4B.
Por ejemplo, en el decodificador/codificador, el bloque actual puede dividirse en el primer subbloque triangular y el segundo subbloque triangular a través de los siguientes enfoques.
Enfoque 1. El codificador de vídeo acuerda dividir el bloque actual con el primer método diagonal por defecto a través del acuerdo de protocolo, y el decodificador de vídeo acuerda dividir el bloque actual con el primer método diagonal por defecto a través del acuerdo de protocolo. Sobre esta base, el codificador de vídeo está configurado para dividir el bloque actual en el primer subbloque triangular y el segundo subbloque triangular con el primer método diagonal, y el decodificador de vídeo está configurado para dividir el bloque actual en el primer subbloque triangular y el segundo subbloque triangular con el primer método diagonal.
Enfoque 2. El codificador de vídeo acuerda dividir el bloque actual con el segundo método diagonal por defecto a través del acuerdo de protocolo, y el decodificador de vídeo acuerda dividir el bloque actual con el segundo método diagonal por defecto a través del acuerdo de protocolo. Sobre esta base, el codificador de vídeo está configurado para dividir el bloque actual en el primer subbloque triangular y el segundo subbloque triangular con el segundo método diagonal, y el decodificador de vídeo está configurado para dividir el bloque actual en el primer subbloque triangular y el segundo subbloque triangular con el segundo método diagonal.
Enfoque 3. El codificador de vídeo está configurado para determinar un coste 1 de distorsión de tasa correspondiente a la partición con el primer método diagonal y un coste 2 de distorsión de tasa correspondiente a la partición con el segundo método diagonal. Si el coste 1 de distorsión de tasa es menor que el coste 2 de distorsión de tasa, el codificador de vídeo está configurado para dividir el bloque actual en el primer subbloque triangular y el segundo subbloque triangular con el primer método diagonal. El flujo de bits codificado enviado por el codificador de vídeo al decodificador transporta la primera información de indicación, y la primera información de indicación especifica que el bloque actual se particiona con el primer método diagonal. El decodificador de vídeo está configurado para derivar el flujo de bits codificado del codificador, y si el flujo de bits codificado lleva la primera información de indicación, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular con el primer método diagonal.
Por otro lado, si el coste 1 de distorsión de tasa es mayor que el coste 2 de distorsión de tasa, el codificador de vídeo particiona el bloque actual en el primer subbloque triangular y el segundo subbloque triangular con el segundo método diagonal. El flujo de bits codificado enviado por el codificador de vídeo al decodificador transporta la segunda información de indicación, y la segunda información de indicación especifica que el bloque actual se particiona con el segundo método diagonal. El decodificador de vídeo está configurado para derivar el flujo de bits codificado del codificador, y si el flujo de bits codificado lleva la segunda información de indicación, el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular con el segundo método diagonal.
Implementación 5
En la etapa 202 y la etapa 302, el decodificador de vídeo/codificador de vídeo puede obtener la primera información de movimiento objetivo del primer subbloque triangular y la segunda información de movimiento objetivo del segundo subbloque triangular a través de los siguientes enfoques.
Enfoque 1. Se construye una primera lista de información de movimiento candidata, y la primera lista de información de movimiento candidata puede incluir una pluralidad de información de movimiento candidata; se selecciona una información de movimiento candidata de la primera lista de información de movimiento candidata como la primera información de movimiento objetivo del primer subbloque triangular. La primera información de movimiento objetivo se excluye de la primera lista de información de movimiento candidata, y otra información de movimiento candidata se selecciona de la información de movimiento candidata restante en la primera lista de información de movimiento candidata como la segunda información de movimiento objetivo del segundo subbloque triangular. De esta manera, se puede asegurar que la primera información de movimiento objetivo es diferente de la segunda información de movimiento objetivo.
En un ejemplo, para construir la primera lista de información de movimiento candidata, se pueden obtener bloques candidatos correspondientes al bloque actual, y la información de movimiento de los bloques candidatos se puede añadir a la primera lista de información de movimiento candidata. Si un bloque candidato es un bloque de predicción unidireccional, la información de movimiento del bloque candidato incluye información de movimiento unidireccional del bloque candidato; si un bloque candidato es un bloque de predicción bidireccional, la información de movimiento del bloque candidato incluye la primera información de movimiento del bloque candidato (es decir, información de movimiento L0 del bloque candidato) y la segunda información de movimiento del bloque candidato (es decir, información de movimiento L1 del bloque candidato), pero no incluye información de movimiento ponderada de la primera información de movimiento del bloque candidato y la segunda información de movimiento del bloque candidato.
Por ejemplo, con referencia a la FIG. 5A, los bloques en las 7 posiciones mostradas pueden usarse como bloques candidatos correspondientes al bloque actual, donde el bloque 1, el bloque 2, el bloque 3, el bloque 4 y el bloque 5 son bloques candidatos en el segmento actual (es decir, bloques candidatos espaciales) y los bloques 6 y 7 son bloques candidatos en la imagen de referencia (es decir, bloques candidatos en el dominio del tiempo). La información de movimiento de los bloques candidatos en estas 7 posiciones puede recopilarse para construir la primera lista de información de movimiento candidato. Si la longitud de la primera lista de información de movimiento candidata no alcanza una longitud MáxL máxima preestablecida (por ejemplo, 7), la información de movimiento de varios subbloques no vecinos espaciales disponibles puede añadirse al final de la primera lista de información de movimiento candidata (es decir, un subbloque no vecino espacial también se considera un bloque candidato correspondiente al bloque actual), y el subbloque no vecino espacial se refiere a un subbloque que no tiene línea límite o punto límite con el bloque actual.
En un ejemplo, después de recopilar la información de movimiento de los bloques candidatos, la información de movimiento se clasifica en un orden de información de movimiento unidireccional, información de movimiento L0 de predicción bidireccional e información de movimiento L1 de predicción bidireccional, o en un orden de información de movimiento L0 de predicción bidireccional, información de movimiento L1 de predicción bidireccional e información de movimiento unidireccional, y la información de movimiento recopilada se añade a la primera lista de información de movimiento candidato una a una según el resultado de la clasificación.
En un ejemplo, cada vez que se añade información de movimiento a la primera lista de información de movimiento candidata, se puede determinar si un número de información de movimiento candidata en la primera lista de información de movimiento candidata ha alcanzado un límite M superior. Si el número ha alcanzado el límite M superior, se rechaza añadir información de movimiento, y se finaliza el proceso de adición de información de movimiento. Si el número no ha alcanzado el límite M superior, puede continuar añadiéndose información de movimiento, por ejemplo, la siguiente información de movimiento se añade a la primera lista de información de movimiento candidata después de que se complete la adición de la información de movimiento actual. El valor del límite M superior puede configurarse basándose en la experiencia, para ser 5, por ejemplo.
En un ejemplo, cada vez que se añade información de movimiento a la primera lista de información de movimiento candidata, se puede determinar si la información de movimiento es coherente con alguna información de movimiento que ya haya estado en la primera lista de información de movimiento candidata. Si hay tal información de movimiento duplicada en la primera lista de información de movimiento candidata, se rechaza añadir la información de movimiento a la primera lista de información de movimiento candidata. Si no hay tal información de movimiento duplicada, la información de movimiento se añade a la primera lista de información de movimiento candidata. De esta manera, puede duplicar la información de movimiento en la primera lista de información de movimiento candidata. Alternativamente, también es posible no determinar si la información de movimiento a añadir se duplica con alguna información de movimiento existente en la primera lista de información de movimiento candidata, sino que se añade directamente la información de movimiento a la primera lista de información de movimiento candidata.
En un ejemplo, cuando toda la información de movimiento recopilada se añade a la primera lista de información de movimiento candidata, el número de información de movimiento candidata en la primera lista de información de movimiento candidata es menor que el límite M superior, entonces la información de cero movimiento puede llenarse en la primera lista de información de movimiento candidata.
En un ejemplo, cuando se construye la primera lista de información de movimiento candidata, cada vez que se va a recopilar la información de movimiento del bloque candidato del bloque actual, no hay necesidad de comparar la información de movimiento del bloque candidato con la información de movimiento que se ha recopilado para el bloque actual para ver si son iguales, sino que se recopila directamente la información de movimiento del bloque candidato.
A continuación, se describirán varios ejemplos de construcción de la primera lista de información de movimiento candidata en el Enfoque 1.
Ejemplo 1. A partir de los bloques candidatos correspondientes al bloque actual, después de obtener información de movimiento (como, por ejemplo, vectores de movimiento) basándose en la secuencia de posición mostrada en la FIG.
5A, la información de movimiento obtenida se clasifica en un orden de vector de movimiento unidireccional, vector de movimiento L0 de predicción bidireccional y vector de movimiento L1 de predicción bidireccional (sin un valor promedio de vector de movimiento L0 y vector de movimiento L1 de predicción bidireccional), y la información de movimiento obtenida se añade a la primera lista de información de movimiento candidata una a una según el resultado de la clasificación. Durante el proceso de llenado, si el número de información de movimiento candidata en la primera lista de información de movimiento candidata alcanza M (por ejemplo, 5), se detiene el llenado. Durante el proceso de llenado, es necesario comprobar repetidamente los duplicados para garantizar que la primera lista de información de movimiento candidata no tenga la misma información de movimiento. Cuando el número de información de movimiento candidata es menor que M después de que se complete el proceso de relleno, se rellenan cero vectores de movimiento.
Ejemplo 2. A partir de los bloques candidatos correspondientes al bloque actual, después de obtener información de movimiento (como, por ejemplo, vectores de movimiento) basándose en la secuencia de posición mostrada en la FIG.
5A, la información de movimiento obtenida se clasifica en un orden de vector de movimiento unidireccional, vector de movimiento L0 de predicción bidireccional y vector de movimiento L1 de predicción bidireccional (sin un valor promedio de vector de movimiento L0 y vector de movimiento L1 de predicción bidireccional), y la información de movimiento obtenida se añade a la primera lista de información de movimiento candidata una a una según el resultado de la clasificación. Durante el proceso de llenado, si el número de información de movimiento candidata en la primera lista de información de movimiento candidata alcanza M (por ejemplo, 5), se detiene el llenado de información de movimiento. Durante el proceso de llenado, no es necesario comprobar duplicados en la primera lista de información de movimiento candidata. Cuando el número de información de movimiento candidata es menor que M después de que se complete el proceso de llenado, se rellenan cero vectores de movimiento.
Ejemplo 3. A partir de los bloques candidatos correspondientes al bloque actual, después de obtener información de movimiento (como, por ejemplo, vectores de movimiento) basándose en la secuencia de posición mostrada en la FIG.
5A, la información de movimiento obtenida se clasifica en un orden de vector de movimiento L0 de predicción bidireccional, vector de movimiento L1 de predicción bidireccional y vector de movimiento unidireccional (sin un valor promedio de vector de movimiento L0 y vector de movimiento L1 de la predicción bidireccional), y la información de movimiento obtenida se añade a la primera lista de información de movimiento candidata una a una según el resultado de la clasificación. Durante el proceso de llenado, si el número de información de movimiento candidata en la primera lista de información de movimiento candidata alcanza M (por ejemplo, 5), se detiene el llenado. Durante el proceso de llenado, es necesario comprobar repetidamente los duplicados para garantizar que la primera lista de información de movimiento candidata no tenga la misma información de movimiento. Cuando el número de información de movimiento candidata es menor que M después de que se complete el proceso de llenado, se rellenan cero vectores de movimiento.
Ejemplo 4. A partir de bloques candidatos correspondientes al bloque actual, se obtiene información de movimiento (como, por ejemplo, vectores de movimiento) en función de la secuencia de posición que se muestra en la FIG. 5A. Si los bloques candidatos son bloques de predicción unidireccional, es decir, se utiliza información de movimiento unidireccional para los bloques candidatos, la información de movimiento unidireccional se añade a la primera lista de información de movimiento candidata en función de la secuencia. Si los bloques candidatos son bloques de predicción bidireccional, es decir, se utiliza información de movimiento bidireccional para los bloques candidatos, se añade información de movimiento L0 o información de movimiento L1 a la primera lista de información de movimiento candidata en función de la secuencia. Durante el proceso de llenado, si el número de información de movimiento candidata en la primera lista de información de movimiento candidata llega a M (por ejemplo, 5), se detiene el llenado. Durante el proceso de llenado, es necesario comprobar repetidamente los duplicados para garantizar que la primera lista de información de movimiento candidata no tenga la misma información de movimiento. Cuando el número de información de movimiento candidata es menor que M después de que se completa el proceso de llenado, se rellenan cero vectores de movimiento.
Ejemplo 5. Si una longitud de la primera lista de información de movimiento candidata construida después de recorrer todos los bloques candidatos mostrados en la FIG. 5A no alcanza la longitud MáxL máxima preestablecida (por ejemplo, 7), la información de movimiento de varios subbloques no vecinos espaciales disponibles se añade al final de la primera lista de información de movimiento candidata. Los subbloques no vecinos espaciales se refieren a subbloques que no tienen líneas límite o puntos límite con el bloque actual.
Ejemplo 6. A partir de bloques candidatos correspondientes al bloque actual, después de obtener información de movimiento (como, por ejemplo, vectores de movimiento) en función de la secuencia de posición mostrada en la FIG.
5A, la información de movimiento obtenida se clasifica en un orden de vector de movimiento unidireccional, vector de movimiento L0 de predicción bidireccional y vector de movimiento L1 de predicción bidireccional (sin un valor promedio del vector de movimiento L0 y el vector de movimiento L1 de predicción bidireccional), y la información de movimiento obtenida se añade a la primera lista de información de movimiento candidata una por una según el resultado de la clasificación. Durante el proceso de llenado, si el número de información de movimiento candidata en la primera lista de información de movimiento candidata llega a M (por ejemplo, 5), se detiene el llenado de la información de movimiento. Durante el proceso de llenado, para el vector de movimiento unidireccional y el vector de movimiento L0 de predicción bidireccional, es necesario verificar los duplicados en la información de movimiento existente en la primera lista de información de movimiento candidata para garantizar que la primera lista de información de movimiento candidata no tenga la misma información de movimiento; y para el vector de movimiento L1 de predicción bidireccional, no es necesario verificar los duplicados, ya que el coste es bastante alto para una gran cantidad de información de movimiento en la primera lista de información de movimiento candidata (porque se necesita comparar toda la información de movimiento en la primera lista de información de movimiento candidata).
Ejemplo 7. Al añadir información de movimiento a la primera lista de información de movimiento candidata, se involucran dos procesos. Un proceso es el proceso de recopilación de información de movimiento, es decir, se recopila la información de movimiento de los bloques candidatos, y el otro proceso es el proceso de adición de información de movimiento, es decir, se añade la información de movimiento a la primera lista de información de movimiento candidata. A continuación se describirá un ejemplo del proceso de recopilación de información de movimiento.
En el proceso de recopilación de la información de movimiento de los bloques candidatos, se puede determinar si la información de movimiento del bloque candidato actual es exactamente la misma que la información de movimiento recopilada anteriormente. Si la información de movimiento del bloque candidato actual es exactamente la misma que la información de movimiento recopilada anteriormente, se puede omitir el proceso de recopilación de la información de movimiento del bloque candidato actual. En este ejemplo, la información de movimiento del bloque candidato actual se puede comparar solo con la información de movimiento del bloque candidato cercano al bloque candidato actual.
Por ejemplo, con referencia a la FIG. 5A, en primer lugar, se recopila la información de movimiento del bloque 1 candidato. Dado que el bloque 1 candidato es el primer bloque candidato, no es necesaria ninguna comparación, y la información de movimiento del bloque 1 candidato se recopila directamente.
Luego, cuando se recopila información de movimiento del bloque 2 candidato, se puede determinar si el bloque 1 candidato está disponible. Si está disponible, se puede determinar si la información de movimiento del bloque 2 candidato es exactamente la misma que la del bloque 1 candidato. Si son exactamente iguales, no se lleva a cabo la recopilación de la información de movimiento del bloque 2 candidato, y si no son iguales, se lleva a cabo la recopilación de la información de movimiento del bloque 2 candidato.
Luego, cuando se recopila información de movimiento del bloque 3 candidato, se puede determinar si el bloque 2 candidato que está cerca del bloque 3 candidato está disponible. Si el bloque 2 candidato está disponible, se puede determinar si la información de movimiento del bloque 3 candidato y la información de movimiento del bloque 2 candidato son exactamente iguales. Si son exactamente iguales, no se lleva a cabo la recopilación de la información de movimiento del bloque 3 candidato, y si no son iguales, se lleva a cabo la recopilación de la información de movimiento del bloque 3 candidato. Cabe señalar que la información de movimiento del bloque 3 candidato ya no se compara con la información de movimiento del bloque 1 candidato que está lejos del bloque 3 candidato.
Luego, al recopilar información de movimiento del bloque 4 candidato, se puede determinar si el bloque 1 candidato que está cerca del bloque 4 candidato está disponible. Si el bloque 1 candidato está disponible, se puede determinar si la información de movimiento del bloque 4 candidato y la información de movimiento del bloque 1 candidato son exactamente iguales. Si son exactamente iguales, no se lleva a cabo la recopilación de la información de movimiento del bloque 4 candidato, y si no son iguales, se lleva a cabo la recopilación de la información de movimiento del bloque 4 candidato. Cabe señalar que la información de movimiento del bloque 4 candidato ya no se compara con la información de movimiento de los bloques 2 y 3 candidatos que están lejos del bloque 4 candidato.
Luego, al recopilar información de movimiento del bloque 5 candidato, se puede determinar si el bloque 1 candidato que está cerca del bloque 5 candidato está disponible. Si el bloque 1 candidato está disponible, se puede determinar si la información de movimiento del bloque 5 candidato es exactamente la misma que la del bloque 1 candidato. Si son exactamente iguales, no se recopila la información de movimiento del bloque 5 candidato. Si no son iguales, se puede determinar si el bloque 2 candidato, que está cerca del bloque 5 candidato, está disponible. Si está disponible, se puede determinar si la información de movimiento del bloque 5 candidato y la información de movimiento del bloque 2 candidato son exactamente iguales. Si son exactamente iguales, no se lleva a cabo la recopilación de la información de movimiento del bloque 5 candidato, y si no son iguales, se lleva a cabo la recopilación de la información de movimiento del bloque 5 candidato. Cabe señalar que la información de movimiento del bloque 5 candidato ya no se compara con la información de movimiento de los bloques 3 y 4 candidatos que están lejos del bloque 5 candidato.
Ejemplo 8. En el proceso de recopilación de información de movimiento de los bloques candidatos, no es necesario determinar si la información de movimiento del bloque candidato actual es exactamente la misma que la información de movimiento recopilada anteriormente, sino que la información de movimiento del bloque candidato actual se recopila directamente. Incluso si la información de movimiento del bloque candidato actual es exactamente la misma que la información de movimiento recopilada anteriormente, posteriormente, es posible llevar a cabo operaciones de verificación de duplicados para evitar la misma información de movimiento en la primera lista de información de movimiento candidata.
A continuación, se describirá el proceso de selección de una información de movimiento candidata de la primera lista de información de movimiento candidata como la primera información de movimiento objetivo del primer subbloque triangular en el Enfoque 1.
Enfoque a1. El codificador de vídeo puede establecer la primera información de movimiento objetivo predeterminada a través de un acuerdo de protocolo. Por ejemplo, el codificador de vídeo puede establecer la información de movimiento candidata superior en la primera lista de información de movimiento candidata como la primera información de movimiento objetivo del primer subbloque triangular de forma predeterminada. El decodificador de vídeo puede establecer la primera información de movimiento objetivo predeterminada a través de un acuerdo de protocolo. Por ejemplo, el decodificador de vídeo puede establecer la información de movimiento candidata superior en la primera lista de información de movimiento candidata como la primera información de movimiento objetivo del primer subbloque triangular de forma predeterminada.
Enfoque a2. El codificador de vídeo puede determinar un coste de distorsión de tasa correspondiente a cada información de movimiento candidata en la primera lista de información de movimiento candidata, y utilizar la información de movimiento candidata correspondiente al coste de distorsión de tasa más bajo como la información de movimiento objetivo del primer subbloque triangular. El flujo de bits codificado enviado por el codificador de vídeo al decodificador puede llevar la tercera información de indicación, y la tercera información de indicación especifica un valor de índice de la primera información de movimiento objetivo en la primera lista de información de movimiento candidata. El decodificador de vídeo está configurado para derivar el flujo de bits codificado del codificador. Si el flujo de bits codificado lleva la tercera información de indicación, el valor de índice se usa para derivar la información de movimiento candidata correspondiente a la información de índice de la primera lista de información de movimiento candidata, y la información de movimiento candidata se determina como la primera información de movimiento objetivo.
A continuación, se describirá el proceso de selección de otra información de movimiento candidata de la primera lista de información de movimiento candidata como la segunda información de movimiento objetivo del segundo subbloque triangular en el Enfoque 1.
Enfoque b1. El codificador de vídeo puede establecer la segunda información de movimiento objetivo predeterminada a través de un acuerdo de protocolo. Por ejemplo, el codificador de vídeo puede establecer la segunda información de movimiento candidata superior en la primera lista de información de movimiento candidata como la segunda información de movimiento objetivo del segundo subbloque triangular de forma predeterminada. El decodificador de vídeo puede establecer la segunda información de movimiento objetivo predeterminada a través de un acuerdo de protocolo. Por ejemplo, el decodificador de vídeo puede establecer la segunda información de movimiento candidata superior en la primera lista de información de movimiento candidata como la segunda información de movimiento objetivo del segundo subbloque triangular de forma predeterminada.
Enfoque b2. El codificador de vídeo puede excluir la primera información de movimiento objetivo de la primera lista de información de movimiento candidata (es decir, no selecciona la primera información de movimiento objetivo en la primera lista de información de movimiento candidata) y, sobre esta base, el codificador de vídeo puede determinar un coste de distorsión de tasa correspondiente a cada información de movimiento candidata restante en la primera lista de información de movimiento candidata (es decir, la información de movimiento candidata restante después de excluir la primera información de movimiento objetivo), y utilizar la información de movimiento candidata correspondiente al coste de distorsión de tasa mínimo como la segunda información de movimiento objetivo del segundo subbloque triangular. El flujo de bits codificado enviado por el codificador de vídeo al decodificador puede llevar una cuarta información de indicación, que especifica un valor de índice de la segunda información de movimiento objetivo en la primera lista de información de movimiento candidata. El decodificador de vídeo está configurado para derivar el flujo de bits codificado del codificador. Si el flujo de bits codificado lleva la cuarta información de indicación, el valor de índice se utiliza para seleccionar la información de movimiento candidata correspondiente a la información de índice de la primera lista de información de movimiento candidata, y luego la información de movimiento candidata se determina como la segunda información de movimiento objetivo.
Implementación 6
En la etapa 202 y la etapa 302, el decodificador de vídeo/codificador de vídeo puede obtener la primera información de movimiento objetivo del primer subbloque triangular y la segunda información de movimiento objetivo del segundo subbloque triangular a través de los siguientes enfoques.
Enfoque 2. Se construyen una segunda lista de información de movimiento candidata correspondiente al primer subbloque triangular y una tercera lista de información de movimiento candidata correspondiente al segundo subbloque triangular. La segunda lista de información de movimiento candidata incluye una pluralidad de información de movimiento candidata. La tercera lista de información de movimiento candidata incluye una pluralidad de información de movimiento candidata. Se selecciona una información de movimiento candidata de la segunda lista de información de movimiento candidata como la primera información de movimiento objetivo del primer subbloque triangular como la primera información de movimiento objetivo del primer subbloque triangular, y se selecciona una información de movimiento candidata de la tercera lista de información de movimiento candidata como la segunda información de movimiento objetivo del segundo subbloque triangular. La primera información de movimiento objetivo es diferente de la segunda información de movimiento objetivo.
En un ejemplo, para construir la segunda lista de información de movimiento de candidata correspondiente al primer subbloque triangular, se pueden obtener los primeros bloques de candidatos correspondientes al primer subbloque triangular, y la información de movimiento de cada primer bloque candidato se puede añadir a la segunda lista de información de movimiento candidata. Si un primer bloque candidato es un bloque de predicción unidireccional, la información de movimiento del primer bloque candidato incluye la información de movimiento unidireccional del primer bloque candidato; si el primer bloque candidato es un bloque de predicción bidireccional, la información de movimiento del primer bloque candidato incluye la primera información de movimiento del primer bloque candidato (es decir, la información de movimiento L0 del primer bloque candidato) y/o la segunda información de movimiento del primer bloque candidato (es decir, la información de movimiento L1 del primer bloque candidato), pero no incluye la información de movimiento ponderada de la primera información de movimiento del primer bloque candidato y la segunda información de movimiento del primer bloque candidato.
En un ejemplo, para construir la tercera lista de información de movimiento candidata correspondiente al segundo subbloque triangular, se pueden obtener segundos bloques candidatos correspondientes al segundo subbloque triangular, y la información de movimiento de cada segundo bloque candidato se puede añadir a la tercera lista de información de movimiento candidata. Si un segundo bloque candidato es un bloque de predicción unidireccional, la información de movimiento del segundo bloque candidato incluye la información de movimiento unidireccional; si el segundo bloque candidato es un bloque de predicción bidireccional, la información de movimiento del segundo bloque candidato incluye primera información de movimiento del segundo bloque candidato (es decir, información de movimiento L0 del segundo bloque candidato) y/o segunda información de movimiento del segundo bloque candidato (es decir, información de movimiento L1 del segundo bloque candidato), pero no incluye la información de movimiento ponderada de la primera información de movimiento del segundo bloque candidato y la segunda información de movimiento del segundo bloque candidato.
Si el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular con el segundo método diagonal, el primer subbloque triangular es el subbloque triangular del lado superior derecho, y el segundo subbloque triangular es el subbloque triangular del lado inferior izquierdo. Sobre esta base, los primeros bloques candidatos correspondientes al primer subbloque triangular pueden incluir, pero no se limitan a: bloques vecinos del lado superior del bloque actual, y bloques candidatos del dominio del tiempo en imágenes distintas del segmento actual. Los segundos bloques candidatos correspondientes al segundo subbloque triangular pueden incluir, pero no se limitan a: bloques vecinos del lado izquierdo del bloque actual, y bloques candidatos del dominio del tiempo en otras imágenes distintas del segmento actual.
Por ejemplo, los bloques en 5 posiciones que se muestran en la FIG. 5B se pueden utilizar como los primeros bloques candidatos correspondientes al primer subbloque triangular, donde el bloque 2, el bloque 3 y el bloque 5 son bloques candidatos en el segmento actual, y el bloque 6 y el bloque 7 son bloques candidatos en otras imágenes (es decir, bloques candidatos de dominio temporal). Los bloques en 5 posiciones que se muestran en la FIG. 5C se pueden utilizar como los segundos bloques candidatos correspondientes al segundo subbloque triangular, donde el bloque 1 , el bloque 4 y el bloque 5 son bloques candidatos en el segmento actual, y el bloque 6 y el bloque 7 son bloques candidatos en otras imágenes (es decir, bloques candidatos de dominio temporal).
En un ejemplo, se puede recopilar información de movimiento de bloques candidatos. Si el bloque candidato es un bloque de predicción unidireccional, la información de movimiento del bloque candidato incluye la información de movimiento unidireccional del bloque candidato; si el bloque candidato es un bloque de predicción bidireccional, la información de movimiento del bloque candidato incluye la información de movimiento L0 del bloque candidato y/o la información de movimiento L1 del bloque candidato, pero no incluye la información de movimiento ponderada de la información de movimiento L0 del bloque candidato y la información de movimiento L1 del bloque candidato.
En un ejemplo, después de que se recopila la información de movimiento de los bloques candidatos (como se muestra en la FIG. 5B o FIG. 5C), la información de movimiento recopilada se clasifica en un orden de información de movimiento unidireccional, información de movimiento L0 de predicción bidireccional e información de movimiento L1 de predicción bidireccional, y la información de movimiento recopilada se añade a la segunda lista de información de movimiento candidata o a la tercera lista de información de movimiento candidata una por una según el resultado de la clasificación. Alternativamente, la información de movimiento recopilada se clasifica en un orden de información de movimiento L0 de predicción bidireccional, información de movimiento L1 de predicción bidireccional e información de movimiento unidireccional, y la información de movimiento recopilada se añade a la segunda lista de información de movimiento candidata o a la tercera lista de información de movimiento candidata una por una según el resultado de la clasificación.
En un ejemplo, cada vez que se añade información de movimiento a la segunda lista de información de movimiento candidata o a la tercera lista de información de movimiento candidata, se puede determinar si un número de información de movimiento candidata en la segunda lista de información de movimiento candidata o en la tercera lista de información de movimiento candidata ha alcanzado un límite M superior. Si el número ha alcanzado el límite M superior, se rechaza añadir información de movimiento y se finaliza el proceso de añadir información de movimiento; y si el número no ha alcanzado el límite M superior, se puede continuar añadiendo información de movimiento. Después de añadir la información de movimiento actual, la siguiente información de movimiento se añade a la segunda lista de información de movimiento candidata o a la tercera lista de información de movimiento candidata. El valor del límite M superior puede ser 4, por ejemplo.
En un ejemplo, cada vez que se añade información de movimiento a la segunda lista de información de movimiento candidata o a la tercera lista de información de movimiento candidata, se puede determinar si la información de movimiento es coherente con alguna información de movimiento que ya existe en la segunda lista de información de movimiento candidata o en la tercera lista de información de movimiento candidata. Si existe dicha información de movimiento duplicada en la segunda lista de información de movimiento candidata o en la tercera lista de información de movimiento candidata, se rechaza añadir la información de movimiento a la segunda lista de información de movimiento candidata o a la tercera lista de información de movimiento candidata. Si no existe dicha información de movimiento, la información de movimiento se añade a la segunda lista de información de movimiento candidata o a la tercera lista de información de movimiento candidata. De esta manera, se puede evitar la información de movimiento duplicada en la segunda lista de información de movimiento candidata o en la tercera lista de información de movimiento candidata. Como alternativa, también es posible no determinar si la información de movimiento que se va a añadir se duplica con alguna información de movimiento existente, sino añadir directamente la información de movimiento a la segunda lista de información de movimiento candidata o a la tercera lista de información de movimiento candidata.
En un ejemplo, si después de que toda la información de movimiento recopilada se añade a la segunda lista de información de movimiento candidata o la tercera lista de información de movimiento candidata, la cantidad de información de movimiento candidata en la segunda lista de información de movimiento candidata o la tercera lista de información de movimiento candidata es menor que el límite M superior, entonces se puede completar la segunda lista de información de movimiento candidata o la tercera lista de información de movimiento candidata con cero información de movimiento.
En un ejemplo, cuando se construye la segunda lista de información de movimiento candidata o la tercera lista de información de movimiento candidata, cada vez que se debe recopilar la información de movimiento del bloque candidato del bloque actual, no es necesario comparar la información de movimiento del bloque candidato con la información de movimiento que se ha recopilado para el bloque actual para ver si son coherentes, sino que se recopila directamente la información de movimiento del bloque candidato.
Cabe señalar que los ejemplos 1 a 8 en la implementación 5 anterior también se pueden aplicar a la implementación 6, excepto que la primera lista de información de movimiento candidata se reemplaza por la segunda lista de información de movimiento candidata o la tercera lista de información de movimiento candidata. El bloque candidato es el bloque candidato mostrado en la FIG. 5B o FIG. 5C, en lugar del bloque candidato mostrado en la FIG. 5A. Las otras etapas son similares y no se describirán detalles nuevamente en la presente memoria.
A continuación, se describirá el proceso de selección de una información de movimiento candidata de la segunda lista de información de movimiento candidata como la primera información de movimiento objetivo del primer subbloque triangular en el Enfoque 2.
Enfoque c1. El codificador de vídeo puede establecer la primera información de movimiento objetivo predeterminada a través de un acuerdo de protocolo. Por ejemplo, el codificador de vídeo puede establecer la información de movimiento candidata superior en la segunda lista de información de movimiento candidata como la primera información de movimiento objetivo del primer subbloque triangular de manera predeterminada. El decodificador de vídeo puede establecer la primera información de movimiento objetivo predeterminada a través de un acuerdo de protocolo. Por ejemplo, el decodificador de vídeo puede establecer la información de movimiento candidata superior en la segunda lista de información de movimiento candidata como la primera información de movimiento objetivo del primer subbloque triangular de manera predeterminada.
Enfoque c2. El codificador de vídeo puede determinar un coste de distorsión de tasa correspondiente a cada información de movimiento candidata en la segunda lista de información de movimiento candidata, y utilizar la información de movimiento candidata correspondiente al coste de distorsión de tasa más pequeño como la información de movimiento objetivo del primer subbloque triangular. El flujo de bits codificado enviado por el codificador de vídeo al decodificador puede llevar una quinta información de indicación, y la quinta información de indicación especifica un valor de índice de la primera información de movimiento objetivo en la segunda lista de información de movimiento candidata. El decodificador de vídeo está configurado para derivar el flujo de bits codificado del codificador. Si el flujo de bits codificado lleva la quinta información de indicación, el valor de índice indicado por la quinta información de indicación se utiliza para recuperar la información de movimiento candidata correspondiente de la segunda lista de información de movimiento candidata, y la información de movimiento candidata se utiliza como la primera información de movimiento objetivo.
A continuación, se describirá el proceso de selección de una información de movimiento candidata de la tercera lista de información de movimiento candidata como la segunda información de movimiento objetivo del segundo subbloque triangular en el Enfoque 2.
Enfoque d1. El codificador de vídeo puede establecer una segunda información de movimiento objetivo predeterminada a través de un acuerdo de protocolo. Por ejemplo, el codificador de vídeo puede establecer la información de movimiento candidata superior en la tercera lista de información de movimiento candidata como la segunda información de movimiento objetivo del segundo subbloque triangular de forma predeterminada. El decodificador de vídeo puede establecer una segunda información de movimiento objetivo predeterminada a través de un acuerdo de protocolo. Por ejemplo, el decodificador puede establecer la información de movimiento candidata superior en la tercera lista de información de movimiento candidata como la segunda información de movimiento objetivo del segundo subbloque triangular de forma predeterminada.
Enfoque d2. El codificador de vídeo puede determinar un coste de distorsión de tasa correspondiente a cada información de movimiento candidata en la tercera lista de información de movimiento candidata, y utilizar la información de movimiento candidata correspondiente al coste de distorsión de tasa mínimo como la segunda información de movimiento objetivo del segundo subbloque triangular. El flujo de bits codificado enviado por el codificador de vídeo al decodificador puede llevar una sexta información de indicación, que especifica un valor de índice de la segunda información de movimiento objetivo en la tercera lista de información de movimiento candidata. El decodificador de vídeo está configurado para derivar el flujo de bits codificado del codificador. Si el flujo de bits codificado lleva la sexta información de indicación, el valor de índice indicado por la sexta información de indicación se utiliza para recuperar la información de movimiento candidata correspondiente de la tercera lista de información de movimiento candidata, y luego la información de movimiento candidata se utiliza como la segunda información de movimiento objetivo.
Implementación 7
Si el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular con el primer método diagonal en la etapa 201/etapa 301, entonces en la etapa 202/etapa 302, se puede construir la primera lista de información de movimiento candidata y la primera información de movimiento objetivo y la segunda información de movimiento objetivo se determina en función de la primera lista de información de movimiento candidata, es decir, se puede adoptar la Implementación 5. Si el bloque actual se divide en el primer subbloque triangular y el segundo subbloque triangular con el segundo método diagonal en la etapa 201/etapa 301, entonces en la etapa 202/etapa 302, se puede construir una segunda lista de información de movimiento candidata correspondiente al primer subbloque triangular y una tercera lista de información de movimiento candidata correspondiente al segundo subbloque triangular, la primera información de movimiento objetivo se determina en base a la segunda lista de información de movimiento candidata y la segunda información de movimiento objetivo se determina en base a la tercera lista de información de movimiento candidato, es decir, se puede adoptar la Implementación 6.
En un ejemplo, sin importar si el bloque actual se divide con el primer método diagonal o si el bloque actual se divide con el segundo método diagonal, se puede adoptar la Implementación 5. En otro ejemplo, si el bloque actual se divide con el primer método diagonal, es decir, el bloque actual se divide en una dirección de 45 grados, se puede adoptar la Implementación 5, y el límite M superior es 4, por ejemplo. Si el bloque actual se divide con el segundo método diagonal, es decir, el bloque actual se divide en una dirección de 135 grados, se puede adoptar la Implementación 6.
Con referencia a la Implementación 6, el primer subbloque triangular es un subbloque triangular en el lado superior derecho. Como se muestra en la FIG. 5B, los primeros bloques candidatos del primer subbloque triangular son el bloque 2, el bloque 3, el bloque 5, el bloque 6 y el bloque 7 en secuencia, es decir, se excluyen el bloque 1 y el bloque 4 que están más alejados del primer subbloque triangular. Como se muestra en la FIG. 5C, los segundos bloques candidatos del segundo subbloque triangular son el bloque 1, el bloque 4, el bloque 5, el bloque 6 y el bloque 7 en secuencia, es decir, se excluyen el bloque 2 y el bloque 3 que están más alejados del segundo subbloque triangular. Además, el valor M límite superior puede ser 4, por ejemplo.
En un ejemplo, un bit indicador puede codificarse para indicar si la partición se lleva a cabo en una dirección de 45 grados o 135 grados. Si se lleva a cabo la partición en una dirección de 45 grados, el índice de M*(M-1) combinaciones puede codificarse según el código unario truncado; si se lleva a cabo la partición en una dirección de 135 grados, el índice de M*M combinaciones puede codificarse según el código unario truncado. En un ejemplo, si se divide en una dirección de 45 grados y se adopta la Implementación 5 (es decir, la primera información de movimiento objetivo y la segunda información de movimiento objetivo se seleccionan de la primera lista de información de movimiento candidata), dado que hay M (p. ej., M es 4) información de movimiento candidata en la primera lista de información de movimiento candidata, la primera información de movimiento objetivo tiene M (p. ej., M es 4) opciones posibles, y después de excluir la primera información de movimiento objetivo de la primera lista de información de movimiento candidata, la segunda información de movimiento objetivo tiene (M-1) opciones posibles y, por lo tanto, el índice de la información de movimiento es un índice de M*(M-1) combinaciones. Si se divide en una dirección de 135 grados y se adopta la Implementación 6 (es decir, la primera información de movimiento objetivo se selecciona de la segunda lista de información de movimiento candidata, y la segunda información de movimiento objetivo se selecciona de la tercera lista de información de movimiento candidata), dado que hay M (p. ej., M es 4) información de movimiento candidata en la segunda lista de información de movimiento candidata, la primera información de movimiento objetivo tiene M opciones posibles, y dado que hay M (p. ej., M es 4) información de movimiento candidata en la tercera lista de información de movimiento candidata, la segunda información de movimiento objetivo tiene M opciones posibles y, por lo tanto, el índice de la información de movimiento es un índice de M*M combinaciones.
Implementación 8
Después de obtener la primera información de movimiento objetivo del primer subbloque triangular y la segunda información de movimiento objetivo del segundo subbloque triangular, en función de la primera información de movimiento objetivo y la segunda información de movimiento objetivo, se puede llevar a cabo una compensación de movimiento en el primer subbloque triangular y el segundo subbloque triangular a través de los siguientes enfoques.
Enfoque 1. El bloque actual se divide en múltiples subbloques, el ancho de cada subbloque puede ser mayor que o igual a 2 , y la altura de cada subbloque es mayor que o igual a 2. Para cada subbloque, si el subbloque está ubicado en el primer subbloque triangular, se lleva a cabo una compensación de movimiento en el subbloque en base a la primera información de movimiento objetivo del primer subbloque triangular para obtener el valor de predicción del subbloque; si el subbloque está ubicado en el segundo subbloque triangular, se lleva a cabo una compensación de movimiento en el subbloque en base a la segunda información de movimiento objetivo del segundo subbloque triangular para obtener el valor de predicción del subbloque; si el subbloque no está completamente ubicado en el primer subbloque triangular ni completamente ubicado en el segundo subbloque triangular (es decir, el subbloque está ubicado a lo largo de la diagonal que separa el primer subbloque triangular del segundo subbloque triangular), se lleva a cabo una compensación ponderada en el subbloque en base a la primera información de movimiento objetivo del primer subbloque triangular y la segunda información de movimiento objetivo del segundo subbloque triangular para obtener el valor de predicción del subbloque. La compensación ponderada puede incluir las etapas de: obtener un primer valor de predicción del subbloque en base a la primera información de movimiento objetivo; obtener un segundo valor de predicción del subbloque en base a la segunda información de movimiento objetivo; y llevar a cabo una compensación ponderada para el subbloque en base al primer valor de predicción, un primer coeficiente de ponderación correspondiente al primer valor de predicción, el segundo valor de predicción y un segundo coeficiente de ponderación correspondiente al segundo valor de predicción.
Por ejemplo, con referencia a la FIG. 6A, el bloque actual se puede dividir en subbloque 1, subbloque 2, subbloque 3 y subbloque 4. En aplicaciones prácticas, el bloque actual se puede dividir en más subbloques como, por ejemplo, el ancho de cada subbloque es mayor que o igual a 2 y la altura de cada subbloque es mayor que o igual a 2. A continuación, se dará una descripción con referencia a la partición de subbloque que se muestra en la FIG. 6A como ejemplo.
Para el subbloque 2, dado que el subbloque 2 está ubicado en el primer subbloque triangular, la primera información de movimiento objetivo se utiliza para llevar a cabo una compensación de movimiento en el subbloque 2 para obtener el valor de predicción. Para el subbloque 3, dado que el subbloque 3 está ubicado en el segundo subbloque triangular, la segunda información de movimiento objetivo se utiliza para llevar a cabo una compensación de movimiento en el subbloque 3 para obtener el valor de predicción. Para el subbloque 1, dado que el subbloque 1 no está completamente en el primer subbloque triangular ni completamente en el segundo subbloque triangular, se determina un primer valor P1 de predicción del subbloque 1 en función de la primera información de movimiento objetivo, y se determina un segundo valor P2 de predicción del subbloque 1 en función de la segunda información de movimiento objetivo. Suponiendo que el primer coeficiente de ponderación correspondiente a P1 es a (como, por ejemplo, 0,5) y el segundo coeficiente de ponderación correspondiente a P2 es b (como, por ejemplo, 0,5), se lleva a cabo una compensación ponderada en el subbloque 1 en función de P1, a, P2, y b. El valor de predicción del subbloque 1 después de la compensación ponderada es igual a, por ejemplo, P1*a+P2*b. La compensación de movimiento para el subbloque 4 es similar a la compensación de movimiento para el subbloque 1 , y no se repetirá aquí.
Enfoque 2. El bloque actual se divide en una primera área de subbloque, una segunda área de subbloque y una tercera área de subbloque, donde la primera área de subbloque está ubicada en el primer subbloque triangular, la segunda área de subbloque está ubicada en el segundo subbloque triangular, y la distancia entre el centro de cada subbloque en la tercera área de subbloque y la diagonal que separa el primer subbloque triangular del segundo subbloque triangular es menor que un umbral preestablecido. La compensación de movimiento se lleva a cabo en cada subbloque en la primera área de subbloque en base a la primera información de movimiento objetivo del primer subbloque triangular, la compensación de movimiento se lleva a cabo en cada subbloque en la segunda área de subbloque en base a la segunda información de movimiento objetivo del segundo subbloque triangular; y la compensación ponderada se lleva a cabo en cada subbloque en la tercera área de subbloque en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo. La compensación ponderada puede incluir las etapas de: para cada subbloque en la tercera área de subbloque, determinar un primer valor de predicción del subbloque en base a la primera información de movimiento objetivo, y determinar un segundo valor de predicción del subbloque en base a la segunda información de movimiento objetivo; en base al primer valor de predicción, un primer coeficiente de ponderación correspondiente al primer valor de predicción, el segundo valor de predicción y un segundo coeficiente de ponderación correspondiente al segundo valor de predicción, llevar a cabo una compensación ponderada en el subbloque, en donde si el subbloque está ubicado o mayormente ubicado en el primer subbloque triangular, el primer coeficiente de ponderación es mayor que el segundo coeficiente de ponderación; si el subbloque está ubicado o mayormente ubicado en el segundo subbloque triangular, el primer coeficiente de ponderación es menor que el segundo coeficiente de ponderación; si el subbloque está ubicado a lo largo de la diagonal que separa el primer subbloque triangular del segundo subbloque triangular, el primer coeficiente de ponderación es igual al segundo coeficiente de ponderación.
Cada subbloque en la tercera área de subbloque puede ser un subbloque 1*1, es decir, un bloque de un solo píxel, o un subbloque N*M, donde N puede ser mayor que o igual a 1, y M también puede ser mayor que o igual a 1.
Por ejemplo, con referencia a la FIG. 6B, el bloque actual puede dividirse en una primera área de subbloque, una segunda área de subbloque y una tercera área de subbloque. La primera área de subbloque está ubicada en el primer subbloque triangular y, por lo tanto, la primera información de movimiento objetivo del primer subbloque triangular puede usarse para llevar a cabo una compensación de movimiento en cada subbloque en la primera área de subbloque para obtener un valor de predicción. La segunda área de subbloque está ubicada en el segundo subbloque triangular y, por lo tanto, la segunda información de movimiento objetivo del segundo subbloque triangular puede usarse para llevar a cabo una compensación de movimiento en cada subbloque en la segunda área de subbloque para obtener un valor de predicción. La tercera área de subbloque puede incluir subbloques etiquetados como 1, subbloques etiquetados como 2, subbloques etiquetados como 4, subbloques etiquetados como 6 y subbloques etiquetados como 7.
Para cada subbloque etiquetado como 7, al que se hará referencia como subbloque 7 en lo sucesivo, se puede determinar un primer valor P1 de predicción del subbloque 7 en función de la primera información de movimiento objetivo, y se puede determinar un segundo valor P2 de predicción del subbloque 7 en función de la segunda información de movimiento objetivo. Suponiendo que el primer coeficiente de ponderación correspondiente a P1 es "a", y el segundo coeficiente de ponderación correspondiente a P2 es "b", el valor de predicción del subbloque 7 después de la compensación ponderada puede ser igual a: P1*a+P2*b. Además, dado que el subbloque 7 está ubicado en el primer subbloque triangular, el primer coeficiente de ponderación "a" es mayor que el segundo coeficiente de ponderación "b". Suponiendo que "a" es 7/8 y "b" es 1/8, el valor de predicción del subbloque 7 después de la compensación ponderada es igual a P1*7/8+P2*1/8.
Para cada subbloque etiquetado como 6, denominado subbloque 6 en lo sucesivo, el proceso de compensación ponderada es similar al del subbloque 7. Dado que el subbloque 6 está ubicado en el primer subbloque triangular, el primer coeficiente de ponderación "a" es mayor que el segundo coeficiente de ponderación "b". Además, dado que el subbloque 6 está más cerca de la segunda área del subbloque que el subbloque 7, el primer coeficiente de ponderación "a" del subbloque 6 puede ser menor que el primer coeficiente de ponderación "a" del subbloque 7. Por ejemplo, el primer coeficiente de ponderación "a" del subbloque 6 es 6/8, el segundo coeficiente de ponderación "b" es 2/8, y el valor de predicción del subbloque 6 después de la compensación ponderada es igual a P1 *6/8+P2*2/8.
Para cada subbloque etiquetado como 4, denominado subbloque 4 en lo sucesivo, el proceso de compensación ponderada es similar al del subbloque 7. Dado que el subbloque 4 está ubicado a lo largo de la diagonal que separa el primer subbloque triangular del segundo subbloque triangular, el primer coeficiente de ponderación "a" es igual al segundo coeficiente de ponderación "b". Por ejemplo, "a" es 4/8, "b" es 4/8, y el valor de predicción del subbloque 4 después de la compensación ponderada es igual a P1*4/8+P2*4/8.
Para cada subbloque etiquetado como 2, al que se hará referencia como subbloque 2 en lo sucesivo, el proceso de compensación ponderada es similar al del subbloque 7. Dado que el subbloque 2 está ubicado en el segundo subbloque triangular, el primer coeficiente de ponderación "a" es menor que el segundo coeficiente de ponderación "b". Por ejemplo, "a" es 2/8, "b" es 6/8, y el valor de predicción del subbloque 2 después de la compensación ponderada es igual a P1*2/8+P2*6/8.
Para cada subbloque etiquetado como 1, denominado subbloque 1 en lo sucesivo, el proceso de compensación de ponderación es similar al del subbloque 7. Dado que el subbloque 1 está ubicado en el segundo subbloque triangular, el primer coeficiente de ponderación "a" es menor que el segundo coeficiente de ponderación "b". Además, dado que el subbloque 1 está más cerca de la segunda área del subbloque que el subbloque 2, el primer coeficiente de ponderación "a" del subbloque 1 puede ser menor que el primer coeficiente de ponderación "a" del subbloque 2. Por ejemplo, el primer coeficiente de ponderación "a" del subbloque 1 es 1 /8, y el segundo coeficiente de ponderación "b" es 7/8, y el valor de predicción del subbloque 1 después de la compensación ponderada es igual a P1*1/8+P2*7/8.
En el ejemplo anterior, la suma del primer coeficiente de ponderación "a" y el segundo coeficiente de ponderación "b" de cada subbloque es igual a 1. Cuanto más cerca esté el subbloque de la primera área de subbloque, mayor será el primer coeficiente de ponderación "a" y menor será el segundo coeficiente de ponderación "b". Cuanto más cerca esté el subbloque de la segunda área de subbloque, menor será el primer coeficiente de ponderación "a" y mayor será el segundo coeficiente de ponderación "b".
En un ejemplo, para los subbloques en la tercera área de subbloque, se puede configurar un primer conjunto de coeficientes de ponderación para los componentes de luma. Por ejemplo, a lo largo de la dirección desde la primera área de subbloque hasta la segunda área de subbloque, el primer coeficiente de ponderación “a” del componente de luma de cada subbloque es, respectivamente, 7/8, 6/8, 4/8, 2/8, 1/8 en secuencia. Por ejemplo, con referencia a la FIG. 6B, el primer coeficiente de ponderación “a” del componente de luma del subbloque 7 es 7/8, el primer coeficiente de ponderación “a” del componente de luma del subbloque 6 es 6/8, el primer coeficiente de ponderación “a” del componente de luma del subbloque 4 es 4/8, el primer coeficiente de ponderación “a” del componente de luma del subbloque 2 es 2/8, y el primer coeficiente de ponderación “a” del componente de luma del subbloque 1 es 1 /8.
En otro ejemplo, para los subbloques en la tercera área de subbloques, se puede configurar un segundo conjunto de coeficientes de ponderación para los componentes de luma. Por ejemplo, a lo largo de la dirección desde la primera área de subbloques hasta la segunda área de subbloques, el primer coeficiente de ponderación "a" del componente de luma de cada subbloque es respectivamente 7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8 en secuencia. Por ejemplo, con referencia a la FIG. 6B, el primer coeficiente de ponderación "a" del componente de luma del subbloque 7 es 7/8, el primer coeficiente de ponderación "a" del componente de luma del subbloque 6 es 6/8, el primer coeficiente de ponderación "a" del componente de luma del subbloque 5 (el subbloque 5 puede estar ubicado entre el subbloque 4 y el subbloque 6, la FIG. 6B no muestra el subbloque 5) es 5/8, el primer coeficiente de ponderación "a" del componente de luma del subbloque 4 es 4/8, el primer coeficiente de ponderación "a" del componente de luma del subbloque 3 (el subbloque 3 puede estar ubicado entre el subbloque 2 y el subbloque 4, y el subbloque 3 no se muestra en la FIG.
6B) es 3/8, el primer coeficiente de ponderación "a" del componente de luma del subbloque 2 es 2/8, y el primer coeficiente de ponderación "a" del componente de luma del subbloque 1 es 1/8. Para los componentes de luma descritos anteriormente, el primer valor P1 de predicción y el segundo valor P2 de predicción son ambos los valores de predicción del componente de luma, y el valor P1*a+P2*b de predicción después de la compensación ponderada también es el valor de predicción del componente de luma.
En un ejemplo, para los subbloques en la tercera área de subbloques, se puede configurar un primer conjunto de coeficientes de ponderación para los componentes de croma. Por ejemplo, a lo largo de la dirección desde la primera área de subbloques hasta la segunda área de subbloques, el primer coeficiente de ponderación "a" del componente de croma de cada subbloque es respectivamente 7/8, 4/8, 1/8 en secuencia. Por ejemplo, con referencia a la FIG. 6C, el primer coeficiente de ponderación "a" del componente de croma del subbloque 7 es 7/8, el primer coeficiente de ponderación "a" del componente de croma del subbloque 4 es 4/8, y el primer coeficiente de ponderación "a" del componente de croma del subbloque 1 es 1 /8.
En otro ejemplo, para los subbloques en la tercera área de subbloques, se puede configurar un segundo conjunto de coeficientes de ponderación para los componentes de croma. Por ejemplo, a lo largo de la dirección desde la primera área de subbloques hasta la segunda área de subbloques, el primer coeficiente de ponderación "a" del componente de croma de cada subbloque es respectivamente 6/8, 4/8 y 2/8 en secuencia. Por ejemplo, con referencia a la FIG.
6C, el primer coeficiente de ponderación "a" del componente de croma del subbloque 7 es 6/8, el primer coeficiente de ponderación "a" del componente de croma del subbloque 4 es 4/8, y el primer coeficiente de ponderación "a" del componente de croma del subbloque 1 es 2/8. Para los componentes de croma, el primer valor P1 de predicción y el segundo valor P2 de predicción son ambos los valores de predicción del componente de croma, y el valor P1*a+P2*b de predicción después de la compensación ponderada también es el valor de predicción del componente de croma.
A continuación se describirán algunos ejemplos del proceso de compensación de movimiento.
Ejemplo 1. Para la compensación de movimiento, el bloque actual se puede dividir en una primera área de subbloque, una segunda área de subbloque y una tercera área de subbloque. La compensación de movimiento se lleva a cabo en cada subbloque en la primera área de subbloque en función de la primera información de movimiento objetivo del primer subbloque triangular. La compensación de movimiento se lleva a cabo en cada subbloque en la segunda área de subbloque en función de la segunda información de movimiento objetivo del segundo subbloque triangular. La compensación ponderada se lleva a cabo en cada subbloque en la tercera área de subbloque en función de la primera información de movimiento objetivo y la segunda información de movimiento objetivo.
En un ejemplo, el bloque actual se puede dividir en múltiples subbloques M*M (p. ej., M es 4). Para cada subbloque M*M, si el subbloque no está a lo largo de la diagonal que separa el primer subbloque triangular del segundo subbloque triangular, se utiliza información de movimiento unidireccional para llevar a cabo la compensación de movimiento en el subbloque. En este caso, si el subbloque está ubicado en el primer subbloque triangular, el subbloque se denomina primera área de subbloques y la primera información de movimiento objetivo se utiliza para la compensación de movimiento; si el subbloque está ubicado en el segundo subbloque triangular, el subbloque se denomina segunda área de subbloques y la segunda información de movimiento objetivo se utiliza para la compensación de movimiento. Si el subbloque se encuentra a lo largo de la diagonal que separa el primer subbloque triangular del segundo subbloque triangular, el subbloque se denomina tercera área de subbloques, para la cual se pueden utilizar los dos tipos de información de movimiento unidireccional (es decir, la primera información de movimiento objetivo y la segunda información de movimiento objetivo) para llevar a cabo una compensación ponderada. Para métodos de cálculo de ponderación específicos, se puede hacer referencia a los ejemplos anteriores.
Ejemplo 2. Para la compensación de movimiento, el bloque actual se puede dividir en una primera área de subbloque, una segunda área de subbloque y una tercera área de subbloque. La compensación de movimiento se lleva a cabo en cada subbloque en la primera área de subbloque en función de la primera información de movimiento objetivo del primer subbloque triangular. La compensación de movimiento se lleva a cabo en cada subbloque en la segunda área de subbloque en función de la segunda información de movimiento objetivo del segundo subbloque triangular. En función de la primera información de movimiento objetivo y la segunda información de movimiento objetivo, se lleva a cabo una compensación ponderada en cada subbloque en la tercera área de subbloque, donde solo se utiliza un conjunto de coeficientes de ponderación: los coeficientes de ponderación utilizados para los componentes de luma: {7/8, 6/8, 4/8, 2/8, 1/8}, el coeficiente de ponderación utilizado para los componentes de croma: {7/8, 4/8, 1/8}. Para métodos de cálculo de ponderación específicos, se puede hacer referencia al ejemplo anterior.
Ejemplo 3: para la compensación de movimiento, el bloque actual se puede dividir en una primera área de subbloque, una segunda área de subbloque y una tercera área de subbloque. La compensación de movimiento se lleva a cabo en cada subbloque en la primera área de subbloque en base a la primera información de movimiento objetivo del primer subbloque triangular. La compensación de movimiento se lleva a cabo en cada subbloque en la segunda área de subbloque en base a la segunda información de movimiento objetivo del segundo subbloque triangular. En base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo, se lleva a cabo una compensación ponderada en cada subbloque en la tercera área de subbloque, donde solo se puede configurar un conjunto de coeficientes de ponderación para la compensación ponderada. Por ejemplo, los coeficientes de ponderación para el componente de luma se configuran de la siguiente manera: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8}, y el coeficiente de ponderación para el componente de croma se configura de la siguiente manera: {6/8, 4/8, 2/8}. Para métodos de ponderación específicos, es preciso remitirse al ejemplo anterior.
Enfoque 3. El bloque actual se divide en una primera área de subbloque, una segunda área de subbloque y una tercera área de subbloque, donde la primera área de subbloque está ubicada en el primer subbloque triangular, y la segunda área de subbloque está ubicada en el segundo subbloque triangular, la distancia entre el centro de cada subbloque en la tercera área de subbloque y la línea diagonal que separa el primer subbloque triangular del segundo subbloque triangular es menor que un umbral preestablecido. La compensación de movimiento se lleva a cabo en cada subbloque en la primera área de subbloque en función de la primera información de movimiento objetivo. La compensación de movimiento se lleva a cabo en cada subbloque en la segunda área de subbloque en función de la segunda información de movimiento objetivo. La compensación de movimiento se lleva a cabo en cada subbloque en la tercera área de subbloque en función de la primera información de movimiento objetivo o la segunda información de movimiento objetivo.
Por ejemplo, si la información de tamaño del bloque actual satisface una primera condición (por ejemplo, el ancho del bloque actual es mayor que o igual a la altura del bloque actual), se lleva a cabo una compensación de movimiento en cada subbloque en la tercera área de subbloques en función de la primera información de movimiento objetivo; si la información de tamaño del bloque actual satisface una segunda condición (por ejemplo, el ancho del bloque actual es menor que la altura del bloque actual), se lleva a cabo una compensación de movimiento en cada subbloque en la tercera área de subbloques en función de la segunda información de movimiento objetivo. Sin embargo, lo anterior es solo un ejemplo, y también se pueden utilizar otros métodos para determinar si se debe llevar a cabo una compensación de movimiento en función de la primera información de movimiento objetivo o de la segunda información de movimiento objetivo.
Cada subbloque en la tercera área de subbloques puede ser un subbloque 1*1 , es decir, un bloque de un solo píxel, o puede ser un subbloque N*M, donde N puede ser mayor que o igual a 1, y M también puede ser mayor que o igual a 1.
En este ejemplo, para la tercera área de subbloques, en lugar de utilizar tanto la primera información de movimiento objetivo como la segunda información de movimiento objetivo, se utiliza la primera información de movimiento objetivo o la segunda información de movimiento objetivo para la compensación de movimiento en cada subbloque en la tercera área de subbloques. Es decir, no hay subbloques que deban someterse a compensación de movimiento utilizando predicción bidireccional, por lo cual no se requiere compensación ponderada.
En cuanto a si se debe utilizar la primera información de movimiento objetivo o la segunda información de movimiento objetivo para llevar a cabo la compensación de movimiento en cada subbloque en la tercera área de subbloques, se puede determinar de cualquiera de las siguientes maneras: (1 ) utilizando la primera información de movimiento objetivo por defecto para llevar a cabo la compensación de movimiento en cada subbloque en la tercera área de subbloques; (2) utilizando la segunda información de movimiento objetivo por defecto para llevar a cabo la compensación de movimiento en la tercera área de subbloques; (3) determinando en función del tamaño del bloque actual. Por ejemplo, si el ancho del bloque actual es mayor que o igual a la altura del bloque actual, se utiliza la primera información de movimiento objetivo para llevar a cabo la compensación de movimiento en cada subbloque en la tercera área de subbloques; si el ancho del bloque actual es menor que la altura del bloque actual, se utiliza la segunda información de movimiento objetivo para llevar a cabo la compensación de movimiento en cada subbloque en la tercera área de subbloques.
Implementación 9
El codificador de vídeo determina primero si el bloque actual satisface condiciones específicas para habilitar el modo de partición geométrica con partición triangular. En caso negativo, se decide no utilizar el modo de partición geométrica con partición triangular, sino utilizar otro modo. En caso positivo, el codificador de vídeo puede habilitar el modo de partición geométrica con partición triangular de forma predeterminada, o el codificador de vídeo puede determinar si habilitar el modo de partición geométrica con partición triangular. Si el codificador de vídeo habilita el modo de partición geométrica con partición triangular de forma predeterminada o decide habilitar el modo de partición geométrica con partición triangular, el codificador de vídeo lleva a cabo la operación de particionar el bloque actual en subbloques triangulares y otras operaciones posteriores en los ejemplos relacionados de más arriba; de lo contrario, estas operaciones no se llevan a cabo.
Para determinar si habilitar el modo de partición geométrica con partición triangular, el codificador de vídeo puede determinar el costo de distorsión de tasa correspondiente al modo de partición geométrica con partición triangular. Si el costo de distorsión de tasa correspondiente al modo de partición geométrica con partición triangular es menor que el costo de distorsión de tasa correspondiente a cada uno de los otros modos, se puede determinar habilitar el modo de partición geométrica con partición triangular; de lo contrario, se puede determinar no habilitar el modo de partición geométrica con partición triangular.
En consecuencia, el flujo de bits codificado enviado por el codificador de vídeo al decodificador puede llevar una séptima información de indicación, donde la séptima información de indicación especifica que el modo de partición geométrica con partición triangular está habilitado.
El decodificador de vídeo determina primero si el bloque actual satisface las condiciones específicas para habilitar el modo de partición geométrica con partición triangular. Si no es así, se decide no utilizar el modo de partición geométrica con partición triangular, sino utilizar otro modo. Si es así, el decodificador de vídeo puede habilitar el modo de partición geométrica con partición triangular de forma predeterminada, o el decodificador de vídeo se configura para derivar el flujo de bits codificado del codificador. Si el flujo de bits codificado lleva la séptima información de indicación, se puede determinar que se habilite el modo de partición geométrica con partición triangular; de lo contrario, se puede determinar que no se habilite el modo de partición geométrica con partición triangular. Si el decodificador de vídeo habilita el modo de partición geométrica con partición triangular de forma predeterminada o decide habilitar el modo de partición geométrica con partición triangular, el decodificador de vídeo lleva a cabo la operación de partición del bloque actual en subbloques triangulares y otras operaciones posteriores en los ejemplos relacionados de más arriba; de lo contrario, estas operaciones no se llevan a cabo.
Implementación 10
El codificador de vídeo/decodificador de vídeo también puede almacenar la primera información de movimiento objetivo y la segunda información de movimiento objetivo de la siguiente manera. Si el bloque candidato correspondiente a la primera información de movimiento objetivo es un bloque de predicción unidireccional, la primera información de movimiento objetivo se almacena para el primer subbloque triangular; si el bloque candidato correspondiente a la primera información de movimiento objetivo es un bloque de predicción bidireccional, la primera información de movimiento objetivo y la tercera información de movimiento objetivo se almacenan para el primer subbloque triangular, y la tercera información de movimiento objetivo es otra información de movimiento del bloque de predicción bidireccional. Si el bloque candidato correspondiente a la segunda información de movimiento objetivo es un bloque de predicción unidireccional, la segunda información de movimiento objetivo se almacena para el segundo subbloque triangular; si el bloque candidato correspondiente a la segunda información de movimiento objetivo es un bloque de predicción bidireccional, la segunda información de movimiento objetivo y la cuarta información de movimiento objetivo se almacenan para el segundo subbloque triangular, y la cuarta información de movimiento objetivo es otra información de movimiento del bloque de predicción bidireccional.
Por ejemplo, para la primera área de subbloque, si la primera información de movimiento objetivo de la primera área de subbloque es MV1 , y MV1 proviene de un bloque R 1 de predicción unidireccional, es decir, el bloque de R 1 predicción unidireccional es un bloque candidato del bloque actual, y la lista de información de movimiento incluye la información de movimiento MV1 del bloque R 1 de predicción unidireccional, y MV1 se selecciona como la primera información de movimiento objetivo de la primera área de subbloque, entonces MV1 se almacena para la primera área de subbloque, como se muestra en la FIG. 7A. Para la segunda área de subbloque, si la segunda información de movimiento objetivo de la segunda área de subbloque es MV2 , y MV2 proviene de un bloque R2 de predicción unidireccional, es decir, el bloque R2 de predicción unidireccional es un bloque candidato del bloque actual, y la lista de información de movimiento incluye la información de movimiento MV2 del bloque R2 de predicción unidireccional, y MV2 se selecciona como la segunda información de movimiento objetivo de la segunda área de subbloque, entonces MV2 se almacena para la segunda área de subbloque, como se muestra en la FIG. 7A.
A modo de otro ejemplo, para la primera área de subbloque, si la primera información de movimiento objetivo de la primera área de subbloque es MV1, y MV1 proviene de un bloque R3 de predicción bidireccional, es decir, el bloque R3 de predicción bidireccional es un bloque candidato del bloque actual, y la lista de información de movimiento incluye la información de movimiento MV1 y MV2 del bloque R3 de predicción bidireccional, y MV1 se selecciona como la primera información de movimiento objetivo de la primera área de subbloque, entonces MV1 y MV2, en lugar de solo M1, se almacenan para la primera área de subbloque, como se muestra en la FIG. 7B. Para la segunda área de subbloques, si la segunda información de movimiento objetivo de la segunda área de subbloques es MV3, y MV3 proviene de un bloque R4 de predicción bidireccional, es decir, el bloque R4 de predicción bidireccional es un bloque candidato del bloque actual, y la lista de información de movimiento incluye la información de movimiento MV3 y MV4 del bloque R4 de predicción bidireccional, y MV3 se selecciona como la segunda información de movimiento objetivo de la segunda área de subbloques, entonces MV3 y MV4, en lugar de solo MV3, se almacenan para la segunda área de subbloques, como se muestra en la FIG. 7B.
En los ejemplos anteriores, como se muestra en las FIGS. 7A y 7B, la información de movimiento se puede almacenar en una unidad de 4*4.
Implementación 11
Este ejemplo de la presente descripción provee un decodificador de vídeo. La FIG. 8 es un diagrama de bloques esquemático del decodificador de vídeo. Con referencia a la FIG. 8, el decodificador de vídeo puede incluir un procesador 81 y un medio 82 de almacenamiento legible por máquina. El medio 82 de almacenamiento legible por máquina almacena instrucciones ejecutables por máquina que pueden ser invocadas por el procesador 81. Cuando el procesador 81 invoca las instrucciones ejecutables por máquina, el procesador 81 está configurado para llevar a cabo el método de decodificación de vídeo según los ejemplos relacionados anteriores de la presente descripción.
El ejemplo de la presente descripción también provee un codificador de vídeo. La FIG. 9 es un diagrama de bloques esquemático del codificador de vídeo. Con referencia a la FIG. 9, el codificador de vídeo puede incluir un procesador 91 y un medio 92 de almacenamiento legible por máquina. El medio 92 de almacenamiento legible por máquina almacena instrucciones ejecutables por máquina que pueden ser invocadas por el procesador 91. Cuando el procesador 91 invoca las instrucciones ejecutables por máquina, el procesador 91 está configurado para llevar a cabo el método de codificación de vídeo según los ejemplos relacionados de más arriba de la presente descripción.
Un ejemplo de la presente descripción también provee un medio de almacenamiento legible por máquina, que almacena instrucciones de ordenador, y cuando las instrucciones de ordenador son ejecutadas por un procesador, el procesador puede implementar el método de codificación/decodificación de vídeo de los ejemplos anteriores.
El medio de almacenamiento legible por máquina puede ser un dispositivo de almacenamiento electrónico, magnético, óptico u otro dispositivo de almacenamiento físico, y puede contener o almacenar información como, por ejemplo, instrucciones ejecutables, datos, etc. Por ejemplo, el medio de almacenamiento legible por máquina puede incluir memoria no permanente (por ejemplo, RAM (memoria de acceso aleatorio, RAM, por sus siglas en inglés)), memoria permanente (por ejemplo, memoria flash, unidad de almacenamiento (como, por ejemplo, unidad de disco duro), unidad de estado sólido, almacenamiento óptico (por ejemplo, CD-ROM (memoria de solo lectura de disco compacto, CD-ROM, por sus siglas en inglés), DVD (disco versátil digital), etc.) o una combinación de los mismos.
Los sistemas, aparatos, módulos o unidades ilustrados en los ejemplos anteriores pueden implementarse mediante chips o entidades de ordenador, o implementarse mediante productos con ciertas funciones. Un dispositivo de implementación típico es un dispositivo electrónico, que incluye, entre otros: un ordenador personal, un ordenador portátil, una tableta, un teléfono celular, una cámara, un teléfono inteligente, un asistente digital personal, un reproductor multimedia, un dispositivo de navegación, un dispositivo de recepción y envío de correo electrónico, una consola de juegos, un dispositivo ponible, o cualquier combinación de los mismos.
Para facilitar la descripción, al describir el aparato anterior, las funciones se dividen en varias unidades. Sin embargo, al implementar la presente descripción, las funciones de cada unidad pueden implementarse en uno o más programas y/o hardware.
Las personas con experiencia en la técnica deben entender que los ejemplos de la presente descripción pueden proveerse como métodos, sistemas o productos de programas informáticos. Por lo tanto, la presente descripción puede adoptar la forma de una implementación pura de hardware, una implementación pura de software o una implementación que combina software y hardware.
La presente descripción se describe con referencia a diagramas de flujo y/o diagramas de bloques de métodos, dispositivos (sistemas) y productos de programas informáticos según los ejemplos de la presente descripción. Debe entenderse que cada proceso y/o bloque en el diagrama de flujo y/o diagrama de bloques puede implementarse mediante instrucciones de programas informáticos. Estas instrucciones de programas informáticos pueden proveerse al procesador de un ordenador de propósito general, un ordenador de propósito especial, un procesador integrado u otro dispositivo de procesamiento de datos programable, de modo que las instrucciones de programas informáticos sean ejecutadas por el procesador para generar un dispositivo para implementar funciones especificadas en uno o más procesos en el diagrama de flujo y/o en uno o más bloques en el diagrama de bloques.
Las descripciones anteriores son solo algunos ejemplos de la presente descripción y no se utilizan para limitar la presente descripción. Para las personas con experiencia en la técnica, la presente descripción puede tener varias modificaciones y cambios. Cualquier modificación, reemplazo equivalente, mejora, etc., llevada a cabo dentro del principio de la presente descripción se incluirá en el alcance de las reivindicaciones de la presente descripción.

Claims (13)

REIVINDICACIONES
1. Un método de decodificación, que comprende:
cuando un bloque actual satisface condiciones específicas para habilitar un modo de partición geométrica con partición triangular y se determina que se habilita el modo de partición geométrica con partición triangular, llevar a cabo las siguientes etapas:
obtener la primera información de movimiento objetivo y la segunda información de movimiento objetivo del bloque actual, en donde la primera información de movimiento objetivo es diferente de la segunda información de movimiento objetivo; la primera información de movimiento objetivo y la segunda información de movimiento objetivo son respectivamente información de movimiento de un primer subbloque triangular y un segundo subbloque triangular obtenidos al particionar el bloque actual; y
llevar a cabo un proceso de decodificación en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo;
en donde si el bloque actual satisface las condiciones específicas para habilitar el modo de partición geométrica con partición triangular se determina: determinando si un tipo de un segmento actual donde se encuentra el bloque actual, un modo de información de movimiento del bloque actual y la información de tamaño del bloque actual satisfacen las condiciones específicas;
en donde la realización de un proceso de decodificación en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
llevar a cabo una compensación de movimiento en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo para obtener un valor de predicción del bloque actual;
en donde el valor de predicción del bloque actual comprende al menos un valor de predicción de una primera área de subbloque, un valor de predicción de una segunda área de subbloque y un valor de predicción de una tercera área de subbloque;
en donde el valor de predicción de la primera área de subbloque se obtiene llevando a cabo una compensación de movimiento en la primera área de subbloque en base a la primera información de movimiento objetivo, el valor de predicción de la segunda área de subbloque se obtiene llevando a cabo una compensación de movimiento en la segunda área de subbloque en base a la segunda información de movimiento objetivo, y el valor de predicción de la tercera área de subbloque se obtiene llevando a cabo una compensación ponderada en la tercera área de subbloque en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo; y
en donde el valor de predicción de la tercera área de subbloque comprende valores de predicción de todos los subbloques en la tercera área de subbloque, y cada subbloque en la tercera área de subbloque es un bloque de píxeles de 1* 1 ,
obtener el valor de predicción de la tercera área de subbloque llevando a cabo una compensación ponderada en la tercera área de subbloques en función de la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
para cada subbloque en la tercera área de subbloque,
determinar un primer valor de predicción del subbloque en función de la primera información de movimiento objetivo;
determinar un segundo valor de predicción del subbloque en función de la segunda información de movimiento objetivo; y
obtener un valor de predicción ponderado del subbloque en función del primer valor de predicción, un primer coeficiente de ponderación correspondiente al primer valor de predicción, el segundo valor de predicción y un segundo coeficiente de ponderación correspondiente al segundo valor de predicción,
en donde el valor de predicción ponderado del subbloque es P1*a+P2*b cuando el primer valor de predicción es P1, el segundo valor de predicción es P2, el primer coeficiente de ponderación es a y el segundo coeficiente de ponderación es b,
en donde un conjunto de valores del primer coeficiente de ponderación para un componente de luma de cada subbloque en la tercera área de subbloque es {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8}.
2. El método de decodificación según la reivindicación 1 , en donde
cuando el bloque actual satisface las condiciones específicas para habilitar un modo de partición geométrica con partición triangular y se determina habilitar el modo de partición geométrica con partición triangular, las etapas ejecutadas comprenden además: particionar el bloque actual en el primer subbloque triangular y el segundo subbloque triangular basándose en un método de partición indicado por la información de indicación.
3. El método de decodificación según la reivindicación 2, en donde la partición del bloque actual en un primer subbloque triangular y un segundo subbloque triangular basándose en un método de partición indicado por la información de indicación, comprende:
particionar el bloque actual en el primer subbloque triangular y el segundo subbloque triangular con un primer método diagonal cuando el método de partición indicado por la información de indicación especifica que el bloque actual puede ser particionado con el primer método diagonal; o
particionar el bloque actual en el primer subbloque triangular y el segundo subbloque triangular con un segundo método diagonal cuando el método de partición indicado por la información de indicación especifica que el bloque actual puede ser particionado con el segundo método diagonal.
4. El método de decodificación según la reivindicación 1, en donde cada subbloque de la tercera área de subbloque comprende un componente de luma;
para el componente de luma,
el primer valor de predicción es un valor de predicción del componente de luma determinado en función de la primera información de movimiento del objetivo,
el segundo valor de predicción es un valor de predicción del componente de luma determinado en función de la segunda información de movimiento del objetivo, y
el valor de predicción ponderado del subbloque es un valor de predicción ponderado del componente de luma.
5. El método de decodificación según la reivindicación 1, en donde cada subbloque en la tercera área de subbloque comprende un componente de croma;
para el componente de croma,
el primer valor de predicción es un valor de predicción del componente de croma determinado en base a la primera información de movimiento objetivo,
el segundo valor de predicción es un valor de predicción del componente de croma determinado en base a la segunda información de movimiento objetivo, y
el valor de predicción ponderado del subbloque es un valor de predicción ponderado del componente de croma que se determina en base al primer valor de predicción, el segundo valor de predicción, el primer coeficiente de ponderación y el segundo coeficiente de ponderación.
6. El método de decodificación según la reivindicación 2, en donde para cada subbloque en la tercera área de subbloque,
cuando el subbloque está ubicado en el primer subbloque triangular, el primer coeficiente de ponderación es mayor que el segundo coeficiente de ponderación;
cuando el subbloque está ubicado en el segundo subbloque triangular, el primer coeficiente de ponderación es menor que el segundo coeficiente de ponderación;
cuando el subbloque está ubicado a lo largo de una línea de partición, el primer coeficiente de ponderación es igual al segundo coeficiente de ponderación.
7. El método de decodificación según la reivindicación 1, que comprende además:
para el bloque actual, almacenar información de movimiento en una unidad de bloque de 4*4;
en donde para la primera área de subbloque, si se selecciona MV1 como la primera información de movimiento objetivo, almacenar MV1 para la primera área de subbloque, en donde MV1 procede de un bloque de predicción unidireccional y una lista candidata del bloque actual comprende MV1;
para la segunda área de subbloque, si se selecciona MV2 como la segunda información de movimiento objetivo, almacenar MV2 para la segunda área de subbloque, en donde MV2 procede de un bloque de predicción unidireccional y la lista candidata comprende MV2.
8. El método de decodificación según la reivindicación 1, en donde la obtención de la primera información de movimiento objetivo y la segunda información de movimiento objetivo del bloque actual comprende:
construir una lista candidata que comprende una pluralidad de información de movimiento candidata;
seleccionar una información de movimiento candidata de la lista candidata como la primera información de movimiento objetivo; y
seleccionar otra información de movimiento candidata de la lista candidata como la segunda información de movimiento objetivo;
o
construir una lista candidata que comprende una pluralidad de información de movimiento candidata;
seleccionar, según un valor de índice indicado por la tercera información de indicación, información de movimiento candidata correspondiente al valor de índice de la lista candidata, y utilizar la información de movimiento candidata seleccionada como la primera información de movimiento objetivo; y
seleccionar, según un valor de índice indicado por la cuarta información de indicación, información de movimiento candidata correspondiente al valor de índice de la lista candidata, y utilizar la información de movimiento candidata seleccionada como la segunda información de movimiento objetivo.
9. Un método de codificación, que comprende:
cuando un bloque actual satisface condiciones específicas para habilitar un modo de partición geométrica con partición triangular y se determina que se habilita el modo de partición geométrica con partición triangular, llevar a cabo las siguientes etapas:
obtener la primera información de movimiento objetivo y la segunda información de movimiento objetivo del bloque actual, en donde la primera información de movimiento objetivo es diferente de la segunda información de movimiento objetivo; la primera información de movimiento objetivo y la segunda información de movimiento objetivo son respectivamente información de movimiento de un primer subbloque triangular y un segundo subbloque triangular obtenidos al particionar el bloque actual; y
llevar a cabo un proceso de codificación en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo;
en donde si el bloque actual satisface las condiciones específicas para habilitar el modo de partición geométrica con partición triangular se determina: determinando si un tipo de un segmento actual donde se encuentra el bloque actual, un modo de información de movimiento del bloque actual y la información de tamaño del bloque actual satisfacen las condiciones específicas;
en donde la realización de un proceso de codificación en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
llevar a cabo una compensación de movimiento en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo para obtener un valor de predicción del bloque actual;
en donde el valor de predicción del bloque actual comprende al menos un valor de predicción de una primera área de subbloque, un valor de predicción de una segunda área de subbloque y un valor de predicción de una tercera área de subbloque;
en donde el valor de predicción de la primera área de subbloque se obtiene llevando a cabo una compensación de movimiento en la primera área de subbloque en base a la primera información de movimiento objetivo, el valor de predicción de la segunda área de subbloque se obtiene llevando a cabo una compensación de movimiento en la segunda área de subbloque en base a la segunda información de movimiento objetivo, y el valor de predicción de la tercera área de subbloque se obtiene llevando a cabo una compensación ponderada en la tercera área de subbloque en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo; y
en donde el valor de predicción de la tercera área de subbloque comprende valores de predicción de todos los subbloques en la tercera área de subbloque, y cada subbloque en la tercera área de subbloque es un bloque de píxeles de 1 *1 ,
obtener el valor de predicción de la tercera área de subbloque llevando a cabo una compensación ponderada en la tercera área de subbloque en función de la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
para cada subbloque en la tercera área de subbloque,
determinar un primer valor de predicción del subbloque en función de la primera información de movimiento objetivo;
determinar un segundo valor de predicción del subbloque en función de la segunda información de movimiento objetivo; y
obtener un valor de predicción ponderado del subbloque basándose en el primer valor de predicción, un primer coeficiente de ponderación correspondiente al primer valor de predicción, el segundo valor de predicción y un segundo coeficiente de ponderación correspondiente al segundo valor de predicción,
en donde el valor de predicción ponderado del subbloque es P1*a+P2*b cuando el primer valor de predicción es P1, el segundo valor de predicción es P2, el primer coeficiente de ponderación es a y el segundo coeficiente de ponderación es b,
en donde un conjunto de valores del primer coeficiente de ponderación para un componente de luma de cada subbloque en la tercera área de subbloque es {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1 /8}.
10. Un dispositivo de decodificación, que comprende un procesador y un medio de almacenamiento legible por máquina, en donde el medio de almacenamiento legible por máquina almacena instrucciones ejecutables por máquina que son invocadas por el procesador; cuando el procesador invoca las instrucciones, el procesador está configurado para:
cuando un bloque actual satisface condiciones específicas para habilitar un modo de partición geométrica con partición triangular y se determina que se habilita el modo de partición geométrica con partición triangular, llevar a cabo las siguientes etapas:
obtener la primera información de movimiento objetivo y la segunda información de movimiento objetivo del bloque actual, en donde la primera información de movimiento objetivo es diferente de la segunda información de movimiento objetivo; la primera información de movimiento objetivo y la segunda información de movimiento objetivo son respectivamente información de movimiento de un primer subbloque triangular y un segundo subbloque triangular obtenidos al particionar el bloque actual; y
llevar a cabo un proceso de decodificación en el bloque actual en función de la primera información de movimiento objetivo y la segunda información de movimiento objetivo;
en donde si el bloque actual satisface las condiciones específicas para habilitar el modo de partición geométrica con partición triangular se determina: determinando si un tipo de un segmento actual donde se encuentra el bloque actual, un modo de información de movimiento del bloque actual y la información de tamaño del bloque actual satisfacen las condiciones específicas;
en donde la realización de un proceso de decodificación en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
llevar a cabo una compensación de movimiento en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo para obtener un valor de predicción del bloque actual;
en donde el valor de predicción del bloque actual comprende al menos un valor de predicción de una primera área de subbloque, un valor de predicción de una segunda área de subbloque y un valor de predicción de una tercera área de subbloque;
en donde el valor de predicción de la primera área de subbloque se obtiene llevando a cabo una compensación de movimiento en la primera área de subbloque en base a la primera información de movimiento objetivo, el valor de predicción de la segunda área de subbloque se obtiene llevando a cabo una compensación de movimiento en la segunda área de subbloque en base a la segunda información de movimiento objetivo, y el valor de predicción de la tercera área de subbloque se obtiene llevando a cabo una compensación ponderada en la tercera área de subbloque en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo; y
en donde el valor de predicción de la tercera área de subbloque comprende valores de predicción de todos los subbloques en la tercera área de subbloque, y cada subbloque en la tercera área de subbloque es un bloque de píxeles de 1 *1 ,
obtener el valor de predicción de la tercera área de subbloque llevando a cabo una compensación ponderada en la tercera área de subbloque en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
para cada subbloque en la tercera área de subbloque,
determinar un primer valor de predicción del subbloque en base a la primera información de movimiento objetivo;
determinar un segundo valor de predicción del subbloque en base a la segunda información de movimiento del objetivo; y
obtener un valor de predicción ponderado del subbloque en base al primer valor de predicción, un primer coeficiente de ponderación correspondiente al primer valor de predicción, el segundo valor de predicción y un segundo coeficiente de ponderación correspondiente al segundo valor de predicción,
en donde el valor de predicción ponderado del subbloque es P1*a+P2*b cuando el primer valor de predicción es P1, el segundo valor de predicción es P2, el primer coeficiente de ponderación es a y el segundo coeficiente de ponderación es b,
donde un conjunto de valores del primer coeficiente de ponderación para un componente de luma de cada subbloque en la tercera área de subbloque es {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8}.
11. Un dispositivo de codificación, que comprende:
un procesador y un medio de almacenamiento legible por máquina, en donde el medio de almacenamiento legible por máquina almacena instrucciones ejecutables por máquina que son invocadas por el procesador; cuando el procesador invoca las instrucciones, el procesador está configurado para: cuando un bloque actual satisface condiciones específicas para habilitar un modo de partición geométrica con partición triangular y se determina que se habilita el modo de partición geométrica con partición triangular, llevar a cabo las siguientes etapas: obtener la primera información de movimiento objetivo y la segunda información de movimiento objetivo del bloque actual, en donde la primera información de movimiento objetivo es diferente de la segunda información de movimiento objetivo; la primera información de movimiento objetivo y la segunda información de movimiento objetivo son respectivamente información de movimiento de un primer subbloque triangular y un segundo subbloque triangular obtenidos al particionar el bloque actual; y
llevar a cabo un proceso de codificación en el bloque actual en función de la primera información de movimiento objetivo y la segunda información de movimiento objetivo;
en donde si el bloque actual satisface las condiciones específicas para habilitar el modo de partición geométrica con partición triangular se determina: determinando si un tipo de un segmento actual donde se encuentra el bloque actual, un modo de información de movimiento del bloque actual y la información de tamaño del bloque actual satisfacen las condiciones específicas;
en donde la realización de un proceso de codificación en el bloque actual basado en la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
llevar a cabo una compensación de movimiento en el bloque actual basada en la primera información de movimiento objetivo y la segunda información de movimiento objetivo para obtener un valor de predicción del bloque actual;
en donde el valor de predicción del bloque actual comprende al menos un valor de predicción de una primera área de subbloque, un valor de predicción de una segunda área de subbloque y un valor de predicción de una tercera área de subbloque;
en donde el valor de predicción de la primera área de subbloque se obtiene llevando a cabo una compensación de movimiento en la primera área de subbloque en base a la primera información de movimiento objetivo, el valor de predicción de la segunda área de subbloque se obtiene llevando a cabo una compensación de movimiento en la segunda área de subbloque en base a la segunda información de movimiento objetivo, y el valor de predicción de la tercera área de subbloque se obtiene llevando a cabo una compensación ponderada en la tercera área de subbloque en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo; y
en donde el valor de predicción de la tercera área de subbloque comprende valores de predicción de todos los subbloques en la tercera área de subbloque, y cada subbloque en la tercera área de subbloque es un bloque de píxeles de 1 *1 ,
obtener el valor de predicción de la tercera área de subbloque llevando a cabo una compensación ponderada en la tercera área de subbloque en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
para cada subbloque en la tercera área de subbloque,
determinar un primer valor de predicción del subbloque en base a la primera información de movimiento objetivo;
determinar un segundo valor de predicción del subbloque en base a la segunda información de movimiento del objetivo; y
obtener un valor de predicción ponderado del subbloque en base al primer valor de predicción, un primer coeficiente de ponderación correspondiente al primer valor de predicción, el segundo valor de predicción y un segundo coeficiente de ponderación correspondiente al segundo valor de predicción,
en donde el valor de predicción ponderado del subbloque es P1*a+P2*b cuando el primer valor de predicción es P1, el segundo valor de predicción es P2, el primer coeficiente de ponderación es a y el segundo coeficiente de ponderación es b,
en donde un conjunto de valores del primer coeficiente de ponderación para un componente de luma de cada subbloque en la tercera área de subbloque es {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1 /8}.
12. Un decodificador, configurado para:
cuando un bloque actual satisface condiciones específicas para habilitar un modo de partición geométrica con partición triangular y se determina habilitar el modo de partición geométrica con partición triangular, llevar a cabo las siguientes etapas:
obtener la primera información de movimiento objetivo y la segunda información de movimiento objetivo del bloque actual, en donde la primera información de movimiento objetivo es diferente de la segunda información de movimiento objetivo; la primera información de movimiento objetivo y la segunda información de movimiento objetivo son respectivamente información de movimiento de un primer subbloque triangular y un segundo subbloque triangular obtenidos al particionar el bloque actual; y
llevar a cabo un proceso de decodificación en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo;
en donde si el bloque actual satisface las condiciones específicas para habilitar el modo de partición geométrica con partición triangular se determina: determinando si un tipo de un segmento actual donde se encuentra el bloque actual, un modo de información de movimiento del bloque actual y la información de tamaño del bloque actual satisfacen las condiciones específicas;
en donde la realización de un proceso de decodificación en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
llevar a cabo una compensación de movimiento en el bloque actual en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo para obtener un valor de predicción del bloque actual;
en donde el valor de predicción del bloque actual comprende al menos un valor de predicción de una primera área de subbloque, un valor de predicción de una segunda área de subbloque y un valor de predicción de una tercera área de subbloque;
en donde el valor de predicción de la primera área de subbloque se obtiene llevando a cabo una compensación de movimiento en la primera área de subbloque en base a la primera información de movimiento objetivo, el valor de predicción de la segunda área de subbloque se obtiene llevando a cabo una compensación de movimiento en la segunda área de subbloque en base a la segunda información de movimiento objetivo, y el valor de predicción de la tercera área de subbloque se obtiene llevando a cabo una compensación ponderada en la tercera área de subbloque en base a la primera información de movimiento objetivo y la segunda información de movimiento objetivo; y
en donde el valor de predicción de la tercera área de subbloque comprende valores de predicción de todos los subbloques en la tercera área de subbloque, y cada subbloque en la tercera área de subbloque es un bloque de píxeles de 1 *1 ,
obtener el valor de predicción de la tercera área de subbloque llevando a cabo una compensación ponderada en la tercera área de subbloque en función de la primera información de movimiento objetivo y la segunda información de movimiento objetivo, comprende:
para cada subbloque en la tercera área de subbloque,
determinar un primer valor de predicción del subbloque en función de la primera información de movimiento objetivo;
determinar un segundo valor de predicción del subbloque en función de la segunda información de movimiento objetivo; y
obtener un valor de predicción ponderado del subbloque basándose en el primer valor de predicción, un primer coeficiente de ponderación correspondiente al primer valor de predicción, el segundo valor de predicción y un segundo coeficiente de ponderación correspondiente al segundo valor de predicción,
en donde el valor de predicción ponderado del subbloque es P1*a+P2*b cuando el primer valor de predicción es P1, el segundo valor de predicción es P2, el primer coeficiente de ponderación es a y el segundo coeficiente de ponderación es b,
en donde un conjunto de valores del primer coeficiente de ponderación para un componente de luma de cada subbloque en la tercera área de subbloque es {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1 /8}.
13. Un medio de almacenamiento legible por máquina que tiene instrucciones ejecutables por máquina almacenadas en el mismo, en donde las instrucciones son invocadas por un procesador para llevar a cabo el método según cualquiera de las reivindicaciones 1 a 9.
ES19902594T 2018-12-28 2019-12-11 Video encoding and decoding Active ES3013325T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811628695.2A CN111385581B (zh) 2018-12-28 2018-12-28 一种编解码方法及其设备
PCT/CN2019/124453 WO2020135033A1 (zh) 2018-12-28 2019-12-11 视频编解码

Publications (1)

Publication Number Publication Date
ES3013325T3 true ES3013325T3 (en) 2025-04-11

Family

ID=66615056

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19902594T Active ES3013325T3 (en) 2018-12-28 2019-12-11 Video encoding and decoding

Country Status (16)

Country Link
US (1) US11889072B2 (es)
EP (1) EP3886437B1 (es)
JP (1) JP7360464B2 (es)
KR (2) KR20210093347A (es)
CN (38) CN112565787B (es)
AU (1) AU2019416266B2 (es)
BR (1) BR112021012638A2 (es)
CA (2) CA3124889C (es)
ES (1) ES3013325T3 (es)
FI (1) FI3886437T3 (es)
MX (2) MX2021007710A (es)
PH (1) PH12021551503A1 (es)
PL (1) PL3886437T3 (es)
SG (1) SG11202106972TA (es)
WO (4) WO2020135035A1 (es)
ZA (2) ZA202104449B (es)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11997311B2 (en) * 2018-09-17 2024-05-28 Hfi Innovation Inc. Methods and apparatuses of combining multiple predictors for block prediction in video coding systems
CN112565787B (zh) * 2018-12-28 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN115460424B (zh) * 2019-06-05 2024-09-20 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112073734B (zh) * 2019-06-10 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN111031318B (zh) 2019-06-21 2020-12-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112118450B (zh) * 2019-06-21 2022-03-29 杭州海康威视数字技术股份有限公司 预测模式的解码、编码方法及装置
CN113875251B (zh) * 2019-06-21 2023-11-28 华为技术有限公司 用于几何分割模式的自适应滤波器强度指示
CN113163208B (zh) * 2019-06-24 2022-11-01 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN111699689B (zh) * 2019-06-25 2023-03-31 北京大学 视频处理方法、装置和设备
CN110312130B (zh) * 2019-06-25 2021-10-15 浙江大华技术股份有限公司 基于三角模式的帧间预测、视频编码方法及设备
EP3973708A4 (en) 2019-06-25 2023-02-22 Zhejiang Dahua Technology Co., Ltd. INTERFRAME PREDICTION SYSTEMS AND METHODS
CN110213588B (zh) * 2019-06-25 2021-07-13 浙江大华技术股份有限公司 空域候选运动信息获取方法、装置、编解码器及存储装置
CN116405697B (zh) * 2019-07-23 2024-10-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
KR20250086816A (ko) * 2019-08-26 2025-06-13 후아웨이 테크놀러지 컴퍼니 리미티드 모션 정보 저장을 위한 방법 및 장치
CN112449180B (zh) * 2019-08-27 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN117499625A (zh) * 2019-09-01 2024-02-02 北京字节跳动网络技术有限公司 视频编解码中预测权重的对准
CN114424537B (zh) * 2019-09-05 2026-01-02 夏普株式会社 在视频编码中用于执行帧间预测编码的系统和方法
CN114556915B (zh) 2019-10-10 2023-11-10 北京字节跳动网络技术有限公司 几何分割模式中被编解码的块的去块
WO2021122416A1 (en) * 2019-12-18 2021-06-24 Interdigital Vc Holdings France Subblock merge candidates in triangle merge mode
US11496755B2 (en) 2019-12-28 2022-11-08 Tencent America LLC Method and apparatus for video coding
CN113141507B (zh) * 2020-01-17 2022-07-15 腾讯科技(深圳)有限公司 视频编解码中的运动信息列表构建方法、装置及设备
CN113452997B (zh) 2020-03-25 2022-07-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
EP4131955A4 (en) 2020-04-03 2023-04-19 Guangdong Oppo Mobile Telecommunications Corp., Ltd. INTERFRAME PREDICTION METHOD, ENCODER, DECODER AND STORAGE MEDIUM
CN114586366B (zh) * 2020-04-03 2025-09-05 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器及存储介质
EP4131957A4 (en) * 2020-04-03 2023-04-19 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Inter-frame prediction method, encoder, decoder, and storage medium
CN113873249B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112004096B (zh) * 2020-07-20 2024-07-12 浙江大华技术股份有限公司 角度模式帧间预测方法、编码器及存储介质
CN114071159B (zh) * 2020-07-29 2023-06-30 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器及计算机可读存储介质
CN112040242A (zh) * 2020-07-30 2020-12-04 浙江大华技术股份有限公司 基于高级运动矢量表达的帧间预测方法、装置及设备
CN114079785B (zh) * 2020-08-21 2025-08-05 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器及存储介质
EP4183132A4 (en) * 2020-12-02 2023-09-13 Zhejiang Dahua Technology Co., Ltd. SYSTEMS AND METHODS FOR INTERPREDICTION BASED ON A MERGE MODE
WO2023154574A1 (en) * 2022-02-14 2023-08-17 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for geometric partitioning mode with adaptive blending
CN115955565B (zh) * 2023-03-15 2023-07-04 深圳传音控股股份有限公司 处理方法、处理设备及存储介质
CN116939205A (zh) * 2023-04-10 2023-10-24 深圳传音控股股份有限公司 图像处理方法、处理设备及存储介质

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3426092B2 (ja) 1996-09-12 2003-07-14 シャープ株式会社 動画像符号化装置における動き補償フレーム間予測方法
KR100265721B1 (ko) * 1997-03-31 2000-09-15 윤종용 2차원삼각형조각선격자모델을이용한동영상의움직임추정방법
JPH10294942A (ja) * 1997-04-18 1998-11-04 Ricoh Co Ltd 画像データ符号化装置
US6879324B1 (en) * 1998-07-14 2005-04-12 Microsoft Corporation Regional progressive meshes
US7053894B2 (en) * 2001-01-09 2006-05-30 Intel Corporation Compression of surface light fields
KR100886191B1 (ko) * 2004-12-06 2009-02-27 엘지전자 주식회사 영상 블록을 디코딩 하는 방법
KR101526914B1 (ko) * 2006-08-02 2015-06-08 톰슨 라이센싱 비디오 디코딩을 위한 적응형 기하학적 파티셔닝 방법 및 장치
CN101873500B (zh) * 2009-04-24 2012-05-23 华为技术有限公司 帧间预测编码方法、帧间预测解码方法及设备
EP2509319A4 (en) * 2009-12-01 2013-07-10 Humax Co Ltd METHOD AND DEVICE FOR CODING / DECODING HIGH-RESOLUTION PICTURES
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
CN102215395B (zh) * 2010-04-09 2013-10-09 华为技术有限公司 一种视频编解码方法和装置
CN102215396A (zh) * 2010-04-09 2011-10-12 华为技术有限公司 一种视频编解码方法和系统
CN102223528B (zh) * 2010-04-15 2014-04-30 华为技术有限公司 一种参考运动矢量获得方法
CN103281527B (zh) * 2010-04-15 2015-12-23 华为技术有限公司 图像编解码方法及相关装置
KR101712156B1 (ko) * 2010-12-06 2017-03-06 에스케이 텔레콤주식회사 임의의 형태의 블록을 이용한 인터예측에 의한 영상의 부호화/복호화 방법 및 장치
CN102075748B (zh) * 2010-12-27 2013-12-25 北京自动测试技术研究所 用于视频编码运动估计的搜索方法
CN102611880B (zh) 2011-01-19 2015-02-04 华为技术有限公司 标识图像块几何划分模式的编解码方法和设备
CN102611881B (zh) * 2011-01-19 2014-06-25 华为技术有限公司 参考运动矢量获取方法、模块及编、解码装置
CN102611884B (zh) 2011-01-19 2014-07-09 华为技术有限公司 图像编解码方法及编解码设备
US9532066B2 (en) * 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
KR20120090740A (ko) * 2011-02-07 2012-08-17 (주)휴맥스 정밀한 단위의 필터 선택을 적용한 영상 부호화/복호화 장치 및 방법
WO2013051209A1 (ja) 2011-10-05 2013-04-11 パナソニック株式会社 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置、および、画像符号化復号装置
KR20130050149A (ko) * 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
EP2942961A1 (en) 2011-11-23 2015-11-11 HUMAX Holdings Co., Ltd. Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
CN103686165B (zh) * 2012-09-05 2018-01-09 乐金电子(中国)研究开发中心有限公司 深度图像帧内编解码方法及视频编解码器
WO2015133838A1 (ko) * 2014-03-05 2015-09-11 엘지전자(주) 폴리곤 유닛 기반 영상 인코딩/디코딩 방법 및 이를 위한 장치
BR112017010160B1 (pt) * 2014-11-14 2023-05-02 Huawei Technologies Co., Ltd Aparelho e método para gerar uma pluralidade de coeficientes de transformada, método para codificar um quadro, aparelho e método para decodificar um quadro e meio legível por computador
CN104717513B (zh) * 2015-03-31 2018-02-09 北京奇艺世纪科技有限公司 一种双向帧间预测方法及装置
CN108028942B (zh) 2015-06-04 2020-06-26 清华大学 像素预测方法、编码方法、解码方法及其装置、存储介质
CN106294918A (zh) * 2015-06-10 2017-01-04 中国科学院宁波材料技术与工程研究所 一种虚拟透明化办公系统的设计方法
CN104935938B (zh) * 2015-07-15 2018-03-30 哈尔滨工业大学 一种混合视频编码标准中帧间预测方法
JP2019515570A (ja) 2016-05-02 2019-06-06 漢陽大学校産学協力団Industry−University Cooperation Foundation Hanyang University 画面内予測を利用した映像符号化/復号化方法および装置
CN109479141B (zh) 2016-07-12 2023-07-14 韩国电子通信研究院 图像编码/解码方法和用于所述方法的记录介质
CN116708776A (zh) 2016-07-18 2023-09-05 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
CN106375764B (zh) * 2016-08-31 2018-04-10 中国科学技术大学 一种结合方向预测和块复制预测的视频帧内编码方法
US20210160507A1 (en) * 2016-10-04 2021-05-27 Sharp Kabushiki Kaisha Systems and methods for adaptively clipping sample values
US10313673B2 (en) * 2016-10-19 2019-06-04 Google Llc Methods and apparatus to encode and/or decode normals of geometric representations of surfaces
CN116668728A (zh) 2016-11-08 2023-08-29 株式会社Kt 对视频进行解码和编码的方法、发送压缩数据的方法
CN109997363B (zh) 2016-11-28 2023-12-05 英迪股份有限公司 图像编码/解码方法和装置以及存储有比特流的记录介质
EP3466875B1 (en) 2017-01-05 2022-11-09 LG Chem, Ltd. Carbon nanotube dispersion with improved workability and preparation method therefor
WO2018128466A1 (ko) * 2017-01-09 2018-07-12 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
US11677940B2 (en) * 2017-09-20 2023-06-13 Electronics And Telecommunications Research Institute Method and device for encoding/decoding image, and recording medium having stored bitstream
CN117478880A (zh) * 2017-10-16 2024-01-30 数字洞察力有限公司 用于将图像编码/解码的方法和存储比特流的记录介质
WO2019089864A1 (en) * 2017-11-01 2019-05-09 Vid Scale, Inc. Overlapped block motion compensation
CN112565787B (zh) * 2018-12-28 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN110312130B (zh) * 2019-06-25 2021-10-15 浙江大华技术股份有限公司 基于三角模式的帧间预测、视频编码方法及设备

Also Published As

Publication number Publication date
CN112584163A (zh) 2021-03-30
CN112565783B (zh) 2022-05-31
CN112584168A (zh) 2021-03-30
CA3214820A1 (en) 2020-07-02
CN112584178A (zh) 2021-03-30
CN112565782A (zh) 2021-03-26
CN112511841B (zh) 2022-04-26
WO2020135034A1 (zh) 2020-07-02
CA3124889C (en) 2023-11-14
CN112584172A (zh) 2021-03-30
CA3124889A1 (en) 2020-07-02
CN112468824A (zh) 2021-03-09
JP2022515507A (ja) 2022-02-18
EP3886437B1 (en) 2025-01-29
CN112584176B (zh) 2022-05-31
CN112468825B (zh) 2022-04-26
CN112584167B (zh) 2022-04-26
CN112565786B (zh) 2022-05-27
CN112565783A (zh) 2021-03-26
CN111385581A (zh) 2020-07-07
CN112565787A (zh) 2021-03-26
BR112021012638A2 (pt) 2021-09-14
CN109819255A (zh) 2019-05-28
CN112584159A (zh) 2021-03-30
JP7360464B2 (ja) 2023-10-12
CN111385581B (zh) 2022-04-26
CN112584160B (zh) 2022-04-26
MX2021007710A (es) 2021-08-05
CN112584174B (zh) 2022-04-26
CN112584161A (zh) 2021-03-30
KR20250002713A (ko) 2025-01-07
CN112565786A (zh) 2021-03-26
CN112584163B (zh) 2022-05-27
CN109819255B (zh) 2020-01-03
CN112565787B (zh) 2022-05-31
PL3886437T3 (pl) 2025-05-19
CN112584165B (zh) 2022-05-31
CN112565781A (zh) 2021-03-26
CN112532994A (zh) 2021-03-19
CN112468825A (zh) 2021-03-09
CN112584168B (zh) 2022-05-31
CN112565785A (zh) 2021-03-26
CN112584173B (zh) 2022-05-31
CN112584169A (zh) 2021-03-30
WO2020135036A1 (zh) 2020-07-02
EP3886437A1 (en) 2021-09-29
CN112584164A (zh) 2021-03-30
CN112584171A (zh) 2021-03-30
ZA202104449B (en) 2023-12-20
ZA202300583B (en) 2024-05-30
CN112565785B (zh) 2022-04-26
CN109862368A (zh) 2019-06-07
KR20210093347A (ko) 2021-07-27
CN112584177A (zh) 2021-03-30
CN112584160A (zh) 2021-03-30
CN112584171B (zh) 2022-05-31
CN112511842A (zh) 2021-03-16
CN112468824B (zh) 2022-05-31
CN112511842B (zh) 2022-05-31
CN112511841A (zh) 2021-03-16
CN112584178B (zh) 2022-04-26
CN112584161B (zh) 2022-05-31
CN112584164B (zh) 2022-05-31
CN109862369B (zh) 2020-05-12
WO2020135033A1 (zh) 2020-07-02
CN112565782B (zh) 2022-04-26
CN112584166B (zh) 2022-04-26
CN112584170A (zh) 2021-03-30
CN112584170B (zh) 2022-04-26
CN112584172B (zh) 2022-04-26
FI3886437T3 (fi) 2025-03-27
EP3886437A4 (en) 2022-02-16
MX2026002595A (es) 2026-04-01
CN112584175B (zh) 2022-05-31
CN112584166A (zh) 2021-03-30
AU2019416266A1 (en) 2021-07-15
US11889072B2 (en) 2024-01-30
CN112584177B (zh) 2022-05-31
CN109862369A (zh) 2019-06-07
CN112565788A (zh) 2021-03-26
US20210321102A1 (en) 2021-10-14
CN112584162B (zh) 2022-05-31
CN112584173A (zh) 2021-03-30
CN112584165A (zh) 2021-03-30
CN112584162A (zh) 2021-03-30
CN112532993A (zh) 2021-03-19
CN112584174A (zh) 2021-03-30
CN112584159B (zh) 2022-05-31
CN112584167A (zh) 2021-03-30
CN112584176A (zh) 2021-03-30
CN109862368B (zh) 2020-02-11
CN112565788B (zh) 2022-04-26
CN112584175A (zh) 2021-03-30
PH12021551503A1 (en) 2022-02-28
CN112532994B (zh) 2022-04-26
SG11202106972TA (en) 2021-07-29
CN112532993B (zh) 2022-04-26
CN112565784B (zh) 2022-05-27
CN112565784A (zh) 2021-03-26
CN112565781B (zh) 2022-05-27
WO2020135035A1 (zh) 2020-07-02
CN112584169B (zh) 2022-05-31
AU2019416266B2 (en) 2022-08-25

Similar Documents

Publication Publication Date Title
ES3013325T3 (en) Video encoding and decoding
ES2954447T3 (es) Predicción de vectores de movimiento
ES3041525T3 (en) Size selective application of decoder side refining tools
ES2951321T3 (es) Procedimiento y aparato para codificar información de movimiento, y procedimiento y aparato para decodificar la misma
ES2968163T3 (es) Derivación de vector de movimiento restringido para imágenes de referencia a largo plazo en codificación de video
RU2793275C2 (ru) Кодирование и декодирование видео
RU2776941C1 (ru) Кодирование и декодирование видео