ES2969378T3 - Codificación de vídeo para una inter predicción de división geométrica - Google Patents

Codificación de vídeo para una inter predicción de división geométrica Download PDF

Info

Publication number
ES2969378T3
ES2969378T3 ES20769755T ES20769755T ES2969378T3 ES 2969378 T3 ES2969378 T3 ES 2969378T3 ES 20769755 T ES20769755 T ES 20769755T ES 20769755 T ES20769755 T ES 20769755T ES 2969378 T3 ES2969378 T3 ES 2969378T3
Authority
ES
Spain
Prior art keywords
list
fusion
candidate
motion vector
prediction
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
ES20769755T
Other languages
English (en)
Inventor
Xianglin Wang
Yi-Wen Chen
Xiaoyu Xiu
Tsung-Chuan Ma
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=72422831&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2969378(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Application granted granted Critical
Publication of ES2969378T3 publication Critical patent/ES2969378T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/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/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/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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

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

Abstract

Se proporcionan métodos y aparatos para la codificación de vídeo. El método incluye: dividir imágenes de vídeo en una pluralidad de unidades de codificación (CU), al menos una de las cuales se divide además en dos unidades de predicción (PU) que incluyen al menos una PU con forma geométrica; obtener una primera lista de fusión que incluye una pluralidad de candidatos, incluyendo cada uno uno o más vectores de movimiento; y obtener una lista de fusión de predicción única para la PU con forma geométrica; donde la lista de fusión de unipredicción incluye una pluralidad de candidatos de fusión de unipredicción, y cada candidato de fusión de unipredicción incluye un vector de movimiento de un candidato correspondiente en la primera lista de fusión. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Codificación de vídeo para una inter predicción de división geométrica
Campo de la invención
La presente solicitud generalmente se refiere a la codificación y compresión de vídeo, y en particular pero no limitado a, un método para codificación de vídeo, un dispositivo informático y un medio de almacenamiento legible por ordenador no transitorio.
Antecedentes de la invención
El vídeo digital está soportado por una variedad de dispositivos electrónicos, tales como televisiones digitales, ordenadores portátiles o de escritorio, ordenadores tableta, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, consolas de vídeo juegos, teléfonos inteligentes, dispositivos de teleconferencia de vídeo, dispositivos de transmisión de vídeo, etc. Los dispositivos electrónicos transmiten, reciben, codifican, decodifican, y/o almacenan datos de vídeo digital implementando compresión/descompresión de vídeo. Los dispositivos de vídeo digital implementan técnicas de codificación de vídeo, tales como esas descritas en las normas definidas por la Codificación de vídeo Versátil (VVC), Modelo de Prueba de Exploración Conjunta (JEM), MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación de vídeo Avanzado (AVC), ITU-T H.265/Codificación de vídeo de Alta Eficiencia (HEVC), y extensiones de dichas normas.
La codificación de vídeo generalmente utiliza métodos de predicción (por ejemplo, inter-predicción, intra-predicción) que se benefician de la redundancia presente en imágenes de vídeo o secuencias. Un objetivo importante de las técnicas de codificación de vídeo es comprimir datos de vídeo en una forma que utiliza una velocidad de bit más baja, mientras se evitan o minimizan las degradaciones a la calidad del vídeo. Con los servicios de vídeo en constante evolución disponibles, se necesitan técnicas de codificación con mejor eficiencia de codificación.
La compresión de vídeo normalmente incluye llevar a cabo predicción espacial (intra fotograma) y/o predicción temporal (inter fotograma) para reducir o eliminar la redundancia inherente en los datos de vídeo. Para la codificación de vídeo basada en bloques, se divide un fotograma de vídeo en una o más porciones, teniendo cada porción múltiples bloques de vídeo, los cuales también pueden estar referidos como unidades de árbol de codificación (CTU). Cada CTU puede contener una unidad de codificación (CU) o dividirse recursivamente en CU más pequeñas hasta que se alcance el tamaño mínimo predefinido de CU. Cada CU (también nombrada CU de hoja) contiene una o múltiples unidades de transformada (TU) y cada CU también contiene una o múltiples unidades de predicción (PU). Cada CU puede ser codificada en modos intra, inter o IBC. Los bloques de vídeo en una porción intra codificada (I) de un fotograma de vídeo son codificados utilizando predicción espacial con respecto a muestras de referencia en bloques adyacentes dentro del mismo fotograma de vídeo. Los bloques de vídeo en una porción inter codificada (P o B) de un fotograma de vídeo puede utilizar predicción espacial con respecto a muestras de referencia en bloques adyacentes dentro del mismo fotograma de vídeo o predicción temporal con respecto a muestras de referencia en otros fotogramas de vídeo de referencia previos y/o futuros.
La predicción espacial o temporal basada en un bloque de referencia que ha sido previamente codificado, por ejemplo, un bloque adyacente, resulta en un bloque predictivo para un bloque de vídeo actual que se va a codificar. El proceso de encontrar el bloque de referencia puede lograrse mediante un algoritmo de coincidencia de bloques. Los datos residuales que representan diferencias de píxel entre el bloque actual que va a codificarse y el bloque predictivo están referidos como bloque residual o errores de predicción. Un bloque inter-codificado es codificado de acuerdo con un vector de movimiento que apunta a un bloque de referencia en un fotograma de referencia formando el bloque predictivo, y el bloque residual. Al proceso de determinar el vector de movimiento normalmente se refiere como una estimación de movimiento. Un bloque intra codificado es codificado de acuerdo con un modo de intra predicción y el bloque residual. Para mayor compresión, el bloque residual es transformado desde el dominio de píxeles a un dominio de transformada, por ejemplo, dominio de frecuencia, lo que da como resultado coeficientes de transformada residuales, los cuales pueden después cuantificarse. Los coeficientes de transformada cuantificados, inicialmente dispuestos en una matriz bidimensional, pueden escanearse para producir un vector unidimensional de coeficientes de transformada, y después codificarse por entropía en un flujo de bits de vídeo para lograr aún más compresión.
El flujo de bits de vídeo codificado se guarda después en un medio de almacenamiento legible por ordenador (por ejemplo, una memoria flash) para que se pueda tener acceso por medio de otro dispositivo electrónico con capacidad de vídeo digital o directamente transmitido al dispositivo electrónico de manera conectada por cable o inalámbrica. El dispositivo electrónico después lleva a cabo la descompresión de vídeo (que es un proceso opuesto a la compresión de vídeo arriba descrita) mediante, por ejemplo, análisis del flujo de bits de vídeo codificado para obtener elementos de sintaxis del flujo de bits y reconstruyendo los datos de vídeo digitales a su formato original del flujo de bits de vídeo codificado con base al menos en parte en los elementos de sintaxis obtenidos del flujo de bits, y reproduce los datos de vídeo digitales reconstruidos en una pantalla del dispositivo electrónico.
Con calidad de vídeo digital que pasa de alta definición a 4Kx2K o incluso 8Kx4K, la cantidad de datos de vídeo que van a codificarse/decodificarse crece exponencialmente. Esto es un constante desafío en términos de cómo los datos de vídeo se pueden codificar/decodificar de manera más eficiente mientras se mantiene la calidad de imagen de los datos de vídeo decodificados.
En una reunión del Equipo Conjunto de Expertos en vídeo (JVET), JVET definió el primer proyecto de la Codificación de vídeo Versátil (VVC) y el método de codificación del Modelo de Prueba VVC 1 (VTM1). Se decidió incluir un árbol cuádruple con árbol de múltiples tipos anidados utilizando divisiones binarias y ternarias codificando la estructura del bloque como la nueva característica de codificación inicial de VVC. Desde entonces, durante las reuniones del JVET se desarrolló el software de referencia VTM para implementar el método de codificación y el borrador del proceso de decodificación VVC.
El documento no de patente “Non-CE 10: Triangular prediction merge list construction" propone un método para construir una lista de fusión de predicción para PU triangulares, y sus diapositivas también describen la misma materia objeto. El documento de patente US2013/0202038 divulga un método para convertir un MV candidato bidireccional en un MV candidato unidireccional, y el documento de patente EP3202143A0 divulga MV candidatos de fusión y unipredicción con vectores de movimiento de la Lista 0 y Lista 1.
Sumario
En general, esta divulgación describe ejemplos de técnicas relacionadas con la predicción compensada de movimiento utilizando unidad de predicción triangular, la cual es un caso especial de predicción de división geométrica, en codificación de vídeo.
De acuerdo con un primer aspecto de la presente divulgación, se proporciona un método para decodificación de vídeo, que comprende: obtener, a partir de un flujo de bits de vídeo (201), una pluralidad de unidades de codificación, CU, que se dividen a partir de imágenes de vídeo, estando al menos una de las CU dividida además en dos unidades de predicción, PU, del modo de predicción de división geométrica; construir una primera lista de fusión que comprenda una pluralidad de candidatos, comprendiendo cada uno uno o más vectores de movimiento; caracterizado por obtener una pluralidad de candidatos de fusión de unipredicción directamente de la primera lista de fusión sin crear una lista de candidatos de fusión de unipredicción, en donde cada candidato de fusión de unipredicción comprende un vector de movimiento de un candidato correspondiente en la primera lista de fusión; en donde cada candidato en la primera lista de fusión comprende al menos uno de un vector de movimiento de Lista 0 y un vector de movimiento de Lista 1, y cada candidato de fusión de unipredicción se selecciona para comprender uno solo de los vectores de movimiento de Lista 0 y Lista 1 de cada candidato en la primera lista de fusión.
Según un segundo aspecto de la presente divulgación, se proporciona un aparato para decodificar vídeo, que comprende: uno o más procesadores; y una memoria configurada para almacenar instrucciones ejecutables por el uno o más procesadores; en donde el uno o más procesadores, tras la ejecución de las instrucciones, está configurado para: obtener, a partir de un flujo de bits de vídeo, una pluralidad de unidades de codificación, CU, que están divididas a partir de imágenes de vídeo, al menos una de las CU se divide además en dos unidades de predicción, PU, del modo de predicción de división geométrica; construir una primera lista de fusión que comprenda una pluralidad de candidatos, cada uno de los cuales comprende uno o más vectores de movimiento; se caracteriza por que el uno o más procesadores, tras la ejecución de las instrucciones, está configurado para obtener una pluralidad de candidatos de fusión de unipredicción directamente de la primera lista de fusión sin crear una lista de candidatos de fusión de unipredicción, y cada candidato de fusión de unipredicción comprende un vector de movimiento de un candidato correspondiente en la primera lista de fusión; en el que cada candidato en la primera lista de fusión comprende al menos uno de un vector de movimiento de Lista 0 y un vector de movimiento de Lista 1, y cada candidato de fusión de unipredicción se selecciona para comprender uno solo de los vectores de movimiento de Lista 0 y Lista 1 de cada candidato en la primera lista de fusión.
Según aspectos adicionales de la presente divulgación, se proporciona un medio de almacenamiento legible por ordenador no transitorio según la reivindicación 12 adjunta y un producto de programa informático que comprende un medio de almacenamiento legible por ordenador no transitorio según la reivindicación 13 adjunta.
Breve descripción de los dibujos
Una descripción más particular de los ejemplos de la presente divulgación se hará en referencia a ejemplos específicos ilustrados en los dibujos anexos. Dado que estos dibujos representan únicamente algunos ejemplos y, por tanto, no se considera que sean limitativos en su alcance, los ejemplos se describirán y explicarán con especificidad adicional y detalles mediante el uso de los dibujos que acompañan.
La FIG. 1 es un diagrama de bloques que ilustra un codificador de vídeo a modo de ejemplo de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un decodificador de vídeo a modo de ejemplo de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 3 es un diagrama esquemático que ilustra una estructura de árbol cuaternario más árbol binario (QTBT) de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 4 es un diagrama esquemático que ilustra un ejemplo de una imagen dividida en CTU de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 5 es un diagrama esquemático que ilustra modos de división de árbol de tipo múltiple de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 6 es un diagrama esquemático que ilustra la división de una CU en unidades de predicción triangular de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 7 es un diagrama esquemático que ilustra posiciones de bloques adyacentes de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 8 es un diagrama esquemático que ilustra posiciones de candidatos de fusión espaciales de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 9 es un diagrama esquemático que ilustra escalamiento de vector de movimiento para un candidato de fusión temporal de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 10 es un diagrama esquemático que ilustra posiciones candidatas para un candidato de fusión temporal de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 11A a FIG. 11B son diagramas esquemáticos que ilustran ejemplos de selección de vector de movimiento (MV) de unipredicción para modo de predicción de triángulo de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 12A a FIG. 12D son diagramas esquemáticos que ilustran ejemplos de selección de MV de unipredicción para el modo de predicción de triángulo de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 13 es un diagrama de bloques que ilustra un aparato a modo de ejemplo para codificación de vídeo de acuerdo con algunas implementaciones de la presente divulgación.
La FIG. 14 es un diagrama en flujo que ilustra un proceso a modo de ejemplo de codificación de vídeo para predicción compensada de movimiento utilizando una unidad de predicción triangular de acuerdo con algunas implementaciones de la presente divulgación.
Descripción detallada
La invención se define por las reivindicaciones adjuntas. Se hará referencia ahora en detalle a implementaciones específicas, cuyos ejemplos se ilustran en los dibujos que se acompañan. En la siguiente descripción detallada, se exponen numerosos detalles específicos no limitantes con el fin de ayudar a entender la materia objeto presentada aquí. Pero resultará evidente para un experto en la técnica que se pueden utilizar varias alternativas. Por ejemplo, será evidente para un experto en la técnica que la materia objeto presentada en el presente documento se puede implementar en muchos tipos de dispositivos electrónicos con capacidades de vídeo digital.
La referencia a lo largo de esta memoria descriptiva a “una realización”, “una realización”, “un ejemplo”, “algunas realizaciones”, “algunos ejemplos”, o lenguaje similar significa que un rasgo, estructura, o característica particular descrita está incluida en al menos una realización o ejemplo. Los rasgos, estructuras, elementos, o características descritos en relación con una o algunas realizaciones también son aplicables a otras realizaciones, a menos que se especifique expresamente de otra manera.
A lo largo de la divulgación, los términos “primero”, “segundo”, “tercero”, etc. se utilizan todos como nomenclatura únicamente para hacer referencia a elementos relevantes, por ejemplo, dispositivos, componentes, composiciones, pasos, etc., sin implicar ningún orden espacial o cronológico, a menos que se especifique expresamente de otra manera. Por ejemplo, un “primer dispositivo” y un “segundo dispositivo” puede referirse a dos dispositivos formados por separado, o dos partes, componentes o estados operacionales de un mismo dispositivo, y pueden ser nombrados arbitrariamente.
Como se utiliza en este documento, el término “si” o “cuando” puede ser entendido para significar “una vez que” o “en respuesta a” dependiendo del contexto. Estos términos, si aparecen en una reivindicación, pueden no indicar que las limitaciones relevantes o rasgos son condicionales u opcionales.
Los términos “módulo”, “submódulo”, “circuito”, “subcircuito”, “sistema de circuitos”, “subsistema de circuitos”, “unidad”, o “subunidad” pueden incluir memoria (compartida, dedicada, o grupo) que almacena código o instrucciones que pueden ser ejecutados por uno o más procesadores. Un módulo puede incluir uno o más circuitos con o sin código o instrucciones almacenados. El módulo o circuito puede incluir uno o más componentes que están directa o indirectamente conectados. Estos componentes pueden o no pueden estar físicamente unidos, o ubicados adyacentes, entre sí.
Una unidad o módulo puede implementarse únicamente por medio de software, únicamente por medio de hardware, o por una combinación de hardware y software. En una pura implementación de software, por ejemplo, la unidad o módulo puede incluir bloques de código o componentes de software relacionados funcionalmente, que están ligados entre sí directa o indirectamente, a fin de llevar a cabo una función particular.
La FIG. 1 muestra un diagrama de bloques que ilustra un codificador 100 de vídeo híbrido basado en bloques a modo de ejemplo que puede utilizarse junto con muchas normas de codificación de vídeo que utilizan procesamiento basado en bloques. En el codificador 100, un fotograma de vídeo está dividido en una pluralidad de bloques de vídeo para procesamiento. Para cada bloque de vídeo determinado, se forma una predicción con base o bien en un enfoque de inter predicción o un enfoque de intra predicción. En inter predicción, se forman uno o más predictores a través de la estimación de movimiento y compensación de movimiento, con base en píxeles de fotogramas previamente reconstruidos. En intra predicción, los predictores están formados con base en píxeles reconstruidos en un fotograma actual. A través de la decisión de modo, se puede elegir un mejor predictor para predecir un bloque actual.
Un residual de predicción, que representa la diferencia entre un bloque de vídeo actual y su predictor, es enviado a un sistema de circuitos de Transformada 102. Los coeficientes de transformada son después enviados del sistema de circuitos de transformada 102 a un sistema de circuitos de cuantificación 104 para reducción por entropía. Los coeficientes de transformada son después alimentados a un sistema de circuitos de Codificación por entropía 106 para generar un flujo de bits de vídeo comprimido. Como se muestra en la FIG. 1, la información relacionada con la predicción 110 de un sistema de circuitos de inter predicción y/o un sistema de circuitos de Intra Predicción 112, tal como una información de división de bloque de vídeo, los vectores de movimiento, índice de imagen de referencia, y modo de intra predicción, también son alimentados a través del sistema de circuitos de codificación por entropía 106 y guardados en un flujo de bits de vídeo comprimido 114.
En el codificador 100, los conjuntos de circuitos relacionados al decodificador también son necesarios con el fin de reconstruir píxeles para el propósito de predicción. Primero, un residual de predicción es reconstruido a través de una Cuantificación Inversa 116 y un Sistema de Circuitos de Transformada Inversa 118. Este residual de predicción reconstruido se combina con un Predictor de Bloque 120 para generar píxeles reconstruidos sin filtrar para un bloque de vídeo actual.
La predicción espacial (o “intra predicción”) utiliza píxeles de muestras de bloques adyacentes ya codificados (que se denominan muestras de referencia) en el mismo fotograma de vídeo que el bloque de vídeo actual para predecir el bloque de vídeo actual.
La predicción temporal (también referida como “inter predicción”) utiliza píxeles reconstruidos de imágenes de vídeo ya codificadas para predecir el bloque de vídeo actual. La predicción temporal reduce la redundancia temporal inherente en la señal de vídeo. La señal de predicción temporal para una unidad de codificación determinada (CU) o bloque de codificación se señala generalmente por uno o más vectores de movimiento (MV), lo que indica la cantidad y la dirección de movimiento entre la CU actual y su referencia temporal. Además, si se soportan múltiples imágenes de referencia, se envía adicionalmente un índice de imagen de referencia, que se utiliza para identificar de qué imagen de referencia en el almacenamiento de imagen de referencia proviene la señal de predicción temporal.
Después de que se realiza la predicción espacial y/o temporal, un sistema de circuitos de decisión de intra/inter modo 121 en el codificador 100 elige el mejor modo de predicción, por ejemplo basado en el método de optimización de distorsión de velocidad. El predictor de bloque 120 después se resta del bloque de vídeo actual; y el residual de predicción resultante se descorrelaciona utilizando el sistema de circuitos de transformada 102 y el sistema de circuitos de cuantificación 104. Los coeficientes residuales cuantificados resultantes se cuantifican a la inversa por el sistema de circuitos de cuantificación inversa 116 y transformada inversa por el sistema de circuitos de transformada inversa 118 para formar el residual reconstruido, el cual se agrega después de nuevo al bloque de predicción para formar la señal reconstruida de la CU. Otro filtrado en bucle 115, tal como un filtro de desbloqueo, una compensación adaptiva de muestra (SAO), y/o un filtro en bucle adaptivo (ALF) se puede aplicar en la CU reconstruida antes de que se coloque en el almacén de imagen de referencia de la memoria intermedia de imágenes 117 y utilizarse para codificar bloques de vídeo futuros. Para formar el flujo de bits de vídeo de salida 114, el modo de codificación (inter o intra), la información de modo de predicción, la información de movimiento, y los coeficientes residuales cuantificados se envían todos a la unidad de codificación por entropía 106 para ser además comprimidos y empaquetados para formar el flujo de bits.
Por ejemplo, un filtro de desbloqueo está disponible en AVC, HEVC así como la versión ahora vigente de VVC. En HEVC, se define un filtro en bucle adicional llamado SAO (compensación adaptiva de muestra) para mejorar aún más la eficiencia de codificación. En la versión ahora vigente de la norma VVC, todavía se está investigando activamente otro filtro en bucle llamado ALF (filtro de bucle adaptivo), y tiene una buena oportunidad de ser incluido en la norma final.
Estas operaciones de filtro en bucle son opcionales. Llevar a cabo estas operaciones ayuda a mejorar la eficiencia de codificación y calidad visual. También pueden desactivarse como una decisión dictada por el codificador 100 para ahorrar complejidad computacional.
Cabe señalar que la intra predicción se basa generalmente en píxeles reconstruidos sin filtrar, mientras que la inter predicción se basa en píxeles reconstruidos filtrados si el codificador 100 activa estas opciones de filtro.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de decodificador de vídeo basado en bloque 200 el cual puede ser utilizado en conjunto con muchas normas de codificación de vídeo. Este decodificador 200 es similar a la sección relacionada a la reconstrucción en el codificador 100 de la FIG. 1. En el decodificador 200, un flujo de bits de vídeo entrante 201 es primero decodificado a través de una Decodificación por Entropía 202 para derivar niveles de coeficiente cuantificados e información relacionada con la predicción. Los niveles de coeficiente cuantificados son después procesados a través de una Cuantificación Inversa 204 y una Transformada Inversa 206 para obtener un restante de predicción reconstruido. Un mecanismo predictor de bloque, implementado en un Selector de Intra/inter Modo 212, está configurado para llevar a cabo ya sea una Intra Predicción 208, o una Compensación de Movimiento 210, con base en la información de predicción decodificada. Una serie de píxeles reconstruidos sin filtrar son obtenidos sumando el restante de predicción reconstruido de la Transformada Inversa 206 y una salida predictiva generada por el mecanismo predictor de bloque, utilizando un sumador 214.
El bloque reconstruido puede pasar por un Filtro en bucle 209 antes de que sea almacenado en una Memoria Intermedia de Imagen 213 la cual funciona como un almacén de imagen de referencia. El vídeo reconstruido en la Memoria Intermedia de Imagen 213 puede ser enviada para accionar un dispositivo de despliegue, así como utilizada para predecir bloques de vídeo futuros. En situaciones donde el Filtro en bucle 209 es encendido, se lleva a cabo una operación de filtración en estos píxeles reconstruidos para derivar una Salida de vídeo reconstruido final 222.
Las normas de codificación/decodificación de vídeo arriba mencionadas, tales como VVC, JEM, HEVC, MPEG-4, Parte 10, son conceptualmente similares. Por ejemplo, todas ellas utilizan el procesamiento basado en bloque. Los esquemas de división de bloque en algunas normas son elaborados a continuación.
HEVC está basada en una arquitectura de codificación de transformada compensada de movimiento basada en bloque híbrida. La unidad básica para compresión es denominada unidad de árbol de codificación (CTU). El tamaño de CTU máximo se define como hasta 64 por 64 píxeles luma, y dos bloques de 32 por 32 píxeles croma para formato croma 4:2:0. Cada CTU puede contener una unidad de codificación (CU) o recursivamente separar en cuatro CU más pequeñas hasta que el tamaño mínimo predefinido de CU se alcanza. Cada CU (también nombrada CU de hoja) contiene una o múltiples unidades de predicción (PU) y un árbol de unidades de transformada (TU).
En general, excepto por el contenido monocromático, una CTU puede incluir un bloque de árbol de codificación luma (CTB) y dos CTBs croma correspondientes; una CU puede incluir un bloque de codificación luma (CB) y dos CB croma correspondientes; una PU puede incluir un bloque de predicción luma (PB) y dos PBs croma correspondientes; y una TU puede incluir un bloque de transformada luma (TB) y dos TBs croma correspondientes. Sin embargo, pueden ocurrir excepciones debido a que el tamaño de TB mínimo es 4x4 para ambos, luma y croma (es decir, no se admite TB croma 2x2 para formato a color 4:2:0) y cada CB intra croma siempre tiene únicamente un PB intra croma sin considerar el número de PBs intra luma en la CB intra luma correspondiente.
Para una CU intra, el CB luma puede ser predicho por uno o cuatro PBs luma, y cada uno de los dos CB croma siempre es predicho por un PB croma, donde cada PB luma tiene un modo de predicción luma intra y los dos PBs croma comparten un modo de predicción croma intra. Además, para la CU intra, el tamaño de TB no puede ser más grande que el tamaño de PB. En cada PB, la intra predicción es aplicada para predecir muestras de cada TB al interior del PB de muestras reconstruidas adyacentes del TB. Para cada PB, además de 33 modos de intra predicción direccional, modos planos y DC también están soportados para predecir regiones planas y gradualmente variar regiones, respectivamente.
Para cada inter PU, uno de tres modos de predicción incluyendo inter, separación, y fusión, puede seleccionarse. Generalmente hablando un esquema de competición de vector de movimiento (MVC) es introducido para seleccionar un candidato de movimiento de una serie de candidato determinado que incluye candidatos de movimiento espacial y temporal. Múltiples referencias a la estimación de movimiento permiten encontrar la mejor referencia en 2 posibles listas de imagen de referencia reconstruidas (concretamente Lista 0 y Lista 1). Para el inter modo (denominado modo AMVP, donde AMVP permanece para predicción de vector de movimiento avanzada), indicadores de inter predicción (Lista 0, Lista 1, o predicción bidireccional), índices de referencia, índices de candidato de movimiento, diferencias de vector de movimiento (MVD) y predicción restante son transmitidos. En cuanto al modo de salto y el modo de fusión, únicamente los índices de fusión son transmitidos, y la PU actual hereda el indicador de inter predicción, los índices de referencia, y vectores de movimiento de una PU adyacente referida por el índice de fusión codificado. En el caso de una CU codificada de salto, la señal restante también es omitida.
El Modelo de Prueba de Exploración Conjunta (JEM) es construido en la parte superior del modelo de prueba HEVC. El diagrama de flujo de codificación y decodificación básica de HEVC se mantiene sin cambio en JEM; sin embargo, los elementos de diseño de módulos más importantes, incluyendo los módulos de estructura de bloque, intra e inter predicción, transformada restante, codificación por entropía y filtro de bucle, son un tanto modificados y herramientas de codificación adicionales son agregadas. Las siguientes nuevas características de codificación están incluidas en JEM.
En HEVC, una CTU es separada en CU utilizando una estructura de árbol cuaternario denotado como árbol de codificación para adaptar a varias características locales. La decisión de si codificar un área de imagen utilizando predicción inter-imagen (temporal) o intra-imagen (espacial) se realiza en el nivel de CU. Cada CU puede además ser separada en una, dos o cuatro PU de acuerdo con el tipo de separación de PU. Al interior de una PU, se aplica el mismo proceso de predicción y la información relevante es transmitida al decodificador en una base de PU. Después de obtener el bloque restante aplicando el proceso de predicción basado en el tipo de separación de PU, una CU puede ser dividida en unidades de transformada (TU) de acuerdo con otra estructura de árbol cuaternario similar al árbol de codificación para la CU. Una de las características clave de la estructura HEVC es que tiene múltiples concepciones de división incluyendo CU, PU, y TU.
La FIG. 3 es un diagrama esquemático que ilustra una estructura de árbol cuaternario más árbol binario (QTBT) de acuerdo con algunas implementaciones de la presente divulgación.
La estructura QTBT elimina los conceptos de múltiples tipos de división, es decir, elimina la separación de los conceptos CU, PU y TU, y soporta mayor flexibilidad para formas de división de CU. En la estructura de bloque QTBT, una CU puede tener bien una forma cuadrada o rectangular. Como se muestra en la FIG. 3, una unidad de árbol de codificación (CTU) es primero dividida por medio de una estructura de árbol cuaternario (es decir, árbol cuaternario). Los nodos de hoja de árbol cuaternario pueden además dividirse mediante una estructura de árbol binario. Existen dos tipos de separación en la separación de árbol binario: separación horizontal simétrica y separación vertical simétrica. Los nodos de hoja de árbol binario son llamados unidades de codificación (CU), y esa segmentación es utilizada para predicción y procesamiento de transformada sin división adicional. Esto significa que la CU, PU y TU tienen el mismo tamaño de bloque en la estructura de bloque de codificación QTBT. En JEM, una CU algunas veces consiste de bloques de codificación (CB) de diferentes componentes de color, por ejemplo una CU contiene un CB luma y dos CB croma en el caso de porciones P y B del formato croma 4:2:0, y algunas veces consiste de un CB de un componente simple, por ejemplo, una CU contiene únicamente un CB luma o solo dos CB croma en el caso de porciones I.
Los siguientes parámetros están definidos por el esquema de división QTBT.
- Tamaño CTU: el tamaño de nodo de raíz de un árbol cuaternario, el mismo concepto que en HEVC;
- MinQTSize: el mínimo tamaño de nodo de hoja de árbol cuaternario permitido;
- MaxBTSize: el máximo tamaño de nodo de raíz de árbol binario permitido;
- MaxBTDepth: la máxima profundidad de árbol binario permitido;
- MinBTSize: el mínimo tamaño de nodo de hoja de árbol binario permitido.
En un ejemplo de estructura de división QTBT, el tamaño de CTU se establece como muestras luma de 128x128 con dos bloques de 64x64 correspondientes de muestras croma (con un formato croma 4:2:0), el MinQTSize se establece como 16x16, el MaxBTSize se establece como 64x64, el MinBTSize (para ambos, anchura y altura) se establece como 4x4, y el MaxBTDepth se establece como 4. La división de árbol cuaternario es aplicada a la CTU primero para generar nodos de hoja de árbol cuaternario. Los nodos de hoja de árbol cuaternario pueden tener un tamaño de 16x16 (es decir, el MinQTSize) a 128x128 (es decir, el tamaño de CTU). Si el nodo de hoja de árbol cuaternario es 128x128, no se dividirá más por medio del árbol binario debido a que el tamaño excede el MaxBTSize (es decir, 64x64). De otra manera, el nodo de hoja de árbol cuaternario podría ser dividido además por el árbol binario. Por lo tanto, el nodo de hoja de árbol cuaternario también es el nodo de raíz para el árbol binario y tiene la profundidad de árbol binario como 0. Cuando la profundidad de árbol binario alcanza MaxBTDepth (es decir, 4), no se considera separación adicional. Cuando el nodo de árbol binario tiene una anchura igual a MinBTsize (es decir, 4), no se considera separación horizontal adicional. Similarmente, cuando el nodo de árbol binario tiene una altura igual a MinBTSize, no se considera separación vertical adicional. Los nodos de hoja del árbol binario son procesados adicionalmente por medio de predicción y procesamiento de transformada sin ninguna división adicional. En JEM, el tamaño de CTU máximo es muestras luma de 256x256.
Un ejemplo de división de bloque utilizando el esquema QTBT, y la representación de árbol correspondiente se ilustran en la FIG. 3. Las líneas sólidas indican separación de árbol cuaternario y líneas punteadas indican separación de árbol binario. Como se muestra en la FIG. 3, la unidad de árbol de codificación (CTU) 300 es primero dividida por una estructura de árbol cuaternario, y tres de los cuatro nodos de hoja de árbol cuaternario 302, 304, 306, 308 son además divididas mediante bien una estructura de árbol cuaternario o una estructura de árbol binario. Por ejemplo, el nodo de hoja de árbol cuaternario 306 es dividido además mediante separación de árbol cuaternario; el nodo de hoja de árbol cuaternario 304 es además dividido en dos nodos de hoja 304a, 304b mediante separación de árbol binario; y el nodo de hoja de árbol cuaternario 302 es además también dividido mediante separación de árbol binario. En cada separación (es decir, no hoja) de nodo del árbol binario, un indicador es señalizado para indicar cual tipo de separación (es decir, horizontal o vertical) se utiliza, donde 0 indica separación horizontal y 1 indica separación vertical. Por ejemplo, para el nodo de hoja de árbol cuaternario 304, 0 es señalizado para indicar separación horizontal y para el nodo de hoja de árbol cuaternario 302, 1 es señalizado para indicar separación vertical. Para separación de árbol cuaternario, no hay necesidad de indicar el tipo de separación debido a que la separación de árbol cuaternario siempre separa un bloque en ambos horizontalmente y verticalmente para producir 4 sub-bloques con un tamaño igual.
Además, el esquema QTBT soporta la capacidad para que luma y croma tengan una estructura QTBT separada.
Actualmente, para las porciones P y B, CTBs luma y croma en una CTU comparten la misma estructura QTBT. Sin embargo, para porciones I, el CTB luma es dividido en CU mediante una estructura QTBT, y los CTBs croma son divididos en CU croma mediante otra estructura QTBT. Esto significa que una CU en una porción I consiste de un bloque de codificación del componente luma o bloques de codificación de dos componentes croma, y una CU en una porción P o B consiste de bloques de codificación de todos los tres componentes de color.
En una reunión del Equipo Conjunto de Expertos en vídeo (JVET), JVET definió el primer proyecto de la Codificación de vídeo Versátil (VVC) y el método de codificación del Modelo de Prueba VVC 1 (VTM1). Se decidió incluir un árbol cuaternario con árbol del tipo múltiple anidado utilizando estructura de bloque de codificación de separaciones binarias y ternarias como la nueva característica de codificación inicial de VVC.
En VVC, la estructura de división de imagen divide el vídeo de entrada en bloques llamados unidades de árbol de codificación (CTU). Una CTU es una separación utilizando un árbol cuaternario con estructura de árbol de tipo múltiple anidado en unidades de codificación (CU), con una unidad de codificación de hoja (CU) definiendo una región compartiendo el mismo modo de predicción (por ejemplo intra o inter). Aquí, el término “unidad” define una región de una imagen cubriendo todos los componentes; el término “bloque” se utiliza para definir una región cubriendo un componente particular (por ejemplo luma), y puede diferir en ubicación espacial cuando se considera el formato de muestreo croma tal como 4:2:0.
División de la imagen en CTU
La FIG. 4 es un diagrama esquemático que ilustra un ejemplo de una imagen dividida en CTU de acuerdo con algunas implementaciones de la presente divulgación.
En VVC, las imágenes son divididas en una secuencia de CTU, y el concepto CTU es el mismo que el HEVC. Para una imagen que tiene tres conjuntos de muestras, una CTU consiste de un bloque NxN de muestras luma juntas con dos bloques correspondientes de muestras croma. La FIG. 4 muestra el ejemplo de una imagen 400 dividida en CTU 402.
El tamaño máximo permitido del bloque luma en una CTU se especifica para que sea 128x128 (aunque el tamaño máximo de los bloques de transformada luma es 64x64).
División de CTU utilizando una estructura de árbol
La FIG. 5 es un diagrama esquemático que ilustra modos de separación de árbol del tipo múltiple de acuerdo con algunas implementaciones de la presente divulgación.
En HEVC, una CTU se separa en CU utilizando una estructura de árbol cuaternaria denotada como árbol de codificación para adaptar a varias características locales. La decisión de si codificar un área de imagen utilizando predicción inter-imagen (temporal o intra-imagen (espacial) se hace en el nivel de CU de hoja. Cada CU de hoja puede ser además separado en una, dos o cuatro PU de acuerdo con el tipo de separación de PU. Al interior de una PU, el mismo proceso de predicción es aplicado, y la información relevada es transmitida al decodificador en una base de PU. Después de obtener el bloque restante aplicando el proceso de predicción basado en el tipo de separación de PU, una CU de hoja puede ser dividida en unidades de transformada (TU) de acuerdo con otra estructura de árbol cuaternario similar al árbol de codificación para la CU. Una de la característica clave de la estructura HEVC es que tiene múltiples concepciones de división incluyendo CU, PU, y TU.
En VVC, un árbol cuaternario con árbol de tipo múltiple anidado utilizando estructura de segmentación de separaciones binarias y ternarias reemplaza los conceptos de tipos de unidad de división múltiple, es decir elimina la separación de los conceptos de CU, PU y TU excepto como se necesita para las CU que tienen un tamaño demasiado grande para la máxima longitud de transformada, y soporta mayor flexibilidad para formas de división de CU. En la estructura de árbol de codificación, una CU puede tener bien una forma cuadrada o rectangular. Una unidad de árbol de codificación (CTU) primero es dividida por una estructura de árbol cuaternario (es decir, árbol cuaternario). Después los nodos de hoja de árbol cuaternario pueden ser además divididos por una estructura de árbol del tipo múltiple. Como se muestra en la FIG. 5, existen cuatro tipos de separación en estructura de árbol del tipo múltiple: separación binaria vertical 502 (SPLIT_BT_VER), separación binaria horizontal 504 (SPLIT_BT_HOR), separación ternaria vertical 506 (SPLIT_TT_VER), y separación ternaria horizontal 508 (SPLIT_TT_HOR). Los nodos de hoja de árbol del tipo múltiple son llamadas unidades de codificación (CU), y a menos que la CU sea demasiado grande para la longitud de transformada máxima, esta segmentación se utiliza para predicción y procesamiento de transformada sin ninguna división adicional. Esto significa que, en la mayoría de los casos, la CU, PU y TU tienen el mismo tamaño de bloque en el árbol cuaternario con estructura de bloque de codificación de árbol del tipo múltiple anidado. La excepción incluye cuando la longitud de transformada máxima soportada es más pequeña que la anchura o altura del componente de color de la CU. En VTM1, una CU consiste de bloques de codificación (CB) de componentes de color diferente, por ejemplo, una CU contiene un CB luma y dos CB croma (a menos que el vídeo sea monocromático, es decir, teniendo únicamente un componente de color).
División de CU en múltiples unidades de predicción
En VVC, para cada CU dividida con base en la estructura arriba ilustrada, la predicción del contenido de bloque puede llevarse a cabo bien en el bloque de CU completo o en una manera de sub-bloque explicada en los siguientes párrafos. La unidad de operación de dicha predicción es llamada unidad de predicción (o PU).
En el caso de intra predicción (o predicción intra fotograma), generalmente el tamaño de la PU es igual al tamaño de la CU. En otras palabras, la predicción es realizada en el bloque de CU completo. Para inter predicción (o predicción inter-fotograma), el tamaño de la PU puede ser igual o menor que el tamaño de la CU. En otras palabras, existen casos donde una CU puede ser separada en múltiples PU para predicción.
Algunos ejemplos de tener el tamaño de PU más pequeño que el tamaño de CU incluye un modo de predicción afín, un modo de Predicción de Vector de Movimiento de nivel temporal avanzado (ATMVP), y un modo de predicción de triángulo, etc.
Bajo el modo de predicción afín, una CU puede ser separada en múltiples PU 4x4 para predicción. Los vectores de movimiento pueden ser derivados para cada PU 4x4 y la compensación de movimiento puede llevarse a cabo por consiguiente en la PU 4x4. Bajo el modo ATMVP, una CU puede ser separada en una o múltiples PU 8x8 para predicción. Los vectores de movimiento son derivados para cada PU 8x8 y la compensación de movimiento puede realizarse por consiguiente en la PU 8x8. Bajo el modo de predicción de triángulo, una CU puede ser separada en dos unidades de predicción de forma triangular. Los vectores de movimiento son derivados para cada PU y la compensación de movimiento se realiza en consecuencia. El modo de predicción de triángulo está soportado para inter predicción. Mayores detalles del modo de predicción de triángulo se ilustran más adelante.
Modo de predicción de triángulo (o modo de división triangular)
La FIG. 6 es un diagrama esquemático que ilustra la separación de una CU en unidades de predicción triangular de acuerdo con algunas implementaciones de la presente divulgación.
El concepto del modo de predicción de triángulo es introducir divisiones triangulares para predicción compensada de movimiento. El modo de predicción de triángulo también puede ser denominado el modo de unidad de predicción triangular, o modo de división triangular. Como se muestra en la FIG. 6, una CU 602 o 604 es separada en dos unidades de predicción triangular PU1 y PU2 , en ya sea la dirección diagonal inversa o diagonal (es decir, bien separación de la esquina superior izquierda a esquina inferior derecha como se muestra en CU 602 o separación de la esquina superior derecha a la esquina inferior izquierda como se muestra en CU 604). Cada unidad de predicción triangular en la CU es inter-predicha utilizando su propio vector de movimiento de unipredicción e índice de fotograma de referencia los cuales se derivan de una lista candidata de unipredicción. Un proceso de ponderación adaptivo se lleva a cabo al borde diagonal después de predecir las unidades de predicción triangular. Después, el proceso de transformada y cuantificación son aplicados a la CU completa. Se nota que este modo es únicamente aplicado para los modos de salto y fusión en VVC actual. Aunque en la FIG. 6, la CU se muestra como un bloque cuadrado, el modo de predicción de triángulo puede ser aplicado a CU de forma no cuadrada (es decir rectangular) también.
La lista candidata de unipredicción puede comprender uno o más candidatos, y cada candidato puede ser un vector de movimiento. Por tanto, en toda esta divulgación, los términos “lista candidata de unipredicción”, “lista candidata de vector de movimiento de unipredicción”, y “lista de fusión de unipredicción” pueden ser utilizados de manera intercambiable; y los términos “candidatos de fusión de unipredicción” y “vectores de movimiento de unipredicción” también pueden utilizarse de manera intercambiable.
Lista candidata de vector de movimiento de unipredicción
La FIG. 7 es un diagrama esquemático que ilustra posiciones de bloques adyacentes de acuerdo con algunas implementaciones de la presente divulgación.
En algunos ejemplos, la lista candidata de vector de movimiento de unipredicción puede incluir de dos a cinco candidatos de vector de movimiento de unipredicción. En algunos otros ejemplos, otro número también puede ser posible. Se deriva de bloques adyacentes. La lista candidata de vector de movimiento de unipredicción se deriva de siete bloques adyacentes incluyendo cinco bloques adyacentes espaciales (1 a 5) y dos bloques co-ubicados (6 a 7), como se muestra en la FIG. 7. Los vectores de movimiento de los siete bloques adyacentes son ubicados en una primera lista de fusión. Después, una lista candidata de unipredicción se forma con base en los primeros vectores de movimiento de lista de fusión a un orden específico. Con base en el orden, los vectores de movimiento de unipredicción de la primera lista de fusión son puestos en la lista candidata de vector de movimiento de unipredicción primero, seguido por la Lista 0 de imagen de referencia o vector de movimiento L0 de vectores de movimiento de bipredicción, y después la Lista 1 de imagen de referencia o vector de movimiento L1 de vectores de movimiento de bipredicción, y después seguido por el vector de movimiento promediado de los vectores de movimiento L0 y L1 de vectores de movimiento de bipredicción. En ese punto, si el número de candidatos es todavía menor que un número objetivo (el cual es cinco en VVC actual), vectores de movimiento cero son agregados a la lista para cumplir el número objetivo.
Un predictor es derivado para cada una de las PU triangulares basado en su vector de movimiento. Vale la pena notar que el predictor derivado cubre un área más amplia que la PU triangular actual de manera que existe un área superpuesta de los dos predictores a lo largo del borde diagonal compartido de las dos PU triangulares. Un proceso de ponderación es aplicado al área de borde diagonal entre los dos predictores para derivar una predicción final para la CU. Los factores de ponderación actualmente utilizados para las muestras de luminancia y crominancia son {7/8,6/8,5/8,4/8,3/8,2/8,1 /8} y {6/8,4/8,2/8}, respectivamente.
Lista candidata de vector de movimiento de modo de fusión regular
De acuerdo con VVC actual, bajo el modo de fusión regular donde una CU completa es predicha sin separar en más de una PU, la lista candidata de vector de movimiento o lista candidata de fusión es construida utilizando un procedimiento diferente que ese para el modo de predicción de triángulo.
Primeramente, los candidatos de vector de movimiento espacial se seleccionan en base a vectores de movimiento de bloques adyacentes como se indica en la FIG. 8, la cual es un diagrama esquemático que ilustra posiciones de candidatos de fusión espacial de acuerdo con algunas implementaciones de la presente divulgación. En la derivación de candidatos de fusión espacial de un bloque actual 802, un máximo de cuatro candidatos de fusión se selecciona entre candidatos que están ubicados en posiciones como se describe en la FIG. 8. El orden de derivación es A1 ^ B ^ B 0^ A 0^ (B 2). La posición B2 es considerada únicamente cuando cualquier PU de posiciones A1 , B1 , B0, A0, no está disponible o está intra codificada.
Después, se deriva un candidato de fusión temporal. En la derivación de candidato de fusión temporal, un vector de movimiento escalado se deriva con base en la PU co-ubicada perteneciente a la imagen la cual tiene la diferencia de Conteo de Orden de Imagen más pequeña (POC) con la imagen actual dentro de la lista de imagen de referencia determinada. La lista de imagen de referencia que va a utilizarse para derivación de la PU co-ubicada es explícitamente señalizada en el encabezado de porción. El vector de movimiento escalado para el candidato de fusión temporal se obtiene como se ilustra por medio de la línea punteada en la FIG. 9 la cual ilustra escalamiento de vector de movimiento para el candidato de fusión temporal de acuerdo con algunas implementaciones de la presente divulgación. El vector de movimiento escalado para el candidato de fusión temporal es escalado del vector de movimiento de la PU co ubicada col_PU utilizando las distancias POC, tb y td, donde tb se define para que sea la diferencia POC entre la imagen de referencia de la imagen actual curr_ref y la imagen actual curr_pic y td se defina para que sea la diferencia POC entre la imagen de referencia de la imagen co-ubicada col_ref y la imagen co-ubicada col_pic. El índice de imagen de referencia del candidato de fusión temporal se establece igual a cero. Una realización práctica de los procesos de escalamiento se describe en la especificación del proyecto HEVC. Para una porción-B, dos vectores de movimiento, uno para la Lista de imagen de referencia 0 y el otro para la Lista de imagen de referencia 1, se obtienen y combinan para hacer el candidato de fusión bipredictivo.
La FIG. 10 es un diagrama esquemático que ilustra posiciones candidatas para el candidato de fusión temporal de acuerdo con algunas implementaciones de la presente divulgación.
La posición de PU co-ubicada se selecciona entre dos posiciones candidatas, C3 y H, como se describió en la FIG.
10. Si la PU en la posición H no está disponible, o está intra codificada, o está al exterior de la CTU actual, la posición C3 es utilizada para la derivación del candidato de fusión temporal. De otra manera, la posición H se utiliza para la derivación del candidato de fusión temporal.
Después de insertar ambos, vectores de movimiento espacial y temporal en la lista candidata de fusión como arriba se describió, se agregan los candidatos de fusión basados en historia. Los así llamados candidatos de fusión basados en historia incluyen esos vectores de movimiento de CU previamente codificadas, las cuales se mantienen en una lista de vector de movimiento separada, y administradas con base en ciertas reglas.
Después de insertar los candidatos basados en historia, si la lista candidata de fusión no está completa, los candidatos de vector de movimiento promedio en parejas son además agregados en la lista. Como su nombre indica, este tipo de candidatos es construido promediando candidatos ya en la lista actual. De manera más específica, con base en un cierto orden o regla, dos candidatos en la lista candidata de fusión son tomados cada vez y el vector de movimiento promedio de los dos candidatos se anexa a la lista actual.
Después de insertar los vectores de movimiento promedio en pareja, si la lista candidata de fusión todavía no está completa, vectores de movimiento cero serán agregados para hacer que la lista esté completa.
Uso del proceso de construcción de lista de fusión regular para construir una primera lista de fusión para predicción de triángulo
El modo de predicción de triángulo en VVC actual comparte algunas similitudes con el modo de predicción de fusión regular, en sus procedimientos globales en la formación de un predictor. Por ejemplo, bajo ambos modos de predicción, una lista de fusión necesita ser construida con base en al menos los vectores actuales de movimiento espacial adyacente de las CU y los vectores de movimiento co-ubicados. Al mismo tiempo, el modo de predicción de triángulo también tiene algunos aspectos que son diferentes del modo de predicción de fusión regular.
Por ejemplo, aunque una lista de fusión necesita ser construida bajo ambos, el modo de predicción de triángulo y el modo de predicción de fusión regular, los procedimientos detallados de obtención de dicha una lista son diferentes.
Estas diferencias incurren costo adicional para implementación de códec conformes lógicas adicionales son necesitadas. Los procedimientos y lógicas de construcción de una lista de fusión pueden ser unificadas y compartidas entre el modo de predicción de triángulo y el modo de predicción de fusión regular.
En algunos ejemplos, en la formación de la lista de fusión de predicción unidireccional (también llamada unipredicción) para el modo de predicción de triángulo, antes de agregar un nuevo vector de movimiento en la lista de fusión, el nuevo vector de movimiento es completamente reducido contra esos vectores de movimiento ya en la lista. En otras palabras, el nuevo vector de movimiento se compara con cada vector de movimiento que está ya en la lista de fusión de unipredicción, y es agregado en la lista únicamente cuando es diferente de cada vector de movimiento en esa lista de fusión. De otra manera, el nuevo vector de movimiento no es agregado a la lista.
De acuerdo con algunos ejemplos de la presente divulgación, bajo el modo de predicción de triángulo, la lista de fusión de predicción unidireccional puede obtenerse o construirse a partir de la lista candidata de vector de movimiento de modo fusión regular, la cual puede ser referida como una lista de fusión regular.
De manera más específica, para construir una lista candidata de fusión para el modo de predicción de triángulo, una primera lista de fusión es primeramente construido con base en el proceso de construcción de la lista de fusión para la predicción de fusión regular. La primera lista de fusión incluyendo una pluralidad de candidatos, cada una siendo un vector de movimiento. Después, la lista de fusión de predicción unidireccional para el modo de predicción de triángulo es además construida o derivada utilizando los vectores de movimiento en la primera lista de fusión.
Se debe notar que la primera lista de fusión construida en este caso puede elegir un tamaño de lista diferente que ese para el modo de fusión general o modo de fusión regular. En un ejemplo de la presente divulgación, la primera lista de fusión tiene el mismo tamaño que ese para el modo de fusión general. En otro ejemplo de la presente divulgación, la primera lista de fusión construida tiene un tamaño de lista diferente de ese para el modo de fusión general.
Construir lista de fusión de predicción unidireccional de la primera lista de fusión
De acuerdo con algunos ejemplos de la presente divulgación, la lista de fusión de predicción unidireccional para el modo de predicción de triángulo se puede construir o derivar de la primera lista de fusión con base en uno de los siguientes métodos.
En un ejemplo de la presente divulgación, para construir o derivar la lista de fusión de predicción unidireccional, los vectores de movimiento de la Lista 0 de predicción de los candidatos en la primera lista de fusión son comprobados y seleccionados en la lista de fusión de predicción unidireccional primero. Si la lista de fusión de predicción unidireccional no está completa (por ejemplo, el número de candidatos en esta lista es todavía menor que el número objetivo) después de este proceso, los vectores de movimiento de la Lista 1 de predicción de los candidatos en la primera lista de fusión son comprobados y seleccionados en la lista de fusión de predicción unidireccional. Si la lista de fusión de predicción unidireccional no está todavía completa, se agregan vectores cero de la Lista 0 de predicción a la lista de fusión de predicción unidireccional. Si la lista de fusión de predicción unidireccional todavía no está completa, vectores cero de la Lista 1 de predicción son agregados en la lista de fusión de predicción unidireccional.
En otro ejemplo de la presente divulgación, para cada candidato en la primera lista de fusión, su vector de movimiento de la Lista 0 de predicción y vector de movimiento de la Lista 1 de predicción son agregados en una manera intercalada en la lista de fusión de predicción unidireccional. De manera más específica, para cada candidato en la primera lista de fusión, si un candidato es un vector de movimiento de predicción unidireccional, es agregado directamente en la lista de fusión de predicción unidireccional. De otra manera, si el candidato es un vector de movimiento de predicción bidireccional en la primera lista de fusión, su vector de movimiento de la Lista 0 de predicción es primero agregado en la lista de fusión de predicción unidireccional, seguido por su vector de movimiento de la Lista 1 de predicción. Una vez que todos los candidatos de vector de movimiento en la primera lista de fusión son comprobados y agregados, pero la lista de fusión de predicción unidireccional no está completa aún, se pueden agregar vectores de movimiento cero de predicción unidireccional. Por ejemplo, para cada índice de fotograma de referencia, un vector de movimiento cero de la Lista 0 de predicción y un vector de movimiento cero de la Lista 1 de predicción pueden ser separadamente agregados en la lista de fusión de predicción de predicción unidireccional hasta que la lista esté completa.
En todavía otro ejemplo de la presente divulgación, los vectores de movimiento de predicción unidireccional de la primera lista de fusión se seleccionan en la lista de fusión de predicción unidireccional primero. Si la lista de fusión de predicción unidireccional no está completa después de este proceso, para cada vector de movimiento de predicción bidireccional en la primera lista de fusión, su vector de movimiento de la Lista 0 de predicción es primero agregado en la lista de fusión de predicción unidireccional, seguido por su vector de movimiento de la Lista 1 de predicción. Después de este proceso, si la lista de fusión de predicción unidireccional no está completa aún, vectores de movimiento cero de predicción unidireccional pueden agregarse. Por ejemplo, para cada índice de fotograma de referencia, un vector de movimiento cero de la Lista 0 de predicción y un vector de movimiento cero de la Lista 1 de predicción pueden ser agregados separadamente en la lista de fusión de predicción unidireccional hasta que la lista esté completa.
En las descripciones anteriores, cuando un vector de movimiento de predicción unidireccional es agregado a la lista de fusión de predicción unidireccional, un proceso de reducción de vector de movimiento puede ser realizado para asegurar que el nuevo vector de movimiento que va a agregarse es diferente de esos vectores de movimiento ya en la lista de fusión de predicción unidireccional. Dicho proceso de reducción de vector de movimiento también puede realizarse en una manera parcial para complejidad más baja, por ejemplo, comprobando el nuevo vector de movimiento que va a agregarse únicamente contra algunos pero no todos los vectores de movimiento ya en la lista de fusión de predicción unidireccional. En un caso extremo, no se realiza reducción de vector de movimiento en el proceso (es decir, operación de comparación de vector de movimiento).
Construcción de lista de fusión de predicción unidireccional de la primera lista de fusión basado en la configuración de predicción de imagen
En algunos ejemplos de la presente divulgación, la lista de fusión de unipredicción puede ser construida en una manera adaptiva con base en si una imagen actual utiliza predicción hacia atrás. Por ejemplo, la lista de fusión de unipredicción puede ser construido utilizando diferentes métodos dependiendo de si una imagen actual utiliza predicción hacia atrás. Si los valores de Conteo de Orden de Imagen (POC) de todas las imágenes de referencia no son mayores que el valor POC de la imagen actual, significa que la imagen actual no utiliza predicción hacia atrás.
En un ejemplo de la presente divulgación, cuando una imagen actual no utiliza predicción hacia atrás, o después de determinar que la imagen actual no utiliza predicción hacia atrás, los vectores de movimiento de la Lista 0 de predicción de los candidatos en la primera lista de fusión son comprobados y seleccionados en la lista de fusión de predicción unidireccional primero, seguido por los vectores de movimiento de la Lista 1 de predicción de esos candidatos; y si la lista de fusión de predicción unidireccional no está completa todavía, los vectores de movimiento cero de unipredicción pueden agregarse. De otra manera, si la imagen actual utiliza predicción hacia atrás, los vectores de movimiento de la Lista 0 y Lista 1 de predicción de cada candidato en la primera lista de fusión pueden comprobarse y seleccionarse en la lista de fusión de predicción unidireccional en una manera intercalada como arriba se describió, es decir, el vector de movimiento de la Lista 0 de predicción del primer candidato en la primera lista de fusión es agregada, seguido por el vector de movimiento de la Lista 1 de predicción del primer candidato, y después el vector de movimiento de la Lista 0 de predicción del segundo candidato es agregado, seguido por el vector de movimiento de la Lista 1 de predicción del segundo candidato, etc. Al final del proceso, si la lista de fusión de predicción unidireccional no está todavía completa, vectores cero de unipredicción pueden ser agregados.
En otro ejemplo de la presente divulgación, si una imagen actual no utiliza predicción hacia atrás, los vectores de movimiento de la Lista 1 de predicción de los candidatos en la primera lista de fusión son comprobados y seleccionados en la lista de fusión de predicción unidireccional primero, seguido por los vectores de movimiento de la Lista 0 de predicción de esos candidatos; y si la lista de fusión de predicción unidireccional todavía no está completa, los vectores de movimiento cero de unipredicción pueden ser agregados. De otra manera, si la imagen actual utiliza predicción hacia atrás, los vectores de movimiento de la Lista 0 y Lista 1 de predicción de cada candidato en la primera lista de fusión puede ser comprobado y seleccionado en la lista de fusión de predicción unidireccional en una manera intercalada como arriba se describió, es decir, el vector de movimiento de la Lista 0 de predicción del primer candidato en la primera lista de fusión es agregado, seguido por el vector de movimiento de la Lista 1 de predicción del primer candidato, y después el vector de movimiento de la Lista 0 de predicción del segundo candidato es agregado, seguido por el vector de movimiento de la Lista 1 de predicción del segundo candidato, etc. Al final del proceso, si la lista de fusión de predicción unidireccional todavía no está completa, se pueden agregar vectores cero de unipredicción.
En todavía otro ejemplo de la presente divulgación, si la imagen actual no utiliza predicción hacia atrás, únicamente vectores de movimiento de la Lista 0 de predicción de los candidatos en la primera lista de fusión son comprobados y seleccionados en la lista de fusión de predicción unidireccional primero, y si la lista de fusión de predicción unidireccional no está completa todavía, se pueden agregar vectores de movimiento cero de unipredicción. De otra manera, si la imagen actual utiliza predicción hacia atrás, vectores de movimiento de la Lista 0 y Lista 1 de predicción de cada candidato en la primer lista de fusión pueden ser comprobados y seleccionados en la lista de fusión de predicción unidireccional en una manera intercalada como arriba se describió, es decir, el vector de movimiento de la Lista 0 de predicción del primer candidato en la primera lista de fusión es agregada, seguido por el vector de movimiento de la Lista 1 de predicción del primer candidato, y después el vector de movimiento de la Lista 0 de predicción del segundo candidato es agregado, seguido por el vector de movimiento de la Lista 1 de predicción del segundo candidato, etc. Al final del proceso, si la lista de fusión de predicción unidireccional no está completa todavía, se pueden agregar vectores cero de unipredicción.
En todavía otro ejemplo de la presente divulgación, si una imagen actual no utiliza la predicción hacia atrás, únicamente los vectores de movimiento de la Lista 1 de predicción de los candidatos en la primera lista de fusión son comprobados y seleccionados en la lista de fusión de predicción unidireccional primero, y si la lista de fusión de predicción unidireccional no está completa todavía, se pueden agregar vectores de movimiento cero de unipredicción. De otra manera, si la imagen actual utiliza predicción hacia atrás, los vectores de movimiento de la Lista 0 y Lista 1 de predicción de cada candidato en la primera lista de fusión pueden ser comprobados y seleccionados en la lista de fusión de predicción unidireccional en una manera intercalada como arriba se describió, es decir, el vector de movimiento de la Lista 0 de predicción del primer candidato en la primera lista de fusión es agregado, seguido por el vector de movimiento de la Lista 1 de predicción del primer candidato, y después el vector de movimiento de la Lista 0 de predicción del segundo candidato es agregado, seguido por el vector de movimiento de la Lista 1 de predicción del segundo candidato, etc. Al final del proceso, si la lista de fusión de predicción unidireccional no está completa todavía, pueden agregarse vectores cero de unipredicción.
Uso de la primera lista de fusión para la predicción de triángulo sin crear lista de fusión de predicción unidireccional
En los ejemplos anteriores, una lista de fusión de predicción unidireccional para predicción de triángulo es construida seleccionando vectores de movimiento de la primera lista de fusión en la lista de fusión de predicción unidireccional. Sin embargo, en la práctica, los métodos pueden ser implementados en diferentes maneras, con o sin la lista de fusión de predicción unidireccional (o unipredicción) siendo físicamente formada. En algunos ejemplos, la primera lista de fusión puede ser utilizada directamente sin crear físicamente una lista de fusión de predicción unidireccional. Por ejemplo, los vectores de movimiento de la Lista 1 y/o Lista 0 de cada candidato en la primera lista de fusión pueden ser simplemente indexados con base en un cierto orden y con acceso directamente desde la primera lista de fusión.
Por ejemplo, la primera lista de fusión puede ser obtenida desde un decodificador u otros dispositivos/componentes electrónicos. En otros ejemplos, después de construir la primera lista de fusión la cual incluye una pluralidad de candidatos, cada uno siendo uno o más vectores de movimiento, con base en un proceso de construcción de lista de fusión para predicción de fusión regular, una lista de fusión de predicción unidireccional no es construida, pero en su lugar, un listado de índice pre-definido incluyendo una pluralidad de índices de referencia, cada índice de referencia siendo una referencia a un vector de movimiento de un candidato en la primera lista de fusión, es utilizado para derivar candidatos de fusión unidireccionales para el modo de predicción de triángulo. El listado de índice puede ser considerado como una representación de una lista de fusión de predicción unidireccional para la predicción triangular, y la lista de fusión de predicción unidireccional incluye al menos un subconjunto de candidatos en la primera lista de fusión correspondiente a los índices de referencia. Se debe notar que un orden de indexación puede seguir cualquiera de los órdenes de selección descritos en los ejemplos en los cuales una lista de fusión de predicción unidireccional es construida. En la práctica, dicho listado de índice puede ser implementado en diferentes maneras. Por ejemplo, puede ser implementado como una lista explícitamente. En otros ejemplos, también puede ser implementado u obtenido en ciertas lógicas y/o funciones de programa sin formar explícitamente ninguna lista.
En algunos ejemplos de la presente divulgación, el listado de índice puede determinarse en una manera adaptiva con base en si una imagen actual utiliza predicción hacia atrás. Por ejemplo, los índices de referencia en el listado de índice pueden ser ordenados dependiendo de si una imagen actual utiliza predicción hacia atrás, es decir, con base en un resultado de comparación de un Conteo de Orden de Imagen (POC) de una imagen actual y POCs de imágenes de referencia. Si los valores de Conteo de Orden de Imagen (POC) de todas las imágenes de referencia no son mayores que el valor de POC de la imagen actual, esto significa que la imagen actual no utiliza predicción hacia atrás.
En un ejemplo de la presente divulgación, cuando una imagen actual no utiliza predicción hacia atrás, los vectores de movimiento de la Lista 0 de predicción de los candidatos en la primera lista de fusión se utilizan como los candidatos de fusión de predicción unidireccional, indexados de acuerdo con el mismo orden de índice conforme están en la primera lista de fusión. Esto es, después de determinar que el POC de la imagen actual es mayor que cada uno de los POCs de imágenes de referencia, los índices de referencia están ordenados de acuerdo con un mismo orden de vectores de movimiento de la Lista 0 de los candidatos en la primera lista de fusión. De otra manera, si la imagen actual utiliza predicción hacia atrás, los vectores de movimiento de la Lista 0 y Lista 1 de cada candidato en la primera lista de fusión se utilizan como los candidatos de fusión de predicción unidireccional, indexados con base en una manera intercalada, es decir, el vector de movimiento de la Lista 0 del primer candidato en la primera lista de fusión seguido por el vector de movimiento de la Lista 1 del primer candidato, y después el vector de movimiento de la Lista 0 del segundo candidato seguido por el vector de movimiento de la Lista 1 de del segundo candidato, etc. Esto es, después de determinar que el POC de la imagen actual es más pequeño que al menos uno de los POCs de las imágenes de referencia, los índices de referencia son ordenados de acuerdo con una manera intercalada de vectores de movimiento de la Lista 0 y Lista 1 de cada candidato en la primera lista de fusión, donde el candidato es un vector de movimiento de predicción bidireccional. En el caso donde un candidato en la primera lista de fusión es un vector de movimiento unidireccional, un vector de movimiento cero es indexado como el candidato de fusión de predicción unidireccional siguiendo el vector de movimiento de ese candidato. Esto asegura que para el caso donde la imagen actual utiliza predicción hacia atrás, cada candidato en la primera lista de fusión, sin considerar que es vector de movimiento de predicción unidireccional o bidireccional, proporciona dos vectores ce movimiento unidireccionales como los candidatos de fusión de predicción unidireccional.
En otro ejemplo de la presente divulgación, cuando una imagen actual no utiliza predicción hacia atrás, los vectores de movimiento de la Lista 0 de predicción de los candidatos en la primera lista de fusión se utilizan como los candidatos de fusión de predicción unidireccional, indexados conforme al mismo orden de índice en que están en la primera lista de fusión. De otra manera, si la imagen actual utiliza predicción hacia atrás, los vectores de movimiento de la Lista 0 y Lista 1 de cada candidato en la primera lista de fusión se utilizan como los candidatos de fusión de predicción unidireccional, indexados con base en una manera intercalada como arriba se describe, es decir, el vector de movimiento de la Lista 0 del primer candidato en la primera lista de fusión seguido por el vector de movimiento de la Lista 1 del primer candidato, y después vector de movimiento de la Lista 0 del segundo candidato seguido por el vector de movimiento de la lista 1 del segundo candidato, etc. En el caso donde un candidato en la primera lista de fusión es un vector de movimiento unidireccional, el vector de movimiento más cierta compensación de movimiento es indexado como el candidato de fusión de predicción unidireccional siguiendo el vector de movimiento del candidato.
Por tanto, en el caso donde un candidato en la primera lista de fusión es un vector de movimiento unidireccional, después de determinar que el POC de la imagen actual es más pequeño que al menos uno de los POCs de las imágenes de referencia, los índices de referencia son ordenados de acuerdo con una manera de intercalación de: un vector de movimiento de cada candidato en la primera lista de fusión, y un vector de movimiento cero, o el vector de movimiento más una compensación.
En los procesos anteriores, cuando se comprueba un nuevo vector de movimiento para que sea agregado a la lista de fusión de predicción unidireccional, se puede llevar a cabo la disminución completamente, o parcialmente. Cuando se realiza parcialmente, significa que el nuevo vector de movimiento en comparación contra algunos, pero no todos, los vectores de movimiento que ya están en la lista de fusión de unipredicción. En un caso extremo, no se lleva a cabo disminución de vector de movimiento (es decir la operación de comparación de vector de movimiento) se lleva a cabo en el proceso.
La disminución de vector de movimiento también puede llevarse a cabo adaptivamente en la formación de la lista de fusión de unipredicción, con base en si la imagen actual utiliza predicción hacia atrás o no. Por ejemplo, para los ejemplos de la presente divulgación en relación con la determinación del listado de índice con base en la configuración de predicción de imagen, cuando la imagen actual no utiliza predicción hacia atrás, se lleva a cabo la operación de disminución de vector de movimiento, ya sea completamente o parcialmente. Cuando la imagen actual utiliza la predicción hacia atrás, la operación de disminución de vector de movimiento no se realiza.
Seleccionar candidatos de fusión de unipredicción para modo de predicción de triángulo
Además de los ejemplos arriba mencionados, otras maneras de construcción de lista de fusión de unipredicción o selección de candidato de fusión de unipredicción se describen.
En un ejemplo de la presente divulgación, una vez que la primera lista de fusión para el modo de fusión regular es construida, los candidatos de fusión de unipredicción pueden ser seleccionados para predicción de triángulo de acuerdo con las siguientes reglas.
para un candidato de vector de movimiento en la primera lista de fusión, uno y únicamente uno de su vector de movimiento de la Lista 0 o Lista 1 se utiliza para predicción de triángulo;
para un candidato de vector de movimiento determinado en la primera lista de fusión, si su valor de índice de fusión en la lista es un número par, su vector de movimiento de la Lista 0 se utiliza para predicción de triángulo si está disponible, y en el caso que el candidato de vector de movimiento no tenga un vector de movimiento de la Lista 0, su vector de movimiento de la Lista 1 se utiliza para predicción de triángulo; y
para un candidato de vector de movimiento en la primera lista de fusión, si su valor de índice de fusión en la lista es un número impar, su vector de movimiento de la Lista 1 se utiliza para predicción de triángulo si está disponible, y en el caso que este candidato de vector de movimiento no tiene un vector de movimiento de la Lista 1, su vector de movimiento de la Lista 0 se utiliza para predicción de triángulo.
La FIG. 11A muestra una selección de ejemplo de vector de movimiento de unipredicción (MV) (o selección de candidato de fusión de predicción) para modo de predicción de triángulo. En el ejemplo, los primeros 5 candidatos MV de fusión derivados en la primera lista de fusión están indexados de 0 a 4; y cada fila tiene dos columnas, representando el vector de movimiento de la Lista 0 y Lista 1 respectivamente para un candidato en la primera lista de fusión. Cada candidato en la lista puede ser bien unipredicho o bipredicho. Para un candidato pre-dicho, tiene únicamente un vector de movimiento Lista 0 o Lista 1, pero no ambos. Para un candidato bipredicho, tiene ambos vectores de movimiento de la Lista 0 y Lista 1. En la FIG. 11A, para cada índice de fusión, los vectores de movimiento marcados con “x” son esos vectores de movimiento que van a utilizarse primero para predicción de triángulo si están disponibles. Si un vector de movimiento marcado en “x” no está disponible, el vector de movimiento sin marcar correspondiente al mismo índice de fusión es entonces utilizado para predicción triángulo.
El concepto anterior puede ser extendido a otros ejemplos. La FIG. 11B muestra otro ejemplo de selección de vector de movimiento de unipredicción (MV) para modo de predicción de triángulo. De acuerdo con la FIG. 11B, las reglas para seleccionar candidatos de fusión de unipredicción para predicción de triángulo son como sigue:
para un candidato de vector de movimiento en la primera lista de fusión, uno y únicamente uno de su vector de movimiento de la Lista 0 o Lista 1 se utiliza para predicción de triángulo;
para un candidato de vector de movimiento determinado en la primera lista de fusión, si su valor de índice de fusión en la lista es un número par, su vector de movimiento de la Lista 1 se utiliza para predicción de triángulo si está disponible, y en el caso que este candidato de vector de movimiento no tenga un vector de movimiento de la Lista 1, su vector de movimiento de la Lista 0 se utiliza para predicción de triángulo; y
para un candidato de vector de movimiento determinado en la primera lista de fusión, si su valor de índice de fusión en la lista es un número impar, su vector de movimiento de la Lista 0 se utiliza para predicción de triángulo si está disponible, y en el caso que este candidato de vector de movimiento no tenga un vector de movimiento de la Lista 0, su vector de movimiento de la Lista 1 se utiliza para predicción de triángulo.
En algunos ejemplos, otros órdenes diferentes pueden definirse y utilizarse para seleccionar candidatos de fusión de unipredicción para predicción de triángulo de esos candidatos de vector de movimiento en la primera lista de fusión. Muy específicamente, para un candidato de vector de movimiento determinado en la primera lista de fusión, la decisión de si su vector de movimiento de la Lista 0 o Lista 1 se utiliza primero cuando está disponible para predicción de triángulo no tiene que ser dependiente de la paridad del valor de índice candidato en la primera lista de fusión como arriba se describió. Por ejemplo, las siguientes reglas también pueden utilizarse:
para un candidato de vector de movimiento en la primera lista de fusión, uno y únicamente uno de su vector de movimiento de la Lista 0 o Lista 1 se utiliza para predicción de triángulo;
con base en un cierto patrón pre-definido, para un número de candidatos de vector de movimiento en la primera lista de fusión, su vector de movimiento de la Lista 0 se utiliza para predicción de triángulo si está disponible, y en el caso que un vector de movimiento de la Lista 0 no exista, el vector de movimiento de la Lista 1 correspondiente se utiliza para predicción de triángulo; y
con base en el mismo patrón pre-definido, para los candidatos de vector de movimiento restantes en la primera lista de fusión, su vector de movimiento de la Lista 1 se utiliza para predicción de triángulo si está disponible, y en el caso que un vector de movimiento de la Lista 1 no exista, el vector de movimiento de la Lista 0 correspondiente se utiliza para predicción de triángulo.
Las FIGS. 12A a 12D muestran algunos ejemplos de los patrones predefinidos en selección de vector de movimiento de unipredicción (MV) para modo de predicción de triángulo. Para cada índice de fusión, los vectores de movimiento marcados con “x” son esos vectores de movimiento utilizados para predicción de triángulo si están disponibles. Si un vector de movimiento marcado en “x” no está disponible, el vector de movimiento sin marcar correspondiente al mismo índice de fusión después se utiliza para predicción de triángulo.
En la FIG. 12A, para los primeros tres candidatos de vector de movimiento en la primera lista de fusión, sus vectores de movimiento de la Lista 0 son comprobados primero. Únicamente cuando un vector de movimiento de la lista 0 no está disponible, el vector de movimiento de la Lista 1 correspondiente se utiliza para predicción de triángulo. Para el cuarto y quinto candidatos de vector de movimiento en la primera lista de fusión, sus vectores de movimiento de la Lista 1 son comprobados primero. Únicamente cuando un vector de movimiento de la Lista 1 no está disponible, el vector de movimiento de la Lista 0 correspondiente se utiliza para predicción de triángulo. Las FIGS. 12B a 12D muestran otros tres patrones en la selección de candidatos de fusión de unipredicción de la primera lista de fusión. Los ejemplos mostrados en las figuras son no limitantes, y existen ejemplos adicionales. Por ejemplo, las versiones reflejadas horizontalmente y/o verticalmente de esos patrones mostrados en las FIGS. 12A a 12D también pueden ser utilizados.
Los candidatos de fusión de unipredicción seleccionados pueden ser indexados y con acceso directamente desde la primera lista de fusión; o estos candidatos de fusión de unipredicción seleccionados pueden ser puestos en una lista de fusión de unipredicción para predicción de triángulo. La lista de fusión de unipredicción derivada incluye una pluralidad de candidatos de fusión de unipredicción, y cada candidato de fusión de unipredicción incluye un vector de movimiento de un candidato correspondiente en la primera lista de fusión. De acuerdo con algunos ejemplos de la presente divulgación, cada candidato en la primera lista de fusión incluye al menos uno de un vector de movimiento de la Lista 0 y un vector de movimiento de la Lista 1, y cada candidato de fusión de unipredicción puede ser uno solo de los vectores de movimiento de la Lista 0 y la Lista 1 del candidato correspondiente en la primera lista de fusión. Cada candidato de fusión de unipredicción está asociado con un índice de fusión de valor entero; y los vectores de movimiento de la Lista 0 y Lista 1 son seleccionados con base en una regla predeterminada para los candidatos de fusión de unipredicción.
En un ejemplo, para cada candidato de fusión de unipredicción que tiene un valor de índice de fusión par, un vector de movimiento de la Lista 0 del candidato correspondiente con el mismo índice de fusión en la primera lista de fusión se selecciona como el candidato de fusión de unipredicción; y para cada candidato de fusión de unipredicción que tiene un valor de índice de fusión impar, un vector de movimiento de la Lista 1 del candidato correspondiente con el mismo índice de fusión en la primera lista de fusión se selecciona. En otro ejemplo, para cada candidato de fusión de unipredicción que tiene un valor de índice de fusión par, un vector de movimiento de la Lista 1 del candidato correspondiente con el mismo índice de fusión en la primera lista de fusión se selecciona; y para cada candidato de fusión de unipredicción que tiene un valor de índice de fusión impar, un vector de movimiento de la Lista 0 del candidato correspondiente con el mismo índice de fusión en la primera lista de fusión se selecciona.
En todavía otro ejemplo, para cada candidato de fusión de unipredicción, un vector de movimiento de la Lista 1 del candidato correspondiente en la primera lista de fusión se selecciona como el candidato de fusión de unipredicción, después de determinar que el vector de movimiento de la Lista 1 está disponible; y un vector de movimiento de la Lista 0 del candidato correspondiente en la primera lista de fusión se selecciona una vez que se determina que el vector de movimiento de la Lista 1 no está disponible.
En todavía otro ejemplo, para cada candidato de fusión de unipredicción que tiene un valor de índice de fusión dentro de un primer rango, un vector de movimiento de la Lista 0 del candidato correspondiente en la primera lista de fusión se selecciona como el candidato de fusión de unipredicción; y para cada candidato de fusión de unipredicción que tiene un valor de índice de fusión dentro de un segundo rango, un vector de movimiento de la Lista 1 del candidato correspondiente en la primera lista de fusión se selecciona.
En los procesos anteriores, la reducción de vector de movimiento puede realizarse también. Dicha reducción puede hacerse completamente, o parcialmente. Cuando se lleva a cabo parcialmente, significa que un nuevo vector de movimiento se compara contra algunos, pero no todos, los vectores de movimiento que ya están en la lista de fusión de unipredicción. También puede significar que únicamente algunos, pero no todos, los nuevos vectores de movimiento necesitan ser comprobados para reducción antes de ser utilizados como candidatos de fusión para predicción de triángulo. Un ejemplo específico es que únicamente el segundo vector de movimiento se comprueba contra el primer vector de movimiento para reducir antes de que se utilice como un candidato de fusión para la predicción de triángulo, mientras que todos los otros vectores de movimiento no son comprobados para reducción. En el caso extremo, no se lleva a cabo reducción de vector de movimiento (es decir operación de comparación de vector de movimiento) en el proceso.
Aunque los métodos para formar una lista de fusión de unipredicción en esta divulgación se describen con respecto al modo de predicción de triángulo, estos métodos son aplicables a otros modos de predicción de tipos similares. Por ejemplo, bajo el modo de predicción de división geométrica general en donde una CU es dividida en dos PU a lo largo de una línea no exactamente diagonal, las dos PU pueden tener una forma geométrica tal como formas de triángulo, de cuña o trapezoidales. En dichos casos, la predicción de cada PU se forma en una manera similar como en el modo de predicción de triángulo, los métodos aquí descritos son igualmente aplicables.
La FIG. 13 es un diagrama de bloques que ilustra un aparato para codificación de vídeo de acuerdo con algunas implementaciones de la presente divulgación. El aparato 1300 puede ser una terminal, tal como un teléfono móvil, un ordenador tableta, una terminal de difusión digital, un dispositivo de Tablet, o un asistente digital personal.
Como se muestra en la FIG. 13, el aparato 1300 puede incluir uno o más de los siguientes componentes: un componente de procesamiento 1302, una memoria 1304, un componente de suministro de energía 1306, un componente multimedia 1308, un componente de audio 1310, una interfaz de entrada/salida (I/O) 1312, un componente de sensor 1314, y un componente de comunicación 1316.
El componente de procesamiento 1302 generalmente controla las operaciones globales del aparato 1300, tal como operaciones relacionadas al despliegue, una llamada telefónica, comunicación de datos, una operación de cámara y una operación de registro. El componente de procesamiento 1302 puede incluir uno o más procesadores 1320 para ejecutar instrucciones para completar a todos o una parte de pasos del método anterior. Además, el componente de procesamiento 1302 puede incluir uno o más módulos para facilitar la interacción entre el componente de procesamiento 1302 y otros componentes. Por ejemplo, el componente de procesamiento 1302 puede incluir un módulo multimedia para facilitar la interacción entre el componente multimedia 1308 y el componente de procesamiento 1302.
La memoria 1304 está configurada para almacenar diferentes tipos de datos para soportar operaciones del aparato 1300. Ejemplos de dichos datos incluyen instrucciones, datos de contacto, datos de directorio telefónico, mensajes, imágenes, vídeos, etc. para cualquier solicitud o método que opera en el aparato 1300. La memoria 1304 puede ser implementado por cualquier tipo de dispositivos de almacenamiento volátil o no-volátil o una combinación de los mismos, y la memoria 1304 puede ser una Memoria de Acceso Aleatorio Estático (SRAM), una Memoria de únicamente lectura Programable Eléctricamente Borrable (EEPROM), una Memoria de únicamente lectura Programable Borrable (EPROM), una Memoria de únicamente lectura Programable (PROM), una Memoria de únicamente lectura (ROM), una memoria magnética, una memoria flash, un disco magnético o un disco compacto.
El componente de suministro de energía 1306 suministra energía para diferentes componentes del aparato 1300. El componente de suministro de energía 1306 puede incluir un sistema de gestión de suministro de energía, uno o más suministros de energía, y otros componentes asociados con la generación, gestión y distribución de energía para el aparato 1300.
El componente multimedia 1308 incluye una pantalla que proporciona una interfaz de salida entre el aparato 1300 y un usuario. En algunos ejemplos, la pantalla puede incluir una Pantalla de Cristal Líquido (LCD) y un panel táctil (TP). Si la pantalla incluye un panel táctil, la pantalla puede ser implementada como una pantalla táctil que recibe una señal de entrada de un usuario. El panel táctil puede incluir uno o más sensores táctiles para detectar un toque, un deslizamiento y un gesto en el panel táctil. El sensor de toque puede no solamente detectar un límite de un toque o acciones de deslizamiento, pero también detectan la duración y presión relacionada con la operación de toque u operación de deslizamiento. En algunos ejemplos, el componente multimedia 1308 puede incluir una cámara frontal y/o una cámara posterior. Cuando el aparato 1300 es un modo de operación, tal como un modo de disparo o un modo de vídeo, la cámara frontal y/o la cámara posterior puede recibir datos multimedia externos.
El componente de audio 1310 está configurado para emitir y/o ingresar una señal de audio. Por ejemplo, el componente de audio 1310 incluye un micrófono (MIC). Cuando el aparato 1300 está en un modo de operación, tal como un modo de llamada, un modo de grabación y un modo de reconocimiento de voz, el micrófono está configurado para recibir una señal de audio externa. La señal de audio recibida puede además almacenarse en la memoria 1304 o enviarse a través del componente de comunicación 1316. En algunos ejemplos, el componente de audio 1310 incluye además un altavoces para emitir una señal de audio.
La interfaz I/O 1312 proporciona una interfaz entre el componente de procesamiento 1302 y un módulo de interfaz periférica. El módulo de interfaz periférico anterior puede ser un teclado, una rueda pulsable, un botón, o similar. Estos botones pueden incluir pero no limitarse a, un botón de inicio, un botón de volumen, un botón de encendido y un botón de bloqueo.
El componente de sensor 1314 incluye uno o más sensores para proporcionar una evaluación de estado en diferentes aspectos para el aparato 1300. Por ejemplo, el componente de sensor 1314 puede detectar un estado de encendido/apagado 1300 y ubicaciones relativas de componentes. Por ejemplo, los componentes son una pantalla y un teclado del aparato 1300. El componente de sensor 1314 también puede detectar un cambio de posición del aparato 1300 o un componente del aparato 1300, la presencia o ausencia de un contacto de un usuario en el aparato 1300, una orientación y aceleración/desaceleración del aparato 1300, y un cambio de temperatura de, aparato 1300. El componente de sensor 1314 puede incluir un sensor de proximidad configurado para detectar la presencia de un objeto cercano sin ningún toque físico. El componente de sensor 1314 puede incluir un sensor óptico, tal como sensor de imagen CMOS o CCD utilizando en una aplicación de imagen. En algunos ejemplos, el componente de sensor 1314 puede incluir además un sensor de aceleración, un sensor de giroscopio, un sensor magnético, un sensor de presión, o un sensor de temperatura.
El componente de comunicación 1316 está configurado para facilitar la comunicación conectada o inalámbrica entre el aparato 1300 y otros dispositivos. El aparato 1300 puede tener acceso a una red inalámbrica con base en una norma de comunicación, tal como WiFi, 4G, o una combinación de las mismas. En un ejemplo, el componente de comunicación 1316 recibe una señal de difusión o información relacionada con la difusión desde un sistema de gestión de difusión externa mediante un canal de difusión. En un ejemplo, el componente de comunicación 1316 puede además incluir un módulo de Comunicación de Campo Cercano (NFC) para promover la comunicación de corto alcance. Por ejemplo, el módulo NFC puede ser implementado con base en la tecnología de Identificación de Frecuencia de Radio (RFID), tecnología de asociación de datos infrarrojos (IrDA), tecnología de Banda Ultra-Ancha (UWB), la tecnología de Bluetooth (BT) y otra tecnología.
En un ejemplo, el aparato 1300 puede ser implementado por uno o más de los Circuitos Integrados de Aplicación Específica (ASIC), Procesadores de Señal Digital (DSP), Dispositivos de Procesamiento de Señal Digital (DSPD), Dispositivos de Lógica Programable (PLD), Matrices de puerta de campo programable (FPGA), controladores, microcontroladores, microprocesadores u otros elementos electrónicos para llevar a cabo el método anterior.
Un medio de almacenamiento legible por ordenador no transitorio puede ser, por ejemplo, una Unidad de Disco Duro<(HDD), una Unidad de Estado Sólido>(S<s>D),<memoria flash, Unidad Híbrida de Estado Sólido o Unidad Híbrida (SSHD),>una Memoria de únicamente Lectura (ROM), una Memoria de únicamente Lectura de Disco Compacto (CD-ROM), una cinta magnética, un disco flexible y etc.
La FIG. 14 es un diagrama de flujo que ilustra un proceso ejemplar de codificación de vídeo para predicción compensada de movimiento utilizando unidad de predicción triangular de acuerdo con algunas implementaciones de la presente divulgación.
En el paso 1402, el procesador 1320 divide imágenes de vídeo en una pluralidad de unidades de codificación (CU), al menos uno del cual es además dividido en dos unidades de predicción (PU). Las dos PU pueden incluir al menos una PU de forma geométrica. Por ejemplo, la PU de forma geométrica puede incluir un par de PU de forma triangular, un par de PU de forma de cuña, u otras PU de forma geométrica.
En el paso 1404, el procesador 1320 construye una primera lista de fusión incluyendo una pluralidad de candidatos, cada uno incluyendo uno o más vectores de movimiento. Por ejemplo, el procesador 1320 puede construir la primera lista de fusión con base en un proceso de construcción de lista de fusión para predicción de fusión regular. El procesador 1320 puede obtener la primera lista de fusión de otros dispositivos electrónicos o almacenamiento también.
En el paso 1406, el procesador 1320 obtiene o deriva una lista de fusión de unipredicción para la PU en forma triangular; donde la lista de fusión de unipredicción incluyendo una pluralidad de candidatos de fusión de unipredicción, y cada candidato de fusión de unipredicción incluye un vector de movimiento de un candidato correspondiente en la primera lista de fusión.
En algunos ejemplos, se proporciona un aparato para codificación de vídeo. El aparato incluye un procesador 1320; y una memoria 1304 configurada para almacenar instrucciones ejecutables por el procesador; donde el procesador, después de la ejecución de las instrucciones, está configurado para llevar a cabo un método como se ilustra en la FIG.
14.
En algunos otros ejemplos, se proporciona un medio de almacenamiento legible por ordenador no transitorio 1304, teniendo instrucciones almacenadas en el mismo. Cuando las instrucciones son ejecutadas por un procesador 1320, las instrucciones ocasionan que el procesador lleve a cabo un método como se ilustró en la FIG. 14.
La descripción de la presente divulgación se ha presentado para propósitos de ilustración, y no se pretende que sea exhaustiva o limitada a la presente divulgación. Muchas modificaciones, variaciones, e implementaciones alternativas serán aparentes para esos de habilidad ordinaria en la técnica teniendo el beneficio de las enseñanzas presentadas en las descripciones anteriores y las figuras asociadas.
Los ejemplos fueron elegidos y descritos con el fin de explicar los principios de la divulgación, y permitir que otros expertos en la técnica entiendan la descripción de varias implementaciones y utilizar mejor los principios subyacentes y varias implementaciones con varias modificaciones como son adecuados al uso particular contemplado. Por lo tanto, se debe entender que el alcance de la divulgación no debe limitarse a los ejemplos específicos de las implementaciones descritas y esas modificaciones y otras implementaciones se pretende que sean incluidas dentro del alcance de la presente divulgación.

Claims (13)

REIVINDICACIONES
1. Un método para decodificación de vídeo, comprende:
obtener, a partir de un flujo de bits de vídeo (201), una pluralidad de unidades de codificación (CU) que están divididas a partir de imágenes de vídeo, estando además al menos una de las CU dividida en dos unidades de predicción (PU) de modo de predicción de división geométrica;
construir una primera lista de fusión que comprenda una pluralidad de candidatos, comprendiendo cada uno uno o más vectores de movimiento;
caracterizado por obtener una pluralidad de candidatos de fusión de unipredicción directamente de la primera lista de fusión sin crear una lista de candidatos de fusión de unipredicción, en donde cada candidato de fusión de unipredicción comprende un vector de movimiento de un candidato correspondiente en la primera lista de fusión;
en donde cada candidato de la primera lista de fusión comprende al menos uno de un vector de movimiento de la Lista 0 y un vector de movimiento de la Lista 1, y cada candidato de fusión de unipredicción se selecciona para comprender uno solo de los vectores de movimiento de la Lista 0 y Lista 1 de cada candidato de la primera lista de fusión.
2. El método de la reivindicación 1, en donde cada candidato de fusión de unipredicción está asociado a un índice de fusión del valor entero.
3. El método de la reivindicación 1, en donde los vectores de movimiento de la Lista 0 y/o Lista 1 de cada candidato de la primera lista de fusión se indexan según un orden de selección el único de los vectores de movimiento de la Lista 0 y Lista 1 de cada candidato de la primera lista de fusión.
4. El método de la reivindicación 2, en donde cada candidato de fusión de unipredicción que tiene un valor de índice de fusión comprende un vector de movimiento de Lista 0 o Lista 1 del candidato correspondiente en la primera lista de fusión con el mismo índice de fusión.
5. El método de la reivindicación 2, en donde cada candidato de fusión de unipredicción que tiene un valor de índice de fusión par comprende un vector de movimiento de la Lista 0 del candidato correspondiente en la primera lista de fusión al determinar que el vector de movimiento de la Lista 0 está disponible; o un vector de movimiento de la Lista 1 del candidato correspondiente en la primera lista de fusión al determinar que el vector de movimiento de la Lista 0 no está disponible, y/o
en donde cada candidato de fusión de unipredicción que tiene un valor de índice de fusión impar comprende un vector de movimiento de la Lista 1 del candidato correspondiente en la primera lista de fusión al determinar que el vector de movimiento de la Lista 1 está disponible; o un vector de movimiento de la lista 0 del candidato correspondiente en la primera lista de fusión al determinar que el vector de movimiento de la Lista 1 no está disponible.
6. El método de la reivindicación 2, en donde cada candidatos de fusión de unipredicción que tiene un valor de índice de fusión dentro de un primer intervalo comprende un vector de movimiento de la Lista 0 del candidato correspondiente en la primera lista de fusión; y cada candidato de fusión de unipredicción que tiene un valor de índice de fusión dentro de un segundo intervalo comprende un vector de movimiento de la Lista 1 del candidato correspondiente de la primera lista de fusión.
7. Un aparato para decodificación de vídeo, que comprende:
uno o más procesadores; y
una memoria configurada para almacenar instrucciones ejecutables por el uno o más procesadores;
en donde el uno o más procesadores, tras la ejecución de las instrucciones, está configurado para:
obtener, a partir de un flujo de bits de vídeo, una pluralidad de unidades de codificación, CU, que están divididas a partir de imágenes de vídeo, al menos una de las CU está además dividida en dos unidades de predicción, PU, de modo de predicción de división geométrica;
construir una primera lista de fusión que comprenda una pluralidad de candidatos, comprendiendo cada uno uno o más vectores de movimiento;
se caracteriza por que el uno o más procesadores, tras la ejecución de las instrucciones está configurado para obtener una pluralidad de candidatos de fusión de unipredicción directamente de la primera lista de fusión sin crear una lista de candidatos de fusión de unipredicción, y cada candidato de fusión de unipredicción comprende un vector de movimiento de un candidato correspondiente de la primera lista de fusión;
en la que cada candidato de la primera lista de de fusión comprende al menos uno de un vector de movimiento de la Lista 0 y un vector de movimiento de la Lista 1, y cada candidato de fusión de unipredicción se selecciona para comprender uno solo de los vectores de movimiento de la Lista 0 y de la Lista 1 de cada candidato de la primera lista de fusión.
8. El aparato de la reivindicación 7, en donde los vectores de movimiento de la Lista 0 y/o Lista 1 de cada candidato en la primera lista de fusión se indexan de acuerdo con un orden de selección de uno solo de los vectores de movimiento de la Lista 0 y de la Lista 1 de cada candidato de la primera lista de fusión.
9. El aparato de la reivindicación 8, en donde cada candidato de fusión de unipredicción que tiene un valor de índice de fusión comprende un vector de movimiento de Lista 0 o Lista 1 del candidato correspondiente en la primera lista de fusión con el mismo índice de fusión.
10. El aparato de la reivindicación 8, en el que cada candidato de fusión de unipredicción que tiene un valor de índice de fusión par comprende un vector de movimiento de la Lista 0 del candidato correspondiente en la primera lista de fusión al determinar que el vector de movimiento de la Lista 0 está disponible; o un vector de movimiento de la Lista 1 del candidato correspondiente en la primera lista de fusión al determinar que el vector de movimiento de la Lista 0 no está disponible; y/o
en donde cada candidato sw fusión de unipredicción que tiene un valor de índice de fusión impar comprende un vector de movimiento de la Lista 1 del candidato correspondiente en la primera lista de fusión al determinar que el vector de movimiento de la Lista 1 está disponible; o un vector de movimiento de la Lista 0 del candidato correspondiente en la primera lista de fusión al determinar que el vector de movimiento de la Lista 1 no está disponible.
11. El aparato de la reivindicación 8, en el que cada candidato de fusión de unipredicción que tiene un valor de índice de fusión dentro de un primer intervalo comprende un vector de movimiento de la Lista 0 del candidato correspondiente en la primera lista de fusión; y cada candidato a fusión de unipredicción que tiene un valor de índice de fusión dentro de un segundo intervalo comprende un vector de movimiento de la Lista 1 del candidato correspondiente en la primera lista de fusión.
12. Un medio de almacenamiento legible por ordenador no transitorio, que comprende instrucciones almacenadas en el mismo, caracterizado por que tras la ejecución de las instrucciones por uno o más procesadores, las instrucciones hacen que el uno o más procesadores realicen el método de cualquiera de las reivindicaciones 1-6.
13. Un producto de programa de ordenador que comprende un medio de almacenamiento legible por ordenador no transitorio que almacena una pluralidad de programas para su ejecución por un dispositivo informático que tiene uno o más procesadores, caracterizado por que la pluralidad de programas, cuando son ejecutados por el uno o más procesadores, hacen que el dispositivo informático realice el método de cualquiera de las reivindicaciones 1-6.
ES20769755T 2019-03-12 2020-03-12 Codificación de vídeo para una inter predicción de división geométrica Active ES2969378T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962817537P 2019-03-12 2019-03-12
US201962817852P 2019-03-13 2019-03-13
PCT/US2020/022488 WO2020186117A1 (en) 2019-03-12 2020-03-12 Methods and apparatus of video coding for triangle prediction

Publications (1)

Publication Number Publication Date
ES2969378T3 true ES2969378T3 (es) 2024-05-17

Family

ID=72422831

Family Applications (4)

Application Number Title Priority Date Filing Date
ES23190421T Active ES3043388T3 (en) 2019-03-12 2020-03-12 Methods and apparatus of video coding with geometric inter partition prediction
ES20769755T Active ES2969378T3 (es) 2019-03-12 2020-03-12 Codificación de vídeo para una inter predicción de división geométrica
ES23190416T Active ES3041721T3 (en) 2019-03-12 2020-03-12 Methods and apparatus of video decoding with geometric inter partition prediction
ES23184716T Active ES3006433T3 (en) 2019-03-12 2020-03-12 Video coding for geometric inter partition prediction

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES23190421T Active ES3043388T3 (en) 2019-03-12 2020-03-12 Methods and apparatus of video coding with geometric inter partition prediction

Family Applications After (2)

Application Number Title Priority Date Filing Date
ES23190416T Active ES3041721T3 (en) 2019-03-12 2020-03-12 Methods and apparatus of video decoding with geometric inter partition prediction
ES23184716T Active ES3006433T3 (en) 2019-03-12 2020-03-12 Video coding for geometric inter partition prediction

Country Status (13)

Country Link
US (2) US11134261B2 (es)
EP (4) EP4246978B1 (es)
JP (4) JP7377277B2 (es)
KR (2) KR102489716B1 (es)
CN (5) CN113475069A (es)
DK (1) DK3915254T3 (es)
ES (4) ES3043388T3 (es)
FI (1) FI3915254T3 (es)
HU (1) HUE064582T2 (es)
MX (2) MX2021010392A (es)
PL (1) PL3915254T3 (es)
PT (1) PT3915254T (es)
WO (1) WO2020186117A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3884667B1 (en) * 2018-12-25 2024-04-17 Beijing Dajia Internet Information Technology Co., Ltd. Video coding with triangular shape prediction units
KR102489716B1 (ko) * 2019-03-12 2023-01-18 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 삼각형 예측을 위한 비디오 코딩 방법 및 장치
US11456902B2 (en) * 2019-06-20 2022-09-27 Board Of Trustees Of Michigan State University Data packet position modulation system
US11736720B2 (en) * 2019-09-03 2023-08-22 Tencent America LLC Motion vector refinement methods for video encoding
WO2022266592A1 (en) * 2021-06-15 2022-12-22 Qualcomm Incorporated Motion vector candidate construction for geometric partitioning mode in video coding
US12160574B2 (en) 2021-06-15 2024-12-03 Qualcomm Incorporated Motion vector candidate construction for geometric partitioning mode in video coding
CN117461313A (zh) * 2021-06-15 2024-01-26 高通股份有限公司 视频译码中用于几何划分模式的运动矢量候选构建
WO2026059336A1 (ko) * 2024-09-13 2026-03-19 디지털인사이트 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363520B2 (en) * 2010-05-04 2016-06-07 Lg Electronics Inc. Method and apparatus for processing a video signal
DK3070945T3 (da) * 2010-07-20 2020-04-06 Ntt Docomo Inc Indretning til prædikativ billedafkodning, billedforudsigelsesafkodningsfremgangsmåde
US9066110B2 (en) * 2011-03-08 2015-06-23 Texas Instruments Incorporated Parsing friendly and error resilient merge flag coding in video coding
US9866859B2 (en) * 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
CA2830036C (en) * 2011-04-12 2019-03-05 Panasonic Corporation Moving picture coding method, moving picture coding apparatus, moving picture decoding method, moving picture decoding apparatus and moving picture coding and decoding apparatus
US9485518B2 (en) * 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
JP5865366B2 (ja) * 2011-05-27 2016-02-17 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置、および、画像符号化復号装置
CN108650508B (zh) 2011-09-29 2022-07-29 夏普株式会社 图像解码装置、图像解码方法、图像编码装置及图像编码方法
KR20130050407A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 움직임 정보 생성 방법
TWI580261B (zh) * 2012-01-18 2017-04-21 Jvc Kenwood Corp Dynamic image decoding device, dynamic image decoding method, and dynamic image decoding program
US9451277B2 (en) * 2012-02-08 2016-09-20 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9426463B2 (en) * 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9325991B2 (en) * 2012-04-11 2016-04-26 Qualcomm Incorporated Motion vector rounding
US9479778B2 (en) * 2012-08-13 2016-10-25 Qualcomm Incorporated Device and method for coding video information using base layer motion vector candidate
US9699450B2 (en) * 2012-10-04 2017-07-04 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
US9538180B2 (en) * 2012-12-17 2017-01-03 Qualcomm Incorporated Motion vector prediction in video coding
EP2982116A1 (en) * 2013-04-02 2016-02-10 VID SCALE, Inc. Enhanced temporal motion vector prediction for scalable video coding
KR20130067280A (ko) * 2013-04-18 2013-06-21 엠앤케이홀딩스 주식회사 인터 예측 부호화된 동영상 복호화 방법
US10750198B2 (en) 2014-05-22 2020-08-18 Qualcomm Incorporated Maximum palette parameters in palette-based video coding
SG11201703454XA (en) * 2014-11-18 2017-06-29 Mediatek Inc Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate
US10271064B2 (en) 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
WO2017076221A1 (en) * 2015-11-05 2017-05-11 Mediatek Inc. Method and apparatus of inter prediction using average motion vector for video coding
US10368083B2 (en) * 2016-02-15 2019-07-30 Qualcomm Incorporated Picture order count based motion vector pruning
US10939099B2 (en) * 2016-04-22 2021-03-02 Lg Electronics Inc. Inter prediction mode-based image processing method and device therefor
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10812791B2 (en) * 2016-09-16 2020-10-20 Qualcomm Incorporated Offset vector identification of temporal motion vector predictor
US12457321B2 (en) * 2017-03-22 2025-10-28 Electronics And Telecommunications Research Institute Prediction method and device using reference block
US10582209B2 (en) * 2017-03-30 2020-03-03 Mediatek Inc. Sub-prediction unit temporal motion vector prediction (sub-PU TMVP) for video coding
CN112601083A (zh) 2017-06-28 2021-04-02 华为技术有限公司 一种图像数据的编码、解码方法及装置
US11019355B2 (en) * 2018-04-03 2021-05-25 Electronics And Telecommunications Research Institute Inter-prediction method and apparatus using reference frame generated based on deep learning
EP3847814A4 (en) * 2018-11-06 2021-07-14 Beijing Bytedance Network Technology Co. Ltd. POSITION DEPENDENT STORAGE, MOVEMENT INFORMATION
JP6977909B2 (ja) 2019-03-08 2021-12-08 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、及び画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
KR102489716B1 (ko) * 2019-03-12 2023-01-18 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 삼각형 예측을 위한 비디오 코딩 방법 및 장치

Also Published As

Publication number Publication date
CN115643400A (zh) 2023-01-24
JP7700175B2 (ja) 2025-06-30
CN116800959B (zh) 2024-03-26
CN113824959A (zh) 2021-12-21
KR20210110742A (ko) 2021-09-08
ES3006433T3 (en) 2025-03-18
EP4246977B1 (en) 2025-09-03
EP4246977A2 (en) 2023-09-20
JP7377277B2 (ja) 2023-11-09
CN116800960A (zh) 2023-09-22
MX2021010392A (es) 2021-10-01
EP4246978C0 (en) 2025-09-03
US20200296406A1 (en) 2020-09-17
MX2024015645A (es) 2025-02-10
CN113824959B (zh) 2022-10-28
EP4246977C0 (en) 2025-09-03
ES3043388T3 (en) 2025-11-25
US20210400293A1 (en) 2021-12-23
CN113475069A (zh) 2021-10-01
JP2022522285A (ja) 2022-04-15
KR102489716B1 (ko) 2023-01-18
CN115643400B (zh) 2023-06-20
EP4246978A3 (en) 2023-12-27
PL3915254T3 (pl) 2024-03-11
KR102889402B1 (ko) 2025-11-24
KR20230008900A (ko) 2023-01-16
JP2024038441A (ja) 2024-03-19
PT3915254T (pt) 2024-01-02
JP2024045373A (ja) 2024-04-02
EP3915254A1 (en) 2021-12-01
EP4246977A3 (en) 2023-12-27
EP4243419C0 (en) 2024-12-18
DK3915254T3 (da) 2024-01-08
JP2023134607A (ja) 2023-09-27
EP4243419A3 (en) 2023-12-20
JP7717201B2 (ja) 2025-08-01
EP3915254A4 (en) 2022-05-18
EP4246978B1 (en) 2025-09-03
CN116800959A (zh) 2023-09-22
EP4243419A2 (en) 2023-09-13
EP4243419B1 (en) 2024-12-18
HUE064582T2 (hu) 2024-03-28
EP4246978A2 (en) 2023-09-20
US12574540B2 (en) 2026-03-10
EP3915254B1 (en) 2023-10-11
FI3915254T3 (fi) 2023-12-28
US11134261B2 (en) 2021-09-28
WO2020186117A1 (en) 2020-09-17
ES3041721T3 (en) 2025-11-14
JP7662855B2 (ja) 2025-04-15
CN116800960B (zh) 2024-05-31

Similar Documents

Publication Publication Date Title
ES3006433T3 (en) Video coding for geometric inter partition prediction
ES3025798T3 (en) Methods and apparatus of video coding for triangle prediction
US20250203067A1 (en) Methods and apparatuses for video coding using triangle partition
US12432376B2 (en) Methods and apparatus of video coding for triangle prediction
US20240323354A1 (en) Methods and apparatuses for video coding with triangle prediction
CN115699735A (zh) 使用几何分区的视频编解码方法及装置
CN114982230A (zh) 用于使用三角形分区的视频编解码的方法和装置