ES2960029T3 - Método y aparato para inter predicción en un sistema de codificación de vídeo - Google Patents
Método y aparato para inter predicción en un sistema de codificación de vídeo Download PDFInfo
- Publication number
- ES2960029T3 ES2960029T3 ES19793735T ES19793735T ES2960029T3 ES 2960029 T3 ES2960029 T3 ES 2960029T3 ES 19793735 T ES19793735 T ES 19793735T ES 19793735 T ES19793735 T ES 19793735T ES 2960029 T3 ES2960029 T3 ES 2960029T3
- Authority
- ES
- Spain
- Prior art keywords
- block
- candidate
- affine
- current block
- inherited
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
La presente invención se refiere a un método mediante el cual un aparato decodificador realiza codificación de vídeo, que comprende las etapas de: generar una lista de candidatos de información de movimiento para un bloque actual; seleccionar un candidato de entre los incluidos en la lista de candidatos de información de la moción; derivar vectores de movimiento de puntos de control (CPMV) del bloque actual en base al candidato seleccionado; derivar vectores de movimiento de unidad de subbloque o de unidad de muestra del bloque actual sobre la base de los CPMV; derivar un bloque predicho basándose en los vectores de movimiento; y reconstruir una imagen actual sobre la base del bloque predicho, en donde la lista de candidatos de información de movimiento incluye un candidato afín heredado, el candidato afín heredado se deriva sobre la base de bloques candidatos codificados mediante predicción afín, de entre bloques vecinos espaciales del bloque predicho. bloque, y el candidato afín heredado se genera hasta un número máximo predefinido. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Método y aparato para inter predicción en un sistema de codificación de vídeo
Antecedentes de la descripción
Campo de la descripción
La presente descripción se refiere a una tecnología de codificación de vídeo y, más específicamente, a un método y aparato de inter-predicción que usa un candidato afín heredado en un sistema de codificación de vídeo.
Técnica relacionada
La demanda de imágenes de alta resolución y alta calidad, tales como imágenes de alta definición (HD) e imágenes de ultra alta definición (UHD), es cada vez mayor en diversos campos. Como los datos de imágenes tienen alta resolución y alta calidad, la cantidad de información o bits a transmitir aumenta en relación con los datos de imágenes heredados. Por consiguiente, cuando los datos de imagen se transmiten usando un medio, tal como una línea de banda ancha alámbrica/inalámbrica convencional, o los datos de imagen se almacenan usando un medio de almacenamiento existente, aumenta el coste de transmisión y el coste de almacenamiento de los mismos.
Por consiguiente, existe la necesidad de una técnica de compresión de imágenes altamente eficaz para transmitir, almacenar y reproducir eficazmente información de imágenes de alta resolución y alta calidad.
El documento (''Description of SDR video coding technology proposal by LG Electronics", n.° JVET-J0017-v2, XP030151178) resume una predicción y compensación de movimiento afín para la que se describe la selección adaptativa de candidatos afines para fusión afín, la predicción de vector de movimiento afín y un modelo de movimiento adaptativo de cuatro y seis parámetros.
El documento ("Algorithm description of Joint Exploration Test Model 7 (JEM7)", n.° G1001_v1m XP030150980) describe una predicción de compensación de movimiento afín para la que se describe la derivación del subbloque, la derivación de vector de movimiento del subbloque y la aplicación de unos filtros de interpolación de compensación de movimiento.
La patente US 2017/332095 A1 describe la predicción de movimiento afín para la codificación de vídeo. En el documento se describe un método que incluye obtener, para un bloque actual de datos de vídeo, valores de vectores de movimiento (MV) de un modelo de movimiento afín de un bloque vecino de datos de vídeo, derivar, a partir de los valores de los MV del modelo de movimiento afín del bloque vecino, valores de predictores para MV de un modelo de movimiento afín del bloque actual, decodificar, a partir de un flujo de bits de vídeo, una representación de las diferencias entre los valores de los MV del modelo de movimiento afín para el bloque actual y los valores de los predictores, determinar los valores de los MV del modelo de movimiento afín para el bloque actual a partir de los valores de los predictores y las diferencias decodificadas, determinar, basándose en los valores determinados de los MV del modelo de movimiento afín para el bloque actual, un bloque predictor de datos de vídeo y reconstruir el bloque actual basándose en el bloque predictor.
La patente europea EP 2613535 A2 describe un método y un dispositivo para una inter predicción. En el documento se describe que el método incluye determinar un modo de predicción de un bloque actual y cuando el modo de predicción determinado es un modo de salto, transmitir información que especifica una dirección de predicción entre una dirección hacia adelante, una dirección hacia atrás o una bidireccional.
Compendio
Un objeto de la presente descripción es proporcionar un método y un aparato para mejorar la eficiencia de la codificación de vídeo.
Otro objeto de la presente descripción es proporcionar un método y un aparato de inter-predicción en un sistema de codificación de vídeo.
Otro objeto más de la presente descripción es proporcionar un método y un aparato para derivar una lista de candidatos de información de movimiento que incluye un candidato afín heredado.
Otro objeto más de la presente descripción es proporcionar un método y un aparato para derivar un candidato afín heredado basándose en bloques vecinos espaciales.
Otro objeto más de la presente descripción es proporcionar un método y un aparato para agrupar bloques vecinos espaciales.
Un objeto adicional de la presente descripción es proporcionar un método y un aparato para derivar un candidato afín heredado basándose en grupos.
Se proporcionan realizaciones preferidas de la presente descripción tal como se define en las reivindicaciones adjuntas, mediante las que se debe establecer el alcance de protección.
La presente descripción puede realizar la inter-predicción a través del candidato afín heredado, mejorando de esta manera la eficiencia de codificación global.
La presente descripción puede configurar la lista de candidatos de información de movimiento que incluye el candidato afín heredado, mejorando de esta manera el rendimiento y la eficiencia de la inter-predicción.
Breve descripción de los dibujos
La Figura 1 es un diagrama de bloques que ilustra esquemáticamente un aparato de codificación de vídeo según una realización de ejemplo de la presente descripción.
La Figura 2 es un diagrama de bloques que ilustra esquemáticamente un aparato de decodificación de vídeo según la realización de ejemplo de la presente descripción.
La Figura 3 ilustra a modo de ejemplo un sistema de envío por flujo continuo según la realización de ejemplo de la presente descripción.
La Figura 4 ilustra a modo de ejemplo un modelo de movimiento afín según la realización de ejemplo de la presente descripción.
Las Figuras 5A y 5B ilustran a modo de ejemplo un modelo afín de 4 parámetros y un modelo afín de 6 parámetros según la realización de ejemplo de la presente descripción.
La Figura 6 ilustra a modo de ejemplo un caso donde se determina un campo de vector de movimiento afín según la realización de ejemplo de la presente descripción en una unidad de subbloque.
La Figura 7 ilustra a modo de ejemplo un diagrama de flujo de un método de predicción de movimiento afín según la realización de ejemplo de la presente descripción.
La Figura 8 ilustra a modo de ejemplo una posición de un bloque vecino para examinar un bloque afín vecino según la realización de ejemplo de la presente descripción.
La Figura 9 ilustra a modo de ejemplo un caso de uso de dos grupos en orden para examinar el bloque afín vecino según la realización de ejemplo de la presente descripción.
La Figura 10 ilustra a modo de ejemplo un caso de uso de tres grupos en orden para examinar el bloque afín vecino según la realización de ejemplo de la presente descripción.
La Figura 11 ilustra esquemáticamente un método de codificación de vídeo mediante un aparato de codificación según la realización de ejemplo de la presente descripción.
La Figura 12 ilustra esquemáticamente un método de decodificación de vídeo mediante un aparato de decodificación según la realización de ejemplo de la presente descripción.
Descripción de realizaciones ilustrativas
Dado que la presente descripción puede modificarse de diversas formas y puede tener diversas realizaciones de ejemplo, en los dibujos se ilustrarán y describirán en detalle realizaciones de ejemplo específicas. Sin embargo, esto no pretende limitar la presente descripción a las realizaciones de ejemplo específicas. Los términos usados en la presente memoria descriptiva se usan simplemente para describir una realización de ejemplo específica. Una expresión de un número singular incluye una expresión del número plural, a menos que se indique claramente lo contrario en el contexto. En la presente memoria descriptiva, los términos como "incluir" y "tener" pretenden indicar que existen características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos usados en la memoria descriptiva, y por lo tanto debe entenderse que no se excluye con antelación la posibilidad de existencia o adición de una o más características, números, etapas, operaciones, elementos, componentes o combinaciones diferentes de los mismos.
Mientras tanto, los elementos respectivos en los dibujos descritos en la presente descripción se dibujan de forma independiente para facilitar la explicación de diferentes funciones específicas en un aparato de codificación/aparato de decodificación de vídeo, y no significan que los elementos respectivos estén representados por hardware independiente o por software independiente. Por ejemplo, dos o más de los elementos respectivos pueden combinarse para formar un único elemento, o un elemento puede dividirse en varios elementos. Las realizaciones de ejemplo en las que se combinan y/o dividen los respectivos elementos pertenecen a la presente descripción sin apartarse del concepto de la presente descripción.
En esta descripción, el término "/" y debe interpretarse en el sentido de que indica "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B" y "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". Además, "A, B, C" puede significar "al menos uno de A, B y/o C".
Además, en la descripción, el término "o" debe interpretarse en el sentido de que indica "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) únicamente A, 2) únicamente B y/o 3) tanto A como B. En otras palabras, el término "o" en este documento puede interpretarse como que indica "adicionalmente o como alternativa".
La presente descripción puede modificarse de diversas formas, y realizaciones específicas de la misma se describirán e ilustrarán en los dibujos. Sin embargo, las realizaciones no pretenden limitar la descripción. Los términos usados en la siguiente descripción se usan simplemente para describir realizaciones específicas, pero no pretenden limitar la descripción. Una expresión de un número singular incluye una expresión del número plural, siempre que se lea claramente de manera diferente. Los términos tales como "incluir" y "tener" pretenden indicar que existen características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos usados en la siguiente descripción, y por lo tanto debe entenderse que no se excluye la posibilidad de existencia o adición de una o más características, números, etapas, operaciones, elementos, componentes o combinaciones diferentes de los mismos.
Mientras tanto, los elementos de los dibujos descritos en la descripción se dibujan de forma independiente para facilitar la explicación de diferentes funciones específicas, y no significan que los elementos estén representados por hardware o software independiente. Por ejemplo, dos o más elementos de los elementos pueden combinarse para formar un único elemento, o un elemento puede dividirse en varios elementos. Las realizaciones en las que se combinan y/o dividen los elementos pertenecen a la descripción sin apartarse del concepto de la descripción.
La siguiente descripción se puede aplicar en el campo técnico que se ocupa de vídeos, imágenes o imágenes. Por ejemplo, un método o una realización de ejemplo descrita en la siguiente descripción pueden estar asociados con los contenidos descritos de una norma de codificación de vídeo versátil (VVC) (ITU-T Rec. H.266), una norma de codificación de vídeo/imagen de próxima generación posterior a la VVC, o normas anteriores a la VVC (por ejemplo, una norma de codificación de vídeo de alta eficiencia (HEVC) (ITU-T Rec. H.265) o similares).
En lo sucesivo en la presente memoria, se describirán en detalle ejemplos de la presente realización con referencia a los dibujos adjuntos. Además, se usan números de referencia similares para indicar elementos similares a través de todos los dibujos, y se omitirán las mismas descripciones sobre elementos similares.
En la presente descripción, un vídeo puede significar un conjunto de una serie de imágenes según un paso del tiempo. Generalmente, una imagen significa una unidad que representa una imagen en un tiempo específico, un corte es una unidad que constituye una parte de la imagen. Una imagen puede estar compuesta de varios cortes, y los términos de una imagen y un corte pueden mezclarse entre sí según lo requiera la ocasión.
Un píxel o un pel puede significar una unidad mínima que constituye una imagen (o foto). Además, se puede usar una "muestra" como un término correspondiente a un píxel. La muestra puede representar generalmente un píxel o un valor de un píxel, puede representar únicamente un píxel (un valor de píxel) de un componente de luma y puede representar únicamente un píxel (un valor de píxel) de un componente de croma.
Una unidad indica una unidad básica de procesamiento de imágenes. La unidad puede incluir al menos uno de un área específica e información acerca del área. Opcionalmente, la unidad puede mezclarse con términos tales como bloque, área o similares. En un caso típico, un bloque de MxN puede representar un conjunto de muestras o coeficientes de transformada dispuestos en M columnas y N filas.
La Figura 1 es un diagrama de bloques que ilustra brevemente una estructura de un aparato de codificación según una realización de la presente descripción. En lo sucesivo en la presente memoria, un aparato de codificación/decodificación puede incluir un aparato de codificación/decodificación de vídeo y/o un aparato de codificación/decodificación de imágenes, y el aparato de codificación/decodificación de vídeo puede usarse como un concepto que comprende el aparato de codificación/decodificación de imágenes, o el aparato de codificación/decodificación de imágenes puede usarse como un concepto que comprende el aparato de codificación/decodificación de vídeo.
Haciendo referencia a la Figura 1, un aparato 100 de codificación de vídeo puede incluir un particionador 105 de imágenes, un predictor 110, un procesador 120 residual, un codificador 130 por entropía, un sumador 140, un filtro 150 y una memoria 160. El procesador 120 residual puede incluir un restador 121, un transformador 122, un cuantificador 123, un reorganizador 124, un descuantificador 125, un transformador 126 inverso.
El particionador 105 de imágenes puede dividir una imagen de entrada en al menos una unidad de procesamiento.
En un ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU). En este caso, la unidad de codificación puede dividirse recursivamente de la unidad de codificación más grande (LCU) según una estructura de árbol binario de árbol cuádruple (QTBT). Por ejemplo, una unidad de codificación puede dividirse en una pluralidad de unidades de codificación de una profundidad más profunda basándose en una estructura de árbol cuádruple, una estructura de árbol binario y/o una estructura de árbol ternario. En este caso, por ejemplo, se puede aplicar en primer lugar la estructura de árbol cuádruple y más tarde se pueden aplicar la estructura de árbol binario y la estructura de árbol ternario. Como alternativa, se puede aplicar en primer lugar la estructura de árbol binario/estructura de árbol ternario. El procedimiento de codificación según la presente realización se puede realizar basándose en una unidad de codificación final que ya no se divide más. En este caso, la unidad de codificación más grande puede usarse como unidad de codificación final basándose en la eficiencia de codificación, o similar, dependiendo de las características de la imagen, o la unidad de codificación puede dividirse recursivamente en unidades de codificación de menor profundidad, según sea necesario, y se puede usar una unidad de codificación que tiene un tamaño óptimo como la unidad de codificación final. En este punto, el procedimiento de codificación puede incluir un procedimiento tal como predicción, transformada y reconstrucción, que se describirá más adelante.
En otro ejemplo, la unidad de procesamiento puede incluir una unidad de codificación (CU), una unidad de predicción (PU) o un transformador (TU). La unidad de codificación puede dividirse a partir de la unidad de codificación más grande (LCU) en unidades de codificación de una profundidad más profunda según la estructura de árbol cuádruple. En este caso, la unidad de codificación más grande puede usarse directamente como unidad de codificación final basándose en la eficiencia de codificación, o similar, dependiendo de las características de la imagen, o la unidad de codificación puede dividirse recursivamente en unidades de codificación de profundidad más profunda, según sea necesario, y se puede usar una unidad de codificación que tiene un tamaño óptimo como una unidad de codificación final. Cuando se establece la unidad de codificación más pequeña (SCU), la unidad de codificación no se puede dividir en unidades de codificación menores que la unidad de codificación más pequeña. En este punto, la unidad de codificación final se refiere a una unidad de codificación que está particionada o dividida en una unidad de predicción o un transformador. La unidad de predicción es una unidad que está particionada de una unidad de codificación y puede ser una unidad de predicción de muestra. En este punto, la unidad de predicción se puede dividir en subbloques. El transformador puede dividirse a partir de la unidad de codificación según la estructura de árbol cuádruple y puede ser una unidad para derivar un coeficiente de transformada y/o una unidad para derivar una señal residual a partir del coeficiente de transformada. En lo sucesivo, la unidad de codificación puede denominarse bloque de codificación (CB), la unidad de predicción puede denominarse bloque de predicción (PB) y el transformador puede denominarse bloque de transformada (TB). El bloque de predicción o unidad de predicción puede hacer referencia a un área específica en forma de bloque en una imagen e incluir una serie de muestras de predicción. Además, el bloque de transformada o transformador puede hacer referencia a un área específica en forma de bloque en una imagen e incluir el coeficiente de transformada o una serie de muestras residuales.
El predictor 110 puede realizar una predicción en un bloque objetivo de procesamiento (en lo sucesivo en la presente memoria, puede representar un bloque actual o un bloque residual), y puede generar un bloque previsto que incluye muestras de predicción para el bloque actual. Una unidad de predicción realizada en el predictor 110 puede ser un bloque de codificación, o puede ser un bloque de transformada, o puede ser un bloque de predicción.
El predictor 110 puede determinar si se aplica intra-predicción o inter-predicción al bloque actual. Por ejemplo, el predictor 110 puede determinar si se aplica la intra-predicción o la inter-predicción en unidades de CU.
En el caso de la intra-predicción, el predictor 110 puede derivar una muestra de predicción para el bloque actual basándose en una muestra de referencia fuera del bloque actual en una imagen a la que pertenece el bloque actual (en lo sucesivo en la presente memoria, una imagen actual). En este caso, el predictor 110 puede derivar la muestra de predicción basándose en un promedio o interpolación de muestras de referencia vecinas del bloque actual (caso (I)), o puede derivar la muestra de predicción basándose en una muestra de referencia existente en una dirección específica (predicción) en cuanto a una muestra de predicción entre las muestras de referencia vecinas del bloque actual (caso (ii)). El caso (a) puede denominarse modo no direccional o modo no angular, y el caso (ii) puede denominarse modo direccional o modo angular. En la intra-predicción, los modos de predicción pueden incluir, a modo de ejemplo, 33 modos direccionales y al menos dos modos no direccionales. Los modos no direccionales pueden incluir el modo CC y el modo planar. El predictor 110 puede determinar el modo de predicción que se aplicará al bloque actual usando el modo de predicción aplicado al bloque vecino.
En el caso de la inter-predicción, el predictor 110 puede derivar la muestra de predicción para el bloque actual basándose en una muestra especificada por un vector de movimiento en una imagen de referencia. El predictor 110 puede derivar la muestra de predicción para el bloque actual aplicando uno cualquiera de un modo de salto, un modo de fusión y un modo de predicción de vector de movimiento (MVP). En el caso del modo de salto y el modo de fusión, el predictor 110 puede usar información de movimiento del bloque vecino como información de movimiento del bloque actual. En el caso del modo de salto, a diferencia del modo de fusión, no se transmite una diferencia (residual) entre la muestra de predicción y una muestra original. En el caso del modo de MVP, se usa un vector de movimiento del bloque vecino como predictor de vector de movimiento para derivar un vector de movimiento del bloque actual.
En el caso de la inter-predicción, el bloque vecino puede incluir un bloque vecino espacial existente en la imagen actual y un bloque vecino temporal existente en la imagen de referencia. La imagen de referencia que incluye el bloque vecino temporal también puede denominarse imagen coubicada (colPic). La información de movimiento puede incluir el vector de movimiento y un índice de imagen de referencia. Información tal como información de modo de predicción e información de movimiento puede codificarse (por entropía) y, a continuación, emitirse como una forma de flujo de bits.
Cuando se usa información de movimiento de un bloque vecino temporal en el modo de salto y en el modo de fusión, se puede usar como imagen de referencia la imagen más alta en una lista de imágenes de referencia. Las imágenes de referencia incluidas en la lista de imágenes de referencia se pueden alinear basándose en una diferencia de recuento de orden de imágenes (POC) entre una imagen actual y una imagen de referencia correspondiente. Un POC corresponde a un orden de visualización y puede discriminarse de un orden de codificación.
El restador 121 genera una muestra residual que es una diferencia entre una muestra original y una muestra de predicción. Si se aplica el modo de salto, puede que no se genere la muestra residual como se ha descrito anteriormente.
El transformador 122 transforma muestras residuales en unidades de un bloque de transformada para generar un coeficiente de transformada. El transformador 122 puede realizar transformada basándose en el tamaño de un bloque de transformada correspondiente y un modo de predicción aplicado a un bloque de codificación o bloque de predicción que se superpone espacialmente con el bloque de transformada. Por ejemplo, las muestras residuales se pueden transformar usando el núcleo de transformada de la transformada de seno discreta (DST) si se aplica intra-predicción al bloque de codificación o al bloque de predicción que se superpone con el bloque de transformada y el bloque de transformada es una matriz residual de 4x4 y se transforma usando el núcleo de transformada de la transformada de coseno discreta (DCT) en otros casos.
El cuantificador 123 puede cuantificar los coeficientes de transformada para generar coeficientes de transformada cuantificados.
El reorganizador 124 reorganiza los coeficientes de transformada cuantificados. El reorganizador 124 puede reorganizar los coeficientes de transformada cuantificados en forma de un bloque en un vector unidimensional a través de un método de exploración de coeficientes. Aunque el reorganizador 124 se describe como un componente separado, el reorganizador 124 puede ser una parte del cuantificador 123.
El codificador 130 por entropía puede realizar codificación por entropía en los coeficientes de transformada cuantificados. La codificación por entropía puede incluir un método de codificación, por ejemplo, un Golomb exponencial, una codificación de longitud variable adaptativa al contexto (CAVLC), una codificación aritmética binaria adaptativa al contexto (CABAC), o similares. El codificador 130 por entropía puede realizar codificación, según una codificación por entropía o según un método preconfigurado, juntos o por separado sobre información (p. ej., un valor de elemento de sintaxis o similar) requerida para la reconstrucción de vídeo además de los coeficientes de transformada cuantificados. La información codificada por entropía puede transmitirse o almacenarse en una unidad de una capa de abstracción de red (NAL) en forma de flujo de bits. El flujo de bits puede transmitirse a través de una red o almacenarse en un medio de almacenamiento digital. En este punto, la red puede incluir una red de difusión o una red de comunicaciones, el medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, SD, CD, dVd , blue-ray, HDD, SDD, etc.
El descuantificador 125 descuantifica valores (coeficientes de transformada) cuantificados por el cuantificador 123 y el transformador 126 inverso transforma a la inversa valores descuantificados por el descuantificador 125 para generar una muestra residual.
El sumador 140 añade una muestra residual a una muestra de predicción para reconstruir una imagen. La muestra residual se puede añadir a la muestra de predicción en unidades de un bloque para generar un bloque reconstruido. Aunque el sumador 140 se describe como un componente separado, el sumador 140 puede ser una parte del predictor 110. Mientras tanto, el sumador 140 puede denominarse reconstructor o generador de bloques reconstruidos.
El filtro 150 puede aplicar filtrado de desbloqueo y/o un desplazamiento adaptativo de muestra a la imagen reconstruida. Los artefactos en un límite de bloque en la imagen reconstruida o la distorsión en la cuantificación se pueden corregir mediante filtrado de desbloqueo y/o desplazamiento adaptativo de muestra. El desplazamiento adaptativo de muestra se puede aplicar en unidades de una muestra después de que se completa el filtrado de desbloqueo. El filtro 150 puede aplicar un filtro de bucle adaptativo (ALF) a la imagen reconstruida. El ALF se puede aplicar a la imagen reconstruida a la que se le ha aplicado filtrado de desbloqueo y/o desplazamiento adaptativo de muestra.
La memoria 160 puede almacenar una imagen reconstruida (imagen decodificada) o información necesaria para codificar/decodificar. En este punto, la imagen reconstruida puede ser la imagen reconstruida filtrada por el filtro 150. La imagen reconstruida almacenada puede usarse como imagen de referencia para (inter)predicción de otras imágenes. Por ejemplo, la memoria 160 puede almacenar imágenes (de referencia) usadas para inter-predicción. En este punto, las imágenes usadas para la inter-predicción pueden designarse según un conjunto de imágenes de referencia o una lista de imágenes de referencia.
La Figura 2 es un diagrama de bloques que ilustra brevemente una estructura de un aparato de decodificación de vídeo/imágenes según una realización de la presente descripción.
En lo sucesivo en la presente memoria, un aparato de decodificación de vídeo puede incluir un aparato de decodificación de imágenes.
Haciendo referencia a la Figura 2, un aparato 200 de decodificación de vídeo puede incluir un decodificador 210 por entropía, un procesador 220 residual, un predictor 230, un sumador 240, un filtro 250 y una memoria 260. El procesador 220 residual puede incluir un reorganizador 221, un descuantizador 222, un transformador 223 inverso.
Además, aunque no se representa, el aparato 200 de decodificación de vídeo puede incluir un receptor para recibir un flujo de bits que incluye información de vídeo. El receptor puede configurarse como un módulo separado o puede incluirse en el decodificador 210 por entropía.
Cuando se introduce un flujo de bits que incluye información de vídeo/imagen, el aparato 200 de decodificación de vídeo puede reconstruir un vídeo/imagen/foto en asociación con un proceso mediante el cual se procesa información de vídeo en el aparato de codificación de vídeo.
Por ejemplo, el aparato 200 de decodificación de vídeo puede realizar la decodificación de vídeo usando una unidad de procesamiento aplicada en el aparato de codificación de vídeo. Por lo tanto, el bloque de unidad de procesamiento de decodificación de vídeo puede ser, por ejemplo, una unidad de codificación y, en otro ejemplo, una unidad de codificación, una unidad de predicción o un transformador. La unidad de codificación puede dividirse desde la unidad de codificación más grande según la estructura de árbol cuádruple y/o la estructura de árbol binario y/o la estructura de árbol ternario.
En algunos casos se puede usar además una unidad de predicción y un transformador y, en este caso, el bloque de predicción es un bloque derivado o particionado desde la unidad de codificación y puede ser una unidad de predicción de muestra. En este punto, la unidad de predicción se puede dividir en subbloques. El transformador puede dividirse a partir de la unidad de codificación según la estructura de árbol cuádruple y puede ser una unidad que deriva un coeficiente de transformada o una unidad que deriva una señal residual del coeficiente de transformada.
El decodificador 210 por entropía puede analizar el flujo de bits para emitir información requerida para la reconstrucción de vídeo o la reconstrucción de imágenes. Por ejemplo, el decodificador 210 por entropía puede decodificar información en el flujo de bits basándose en un método de codificación tal como codificación Golomb exponencial, CAVLC, CABAC o similares, y puede emitir un valor de un elemento de sintaxis requerido para la reconstrucción de vídeo y un valor cuantificado de un coeficiente de transformada con respecto a un residual.
Más específicamente, un método de decodificación por entropía CABAC puede recibir un binario correspondiente a cada elemento de sintaxis en un flujo de bits, determinar un modelo de contexto usando información del elemento de sintaxis objetivo de decodificación e información de decodificación de bloques objetivo vecinos y de decodificación o información de símbolo/binario decodificado en una etapa anterior, predice la probabilidad de generación del binario según el modelo de contexto determinado y realiza la decodificación aritmética del binario para generar un símbolo correspondiente a cada valor de elemento de sintaxis. En este punto, el método de decodificación por entropía CABAC puede actualizar el modelo de contexto usando información de un símbolo/binario decodificado para un modelo de contexto del siguiente símbolo/binario después de la determinación del modelo de contexto.
La información acerca de la predicción entre la información decodificada en el decodificador 210 por entropía se puede proporcionar al predictor 250 y los valores residuales, es decir, coeficientes de transformada cuantificados, en los que se ha realizado la decodificación por entropía mediante el decodificador 210 por entropía se pueden introducir en el reorganizador 221.
El reorganizador 221 puede reorganizar los coeficientes de transformada cuantificados en una forma de un bloque bidimensional. El reorganizador 221 puede realizar una reorganización correspondiente a la exploración de coeficientes realizada por el aparato de codificación. Aunque el reorganizador 221 se describe como un componente separado, el reorganizador 221 puede ser una parte del descuantificador 222.
El descuantificador 222 puede descuantificar los coeficientes de transformada cuantificados basándose en un parámetro de (des)cuantificación para emitir un coeficiente de transformada. En este caso, la información para derivar un parámetro de cuantificación puede señalizarse desde el aparato de codificación.
El transformador 223 inverso puede transformar a la inversa los coeficientes de transformada para derivar muestras residuales.
El predictor 230 puede realizar una predicción en un bloque actual y puede generar un bloque previsto que incluye muestras de predicción para el bloque actual. Una unidad de predicción realizada en el predictor 230 puede ser un bloque de codificación o puede ser un bloque de transformada, o puede ser un bloque de predicción.
El predictor 230 puede determinar si aplicar intra-predicción o inter-predicción basándose en información sobre una predicción. En este caso, una unidad para determinar cuál se usará entre la intra-predicción y la inter-predicción puede ser diferente de una unidad para generar una muestra de predicción. Además, una unidad para generar la muestra de predicción también puede ser diferente en la inter-predicción y en la intra-predicción. Por ejemplo, cuál se aplicará entre la inter-predicción y la intra-predicción se puede determinar en unidades de CU. Además, por ejemplo, en la inter-predicción, la muestra de predicción se puede generar determinando el modo de predicción en unidades de PU, y en la intra-predicción, la muestra de predicción se puede generar en unidades de TU determinando el modo de predicción en unidades de PU.
En el caso de la intra-predicción, el predictor 230 puede derivar una muestra de predicción para un bloque actual basándose en una muestra de referencia vecina en una imagen actual. El predictor 230 puede derivar la muestra de predicción para el bloque actual aplicando un modo direccional o un modo no direccional basándose en la muestra de referencia vecina del bloque actual. En este caso, se puede determinar un modo de predicción que se aplicará al bloque actual usando un modo de intra-predicción de un bloque vecino.
En el caso de inter-predicción, el predictor 230 puede derivar una muestra de predicción para un bloque actual basándose en una muestra especificada en una imagen de referencia según un vector de movimiento. El predictor 230 puede derivar la muestra de predicción para el bloque actual usando uno del modo de salto, el modo de fusión y el modo de MVP. En este punto, la información de movimiento requerida para la inter-predicción del bloque actual proporcionada por el aparato de codificación de vídeo, por ejemplo, un vector de movimiento e información acerca de un índice de imagen de referencia, se puede adquirir o derivar basándose en la información acerca de la predicción.
En el modo de salto y el modo de fusión, la información de movimiento de un bloque vecino se puede usar como información de movimiento del bloque actual. En este punto, el bloque vecino puede incluir un bloque vecino espacial y un bloque vecino temporal.
El predictor 230 puede construir una lista de candidatos de fusión usando información de movimiento de bloques vecinos disponibles y usar información indicada por un índice de fusión en la lista de candidatos de fusión como un vector de movimiento del bloque actual. El índice de fusión puede señalizarse por el aparato de codificación. La información de movimiento puede incluir un vector de movimiento y una imagen de referencia. En el modo de salto y el modo de fusión, una imagen ordenada en primer lugar en la lista de imágenes de referencia puede usarse como una imagen de referencia cuando se usa información de movimiento de un bloque vecino temporal.
En el caso del modo de salto, no se transmite una diferencia (residual) entre una muestra de predicción y una muestra original, a diferencia del modo de fusión.
En el caso del modo de MVP, el vector de movimiento del bloque actual se puede derivar usando un vector de movimiento de un bloque vecino como predictor de vector de movimiento. En este punto, el bloque vecino puede incluir un bloque vecino espacial y un bloque vecino temporal.
Cuando se aplica el modo de fusión, por ejemplo, se puede generar una lista de candidatos de fusión usando un vector de movimiento de un bloque vecino espacial reconstruido y/o un vector de movimiento correspondiente a un bloque Col que es un bloque vecino temporal. Un vector de movimiento de un bloque candidato seleccionado de la lista de candidatos de fusión se usa como el vector de movimiento del bloque actual en el modo de fusión. La información anteriormente mencionada acerca de predicción puede incluir un índice de fusión que indica un bloque candidato que tiene el mejor vector de movimiento seleccionado de los bloques candidatos incluidos en la lista de candidatos de fusión. En este punto, el predictor 230 puede derivar el vector de movimiento del bloque actual usando el índice de fusión.
Cuando se aplica el modo de MVP (predicción de vector de movimiento) como otro ejemplo, se puede generar una lista de candidatos de predictor de vector de movimiento usando un vector de movimiento de un bloque vecino espacial reconstruido y/o un vector de movimiento correspondiente a un bloque Col que es un bloque vecino temporal. Es decir, el vector de movimiento del bloque vecino espacial reconstruido y/o el vector de movimiento correspondiente al bloque Col que es el bloque vecino temporal pueden usarse como candidatos de vector de movimiento. La información anteriormente mencionada acerca de la predicción puede incluir un índice de vector de movimiento de predicción que indica el mejor vector de movimiento seleccionado a partir de los candidatos de vector de movimiento incluidos en la lista. En este punto, el predictor 230 puede seleccionar un vector de movimiento de predicción del bloque actual de los candidatos de vector de movimiento incluidos en la lista de candidatos de vector de movimiento usando el índice de vector de movimiento. El predictor del aparato de codificación puede obtener una diferencia de vector de movimiento (MVD) entre el vector de movimiento del bloque actual y un predictor de vector de movimiento, codificar el MVD y emitir el MVD codificado en forma de un flujo de bits. Es decir, el MVD se puede obtener restando el predictor de vector de movimiento del vector de movimiento del bloque actual. En este punto, el predictor 230 puede adquirir una diferencia de vector de movimiento incluida en la información acerca de la predicción y derivar el vector de movimiento del bloque actual sumando la diferencia de vector de movimiento al predictor de vector de movimiento. Además, el predictor puede obtener o derivar un índice de imagen de referencia que indica una imagen de referencia a partir de la información mencionada anteriormente acerca de la predicción.
El sumador 240 puede añadir una muestra residual a una muestra de predicción para reconstruir un bloque actual o una imagen actual. El sumador 240 puede reconstruir la imagen actual añadiendo la muestra residual a la muestra de predicción en unidades de un bloque. Cuando se aplica el modo de salto, no se transmite un residual y, por lo tanto, la muestra de predicción puede convertirse en una muestra reconstruida. Aunque el sumador 240 se describe como un componente separado, el sumador 240 puede ser una parte del predictor 230. Mientras tanto, el sumador 240 puede denominarse reconstructor de generador de bloques reconstruidos.
El filtro 250 puede aplicar filtrado de desbloqueo, desplazamiento adaptativo de muestra y/o ALF a la imagen reconstruida. En este punto, el desplazamiento adaptativo de muestra se puede aplicar en unidades de una muestra después de filtrado de desbloqueo. El ALF se puede aplicar después de filtrado de desbloqueo y/o aplicar el desplazamiento adaptativo de muestra.
La memoria 260 puede almacenar una imagen reconstruida (imagen decodificada) o información necesaria para decodificar. En este punto, la imagen reconstruida puede ser la imagen reconstruida filtrada por el filtro 250. Por ejemplo, la memoria 260 puede almacenar imágenes usadas para inter-predicción. En este punto, las imágenes usadas para la inter-predicción pueden designarse según un conjunto de imágenes de referencia o una lista de imágenes de referencia. Una imagen reconstruida se puede usar como imagen de referencia para otras imágenes. La memoria 260 puede emitir imágenes reconstruidas en un orden de salida.
Mientras tanto, como se describió anteriormente, al realizar la codificación de vídeo, se realiza predicción para mejorar la eficiencia de compresión. A través de esto, se puede generar un bloque previsto que incluye muestras de predicción para un bloque actual como un bloque a codificar (es decir, un bloque objetivo de codificación). En este punto, el bloque previsto incluye muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque previsto se obtiene de la misma manera en un aparato de codificación y en un aparato de decodificación, y el aparato de codificación puede señalizar información (información residual) en el residuo entre el bloque original y el bloque previsto, en lugar de un valor de muestra original de un bloque original, al aparato de decodificación, aumentando de esta manera la eficiencia de codificación de imágenes. El aparato de decodificación puede derivar un bloque residual que incluye muestras residuales basándose en la información residual, añadir el bloque residual y el bloque previsto para generar bloques reconstruidos que incluyen muestras reconstruidas y generar una imagen reconstruida que incluye los bloques reconstruidos.
La información residual puede generarse mediante un procedimiento de transformada y cuantificación. Por ejemplo, el aparato de codificación puede derivar un bloque residual entre el bloque original y el bloque previsto, realizar un procedimiento de transformada en muestras residuales (matriz de muestras residuales) incluidas en el bloque residual para derivar coeficientes de transformada, realizar un procedimiento de cuantificación en los coeficientes de transformada para derivar coeficientes de transformada cuantificados y enviar información residual relacionada con la señal al aparato de decodificación (a través de un flujo de bits).
En este punto, la información residual puede incluir información de valor de los coeficientes de transformada cuantificados, información de posición, una técnica de transformada, un núcleo de transformada, un parámetro de cuantificación y similares. El aparato de decodificación puede realizar un procedimiento de descuantificación/transformada inversa basándose en la información residual y derivar muestras residuales (o bloques residuales). El aparato de decodificación puede generar una imagen reconstruida basándose en el bloque previsto y el bloque residual. Además, como referencia para la inter-predicción de una imagen posterior, el aparato de codificación también puede descuantificar/transformar a la inversa los coeficientes de transformada cuantificados para derivar un bloque residual y generar una imagen reconstruida basándose en el mismo.
La Figura 3 ilustra a modo de ejemplo un sistema de envío por flujo continuo según la realización de ejemplo de la presente descripción.
Haciendo referencia a la Figura 3, las realizaciones de ejemplo ilustradas en la presente descripción pueden implementarse y realizarse mediante un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades funcionales ilustradas en cada dibujo pueden implementarse y realizarse mediante un ordenador, el procesador, el microprocesador, el controlador o el chip. En este caso, la información para la implementación (p. ej., información sobre instrucciones) o el algoritmo pueden almacenarse en un medio de almacenamiento digital.
Además, un aparato de decodificación y un aparato de codificación a los que se aplica la presente descripción pueden incluirse en un aparato transceptor de difusión multimedia, un terminal de comunicación móvil, un aparato de vídeo de cine en casa, un aparato de vídeo de cine digital, una cámara de vigilancia, un aparato de vídeo chat, un aparato de comunicación en tiempo real tal como una comunicación de vídeo, un aparato de envío por flujo continuo móvil, un medio de almacenamiento, una vídeocámara, un aparato de suministro de servicios de vídeo bajo demanda (VoD), un aparato de vídeo de transmisión libre (OTT), un aparato de suministro de servicios de envío por flujo continuo de Internet, un aparato de vídeo tridimensional (3D), un aparato de vídeo de teléfono con imágenes, un aparato de vídeo médico o similar, y se usan para procesar una señal de vídeo o una señal de datos. Por ejemplo, el aparato de vídeo OTT puede incluir una consola de juegos, un reproductor de Blu-ray, una TV con acceso a Internet, un sistema de cine en casa, un teléfono inteligente, un PC de tableta, una grabadora de vídeo digital (DVR) o similares.
Además, un método de procesamiento al que se aplica la presente descripción se puede producir en forma de programa ejecutado por un ordenador y almacenado en un medio de codificación legible por ordenador. Los datos multimedia que tienen una estructura de datos según la presente descripción también pueden almacenarse en el medio de grabación legible por ordenador. El medio de grabación legible por ordenador incluye todo tipo de aparatos de almacenamiento y dispositivos de almacenamiento de distribución en los que se almacenan datos legibles por ordenador. El medio de grabación legible por ordenador puede incluir, por ejemplo, un disco Blu-ray (BO), un bus serie universal (USB), una ROM, una PROM, una EPROM, una EEPROM, una RAM, un CD-ROM, una cinta magnética, un disquete y un aparato de almacenamiento de datos óptico. Además, el medio de grabación legible por ordenador incluye un medio implementado en forma de un soporte (p. ej., transmisión a través de Internet). Además, un flujo de bits generado por un método de codificación puede almacenarse en el medio de grabación legible por ordenador o transmitirse a través de redes de comunicación alámbricas/inalámbricas.
Además, la realización de ejemplo de la presente descripción se puede implementar mediante un producto de programa informático mediante un código de programa, y el código del programa se puede ejecutar mediante el ordenador según la realización de ejemplo de la presente descripción. El código del programa puede almacenarse en un soporte legible por ordenador.
Un sistema de envío por flujo continuo al que se aplica la presente descripción puede incluir en gran medida un servidor de codificación, un servidor de envío por flujo continuo, un servidor web, un almacenamiento de medios, un aparato de usuario y un aparato de entrada multimedia.
El servidor de codificación sirve para generar un flujo de bits comprimiendo la entrada de contenido desde los aparatos de entrada multimedia tales como un teléfono inteligente, una cámara y una vídeocámara en datos digitales y transmitir el flujo de bits al servidor de envío por flujo continuo. Como otro ejemplo, si los aparatos de entrada multimedia tales como el teléfono inteligente, la cámara y la vídeocámara generan directamente el flujo de bits, se puede omitir el servidor de codificación.
El flujo de bits puede generarse mediante el método de codificación o el método de generación de flujo de bits al que se aplica la presente descripción, y el servidor de envío por flujo continuo puede almacenar temporalmente el flujo de bits en un proceso de transmisión o recepción del flujo de bits.
El servidor de envío por flujo continuo actúa como un medio que transmite los datos multimedia al aparato del usuario basándose en una demanda del usuario a través del servidor web, y el servidor web sirve como un medio para informar al usuario sobre la existencia de dicho servicio. Cuando el usuario solicita el servicio deseado al servidor web, el servidor web transfiere el servicio deseado al servidor de envío por flujo continuo y el servidor de envío por flujo continuo transmite los datos multimedia al usuario. En este momento, el sistema de envío por flujo continuo de contenido puede incluir un servidor de control separado y, en este caso, el servidor de control sirve para controlar las instrucciones/respuestas entre los respectivos aparatos dentro del sistema de envío por flujo continuo de contenido.
El servidor de envío por flujo continuo puede recibir el contenido desde el almacenamiento de medios y/o el servidor de codificación. Por ejemplo, cuando se recibe el contenido del servidor de codificación, el servidor de envío por flujo continuo puede recibir el contenido en tiempo real. En este caso, para proporcionar un servicio de envío por flujo continuo fluido, el servidor de envío por flujo continuo puede almacenar el flujo de bits durante un tiempo predefinido.
Como ejemplo de aparato de usuario, puede haber un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de difusión digital, una asistencia digital personal (PDA), un reproductor multimedia portátil (PMP), un terminal de navegación, un PC de pizarra, una tableta, un ultra portátil, un dispositivo llevable (p. ej., un terminal tipo reloj (reloj inteligente), un terminal tipo gafas (gafas inteligentes) o una pantalla montada en la cabeza (HMD)), una TV digital, un ordenador de sobremesa, una señalización digital, y similares.
Los respectivos servidores dentro del sistema de envío de flujo continuo de contenido pueden operarse como el servidor de distribución y, en este caso, los datos recibidos por cada servidor pueden distribuirse y procesarse.
En lo sucesivo en la presente memoria, se describirá en detalle el método de inter-predicción descrito con referencia a las Figuras 1 y 2.
Se pueden usar diversos modos de inter-predicción para predecir un bloque actual dentro de una imagen. Por ejemplo, pueden usarse diversos modos tales como un modo de fusión, un modo de salto, un modo de predicción de vector de movimiento (MVP), un modo afín y un modo de predicción de vector de movimiento histórico (HMVP). Se pueden usar además como modos adicionales un modo de perfeccionamiento del vector de movimiento del lado del decodificador (DMVR), un modo de resolución de vector de movimiento adaptativo (AMVR) y similares. El modo afín también puede denominarse modo de predicción de movimiento afín. El modo de MVP también puede denominarse predicción avanzada de vector de movimiento (AMVP). En el presente documento, algunos modos y/o un candidato de información de movimiento derivado por algunos modos también pueden incluirse como uno de los candidatos relacionados con información de movimiento en otros modos.
La información de modo de predicción que indica el modo de inter-predicción del bloque actual puede señalizarse desde el aparato de codificación al aparato de decodificación. La información de modo de predicción puede incluirse en el flujo de bits y recibirse por el aparato de decodificación. La información de modo de predicción puede incluir información de índice que indica uno de una pluralidad de modos candidatos. Como alternativa, la información de modo de predicción también puede indicar el modo de inter-predicción a través de la señalización jerárquica de información de bandera. En este caso, la información de modo de predicción puede incluir una o más banderas. Por ejemplo, la información de modo de predicción puede indicar si se aplica el modo de salto mediante la señalización de una bandera de salto, indicar si se aplica el modo de fusión señalizando que no se aplica una bandera de fusión en el modo de salto, indicar que se aplica el modo de MVP o señalizar además la bandera para una identificación adicional si no se aplica el modo de fusión. El modo afín también puede señalizarse a un modo independiente, o también puede señalizarse a un modo dependiente del modo de fusión, el modo de MVP o similar. Por ejemplo, el modo afín puede incluir un modo de fusión afín y un modo de MVP afín.
La inter-predicción se puede realizar usando la información de movimiento del bloque actual. El aparato de codificación puede derivar información de movimiento óptima para el bloque actual a través de un procedimiento de estimación de movimiento. Por ejemplo, el aparato de codificación puede buscar un bloque de referencia similar que tiene una alta correlación dentro de un alcance de búsqueda predefinido dentro de una imagen de referencia en unidades de fracción de píxel usando un bloque original dentro de una imagen original para el bloque actual, derivando de esta manera información de movimiento. La similitud del bloque se puede derivar basándose en una diferencia entre los valores de muestra basados en fase. Por ejemplo, la similitud del bloque puede calcularse basándose en una suma de diferencia absoluta (SAD) entre el bloque actual (o una plantilla del bloque actual) y el bloque de referencia (o una plantilla del bloque de referencia). En este caso, la información de movimiento puede derivarse basándose en el bloque de referencia que tiene el SAD más pequeño dentro de la región de búsqueda. La información de movimiento derivada puede señalizarse al aparato de decodificación según diversos métodos basándose en el modo de inter-predicción.
La Figura 4 ilustra a modo de ejemplo un modelo de movimiento afín según la realización de ejemplo de la presente descripción.
Un sistema de codificación de vídeo general usa un vector de movimiento para expresar el movimiento de un bloque de codificación. Sin embargo, un método de este tipo puede representar un movimiento óptimo en una unidad de bloque, pero es posible que el movimiento óptimo de cada píxel no se represente realmente. Por lo tanto, para mejorar aún más la eficiencia de la codificación, se puede usar el modo afín o el modo de predicción de movimiento afín, que realiza una codificación usando el modelo de movimiento afín que puede determinar el vector de movimiento óptimo en una unidad de píxeles. En este punto, el modo afín también puede determinar el vector de movimiento óptimo en una unidad de subbloque del bloque actual para mejorar aún más la eficiencia de codificación. El modo de predicción de movimiento afín puede representar el vector de movimiento en cada unidad de píxel del bloque usando dos, tres o cuatro vectores de movimiento.
Haciendo referencia a la Figura 4, el modelo de movimiento afín puede incluir cuatro modelos de movimiento, pero este es un modelo de movimiento de ejemplo, de modo que el alcance de la presente descripción no está limitado a lo mismo. Los cuatro movimientos mencionados anteriormente pueden incluir traslación, escala, rotación y sesgado.
Las Figuras 5A y 5B ilustran a modo de ejemplo un modelo afín de 4 parámetros y un modelo afín de 6 parámetros según la realización de ejemplo de la presente descripción.
Haciendo referencia a las Figuras 5A y 5B, la predicción de movimiento afín puede definir un punto de control (CP) para usar el modelo de movimiento afín, y el vector de movimiento de la posición del píxel o el subbloque incluido en el bloque usando dos o más vectores de movimiento de punto de control (CPMV). En este punto, un grupo de vectores de movimiento de la posición de píxel o el subbloque incluido en el bloque puede denominarse campo de vector de movimiento afín (MVF afín).
Haciendo referencia a la Figura 5A, el modelo afín de 4 parámetros puede significar un modelo para determinar el vector de movimiento de la posición de píxel o el subbloque usando dos CPMV, y los vectores de movimiento de la posición de píxel o el subbloque o el campo de vector de movimiento afín pueden derivarse como se expresa en la Ecuación 1.
Ecuación 1
Haciendo referencia a la Figura 5B, el modelo afín de 6 parámetros puede significar un modelo para determinar el vector de movimiento de la posición de píxel o el subbloque usando tres vectores de movimiento de CPMV, y los vectores de movimiento de la posición de píxel o el subbloque o el campo de vector de movimiento afín pueden derivarse como se expresa en la Ecuación 2.
Ecuación 2
En las ecuaciones 1 y 2, el mv<0>x y el mv<0>y pueden hacer referencia a los CPMV de los CP en la posición de la esquina superior izquierda del bloque actual, el mv<1>x y el mv<1>y pueden hacer referencia a los CPMV de los CP de la posición de la esquina superior derecha del bloque actual, y el mv<2>x y el mv<2>y pueden hacer referencia a los CPMV de los CP de la posición de la esquina inferior izquierda del bloque actual. Además, W puede hacer referencia a la anchura del bloque actual y H puede hacer referencia a la altura del bloque actual. El mvX y el mvy pueden hacer referencia al vector de movimiento del píxel de una posición (x, y) o al subbloque que incluye la posición (x, y).
Es decir, la realización de ejemplo de la presente descripción puede proponer un método de predicción de movimiento afín.
Principalmente, en la codificación de vídeo, se realiza una estimación de movimiento (ME) y una compensación de movimiento (MC) basándose en un modelo de movimiento de traslación eficiente para representar un movimiento sencillo. Sin embargo, es posible que este modelo no sea eficiente para representar movimientos complicados dentro de un vídeo de la naturaleza, como el zoom, la rotación y otros movimientos irregulares. Por lo tanto, la predicción del movimiento afín se puede proponer basándose en el modelo de movimiento afín para superar la limitación del modelo de movimiento de traslación.
El campo de vector de movimiento afín (MVF) puede expresarse mediante dos vectores de movimiento, si se usa el modelo de movimiento afín de 4 parámetros. Haciendo referencia a la Figura 5A, el punto de la esquina superior izquierda y el punto de la esquina superior derecha pueden expresarse como un punto de control 0 (CP<0>) y un primer punto de control (CP<1>), y los dos vectores de movimiento correspondientes pueden expresarse como un vector de movimiento de punto de control 0 (CPMV<0>) y un vector de movimiento del primer punto de control (CPMV<1>). En la Figura 5A, el mv<0>puede hacer referencia al CPMV<0>, y el mv<1>puede hacer referencia al CPMV<1>.
La Figura 6 ilustra a modo de ejemplo un caso donde se determina el campo de vector de movimiento afín según la realización de ejemplo de la presente descripción en una unidad de subbloque.
En la compensación de movimiento afín, el MVF afín se puede determinar en un nivel de subbloque para reducir la complejidad de compensación de movimiento afín. Si se usa el modelo de movimiento afín de 4 parámetros, el vector de movimiento de una posición central de cada subbloque se puede calcular como se expresa en la Ecuación 1. Por ejemplo, la Figura 6 puede ser un ejemplo en el que el MVF afín se determina en el nivel de subbloque 4x4, pero el MVF afín también se puede determinar en el nivel de subbloque que tiene diferentes tamaños, y también se puede determinar en una unidad de muestra, de modo que el alcance de la presente descripción no se limita a lo mismo.
La Figura 7 ilustra a modo de ejemplo un diagrama de flujo del método de predicción de movimiento afín según la realización de ejemplo de la presente descripción.
Haciendo referencia a la Figura 7, el método de predicción de movimiento afín se puede representar en gran medida de la siguiente manera. Cuando se inicia el método de predicción de movimiento afín, en primer lugar, se puede adquirir un par de CPMV (S700). En este punto, el par de CPMV puede incluir el CPMV<0>y el CPMV<1>si se usa el modelo afín de 4 parámetros.
Posteriormente, la compensación de movimiento afín se puede realizar basándose en el par de CPMV (S710) y se puede terminar la predicción de movimiento afín.
Para determinar el CPMV<0>y el CPMV<1>, pueden existir dos modos de predicción afines. En este punto, dos modos de predicción afín pueden incluir un modo inter afín y un modo de fusión afín. El modo inter afín puede determinar claramente el CPMV<0>y el CPMV<1>señalizando información de diferencia de vector de movimiento (MVD) para dos CPMV<0>y el CPMV<1>. Por otra parte, el modo de fusión afín puede derivar el par de CPMV sin señalar la información de MVD.
Es decir, el modo de fusión afín puede derivar el CPMV del bloque actual usando el CPMV de un bloque vecino codificado en el modo afín, y si el vector de movimiento se determina en la unidad de subbloque, el modo de fusión afín también puede derivarse como un modo de fusión de subbloques.
En el modo de fusión afín, el aparato de codificación puede señalizar un índice para el bloque vecino codificado en el modo afín para derivar el CPMV del bloque actual al aparato de decodificación, y además señalizar el valor de diferencia entre el CPMV del bloque vecino y el CPMV del bloque actual también. En este punto, el modo de fusión afín puede configurar una lista de candidatos de fusión afín basándose en el bloque vecino, y el índice del bloque vecino puede representar el bloque vecino al que se hará referencia para derivar el CPMV del bloque actual en la lista de candidatos de fusión afín. La lista de candidatos de fusión afín también puede denominarse lista de candidatos de fusión de subbloques.
El modo inter afín también puede denominarse modo de MVP afín. El modo de MVP afín deriva el CPMV del bloque actual basándose en un predictor de vector de movimiento de punto de control (CPMVP) y una diferencia de vector de movimiento de punto de control (CPMVD). Es decir, el aparato de codificación determina el CPMV con respecto al CPMV del bloque actual, y deriva la CPMVD que es el valor de diferencia entre el CPMV y el CPMVP del bloque actual para señalizar información acerca del CPMVP e información acerca de la CPMVD al aparato de decodificación. En este punto, el modo de MVP afín puede configurar la lista de candidatos de MVP afín basándose en el bloque vecino, y la información acerca del CPMVP puede representar el bloque vecino al que se hará referencia para derivar el CPMVP para el CPMV del bloque actual en la lista de candidatos de MVP afín. La lista de candidatos de MVP afín también puede denominarse lista de candidatos de predictor de vector de movimiento de punto de control.
La Figura 8 ilustra a modo de ejemplo la ubicación de un bloque vecino para examinar un bloque afín vecino según la realización de ejemplo de la presente descripción.
La realización de ejemplo de la presente descripción puede proporcionar un candidato afín heredado para el modo de fusión afín. Es decir, el candidato afín heredado puede considerarse como el candidato del modo de fusión afín.
En este punto, un método para usar el candidato afín heredado puede ser un método para inducir la información de movimiento (vector de movimiento e índice de imagen de referencia) del bloque actual usando el modelo de movimiento afín del bloque afín vecino si el bloque vecino es el bloque codificado por la predicción afín (en lo sucesivo en la presente memoria, denominado bloque afín vecino) y codificar/decodificar el bloque codificado usando la información de movimiento inducido. Por lo tanto, el candidato afín heredado puede ser efectivo únicamente si existe el bloque afín vecino, y se puede generar un máximo predefinido de n candidatos de fusión afines heredados. En este punto, n puede ser 0 o un número natural.
Suponiendo que n es 1, si el número de bloques afines vecinos es 1, se puede generar un candidato de fusión afín. Si el número de bloques afines vecinos es dos o más, se puede seleccionar el bloque afín vecino para generar el candidato de fusión afín y, como el método de selección, se puede usar uno cualquiera de los siguientes métodos.
1) Puede usarse un bloque afín vecino confirmado en primer lugar examinando el bloque vecino según un orden predefinido para el modo de fusión afín. El bloque vecino puede incluir los bloques A, B, C, D, E, F, G ilustrados en la Figura 8 o algunos bloques entre ellos. En este punto, el orden de examen puede considerarse de manera diversa. 2) Puede usarse, para el modo de fusión afín, un bloque afín vecino que tiene el índice de referencia más pequeño entre los bloques afines vecinos o que tiene un fotograma de referencia más cercano al bloque actual. 3) Puede usarse un bloque determinado por una prioridad predefinida entre los bloques que tienen el bloque afín vecino que tiene el índice de referencia que aparece con más frecuencia. En este caso, el índice de referencia que aparece con más frecuencia puede significar el índice de referencia más común basándose en el número de índices de referencia de todos los bloques vecinos o índices de referencia de los bloques afines vecinos. 4) Puede usarse un bloque que tiene el tamaño de bloque más grande entre los bloques afines vecinos. En este punto, si existen dos o más bloques que tienen el tamaño de bloque más grande, los bloques pueden determinarse según un orden predefinido.
Los métodos mencionados anteriormente se han descrito suponiendo que n es 1, pero también se puede considerar ampliamente el caso donde n es dos o más. Como ejemplo, suponiendo que n es 2, cada método puede realizar una comprobación de poda y ser de la siguiente manera. Además, en cada método, también puede considerarse ampliamente el caso donde n supera 2.
1) Pueden usarse dos bloques afines vecinos confirmado en primer lugar examinando el bloque vecino según un orden predefinido para el modo de fusión afín. El bloque vecino puede incluir los bloques A, B, C, D, E, F, G ilustrados en la Figura 8 o algunos bloques entre ellos. 2) Puede usarse, para el modo de fusión afín, un bloque afín vecino que tiene el índice de referencia más pequeño entre los bloques afines vecinos o que tiene un fotograma de referencia más cercano al bloque actual. Si el número de bloques afines vecinos que tienen el índice de referencia más pequeño es tres o más, pueden usarse dos bloques afines vecinos determinados por una prioridad predefinida para el modo del fusionador afín. 3) Pueden usarse dos bloques determinados por una prioridad predefinida entre los bloques que tienen el bloque afín vecino que tiene el índice de referencia que aparece con más frecuencia. En este caso, el índice de referencia que aparece con más frecuencia puede significar el índice de referencia que aparece con más frecuencia basándose en el número de índices de referencia de todos los bloques vecinos o índices de referencia de los bloques afines vecinos. 4) Puede usarse un bloque que tiene el tamaño de bloque más grande entre los bloques afines vecinos. En este punto, si existen tres o más bloques que tienen el tamaño de bloque más grande, los bloques pueden determinarse según un orden predefinido.
La realización de ejemplo de la presente descripción puede proporcionar el candidato afín heredado para el modo inter afín. Es decir, el candidato afín heredado puede considerarse como el candidato del modo inter afín.
En este punto, un método para usar el candidato afín heredado puede ser un método para inducir el vector de movimiento del bloque actual usando el modelo de movimiento afín, y codificar/decodificar el bloque codificado usando el vector de movimiento inducido. Por lo tanto, el candidato afín heredado puede ser efectivo únicamente si existe el bloque afín vecino, y se puede generar un máximo predefinido de n candidatos afines heredados. En este punto, n puede ser 0 o un número natural.
Suponiendo que n es 1, si el número de bloques afines vecinos es 1, se puede generar un candidato afín heredado. En este punto, si la imagen de referencia del bloque actual y la imagen de referencia del bloque afín vecino son diferentes, el candidato de fusión afín se puede escalar y usarse basándose en la imagen de referencia del bloque actual. Esto puede denominarse candidato afín escalado. Si el número de bloques afines vecinos es dos o más, se puede seleccionar el bloque afín vecino para generar el candidato de fusión afín y, como el método de selección, se puede usar uno cualquiera de los siguientes métodos.
1) Puede usarse un bloque afín vecino confirmado en primer lugar examinando el bloque vecino según un orden predefinido para el modo de fusión afín. El bloque vecino puede incluir los bloques A, B, C, D, E, F, G ilustrados en la Figura 8 o algunos bloques entre ellos. Si las imágenes de referencia del bloque actual y del bloque afín vecino no son las mismas, puede usarse el candidato afín escalado. 2) Puede usarse como candidato afín un bloque afín vecino que tiene la misma imagen de referencia o índice que el bloque actual (codificado) entre los bloques afines vecinos. Si el número de bloques afines vecinos que tienen el mismo índice de referencia es dos o más, puede usarse el bloque afín vecino determinado por una prioridad predefinida como el candidato afín. Si no existe el bloque afín de referencia que tiene el mismo índice de referencia, puede usarse el candidato afín escalado del bloque afín vecino en un orden predefinido. Como alternativa, puede usarse el candidato afín escalado del bloque afín vecino que tiene la imagen de referencia cerca del bloque actual, pero no se puede considerar el candidato afín heredado.
Suponiendo que n es 2, si el número de bloques afines vecinos es 1, se puede generar un candidato de fusión afín. En este punto, si la imagen de referencia del bloque actual y la imagen de referencia del bloque afín vecino son diferentes, el candidato de fusión afín se puede escalar y usarse basándose en la imagen de referencia del bloque actual. Esto puede denominarse el candidato de fusión afín escalado. Si el número de bloques afines vecinos es dos o más, se puede seleccionar el bloque afín vecino para generar el candidato de fusión afín y, como el método de selección, se puede usar uno cualquiera de los siguientes métodos.
1) Pueden usarse dos bloques afines vecinos confirmado en primer lugar examinando el bloque vecino según un orden predefinido para el modo de fusión afín. El bloque vecino puede incluir los bloques A, B, C, D, E, F, G ilustrados en la Figura 8 o algunos bloques entre ellos. En este punto, si las imágenes de referencia del bloque actual y del bloque afín vecino no son las mismas, puede usarse el candidato de fusión afín escalado. 2) Puede usarse como candidato afín un bloque afín vecino que tiene la misma imagen de referencia o índice que el bloque actual (codificado) entre los bloques afines vecinos. Si los bloques afines vecinos que tienen el mismo índice de referencia es tres o más, puede usarse el bloque afín vecino determinado por una prioridad predefinida como el candidato afín. Si el bloque afín vecino que tiene el mismo índice de referencia es menor que dos, puede usarse el candidato afín escalado del bloque afín vecino en un orden predefinido. Como alternativa, puede usarse el candidato afín escalado del bloque afín vecino que tiene la imagen de referencia cerca del bloque actual. Como alternativa, puede usarse el candidato afín escalado del bloque afín vecino que tiene la imagen de referencia cerca de la imagen de referencia del bloque actual. Como alternativa, es posible que no se considere el candidato afín heredado.
La Figura 9 ilustra a modo de ejemplo un caso de uso de dos grupos para examinar el bloque afín vecino según la realización de ejemplo de la presente descripción.
La realización de ejemplo de la presente descripción puede proponer un método para considerar el candidato afín heredado como el candidato del modo inter afín usando un grupo. Se pueden configurar dos o tres grupos, a continuación, se describirá un caso de uso de dos grupos y más adelante se describirá un caso de uso de tres grupos con referencia a la Figura 10.
Haciendo referencia a la Figura 9, el bloque a examinar podrá dividirse en dos grupos, pudiendo determinarse un candidato en cada grupo. Una posición en la que se examina el bloque afín vecino pueden ser los bloques A, B, C, D, E, F, G ilustrados en la Figura 9 o algunos bloques entre ellos, y esto puede denominarse el bloque vecino. Dos grupos pueden incluir un grupo A y un grupo B. El grupo A puede incluir los bloques A, D, G entre los bloques vecinos o algunos bloques entre ellos y el grupo B puede incluir los bloques B, C, E, F entre los bloques vecinos o algunos bloques entre ellos.
El orden de examen del grupo puede ser el grupo A ^ el grupo B, pero no está limitado a lo mismo. El orden de examen del grupo A puede ser el bloque A ^ el grupo D ^ el grupo G, pero el examen también puede realizarse en diversos órdenes y, por lo tanto, no está limitado a lo mismo. El orden de examen del grupo B puede ser el bloque B ^ el grupo C ^ el grupo F ^ el grupo E, pero el examen también puede realizarse en diversos órdenes y, por lo tanto, no está limitado a lo mismo.
Como método detallado para determinar el candidato afín en el grupo A, puede usarse uno cualquiera del siguiente método, y también se puede aplicar igualmente al grupo B. 1) Un primer bloque afín vecino en el orden de examen del grupo A puede considerarse como el candidato heredado. En este punto, si la imagen de referencia del bloque actual y la imagen de referencia del bloque afín vecino son diferentes, se puede considerar el candidato heredado escalado.
2) Un bloque afín vecino que tiene la misma imagen de referencia que la imagen de referencia actual en el orden de examen del grupo A puede considerarse como candidato, y si el bloque afín vecino no existe, se puede considerar el candidato escalado. 3) Un bloque afín vecino que tiene la misma imagen de referencia que la imagen de referencia actual en el orden de examen del grupo A puede considerarse como candidato, y si el bloque afín vecino no existe, el bloque afín vecino no puede considerarse el candidato.
La Figura 10 ilustra a modo de ejemplo un caso de uso de tres grupos para examinar el bloque afín vecino según la realización de ejemplo de la presente descripción.
Haciendo referencia a la Figura 10, el bloque a examinar podrá dividirse en tres grupos, pudiendo determinarse un candidato en cada grupo. Una posición en la que se examina el bloque afín vecino pueden ser los bloques A, B, C, D, E, F, G ilustrados en la Figura 10 o algunos bloques entre ellos, y esto puede denominarse el bloque vecino. Tres grupos pueden incluir un grupo A, un grupo B y un grupo C. El grupo A puede incluir los bloques A, D entre los bloques vecinos o algunos bloques entre ellos, el grupo B puede incluir los bloques B, C entre los vecinos bloques o algunos bloques entre ellos, y el grupo C puede incluir los bloques E, F, G entre los bloques vecinos o algunos bloques entre ellos.
El orden de examen del grupo puede ser el grupo A ^ el grupo B ^ el grupo C, pero no está limitado a lo mismo. El orden de examen del grupo A puede ser el bloque A ^ el grupo D o el grupo D ^ el grupo A, el orden de examen del grupo B puede ser el bloque B ^ el grupo C o el grupo C ^ el grupo B, y el orden de examen del grupo C puede ser el bloque G ^ el grupo E ^ el grupo F, pero el examen también puede realizarse en diversos órdenes y, por lo tanto, no está limitado a lo mismo.
Como método detallado para determinar el candidato afín en el grupo A, puede usarse uno cualquiera del siguiente método, y también se puede aplicar igualmente al grupo B y al grupo C. 1) Un primer bloque afín vecino en el orden de examen del grupo A puede considerarse como el candidato heredado. En este punto, si la imagen de referencia del bloque actual y la imagen de referencia del bloque afín vecino son diferentes, se puede considerar el candidato heredado escalado. 2) Un bloque afín vecino que tiene la misma imagen de referencia que la imagen de referencia actual en el orden de examen del grupo A puede considerarse como candidato, y si el bloque afín vecino no existe, se puede considerar el candidato escalado. 3) Un bloque afín vecino que tiene la misma imagen de referencia que la imagen de referencia actual en el orden de examen del grupo A puede considerarse como candidato, y si el bloque afín vecino no existe, el bloque afín vecino no puede considerarse el candidato.
La Figura 11 ilustra esquemáticamente un método de codificación de vídeo mediante un aparato de codificación según la realización de ejemplo de la presente descripción.
Un método ilustrado en la Figura 11 puede realizarse mediante el aparato de codificación ilustrado en la Figura 1. Por ejemplo, S1100 a S1140 ilustradas en la Figura 11 pueden realizarse mediante el predictor del aparato de codificación, S1150 puede realizarse mediante el restador del aparato de codificación y S1160 puede realizarse mediante el codificador por entropía del aparato de codificación.
El aparato de codificación genera una lista de candidatos de información de movimiento de un bloque actual (S1100). En este caso, la lista de candidatos de información de movimiento puede incluir una lista de candidatos afines. Como alternativa, la lista de candidatos de información de movimiento puede incluir un candidato afín heredado. El candidato afín heredado puede derivarse basándose en bloques candidatos codificados mediante una predicción afín entre bloques vecinos espaciales del bloque actual.
El bloque candidato puede ser algunos bloques entre los bloques vecinos espaciales del bloque actual. Es decir, el bloque candidato puede incluirse en los bloques vecinos espaciales. El candidato afín heredado se puede generar hasta un número máximo predefinido. El candidato afín heredado puede ser un candidato según un modo de fusión afín, y también puede ser un candidato según un modo inter afín, y, por lo tanto, la lista de candidatos de información de movimiento puede incluir una lista de candidatos de fusión o una lista de candidatos de fusión afín o incluir una lista de candidatos de MVP o una lista de candidatos de MVP afín.
Por ejemplo, el candidato afín heredado puede ser un candidato según el modo de fusión afín. Si el número de bloques candidatos es igual al número máximo, el candidato afín heredado se puede derivar uno por uno para cada bloque candidato. Por ejemplo, si el número de bloques candidatos codificados por la predicción afín es 1, se puede derivar un candidato afín heredado basándose en lo anterior.
Sin embargo, si el número de bloques candidatos es mayor que el número máximo, el candidato afín heredado puede derivarse basándose en el bloque candidato codificado por la predicción afín confirmada preferentemente examinando los bloques vecinos espaciales según un orden de exploración predefinido. En este punto, el bloque de candidatos puede usarse en el número máximo, y el orden de exploración predefinido también puede denominarse orden predefinido u orden de examen.
Como alternativa, si el número de bloques candidatos es mayor que el número máximo, el candidato afín heredado puede derivarse basándose en un bloque candidato que tiene el índice de referencia más pequeño o un bloque candidato que tiene una imagen de referencia más cercana a una imagen actual. En este punto, se puede hacer referencia a la imagen actual como una imagen que incluye el bloque actual.
Como alternativa, si el número de bloques candidatos es mayor que el número máximo, el candidato afín heredado puede derivarse basándose en un bloque candidato que tiene el índice de referencia que aparece con más frecuencia entre los índices de referencia de los bloques vecinos espaciales o los índices de referencia de los bloques candidatos. Como alternativa, el candidato afín heredado puede derivarse basándose en un bloque candidato que tiene el tamaño de bloque más grande. Se ha realizado una descripción detallada de lo mismo con referencia a la Figura 8. En la Figura 8, el número máximo puede hacer referencia a n, y el caso donde n es 1 y el caso donde n es 2 se han descrito como ejemplo, pero el valor de n no está limitado a lo mismo y puede aumentarse.
Por ejemplo, el candidato afín heredado puede ser un candidato según el modo inter afín. Si el número de bloques candidatos es igual al número máximo, el candidato afín heredado se puede derivar uno por uno para cada bloque candidato. Por ejemplo, si el número de bloques candidatos codificados por la predicción afín es 1, se puede derivar un candidato afín heredado basándose en lo anterior.
En este punto, si la imagen de referencia del bloque actual y la imagen de referencia del bloque candidato son diferentes, el candidato afín heredado se puede derivar basándose en los vectores de movimiento de los bloques candidatos, y el vector de movimiento del bloque candidato se puede escalar basándose en la imagen de referencia del bloque actual. Como alternativa, el vector de movimiento del bloque candidato se puede escalar basándose en una distancia entre el bloque actual y la imagen de referencia del bloque actual y una distancia entre el bloque candidato y la imagen de referencia del bloque candidato.
Sin embargo, si el número de bloques candidatos es mayor que el número máximo, el candidato afín heredado puede derivarse basándose en que el bloque candidato tenga la misma imagen de referencia o el mismo índice de referencia que el del bloque actual. Como alternativa, si el número de bloques candidatos es mayor que el número máximo y no existe el bloque candidato que tiene la misma imagen de referencia o el mismo índice de referencia que el del bloque actual, el candidato afín heredado puede derivarse basándose en el vector de movimiento del bloque candidato en el orden de exploración predefinido, el vector de movimiento del bloque candidato que tiene la imagen de referencia más cercana a la imagen actual, o el vector de movimiento del bloque candidato que tiene la imagen de referencia más cercana a la imagen de referencia del bloque actual, y el vector de movimiento del bloque candidato se puede escalar basándose en la imagen de referencia del bloque actual. Como alternativa, el vector de movimiento del bloque candidato se puede escalar basándose en la distancia entre el bloque actual y la imagen de referencia del bloque actual y la distancia entre el bloque candidato y la imagen de referencia del bloque candidato. En este punto, se puede hacer referencia a la imagen actual como una imagen que incluye el bloque actual, y el orden de exploración predefinido también se puede denominar orden predefinido u orden de examen. Se ha realizado una descripción detallada de lo mismo con referencia a la Figura 8. En la Figura 8, el número máximo puede hacer referencia a n, y el caso donde n es 1 y el caso donde n es 2 se han descrito como ejemplo, pero el valor de n no está limitado a lo mismo y puede aumentarse.
Por ejemplo, si el candidato afín heredado es un candidato según el modo inter afín, los bloques vecinos espaciales del bloque actual pueden dividirse en grupos. Como alternativa, los bloques vecinos espaciales del bloque actual pueden dividirse en dos o más grupos. El candidato afín heredado puede derivarse basándose en el grupo. Como alternativa, el candidato afín heredado puede derivarse uno a uno para cada grupo. Como alternativa, el candidato afín heredado puede derivarse para cada grupo basándose en el bloque candidato dentro del grupo. Como alternativa, el candidato afín heredado puede seleccionar el bloque candidato uno a uno para cada grupo y derivarse basándose en el bloque candidato seleccionado.
Según la invención, los grupos incluyen un primer grupo y un segundo grupo. El primer grupo incluye un bloque vecino de la esquina inferior izquierda del bloque actual y un bloque vecino izquierdo adyacente a la parte superior del bloque vecino de la esquina inferior izquierda. Además, el primer grupo puede incluir además un bloque vecino izquierdo adyacente a la parte inferior de un bloque vecino de la esquina superior izquierda del bloque actual. El segundo grupo incluye el bloque vecino de la esquina superior izquierda, un bloque vecino de la esquina superior derecha del bloque actual y un bloque vecino superior adyacente a la izquierda del bloque vecino de la esquina superior derecha. Además, el segundo grupo puede incluir además un bloque vecino superior adyacente a la derecha del bloque vecino de la esquina superior izquierda. Se ha realizado una descripción detallada de lo mismo con referencia a la Figura 9. En la Figura 9, el grupo A puede hacer referencia al primer grupo y el grupo B puede hacer referencia al segundo grupo.
Por ejemplo, los grupos pueden incluir el primer grupo, el segundo grupo y un tercer grupo. El primer grupo puede incluir el bloque vecino de la esquina inferior izquierda del bloque actual y el bloque vecino izquierdo adyacente a la parte superior del bloque vecino de la esquina inferior izquierda, el segundo grupo puede incluir el bloque vecino de la esquina superior derecha del bloque actual y el bloque vecino superior adyacente a la izquierda del bloque vecino de la esquina superior derecha, y el tercer grupo puede incluir el bloque vecino de la esquina superior izquierda del bloque actual, el bloque vecino superior adyacente a la derecha del bloque vecino de la esquina superior izquierda, y el bloque vecino izquierdo adyacente a la parte inferior del bloque vecino de la esquina superior izquierda. Se ha realizado una descripción detallada de lo mismo con referencia a la Figura 10. En la Figura 10, el grupo A puede hacer referencia al primer grupo, el grupo B puede hacer referencia al segundo grupo y el grupo C puede hacer referencia al tercer grupo.
En este punto, el candidato afín heredado se deriva basándose en el bloque candidato codificado por la predicción afín y se confirma examinando los bloques dentro del grupo según el orden de exploración predefinido en cada grupo.
Como alternativa, si la imagen de referencia del bloque actual es diferente de la imagen de referencia del bloque candidato, el candidato afín heredado puede derivarse basándose en el vector de movimiento del bloque candidato, y el vector de movimiento del bloque candidato puede escalarse basándose en la imagen de referencia del bloque actual. Como alternativa, el vector de movimiento del bloque candidato se puede escalar basándose en la distancia entre el bloque actual y la imagen de referencia del bloque actual y la distancia entre el bloque candidato y la imagen de referencia del bloque candidato. Como alternativa, el candidato afín heredado puede derivarse basándose en que el bloque candidato tiene la imagen de referencia que es la misma que la imagen de referencia del bloque actual en cada grupo. Se ha realizado una descripción detallada de lo mismo con referencia a las Figuras 9 y 10. Si existen dos o tres grupos, el orden de examen entre los grupos y el orden de examen para cada grupo se han descrito con referencia a las Figuras 9 y 10, pero esto es por conveniencia para la explicación y el orden de examen aplicable a la presente descripción no está limitado a lo mismo. Además, el bloque candidato en la descripción mencionada anteriormente se puede usar de manera intercambiable con el bloque vecino.
El aparato de codificación selecciona uno de los candidatos incluidos en la lista de candidatos de información de movimiento (S1110). En este punto, se puede generar información de selección. La información de selección puede incluir información acerca de un candidato seleccionado de la lista de candidatos de información de movimiento, y también puede incluir información de índice acerca de un candidato seleccionado de la lista de candidatos de información de movimiento.
El aparato de codificación deriva vectores de movimiento de punto de control (CPMV) del bloque actual basándose en el candidato seleccionado (S1120). El vector de movimiento de punto de control puede hacer referencia a un vector de movimiento en el punto de control. Haciendo referencia a la Figura 8, los puntos de control pueden incluir un punto de control CP<0>ubicado en una posición de muestra superior izquierda del bloque actual y un punto de control CP<1>ubicado en una posición de muestra superior derecha del bloque actual, y puede incluir además un punto de control CP2 ubicado en una posición de muestra inferior izquierda del bloque actual. Se ha descrito una descripción detallada de lo mismo con referencia a las Figuras 5A y 5B.
El aparato de codificación deriva vectores de movimiento de unidad de subbloque o vectores de movimiento de unidad de muestra del bloque actual basándose en los CPMV (S1130). El aparato de codificación puede derivar un campo de vector de movimiento afín basándose en los CPMV. El campo de vector de movimiento afín puede derivar los vectores de movimiento de unidad de subbloque o los vectores de movimiento de unidad de muestra basándose en los componentes x e y de los CPMV. En este punto, la unidad del vector de movimiento de unidad de subbloque puede representar el vector de movimiento en el centro del subbloque. El campo del vector de movimiento afín puede derivarse mediante la Ecuación 1 o la Ecuación 2 según el número de CPMV, pero no está limitado a lo mismo.
El aparato de codificación deriva un bloque previsto basándose en los vectores de movimiento de unidad de subbloque o los vectores de movimiento de unidad de muestra (S1140). En este punto, el bloque previsto puede significar un bloque que tiene una alta correlación con el bloque actual.
El aparato de codificación genera un bloque residual para el bloque actual basándose en el bloque previsto (S1150). El bloque residual se puede derivar basándose en el bloque previsto y en el bloque actual. Como alternativa, el bloque residual puede derivarse basándose en una diferencia entre el bloque previsto y el bloque actual.
El aparato de codificación emite un flujo de bits codificando información de imagen que incluye información acerca del bloque residual (S1160). La información acerca del bloque residual puede incluir el bloque residual e información relacionada con el bloque residual. En este punto, la información de imagen puede incluir además información de selección, y el aparato de codificación puede señalizar la información de imagen incluyendo además la información de selección. Como alternativa, el aparato de codificación puede emitir el flujo de bits codificando la información de imagen, que incluye además la información de selección. El flujo de bits puede transmitirse al aparato de decodificación a través de una red o un medio de almacenamiento.
La Figura 12 ilustra esquemáticamente un método de decodificación de vídeo mediante un aparato de decodificación según la realización de ejemplo de la presente descripción.
Un método ilustrado en la Figura 12 puede realizarse mediante el aparato de decodificación ilustrado en la Figura 2. Por ejemplo, S1200 a S1240 ilustradas en la Figura 12 pueden realizarse por el predictor del aparato de decodificación, y S1250 puede realizarse por el reconstructor del aparato de decodificación.
El aparato de decodificación genera una lista de candidatos de información de movimiento del bloque actual (S1200). En este caso, la lista de candidatos de información de movimiento puede incluir una lista de candidatos afines. Como alternativa, la lista de candidatos de información de movimiento puede incluir un candidato afín heredado. El candidato afín heredado puede derivarse basándose en bloques candidatos codificados mediante una predicción afín entre bloques vecinos espaciales del bloque actual.
El bloque candidato puede ser algunos bloques entre los bloques vecinos espaciales del bloque actual. Es decir, el bloque candidato puede incluirse en los bloques vecinos espaciales. El candidato afín heredado se puede generar hasta un número máximo predefinido. El candidato afín heredado puede ser un candidato según un modo de fusión afín, y también puede ser un candidato según un modo inter afín, y, por lo tanto, la lista de candidatos de información de movimiento puede incluir una lista de candidatos de fusión o una lista de candidatos de fusión afín o incluir una lista de candidatos de MVP o una lista de candidatos de MVP afín.
Por ejemplo, el candidato afín heredado puede ser el candidato según el modo de fusión afín. Si el número de bloques candidatos es igual al número máximo, el candidato afín heredado se puede derivar uno por uno para cada bloque candidato. Por ejemplo, si el número de bloques candidatos codificados por la predicción afín es 1, se puede derivar un candidato afín heredado basándose en lo anterior.
Sin embargo, si el número de bloques candidatos es mayor que el número máximo, el candidato afín heredado puede derivarse basándose en los bloques candidatos codificados por la predicción afín confirmada preferentemente examinando los bloques vecinos espaciales según un orden de exploración predefinido. En este punto, puede usarse el número máximo de bloques candidatos, y el orden de exploración predefinido también puede denominarse orden predefinido u orden de examen.
Como alternativa, si el número de bloques candidatos es mayor que el número máximo, el candidato afín heredado puede derivarse basándose en un bloque candidato que tiene el índice de referencia más pequeño o un bloque candidato que tiene un bloque de referencia más cercano a la imagen actual. En este punto, la imagen actual puede hacer referencia a una imagen que incluye el bloque actual.
Como alternativa, si el número de bloques candidatos es mayor que el número máximo, el candidato afín heredado puede derivarse basándose en un bloque candidato que tiene el índice de referencia que aparece con más frecuencia entre los índices de referencia de los bloques vecinos espaciales o los índices de referencia de los bloques candidatos. Como alternativa, el candidato afín heredado puede derivarse basándose en un bloque candidato que tiene el tamaño de bloque más grande. Se ha realizado una descripción detallada de lo mismo con referencia a la Figura 8. En la Figura 8, el número máximo puede hacer referencia a n, y el caso donde n es 1 y el caso donde n es 2 se han descrito como ejemplo, pero el valor de n no está limitado a lo mismo y puede aumentarse.
Por ejemplo, el candidato afín heredado puede ser un candidato según el modo inter afín. Si el número de bloques candidatos es igual al número máximo, el candidato afín heredado se puede derivar uno por uno para cada bloque candidato. Por ejemplo, si el número de bloques candidatos codificados por la predicción afín es 1, se puede derivar un candidato afín heredado basándose en lo anterior.
En este punto, si la imagen de referencia del bloque actual y la imagen de referencia del bloque candidato son diferentes, el candidato afín heredado se puede derivar basándose en los vectores de movimiento de los bloques candidatos, y el vector de movimiento del bloque candidato se puede escalar basándose en la imagen de referencia del bloque actual. Como alternativa, el vector de movimiento del bloque candidato se puede escalar basándose en una distancia entre el bloque actual y la imagen de referencia del bloque actual y una distancia entre el bloque candidato y la imagen de referencia del bloque candidato.
Sin embargo, si el número de bloques candidatos es mayor que el número máximo, el candidato afín heredado puede derivarse basándose en que el bloque candidato tenga la misma imagen de referencia o el mismo índice de referencia que el del bloque actual. Como alternativa, si el número de bloques candidatos es mayor que el número máximo y no existe el bloque candidato que tiene la misma imagen de referencia o el mismo índice de referencia que el del bloque actual, el candidato afín heredado puede derivarse basándose en el vector de movimiento del bloque candidato en el orden de exploración predefinido, el vector de movimiento del bloque candidato que tiene la imagen de referencia más cercana a la imagen actual, o el vector de movimiento del bloque candidato que tiene la imagen de referencia más cercana a la imagen de referencia del bloque actual, y el vector de movimiento del bloque candidato se puede escalar basándose en la imagen de referencia del bloque actual. Como alternativa, el vector de movimiento del bloque candidato se puede escalar basándose en la distancia entre el bloque actual y la imagen de referencia del bloque actual y la distancia entre el bloque candidato y la imagen de referencia del bloque candidato. En este punto, la imagen actual puede hacer referencia a una imagen que incluye el bloque actual, y el orden de exploración predefinido también puede hacer referencia al orden predefinido o al orden de examen. Se ha realizado una descripción detallada de lo mismo con referencia a la Figura 8. En la Figura 8, el número máximo puede hacer referencia a n, y el caso donde n es 1 y el caso donde n es 2 se han descrito como ejemplo, pero el valor de n no está limitado a lo mismo y puede aumentarse.
Por ejemplo, si el candidato afín heredado es el candidato según el modo inter afín, los bloques vecinos espaciales del bloque actual pueden dividirse en grupos. Como alternativa, los bloques vecinos espaciales del bloque actual pueden dividirse en dos o más grupos. El candidato afín heredado puede derivarse basándose en el grupo. Como alternativa, el candidato afín heredado puede derivarse uno a uno para cada grupo. Como alternativa, el candidato afín heredado puede derivarse para cada grupo basándose en el bloque candidato dentro del grupo. Como alternativa, el candidato afín heredado puede seleccionar el bloque candidato uno a uno para cada grupo y derivarse basándose en el bloque candidato seleccionado.
Según la invención, los grupos incluyen un primer grupo y un segundo grupo. El primer grupo incluye un bloque vecino de la esquina inferior izquierda del bloque actual y un bloque vecino izquierdo adyacente a la parte superior del bloque vecino de la esquina inferior izquierda. Además, el primer grupo puede incluir además un bloque vecino izquierdo adyacente a la parte inferior de un bloque vecino de la esquina superior izquierda del bloque actual. El segundo grupo incluye el bloque vecino de la esquina superior izquierda, un bloque vecino de la esquina superior derecha del bloque actual y un bloque vecino superior adyacente a la izquierda del bloque vecino de la esquina superior derecha. Además, el segundo grupo puede incluir además un bloque vecino superior adyacente a la derecha del bloque vecino de la esquina superior izquierda. Se ha realizado una descripción detallada de lo mismo con referencia a la Figura 9. En la Figura 9, el grupo A puede hacer referencia al primer grupo y el grupo B puede hacer referencia al segundo grupo.
Por ejemplo, los grupos pueden incluir el primer grupo, el segundo grupo y un tercer grupo. El primer grupo puede incluir el bloque vecino de la esquina inferior izquierda del bloque actual y el bloque vecino izquierdo adyacente a la parte superior del bloque vecino de la esquina inferior izquierda, el segundo grupo puede incluir el bloque vecino de la esquina superior derecha del bloque actual y el bloque vecino superior adyacente a la izquierda del bloque vecino de la esquina superior derecha, y el tercer grupo puede incluir el bloque vecino de la esquina superior izquierda del bloque actual, el bloque vecino superior adyacente a la derecha del bloque vecino de la esquina superior izquierda, y el bloque vecino izquierdo adyacente a la parte inferior del bloque vecino de la esquina superior izquierda. Se ha realizado una descripción detallada de lo mismo con referencia a la Figura 10. En la Figura 10, el grupo A puede hacer referencia al primer grupo, el grupo B puede hacer referencia al segundo grupo y el grupo C puede hacer referencia al tercer grupo.
En este punto, el candidato afín heredado se deriva basándose en el bloque candidato codificado por la predicción afín y se confirma examinando los bloques dentro del grupo según el orden de exploración predefinido en cada grupo. Como alternativa, si la imagen de referencia del bloque actual es diferente de la imagen de referencia del bloque candidato, el candidato afín heredado puede derivarse basándose en el vector de movimiento del bloque candidato, y el vector de movimiento del bloque candidato puede escalarse basándose en la imagen de referencia del bloque actual. Como alternativa, el vector de movimiento del bloque candidato se puede escalar basándose en la distancia entre el bloque actual y la imagen de referencia del bloque actual y la distancia entre el bloque candidato y la imagen de referencia del bloque candidato. Como alternativa, el candidato afín heredado puede derivarse basándose en que el bloque candidato tiene la imagen de referencia que es la misma que la imagen de referencia del bloque actual en cada grupo. Se ha realizado una descripción detallada de lo mismo con referencia a las Figuras 9 y 10. Si existen dos o tres grupos, el orden de examen entre los grupos y el orden de examen para cada grupo se han descrito con referencia a las Figuras 9 y 10, pero esto es por conveniencia para la explicación y el orden de examen aplicable a la presente descripción no está limitado a lo mismo. Además, el bloque candidato en la descripción mencionada anteriormente se puede usar de manera intercambiable con el bloque vecino.
El aparato de decodificación selecciona uno de los candidatos incluidos en la lista de candidatos de información de movimiento (S1210). En este punto, puede usarse información de selección. La información de selección puede incluir información acerca de un candidato seleccionado de la lista de candidatos de información de movimiento, y también puede incluir información de índice acerca de un candidato seleccionado de la lista de candidatos de información de movimiento. La información de selección puede incluirse en información de imagen, y la información de imagen que incluye la información de selección puede señalizarse al aparato de decodificación. El aparato de decodificación puede adquirir la información de selección analizando un flujo de bits para la información de imagen. El flujo de bits puede transmitirse desde el aparato de codificación a través de una red o un medio de almacenamiento.
El aparato de codificación deriva vectores de movimiento de punto de control (CPMV) del bloque actual basándose en el candidato seleccionado (S1220). El vector de movimiento del punto de control puede denominarse vector de movimiento en un punto de control. Haciendo referencia a la Figura 8, los puntos de control pueden incluir un punto de control (CP<0>ubicado en una posición de muestra superior izquierda del bloque actual y un punto de control (CP<1>) ubicado en una posición de muestra superior derecha del bloque actual, y puede incluir además un punto de control (CP<2>) ubicado en una posición de muestra inferior izquierda del bloque actual. Se ha realizado una descripción detallada de lo mismo con referencia a las Figuras 5A y 5B.
El aparato de decodificación deriva vectores de movimiento de unidad de subbloque o vectores de movimiento de unidad de muestra del bloque actual basándose en los CPMV (S1230). El aparato de decodificación puede derivar un campo de vector de movimiento afín basado en los CPMV. El campo de vector de movimiento afín puede derivar los vectores de movimiento de unidad de subbloque o los vectores de movimiento de unidad de muestra basándose en los componentes x e y de los CPMV. En este punto, el vector de movimiento de unidad de subbloque puede representar el vector de movimiento en el centro del subbloque. El campo del vector de movimiento afín puede derivarse mediante la Ecuación 1 o la Ecuación 2 según el número de CPMV, pero no está limitado a lo mismo.
El aparato de decodificación deriva un bloque previsto basándose en los vectores de movimiento de unidad de subbloque o los vectores de movimiento de unidad de muestra (S1240). En este punto, el bloque previsto puede significar un bloque que tiene una alta correlación con el bloque actual.
El aparato de decodificación reconstruye la imagen actual basándose en el bloque previsto (S1250). En este punto, puede usarse información acerca de un bloque residual. La información acerca del bloque residual puede incluir el bloque residual y la información acerca del bloque residual. El bloque residual puede ser un bloque derivado basándose en el bloque previsto y en el bloque actual. Como alternativa, el bloque residual puede ser un bloque derivado basándose en una diferencia entre el bloque previsto y el bloque actual. El aparato de decodificación puede reconstruir la imagen actual basándose en el bloque previsto y la información acerca del bloque residual. La información acerca del bloque residual puede incluirse en la información de imagen, y la información de imagen que incluye la información acerca del bloque residual puede señalizarse al aparato de decodificación. El aparato de decodificación puede adquirir la información acerca del bloque residual analizando el flujo de bits para la información de imagen. El flujo de bits puede transmitirse desde el aparato de codificación a través de una red o un medio de almacenamiento.
En las realizaciones de ejemplo mencionadas anteriormente, los métodos se explican basándose en diagramas de flujo por medio de una serie de etapas o bloques, pero la presente descripción no está limitada al orden de las etapas, y una cierta etapa puede ocurrir en orden o etapa diferente a los descritos anteriormente o al mismo tiempo que otra etapa. Además, un experto en la técnica puede entender que las etapas mostradas en un diagrama de flujo no son exclusivas, y que se puede incorporar otra etapa o se pueden eliminar una o más etapas del diagrama de flujo sin afectar el alcance de la presente descripción.
Los métodos mencionados anteriormente según la presente descripción se pueden implementar como una forma de software, y el aparato de codificación y/o decodificación según la presente descripción se puede incluir en un aparato para procesamiento de imágenes, tal como, una TV, un ordenador, un teléfono inteligente, un decodificador de salón, un dispositivo de visualización o similar.
Cuando las realizaciones de ejemplo en la presente descripción se realizan en software, los métodos mencionados anteriormente pueden realizarse como módulos (procesos, funciones o similares) para realizar las funciones mencionadas anteriormente. Los módulos pueden almacenarse en una memoria y pueden ejecutarse por un procesador. La memoria puede estar dentro o fuera del procesador y puede estar conectada al procesador a través de diversos medios bien conocidos. El procesador puede incluir un circuito integrado específico de la aplicación (ASIC), otro conjunto de chips, un circuito lógico y/o un dispositivo de procesamiento de datos. La memoria puede incluir una memoria de sólo lectura (ROM), una memoria de acceso aleatorio (RAM), una memoria flash, una tarjeta de memoria, un medio de almacenamiento y/u otro dispositivo de almacenamiento.
Claims (6)
1. Un método de decodificación de vídeo realizado por un aparato de decodificación, comprendiendo el método:
recibir un flujo de bits que incluye información de vídeo;
generar (S1200) una lista de candidatos de predictor de vector de movimiento afín (MVP) que incluye candidatos de MVP afines para un bloque actual;
seleccionar (S1210) uno de los candidatos de MVP afines comprendidos en la lista de candidatos de MVP afines usando información de índice de candidato de MVP afín, en donde la información de índice de candidato de MVP afín está incluida en la información de vídeo;
derivar predictores de vector de movimiento de punto de control (CPMVP) para los respectivos puntos de control (CP) del bloque actual basándose en el candidato de MVP afín seleccionado;
derivar diferencias de vector de movimiento de punto de control (CPMVD) para los respectivos CP del bloque actual basándose en información de diferencia de vector de movimiento (MVD) para los respectivos CP del bloque actual, en donde la información de MVD para los respectivos CP del bloque actual está incluida en la información de vídeo; derivar (S1220) vectores de movimiento de punto de control (CPMV) para los respectivos CP del bloque actual basándose en los CPMVP y las CPMVD;
derivar (S1230) vectores de movimiento de unidad de subbloque del bloque actual basándose en los CPMV para los respectivos CP del bloque actual;
derivar (S1240) un bloque previsto basándose en los vectores de movimiento de unidad de subbloque; y reconstruir (S1250) una imagen actual basándose en el bloque previsto,
en donde los candidatos de MVP afines comprenden candidatos afines heredados,
en donde los candidatos afines heredados se derivan basándose en bloques candidatos codificados mediante una predicción afín entre bloques vecinos espaciales del bloque actual,
en donde los candidatos afines heredados comprenden un primer candidato afín heredado y un segundo candidato afín heredado,
en donde el primer candidato afín heredado se deriva basándose en un primer bloque candidato seleccionado de un primer grupo de bloques que consiste en un bloque vecino de la esquina inferior izquierda y un bloque vecino izquierdo adyacente a la parte superior del bloque vecino de la esquina inferior izquierda del bloque actual, en donde el primer bloque candidato se determina basándose en un primer orden de exploración predefinido en el primer grupo de bloques, y tiene la misma imagen de referencia que una imagen de referencia del bloque actual, en donde el segundo candidato afín heredado se deriva basándose en un segundo bloque candidato seleccionado de un segundo grupo de bloques que consiste en un bloque vecino de la esquina superior izquierda, un bloque vecino de la esquina superior derecha y un bloque vecino superior adyacente a la izquierda del bloque vecino de la esquina superior derecha del bloque actual, y
en donde el segundo bloque candidato se determina basándose en un segundo orden de exploración predefinido en el segundo grupo de bloques, y tiene la misma imagen de referencia que la imagen de referencia del bloque actual.
2. El método de decodificación de vídeo de la reivindicación 1, en donde el primer orden de exploración predefinido para derivar el primer candidato afín heredado es desde el bloque vecino de la esquina inferior izquierda hasta el bloque vecino izquierdo adyacente a la parte superior del bloque vecino de la esquina inferior izquierda del bloque actual.
3. El método de decodificación de vídeo de la reivindicación 1, en donde el segundo orden de exploración predefinido para derivar el segundo candidato afín heredado es desde el bloque vecino de la esquina superior derecha hasta el bloque vecino superior adyacente a la izquierda del bloque vecino de la esquina superior derecha del bloque actual.
4. El método de decodificación de vídeo de la reivindicación 1, en donde los candidatos afines heredados incluyen un tercer candidato afín heredado, y
en donde el tercer candidato afín heredado se deriva basándose en un tercer bloque candidato seleccionado de un tercer grupo de bloques que consiste en un bloque vecino de la esquina superior izquierda del bloque actual, un bloque vecino superior adyacente a la derecha del bloque vecino de la esquina superior izquierda y un bloque vecino izquierdo adyacente a la parte inferior del bloque vecino de la esquina superior izquierda.
5. Un método de codificación de vídeo realizado por un aparato de codificación, comprendiendo el método:
generar (S1100) una lista de candidatos de predictor de vector de movimiento afín (MVP) que incluye candidatos de MVP afines para un bloque actual;
seleccionar (S1110) uno de los candidatos de MVP afines comprendidos en la lista de candidatos de MVP afín; generar información de índice de candidato de MVP afín para el candidato de MVP afín seleccionado; derivar predictores de vector de movimiento de punto de control (CPMVP) para los respectivos puntos de control (CP) del bloque actual basándose en el candidato de MVP afín seleccionado;
derivar (S1120) vectores de movimiento de punto de control (CPMV) para los respectivos CP del bloque actual; derivar diferencias de vector de movimiento de punto de control (CPMVD) para los respectivos CP del bloque actual basándose en los CPMVP y los CPMV para los respectivos CP;
derivar (S1130) vectores de movimiento de unidad de subbloque del bloque actual basándose en los CPMV para los respectivos CP del bloque actual;
derivar (S1140) un bloque previsto basándose en los vectores de movimiento de unidad de subbloque; generar (S1150) un bloque residual para el bloque actual basándose en el bloque previsto; y
emitir (S1160) un flujo de bits codificando información de vídeo que comprende la información de índice de candidato de MVP afín, la información sobre las CPMVD y la información sobre el bloque residual,
en donde los candidatos de MVP afines comprenden candidatos afines heredados,
en donde los candidatos afines heredados se derivan basándose en bloques candidatos codificados mediante una predicción afín entre bloques vecinos espaciales del bloque actual,
en donde los candidatos afines heredados comprenden un primer candidato afín heredado y un segundo candidato afín heredado,
en donde el primer candidato afín heredado se deriva basándose en un primer bloque candidato seleccionado de un primer grupo de bloques que consiste en un bloque vecino de la esquina inferior izquierda y un bloque vecino izquierdo adyacente a la parte superior del bloque vecino de la esquina inferior izquierda del bloque actual, en donde el primer bloque candidato se determina basándose en un primer orden de exploración predefinido en el primer grupo de bloques, y tiene la misma imagen de referencia que una imagen de referencia del bloque actual, en donde el segundo candidato afín heredado se deriva basándose en un segundo bloque candidato seleccionado de un segundo grupo de bloques que consiste en un bloque vecino de la esquina superior izquierda, un bloque vecino de la esquina superior derecha y un bloque vecino superior adyacente a la izquierda del bloque vecino de la esquina superior derecha del bloque actual, y
en donde el segundo bloque candidato se determina basándose en un segundo orden de exploración predefinido en el segundo grupo de bloques, y tiene la misma imagen de referencia que la imagen de referencia del bloque actual.
6. Un método de transmisión de datos para un vídeo, comprendiendo el método:
obtener un flujo de bits para el vídeo, en donde el flujo de bits se genera basándose en la generación de una lista de candidatos de predictor de vector de movimiento (MVP) afín que incluye candidatos de MVP afines para un bloque actual, seleccionar uno de los candidatos de MVP afines comprendidos en la lista de candidatos de MVP afín, generar información de índice de candidato de MVP afín para el candidato de MVP afín seleccionado, derivar predictores de vector de movimiento de punto de control (CPMVP) para los respectivos puntos de control (CP) del bloque actual basándose en el candidato de MVP afín seleccionado, derivar vectores de movimiento de punto de control (CPMV) para los respectivos CP del bloque actual, derivar diferencias de vector de movimiento de punto de control (CPMVD) para los respectivos CP del bloque actual basándose en los CPMVP y los CPMV para los respectivos CP, derivar vectores de movimiento de unidad de subbloque del bloque actual basándose en los CPMV para los CP respectivos del bloque actual, derivar un bloque previsto basándose en los vectores de movimiento de unidad de subbloque, generar un bloque residual para el bloque actual basándose en el bloque previsto y codificar información de vídeo que comprende la información de índice de candidato de MVP afín, información sobre las CPMVD e información sobre el bloque residual; y
transmitir los datos que comprenden el flujo de bits,
en donde los candidatos de MVP afines comprenden candidatos afines heredados,
en donde los candidatos afines heredados se derivan basándose en bloques candidatos codificados mediante una predicción afín entre bloques vecinos espaciales del bloque actual,
en donde los candidatos afines heredados comprenden un primer candidato afín heredado y un segundo candidato afín heredado,
en donde el primer candidato afín heredado se deriva basándose en un primer bloque candidato seleccionado de un primer grupo de bloques que consiste en un bloque vecino de la esquina inferior izquierda y un bloque vecino izquierdo adyacente a la parte superior del bloque vecino de la esquina inferior izquierda del bloque actual, en donde el primer bloque candidato se determina basándose en un primer orden de exploración predefinido en el primer grupo de bloques, y tiene la misma imagen de referencia que una imagen de referencia del bloque actual, en donde el segundo candidato afín heredado se deriva basándose en un segundo bloque candidato seleccionado de un segundo grupo de bloques que consiste en un bloque vecino de la esquina superior izquierda, un bloque vecino de la esquina superior derecha y un bloque vecino superior adyacente a la izquierda del bloque vecino de la esquina superior derecha del bloque actual, y en donde el segundo bloque candidato se determina basándose en un segundo orden de exploración predefinido en el segundo grupo de bloques, y tiene la misma imagen de referencia que la imagen de referencia del bloque actual.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862662175P | 2018-04-24 | 2018-04-24 | |
| PCT/KR2019/004957 WO2019209026A1 (ko) | 2018-04-24 | 2019-04-24 | 비디오 코딩 시스템에서 인터 예측 방법 및 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2960029T3 true ES2960029T3 (es) | 2024-02-29 |
Family
ID=68295506
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19793735T Active ES2960029T3 (es) | 2018-04-24 | 2019-04-24 | Método y aparato para inter predicción en un sistema de codificación de vídeo |
Country Status (11)
| Country | Link |
|---|---|
| US (3) | US11109058B2 (es) |
| EP (2) | EP4246979B1 (es) |
| KR (3) | KR102698371B1 (es) |
| CN (4) | CN116708819A (es) |
| ES (1) | ES2960029T3 (es) |
| FI (1) | FI3780617T3 (es) |
| HR (1) | HRP20231300T1 (es) |
| HU (1) | HUE063886T2 (es) |
| PL (1) | PL3780617T3 (es) |
| SI (1) | SI3780617T1 (es) |
| WO (1) | WO2019209026A1 (es) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019144908A1 (en) * | 2018-01-26 | 2019-08-01 | Mediatek Inc. | Method and apparatus of affine inter prediction for video coding system |
| KR102852767B1 (ko) * | 2018-06-12 | 2025-09-01 | 한국전자통신연구원 | 문맥 적응적 이진 산술 부호화 방법 및 장치 |
| CN111953997B (zh) * | 2019-05-15 | 2024-08-09 | 华为技术有限公司 | 候选运动矢量列表获取方法、装置及编解码器 |
| US12556706B2 (en) * | 2023-11-01 | 2026-02-17 | Tencent America LLC | Systems and methods for adaptive motion vector prediction list construction |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101345303B1 (ko) * | 2007-03-29 | 2013-12-27 | 삼성전자주식회사 | 스테레오 또는 다시점 영상의 입체감 조정 방법 및 장치 |
| KR101318869B1 (ko) * | 2009-08-28 | 2013-10-16 | 에스케이텔레콤 주식회사 | 동영상 부호화를 위한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
| PL4322530T3 (pl) * | 2010-09-02 | 2025-06-02 | Lg Electronics Inc. | Urządzenie do predykcji międzyramkowej |
| KR101762294B1 (ko) * | 2011-10-18 | 2017-07-28 | 주식회사 케이티 | 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기 |
| CN107071467B (zh) * | 2011-11-02 | 2020-03-27 | 太格文-Ii有限责任公司 | 动态图像编码方法和动态图像编码装置 |
| ES2728146T3 (es) * | 2012-01-20 | 2019-10-22 | Sun Patent Trust | Procedimientos y aparato de codificación y decodificación de vídeo utilizando predicción temporal de vector de movimiento |
| WO2016008157A1 (en) * | 2014-07-18 | 2016-01-21 | Mediatek Singapore Pte. Ltd. | Methods for motion compensation using high order motion model |
| BR112017010468B1 (pt) * | 2014-11-18 | 2024-01-02 | Hfi Innovation Inc | Método de decodificação de vídeo para blocos codificados no modo de interpredição e método de codificação de vídeo para blocos codificados no modo de interpredição |
| CN109005407B (zh) * | 2015-05-15 | 2023-09-01 | 华为技术有限公司 | 视频图像编码和解码的方法、编码设备和解码设备 |
| CN107925758B (zh) * | 2015-08-04 | 2022-01-25 | Lg 电子株式会社 | 视频编译系统中的帧间预测方法和设备 |
| US20190158870A1 (en) * | 2016-01-07 | 2019-05-23 | Mediatek Inc. | Method and apparatus for affine merge mode prediction for video coding system |
| WO2017147765A1 (en) * | 2016-03-01 | 2017-09-08 | Mediatek Inc. | Methods for affine motion compensation |
| EP3414900B1 (en) * | 2016-03-15 | 2025-08-06 | HFI Innovation Inc. | Method and apparatus of video coding with affine motion compensation |
| US11095898B2 (en) * | 2016-03-28 | 2021-08-17 | Lg Electronics Inc. | Inter-prediction mode based image processing method, and apparatus therefor |
| US10560712B2 (en) * | 2016-05-16 | 2020-02-11 | Qualcomm Incorporated | Affine motion prediction for video coding |
| EP3301918A1 (en) * | 2016-10-03 | 2018-04-04 | Thomson Licensing | Method and apparatus for encoding and decoding motion information |
| US10448010B2 (en) * | 2016-10-05 | 2019-10-15 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
| US20190273943A1 (en) * | 2016-10-10 | 2019-09-05 | Sharp Kabushiki Kaisha | Systems and methods for performing motion compensation for coding of video data |
| US10701390B2 (en) * | 2017-03-14 | 2020-06-30 | Qualcomm Incorporated | Affine motion information derivation |
-
2019
- 2019-04-24 EP EP23185244.3A patent/EP4246979B1/en active Active
- 2019-04-24 SI SI201930642T patent/SI3780617T1/sl unknown
- 2019-04-24 KR KR1020237022779A patent/KR102698371B1/ko active Active
- 2019-04-24 EP EP19793735.2A patent/EP3780617B1/en active Active
- 2019-04-24 CN CN202310815502.9A patent/CN116708819A/zh active Pending
- 2019-04-24 FI FIEP19793735.2T patent/FI3780617T3/fi active
- 2019-04-24 KR KR1020247027604A patent/KR20240132377A/ko active Pending
- 2019-04-24 ES ES19793735T patent/ES2960029T3/es active Active
- 2019-04-24 WO PCT/KR2019/004957 patent/WO2019209026A1/ko not_active Ceased
- 2019-04-24 HU HUE19793735A patent/HUE063886T2/hu unknown
- 2019-04-24 HR HRP20231300TT patent/HRP20231300T1/hr unknown
- 2019-04-24 PL PL19793735.2T patent/PL3780617T3/pl unknown
- 2019-04-24 KR KR1020207028498A patent/KR102553665B1/ko active Active
- 2019-04-24 CN CN202310814200.XA patent/CN116708817A/zh active Pending
- 2019-04-24 CN CN201980036473.8A patent/CN112204980B/zh active Active
- 2019-04-24 CN CN202310814349.8A patent/CN116708818A/zh active Pending
-
2020
- 2020-10-20 US US17/075,494 patent/US11109058B2/en active Active
-
2021
- 2021-07-16 US US17/378,593 patent/US11622125B2/en active Active
-
2023
- 2023-02-27 US US18/114,791 patent/US11943470B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| HUE063886T2 (hu) | 2024-02-28 |
| US20210344949A1 (en) | 2021-11-04 |
| KR20240132377A (ko) | 2024-09-03 |
| CN116708818A (zh) | 2023-09-05 |
| FI3780617T3 (fi) | 2023-10-16 |
| SI3780617T1 (sl) | 2023-11-30 |
| EP3780617B1 (en) | 2023-09-13 |
| KR102698371B1 (ko) | 2024-08-23 |
| US20210037257A1 (en) | 2021-02-04 |
| US11943470B2 (en) | 2024-03-26 |
| CN116708819A (zh) | 2023-09-05 |
| US11622125B2 (en) | 2023-04-04 |
| KR102553665B1 (ko) | 2023-07-10 |
| EP4246979A3 (en) | 2023-11-01 |
| HRP20231300T1 (hr) | 2024-02-02 |
| EP3780617A4 (en) | 2021-02-17 |
| EP4246979A2 (en) | 2023-09-20 |
| WO2019209026A1 (ko) | 2019-10-31 |
| CN112204980A (zh) | 2021-01-08 |
| EP4246979B1 (en) | 2025-10-15 |
| CN112204980B (zh) | 2023-07-21 |
| US11109058B2 (en) | 2021-08-31 |
| US20230224490A1 (en) | 2023-07-13 |
| EP3780617A1 (en) | 2021-02-17 |
| PL3780617T3 (pl) | 2024-02-05 |
| KR20230109772A (ko) | 2023-07-20 |
| CN116708817A (zh) | 2023-09-05 |
| KR20200122395A (ko) | 2020-10-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3059980T3 (en) | Device and method for coding video on basis of filtering | |
| ES2994118T3 (en) | Apparatus and method for coding image | |
| ES3010265T3 (en) | Inter-prediction method and device based on dmvr and bdof | |
| ES2926196T3 (es) | Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines | |
| ES3057716T3 (en) | Syntax design method and apparatus for performing coding by using syntax | |
| BR122021010330B1 (pt) | Método de codificação de imagem com base em transformada secundária não separável e dispositivo para o mesmo | |
| ES3040713T3 (en) | Signaling method and device for merge data syntax in video/image coding system | |
| ES2988060T3 (es) | Método y dispositivo para eliminar la sintaxis redundante de la sintaxis de datos de fusión | |
| ES3063233T3 (en) | Image decoding method and image encoding method for deriving weight index information for generation of prediction sample | |
| US11943470B2 (en) | Method and apparatus for inter prediction in video coding system | |
| ES2987305T3 (es) | Procedimiento y dispositivo para señalización sintáctica en sistema de codificación de vídeo/imagen | |
| KR20220003116A (ko) | 머지 후보를 이용하여 예측 샘플을 도출하는 영상 디코딩 방법 및 그 장치 | |
| CN111418212A (zh) | 基于图像编码系统中的仿射运动预测的图像解码方法和设备 | |
| KR20210158402A (ko) | 현재 블록에 대하여 최종적으로 예측 모드를 선택하지 못하는 경우 인터 예측을 수행하는 영상 디코딩 방법 및 그 장치 | |
| KR20210153739A (ko) | 디폴트 머지 모드에 기반하여 예측 샘플을 도출하는 영상 디코딩 방법 및 그 장치 | |
| KR20220005591A (ko) | 크로마 블록의 최대 변환 크기 설정을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| KR20210158401A (ko) | 결정된 예측 모드를 적용하여 예측 샘플들을 생성하는 영상 디코딩 방법 및 그 장치 | |
| ES2949795T3 (es) | Método y dispositivo de decodificación de imágenes basado en la predicción de movimiento afín usando un candidato de MVP afín construido en el sistema de codificación de imágenes | |
| EP3989557B1 (en) | Method and apparatus for encoding/decoding video using maximum size limitation of chroma transform block, and method for transmitting bitstream | |
| KR20220003117A (ko) | 영상 디코딩 방법 및 그 장치 | |
| ES2974947T3 (es) | Método y aparato para la predicción inter en un sistema de procesamiento de video | |
| ES3043608T3 (en) | Method for signaling picture partitioning information | |
| BR122021024908B1 (pt) | Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação e meio de armazenamento legível por computador não transitório |