ES2952457T3 - Método y aparato para construir un candidato de predicción en base a HMVP - Google Patents
Método y aparato para construir un candidato de predicción en base a HMVP Download PDFInfo
- Publication number
- ES2952457T3 ES2952457T3 ES19869045T ES19869045T ES2952457T3 ES 2952457 T3 ES2952457 T3 ES 2952457T3 ES 19869045 T ES19869045 T ES 19869045T ES 19869045 T ES19869045 T ES 19869045T ES 2952457 T3 ES2952457 T3 ES 2952457T3
- Authority
- ES
- Spain
- Prior art keywords
- hmvp
- candidate
- current block
- candidates
- buffer
- 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
- 238000000034 method Methods 0.000 title claims abstract description 121
- 230000033001 locomotion Effects 0.000 claims abstract description 125
- 230000008569 process Effects 0.000 claims description 40
- 239000013598 vector Substances 0.000 claims description 24
- 238000009966 trimming Methods 0.000 claims description 19
- 230000009466 transformation Effects 0.000 description 46
- 238000001914 filtration Methods 0.000 description 14
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 7
- 239000000470 constituent Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000013139 quantization Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013138 pruning Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000002146 bilateral effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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/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/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/124—Quantisation
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un método de decodificación de imágenes realizado por un aparato de decodificación según la presente divulgación comprende las etapas de: construir una lista de candidatos AMVP que comprende al menos un candidato AMVP para un bloque actual; derivar una lista de candidatos de HMVP para el bloque actual que incluya candidatos de HMVP para el bloque actual; seleccionar al menos un candidato de HMVP entre los candidatos de HMVP en la lista de candidatos de HMVP; derivar una lista de candidatos de AMVP actualizada añadiendo al menos un candidato de HMVP a la lista de candidatos de AMVP; derivar información de movimiento para el bloque actual sobre la base de la lista de candidatos AMVP actualizada; derivar muestras de predicción para el bloque actual basándose en la información de movimiento para el bloque actual; y generar muestras de reconstrucción para el bloque actual en base a las muestras de predicción para el bloque actual. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Método y aparato para construir un candidato de predicción en base a HMVP
Antecedentes de la descripción
Campo de la descripción
La presente descripción se refiere a una tecnología de codificación de imágenes y, más particularmente, a un método y un aparato para configurar candidatos de predicción basados en Predicción de Vectores de Movimiento Basada en Historial (HMVP) en un sistema de codificación de imágenes.
Técnica relacionada
Recientemente, la demanda de imagen/video de alta resolución y alta calidad, tal como imagen/video de Ultra Alta Definición (UHD) 4K u 8K, está aumentando en varios campos. A medida que llega a ser más alta la resolución o la calidad de la imagen/vídeo, se transmite relativamente más cantidad de información o bits que para los datos de imagen/vídeo convencionales. Por lo tanto, si los datos de imagen/video se transmiten a través de un medio tal como una línea de banda ancha cableada/inalámbrica existente o se almacenan en un medio de almacenamiento heredado, los costes de transmisión y almacenamiento aumentan rápidamente.
Además, están creciendo los intereses y la demanda de contenidos de realidad virtual (VR) y realidad artificial (AR), y medios inmersivos tales como el holograma; y la difusión de imágenes/vídeos que muestran características de imagen/vídeo diferentes de las de una imagen/vídeo real, tales como imágenes/vídeos de juegos, también están creciendo.
Por lo tanto, se requiere una técnica de compresión de imagen/video altamente eficiente para comprimir y transmitir, almacenar o reproducir de manera eficaz imágenes/videos de alta resolución y alta calidad que muestren varias características como se describió anteriormente.
La técnica anterior se puede encontrar en Li Zhang et al, "CE4-related: History-based Motion Vector Prediction'', JVET-K0104, en Zhang (Bytedance) L et al, "CE4-related: History-based Motion Vector Prediction", JVET-K0104 y en Li Zhang et al, "CE4-related: History-based Motion Vector Prediction (Test 4.4.7)", JVET-L0266-v1.
Compendio
Un objeto técnico de la presente descripción es proporcionar un método y un aparato para mejorar la eficacia de la codificación de imágenes.
Otro objeto técnico de la presente descripción es proporcionar un método y un aparato para realizar la codificación utilizando un método de interpredicción.
Otro objeto técnico más de la presente descripción es proporcionar un método y un aparato para configurar candidatos de predicción basados en HMVP para la interpredicción.
Otro objeto técnico más de la presente descripción es proporcionar un método y un aparato para omitir un proceso de recorte para evitar el aumento de la complejidad debido al proceso de recorte cuando los candidatos de predicción se configuran en base a HMVP para la interpredicción.
La invención se define dentro de las reivindicaciones adjuntas.
Efectos ventajosos
Según la presente descripción, se puede mejorar la eficiencia global de compresión de imagen/vídeo.
Según la presente descripción, la eficacia de la codificación de imágenes se puede mejorar utilizando un método de interpredicción.
Según la presente descripción, la eficacia de la codificación de imágenes se puede mejorar configurando candidatos de predicción basados en HMVP para la interpredicción.
Según la presente descripción, el aumento de la complejidad debido a un proceso de recorte se puede evitar omitiendo el proceso de recorte cuando los candidatos de predicción se configuran en base a HMVP para la interpredicción.
Breve descripción de los dibujos
La Figura 1 ilustra un ejemplo de un sistema de codificación de vídeo/imagen al que se puede aplicar la presente descripción.
La Figura 2 ilustra una configuración de un aparato de codificación de vídeo/imagen al que se puede aplicar la presente descripción.
La Figura 3 ilustra una configuración de un aparato de decodificación de vídeo/imagen al que se puede aplicar la presente descripción.
La Figura 4 ilustra un ejemplo de un procedimiento de decodificación basado en candidatos de HMVP.
Las Figuras 5a y 5b ilustran un proceso para actualizar un almacenador temporal de HMVP según una realización.
Las Figuras 6 a 13 ilustran métodos de HMVP según parte de las realizaciones.
La Figura 14 es un diagrama de flujo que ilustra una operación de un aparato de codificación según una realización.
La Figura 15 es un diagrama de bloques que ilustra una estructura de un aparato de codificación según una realización.
La Figura 16 es un diagrama de bloques que ilustra una operación de un aparato de decodificación según una realización.
La Figura 17 es un diagrama de bloques que ilustra una estructura de un aparato de decodificación según una realización.
La Figura 18 ilustra un ejemplo de un sistema de difusión en forma continua de contenidos al que se puede aplicar la presente descripción.
Descripción de realizaciones ejemplares
Según una realización de la presente descripción, se proporciona un método de decodificación de imágenes realizado por un aparato de decodificación. El método comprende configurar una lista de candidatos de AMVP que incluye al menos un candidato de AMVP para un bloque actual; derivar una lista de candidatos de HMVP para el bloque actual, la lista de candidatos de HMVP que incluye candidatos de HMVP para el bloque actual; seleccionar al menos un candidato de HMVP de entre los candidatos de HMVP en la lista de candidatos de HMVP; derivar una lista de candidatos de AMVP actualizada añadiendo el al menos un candidato de HMVP a la lista de candidatos de AMVP; derivar información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada; derivar muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual; y generar muestras reconstruidas para el bloque actual en base a las muestras de predicción para el bloque actual.
Esta descripción se puede modificar de diversas formas, y en los dibujos se describirán y mostrarán realizaciones específicas de la misma. Sin embargo, las realizaciones no se pretende que limiten esta descripción. Los términos utilizados en la siguiente descripción se utilizan meramente para describir realizaciones específicas, pero no se pretende que limiten esta 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 "incluyen" y "tienen" se pretende que indiquen que existen características, números, pasos, operaciones, elementos, componentes o combinaciones de los mismos utilizadas en la siguiente descripción y, por tanto, se debería entender que la posibilidad de existencia o adición de una o más características, números, pasos, operaciones, elementos, componentes o combinaciones de los mismos no está excluida.
Mientras tanto, cada uno de los componentes en los dibujos descritos en esta descripción se muestra de manera independiente por conveniencia de la descripción con respecto a las diferentes funciones características, y no significa que los componentes se implementen en hardware separado o software separado. Por ejemplo, dos o más de cada configuración se pueden combinar para formar una configuración, o una configuración se puede dividir en una pluralidad de configuraciones.
De aquí en adelante, se describirán en detalle realizaciones ejemplares de esta descripción con referencia a los dibujos adjuntos. De aquí en adelante, se utilizan los mismos números de referencia para los mismos componentes en los dibujos, y se puede omitir una descripción redundante de los mismos componentes.
La Figura 1 ilustra esquemáticamente un sistema de codificación de vídeo/imagen al que se puede aplicar esta descripción.
Haciendo referencia a la Figura 1, un sistema de codificación de video/imagen puede incluir un primer aparato (un dispositivo fuente) y un segundo aparato (un dispositivo de recepción). El dispositivo fuente puede entregar información o datos de vídeo/imagen codificados en forma de archivo o difusión de forma continua al dispositivo de recepción a través de una red o un medio de almacenamiento digital.
El dispositivo fuente puede incluir una fuente de video, un aparato de codificación y un transmisor. El dispositivo de
recepción puede incluir un receptor, un aparato de decodificación y un renderizador. El aparato de codificación se puede llamar aparato de codificación de vídeo/imagen, y el aparato de decodificación se puede llamar aparato de decodificación de vídeo/imagen. El transmisor puede estar incluido en el aparato de codificación. El receptor puede estar incluido en el aparato de decodificación. El renderizador puede incluir una pantalla, y la pantalla se puede configurar como un dispositivo separado o un componente externo.
La fuente de video puede adquirir video/imagen a través de un proceso de captura, síntesis o generación del video/imagen. La fuente de video puede incluir un dispositivo de captura de video/imagen y/o un dispositivo de generación de video/imagen. El dispositivo de captura de video/imagen puede incluir, por ejemplo, una o más cámaras, archivos de video/imagen que incluyen video/imágenes capturadas previamente, y similares. El dispositivo de generación de video/imagen puede incluir, por ejemplo, ordenadores, tabletas y teléfonos inteligentes, y puede generar (electrónicamente) video/imágenes. Por ejemplo, se puede generar una imagen/vídeo virtual a través de un ordenador o similar. En este caso, el proceso de captura de video/imagen se puede sustituir por un proceso de generación de datos relacionados.
El aparato de codificación puede codificar vídeo/imagen de entrada. El aparato de codificación puede realizar una serie de procedimientos tales como predicción, transformación y cuantificación para la eficiencia de compresión y codificación. Los datos codificados (información de vídeo/imagen codificada) se pueden emitir en forma de flujo de bits.
El transmisor puede transmitir la imagen codificada/información de imagen o salida de datos en forma de flujo de bits al receptor del dispositivo de recepción a través de un medio de almacenamiento digital o una red en forma de archivo o difusión de forma continua. El medio de almacenamiento digital puede incluir varios medios de almacenamiento, tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor puede incluir un elemento para generar un archivo de medios a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión a través de una red de difusión/comunicación. El receptor puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido al aparato de decodificación.
El aparato de decodificación puede decodificar el video/imagen realizando una serie de procedimientos tales como descuantificación, transformación inversa y predicción correspondientes a la operación del aparato de codificación.
El renderizador puede renderizar el video/imagen decodificado. El video/imagen renderizado se puede mostrar a través de la pantalla.
Este documento se relaciona con la codificación de video/imagen. Por ejemplo, los métodos/realizaciones descritos en este documento se pueden aplicar a un método descrito en la codificación de video versátil (VVC), el estándar de EVC (codificación de video esencial), el estándar AOMedia Video 1 (AV1), la segunda generación del estándar de codificación de audio y video (AVS2), o el estándar de codificación de video/imagen de próxima generación (por ejemplo, H.267 o H.268, etc.).
Este documento presenta varias realizaciones de codificación de video/imagen, y las realizaciones se pueden realizar en combinación unas con otras a menos que se mencione de otro modo.
En este documento, el video puede referirse a una serie de imágenes a lo largo del tiempo. Imagen generalmente se refiere a una unidad que representa una imagen en una zona horaria específica, y un segmento/mosaico es una unidad que constituye parte de una imagen en la codificación. El segmento/mosaico puede incluir una o más unidades de árbol de codificación (CTU). Una imagen puede constar de uno o más segmentos/mosaicos. Una imagen puede constar de uno o más grupos de mosaicos. Un grupo de mosaicos puede incluir uno o más mosaicos. Un bloque puede representar una región rectangular de filas de CTU dentro de un mosaico en una imagen. Un mosaico se puede dividir en múltiples bloques, cada uno de los cuales consta de una o más filas de CTU dentro del mosaico. También se puede hacer referencia a un mosaico que no está dividido en múltiples bloques como bloque. Un escaneo de bloques es un orden secuencial específico de CTU que dividen una imagen en la que las CTU se ordenan consecutivamente en un escaneo de trama de CTU en un bloque, los bloques dentro de un mosaico se ordenan consecutivamente en un escaneo de trama de los bloques de un mosaico, y los mosaicos en una imagen se ordenan consecutivamente en un escaneo de trama de los mosaicos de la imagen. Un mosaico es una región rectangular de CTU dentro de una columna de mosaico particular y una fila de mosaico particular en una imagen. La columna de mosaico es una región rectangular de CTU que tiene una altura igual a la altura de la imagen y un ancho especificado por elementos de sintaxis en el conjunto de parámetros de la imagen. La fila de mosaicos es una región rectangular de las CTU que tiene una altura especificada por elementos de sintaxis en el conjunto de parámetros de la imagen y un ancho igual al ancho de la imagen. Un escaneo de mosaico es un orden secuencial específico de las CTU que dividen una imagen en la que las CTU se ordenan consecutivamente en un escaneo de trama de CTU en un mosaico, mientras que los mosaicos en una imagen se ordenan consecutivamente en un escaneo de trama de los mosaicos de la imagen. Un segmento incluye un número entero de bloques de una imagen que pueden estar contenidos exclusivamente en una sola unidad de NAL. Un segmento puede consistir o bien en el número de mosaicos completos o bien solo en una secuencia consecutiva de bloques completos de un mosaico. En este documento, los grupos de mosaicos y los segmentos se pueden usar indistintamente. Por ejemplo, en este documento, un grupo de mosaicos/cabecera de grupo de mosaicos se puede llamar segmento/cabecera de segmento.
Un píxel o un pel puede significar una unidad más pequeña que constituye una foto (o imagen). También, 'muestra' se puede usar como un término correspondiente a un píxel. Una muestra generalmente puede representar un píxel o un valor de un píxel, y puede representar solo un valor de píxel/píxel de una componente de luminancia o solo un valor de píxel/píxel de una componente de crominancia.
Una unidad puede representar una unidad básica de procesamiento de imágenes. La unidad puede incluir al menos uno de una región específica de la imagen e información relacionada con la región. Una unidad puede incluir un bloque de luminancia y dos bloques de crominancia (por ejemplo, Cb, cr). La unidad se puede usar indistintamente con términos tales como bloque o área en algunos casos. En un caso general, un bloque MxN puede incluir muestras (o matrices de muestras) o un conjunto (o matriz) de coeficientes de transformación de M columnas y N filas.
En este documento, el término "/" y "," debe interpretarse para indicar "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". También, "A/B/C" puede significar "al menos uno de A, B y/o C".
Además, en el documento, el término "o" se debería interpretar para indicar "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) solo A, 2) solo B y/o 3) tanto A como B. En otras palabras, el término "o" en este documento se debería interpretar para indicar "además o alternativamente”.
La Figura 2 es un diagrama esquemático que ilustra una configuración de un aparato de codificación de video/imagen al que se pueden aplicar las realizaciones de la presente descripción. De aquí en adelante, el aparato de codificación de video puede incluir un aparato de codificación de imágenes.
Haciendo referencia a la Figura 2, el aparato de codificación 200 incluye un divisor de imágenes 210, un predictor 220, un procesador residual 230 y un codificador de entropía 240, un sumador 250, un filtro 260 y una memoria 270. El predictor 220 puede incluir un interpredictor 221 y un intrapredictor 222. El procesador residual 230 puede incluir un transformador 232, un cuantificador 233, un descuantificador 234 y un transformador inverso 235. El procesador residual 230 puede incluir además un restador 231. El sumador 250 se puede llamar un reconstructor o un generador de bloques reconstruido. El divisor de imágenes 210, el predictor 220, el procesador residual 230, el codificador de entropía 240, el sumador 250 y el filtro 260 se pueden configurar mediante al menos un componente de hardware (por ejemplo, un conjunto de chips de codificador o procesador) según una realización. Además, la memoria 270 puede incluir un almacenador temporal de imágenes decodificadas (DPB) o se puede configurar mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 270 como componente interno/externo.
El divisor de imágenes 210 puede dividir una imagen de entrada (o una foto o un cuadro) de entrada al aparato de codificación 200 en uno o más procesadores. Por ejemplo, el procesador se puede llamar unidad de codificación (CU). En este caso, la unidad de codificación se puede dividir recursivamente según una estructura de árbol ternario de árbol binario de árbol cuádruple (QTBTTT) a partir de una unidad de árbol de codificación (CTU) o una unidad de codificación más grande (LCU). Por ejemplo, una unidad de codificación se puede dividir en una pluralidad de unidades de codificación de mayor profundidad en base a una estructura de árbol cuádruple, una estructura de árbol binario y/o una estructura ternaria. En este caso, por ejemplo, la estructura de árbol cuádruple se puede aplicar primero y la estructura de árbol binario y/o la estructura ternaria se pueden aplicar más tarde. Alternativamente, la estructura de árbol binario se puede aplicar primero. El procedimiento de codificación según esta descripción se puede realizar en base a la unidad de codificación final que ya no está dividida. En este caso, la unidad de codificación más grande se puede utilizar como unidad de codificación final en base a la eficiencia de codificación según las características de la imagen o, si es necesario, la unidad de codificación se puede dividir recursivamente en unidades de codificación de mayor profundidad y una unidad de codificación que tenga un tamaño óptimo se puede utilizar como unidad de codificación final. Aquí, el procedimiento de codificación puede incluir un procedimiento de predicción, transformación y reconstrucción, que se describirá más adelante. Como otro ejemplo, el procesador puede incluir además una unidad de predicción (PU) o una unidad de transformación (TU). En este caso, la unidad de predicción y la unidad de transformación se pueden dividir o partir a partir de la unidad de codificación final antes mencionada. La unidad de predicción puede ser una unidad de predicción de muestra, y la unidad de transformación puede ser una unidad para derivar un coeficiente de transformación y/o una unidad para derivar una señal residual a partir del coeficiente de transformación.
La unidad se puede usar indistintamente con términos como bloque o área en algunos casos. En un caso general, un bloque MxN puede representar un conjunto de muestras o coeficientes de transformación compuestos por M columnas y N filas. Una muestra generalmente puede representar un píxel o un valor de un píxel, puede representar solo un valor de píxel/píxel de una componente de luminancia o representar solo un valor de píxel/píxel de una componente de crominancia. Una muestra se puede usar como un término correspondiente a una foto (o imagen) para un píxel o un pel.
En el aparato de codificación 200, una señal de predicción (bloque predicho, matriz de muestras de predicción) emitida desde el interpredictor 221 o el intrapredictor 222 se resta de una señal de imagen de entrada (bloque original, matriz de muestras originales) para generar un bloque residual de señal residual, matriz de muestras residuales), y la señal residual generada se transmite al transformador 232. En este caso, como se muestra, una
unidad para restar una señal de predicción (bloque predicho, matriz de muestras de predicción) de la señal de imagen de entrada (bloque original, matriz de muestras de predicción) en el codificador 200 se puede llamar restador 231. El predictor puede realizar una predicción en un bloque a ser procesado (de aquí en adelante, al que se hace referencia como bloque actual) y generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar si la intrapredicción o la interpredicción se aplica sobre una base de CU o bloque actual. Como se describe más adelante en la descripción de cada modo de predicción, el predictor puede generar varios tipos de información relacionada con la predicción, tal como información del modo de predicción, y transmitir la información generada al codificador de entropía 240. La información sobre la predicción se puede codificar en el codificador de entropía 240 y emitir en forma de un flujo de bits.
El intrapredictor 222 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas se pueden ubicar en la vecindad del bloque actual o se pueden ubicar separadas según el modo de predicción. En la intrapredicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El modo no direccional puede incluir, por ejemplo, un modo de DC y un modo plano. El modo direccional puede incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional según el grado de detalle de la dirección de predicción. Sin embargo, esto es meramente un ejemplo, se pueden usar más o menos modos de predicción direccional dependiendo de la configuración. El intrapredictor 222 puede determinar el modo de predicción aplicado al bloque actual usando un modo de predicción aplicado a un bloque vecino.
El interpredictor 221 puede derivar un bloque predicho para el bloque actual en base a un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. Aquí, con el fin de reducir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento se puede predecir en unidades de bloques, subbloques o muestras en base a la correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de interpredicción (predicción L0, predicción L1, predicción Bi, etc.). En el caso de interpredicción, el bloque vecino puede incluir un bloque vecino espacial presente en la imagen actual y un bloque vecino temporal presente en la imagen de referencia. La imagen de referencia que incluye el bloque de referencia y la imagen de referencia que incluye el bloque vecino temporal pueden ser iguales o diferentes. El bloque vecino temporal se puede llamar bloque de referencia coubicado, CU coubicada (colCU), y similares, y la imagen de referencia incluyendo el bloque vecino temporal se puede llamar imagen coubicada (colPic). Por ejemplo, el interpredictor 221 puede configurar una lista de candidatos de información de movimiento en base a bloques vecinos y generar información que indique qué candidato se usa para derivar un vector de movimiento y/o un índice de imagen de referencia del bloque actual. La interpredicción se puede realizar en base a varios modos de predicción. Por ejemplo, en el caso de un modo de salto y un modo de fusión, el interpredictor 221 puede usar información de movimiento del bloque vecino como información de movimiento del bloque actual. En el modo de salto, a diferencia del modo de fusión, la señal residual puede que no se transmita. En el caso del modo de predicción de vector de movimiento (MVP), el vector de movimiento del bloque vecino se puede usar como predictor de vector de movimiento y el vector de movimiento del bloque actual se puede indicar señalando una diferencia de vector de movimiento.
El predictor 220 puede generar una señal de predicción en base a varios métodos de predicción descritos a continuación. Por ejemplo, el predictor no solo puede aplicar la intrapredicción o la interpredicción para predecir un bloque, sino que también puede aplicar simultáneamente tanto la intrapredicción como la interpredicción. Esto se puede llamar inter e intrapredicción combinada (CIIP). Además, el predictor se puede basar en un modo de predicción de copia intrabloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta se puede usar para la codificación de imágenes/video de contenido de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). La IBC realiza básicamente la predicción en la imagen actual, pero se puede realizar de manera similar a la interpredicción en el sentido de que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede utilizar al menos una de las técnicas de interpredicción descritas en este documento. El modo de paleta se puede considerar como un ejemplo de intracodificación o intrapredicción. Cuando se aplica el modo de paleta, se puede señalar un valor de muestra dentro de una imagen en base a la información de la tabla de paleta y el índice de paleta.
La señal de predicción generada por el predictor (incluyendo el interpredictor 221 y/o el intrapredictor 222) se puede usar para generar una señal reconstruida o para generar una señal residual. El transformador 232 puede generar coeficientes de transformación aplicando una técnica de transformación a la señal residual. Por ejemplo, la técnica de transformación puede incluir al menos una transformada de coseno discreta (DCT), una transformada de seno discreta (DST), una transformada de Karhunen-loeve (KLT), una transformada basada en gráficos (GBT) o una transformada condicionalmente no lineal (CNT). Aquí, la GBT significa transformación obtenida de un gráfico cuando la información de relación entre píxeles está representada por el gráfico. La CNT se refiere a la transformación generada en base a una señal de predicción generada utilizando todos los píxeles reconstruidos previamente. Además, el proceso de transformación se puede aplicar a bloques de píxeles cuadrados que tienen el mismo tamaño o se puede aplicar a bloques que tienen un tamaño variable en lugar de cuadrados.
El cuantificador 233 puede cuantificar los coeficientes de transformación y transmitirlos al codificador de entropía 240 y el codificador de entropía 240 puede codificar la señal cuantificada (información sobre los coeficientes de
transformación cuantificados) y emitir un flujo de bits. Se puede hacer referencia a la información sobre los coeficientes de transformación cuantificados como información residual. El cuantificador 233 puede reorganizar coeficientes de transformación cuantificados de tipo bloque en una forma de vector unidimensional en base a un orden de escaneo de coeficientes y generar información sobre los coeficientes de transformación cuantificados en base a los coeficientes de transformación cuantificados en forma de vector unidimensional. Se puede generar información sobre los coeficientes de transformación. El codificador de entropía 240 puede realizar varios métodos de codificación tales como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptable al contexto (CAVLC), codificación aritmética binaria adaptable al contexto (CABAC) y similares. El codificador de entropía 240 puede codificar información necesaria para la reconstrucción de video/imagen distinta de los coeficientes de transformación cuantificados (por ejemplo, valores de elementos de sintaxis, etc.) juntos o por separado. La información codificada (por ejemplo, información de video/imagen codificada) se puede transmitir o almacenar en unidades de NAL (capa de abstracción de red) en forma de flujo de bits. La información de video/imagen puede incluir además información sobre varios conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de video (VPS). Además, la información de video/imagen puede incluir además información de restricción general. En este documento, los elementos de información y/o de sintaxis transmitidos/señalizados desde el aparato de codificación al aparato de decodificación se pueden incluir en la información de vídeo/imagen. La información de video/imagen se puede codificar a través del procedimiento de codificación descrito anteriormente e incluir en el flujo de bits. El flujo de bits se puede transmitir a través de una red o se puede almacenar en un medio de almacenamiento digital. La red puede incluir una red de difusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir varios medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. Un transmisor (no mostrado) que transmite una salida de señal desde el codificador de entropía 240 y/o una unidad de almacenamiento (no mostrada) que almacena la señal se pueden incluir como elemento interno/externo del aparato de codificación 200 y, alternativamente, el transmisor se puede incluir en el codificador de entropía 240.
Los coeficientes de transformación cuantificados emitidos desde el cuantificador 233 se pueden usar para generar una señal de predicción. Por ejemplo, la señal residual (bloque residual o muestras residuales) se puede reconstruir aplicando descuantificación y transformación inversa a los coeficientes de transformación cuantificados a través del descuantificador 234 y el transformador inverso 235. El sumador 250 suma la señal residual reconstruida a la señal de predicción emitida desde el interpredictor 221 o el intrapredictor 222 para generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestras reconstruidas). Si no hay residuos para el bloque a ser procesado, tal como en el caso de que se aplique el modo de salto, el bloque predicho se puede usar como el bloque reconstruido. El sumador 250 se puede llamar reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede usar para la interpredicción de un siguiente bloque a ser procesado en la imagen actual y se puede usar para la interpredicción de una siguiente imagen a través del filtrado como se describe a continuación.
Mientras tanto, el mapeo de luminancia con escala de crominancia (LMCS) se puede aplicar durante la codificación y/o reconstrucción de imágenes.
El filtro 260 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 260 puede generar una imagen reconstruida modificada aplicando varios métodos de filtrado a la imagen reconstruida y almacenar la imagen reconstruida modificada en la memoria 270, específicamente, un DPB de la memoria 270. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestras, un filtro de bucle adaptativo, un filtro bilateral y similares. El filtro 260 puede generar varios tipos de información relacionada con el filtrado y transmitir la información generada al codificador de entropía 240 como se describe más adelante en la descripción de cada método de filtrado. La información relacionada con el filtrado se puede codificar por el codificador de entropía 240 y emitir en forma de un flujo de bits.
La imagen reconstruida modificada transmitida a la memoria 270 se puede utilizar como la imagen de referencia en el interpredictor 221. Cuando la interpredicción se aplica a través del aparato de codificación, se puede evitar el desajuste de predicción entre el aparato de codificación 200 y el aparato de decodificación y se puede mejorar la eficiencia de codificación.
El DPB de la memoria 270 DPB puede almacenar la imagen reconstruida modificada para su uso como imagen de referencia en el interpredictor 221. La memoria 270 puede almacenar la información de movimiento del bloque del que se deriva (o codifica) la información de movimiento en la imagen actual y/o la información de movimiento de los bloques de la imagen que ya han sido reconstruidos. La información de movimiento almacenada se puede transmitir al interpredictor 221 y usar como la información de movimiento del bloque vecino espacial o la información de movimiento del bloque vecino temporal. La memoria 270 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y puede transferir las muestras reconstruidas al intrapredictor 222.
La Figura 3 es un diagrama esquemático que ilustra una configuración de un aparato de decodificación de video/imagen al que se puede aplicar la realización o realizaciones de la presente descripción.
Haciendo referencia a la Figura 3, el aparato de decodificación 300 puede incluir un decodificador de entropía 310,
un procesador residual 320, un predictor 330, un sumador 340, un filtro 350 y una memoria 360. El predictor 330 puede incluir un interpredictor 331 y un intrapredictor 332. El procesador residual 320 puede incluir un descuantificador 321 y un transformador inverso 321. El decodificador de entropía 310, el procesador residual 320, el predictor 330, el sumador 340 y el filtro 350 se pueden configurar mediante un componente de hardware (por ejemplo, un conjunto de chips de decodificador o un procesador) según una realización. Además, la memoria 360 puede incluir un almacenador temporal de imágenes decodificadas (DPB) o se puede configurar mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 360 como componente interno/externo.
Cuando se introduce un flujo de bits que incluye información de video/imagen, el aparato de decodificación 300 puede reconstruir una imagen correspondiente a un proceso en el que la información de video/imagen se procesa en el aparato de codificación de la Figura 2. Por ejemplo, el aparato de decodificación 300 puede derivar unidades/bloques en base a la información relacionada con la partición de bloques obtenida del flujo de bits. El aparato de decodificación 300 puede realizar la decodificación usando un procesador aplicado en el aparato de codificación. Por tanto, el procesador de decodificación puede ser una unidad de codificación, por ejemplo, y la unidad de codificación se puede dividir según una estructura de árbol cuádruple, estructura de árbol binario y/o estructura de árbol ternario a partir de la unidad de árbol de codificación o la unidad de codificación más grande. Una o más unidades de transformación se pueden derivar de la unidad de codificación. La señal de imagen reconstruida decodificada y emitida a través del aparato de decodificación 300 se puede reproducir a través de un aparato de reproducción.
El aparato de decodificación 300 puede recibir una señal emitida desde el aparato de codificación de la Figura 2 en forma de un flujo de bits, y la señal recibida se puede decodificar a través del decodificador de entropía 310. Por ejemplo, el decodificador de entropía 310 puede analizar sintácticamente el flujo de bits para derivar información (por ejemplo, información de video/imagen) necesaria para la reconstrucción de imágenes (o reconstrucción de fotos). La información de video/imagen puede incluir además información sobre varios conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de video (VPS). Además, la información de video/imagen puede incluir además información de restricción general. El aparato de decodificación puede decodificar además la imagen en base a la información del conjunto de parámetros y/o la información de restricción general. La información señalizada/recibida y/o los elementos de sintaxis descritos más adelante en este documento se pueden decodificar mediante el procedimiento de decodificación y obtener del flujo de bits. Por ejemplo, el decodificador de entropía 310 decodifica la información en el flujo de bits en base a un método de codificación tal como la codificación Golomb exponencial, CAVLC o CABAC, y emite elementos de sintaxis requeridos para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformación para residuos. Más específicamente, el método de decodificación de entropía CABAC puede recibir un contenedor correspondiente a cada elemento de sintaxis en el flujo de bits, determinar un modelo de contexto usando una información de elemento de sintaxis objetivo de decodificación, información de decodificación de un bloque objetivo de decodificación o información de un símbolo/contenedor decodificado en un etapa anterior, y realizar una decodificación aritmética sobre el contenedor prediciendo una probabilidad de aparición de un contenedor según el modelo de contexto determinado, y generar un símbolo correspondiente al valor de cada elemento de sintaxis. En este caso, el método de decodificación de entropía CABAC puede actualizar el modelo de contexto usando la información del símbolo/contenedor decodificado para un modelo de contexto de un siguiente símbolo/contenedor después de determinar el modelo de contexto. La información relacionada con la predicción entre la información decodificada por el decodificador de entropía 310 se puede proporcionar al predictor (el interpredictor 332 y el intrapredictor 331), y el valor residual en el que se realizó la decodificación de entropía en el decodificador de entropía 310, es decir, los coeficientes de transformación cuantificados y la información de los parámetros relacionados se pueden introducir en el procesador residual 320. El procesador residual 320 puede derivar la señal residual (el bloque residual, las muestras residuales, la matriz de muestras residuales). Además, la información sobre el filtrado entre la información decodificada por el decodificador de entropía 310 se puede proporcionar al filtro 350. Mientras tanto, un receptor (no mostrado) para recibir una salida de señal del aparato de codificación se puede configurar además como un elemento interno/externo del aparato de decodificación 300, o el receptor puede ser un componente del decodificador de entropía 310. Mientras tanto, se puede hacer referencia al aparato de decodificación según este documento como aparato de decodificación de video/imagen/foto, y el aparato de decodificación se puede clasificar en un decodificador de información (decodificador de información de video/imagen/foto) y un decodificador de muestra (decodificador de muestra de video/imagen/foto). El decodificador de información puede incluir el decodificador de entropía 310, y el decodificador de muestra puede incluir al menos uno de entre el descuantificador 321, el transformador inverso 322, el sumador 340, el filtro 350, la memoria 360, el interpredictor 332 y el intrapredictor 331.
El descuantificador 321 puede descuantificar los coeficientes de transformación cuantificados y emitir los coeficientes de transformación. El descuantificador 321 puede reorganizar los coeficientes de transformación cuantificados en forma de bloque bidimensional. En este caso, la reorganización se puede realizar en base al orden de escaneo de coeficientes realizado en el aparato de codificación. El descuantificador 321 puede realizar la descuantificación de los coeficientes de transformación cuantificados utilizando un parámetro de cuantificación (por ejemplo, información del tamaño del paso de cuantificación) y obtener coeficientes de transformación.
El transformador inverso 322 transforma inversamente los coeficientes de transformación para obtener una señal
residual (bloque residual, matriz de muestras residuales).
El predictor puede realizar una predicción en el bloque actual y generar un bloque predicho que incluya muestras de predicción para el bloque actual. El predictor puede determinar si la intrapredicción o la interpredicción se aplica al bloque actual en base a la información sobre la predicción emitida desde el decodificador de entropía 310 y puede determinar un modo de intra/interpredicción específico.
El predictor 320 puede generar una señal de predicción en base a varios métodos de predicción descritos a continuación. Por ejemplo, el predictor puede no solo aplicar la intrapredicción o la interpredicción para predecir un bloque, sino también aplicar simultáneamente la intrapredicción y la interpredicción. Esto se puede llamar inter e intrapredicción combinada (CIIP). Además, el predictor se puede basar en un modo de predicción de copia intrabloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta se puede usar para la codificación de imágenes/video de contenido de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). La IBC realiza básicamente la predicción en la imagen actual, pero se puede realizar de manera similar a la interpredicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede utilizar al menos una de las técnicas de interpredicción descritas en este documento. El modo de paleta se puede considerar como ejemplo de intracodificación o intrapredicción. Cuando se aplica el modo de paleta, se puede señalar un valor de muestra dentro de una imagen en base a la información de la tabla de paleta y el índice de paleta.
El intrapredictor 331 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas se pueden ubicar en la vecindad del bloque actual o se pueden ubicar separadas según el modo de predicción. En la intrapredicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El intrapredictor 331 puede determinar el modo de predicción aplicado al bloque actual usando un modo de predicción aplicado a un bloque vecino. El intrapredictor 331 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras a las que se hace referencia pueden estar ubicadas en la vecindad del bloque actual o se pueden ubicar separadas según el modo de predicción. En la intrapredicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El intrapredictor 331 puede determinar el modo de predicción aplicado al bloque actual usando el modo de predicción aplicado al bloque vecino.
El interpredictor 332 puede derivar un bloque predicho para el bloque actual en base a un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este caso, con el fin de reducir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento se puede predecir en unidades de bloques, subbloques o muestras en base a la correlación de la información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de interpredicción (predicción L0, predicción L1, predicción Bi, etc.). En el caso de interpredicción, el bloque vecino puede incluir un bloque vecino espacial presente en la imagen actual y un bloque vecino temporal presente en la imagen de referencia. Por ejemplo, el interpredictor 332 puede configurar una lista de candidatos de información de movimiento en base a bloques vecinos y derivar un vector de movimiento del bloque actual y/o un índice de imagen de referencia en base a la información de selección de candidatos recibida. La interpredicción se puede realizar en base a varios modos de predicción, y la información sobre la predicción puede incluir información que indica un modo de interpredicción para el bloque actual.
El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestras reconstruidas) sumando la señal residual obtenida a la señal de predicción (bloque predicho, matriz de muestras de predicción) emitida desde el predictor (incluyendo el interpredictor 332 y/o el intrapredictor 331). Si no hay residuos para el bloque a ser procesado, tal como cuando se aplica el modo de salto, el bloque predicho se puede usar como el bloque reconstruido.
El sumador 340 se puede llamar reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede usar para la interpredicción de un siguiente bloque a ser procesado en la imagen actual, se puede emitir a través del filtrado como se describe a continuación, o se puede usar para la interpredicción de una siguiente imagen.
Mientras tanto, el mapeo de luminancia con escala de crominancia (LMCS) se puede aplicar en el proceso de decodificación de imágenes.
El filtro 350 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 350 puede generar una imagen reconstruida modificada aplicando varios métodos de filtrado a la imagen reconstruida y almacenar la imagen reconstruida modificada en la memoria 360, específicamente, un DPB de la memoria 360. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral y similares.
La imagen reconstruida (modificada) almacenada en el DPB de la memoria 360 se puede usar como imagen de referencia en el interpredictor 332. La memoria 360 puede almacenar la información de movimiento del bloque del
que se deriva (o decodifica) la información de movimiento en la imagen actual y/o la información de movimiento de los bloques en la imagen que ya han sido reconstruidos. La información de movimiento almacenada se puede transmitir al interpredictor 260 para ser utilizada como la información de movimiento del bloque vecino espacial o la información de movimiento del bloque vecino temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transferir las muestras reconstruidas al intrapredictor 331.
En la presente descripción, las realizaciones descritas en el filtro 260, el interpredictor 221 y el intrapredictor 222 del aparato de codificación 200 pueden ser las mismas o aplicadas respectivamente para corresponder al filtro 350, el interpredictor 332 y el intrapredictor 331 del aparato de decodificación 300. Lo mismo puede aplicarse también a la unidad 332 y al intrapredictor 331.
Como se describió anteriormente, al realizar la codificación de video, se realiza una predicción para mejorar la eficiencia de la compresión. Un bloque predicho que incluye muestras de predicción para un bloque actual, es decir, un bloque de codificación objetivo, se puede generar a través de la predicción. En este caso, el bloque predicho incluye las muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque predicho se deriva de manera idéntica en el aparato de codificación y el aparato de decodificación. El aparato de codificación puede mejorar la eficiencia de codificación de imágenes señalando, al aparato de decodificación, información sobre un residuo (información residual) entre el bloque original, no un valor de muestra original en sí mismo del bloque original y el bloque predicho. El aparato de decodificación puede derivar un bloque residual que incluye muestras residuales en base a la información residual, puede generar una reconstrucción que incluye muestras reconstruidas sumando el bloque residual y el bloque predicho, y puede generar una imagen reconstruida que incluye los bloques reconstruidos.
La información residual se puede generar a través de un procedimiento de transformación y cuantificación. Por ejemplo, el aparato de codificación puede derivar el bloque residual entre el bloque original y el bloque predicho, puede derivar coeficientes de transformación realizando un procedimiento de transformación en las muestras residuales (matriz de muestras residuales) incluidas en el bloque residual, puede derivar coeficientes de transformación cuantificados realizando un procedimiento de cuantificación en los coeficientes de transformación, y puede señalar información residual relacionada al aparato de decodificación (a través de un flujo de bits). En este caso, la información residual puede incluir información, tal como información de valor, información de ubicación, esquema de transformación, núcleo de transformación y parámetro de cuantificación de los coeficientes de transformación cuantificados. El aparato de decodificación puede realizar un procedimiento de descuantificación/transformada inversa en base a la información residual, y puede derivar muestras residuales (o bloque residual). El aparato de decodificación puede generar una imagen reconstruida en base al bloque predicho y al bloque residual. Además, el aparato de codificación puede derivar un bloque residual descuantificando/transformando inversamente los coeficientes de transformación cuantificados como referencia para la interpredicción de una imagen posterior, y puede generar una imagen reconstruida.
La Figura 4 ilustra un ejemplo de un procedimiento de decodificación basado en candidatos de HMVP. Aquí, el procedimiento de decodificación basado en candidatos de HMVP puede incluir un procedimiento de interpredicción basado en candidatos de HMVP.
Haciendo referencia a la Figura 4, el aparato de decodificación carga una tabla de HMVP que incluye un candidato o candidatos de HMVP y decodifica un bloque en base a al menos uno del candidato o candidatos de HMVP. Por ejemplo, el aparato de decodificación puede derivar información de movimiento de un bloque actual en base a al menos uno del candidato o candidatos de HMVP, realizar interpredicción para el bloque actual en base a la información de movimiento y derivar un bloque predicho (incluidas las muestras de predicción). Como se describió anteriormente, se puede generar un bloque reconstruido en base al bloque predicho. La información de movimiento derivada del bloque actual se puede actualizar en la tabla. En este caso, la información de movimiento se puede añadir a la última entrada de la tabla como un nuevo candidato de HMVP. Si el número de candidatos de HMVP existentes en la tabla es igual al tamaño de la tabla, el candidato añadido primero a la tabla se elimina, y la información de movimiento derivada se puede añadir a la última entrada de la tabla como un nuevo candidato de HMVP.
Las Figuras 5a y 5b ilustran un proceso para actualizar un almacenador temporal de HMVP según una realización. Más específicamente, la Figura 5a ilustra la actualización de una tabla de HMVP según una regla de FIFO, y la Figura 5b ilustra la actualización de la tabla de HMVP según una regla de FIFO limitada.
La regla de Primero en Entrar, Primero en Salir (FIFO) se puede aplicar a la tabla mostrada en la Figura 5a. Por ejemplo, cuando el tamaño de la tabla S es 16, indica que se pueden incluir 16 candidatos de HMVP en la tabla. Si hay más de 16 candidatos de HMVP de los bloques codificados previamente, se puede aplicar una regla de FIFO, a través de la cual la tabla puede contener hasta 16 candidatos de información de movimiento codificados más recientemente. En este caso, como se muestra en la Figura 5a, la regla FIFO se aplica de modo que el candidato de HMVP más antiguo se pueda eliminar pero se pueda añadir un nuevo candidato de HMVP.
Mientras tanto, para mejorar aún más la eficiencia de codificación, se puede aplicar una regla de FIFO limitada como se muestra en la Figura 5b. Haciendo referencia a la Figura 5b, cuando se insertan candidatos de HMVP en la tabla, se puede aplicar primero una comprobación de redundancia. La comprobación de redundancia puede determinar si ya existe en la tabla un candidato de HMVP que tenga la misma información de movimiento. Cuando la tabla tiene
un candidato de HMVP que tiene la misma información de movimiento, el candidato de HMVP que tiene la misma información de movimiento se puede eliminar de la tabla, los candidatos de HMVP después del candidato de HMVP eliminado se desplazan al siguiente (esto es, a la posición de cada índice - 1), y luego se puede insertar un nuevo candidato de HMVP.
Como se describió anteriormente, los candidatos de HMVP se pueden usar en un procedimiento para configurar una lista de candidatos de fusión. Por ejemplo, todos los candidatos de HMVP desde la última hasta la primera entrada de la tabla se pueden insertar después de los candidatos de fusión espacial y los candidatos de fusión temporal. En este caso, se puede aplicar un control de recorte a los candidatos de HMVP. Se puede señalar el número máximo de candidatos de fusión permitidos, y cuando el número total de candidatos de fusión disponibles alcanza el número de candidatos de fusión máximo permitido, se puede finalizar el procedimiento para configurar una lista de candidatos de fusión.
De manera similar, los candidatos de HMVP también se pueden utilizar en un procedimiento para configurar una lista de candidatos de (A)MVP. En este caso, los vectores de movimiento de los últimos k candidatos de HMVP en la tabla de HMVP se pueden añadir al lado del candidato de TMVP que constituye la lista de candidatos de MVP. Por ejemplo, los candidatos de HMVP que tienen la misma imagen de referencia que la imagen de referencia objetivo de MVP se pueden usar para configurar la lista de candidatos de MVP. Aquí, la imagen de referencia objetivo de MVP puede hacer referencia a una imagen de referencia para la interpredicción de un bloque actual en el modo de MVP. En este caso, se podrá aplicar la comprobación de recorte a los candidatos de HMVP. Por ejemplo, k se puede establecer en 4. Sin embargo, el valor específico de k es solo un ejemplo, y k puede tener varios otros valores, tales como 1,2, 3 y 4.
Mientras tanto, cuando el número total de candidatos de fusión es igual o mayor que 15, se puede aplicar un método de binarización de unaria truncada más longitud fija (con 3 bits) para la codificación del índice de fusión, como se muestra en la Tabla 1.
[Tabla 1]
La tabla anterior supone que Nmrg = 15, donde Nmrg representa el número total de candidatos de fusión.
Las Figuras 6 a 13 ilustran métodos de HMVP según parte de las realizaciones.
Parte de las realizaciones puede proporcionar un método para derivar información de movimiento de un almacenador temporal de HMVP para un candidato de predicción en un proceso que utiliza la información de movimiento del almacenador temporal como candidato de predicción. HMVP puede realizar un proceso para empujar información de movimiento de un bloque actual a un almacenador temporal de movimiento y derivar un candidato de predicción para el bloque actual extrayendo la información de movimiento más reciente del almacenador temporal de movimiento en un proceso para configurar candidatos de movimiento del siguiente bloque. En este momento, se puede realizar un proceso de recorte que comprueba la similitud entre el candidato de predicción extraído y un candidato de predicción existente (por ejemplo, información de movimiento de un bloque vecino o información de movimiento temporal).
Si no se realiza el proceso de recorte, dado que es muy probable que la información de movimiento enviada más recientemente almacenada en el almacenador temporal de HMVP sea la misma que la información de movimiento de un bloque vecino ya configurado, puede ocurrir que se use la misma información de movimiento para configurar
una lista de candidatos de predicción. Sin embargo, dado que el proceso de recorte siempre requiere una operación de comparación con los candidatos de predicción configurados previamente, no solo se aumenta la complejidad de codificación, sino que la eficiencia de compresión puede no ser tan alta en comparación con otros métodos para configurar candidatos de predicción que no realizan el proceso de recorte pero exhibiendo el mismo/similar nivel de complejidad de cálculo. Por lo tanto, en una realización, se puede eliminar el proceso de recorte y se puede proponer un método para manejar candidatos de predicción extraídos para mejorar el rendimiento de la predicción.
En una realización según la Figura 6, se propone un método para extraer primero el candidato de predicción más antiguo en lugar del candidato de predicción más reciente del almacenador temporal de HMVP.
Cuando el almacenador temporal está configurado como se muestra en la Figura 6, la información de movimiento de un bloque actual se puede decodificar y la información de movimiento se puede almacenar en base al último índice de almacenador temporal para el almacenador temporal vacío, donde se puede utilizar la información de movimiento en base al índice de almacenador temporal principal (esto es, el índice de almacenador temporal más bajo) para un proceso para decodificar la información de movimiento de un bloque al lado del bloque actual. Este método puede proporcionar no solo el efecto de derivar información de movimiento diferente de la información de movimiento vecina de manera eficiente en un ejemplo como se muestra en la Figura 7 sino también un efecto de decodificar el bloque actual usando información de movimiento espacialmente distante.
En una realización según la Figura 8, se propone un método para determinar un candidato de predicción a ser extraído del almacenador temporal de HMVP en base al submuestreo. Más específicamente, haciendo referencia a la Figura 8, la información de movimiento almacenada en un almacenador temporal se puede submuestrear para ser usada como candidato de predicción.
En un ejemplo, la información de movimiento más antigua (o con el índice de almacenador temporal de HMVP más pequeño) se puede usar después del submuestreo. Haciendo referencia a la Figura 9, durante un proceso para codificar un bloque actual, la información de movimiento submuestreada 0, 2 y 4 (o información de movimiento en base al índice de almacenador temporal de HMVP de 0, 2 y 4) se puede usar como candidatos de predicción.
En otro ejemplo, la información de movimiento más reciente se puede usar en el proceso de submuestreo. Haciendo referencia a la Figura 10, se puede realizar un submuestreo, pero la información de movimiento submuestreada más recientemente se puede usar como candidato de predicción.
En otro ejemplo más, cuando todos los candidatos de predicción para un bloque actual no están configurados incluso aunque los candidatos de predicción se extraen en orden secuencial cuando se configuran usando submuestreo, los candidatos de predicción se pueden configurar seleccionando los candidatos no seleccionados del submuestreo de nuevo en el orden secuencial. Haciendo referencia a la Figura 11, cuando todos los candidatos de predicción para un bloque actual no están configurados, incluso aunque la información de movimiento se configure usando submuestreo, el submuestreo se realiza además, después de lo cual la información de movimiento diferente a la información de movimiento derivada a través del primer submuestreo se puede utilizar como candidato de predicción.
En una realización según la Figura 12, los candidatos de predicción extraídos del almacenador temporal de HMVP no se utilizan inmediatamente; en su lugar, se puede calcular la información de movimiento promedio de los candidatos de predicción extraídos, y la información de movimiento calculada se puede usar como candidato de predicción.
Haciendo referencia a la Figura 12, cuando se usa información de movimiento, la información de movimiento almacenada no se usa directamente, pero la información de movimiento se puede obtener calculando el promedio con otra información de movimiento. Aunque la Figura 12 ilustra una operación en la que la información de movimiento más antigua se extrae primero del almacenador temporal de HMVP, también se permite un método de extracción de la información de movimiento más reciente. En este momento, dado que la información de movimiento utilizada como candidato de predicción cuando no se realiza el proceso de recorte no es la información de movimiento almacenada más recientemente, la probabilidad de generar la misma información de movimiento que la información de movimiento vecina puede ser baja.
Haciendo referencia a la Figura 13, un candidato de predicción sacado del almacenador temporal de HMVP no se usa inmediatamente; en su lugar, se aplica un desplazamiento al vector de movimiento, y la información de movimiento aplicada al desplazamiento se puede usar como candidato de predicción. La Figura 13 ilustra un ejemplo en el que la información de movimiento extraída MV_0 se usa como candidato de predicción después de ser añadida con un desplazamiento.
La Figura 14 es un diagrama de flujo que ilustra una operación de un aparato de codificación según una realización, y la Figura 15 es un diagrama de bloques que ilustra una estructura de un aparato de codificación según una realización.
El aparato de codificación según las Figuras 14 y 15 pueden realizar operaciones correspondientes al aparato de decodificación según las Figuras 16 y 17. Por lo tanto, las operaciones del aparato de decodificación a ser descritas más adelante con referencia a las Figuras 16 y 17 se pueden aplicar de la misma manera al aparato de codificación de las Figuras 14 y 15.
Los pasos respectivos mostrados en la Figuras 14 se puede realizar por el aparato de codificación 200 mostrado en la Figura 2. Más específicamente, los pasos S1400 a S1450 se pueden realizar por el predictor 220 descrito en la Figura 2, el paso S1460 se puede realizar por el procesador residual 230 descrito en la Figura 2, y el paso S1470 se puede realizar por el codificador de entropía 240 descrito en la Figura 2. Además, las operaciones según los pasos S1400 a S1420 se basan en parte de las descripciones dadas con referencia a la Figura 3. Por lo tanto, las descripciones específicas que se superponen a los detalles descritos con referencia a las Figuras 2 y 3 se omitirán o simplificarán.
Como se muestra en la Figura 15, un aparato de codificación según una realización puede incluir un predictor 220, un procesador residual 230 y un codificador de entropía 240. Sin embargo, dependiendo de las situaciones, no todos los elementos constituyentes mostrados en la Figura 15 pueden ser elementos esenciales del aparato de codificación, y el aparato de codificación se puede implementar utilizando un número mayor o menor de elementos constituyentes que los que se muestran en la Figura 15.
En el aparato de codificación según una realización, el predictor 220, el procesador residual 230 y el codificador de entropía 240 se pueden implementar mediante los chips respectivos, o al menos dos o más elementos constituyentes se pueden implementar utilizando un solo chip.
El aparato de codificación según una realización puede configurar una lista de candidatos de AMVP que incluye al menos un candidato de AMVP para un bloque actual S1400. Más específicamente, el predictor 220 del aparato de codificación puede configurar una lista de candidatos de AMVP que incluya al menos un candidato de AMVP para el bloque actual.
El aparato de codificación según una realización puede derivar una lista de candidatos de HMVP para el bloque actual, la lista de candidatos de HMVP que incluye candidatos de HMVP para el bloque actual S1410. Más específicamente, el predictor 220 del aparato de codificación puede derivar una lista de candidatos de HMVP para el bloque actual, la lista de candidatos de HMVP que incluye candidatos de HMVP para el bloque actual.
El aparato de codificación según una realización puede seleccionar al menos un candidato de HMVP de entre los candidatos de HMVP en la lista de candidatos de HMVP S1420. Más específicamente, el predictor 220 del aparato de codificación puede seleccionar al menos un candidato de HMVP de entre los candidatos de HMVP en la lista de candidatos de HMVP. En un ejemplo, seleccionar al menos un candidato de HMVP se puede considerar como extraer al menos un candidato de HMVP.
El aparato de codificación según una realización puede derivar una lista de candidatos de AMVP actualizada añadiendo al menos un candidato de HMVP a la lista de candidatos de AMVP S1430. Más específicamente, el predictor 220 del aparato de codificación puede derivar una lista de candidatos de AMVP actualizada añadiendo el al menos un candidato de HMVP a la lista de candidatos de AMVP.
El aparato de codificación según una realización puede derivar información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada S1440. Más específicamente, el predictor 220 del aparato de codificación puede derivar información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada.
El aparato de codificación según una realización puede derivar muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual S1450. Más específicamente, el predictor 220 del aparato de codificación puede derivar muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual.
El aparato de codificación según una realización puede derivar muestras residuales para el bloque actual en base a las muestras de predicción para el bloque actual S1460. Más específicamente, el procesador residual 230 del aparato de codificación puede derivar muestras residuales para el bloque actual en base a las muestras de predicción para el bloque actual.
El aparato de codificación según una realización puede codificar información de imagen que incluye información sobre las muestras residuales S1470. Más específicamente, el codificador de entropía 240 del aparato de codificación puede codificar información de imagen que incluye información sobre las muestras residuales.
En una realización, la selección de al menos un candidato de HMVP puede incluir aplicar un proceso de recorte a uno de los candidatos de HMVP en base a al menos un candidato de AMVP en la lista de candidatos de AMVP y determinar si añadir el candidato de HMVP a la lista de candidatos de AMVP en base al proceso de recorte.
En una realización, la selección de al menos un candidato de HMVP puede incluir seleccionar el al menos un candidato de HMVP de entre los candidatos de HMVP en base al índice de la lista de candidatos de HMVP de los candidatos de HMVP.
En una realización, el proceso de recorte basado en al menos un candidato de AMVP puede que no se aplique a cada uno del al menos un candidato de HMVP.
En una realización, el al menos un candidato de HMVP puede incluir un candidato de HMVP con el índice de lista de candidatos de HMVP más pequeño entre los candidatos de HMVP.
El aparato de codificación según una realización puede derivar candidatos de HMVP muestreados aplicando muestreo a los candidatos de HMVP. El al menos un candidato de HMVP se puede seleccionar entre los candidatos de HMVP muestreados en base al índice de lista de candidatos de HMVP de los candidatos de HMVP muestreados.
El aparato de codificación según una realización puede actualizar la lista de candidatos de HMVP en base a la información de movimiento para el bloque actual. La lista de candidatos de HMVP actualizada se puede usar para derivar información de movimiento de un bloque codificado después del bloque actual.
Según el aparato de codificación y el método para operar el aparato de codificación de las Figuras 14 y 15, el aparato de codificación puede configurar una lista de candidatos de AMVP que incluye al menos un candidato de AMVP para un bloque actual S1400; derivar una lista de candidatos de HMVP para el bloque actual, la lista de candidatos de HMVP que incluye candidatos de HMVP para el bloque actual S1410; seleccionar al menos un candidato de HMVP de entre los candidatos de HMVP en la lista de candidatos de HMVP S1420; derivar una lista de candidatos de AMVP actualizada añadiendo al menos un candidato de HMVP a la lista de candidatos de AMVP S1430; derivar información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada S1440; derivar muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual S1450; derivar muestras residuales para el bloque actual en base a las muestras de predicción para el bloque actual S1460; y codificar información de imagen que incluye información sobre las muestras residuales S1470. En otras palabras, el aumento de la complejidad debido a un proceso de recorte se puede evitar omitiendo el proceso de recorte cuando los candidatos de predicción se configuran en base a HMVP para la interpredicción.
La Figura 16 es un diagrama de bloques que ilustra una operación de un aparato de decodificación según una realización, y la Figura 17 es un diagrama de bloques que ilustra una estructura de un aparato de decodificación según una realización.
Los pasos respectivos mostrados en la Figura 16 se pueden realizar por el aparato de decodificación 300 mostrado en la Figura 3. Más específicamente, los pasos S1600 a S1650 se pueden realizar por el predictor 330 descrito en la Figura 3, y el paso S1660 se puede realizar por el sumador 340 descrito en la Figura 3. Además, las operaciones según los pasos S1600 a S1660 se basan en parte de las descripciones dadas con referencia a las Figuras 4 a 13. Por lo tanto, las descripciones específicas que se superponen a los detalles descritos con referencia a las Figuras 3 a 13 se omitirán o simplificarán.
Como se muestra en la Figura 17, un aparato de decodificación según una realización puede incluir un decodificador de entropía 310, un predictor 330 y un sumador 340. Sin embargo, dependiendo de las situaciones, no todos los elementos constituyentes mostrados en la Figura 17 pueden ser elementos esenciales del aparato de decodificación, y el aparato de decodificación se puede implementar utilizando un número mayor o menor de elementos constituyentes que los mostrados en la Figura 17.
En el aparato de decodificación según una realización, el predictor 330 y el sumador 340 se pueden implementar mediante los chips respectivos, o al menos dos o más elementos constituyentes se pueden implementar usando un solo chip.
El aparato de decodificación según una realización puede configurar una lista de candidatos de AMVP que incluye al menos un candidato de AMVP para un bloque actual S1600. Más específicamente, el predictor 330 del aparato de decodificación puede configurar una lista de candidatos de AMVP que incluya al menos un candidato de AMVP para el bloque actual.
El aparato de decodificación según una realización puede derivar una lista de candidatos de HMVP para el bloque actual, la lista de candidatos de HMVP que incluye candidatos de HMVP para el bloque actual S1610. Más específicamente, el predictor 330 del aparato de decodificación puede derivar una lista de candidatos de HMVP para el bloque actual, la lista de candidatos de HMVP que incluye candidatos de HMVP para el bloque actual.
El aparato de decodificación según una realización puede seleccionar al menos un candidato de HMVP de entre los candidatos de HMVP en la lista de candidatos de HMVP S1620. Más específicamente, el predictor 330 del aparato de decodificación puede seleccionar al menos un candidato de HMVP de entre los candidatos de HMVP en la lista de candidatos de HMVP. En un ejemplo, seleccionar al menos un candidato de HMVP se puede considerar como extraer al menos un candidato de HMVP.
El aparato de decodificación según una realización puede derivar una lista de candidatos de AMVP actualizada añadiendo el al menos un candidato de HMVP a la lista de candidatos de AMVP S1630. Más específicamente, el predictor 330 del aparato de decodificación puede derivar una lista de candidatos de AMVP actualizada añadiendo el al menos un candidato de HMVP a la lista de candidatos de AMVP.
El aparato de decodificación según una realización puede derivar información de movimiento para el bloque actual en base a la lista S1640 de candidatos de AMVP actualizada. Más específicamente, el predictor 330 del aparato de
decodificación puede derivar información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada.
El aparato de decodificación según una realización puede derivar muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual S1650. Más específicamente, el predictor 330 del aparato de decodificación puede derivar muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual.
El aparato de decodificación según una realización puede generar muestras reconstruidas para el bloque actual en base a las muestras de predicción para el bloque actual S1660. Más específicamente, el sumador 340 del aparato de decodificación puede generar muestras reconstruidas para el bloque actual en base a las muestras de predicción para el bloque actual.
En una realización, la selección de al menos un candidato de HMVP puede incluir aplicar un proceso de recorte a uno de los candidatos de HMVP en base a al menos un candidato de AMVP en la lista de candidatos de AMVP y determinar si añadir el candidato de HMVP a la lista de candidatos de AMVP en base al proceso de recorte.
En una realización, seleccionar al menos un candidato de HMVP puede incluir seleccionar al menos un candidato de HMVP de entre los candidatos de HMVP en base al índice de la lista de candidatos de HMVP de los candidatos de HMVP.
En una realización, el proceso de recorte basado en al menos un candidato de AMVP puede que no se aplique a cada uno del al menos un candidato de HMVP.
En una realización, el al menos un candidato de HMVP puede incluir un candidato de HMVP con el índice de lista de candidatos de HMVP más pequeño entre los candidatos de HMVP.
El aparato de decodificación según una realización puede derivar candidatos de HMVP muestreados aplicando muestreo a los candidatos de HMVP. El al menos un candidato de HMVP se puede seleccionar de entre los candidatos de HMVP muestreados en base al índice de lista de candidatos de HMVP de los candidatos de HMVP muestreados.
El aparato de decodificación según una realización puede actualizar la lista de candidatos de HMVP en base a la información de movimiento para el bloque actual. La lista de candidatos de HMVP actualizada se puede usar para derivar información de movimiento de un bloque decodificado posterior al bloque actual.
Según el aparato de decodificación y el método para operar el aparato de decodificación de las Figuras 16 y 17, el aparato de decodificación puede configurar una lista de candidatos de AMVP que incluye al menos un candidato de AMVP para un bloque actual S 1600; derivar una lista de candidatos de HMVP para el bloque actual, la lista de candidatos de HMVP que incluye candidatos de HMVP para el bloque actual S1610; seleccionar al menos un candidato de HMVP de entre los candidatos de HMVP en la lista de candidatos de HMVP S1620; derivar una lista de candidatos de AMVP actualizada añadiendo al menos un candidato de HMVP a la lista de candidatos de AMVP S1630; derivar información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada S1640; derivar muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual S1650; y generar muestras reconstruidas para el bloque actual en base a las muestras de predicción para el bloque actual S1660. En otras palabras, el aumento de la complejidad debido a un proceso de recorte se puede evitar omitiendo el proceso de recorte cuando los candidatos de predicción se configuran en base a HMVP para la interpredicción.
En la realización descrita anteriormente, los métodos se describen en base al diagrama de flujo que tiene una serie de pasos o bloques, pero la presente descripción no se limita al orden de los pasos o bloques anteriores y algunos pasos pueden ocurrir simultáneamente o en un orden diferente de otros pasos como se describió anteriormente. Además, los expertos en la técnica entenderán que los pasos mostrados en el diagrama de flujo anterior no son exclusivos, que se pueden incluir pasos adicionales o que se pueden eliminar uno o más pasos en el diagrama de flujo sin afectar el alcance de la presente descripción.
El método según la presente descripción descrito anteriormente se puede implementar en software. El aparato de codificación y/o aparato de decodificación según la presente descripción se puede incluir en un dispositivo que realiza el procesamiento de imágenes, por ejemplo, un televisor, un ordenador, un teléfono inteligente, un decodificador o un dispositivo de visualización.
Cuando las realizaciones de la presente descripción se implementan en software, el método descrito anteriormente se puede implementar mediante módulos (procesos, funciones, etc.) que realizan las funciones descritas anteriormente. Tales módulos se pueden almacenar en la memoria y ejecutar por un procesador. La memoria puede ser interna o externa al procesador, y la memoria se puede acoplar al procesador usando varios medios bien conocidos. El procesador puede incluir un circuito integrado de aplicaciones específicas (ASIC), otros conjuntos de chips, un circuito lógico y/o un dispositivo de procesamiento de datos. La memoria puede incluir una ROM (memoria de solo lectura), una RAM (memoria de acceso aleatorio), una memoria flash, una tarjeta de memoria, un medio de almacenamiento y/u otro dispositivo de almacenamiento. Es decir, las realizaciones descritas en la presente
descripción se pueden implementar y realizar en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades funcionales mostradas en cada dibujo se pueden implementar y ejecutar en un ordenador, un procesador, un microprocesador, un controlador o un chip. En este caso, la información (por ejemplo, información sobre instrucciones) para la implementación o un algoritmo se puede almacenar en un medio de almacenamiento digital.
Además, el aparato de decodificación y el aparato de codificación a los que se aplica la presente descripción se pueden aplicar a dispositivos de comunicación multimedia tales como un dispositivo de transmisión y recepción de difusión multimedia, un terminal de comunicación móvil, un dispositivo de vídeo de cine en casa, un dispositivo de vídeo de cine digital, una cámara de vigilancia, un dispositivo de chat de video, dispositivos de video (3D), dispositivos de video de telefonía de video y dispositivos de video médicos, y similares, que se pueden incluir, por ejemplo, en un medio de almacenamiento, una videocámara, un dispositivo de prestación de servicios de video bajo demanda (VoD), un vídeo de OTT (video de transmisión libre), un dispositivo de prestación de servicios de optimización de Internet, un dispositivo de vídeo 3D, un dispositivo de realidad virtual (VR), un dispositivo de realidad aumentada (AR), un dispositivo de videollamadas, una terminal de medios de transporte (por ejemplo, terminal de vehículos (incluyendo vehículos autónomos), terminales de aviones, terminales de barcos, etc.) y se puede usar para procesar señales de vídeo o señales de datos. Por ejemplo, el dispositivo de video OTT (video de transmisión libre) puede incluir una consola de juegos, un reproductor de Blu-ray, un televisor con acceso a Internet, un sistema de cine en casa, un teléfono inteligente, una tableta, una grabadora de video digital (DVR).
Además, el método de procesamiento al que se aplica la presente descripción se puede producir en forma de un programa ejecutado por ordenador y se puede almacenar en un medio de grabación legible por ordenador. Los datos multimedia que tienen la estructura de datos según la presente descripción también se pueden almacenar en un medio de grabación legible por ordenador. El medio de grabación legible por ordenador incluye todo tipo de dispositivos de almacenamiento y dispositivos de almacenamiento distribuido en los que se almacenan datos legibles por ordenador. El medio de grabación legible por ordenador puede ser, por ejemplo, un disco Blu-ray (BD), un bus serie universal (USB), una ROM, una PROM, una EPROM, una EEPROM, una rAm , un CD-ROM, cinta magnética, disquetes y dispositivos ópticos de almacenamiento de datos. Además, el medio de grabación legible por ordenador incluye medios implementados en forma de una onda portadora (por ejemplo, transmisión a través de Internet). Además, el flujo de bits generado por el método de codificación se puede almacenar en un medio de grabación legible por ordenador o transmitir a través de una red de comunicación cableada o inalámbrica.
Además, una realización de la presente descripción se puede implementar como un producto de programa informático mediante código de programa, y el código de programa se puede ejecutar en un ordenador según una realización de la presente descripción. El código de programa se puede almacenar en un soporte legible por un ordenador.
La Figura 18 es un diagrama que ilustra una estructura de un sistema de de difusión de forma continua de contenido.
Haciendo referencia a la Figura 18, el sistema de difusión de forma continua de contenido al que se aplica la presente descripción puede incluir en gran medida un servidor de codificación, un servidor de difusión de forma continua, un servidor web, un almacenamiento de medios, un dispositivo de usuario y un dispositivo de entrada multimedia.
El servidor de codificación sirve para comprimir la entrada de contenido de los dispositivos de entrada multimedia tales como un teléfono inteligente, una cámara y una videocámara en los datos digitales para generar un flujo de bits y transmitir el flujo de bits al servidor de difusión de forma continua. Como otro ejemplo, si los dispositivos de entrada multimedia, tales como un teléfono inteligente, una cámara y una videocámara generan directamente el flujo de bits, se puede omitir el servidor de codificación.
El flujo de bits se puede generar mediante el método de codificación al que se aplica la presente descripción o el método de generación de flujo de bits, y el servidor de difusión de forma continua puede almacenar temporalmente el flujo de bits en el proceso de transmisión o recepción del flujo de bits.
El servidor de difusión de forma continua sirve para transmitir los datos multimedia al dispositivo del usuario en base a la solicitud del usuario a través del servidor web, y el servidor web sirve como un medio que informa al usuario de qué servicios están disponibles. Cuando el usuario solicita el servicio deseado al servidor web, el servidor web entrega la solicitud del usuario al servidor de difusión de forma continua, y el servidor de difusión de forma continua transmite los datos multimedia al usuario. En este momento, el sistema de difusión de forma continua de contenido puede incluir un servidor de control separado y, en este caso, el servidor de control sirve para controlar los comandos/respuestas entre los dispositivos dentro del sistema de difusión de forma continua de contenido.
El servidor de difusión de forma continua puede recibir los contenidos desde el almacenamiento de medios y/o el servidor de codificación. Por ejemplo, cuando se reciben los contenidos del servidor de codificación, el servidor de difusión de forma continua puede recibir los contenidos en tiempo real. En este caso, para proporcionar un servicio de difusión de forma continua fluido, el servidor de difusión de forma continua puede almacenar el flujo de bits durante un tiempo predeterminado.
Como ejemplo del dispositivo de usuario, puede haber un teléfono portátil, un teléfono inteligente, un ordenador portátil, una terminal de difusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), un dispositivo de navegación, una pizarra PC, una tableta, un ultrabook, un dispositivo que se puede llevar puesto
(por ejemplo, un reloj inteligente, unas gafas inteligentes, una pantalla montada en la cabeza (HMD)), un televisor digital, un ordenador de escritorio, una señalización digital o similar.
Los servidores respectivos dentro del sistema de difusión de forma continua de contenido se pueden operar por un servidor de distribución y, en este caso, los datos recibidos por cada servidor se pueden distribuir y procesar.
Claims (10)
1. Un método de decodificación de imágenes realizado por un aparato de decodificación, el método que comprende: configurar (S1600) una lista de candidatos de predicción de vectores de movimiento avanzada, AMVP, que incluye al menos un candidato de AMVP para un bloque actual;
derivar (S1610) un almacenador temporal de predicción de vector de movimiento basada en historial, HMVP, para el bloque actual, el almacenador temporal de HMVP que incluye candidatos de HMVP para el bloque actual; derivar (S1630) una lista de candidatos de AMVP actualizada añadiendo al menos un candidato adicional, en donde el al menos un candidato adicional se deriva utilizando al menos un candidato de HMVP seleccionado de entre los candidatos de HMVP en el almacenador temporal de HMVP;
derivar (S1640) información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada;
derivar (S1650) muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual; y
generar (S1660) muestras reconstruidas para el bloque actual en base a las muestras de predicción para el bloque actual,
en donde el al menos un candidato de HMVP se selecciona de entre los candidatos de HMVP en base a un índice de almacenador temporal de HMVP,
en donde un valor del índice de almacenador temporal de HMVP representa respectivamente el al menos un candidato de HMVP entre los candidatos de HMVP,
caracterizado por que un candidato de HMVP añadido al almacenador temporal de HMVP previamente tiene un índice de almacenador temporal de HMVP relativamente más bajo,
en donde para derivar la lista de candidatos de AMVP actualizada, se selecciona un primer candidato de HMVP de los candidatos de HMVP antes que un segundo candidato de HMVP de los candidatos de HMVP, en donde el primer candidato de HMVP está representado por un índice de almacenador temporal de HMVP relativamente más bajo y el segundo candidato de HMVP está representado por un índice de almacenador temporal de HMVP relativamente más alto, y
en donde no se aplica un proceso de recorte utilizando al menos un candidato de AMVP a cada uno del al menos un candidato de HMVP.
2. El método de la reivindicación 1, en donde para derivar (S1630) la lista de candidatos de AMVP actualizada, se selecciona un candidato de HMVP cuyo índice de almacenador temporal de HMVP sea igual a 0 antes que un candidato de HMVP cuyo índice de almacenador temporal de HMVP sea igual a 1.
3. El método de la reivindicación 1, que comprende además derivar candidatos de HMVP submuestreados aplicando submuestreo a los candidatos de HMVP, en donde el al menos un candidato de HMVP se selecciona de entre los candidatos de HMVP submuestreados en base al índice de almacenador temporal de HMVP de los candidatos de HMVP submuestreados.
4. El método de la reivindicación 1, en donde entre los candidatos de HMVP en el almacenador temporal de HMVP, solo se utilizan 4 candidatos de HMVP que tienen índices de almacenador temporal relativamente más bajos para derivar la lista de candidatos de AMVP actualizada,
en donde entre los 4 candidatos de HMVP, el candidato de AMVP actualizado se deriva en base a un candidato de HMVP cuya imagen de referencia es la misma que la imagen de referencia objetivo de AMVP.
5. Un método de codificación de imágenes realizado por un aparato de codificación, el método que comprende: configurar (S1400) una lista de candidatos de AMVP que incluya al menos un candidato de AMVP para un bloque actual;
derivar un almacenador temporal de predicción de vector de movimiento basada en la historia, HMVP, para el bloque actual, el almacenador temporal de HMVP que incluye candidatos de HMVP para el bloque actual; derivar (S1430) una lista de candidatos de AMVP actualizada añadiendo al menos un candidato adicional, en donde el al menos un candidato adicional se deriva utilizando el al menos un candidato de HMVP seleccionado de entre los candidatos de HMVP en el almacenador temporal de HMVP;
derivar (S1440) información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada;
derivar (S1450) muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual;
derivar (S1460) muestras residuales para el bloque actual en base a las muestras de predicción para el bloque actual; y
codificar (S1470) de información de imagen que incluye información sobre las muestras residuales,
en donde el al menos un candidato de HMVP se selecciona de entre los candidatos de HMVP en base a un índice de almacenador temporal de HMVP,
en donde un valor del índice de almacenador temporal de HMVP representa respectivamente el al menos un candidato de HMVP entre los candidatos de HMVP,
caracterizado por que un candidato de HMVP añadido al almacenador temporal de HMVP previamente tiene un índice de almacenador temporal de HMVP relativamente más bajo,
en donde para derivar la lista de candidatos de AMVP actualizada, se selecciona un primer candidato de HMVP de los candidatos de HMVP antes que un segundo candidato de HMVP de los candidatos de HMVP, en donde el primer candidato de HMVP está representado por un índice de almacenador temporal de HMVP relativamente más bajo y el segundo candidato de HMVP está representado por un índice de almacenador temporal de HMVP relativamente más alto, y
en donde no se aplica un proceso de recorte utilizando el al menos un candidato de AMVP a cada uno del al menos un candidato de HMVP.
6. El método de la reivindicación 5, en donde para derivar (S1430) la lista de candidatos de AMVP actualizada, se selecciona un candidato de HMVP cuyo índice de almacenador temporal de HMVP sea igual a 0 antes que un candidato de HMVP cuyo índice de almacenador temporal de HMVP sea igual a 1.
7. El método de la reivindicación 5, que comprende además derivar candidatos de HMVP submuestreados aplicando submuestreo a los candidatos de HMVP, en donde al menos un candidato de HMVP se selecciona de entre los candidatos de HMVP submuestreados en base al índice de almacenador temporal de HMVP de los candidatos de HMVP submuestreados.
8. El método de la reivindicación 5, en donde entre los candidatos de HMVP en el almacenador temporal de HMVP, solo se utilizan 4 candidatos de HMVP que tienen índices de almacenador temporal relativamente más bajos para derivar la lista de candidatos de AMVP actualizada,
en donde entre los 4 candidatos de HMVP, el candidato de AMVP actualizado se deriva en base a un candidato de HMVP cuya imagen de referencia es la misma que la imagen de referencia objetivo de AMVP.
9. Un medio de almacenamiento digital legible por ordenador que almacena un flujo de bits generado por un método, el método que comprende:
configurar (S1400) una lista de candidatos de AMVP que incluye al menos un candidato de AMVP para un bloque actual;
derivar un almacenamiento temporal de predicción de vector de movimiento basada en la historia, HMVP, para el bloque actual, el almacenador temporal de HMVP que incluye candidatos de HMVP para el bloque actual; derivar (S1430) una lista de candidatos de AMVP actualizada añadiendo al menos un candidato adicional, en donde el al menos un candidato adicional se deriva utilizando el al menos un candidato de HMVP seleccionado de entre los candidatos de HMVP en el almacenador temporal de HMVP;
derivar (S1440) información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada;
derivar (S1450) muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual;
derivar (S1460) muestras residuales para el bloque actual en base a las muestras de predicción para el bloque actual; y
codificar (S1470) de información de imagen que incluye información sobre las muestras residuales,
en donde el al menos un candidato de HMVP se selecciona de entre los candidatos de HMVP en base a un índice de almacenador temporal de HMVP,
en donde un valor del índice de almacenador temporal de HMVP representa respectivamente el al menos un candidato de HMVP entre los candidatos de HMVP,
caracterizado por que un candidato de HMVP añadido al almacenador temporal de HMVP previamente tiene un índice de almacenador temporal de HMVP relativamente más bajo,
en donde para derivar la lista de candidatos de AMVP actualizada, se selecciona un primer candidato de HMVP de los candidatos de HMVP antes que un segundo candidato de HMVP de los candidatos de HMVP,
en donde el primer candidato de HMVP está representado por un índice de almacenador temporal de HMVP relativamente más bajo y el segundo candidato de HMVP está representado por un índice de almacenador temporal de HMVP relativamente más alto, y
en donde no se aplica un proceso de recorte utilizando el al menos un candidato de AMVP a cada uno del al menos un candidato de HMVP.
10. Un método para transmitir datos para información de imagen que comprende:
obtener un flujo de bits de la información de la imagen que incluye información sobre una muestra residual, en donde el flujo de bits se genera en base a la configuración (S1400) de una lista de candidatos de AMVP que incluye al menos un candidato de AMVP para un bloque actual, derivar un almacenador temporal de predicción de vector de movimiento basada en el historial, HMVP, para el bloque actual, el almacenador temporal de HMVP que incluye candidatos de HMVP para el bloque actual, derivar (S1430) una lista de candidatos de AMVP actualizada añadiendo al menos un candidato adicional, en donde el al menos un candidato adicional se deriva utilizando el al menos un candidato de HMVP seleccionado de entre los candidatos de HMVP en el almacenador temporal de HMVP, derivar (S1440) información de movimiento para el bloque actual en base a la lista de candidatos de AMVP actualizada, derivar (S1450) muestras de predicción para el bloque actual en base a la información de movimiento para el bloque actual, derivar (S1460) muestras residuales para el bloque actual en base a las muestras de predicción para el bloque actual, codificar (S1470) la información de imagen que incluye la información sobre las muestras residuales; y
transmitir los datos que comprenden el flujo de bits de la información de la imagen que incluye la información sobre las muestras residuales,
en donde el al menos un candidato de HMVP se selecciona de entre los candidatos de HMVP en base a un índice de almacenador temporal de HMVP,
en donde un valor del índice del almacenador temporal de HMVP representa respectivamente el al menos un candidato de HMVP entre los candidatos de HMVP,
caracterizado por que un candidato de HMVP añadido al almacenador temporal de HMVP previamente tiene un índice de almacenador temporal de HMVP relativamente más bajo,
en donde para derivar la lista de candidatos de AMVP actualizada, se selecciona un primer candidato de HMVP de los candidatos de HMVP antes que un segundo candidato de HMVP de los candidatos de HMVP,
en donde el primer candidato de HMVP está representado por un índice de almacenador temporal de HMVP relativamente más bajo y el segundo candidato de HMVP está representado por un índice de almacenador temporal de HMVP relativamente más alto, y
en donde no se aplica un proceso de recorte utilizando al menos un candidato de AMVP a cada uno del al menos un candidato de HMVP.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862740407P | 2018-10-02 | 2018-10-02 | |
| PCT/KR2019/012921 WO2020071793A1 (ko) | 2018-10-02 | 2019-10-02 | Hmvp를 기반으로 예측 후보를 구성하는 방법 및 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2952457T3 true ES2952457T3 (es) | 2023-10-31 |
Family
ID=70055899
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19869045T Active ES2952457T3 (es) | 2018-10-02 | 2019-10-02 | Método y aparato para construir un candidato de predicción en base a HMVP |
Country Status (9)
| Country | Link |
|---|---|
| US (2) | US11277607B2 (es) |
| EP (2) | EP4224846A1 (es) |
| JP (2) | JP7193624B2 (es) |
| KR (3) | KR20250035013A (es) |
| CN (5) | CN116708821A (es) |
| ES (1) | ES2952457T3 (es) |
| HU (1) | HUE062512T2 (es) |
| PL (1) | PL3849181T3 (es) |
| WO (1) | WO2020071793A1 (es) |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110662054B (zh) | 2018-06-29 | 2023-01-06 | 北京字节跳动网络技术有限公司 | 用于视频处理的方法、装置、计算机可读存储介质 |
| CN110662070B (zh) | 2018-06-29 | 2022-03-18 | 北京字节跳动网络技术有限公司 | 用于查找表更新的编码的运动信息的选择 |
| TWI723445B (zh) * | 2018-06-29 | 2021-04-01 | 大陸商北京字節跳動網絡技術有限公司 | 查找表的更新:fifo、約束的fifo |
| KR102542433B1 (ko) | 2018-08-10 | 2023-06-13 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 처리 방법, 비디오 처리 장치, 인코더, 디코더, 매체 및 컴퓨터 프로그램 |
| PL3813369T3 (pl) | 2018-08-13 | 2025-06-23 | Lg Electronics Inc. | Sposób predykcji międzyramkowej na podstawie bazującego na historii wektora ruchu i urządzenie wykorzystujące ten sposób |
| US11336914B2 (en) * | 2018-08-16 | 2022-05-17 | Qualcomm Incorporated | History-based candidate list with classification |
| ES2952457T3 (es) * | 2018-10-02 | 2023-10-31 | Lg Electronics Inc | Método y aparato para construir un candidato de predicción en base a HMVP |
| CN115361549B (zh) | 2018-12-21 | 2024-04-09 | 华为技术有限公司 | 一种使用基于历史的运动矢量预测的编码器、解码器及相应方法 |
| JP7637884B2 (ja) * | 2018-12-28 | 2025-03-03 | 合同会社IP Bridge1号 | 動画像符号化装置、画像符号化方法、画像符号化プログラム、動画像復号装置、画像復号方法、画像復号プログラム、画像符号化装置で生成されるビットストリームを伝送する伝送方法及び記録方法 |
| JP7407412B2 (ja) * | 2018-12-28 | 2024-01-04 | 合同会社IP Bridge1号 | 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、動画像復号プログラム、格納方法、及び伝送方法 |
| CN118018756A (zh) * | 2018-12-28 | 2024-05-10 | 知识产权之桥一号有限责任公司 | 动图像编码装置和方法、以及动图像解码装置和方法 |
| WO2020147773A1 (en) | 2019-01-16 | 2020-07-23 | Beijing Bytedance Network Technology Co., Ltd. | Inserting order of motion candidates in lut |
| CN112425160B (zh) * | 2019-02-26 | 2023-05-12 | 苹果公司 | 用于对视频信号进行编码/解码的方法及其设备 |
| KR20240122810A (ko) * | 2022-01-06 | 2024-08-13 | 엘지전자 주식회사 | 세컨더리 리스트를 이용하는 인터 예측 방법 및 장치 |
| US20240388720A1 (en) * | 2022-02-01 | 2024-11-21 | Apple Inc. | Video codec buffer quantity reduction |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2265089C (en) * | 1998-03-10 | 2007-07-10 | Sony Corporation | Transcoding system using encoding history information |
| US7295614B1 (en) * | 2000-09-08 | 2007-11-13 | Cisco Technology, Inc. | Methods and apparatus for encoding a video signal |
| GB2469679B (en) * | 2009-04-23 | 2012-05-02 | Imagination Tech Ltd | Object tracking using momentum and acceleration vectors in a motion estimation system |
| KR101630688B1 (ko) * | 2010-02-17 | 2016-06-16 | 삼성전자주식회사 | 움직임 예측 장치 및 방법과 영상 처리 장치 |
| JP2012191298A (ja) * | 2011-03-09 | 2012-10-04 | Fujitsu Ltd | 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム |
| BR112014004914B1 (pt) * | 2011-08-29 | 2022-04-12 | Ibex Pt Holdings Co., Ltd | Método de codificação de uma imagem em um modo amvp |
| WO2013058583A1 (ko) * | 2011-10-18 | 2013-04-25 | 주식회사 케이티 | 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기 |
| TWI556648B (zh) * | 2011-11-08 | 2016-11-01 | 三星電子股份有限公司 | 解碼影像的方法 |
| KR20140105039A (ko) * | 2012-01-20 | 2014-09-01 | 주식회사 아이벡스피티홀딩스 | Amvp 모드에서의 예측 블록 생성 방법 |
| US9332266B2 (en) * | 2012-08-24 | 2016-05-03 | Industrial Technology Research Institute | Method for prediction in image encoding and image encoding apparatus applying the same |
| US9699450B2 (en) * | 2012-10-04 | 2017-07-04 | Qualcomm Incorporated | Inter-view predicted motion vector for 3D video |
| US10368097B2 (en) * | 2014-01-07 | 2019-07-30 | Nokia Technologies Oy | Apparatus, a method and a computer program product for coding and decoding chroma components of texture pictures for sample prediction of depth pictures |
| US9621917B2 (en) * | 2014-03-10 | 2017-04-11 | Euclid Discoveries, Llc | Continuous block tracking for temporal prediction in video encoding |
| US9854237B2 (en) * | 2014-10-14 | 2017-12-26 | Qualcomm Incorporated | AMVP and merge candidate list derivation for intra BC and inter prediction unification |
| US10602141B2 (en) * | 2015-10-16 | 2020-03-24 | Lg Electronics Inc. | Filtering method and apparatus for improving prediction in image coding system |
| KR102746463B1 (ko) * | 2016-08-17 | 2024-12-23 | 세종대학교산학협력단 | 비디오 신호의 부호화 또는 복호화 방법 및 장치 |
| US10448010B2 (en) * | 2016-10-05 | 2019-10-15 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
| KR102480350B1 (ko) * | 2016-10-14 | 2022-12-23 | 세종대학교산학협력단 | 영상 부호화 방법/장치, 영상 복호화 방법/장치 및 비트스트림을 저장한 기록 매체 |
| CN106507106B (zh) * | 2016-11-08 | 2018-03-06 | 中国科学技术大学 | 基于参考片的视频帧间预测编码方法 |
| WO2018128232A1 (ko) * | 2017-01-03 | 2018-07-12 | 엘지전자 주식회사 | 영상 코딩 시스템에서 영상 디코딩 방법 및 장치 |
| KR20180084663A (ko) * | 2017-01-16 | 2018-07-25 | 세종대학교산학협력단 | 영상 신호 부호화/복호화 방법 및 장치 |
| US10491902B1 (en) * | 2018-07-16 | 2019-11-26 | Tencent America LLC | Method and apparatus for history-based motion vector prediction |
| US11381833B2 (en) * | 2018-07-19 | 2022-07-05 | Tencent America LLC | Method and apparatus for video coding |
| US10735763B2 (en) * | 2018-07-27 | 2020-08-04 | Tencent America LLC | Method and apparatus for motion vector prediction using spatial and temporal combination |
| US10958934B2 (en) * | 2018-07-27 | 2021-03-23 | Tencent America LLC | History-based affine merge and motion vector prediction |
| ES2952457T3 (es) * | 2018-10-02 | 2023-10-31 | Lg Electronics Inc | Método y aparato para construir un candidato de predicción en base a HMVP |
-
2019
- 2019-10-02 ES ES19869045T patent/ES2952457T3/es active Active
- 2019-10-02 CN CN202310890362.1A patent/CN116708821A/zh active Pending
- 2019-10-02 WO PCT/KR2019/012921 patent/WO2020071793A1/ko not_active Ceased
- 2019-10-02 HU HUE19869045A patent/HUE062512T2/hu unknown
- 2019-10-02 KR KR1020257005707A patent/KR20250035013A/ko active Pending
- 2019-10-02 PL PL19869045.5T patent/PL3849181T3/pl unknown
- 2019-10-02 CN CN202310891044.7A patent/CN116708824A/zh active Pending
- 2019-10-02 EP EP23179086.6A patent/EP4224846A1/en active Pending
- 2019-10-02 CN CN201980070236.3A patent/CN112913233B/zh active Active
- 2019-10-02 KR KR1020217008339A patent/KR102583581B1/ko active Active
- 2019-10-02 JP JP2021518564A patent/JP7193624B2/ja active Active
- 2019-10-02 EP EP19869045.5A patent/EP3849181B1/en active Active
- 2019-10-02 KR KR1020237032603A patent/KR102777172B1/ko active Active
- 2019-10-02 CN CN202310890700.1A patent/CN116708822B/zh active Active
- 2019-10-02 CN CN202310891017.XA patent/CN116708823B/zh active Active
-
2021
- 2021-03-29 US US17/215,316 patent/US11277607B2/en active Active
-
2022
- 2022-02-04 US US17/665,413 patent/US11968355B2/en active Active
- 2022-12-08 JP JP2022196205A patent/JP7588125B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3849181B1 (en) | 2023-07-05 |
| CN116708822B (zh) | 2026-06-16 |
| JP2022502964A (ja) | 2022-01-11 |
| JP7193624B2 (ja) | 2022-12-20 |
| KR102777172B1 (ko) | 2025-03-07 |
| KR102583581B1 (ko) | 2023-09-27 |
| EP3849181A1 (en) | 2021-07-14 |
| CN116708822A (zh) | 2023-09-05 |
| CN112913233A (zh) | 2021-06-04 |
| EP4224846A1 (en) | 2023-08-09 |
| US20220159247A1 (en) | 2022-05-19 |
| PL3849181T3 (pl) | 2023-10-09 |
| JP7588125B2 (ja) | 2024-11-21 |
| CN116708821A (zh) | 2023-09-05 |
| EP3849181A4 (en) | 2021-11-10 |
| CN116708824A (zh) | 2023-09-05 |
| KR20210036412A (ko) | 2021-04-02 |
| US11968355B2 (en) | 2024-04-23 |
| CN116708823B (zh) | 2026-06-16 |
| CN112913233B (zh) | 2023-08-04 |
| WO2020071793A1 (ko) | 2020-04-09 |
| KR20250035013A (ko) | 2025-03-11 |
| US11277607B2 (en) | 2022-03-15 |
| US20210218957A1 (en) | 2021-07-15 |
| JP2023017007A (ja) | 2023-02-02 |
| CN116708823A (zh) | 2023-09-05 |
| HUE062512T2 (hu) | 2023-11-28 |
| KR20230146092A (ko) | 2023-10-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3025197T3 (en) | Inter prediction method based on history-based motion vector, and device therefor | |
| ES2966115T3 (es) | Métodos de codificación de imagen basados en historial | |
| US11968355B2 (en) | Method and apparatus for constructing prediction candidate on basis of HMVP | |
| ES2994118T3 (en) | Apparatus and method for coding image | |
| ES3022187T3 (en) | Transform for matrix-based intra-prediction in image coding | |
| ES2982593T3 (es) | Método de codificación de imágenes basado en una transformada y dispositivo para el mismo | |
| ES3057716T3 (en) | Syntax design method and apparatus for performing coding by using syntax | |
| ES2996896T3 (en) | Method for coding image on basis of intra prediction using mpm list and apparatus therefor | |
| ES2981910T3 (es) | Transformada en codificación de imágenes basada en intrapredicción | |
| ES2926196T3 (es) | Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines | |
| ES3040198T3 (en) | Signaling of information indicating transform kernel set in image coding | |
| ES2982809T3 (es) | Codificación de información sobre conjunto de núcleos de transformada | |
| ES2988060T3 (es) | Método y dispositivo para eliminar la sintaxis redundante de la sintaxis de datos de fusión | |
| ES2983826T3 (es) | Codificación de imágenes basada en transformada | |
| ES3025935T3 (en) | Image or video coding based on signaling of transform skip- and palette coding-related information | |
| BR122021008882B1 (pt) | Método de codificação residual e dispositivo para o mesmo | |
| ES2986930T3 (es) | Codificación de imágenes basada en transformadas | |
| ES2997438T3 (en) | Method and apparatus for cabac-based entropy coding | |
| ES3063233T3 (en) | Image decoding method and image encoding method for deriving weight index information for generation of prediction sample | |
| ES3018507T3 (es) | Método y dispositivo para procesar información de imagen para la codificación de imágenes/vídeos | |
| ES2987119T3 (es) | Dispositivo y método de codificación de imágenes basado en filtrado | |
| ES2987305T3 (es) | Procedimiento y dispositivo para señalización sintáctica en sistema de codificación de vídeo/imagen | |
| ES2976723T3 (es) | Método y dispositivo de codificación de imagen/vídeo | |
| ES3043608T3 (en) | Method for signaling picture partitioning information | |
| ES3025090T3 (en) | Signaling information related to slice in image/video encoding/decoding system |
