ES2946163T3 - Manejo de la herramienta de codificación del refinamiento del vector de movimiento del lado del decodificador (DMVR) para el remuestreo de imágenes de referencia en la codificación de vídeo - Google Patents

Manejo de la herramienta de codificación del refinamiento del vector de movimiento del lado del decodificador (DMVR) para el remuestreo de imágenes de referencia en la codificación de vídeo Download PDF

Info

Publication number
ES2946163T3
ES2946163T3 ES20804873T ES20804873T ES2946163T3 ES 2946163 T3 ES2946163 T3 ES 2946163T3 ES 20804873 T ES20804873 T ES 20804873T ES 20804873 T ES20804873 T ES 20804873T ES 2946163 T3 ES2946163 T3 ES 2946163T3
Authority
ES
Spain
Prior art keywords
video
dmvr
current
image
resolution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES20804873T
Other languages
English (en)
Inventor
Jianle Chen
Fnu Hendry
Ye-Kui Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2946163T3 publication Critical patent/ES2946163T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain

Landscapes

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

Abstract

Un método de decodificación incluye determinar, por el decodificador de video, si una resolución de una imagen actual que se está decodificando es la misma que la resolución de imágenes de referencia identificadas por una lista de imágenes de referencia asociada con la imagen actual; habilitar, mediante el decodificador de video, el refinamiento del vector de movimiento del lado del decodificador (DMVR) para un bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es la misma que la resolución de cada una de las imágenes de referencia; desactivar, mediante el decodificador de vídeo, el DMVR para el bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es diferente de la resolución de cualquiera de las imágenes de referencia; y refinar, por el decodificador de video, (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Manejo de la herramienta de codificación del refinamiento del vector de movimiento del lado del decodificador (DMVR) para el remuestreo de imágenes de referencia en la codificación de vídeo
Campo técnico
En general, esta descripción describe técnicas para soportar el refinamiento del vector de movimiento del lado del decodificador (DMVR) en la codificación de vídeo. Más específicamente, esta descripción permite DMVR para el remuestreo de imágenes de referencia, pero permite deshabilitar DMVR para un bloque o muestras cuando la resolución espacial de las imágenes actuales y de referencia difieren.
Antecedentes
La cantidad de datos de vídeo necesarios para representar incluso un vídeo relativamente corto puede ser sustancial, lo que puede dar lugar a dificultades cuando los datos se van a transmitir o comunicar de otro modo a través de una red de comunicaciones con capacidad de ancho de banda limitada. Por lo tanto, los datos de vídeo generalmente se comprimen antes de comunicarse a través de las redes de telecomunicaciones modernas. El tamaño de un vídeo también podría ser un problema cuando el vídeo se almacena en un dispositivo de almacenamiento debido a que los recursos de memoria pueden ser limitados. Los dispositivos de compresión de vídeo a menudo usan software y/o hardware en la fuente para codificar los datos de vídeo antes de la transmisión o el almacenamiento, lo que reduce la cantidad de datos necesarios para representar imágenes de vídeo digital. Luego, los datos comprimidos son recibidos en el destino por un dispositivo de descompresión de vídeo que decodifica los datos de vídeo. Con recursos de la red limitados y demandas cada vez mayores de mayor calidad de vídeo, son deseables técnicas mejoradas de compresión y descompresión que mejoren la relación de compresión con poco o ningún sacrificio en la calidad de imagen.
La descripción del algoritmo del Modelo 5 de Prueba de Exploración Conjunta (JEM5), 117. MPEG MEETING; 20170116-20170120; GINEBRA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11) describe un método DMVR general y la coincidencia bilateral en la sección 2.3.9.
CHEN H ET AL: "Description of SDR, HDR y 360° video coding technology proposal by Huawei, GoPro, HiSilicon y Samsung - general application scenario", 122. MPEG MEETING; 20180416 - 20180420; SAN DIEGO; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), describe un método DMVR general en la sección 3.1.4.9.1, los fotogramas de referencia se toman de una lista.
Compendio
La invención se describe en el conjunto de reivindicaciones adjuntas. En lo sucesivo, partes de la descripción y los dibujos que se refieren a realizaciones, ejemplos o implementaciones, que no están cubiertas por las reivindicaciones, no se presentan como realizaciones de la invención, sino como ejemplos ilustrativos útiles para entender la invención.
Se proporciona un primer aspecto relacionado con un método de decodificación de un flujo de bits de vídeo codificado implementado por un decodificador de vídeo, según la reivindicación 1. El método incluye determinar, por el decodificador de vídeo, si la resolución de una imagen actual que se está decodificando es la misma que la resolución de las imágenes de referencia identificadas por una lista de imágenes de referencia asociada con la imagen actual; habilitar, por el decodificador de vídeo, el refinamiento del vector de movimiento del lado del decodificador (DMVR) para un bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es la misma que la resolución de cada una de las imágenes de referencia; deshabilitar, por el decodificador de vídeo, el DMVR para el bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es diferente de la resolución de cualquiera de las imágenes de referencia; y refinar, por el decodificador de vídeo, los vectores de movimiento correspondientes al bloque actual usando el DMVR cuando el DMVR está habilitado para el bloque actual.
El método proporciona técnicas que permiten deshabilitar DMVR de forma selectiva cuando la resolución espacial de una imagen actual es diferente a la resolución espacial de las imágenes de referencia en lugar de tener que deshabilitar DMVR para la CVS completa cuando está habilitado el remuestreo de la imagen de referencia (RPR). Al tener la capacidad de deshabilitar de forma selectiva el DMVR de esta manera, se puede mejorar la eficiencia de la codificación. Por lo tanto, el uso del procesador, la memoria y/o los recursos de la red puede reducirse tanto en el codificador como en el decodificador. Por lo tanto, el codificador / decodificador (también conocido como "códec") en la codificación de vídeo se mejora en relación con los códecs actuales. Como cuestión práctica, el proceso de codificación de vídeo mejorado ofrece al usuario una mejor experiencia de usuario cuando se envían, reciben y/o ven vídeos.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona habilitar el DMVR que comprende establecer un indicador de DMVR en un primer valor, y en donde deshabilitar el DMVR comprende establecer el indicador de DMVR en un segundo valor.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona generar las imágenes de referencia para la imagen actual en función de las listas de imágenes de referencia según un modo de interpredicción bidireccional.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona tanto habilitar como deshabilitar de forma selectiva el DMVR para bloques en una pluralidad de imágenes dependiendo de si la resolución de cada imagen es diferente o es la misma que la resolución de imágenes de referencia asociadas con las imágenes.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona habilitar el remuestreo de imágenes de referencia (RPR) para una secuencia de vídeo codificada (CVS) completa que contiene la imagen actual cuando el DMVR está deshabilitado.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona que la resolución de la imagen actual se dispone en un conjunto de parámetros del flujo de bits de vídeo codificado, y en donde el bloque actual se obtiene de un segmento de la imagen actual.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona mostrar en una pantalla de un dispositivo electrónico una imagen generada usando el bloque actual.
Se proporciona un segundo aspecto relacionado con un método de codificación de un flujo de bits de vídeo implementado por un codificador de vídeo, según la reivindicación 7. El método incluye determinar, por el codificador de vídeo, si una resolución de la imagen actual que se está codificando es la misma que la resolución de las imágenes de referencia identificadas en una lista de imágenes de referencia asociada con la imagen actual; habilitar, por el codificador de vídeo, refinamiento del vector de movimiento del lado del decodificador (DMVR) para un bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es la misma que la resolución de cada una de las imágenes de referencia; deshabilitar, por el codificador de vídeo, el DMVR para el bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es diferente de la resolución de cualquiera de las imágenes de referencia; y refinar, por el codificador de vídeo, los vectores de movimiento correspondientes al bloque actual usando el DMVR cuando se habilita del DMVR para el bloque actual.
El método proporciona técnicas que permiten deshabilitar DMVR de forma selectiva cuando la resolución espacial de una imagen actual es diferente a la resolución espacial de las imágenes de referencia en lugar de tener que deshabilitar DMVR para la CVS completa cuando está habilitado el remuestreo de la imagen de referencia (RPR). Al tener la capacidad de deshabilitar de forma selectiva DMVR de esta manera, se puede mejorar la eficiencia de la codificación. Por lo tanto, el uso del procesador, la memoria y/o los recursos de la red puede reducirse tanto en el codificador como en el decodificador. Por lo tanto, el codificador / decodificador (también conocido como "códec") en la codificación de vídeo se mejora en relación con los códecs actuales. Como cuestión práctica, el proceso de codificación de vídeo mejorado ofrece al usuario una mejor experiencia de usuario cuando se envían, reciben y/o ven vídeos.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona determinar, por el codificador de vídeo, los vectores de movimiento para la imagen actual en función de las imágenes de referencia; codificar, por el codificador de vídeo, la imagen actual en función de los vectores de movimiento; y decodificar, por el codificador de vídeo, la imagen actual usando un decodificador de referencia hipotético.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona habilitar el DMVR que comprende establecer un indicador de DMVR en un primer valor, y en donde deshabilitar el DMVR comprende establecer el indicador de DMVR en un segundo valor.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona generar las imágenes de referencia para la imagen actual en función de las listas de imágenes de referencia según un modo de interpredicción bidireccional.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona tanto habilitar como deshabilitar de forma selectiva el DMVR para bloques en una pluralidad de imágenes dependiendo de si la resolución de cada imagen es diferente o es la misma que la resolución de imágenes de referencia asociadas con las imágenes.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona habilitar el remuestreo de la imagen de referencia (RPR) para una secuencia de vídeo codificado (CVS) completa que contiene la imagen actual incluso cuando esté deshabilitado el DMVR.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona transmitir el flujo de bits de vídeo que contiene el bloque actual hacia un decodificador de vídeo.
Un tercer aspecto se relaciona con un dispositivo de decodificación. El dispositivo de decodificación incluye un receptor configurado para recibir un flujo de bits de vídeo codificado; una memoria acoplada al receptor, almacenando la memoria instrucciones; y un procesador acoplado a la memoria, el procesador configurado para ejecutar las instrucciones para hacer que el dispositivo de decodificación: determine si una resolución de una imagen actual que se está decodificando es la misma que la resolución de las imágenes de referencia identificadas por una lista de imágenes de referencia asociada con la imagen actual; habilite el refinamiento del vector de movimiento del lado del decodificador (DMVR) para un bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es la misma que la resolución de cada una de las imágenes de referencia; deshabilite el DMVR para el bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es diferente a la resolución de cualquiera de las imágenes de referencia; y refine los vectores de movimiento correspondientes al bloque actual usando el DMVR cuando el DMVR está habilitado para el bloque actual.
El dispositivo de decodificación proporciona técnicas que permiten deshabilitar DMVR de forma selectiva cuando la resolución espacial de una imagen actual es diferente a la resolución espacial de las imágenes de referencia en lugar de tener que deshabilitar DMVR para la CVS completa cuando está habilitado el remuestreo de la imagen de referencia (RPR). Al tener la capacidad de deshabilitar de forma selectiva DMVR de esta manera, se puede mejorar la eficiencia de la codificación. Por lo tanto, el uso del procesador, la memoria y/o los recursos de la red puede reducirse tanto en el codificador como en el decodificador. Por lo tanto, el codificador / decodificador (también conocido como "códec") en la codificación de vídeo se mejora en relación con los códecs actuales. Como cuestión práctica, el proceso de codificación de vídeo mejorado ofrece al usuario una mejor experiencia de usuario cuando se envían, reciben y/o ven vídeos.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona que el remuestro de la imagen de referencia (RPR) se habilita para la secuencia de vídeo codificada (CVS) completa que contiene la imagen actual cuando está deshabilitado el DMVR.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona una pantalla configurada para mostrar una imagen generada en función del bloque actual.
Un cuarto aspecto se relaciona con un dispositivo de codificación. El dispositivo de codificación incluye una memoria que contiene instrucciones; un procesador acopado a la memoria, el procesador configurado para implementar las instrucciones que hacen que el dispositivo de codificación: determine si una resolución de la imagen actual que está siendo codificada es la misma que la resolución de imágenes de referencia identificadas en una lista de imágenes de referencia asociada con la imagen actual; habilite un refinamiento del vector de movimiento de lado del decodificador (DMVR) para un bloque actual de la imagen actual cuando se determina que la resolución es la misma que la resolución de cada una de las imágenes de referencia; deshabilite el DMVR para el bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es diferente de la resolución de cualquiera de las imágenes de referencia; y refine los vectores de movimiento correspondientes al bloque actual usando el DMVR cuando se habilita el DMVr para el bloque actual; y un transmisor acoplado al procesador, el transmisor configurado para transmitir un flujo de bits de vídeo que contienen el bloque actual hacia un decodificador de vídeo.
El dispositivo de decodificación proporciona técnicas que permiten deshabilitar DMVR de forma selectiva cuando la resolución espacial de una imagen actual es diferente a la resolución espacial de las imágenes de referencia en lugar de tener que deshabilitar DMVR para la CVS completa cuando está habilitado el remuestreo de la imagen de referencia (RPR). Al tener la capacidad de deshabilitar de forma selectiva DMVR de esta manera, se puede mejorar la eficiencia de la codificación. Por lo tanto, el uso del procesador, la memoria y/o los recursos de la red puede reducirse tanto en el codificador como en el decodificador. Por lo tanto, el codificador / decodificador (también conocido como "códec") en la codificación de vídeo se mejora en relación con los códecs actuales. Como cuestión práctica, el proceso de codificación de vídeo mejorado ofrece al usuario una mejor experiencia de usuario cuando se envían, reciben y/o ven vídeos.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona que el remuestreo de la imagen de referencia (RPR) está habilitado para una secuencia de vídeo codificada (CVS) completa que contiene la imagen actual, incluso cuando el DMVR está deshabilitado.
Opcionalmente, en cualquiera de los aspectos anteriores, otra implementación del aspecto proporciona que la memoria almacene el flujo de bits de vídeo antes de que el transmisor transmita el flujo de bits hacia el decodificador de vídeo.
Un quinto aspecto se refiere a un aparato de codificación. El aparato de codificación incluye un receptor configurado para recibir una imagen para codificar o para recibir un flujo de bits para decodificar; un transmisor acoplado al receptor, el transmisor configurado para transmitir el flujo de bits a un decodificador o para transmitir una imagen decodificada a una pantalla; una memoria acoplada a al menos uno del receptor o del transmisor, la memoria configurada para almacenar instrucciones; y un procesador acoplado a la memoria, el procesador configurado para ejecutar las instrucciones almacenadas en la memoria para realizar cualquiera de los métodos descritos en la presente memoria.
El aparato de decodificación proporciona técnicas que permiten deshabilitar DMVR de forma selectiva cuando la resolución espacial de una imagen actual es diferente a la resolución espacial de las imágenes de referencia en lugar de tener que deshabilitar DMVR para la CVS completa cuando está habilitado el remuestreo de la imagen de referencia (RPR). Al tener la capacidad de deshabilitar de forma selectiva DMVR de esta manera, se puede mejorar la eficiencia de la codificación. Por lo tanto, el uso del procesador, la memoria y/o los recursos de la red puede reducirse tanto en el codificador como en el decodificador. Por lo tanto, el codificador / decodificador (también conocido como "códec") en la codificación de vídeo se mejora en relación con los códecs actuales. Como cuestión práctica, el proceso de codificación de vídeo mejorado ofrece al usuario una mejor experiencia de usuario cuando se envían, reciben y/o ven vídeos.
Se proporciona un sexto aspecto relacionado con un sistema según la reivindicación 15. El sistema incluye un codificador; y un decodificador en comunicación con el codificador, en donde el codificador o el decodificador incluye el dispositivo de decodificación, el dispositivo de codificación o el aparato de codificación descrito en la presente memoria.
El método proporciona técnicas que permiten deshabilitar DMVR de forma selectiva cuando la resolución espacial de una imagen actual es diferente a la resolución espacial de las imágenes de referencia en lugar de tener que deshabilitar DMVR para la CVS completa cuando está habilitado el remuestreo de la imagen de referencia (RPR). Al tener la capacidad de deshabilitar de forma selectiva DMVR de esta manera, se puede mejorar la eficiencia de la codificación. Por lo tanto, el uso del procesador, la memoria y/o los recursos de la red puede reducirse tanto en el codificador como en el decodificador. Por lo tanto, el codificador / decodificador (también conocido como "códec") en la codificación de vídeo se mejora en relación con los códecs actuales. Como cuestión práctica, el proceso de codificación de vídeo mejorado ofrece al usuario una mejor experiencia de usuario cuando se envían, reciben y/o ven vídeos.
Breve descripción de los dibujos
Para una comprensión más completa de esta descripción, se hace referencia ahora a la siguiente descripción breve, tomada en relación con los dibujos adjuntos y la descripción detallada, en donde los números de referencia iguales representan partes iguales.
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación de ejemplo que puede utilizar técnicas de codificación de vídeo.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo que puede implementar técnicas de codificación de vídeo.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de vídeo que puede implementar técnicas de codificación de vídeo.
La FIG. 4 es una representación de una relación entre una imagen IRAP relativa a las imágenes principales y las imágenes secundarias en un orden de decodificación y un orden de presentación.
La FIG. 5 ilustra un ejemplo de codificación multicapa para escalabilidad espacial.
La FIG. 6 es un diagrama esquemático que ilustra un ejemplo de interpredicción unidireccional.
La FIG. 7 es un diagrama esquemático que ilustra un ejemplo de interpredicción bidireccional.
La FIG. 8 ilustra un flujo de bits de vídeo.
La FIG. 9 ilustra una técnica de partición para una imagen.
La FIG. 10 es una realización de un método de decodificación de un flujo de bits de vídeo codificado.
La FIG. 11 es una realización de un método de codificación de un flujo de bits de vídeo codificado.
La FIG. 12 es un diagrama esquemático de un dispositivo de codificación de vídeo.
La FIG. 13 es un diagrama esquemático de la realización de unos medios para la codificación.
Descripción detallada
Debe entenderse desde el principio que, aunque a continuación se proporciona una realización ilustrativa de una o más realizaciones, los sistemas y/o procedimientos descritos pueden implementarse usando cualquier número de técnicas, ya sean conocidas actualmente o existentes. La descripción no debe de ninguna manera estar limitada a las implementaciones ilustrativas, dibujos, y técnicas ilustradas a continuación, que incluyen los diseños e implementaciones ejemplares ilustrados y descritos en la presente memoria, pero pueden modificarse dentro del alcance de las reivindicaciones adjuntas junto con todos sus alcances de equivalencias.
Como se usa en la presente memoria, la resolución describe el número de píxeles en un archivo de vídeo. Es decir, la resolución es el ancho y el alto de la imagen proyectada, medida en píxeles. Por ejemplo, un vídeo puede tener una resolución de 1280 (píxeles horizontales) * 720 (píxeles verticales). Esto generalmente se escribe simplemente como 1280 * 720, o abreviado a 720p. DMVR es un proceso, algoritmo o herramienta de codificación usada para refinar el movimiento o los vectores de movimiento de un bloque predicho. DMVR permite encontrar un vector de movimiento en función de dos vectores de movimiento encontrados para bipredicción usando un proceso de coincidencia de plantilla bilateral. En DMVR, se puede encontrar una combinación ponderada de unidades de codificación de predicción generadas con cada uno de los dos vectores de movimiento, y los dos vectores de movimiento se pueden refinar reemplazándolos con nuevos vectores de movimiento que apunten mejor a la unidad de codificación de predicción combinada. La función de RPR es la capacidad de cambiar la resolución espacial de imágenes codificadas en medio de un flujo de bits sin necesidad de intracodificación de la imagen en la ubicación de cambio de resolución.
La FIG. 1 es un diagrama de bloques que ilustra un sistema 10 de codificación de ejemplo que puede utilizar técnicas de codificación de vídeo como se describe en la presente memoria. Como se muestra en la FIG. 1, el sistema 10 de codificación incluye un dispositivo 12 de origen que proporciona datos de vídeo codificados para ser decodificados en un momento posterior por un dispositivo 14 de destino. En particular, el dispositivo 12 de origen puede proporcionar los datos de vídeo al dispositivo 14 de destino a través de un medio 16 legible por ordenador. El dispositivo 12 de origen y el dispositivo 14 de destino pueden comprender cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de escritorio, ordenadores portátiles (por ejemplo, ordenadores portátiles), tabletas, decodificadores, aparatos telefónicos tales como los llamados teléfonos "inteligentes", las llamadas tabletas "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión de vídeo o similares. En algunos casos, el dispositivo 12 de origen y el dispositivo 14 de destino pueden estar equipados para comunicación inalámbrica.
El dispositivo 14 de destino puede recibir los datos de vídeo codificados para ser decodificados a través del medio 16 legible por ordenador. El medio 16 legible por ordenador puede comprender cualquier tipo de medio o dispositivo capaz de mover los datos de vídeo codificados desde el dispositivo 12 de origen al dispositivo 14 de destino. En un ejemplo, el medio 16 legible por ordenador puede comprender un medio de comunicación para permitir que el dispositivo 12 de origen transmita datos de vídeo codificados directamente al dispositivo 14 de destino en tiempo real. Los datos de vídeo codificados pueden modularse según un estándar de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo 14 de destino. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrico o por cable, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global tal como Internet. El medio de comunicación puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo 12 de origen al dispositivo 14 de destino.
En algunos ejemplos, los datos codificados pueden enviarse desde la interfaz 22 de salida a un dispositivo de almacenamiento. De manera similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento mediante la interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera de una variedad de medios de almacenamiento de datos distribuidos o de acceso local, tal como un disco duro, discos Blu-ray, discos de vídeo digital (DVD), memorias de solo lectura de disco compacto (CD-ROM), memoria flash, memoria volátil o no volátil, o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo de almacenamiento puede corresponder a un servidor de archivos u otro dispositivo de almacenamiento intermedio que puede almacenar el vídeo codificado generado por el dispositivo 12 de origen. El dispositivo 14 de destino puede acceder a datos de vídeo almacenados desde el dispositivo de almacenamiento a través de transmisión o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo 14 de destino. Los servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor de protocolo de transferencia de archivos (FTP), dispositivos de almacenamiento conectado a la red (NAS) o una unidad de disco local. El dispositivo 14 de destino puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluida una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, línea de abonado digital (DSL), módem por cable, etc.) o una combinación de ambas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento puede ser una transmisión continua, una transmisión de descarga o una combinación de las mismas.
Las técnicas de esta descripción no se limitan necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como emisiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo por Internet, tales como transmisión dinámica adaptativa sobre HTTP (DASH), vídeo digital que se codificada en un medio de almacenamiento de datos, decodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 de codificación puede configurarse para soportar transmisión de vídeo unidireccional o bidireccional para soportar aplicaciones tales como transmisión de vídeo, reproducción de vídeo, emisión de vídeo y/o videotelefonía.
En el ejemplo de la FIG. 1, el dispositivo 12 de origen incluye la fuente 18 de vídeo, el codificador 20 de vídeo y la interfaz 22 de salida. El dispositivo 14 de destino incluye la interfaz 28 de entrada, el decodificador 30 de vídeo y el dispositivo 32 de visualización. Según esta descripción, el codificador 20 de vídeo del dispositivo 12 de origen y/o el decodificador 30 de vídeo del dispositivo 14 de destino pueden configurarse para aplicar las técnicas para la codificación de vídeo. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo 12 de origen puede recibir datos de vídeo desde una fuente de vídeo externa, tal como una cámara externa. Asimismo, el dispositivo 14 de destino puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
El sistema 10 de codificación ilustrado de la FIG. 1 es simplemente un ejemplo. Las técnicas para la codificación de vídeo pueden ser realizadas por cualquier dispositivo de codificación y/o decodificación de vídeo digital. Aunque las técnicas de esta descripción generalmente se realizan por un dispositivo de codificación de vídeo, las técnicas también se pueden realizar por un codificador/descodificador de vídeo, normalmente denominado "CODEC". Además, las técnicas de esta descripción también pueden ser realizadas por un preprocesador de vídeo. El codificador de vídeo y/o el decodificador pueden ser una unidad de procesamiento de gráficos (GPU) o un dispositivo similar.
El dispositivo 12 de origen y el dispositivo 14 de destino son simplemente ejemplos de tales dispositivos de codificación en los que el dispositivo 12 de origen genera datos de vídeo codificados para transmitirlos al dispositivo 14 de destino. En algunos ejemplos, el dispositivo 12 de origen y el dispositivo 14 de destino pueden funcionar de manera sustancialmente simétrica, de manera que cada uno de los dispositivos 12 de origen y de destino 14 incluye componentes de codificación y decodificación de vídeo. Por lo tanto, el sistema 10 de codificación puede soportar la transmisión de vídeo unidireccional o bidireccional entre dispositivos 12, 14 de vídeo, por ejemplo, para transmisión de vídeo, reproducción de vídeo, emisión de vídeo o videotelefonía.
La fuente 18 de vídeo del dispositivo 12 de origen puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo capturado previamente y/o una interfaz de alimentación de vídeo para recibir vídeo de un proveedor de contenido de vídeo. Como alternativa adicional, la fuente 18 de vídeo puede generar datos basados en gráficos de ordenador como la fuente de vídeo, o una combinación de vídeo en vivo, vídeo archivado y vídeo generado por ordenador.
En algunos casos, cuando la fuente 18 de vídeo es una cámara de vídeo, el dispositivo 12 de origen y el dispositivo 14 de destino pueden formar los llamados teléfonos con cámara o videoteléfonos. Sin embargo, como se mencionó anteriormente, las técnicas descritas en esta descripción pueden ser aplicables a la codificación de vídeo en general, y pueden aplicarse a aplicaciones inalámbricas y/o cableadas. En cada caso, el vídeo capturado, precapturado o generado por ordenador puede ser codificado por el codificador 20 de vídeo. La información de vídeo codificada puede luego ser enviada por la interfaz 22 de salida a un medio 16 legible por ordenador.
El medio 16 legible por ordenador puede incluir medios transitorios, tales como una transmisión inalámbrica o una transmisión de red por cable, o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tales como un disco duro, unidad flash, disco compacto, disco de vídeo digital, disco Blu-ray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo 12 de origen y proporcionar los datos de vídeo codificados al dispositivo 14 de destino, por ejemplo, a través de una transmisión de red. De manera similar, un dispositivo informático de una instalación de producción de medios, tal como una instalación de estampado de discos, puede recibir datos de vídeo codificados desde el dispositivo 12 de origen y producir un disco que contenga los datos de vídeo codificados. Por lo tanto, puede entenderse que el medio 16 legible por ordenador incluye uno o más medios legibles por ordenador de varias formas, en varios ejemplos.
La interfaz 28 de entrada del dispositivo 14 de destino recibe información del medio 16 legible por ordenador. La información del medio 16 legible por ordenador puede incluir información de sintaxis definida por el codificador 20 de vídeo, que también es usada por el decodificador 30 de vídeo, que incluye elementos de sintaxis que describen características y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, grupo de imágenes (GOP). El dispositivo 32 de visualización muestra los datos de vídeo decodificados a un usuario y puede comprender cualquiera de una variedad de dispositivos de visualización tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos emisores de luz orgánicos (OLED) u otro tipo de dispositivo de visualización.
El codificador 20 de vídeo y el decodificador 30 de vídeo pueden funcionar según un estándar de codificación de vídeo, tal como el estándar de codificación de vídeo de alta eficiencia (HEVC) actualmente en desarrollo, y pueden ajustarse al modelo de prueba HEVC (HM). Alternativamente, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden funcionar según otros estándares patentados o de la industria, tal como el estándar H.264 del Sector de Estandarización de Telecomunicaciones de la Unión Internacional de Telecomunicaciones (ITU-T), también denominado Grupo de Expertos en Imágenes en Movimiento (MPEG)-4, Parte 10, Codificación de Vídeo Avanzada (AVC), H.265/HEVC o extensiones de tales estándares. Las técnicas de esta descripción, sin embargo, no se limitan a ningún estándar de codificación en particular. Otros ejemplos de estándares de codificación de vídeo incluyen MPEG-2 y H.263 de ITU-T. Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden estar integrados cada uno con un codificador y decodificador de audio, y pueden incluir unidades de multiplexor-demultiplexor (MUX-DEMUX) apropiadas, u otro hardware y software, para manejar la codificación tanto audio como vídeo en un flujo de datos común o flujos de datos separados. Si corresponde, las unidades MUX-DEMUX pueden cumplir con el protocolo multiplexor H.223 de ITU u otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
El codificador 20 de vídeo y el decodificador 30 de vídeo pueden implementarse como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de aplicación (ASIC), matrices de puertas programables en campo (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado legible por ordenador no transitorio y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta descripción. Cada uno de codificador 20 de vídeo y decodificador 30 de vídeo puede incluirse en uno o más codificadores o decodificadores, cualquiera de los cuales puede integrarse como parte de un codificador/descodificador (CODEC) combinado en un dispositivo respectivo. Un dispositivo que incluye un codificador 20 de vídeo y/o un decodificador 30 de vídeo puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de codificador 20 de vídeo que puede implementar técnicas de codificación de vídeo. El codificador 20 de vídeo puede realizar intracodificación e intercodificación de bloques de vídeo dentro de segmentos de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de un fotograma o imagen de vídeo dado. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de fotogramas o imágenes adyacentes de una secuencia de vídeo. El intramodo (modo I) puede referirse a cualquiera de varios modos de codificación basados en el espacio. Los intramodos, tal como la predicción unidireccional (también conocida como unipredicción) (modo P) o la predicción bidireccional (también conocida como bipredicción) (modo B), pueden referirse a cualquiera de varios modos de codificación basados en el tiempo.
Como se muestra en la FIG. 2, el codificador 20 de vídeo recibe un bloque de vídeo actual dentro de un fotograma de vídeo para ser codificado. En el ejemplo de la FIG. 2, el codificador 20 de vídeo incluye la unidad 40 de selección de modo, la memoria 64 de fotogramas de referencia, el sumador 50, la unidad 52 de procesamiento de transformada, la unidad 54 de cuantificación y la unidad 56 de codificación de entropía. La unidad 40 de selección de modo, a su vez, incluye la unidad 44 de compensación de movimiento, la unidad 42 de estimación de movimiento, la unidad 46 de intrapredicción (también conocida como intrapredicción) y la unidad 48 de partición. Para la reconstrucción de bloques de vídeo, el codificador 20 de vídeo también incluye la unidad 58 de cuantificación inversa, la unidad 60 de transformada inversa y el sumador 62. También se puede incluir un filtro de desbloqueo (no mostrado en la FIG. 2) para filtrar los límites del bloque para eliminar los artefactos de bloqueo del vídeo reconstruido. Si lo desea, el filtro de desbloqueo normalmente filtraría la salida del sumador 62. También se pueden usar filtros adicionales (en bucle o postbucle) además del filtro de desbloqueo. Tales filtros no se muestran por brevedad, pero si lo desea, puede filtrar la salida del sumador 50 (como un filtro en bucle).
Durante el proceso de codificación, el codificador 20 de vídeo recibe un fotograma o segmento de vídeo para codificar. El fotograma o segmento se puede dividir en múltiples bloques de vídeo. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento realizan una codificación interpredictiva del bloque de vídeo recibido en relación con uno o más bloques en uno o más fotogramas de referencia para proporcionar una predicción temporal. La unidad 46 de intrapredicción puede realizar alternativamente una codificación intrapredictiva del bloque de vídeo recibido en relación con uno o más bloques vecinos en el mismo fotograma o segmento que el bloque a codificar para proporcionar predicción espacial. El codificador 20 de vídeo puede realizar varias pasadas de codificación, por ejemplo, para seleccionar un modo de codificación apropiado para cada bloque de datos de vídeo.
Además, la unidad 48 de partición puede dividir bloques de datos de vídeo en subbloques, en función de la evaluación de esquemas de partición anteriores en pases de codificación anteriores. Por ejemplo, la unidad 48 de partición puede inicialmente dividir un fotograma o segmento en unidades de codificación más grandes (LCU) y dividir cada una de las LCU en unidades de subcodificación (sub-CU) en función del análisis de distorsión de tasa (por ejemplo, optimización de distorsión de tasa). La unidad 40 de selección de modo puede producir además una estructura de datos de árbol cuádruple indicativa de la partición de una LCU en sub-CU. Las CU de nodo hoja del árbol cuádruple pueden incluir una o más unidades de predicción (PU) y una o más unidades de transformada (TLT).
La presente descripción usa el término "bloque" para referirse a cualquiera de una CU, PU o TU, en el contexto de HEVC, o estructuras de datos similares en el contexto de otros estándares (por ejemplo, macrobloques y subbloques del mismo en H.264/AVC). Una CU incluye un nodo de codificación, PU y TU asociadas con el nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y tiene forma cuadrada. El tamaño de la CU puede variar desde 8*8 píxeles hasta el tamaño del bloque de árbol con un máximo de 64*64 píxeles o más. Cada CU puede contener una o más PU y una o más TU. Los datos de sintaxis asociados con una CU pueden describir, por ejemplo, la partición de la CU en una o más PU. Los modos de particionamiento pueden diferir entre si la CU está codificada en modo directo o salteado, codificada en modo intrapredicción o codificada en modo interpredicción (también conocido como interpredicción). Las PU pueden dividirse para que no tengan forma cuadrada. Los datos de sintaxis asociados con una CU también pueden describir, por ejemplo, la partición de la CU en una o más TU según un árbol cuádruple. Una TU puede tener forma cuadrada o no cuadrada (por ejemplo, rectangular).
La unidad 40 de selección de modo puede seleccionar uno de los modos de codificación, intra o inter, por ejemplo, en función de los resultados de error, y proporciona el bloque intra o intercodificado resultante al sumador 50 para generar datos de bloque residual y al sumador 62 para reconstruir el bloque codificado para su uso como fotograma de referencia. La unidad 40 de selección de modo también proporciona elementos de sintaxis, tales como vectores de movimiento, indicadores intramodo, información de partición y otra información de sintaxis similar, a la unidad 56 de codificación de entropía.
La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden estar altamente integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por la unidad 42 de estimación de movimiento, es el proceso de generar vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de un fotograma o imagen de vídeo actual en relación con un bloque predictivo dentro de un fotograma de referencia (u otra unidad codificada) en relación con el bloque actual que está codificando dentro del bloque actual (u otra unidad codificada). Un bloque predictivo es un bloque que se encuentra que coincide estrechamente con el bloque a codificar, en términos de diferencia de píxeles, que puede determinarse mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrática (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador 20 de vídeo puede calcular valores para posiciones de píxeles de subenteros de imágenes de referencia almacenadas en la memoria 64 de fotogramas de referencia. Por ejemplo, el codificador 20 de vídeo puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones fraccionarias de píxel de la imagen de referencia. Por lo tanto, la unidad 42 de estimación de movimiento puede realizar una búsqueda de movimiento con respecto a las posiciones de píxeles completos y posiciones de píxeles fraccionarios y generar un vector de movimiento con precisión de píxeles fraccionarios.
La unidad 42 de estimación de movimiento calcula un vector de movimiento para una PU de un bloque de vídeo en un segmento intercodificado comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia se puede seleccionar de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria 64 de fotogramas de referencia. La unidad 42 de estimación de movimiento envía el vector de movimiento calculado a la unidad 56 de codificación de entropía y a la unidad 44 de compensación de movimiento.
La compensación de movimiento, realizada por la unidad 44 de compensación de movimiento, puede implicar buscar o generar el bloque predictivo en función del vector de movimiento determinado por la unidad 42 de estimación de movimiento. Nuevamente, la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden integrarse funcionalmente, en algunos ejemplos. Al recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad 44 de compensación de movimiento puede ubicar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel, como se explica a continuación. En general, la unidad 42 de estimación de movimiento realiza la estimación de movimiento en relación con los componentes de luminancia, y la unidad 44 de compensación de movimiento usa vectores de movimiento calculados en función de los componentes de luminancia tanto para los componentes de crominancia como para los componentes de luminancia. La unidad 40 de selección de modo también puede generar elementos de sintaxis asociados con los bloques de vídeo y el segmento de vídeo para su uso por el decodificador 30 de vídeo al decodificar los bloques de vídeo del segmento de vídeo.
La unidad 46 de intrapredicción puede intrapredecir un bloque actual, como una alternativa a la interpredicción realizada por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento, como se describió anteriormente. En particular, la unidad 46 de intrapredicción puede determinar un modo de intrapredicción a usar para codificar un bloque actual. En algunos ejemplos, la unidad 46 de intrapredicción puede codificar un bloque actual usando varios modos de intrapredicción, por ejemplo, durante pasadas de codificación separadas, y la unidad 46 de intrapredicción (o la unidad 40 de selección de modo, en algunos ejemplos) puede seleccionar un modo de intrapredicción apropiado a usar de los modos probados.
Por ejemplo, la unidad 46 de intrapredicción puede calcular los valores de distorsión de tasa usando un análisis de distorsión de tasa para los diversos modos de intrapredicción probados, y seleccionar el modo de intrapredicción que tenga las mejores características de distorsión de tasa entre los modos probados. El análisis de distorsión de tasa generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque original sin codificar que fue codificado para producir el bloque codificado, así como una tasa de bits (es decir, una cantidad de bits) utilizada para producir el bloque codificado. La unidad 46 de intrapredicción puede calcular relaciones a partir de las distorsiones y tasas para los diversos bloques codificados para determinar qué modo de intrapredicción exhibe el mejor valor de distorsión de tasa para el bloque.
Además, la unidad 46 de intrapredicción puede configurarse para codificar bloques de profundidad de un mapa de profundidad usando un modo de modelado de profundidad (DMM). La unidad 40 de selección de modo puede determinar si un modo DMM disponible produce mejores resultados de codificación que un modo de intrapredicción y los otros modos DMM, por ejemplo, usando optimización de distorsión de tasa (RDO). Los datos para una imagen de textura correspondiente a un mapa de profundidad pueden almacenarse en la memoria 64 de fotogramas de referencia. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento también pueden configurarse para interpredecir bloques de profundidad de un mapa de profundidad.
Después de seleccionar un modo de intrapredicción para un bloque (por ejemplo, un modo de intrapredicción convencional o uno de los modos DMM), la unidad 46 de intrapredicción puede proporcionar información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad 56 de codificación de entropía. La unidad 56 de codificación de entropía puede codificar la información que indica el modo de intrapredicción seleccionado. El codificador 20 de vídeo puede incluir en los datos de configuración de flujo de bits transmitidos, que puedan incluir una pluralidad de tablas de índice de modo de intrapredicción y una pluralidad de tablas de índice de modo de intrapredicción modificadas (también denominadas tablas de mapeo de palabras clave), definiciones de contextos de codificación para varios bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índice de modo de intrapredicción y una tabla de índice de modo de intrapredicción modificada para usar en cada uno de los contextos.
El codificador 20 de vídeo forma un bloque de vídeo residual restando los datos de predicción de la unidad 40 de selección de modo del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o componentes que realizan esta operación de resta.
La unidad 52 de procesamiento de transformada aplica una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficiente de transformada residual. La unidad 52 de procesamiento de transformada puede realizar otras transformaciones que son conceptualmente similares a DCT. También podrían usarse transformadas de ondícula, transformadas de enteros, transformadas de subbanda u otros tipos de transformadas.
La unidad 52 de procesamiento de transformada aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada residual. La transformada puede convertir la información residual de un dominio de valor de píxel a un dominio de transformada, tal como un dominio de frecuencia. La unidad 52 de procesamiento de transformada puede enviar los coeficientes de transformada resultantes a la unidad 54 de cuantificación. La unidad 54 de cuantificación cuantifica los coeficientes de transformada para reducir aún más la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bit asociada con algunos o todos los coeficientes. El grado de cuantificación puede modificarse ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad 54 de cuantificación puede realizar entonces un escaneo de la matriz que incluya los coeficientes de transformada cuantificados. Alternativamente, la unidad 56 de codificación de entropía puede realizar el escaneo.
Después de la cuantificación, la unidad 56 de codificación de entropía codifica los coeficientes de transformada cuantificados. Por ejemplo, la unidad 56 de codificación de entropía puede realizar codificación de longitud variable adaptable al contexto (CAVLC), codificación aritmética binaria adaptable al contexto (CABAC), codificación aritmética binaria adaptable al contexto basada en sintaxis (SBAC), codificación de entropía de partición de intervalo de probabilidad (PIPE) u otra técnica de codificación de entropía. En el caso de la codificación de entropía basada en el contexto, el contexto puede basarse en bloques vecinos. Después de la codificación de entropía por la unidad 56 de codificación de entropía, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, el decodificador 30 de vídeo) o archivarse para su posterior transmisión o recuperación.
La unidad 58 de cuantificación inversa y la unidad 60 de transformada inversa aplican cuantificación inversa y transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para uso posterior como bloque de referencia. La unidad 44 de compensación de movimiento puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de uno de los fotogramas de la memoria 64 de fotogramas de referencia. La unidad 44 de compensación de movimiento también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles subenteros para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción con compensación de movimiento producido por la unidad 44 de compensación de movimiento para producir un bloque de vídeo reconstruido para su almacenamiento en la memoria 64 de fotogramas de referencia. El bloque de vídeo reconstruido puede ser usado por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento como un bloque de referencia para intercodificar un bloque en un fotograma de vídeo posterior.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de decodificador 30 de vídeo que implementa técnicas de codificación de vídeo. En el ejemplo de la FIG. 3, el decodificador 30 de vídeo incluye una unidad 70 de decodificación de entropía, una unidad 72 de compensación de movimiento, una unidad 74 de intrapredicción, una unidad 76 de cuantificación inversa, una unidad 78 de transformada inversa, una memoria 82 de fotogramas de referencia y un sumador 80. El decodificador 30 de vídeo puede, en algunos ejemplos, realizar un paso de decodificación generalmente recíproco al paso de codificación descrito con respecto al codificador 20 de vídeo (FIG.
2). La unidad 72 de compensación de movimiento puede generar datos de predicción en función de los vectores de movimiento recibidos de la unidad 70 de decodificación de entropía, mientras que la unidad 74 de intrapredicción puede generar datos de predicción en función de los indicadores de modo de intrapredicción recibidos de la unidad 70 de decodificación de entropía.
Durante el proceso de decodificación, el decodificador 30 de vídeo recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un segmento de vídeo codificado y elementos de sintaxis asociados del codificador 20 de vídeo. La unidad 70 de decodificación de entropía del decodificador 30 de vídeo decodifica la entropía del flujo de bits de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intrapredicción y otros elementos de sintaxis. La unidad 70 de decodificación de entropía envía los vectores de movimiento y otros elementos de sintaxis a la unidad 72 de compensación de movimiento. El decodificador 30 de vídeo puede recibir los elementos de sintaxis en el nivel de segmento de vídeo y/o el nivel de bloque de vídeo.
Cuando el segmento de vídeo se codifica como un segmento intracodificado (I), la unidad 74 de intrapredicción puede generar datos de predicción para un bloque de vídeo del segmento de vídeo actual en función de un modo de intrapredicción señalizado y datos de bloques previamente decodificados del fotograma o imagen actual. Cuando el fotograma de vídeo se codifica como un segmento intercodificado (por ejemplo, B, P o GPB), la unidad 72 de compensación de movimiento produce bloques predictivos para un bloque de vídeo del segmento de vídeo actual en función de los vectores de movimiento y otros elementos de sintaxis recibidos de unidad 70 de decodificación de entropía. Los bloques predictivos pueden generarse a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador 30 de vídeo puede construir las listas de fotogramas de referencia, Lista 0 y Lista 1, usando técnicas de construcción predeterminadas en función de las imágenes de referencia almacenadas en la memoria 82 de fotogramas de referencia.
La unidad 72 de compensación de movimiento determina la información de predicción para un bloque de vídeo del segmento de vídeo actual analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques predictivos para el bloque de vídeo actual que se está decodificando. Por ejemplo, la unidad 72 de compensación de movimiento usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra o interpredicción) usado para codificar los bloques de vídeo del segmento de vídeo, un tipo de segmento de interpredicción (por ejemplo, segmento B, segmento P o segmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento, vectores de movimiento para cada bloque de vídeo intercodificado del segmento, estado de interpredicción para cada bloque de vídeo intercodificado del segmento y otra información para decodificar los bloques de vídeo en el segmento de vídeo actual.
La unidad 72 de compensación de movimiento también puede realizar una interpolación en función de los filtros de interpolación. La unidad 72 de compensación de movimiento puede usar filtros de interpolación como los que usa el codificador 20 de vídeo durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles subenteros de bloques de referencia. En este caso, la unidad 72 de compensación de movimiento puede determinar los filtros de interpolación usados por el codificador 20 de vídeo a partir de los elementos de sintaxis recibidos y usar los filtros de interpolación para producir bloques predictivos.
Los datos para una imagen de textura correspondiente a un mapa de profundidad pueden almacenarse en la memoria 82 de fotogramas de referencia. La unidad 72 de compensación de movimiento también puede configurarse para predecir bloques de profundidad de un mapa de profundidad.
En una realización, el decodificador 30 de vídeo incluye una interfaz de usuario (LTI) 84. La interfaz 84 de usuario está configurada para recibir entradas de un usuario del decodificador 30 de vídeo (por ejemplo, un administrador de red). A través de la interfaz 84 de usuario, el usuario puede administrar o cambiar la configuración en el decodificador 30 de vídeo. Por ejemplo, el usuario puede introducir o proporcionar de otra forma un valor para un parámetro (por ejemplo, un indicador) para controlar la configuración y/o la operación del decodificador 30 de vídeo según la preferencia del usuario. La interfaz 84 de usuario puede ser, por ejemplo, una interfaz gráfica de usuario (GUI) que permite al usuario interactuar con el decodificador 30 de vídeo a través de iconos gráficos, menús desplegables, casillas de verificación, etc. En algunos casos, la interfaz 84 de usuario puede recibir información del usuario a través de un teclado, un ratón u otro dispositivo periférico. En una realización, un usuario puede acceder a la interfaz 84 de usuario a través de un teléfono inteligente, un dispositivo de tableta, un ordenador personal ubicado de forma remota del decodificador 30 de vídeo, etc. Como se usa en la presente memoria, la interfaz 84 de usuario puede denominarse entrada externa o medio externo.
Teniendo en cuenta lo anterior, las técnicas de compresión de vídeo realizan predicción espacial (intraimagen) y/o predicción temporal (interimagen) para reducir o eliminar la redundancia inherente a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un segmento de vídeo (es decir, una imagen de vídeo o una parte de una imagen de vídeo) puede dividirse en bloques de vídeo, que también pueden denominarse bloques de árbol, bloques de árbol de codificación (CTB), unidades de árbol de codificación (CTU), unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un segmento intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un segmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse fotogramas y las imágenes de referencia pueden denominarse fotogramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica según un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica según un modo de intracodificación y los datos residuales. Para una mayor compresión, los datos residuales pueden transformarse del dominio de píxeles a un dominio de transformada, dando como resultado coeficientes de transformada residuales, que luego pueden cuantificarse. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, se pueden escanear para producir un vector unidimensional de coeficientes de transformada, y se puede aplicar la codificación de entropía para lograr una compresión aún mayor.
La compresión de imágenes y vídeos ha experimentado un rápido crecimiento, lo que ha llevado a varios estándares de codificación. Dichos estándares de codificación de vídeo incluyen H.261 de ITU-T, Organización Internacional de Normalización/Comisión Electrotécnica Internacional (ISO/IEC) Parte 2 de MPEG-1, H.262 de ITU-T o MPEG-2 Parte 2 de ISO/IEC, H.263 de ITU-T, Parte 2 de MPEG-4 de ISO/IEC, codificación de vídeo avanzada (AVC), también conocida como H.264 de ITU-T o Parte 10 de MPEG-4 de ISO/IEC, y codificación de vídeo de alta eficiencia (HEVC), también conocida como H.265 de ITU-T o Parte 2 de MPEG-H. La AVC incluye extensiones tales como codificación de vídeo escalable (SVC), codificación de vídeo multivista (MVC) y codificación de vídeo multivista más profundidad (MVC+D) y AVC de 3D (3d -AVC). HEVC incluye extensiones tales como HEVC escalable (SHVC), HEVC multivista (MV-HEVC) y HEVC 3D (3D-HEVC).
También hay un nuevo estándar de codificación de vídeo, denominado codificación de vídeo versátil (VVC), que está siendo desarrollado por el equipo conjunto de expertos en vídeo (JVET) de ITU-T e ISO/IEC. Si bien el estándar VVC tiene varios borradores de trabajo, un borrador de trabajo (WD) de VVC en particular, a saber, B. Bross, J. Chen y S. Liu, "Versatile Video Coding (Draft 5)", JVET-N1001-v3, 13.a reunión de JVET, 27 de marzo de 2019 (borrador 5 de VVC) se incorpora por referencia en su totalidad en la presente memoria.
La descripción de las técnicas descritas en la presente memoria se basa en el estándar de codificación de vídeo, codificación de vídeo versátil (VVC), en desarrollo por el equipo conjunto de expertos en vídeo (JVET) de ITU-T e ISO/IEC. Sin embargo, las técnicas también se aplican a otras especificaciones de códecs de vídeo.
La FIG. 4 es una representación 400 de una relación entre una imagen 402 de un punto de acceso intraaleatorio (IRAP) en relación con las imágenes 404 principales y las imágenes 406 secundarias en un orden 408 de decodificación y un orden 410 de presentación. En una realización, la imagen 402 de IRAP se denomina imagen de acceso aleatorio limpio (CRA) o imagen de actualización instantánea del decodificador (IDR) con imagen decodificable de acceso aleatorio (RADL). En HEVC, las imágenes de IDR, las imágenes de CRA y las imágenes de acceso de enlace roto (BLA) se consideran imágenes 402 de IRAP. Para VVC, durante la 12.a reunión de JVET en octubre de 2018, se acordó tener tanto imágenes de IDR como de CRA como imágenes de IRAP. En una realización, las imágenes de acceso de enlace roto (BLA) y de actualización gradual del decodificador (GDR) también pueden considerarse imágenes de IRAP. El proceso de decodificación de una secuencia de vídeo codificada siempre comienza en un IRAP.
Como se muestra en la FIG. 4, las imágenes 404 principales (por ejemplo, las imágenes 2 y 3) siguen a la imagen 402 de IRAP en el orden 408 de decodificación, pero preceden a la imagen 402 de IRAP en el orden 410 de presentación. La imagen 406 secundaria sigue a la imagen 402 de IRAP tanto en el orden 408 de decodificación como en el orden 410 de presentación. Si bien en la FIG. 4 se representan dos imágenes 404 principales y una imagen 406 secundaria, los expertos en la técnica apreciarán que más o menos imágenes 404 principales y/o imágenes 406 secundarias pueden estar presentes en el orden 408 de decodificación y el orden 410 de presentación en aplicaciones prácticas.
Las imágenes 404 principales en la FIG. 4 se han dividido en dos tipos, a saber, avance con salto de acceso aleatorio (RASL) y RADL. Cuando la decodificación comienza con la imagen 402 de IRAP (por ejemplo, la imagen 1), la imagen de RADL (por ejemplo, la imagen 3) puede decodificarse adecuadamente; sin embargo, la imagen de RASL (por ejemplo, la imagen 2) no puede decodificarse correctamente. Por lo tanto, la imagen de RASL se descarta. A la luz de la distinción entre imágenes de RADL y de RASL, el tipo de imagen 404 principal asociada con la imagen 402 de IRAP debe identificarse como de RADL o de RASL para una codificación eficiente y adecuada. En HEVC, cuando las imágenes de RASL y de RADL están presentes, está restringido que para las imágenes de RASL y de RADL que están asociadas con la misma imagen 402 de IRAP, las imágenes de RASL precederán a las imágenes RADL en el orden 410 de presentación.
Una imagen 402 de IRAP proporciona las siguientes dos funcionalidades/beneficios importantes. En primer lugar, la presencia de una imagen 402 de IRAP indica que el proceso de decodificación puede comenzar a partir de esa imagen.
Esta funcionalidad permite una función de acceso aleatorio en la que el proceso de decodificación comienza en esa posición en el flujo de bits, no necesariamente el comienzo del flujo de bits, siempre que esté presente una imagen 402 de IRAP en esa posición. En segundo lugar, la presencia de una imagen 402 de IRAP refresca el proceso de decodificación de manera que una imagen codificada que comienza en la imagen 402 de IRAP, excluyendo las imágenes de RASL, se codifica sin ninguna referencia a imágenes anteriores. Tener una imagen 402 de IRAP presente en el flujo de bits, en consecuencia, impediría cualquier error que pueda ocurrir durante la decodificación de imágenes codificadas antes de que la imagen 402 de IRAP se propague a la imagen 402 de IRAP y aquellas imágenes que siguen a la imagen 402 de IRAP en el orden 408 de decodificación.
Si bien las imágenes 402 de IRAP proporcionan funcionalidades importantes, vienen con una penalización en la eficiencia de compresión. La presencia de una imagen 402 de IRAP provoca un aumento en la tasa de bits. Esta penalización a la eficiencia de compresión se debe a dos razones. En primer lugar, como una imagen 402 de IRAP es una imagen intrapredicha, la propia imagen requeriría relativamente más bits para representarse en comparación con otras imágenes (por ejemplo, imágenes 404 principales, imágenes 406 secundarias) que son imágenes interpredichas. En segundo lugar, debido a que la presencia de una imagen 402 de IRAP rompe la predicción temporal (esto se debe a que el decodificador actualizaría el proceso de decodificación, en el que una de las acciones del proceso de decodificación para esto es eliminar las imágenes de referencia anteriores en la memoria intermedia de imágenes decodificadas (DPB)), la imagen 402 de IRAP hace que la codificación de las imágenes que siguen a la imagen 402 de IRAP en el orden 408 de decodificación sea menos eficiente (es decir, necesita más bits para representarse) debido a que tienen menos imágenes de referencia para su codificación de intrapredicción.
Entre los tipos de imágenes que se consideran imágenes 402 de IRAP, la imagen IDR en HEVC tiene una señalización y una derivación diferentes en comparación con otros tipos de imágenes. Algunas de las diferencias son las siguientes.
Para la señalización y la derivación de un valor de recuento de orden de imagen (POC) de una imagen de IDR, la parte del bit más significativo (MSB) del POC no se deriva de la imagen clave anterior, sino que simplemente se establece que sea igual a 0.
Para la información de señalización necesaria para la gestión de imágenes de referencia, la cabecera de segmento de una imagen IDR no contiene la información necesaria para ser señalizada para ayudar a la gestión de imágenes de referencia. Para otros tipos de imágenes (es decir, CRA, secundarias (T railing), acceso de subcapa temporal (TSA), etc.), la información tal como el conjunto de imágenes de referencia (RPS) que se describe a continuación u otras formas de información similar (por ejemplo, listas de imágenes de referencia) son necesarios para el proceso de marcado de imágenes de referencia (es decir, el proceso para determinar el estado de las imágenes de referencia en la memoria intermedia de imágenes decodificadas (DPB), tanto si se usan como referencia como si no se usan como referencia). Sin embargo, para la imagen de IDR, tal información no necesita señalizarse porque la presencia de IDR indica que el proceso de decodificación simplemente marcará todas las imágenes de referencia en el DPB como no usadas como referencia.
En HEVC y VVC, las imágenes 402 de IRAP y las imágenes 404 principales pueden estar contenidas cada una dentro de una sola unidad de capa de abstracción de red (NAL). Un conjunto de unidades de NAL puede denominarse unidad de acceso. Las imágenes 402 de IRAP y las imágenes 404 principales reciben diferentes tipos de unidades de NAL para que puedan ser identificadas fácilmente por las aplicaciones a nivel del sistema. Por ejemplo, un empalmador de vídeo necesita comprender los tipos de imágenes codificadas sin tener que comprender demasiados detalles del elemento de sintaxis en el flujo de bits codificado, particularmente para identificar imágenes 402 de IRAP de imágenes de no IRAP e identificar imágenes 404 principales, incluida la determinación de RASL e imágenes de RADL, a partir de imágenes 406 secundarias. Las imágenes 406 secundarias son aquellas imágenes que están asociadas con una imagen 402 de IRAP y siguen a la imagen 402 de IRAP en el orden 410 de presentación. Una imagen puede seguir a la imagen 402 de IRAP particular en el orden 408 de decodificación y preceder a cualquier otra imagen 402 de IRAP en el orden 408 de decodificación. Para esto, dar a las imágenes 402 de IRAP y a las imágenes 404 principales su propio tipo de unidad de NAL ayuda a tales aplicaciones.
Para HEVC, los tipos de unidades de NAL para imágenes de IRAP incluyen lo siguiente:
BLA con imagen principal (BLA_W_LP): unidad de NAL de una imagen de acceso de enlace roto (BLA) que puede ir seguida de una o más imágenes principales en el orden de decodificación.
BLA con RADL (BLA W RADL): unidad de NAL de una imagen de BLA que puede ir seguida de una o más imágenes de RADL pero ninguna imagen de RASL en el orden de decodificación.
BLA sin imagen principal (BLA N LP): unidad de NAL de una imagen de BLA que no va seguida de una imagen principal en el orden de decodificación.
IDR con RADL (IDR W RADL): unidad de NAL de una imagen de IDR que puede ir seguida de una o más imágenes de RADL pero ninguna imagen de RASL en el orden de decodificación.
IDR sin imagen principal (IDR N LP): unidad de NAL de una imagen de IDR que no va seguida de una imagen principal en el orden de decodificación.
CRA: unidad de NAL de una imagen de acceso aleatorio limpio (CRA) que puede ir seguida de imágenes principales (es decir, imágenes de RASL o imágenes de RADL o ambas).
RADL: unidad de NAL de una imagen de RADL.
RASL: unidad de NAL de una imagen de RASL.
Para VVC, el tipo de unidad de NAL para imágenes 402 de IRAP e imágenes 404 principales son las siguientes:
IDR con RADL (IDR W RADL): unidad de NAL de una imagen de IDR que puede ir seguida de una o más imágenes de RADL pero ninguna imagen de RASL en el orden de decodificación.
IDR sin imagen principal (IDR N LP): unidad de NAL de una imagen de IDR que no va seguida de una imagen principal en el orden de decodificación.
CRA: unidad de NAL de una imagen de acceso aleatorio limpio (CRA) que puede ir seguida de imágenes principales (es decir, imágenes de RASL o imágenes de RADL o ambas).
RADL: unidad de NAL de una imagen de RADL.
RASL: unidad de NAL de una imagen de RASL.
La función de remuestreo de la imagen de referencia (RPR) es la capacidad de cambiar la resolución espacial de imágenes codificadas en el medio de un flujo de bits sin necesidad de intracodificación de la imagen en la ubicación de cambio de resolución. Para permitir esto, una imagen debe poder hacer referencia, con fines de interpredicción, a una o más imágenes de referencia cuya resolución espacial sea diferente de la de la imagen actual. En consecuencia, es necesario el remuestreo de una imagen de referencia de este tipo, o parte de la misma, para codificar y decodificar la imagen actual. Por lo tanto, el nombre de RPR. Esta característica también puede denominarse cambio de resolución adaptable (ARC) u otros nombres. Hay casos de uso o escenarios de aplicación que se beneficiarían de la función de RPR, incluidos los siguientes.
Adaptación de tasa en videotelefonía y conferencias. Esto es para adaptar el vídeo codificado a las condiciones cambiantes de la red. Cuando las condiciones de la red empeoran y el ancho de banda disponible se reduce, el codificador puede adaptarse codificando imágenes de menor resolución.
Cambio de interlocutor activo en videoconferencia con varios participantes. Para las videoconferencias con varios participantes, es común que el tamaño del vídeo para el interlocutor activo sea mayor o más grande que el tamaño del vídeo para el resto de los participantes de la conferencia. Cuando cambia el interlocutor activo, es posible que también deba ajustarse la resolución de la imagen para cada participante. La necesidad de tener características de ARC se vuelve más importante cuando ocurre un cambio con frecuencia en el interlocutor activo.
Inicio rápido en la transmisión. Para una aplicación de transmisión, es común que la aplicación guarde en la memoria intermedia hasta una cierta longitud de imagen decodificada antes de comenzar a mostrar imágenes. Comenzar el flujo de bits con una resolución más pequeña permitiría que la aplicación tuviera suficientes imágenes en la memoria intermedia para comenzar a mostrarse más rápido.
Conmutación de flujo adaptable en transmisión. La especificación de la transmisión adaptable dinámica sobre HTTP (DASH) incluye una característica denominada @IddeEstructuradeTransmisióndeMedios (@mediaStreamStructureId). Esta función permite conmutar entre diferentes representaciones en puntos de acceso aleatorio de GOP abierto con imágenes principales no decodificables, por ejemplo, imágenes de CRA con imágenes de RASL asociadas en HEVC. Cuando dos representaciones diferentes del mismo vídeo tienen tasas de bits diferentes pero la misma resolución espacial mientras tienen el mismo valor de @mediaStreamStructureId, se puede realizar la conmutación entre las dos representaciones en una imagen de CRA con imágenes de RASL asociadas, y las imágenes de RASL asociadas con las imágenes de CRA en conmutación se pueden decodificar con una calidad aceptable, lo que permite una conmutación perfecta. Con ARC, la función @mediaStreamStructureId también se podría usar para conmutar entre representaciones DASH con diferentes resoluciones espaciales.
Varios métodos facilitan las técnicas básicas para soportar RPR / ARC, tal como la señalización de listas de resoluciones de imágenes, algunas restricciones de remuestreo de imágenes de referencia en el DPB, etc. Además, durante la 14.a reunión de JVET en Ginebra, hubo varias contribuciones de entrada que sugirieron restricciones que deberían aplicarse a VVC para soportar RPR. Las restricciones sugeridas incluyen lo siguiente.
Algunas herramientas serán deshabilitadas para la codificación de bloques en la imagen actual cuando se trata de imágenes de referencia que tienen una resolución diferente a la imagen actual. Las herramientas incluyen lo siguiente.
Predicción de vector de movimiento temporal (TMVP) y TMVP avanzado (ATMVP). Esto fue sugerido por JVET-N0118.
Refinamiento del vector de movimiento del lado del decodificador (DMVR). Esto fue sugerido por JVET-N0279.
Flujo óptico bidireccional (BIO). Esto fue sugerido por JVET-N0279.
No se permite la bipredicción de un bloque a partir de una imagen de referencia con una resolución diferente a la imagen actual. Esto fue sugerido por JVET-N0118.
Para la compensación de movimiento, el filtrado de muestras se aplicará solo una vez, es decir, si se necesita remuestreo e interpolación para llegar a una resolución de pel más fina (por ejemplo, resolución de un cuarto de pel), los dos filtros deben combinarse y aplicarse una sola vez. Esto fue sugerido por JVET-N0118.
La escalabilidad en la codificación de vídeo normalmente se soporta usando técnicas de codificación multicapa. Un flujo de bits multicapa comprende una capa base (BL) y una o más capas de mejora (EL). Los ejemplos de escalabilidades incluyen la escalabilidad espacial, la escalabilidad de señal a ruido (SNR), la escalabilidad de vistas múltiples, etc. Cuando se usa una técnica de codificación multicapa, una imagen o una parte de la misma se puede codificar (1) sin usar una imagen de referencia, es decir, usando intrapredicción; (2) haciendo referencia a imágenes de referencia que están en la misma capa, es decir, usando interpredicción; o (3) haciendo referencia a imágenes de referencia que están en otra(s) capa(s), es decir, usando predicción entre capas. Una imagen de referencia usada para la predicción entre capas de la imagen actual se denomina imagen de referencia entre capas (ILRP).
La FIG. 5 ilustra un ejemplo de codificación multicapa para escalabilidad 500 espacial. Las imágenes 502 en la Capa N tienen una resolución diferente (por ejemplo, una resolución más baja) que las imágenes 504 en la Capa N+1. En una realización, la Capa N se considera que es la capa base y la Capa N+1 se considera que es una capa de mejora como se describe anteriormente. Las imágenes 502 en la Capa N y las imágenes 504 en la Capa N+1 se pueden codificar usando interpredicción (como se muestra con la flecha continua). Las imágenes 502 también pueden codificarse usando predicción entre capas (como se muestra mediante la flecha discontinua).
En el contexto de RPR, una imagen de referencia se puede remuestrear seleccionando una imagen de referencia de una capa inferior o usando predicción entre capas para generar una imagen de referencia de capa superior en función de una imagen de referencia de capa inferior.
Las familias de codificación de vídeo H.26x anteriores han proporcionado soporte para la escalabilidad en perfil(es) separado(s) del perfil(es) para la codificación de una sola capa. La codificación de vídeo escalable (SVC) es la extensión escalable de la AVC/H.264 que brinda soporte para escalabilidades espacial, temporal y de calidad. Para SVC, se señaliza un indicador en cada macrobloque (MB) en las imágenes de EL para indicar si el MB de EL se predice usando el bloque coubicado de una capa inferior. La predicción del bloque coubicado puede incluir textura, vectores de movimiento y/o modos de codificación. Las implementaciones de SVC no pueden reutilizar directamente implementaciones de H.264/AVC no modificadas en su diseño. La sintaxis y el proceso de decodificación del macrobloque de EL de SVL difieren de la sintaxis y el proceso de decodificación de H.264/AVC.
HEVC escalable (SHVC) es la extensión del estándar HEVC/H.265 que brinda soporte para escalabilidades espacial y de calidad, HEVC multivista (MV-HEVC) es la extensión del estándar HEVC/H.265 que proporciona soporte para escalabilidad de multivista, y HEVC de 3D (3D-HEVC) es la extensión del HEVC/H.264 que proporciona soporte para codificación de vídeo tridimensional (3D) que es más avanzada y más eficiente que MV-HEVc . Tenga en cuenta que la escalabilidad temporal se incluye como una parte integral del códec de HEVC de una sola capa. El diseño de la extensión multicapa de HEVC emplea la idea de que las imágenes decodificadas usadas para la predicción entre capas provienen solo de la misma unidad de acceso (AU) y se tratan como imágenes de referencia a largo plazo (LTRP), y se les asigna índices de referencia en la(s) lista(s) de imágenes de referencia junto con otras imágenes de referencia temporales en la capa actual. La predicción entre capas (ILP) se logra en el nivel de unidad de predicción (PU) estableciendo el valor del índice de referencia para referirse a la(las) imagen o imágenes de referencia entre capas en la(s) lista(s) de imágenes de referencia.
En particular, tanto el remuestreo de la imagen de referencia como las características de escalabilidad espacial requieren el remuestreo de una imagen de referencia o parte de la misma. El remuestreo de la imagen de referencia se puede realizar a nivel de imagen o a nivel de bloque de codificación. Sin embargo, cuando se hace referencia a RPR como una característica de codificación, es una característica para la codificación de una sola capa. Aun así, es posible o incluso preferible desde el punto de vista del diseño del códec usar el mismo filtro de remuestreo tanto para la función de RPR de la codificación de una sola capa como para la función de escalabilidad espacial para la codificación de múltiples capas.
JVET-N0279 sugirió deshabilitar DMVR para RPR. Más precisamente, sugirió deshabilitar el uso de DMVR para la secuencia de vídeo codificada (CVS) completa cuando RPR está habilitado. Se observa que incluso cuando la función de RPR está habilitada, la imagen actual no se refiere a una imagen de referencia con una resolución diferente en muchos casos. Por lo tanto, deshabilitar DMVR para la CVS completa es una restricción innecesaria y puede afectar a la eficiencia de la codificación.
En la presente memoria se describen técnicas que permiten deshabilitar de forma selectiva DMVR cuando la resolución espacial de una imagen actual es diferente a la resolución espacial de las imágenes de referencia en lugar de tener que deshabilitar DMVR para la CVS completa cuando RPR está activado. Al tener la capacidad de deshabilitar de forma selectiva DMVR de esta manera, se puede mejorar la eficiencia de la codificación. Por lo tanto, el uso del procesador, la memoria y/o los recursos de la red puede reducirse tanto en el codificador como en el decodificador. Por lo tanto, el codificador / decodificador (también conocido como "códec") en la codificación de vídeo se mejora en relación con los códecs actuales. Como cuestión práctica, el proceso de codificación de vídeo mejorado ofrece al usuario una mejor experiencia de usuario cuando se envían, reciben y/o ven vídeos.
La FIG. 6 es un diagrama esquemático que ilustra un ejemplo de interpredicción 600 unidireccional. Puede emplearse la interpredicción 600 unidireccional para determinar vectores de movimiento para bloques codificados y/o decodificados creados cuando se divide una imagen.
La interpredicción 600 unidireccional emplea un fotograma 630 de referencia con un bloque 631 de referencia para predecir un bloque 611 actual en un fotograma 610 actual. El fotograma 630 de referencia puede colocarse temporalmente después del fotograma 610 actual como se muestra (por ejemplo, como un fotograma de referencia posterior), pero también puede colocarse temporalmente antes del fotograma 610 actual (por ejemplo, como un fotograma de referencia anterior) en algunos ejemplos. El fotograma 610 actual es un fotograma/imagen de ejemplo que se está codificando/descodificando en un momento particular. El fotograma 610 actual contiene un objeto en el bloque 611 actual que coincide con un objeto en el bloque 631 de referencia del fotograma 630 de referencia. El fotograma 630 de referencia es un fotograma que se emplea como una referencia para codificar un fotograma 610 actual, y un bloque 631 de referencia es un bloque en el fotograma 630 de referencia que contiene un objeto también contenido en el bloque 611 actual del fotograma 610 actual.
El bloque 611 actual es cualquier unidad de codificación que está siendo codificada/decodificada en un punto específico del proceso de codificación. El bloque 611 actual puede ser un bloque particionado completo, o puede ser un subbloque cuando se emplea el modo de interpredicción afín. El fotograma 610 actual está separado del fotograma 630 de referencia por alguna distancia temporal (TD) 633. La TD 633 indica una cantidad de tiempo entre el fotograma 610 actual y el fotograma 630 de referencia en una secuencia de vídeo, y puede medirse en unidades de fotogramas. La información de predicción para el bloque 611 actual puede hacer referencia al fotograma 630 de referencia y/o al bloque 631 de referencia mediante un índice de referencia que indica la dirección y la distancia temporal entre los fotogramas. Durante el período de tiempo representado por la TD 633, el objeto en el bloque 611 actual se mueve desde una posición en el fotograma 610 actual a otra posición en el fotograma 630 de referencia (por ejemplo, la posición del bloque 631 de referencia). Por ejemplo, el objeto puede moverse a lo largo de una trayectoria 613 de movimiento, que es una dirección de movimiento de un objeto a lo largo del tiempo. Un vector 635 de movimiento describe la dirección y magnitud del movimiento del objeto a lo largo de la trayectoria 613 de movimiento sobre la TD 633. En consecuencia, un vector 635 de movimiento codificado, un bloque 631 de referencia y un residuo que incluye la diferencia entre el bloque 611 actual y el bloque 631 de referencia proporciona información suficiente para reconstruir un bloque 611 actual y colocar el bloque 611 actual en el fotograma 610 actual.
La FIG. 7 es un diagrama esquemático que ilustra un ejemplo de interpredicción 700 bidireccional. Puede emplearse la interpredicción 700 bidireccional para determinar vectores de movimiento para bloques codificados y/o decodificados creados cuando se divide una imagen.
La interpredicción 700 bidireccional es similar a la interpredicción 600 unidireccional, pero emplea un par de fotogramas de referencia para predecir un bloque 711 actual en un fotograma 710 actual. Por lo tanto, el fotograma 710 actual y el bloque 711 actual son sustancialmente similares al fotograma 610 actual y al bloque 611 actual, respectivamente. El fotograma 710 actual se coloca temporalmente entre un fotograma 720 de referencia anterior, que ocurre antes del fotograma 710 actual en la secuencia de vídeo, y un fotograma 730 de referencia posterior, que ocurre después del fotograma 710 actual en la secuencia de vídeo. El fotograma 720 de referencia anterior y el fotograma 730 de referencia posterior son, por lo demás, sustancialmente similares al fotograma 630 de referencia.
El bloque 711 actual se empareja con un bloque 721 de referencia anterior en el fotograma 720 de referencia anterior y con un bloque 731 de referencia posterior en el fotograma de referencia 730 posterior. Tal coincidencia indica que, en el transcurso de la secuencia de vídeo, un objeto se mueve desde una posición en el bloque 721 de referencia anterior a una posición en el bloque 731 de referencia posterior a lo largo de una trayectoria 713 de movimiento y a través del bloque 711 actual. El fotograma 710 actual está separado del fotograma 720 de referencia anterior por alguna distancia temporal anterior (TD0) 723 y separado del fotograma 730 de referencia posterior por alguna distancia temporal posterior (TD1) 733. La TD0723 indica una cantidad de tiempo entre el fotograma 720 de referencia anterior y el fotograma 710 actual en la secuencia de vídeo en unidades de fotogramas. La TD1 733 indica una cantidad de tiempo entre el fotograma 710 actual y el fotograma 730 de referencia posterior en la secuencia de vídeo en unidades de fotograma. Por lo tanto, el objeto se mueve desde el bloque 721 de referencia anterior al bloque 711 actual a lo largo de la trayectoria 713 de movimiento durante un período de tiempo indicado por TD0 723. El objeto también se mueve desde el bloque 711 actual al bloque 731 de referencia posterior a lo largo de la trayectoria 713 de movimiento durante un período de tiempo indicado por TD1 733. La información de predicción para el bloque 711 actual puede hacer referencia al fotograma 720 de referencia anterior y/o al bloque 721 de referencia anterior y al fotograma 730 de referencia posterior y/o al bloque 731 de referencia posterior mediante un par de índices de referencia que indican la dirección y la distancia temporal entre los fotogramas.
Un vector de movimiento anterior (MV0) 725 describe la dirección y la magnitud del movimiento del objeto a lo largo de la trayectoria 713 de movimiento sobre la TD0723 (por ejemplo, entre el fotograma 720 de referencia anterior y el fotograma 710 actual). Un vector de movimiento posterior (MV1) 735 describe la dirección y magnitud del movimiento del objeto a lo largo de la trayectoria 713 de movimiento sobre la TD1 733 (por ejemplo, entre el fotograma 710 actual y el fotograma 730 de referencia posterior). Como tal, en la interpredicción 700 bidireccional, el bloque 711 actual se puede codificar y reconstruir empleando el bloque 721 de referencia anterior y/o el bloque 731 de referencia posterior, MV0725 y MV1 735.
En una realización, la interpredicción y/o la interpredicción bidireccional pueden llevarse a cabo muestra por muestra (por ejemplo, píxel por píxel) en lugar de bloque por bloque por bloque. Es decir, se puede determinar un vector de movimiento que apunta a cada muestra en el bloque 721 de referencia anterior y/o el bloque 731 de referencia posterior para cada muestra en el bloque 711 actual. En tales realizaciones, el vector 725 de movimiento y el vector 735 de movimiento representados en la FIG. 7 representan una pluralidad de vectores de movimiento correspondientes a la pluralidad de muestras en el bloque 711 actual, el bloque 721 de referencia anterior y el bloque 731 de referencia posterior.
Tanto en el modo de fusión como en el modo de predicción avanzada de vectores de movimiento (AMVP), se genera una lista de candidatos añadiendo vectores de movimiento candidatos a una lista de candidatos en un orden definido por un patrón de determinación de lista de candidatos. Tales vectores de movimiento candidatos pueden incluir vectores de movimiento según la interpredicción 600 unidireccional, la interpredicción 700 bidireccional o combinaciones de los mismos. Específicamente, se generan vectores de movimiento para bloques vecinos cuando tales bloques están codificados. Tales vectores de movimiento se añaden a una lista de candidatos para el bloque actual y el vector de movimiento para el bloque actual se selecciona de la lista de candidatos. A continuación, el vector de movimiento se puede señalizar como el índice del vector de movimiento seleccionado en la lista de candidatos. El decodificador puede construir la lista de candidatos usando el mismo proceso que el codificador y puede determinar el vector de movimiento seleccionado de la lista de candidatos en función del índice señalizado. Por lo tanto, los vectores de movimiento candidatos incluyen vectores de movimiento generados según la interpredicción 600 unidireccional y/o la interpredicción 700 bidireccional, dependiendo de qué enfoque se use cuando se codifiquen tales bloques vecinos.
La FIG. 8 ilustra un flujo 800 de bits de vídeo. Como se usa en la presente memoria, el flujo 800 de bits de vídeo también puede denominarse flujo de bits de vídeo codificado, flujo de bits o variaciones de los mismos. Como se muestra en la FIG. 8, el flujo 800 de bits comprende un conjunto de parámetros de secuencia (SPS) 802, un conjunto de parámetros de imagen (PPS) 804, una cabecera 806 de segmento y datos 808 de imagen.
El SPS 802 contiene datos que son comunes a todas las imágenes en una secuencia de imágenes (SOP). Por el contrario, el PPS 804 contiene datos que son comunes a la imagen completa. La cabecera 806 de segmento contiene información sobre el segmento actual tal como, por ejemplo, el tipo de segmento, cuál de las imágenes de referencia se usará, etc. El SPS 802 y el PPS 804 pueden denominarse genéricamente conjunto de parámetros. El SPS 802, el PPS 804 y la cabecera 806 de segmento son tipos de unidades de capa de abstracción de red (NAL). Una unidad de NAL es una estructura de sintaxis que contiene una indicación del tipo de datos a seguir (por ejemplo, datos de vídeo codificados). Las unidades de NAL se clasifican en capa de codificación de vídeo (VCL) y unidades de NAL sin VCL. Las unidades NAL con VCL contienen los datos que representan los valores de las muestras en las imágenes de vídeo, y las unidades que son NAL sin VCL contienen cualquier información adicional asociada, tal como conjuntos de parámetros (importantes datos de cabecera que pueden aplicarse a una gran cantidad de unidades NAL con VCL ) e información de mejora suplementaria (información de temporización y otros datos suplementarios que pueden mejorar la usabilidad de la señal de vídeo decodificada pero que no son necesarios para decodificar los valores de las muestras en las imágenes de vídeo). Los expertos en la técnica apreciarán que el flujo 800 de bits puede contener otros parámetros e información en aplicaciones prácticas.
Los datos 808 de imagen de la FIG. 8 comprende datos asociados con las imágenes o el vídeo que se está codificando o decodificando. Los datos 808 de imagen pueden denominarse simplemente la carga útil o datos que se transportan en el flujo 800 de bits. En una realización, los datos 808 de imagen comprenden la CVS 814 (o CLVS) que contiene una pluralidad de imágenes 810. El CVS 814 es una secuencia de vídeo codificada para cada secuencia de vídeo de capa codificada (CLVS) en el flujo 800 de bits de vídeo. En particular, la CVS y la CLVS son los mismos cuando el flujo 800 de bits de vídeo incluye una sola capa. La CVS y la CLVS solo son diferentes cuando el flujo 800 de bits de vídeo incluye múltiples capas.
Un segmento de cada imagen 810 puede estar contenido dentro de su propia unidad 812 de NAL con VCL. El conjunto de unidades 812 de NAL con VCL en la CVS 814 puede denominarse unidad de acceso.
La FIG. 9 ilustra una técnica 900 de partición para una imagen 910. La imagen 910 puede ser similar a cualquiera de las imágenes 810 de la FIG. 8. Como se muestra, la imagen 910 se puede dividir en una pluralidad de segmentos 912. Un segmento es una región espacialmente distinta de un fotograma (por ejemplo, una imagen) que se codifica por separado de cualquier otra región en el mismo fotograma. Si bien, se representan tres segmentos 912 en la FIG. 9, se pueden usar más o menos segmentos en aplicaciones prácticas. Cada segmento 912 puede dividirse en una pluralidad de bloques 914. Los bloques 914 en la FIG. 9 puede ser similares al bloque 711 actual, el bloque de referencia 721 anterior y el bloque 731 de referencia posterior en la FIG. 7. El bloque 914 puede representar una CU. Si bien se representan cuatro bloques 914 en la FIG. 9, se pueden usar más o menos bloques en aplicaciones prácticas.
Cada bloque 914 puede dividirse en una pluralidad de muestras 916 (por ejemplo, píxeles). En una realización, el tamaño de cada bloque 914 se mide en muestras de luminancia. S bien se representan dieciséis muestras 916 en la FIG. 9, se pueden usar más o menos muestras en aplicaciones prácticas.
La FIG. 10 es una realización de un método 1000 de decodificación de un flujo de bits de vídeo codificado implementado por un decodificador de vídeo (por ejemplo, el decodificador 30 de vídeo). El método 1000 puede realizarse después de que el flujo de bits decodificado haya sido recibido directa o indirectamente desde un codificador de vídeo (por ejemplo, el codificador 20 de vídeo). El método 1000 mejora el proceso de decodificación al permitir que DMVR se deshabilite de forma selectiva cuando la resolución espacial de una imagen actual es diferente a la resolución espacial de las imágenes de referencia en lugar de tener que deshabilitar DMVR para la CVS completa cuando RPR está habilitado. Al tener la capacidad de deshabilitar de forma selectiva DMVR de esta manera, se puede mejorar la eficiencia de la codificación. Por lo tanto, como cuestión práctica, se mejora el rendimiento de un códec, lo que conduce a una mejor experiencia de usuario.
En el bloque 1002, el decodificador de vídeo determina si una resolución de una imagen actual que se está decodificando es la misma que la resolución de las imágenes de referencia identificadas por una lista de imágenes de referencia. En una realización, el decodificador de vídeo recibe un flujo de bits de vídeo codificado (por ejemplo, el flujo 800 de bits). El flujo de bits de vídeo codificado contiene listas de imágenes de referencia, indica una resolución de una imagen actual e indica un modo de interpredicción bidireccional. En una realización, una estructura de lista de imágenes de referencia contiene las listas de imágenes de referencia. En una realización, las listas de imágenes de referencia se usan para la interpredicción bidireccional. En una realización, la resolución de la imagen actual se dispone en un conjunto de parámetros del flujo de bits de vídeo codificado. En una realización, la resolución de las imágenes de referencia se deriva en función de la imagen actual, se infiere en función de la resolución de la imagen actual, se analiza a partir del flujo de bits o se obtiene de otro modo. En una realización, las imágenes de referencia para la imagen actual se generan en función de las listas de imágenes de referencia según un modo de interpredicción bidireccional.
En el bloque 1004, el decodificador de vídeo habilita DMVR para un bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es la misma que la resolución de cada una de las imágenes de referencia. En una realización, el decodificador de vídeo habilita el DMVR estableciendo un indicador de DMVR en un primer valor (por ejemplo, verdadero, uno, etc.). En una realización, DMVR es un proceso opcional incluso cuando DMVR está habilitado. Es decir, no es necesario realizar DMVR incluso cuando DMVr está habilitado.
En el bloque 1006, el decodificador de vídeo deshabilita el DMVR para el bloque actual de la imagen actual cuando la resolución de la imagen actual es diferente a la resolución de cualquiera de las imágenes de referencia. En una realización, el decodificador de vídeo deshabilita el DMVR estableciendo el indicador de DMVR en un segundo valor (por ejemplo, falso, cero).
En el bloque 1008, el decodificador de vídeo refina los vectores de movimiento correspondientes al bloque actual cuando el indicador de DMVR se establece en el primer valor. En una realización, el método 1000 comprende además habilitar y deshabilitar de forma selectiva el DMVR para otros bloques en la imagen actual dependiendo de si la resolución de la imagen actual es diferente o igual que la resolución de las imágenes de referencia.
En una realización, el método comprende además habilitar el remuestreo de imágenes de referencia (RPR) para una secuencia de vídeo codificada (CVS) completa que contiene la imagen actual incluso cuando el DMVR está deshabilitado.
En una realización, el bloque actual se obtiene a partir de un segmento de la imagen actual. En una realización, la imagen actual comprende una pluralidad de segmentos, y en donde el bloque actual se obtiene a partir de un segmento de la pluralidad de segmentos.
En una realización, se muestra una imagen generada en función de la imagen actual para un usuario de un dispositivo electrónico (por ejemplo, un teléfono inteligente, tableta, ordenador portátil, ordenador personal, etc.).
La FIG. 11 es una realización de un método 1100 de codificación de un flujo de bits de vídeo implementado por un codificador de vídeo (por ejemplo, el codificador 20 de vídeo). El método 900 puede realizarse cuando una imagen (por ejemplo, de un vídeo) debe codificarse en un flujo de bits de vídeo y luego transmitirse hacia un decodificador de vídeo (por ejemplo, el decodificador 30 de vídeo). El método 1100 mejora el proceso de decodificación al permitir que DMVR se deshabilite de forma selectiva cuando la resolución espacial de una imagen actual es diferente a la resolución espacial de las imágenes de referencia en lugar de tener que deshabilitar DMVR para la CVS completa cuando RPR está habilitado. Al tener la capacidad de deshabilitar de forma selectiva DMVR de esta manera, se puede mejorar la eficiencia de la codificación. Por lo tanto, como cuestión práctica, se mejora el rendimiento de un códec, lo que conduce a una mejor experiencia de usuario.
En el bloque 1102, el codificador de vídeo determina una resolución de una imagen actual que se está codificando es la misma que la resolución de imágenes de referencia identificadas por una lista de imágenes de referencia. En una realización, una estructura de lista de imágenes de referencia contiene las listas de imágenes de referencia. En una realización, las listas de imágenes de referencia se usan para la interpredicción bidireccional. En una realización, la resolución de la imagen actual se codifica en un conjunto de parámetros de un flujo de bits de vídeo. En una realización, las imágenes de referencia para la imagen actual se generan en función de las listas de imágenes de referencia según un modo de interpredicción bidireccional.
En el bloque 1104, el codificador de vídeo habilita DMVR para un bloque actual de la imagen actual cuando la resolución de la imagen actual se determina que es la misma que la resolución de las imágenes de referencia. En una realización, el codificador de vídeo habilita DMVR estableciendo un indicador de DMVR a un primer valor (por ejemplo, verdadero, uno, etc.). En una realización, DMVR es un proceso opcional incluso cuando DMVR está habilitado. Es decir, no es necesario realizar DMVR incluso cuando DMVR está habilitado.
En una realización, el método incluye determinar vectores de movimiento para la imagen actual en función de las imágenes de referencia, codificar la imagen actual en función de los vectores de movimiento y decodificar la imagen actual usando un decodificador de referencia hipotético (HRD).
En el bloque 1106, el codificador de vídeo deshabilita el DMVR para el bloque actual de la imagen actual cuando la resolución de la imagen actual es diferente de la resolución de cualquiera de las imágenes de referencia. En una realización, el codificador de vídeo deshabilita DMVR estableciendo el indicador de DMVR a un segundo valor (por ejemplo, falso, cero).
En el bloque 1108, el codificador de vídeo refina los vectores de movimiento correspondientes al bloque actual cuando el indicador de DMVR se establece al primer valor. En una realización, el método 1100 comprende además habilitar y deshabilitar de forma selectiva el DMVR para otros bloques en la imagen actual dependiendo de si la resolución de la imagen actual es diferente o es la misma que la resolución de las imágenes de referencia.
En una realización, el método comprende además habilitar el remuestreo de la imagen de referencia (RPR) para la secuencia de vídeo codificada (CVS) completa que contiene la imagen actual incluso cuando el DMVR está deshabilitado.
En una realización, el bloque actual se obtiene a partir de un segmento de la imagen actual. En una realización, la imagen actual comprende una pluralidad de segmentos, y en donde el bloque actual se obtiene a partir de un segmento de la pluralidad de segmentos.
En una realización, el codificador de vídeo genera un flujo de bits de vídeo que contiene el bloque actual y transmite el flujo de bits de vídeo hacia un decodificador de vídeo. En una realización, el codificador de vídeo almacena el flujo de bits de vídeo para su transmisión hacia el decodificador de vídeo.
En una realización, se describe un método para decodificar un flujo de bits de vídeo. El flujo de bits de vídeo comprende al menos una imagen. Cada imagen comprende una pluralidad de segmentos. Cada segmento de la pluralidad de segmentos comprende una pluralidad de bloques de codificación y una pluralidad de listas de imágenes de referencia. Cada lista de imágenes de referencia de la pluralidad de listas de imágenes de referencia comprende una pluralidad de imágenes de referencia que pueden usarse para la intrapredicción de los bloques de codificación en el segmento.
El método incluye analizar un conjunto de parámetros para obtener la información de resolución de la imagen actual; obtener dos listas de imágenes de referencia del segmento actual en la imagen actual; determinar una imagen de referencia para decodificar el bloque de codificación actual en el segmento actual; determinar la resolución de la imagen de referencia; decidir si se usa o habilita el refinamiento del vector de movimiento del lado del decodificador (DMVR) para decodificar el bloque de codificación actual en función de las resoluciones de la imagen actual y la imagen de referencia; y decodificar el bloque de codificación actual.
En una realización, DMVR no se usa o se deshabilita para la decodificación del bloque de codificación actual cuando las resoluciones de la imagen actual y la imagen de referencia son diferentes.
En una realización, se describe un método para decodificar un flujo de bits de vídeo. El flujo de bits de vídeo comprende al menos una imagen. Cada imagen comprende una pluralidad de segmentos. Cada segmento de la pluralidad de segmentos está asociado con una cabecera que contiene una pluralidad de elementos de sintaxis. Cada segmento de la pluralidad de segmentos comprende una pluralidad de bloques de codificación y una pluralidad de listas de imágenes de referencia. Cada lista de imágenes de referencia de la pluralidad de listas de imágenes de referencia comprende una pluralidad de imágenes de referencia que pueden usarse para la intrapredicción de los bloques de codificación en el segmento actual.
El método incluye analizar un conjunto de parámetros para obtener un indicador que especifica si la herramienta/técnica de codificación de refinamiento de vector de movimiento del lado del decodificador (DMVR) puede usarse para decodificar imágenes en la secuencia de vídeo codificada actual; obtener el segmento actual en la imagen actual; y cuando el valor del indicador que especifica si se puede usar la herramienta/técnica de codificación de refinamiento del vector de movimiento del lado del decodificador (DMVR) para decodificar imágenes en la secuencia de vídeo codificada actual especifica que se puede usar DMVR, analizar la cabecera del segmento asociado con el segmento actual para obtener un indicador que especifique si la herramienta de codificación de DMVR se puede usar para decodificar los bloques de codificación en el segmento actual.
En una realización, la herramienta de codificación de DMVR no se usa o está deshabilitada para decodificar el bloque de codificación actual cuando el valor del indicador que especifica si la herramienta de codificación de DMVR se puede usar para decodificar bloques de codificación en el segmento actual especifica que la herramienta de codificación no se puede usar para decodificar el segmento actual.
En una realización, cuando no está presente, el valor del indicador que especifica si la herramienta de codificación de DMVR se puede usar para decodificar bloques de codificación en el segmento actual se deduce que es el mismo que el valor del indicador que especifica si la herramienta/técnica de codificación de refinamiento de vector de movimiento lateral (DMVR) se puede usar para decodificar imágenes en la secuencia de vídeo codificada actual.
En un realización, se describe un método de codificación de un flujo de bits de vídeo. El flujo de bits de vídeo comprende al menos una imagen. Cada imagen comprende una pluralidad de segmentos. Cada segmento de la pluralidad de segmentos está asociado con una cabecera que contiene una pluralidad de elementos de sintaxis. Cada segmento de la pluralidad de segmentos comprende una pluralidad de bloques de codificación y una pluralidad de listas de imágenes de referencia. Cada lista de imágenes de referencia de la pluralidad de listas de imágenes de referencia comprende una pluralidad de imágenes de referencia que pueden usarse para la intrapredicción de los bloques de codificación en el actual.
El método comprende determinar si la herramienta/técnica de codificación de refinamiento del vector de movimiento del lado del decodificador (DMVR) puede usarse para codificar imágenes en la secuencia de vídeo codificada actual; analizar un conjunto de parámetros para obtener la información de resolución de cada flujo de bits de la imagen; obtener dos listas de imágenes de referencia del segmento actual en la imagen actual; analizar las listas de imágenes de referencia del segmento actual para obtener imágenes de referencia activas que pueden usarse para decodificar bloques de codificación del segmento actual; restringir que la herramienta de codificación de DMVR no se pueda usar para codificar bloques de codificación en el segmento actual si se cumple al menos una de las siguientes condiciones: la herramienta de codificación de DMVR no se puede usar para codificar imágenes en la secuencia de vídeo codificada actual; y las resoluciones de la imagen actual y al menos una de la imagen de referencia son diferentes.
Se describe un método para decodificar un flujo de bits de vídeo. El flujo de bits de vídeo comprende al menos una imagen. Cada imagen comprende una pluralidad de segmentos. Cada segmento de la pluralidad de segmentos está asociado con una cabecera que contiene una pluralidad de elementos de sintaxis. Cada segmento de la pluralidad de segmentos comprende una pluralidad de bloques de codificación y una pluralidad de listas de imágenes de referencia. Cada lista de imágenes de referencia de la pluralidad de listas de imágenes de referencia comprende una pluralidad de imágenes de referencia que pueden usarse para la interpredicción de los bloques de codificación en el segmento actual.
El método comprende analizar un conjunto de parámetros para obtener un indicador que especifica si la herramienta/técnica de codificación de refinamiento del vector de movimiento del lado del decodificador (DMVR) puede usarse para decodificar imágenes en la secuencia de vídeo codificada actual; y analizar un conjunto de parámetros para obtener un indicador que especifique si la herramienta/técnica de codificación de refinamiento del vector de movimiento del lado del decodificador (DMVR) puede usarse para decodificar imágenes que se refieren al conjunto de parámetros en donde el conjunto de parámetros es el conjunto de parámetros de imagen (PPS).
En una realización, la herramienta de codificación de DMVR no se usa o está deshabilitada para decodificar el bloque de codificación actual cuando el valor del indicador que especifica si la herramienta de codificación de DMVR se puede usar para decodificar imágenes que se refieren al p Ps especifica que no se puede usar la herramienta de codificación.
En una realización se describe un método de codificación de flujo de bits de vídeo. El flujo de bits de vídeo comprende al menos una imagen. Cada imagen comprende una pluralidad de segmentos. Cada segmento de la pluralidad de segmentos está asociado con una cabecera que contiene una pluralidad de elementos de sintaxis. Cada segmento de la pluralidad de segmentos comprende una pluralidad de bloques de codificación y una pluralidad de listas de imágenes de referencia. Cada lista de imágenes de referencia de la pluralidad de listas de imágenes de referencia comprende una pluralidad de imágenes de referencia que pueden usarse para la intrapredicción de los bloques de codificación en el segmento actual.
El método comprende determinar si la herramienta/técnica de codificación de refinamiento del vector de movimiento del lado del decodificador (DMVR) puede usarse para codificar imágenes en la secuencia de vídeo codificada actual; determinar si la herramienta/técnica de codificación de refinamiento de vector de movimiento del lado del decodificador (DMVR) puede usarse para codificar imágenes con referencia al PPS actual; y restringir que la herramienta de codificación de DMVR no pueda usarse para codificar imágenes en referencia al PPS actual cuando la herramienta de codificación de DMVR no pueda usarse para codificar imágenes en la secuencia codificada actual.
La siguiente sintaxis y semántica pueden emplearse para implementar las realizaciones descritas en la presente memoria. La siguiente descripción es relativa al texto base, que es el último borrador de especificación de VVC. En otras palabras, solo se describe el delta, si bien el texto en el texto base que no se menciona a continuación se aplica tal cual. El texto añadido relativo al texto base se muestra en negrita y el texto eliminado se muestra en cursiva. Actualice el proceso de construcción de la lista de imágenes de referencia de la siguiente manera.
Las listas de imágenes de referencia RefPicList[ 0 ] y RefPicList[ 1 ] se construyen de la siguiente manera:
Figure imgf000021_0001
Figure imgf000022_0001
Derivación de indicador que determina si se usa o no DMVR.
El proceso de decodificación para codificar unidades codificadas en modo interpredicción comprende las siguientes etapas ordenadas.
1. La variable dmvrFlag se establece en 0.
2. Los componentes del vector de movimiento y los índices de referencia de la unidad de codificación actual se derivan de la siguiente manera.
Si MergeTriangleFlag[ xCb ][ yCb ], inter_affine_flag[ xCb ][ yCb ] y merge_subblock_flag[ xCb ][ yCb ] son todos iguales a 0, se aplica lo siguiente:
El proceso de derivación para los componentes del vector de movimiento y los índices de referencia como se especifica en la cláusula 8.5.2.1 se invoca con la ubicación del bloque de codificación luminancia (xCb, yCb), el ancho del bloque de codificación luminancia cbWidth y la altura del bloque de codificación luminancia cbHeight como entradas, y los vectores de movimiento luminancia mvL0[ 0 ][ 0 ] y mvL1 [ 0 ][ 0 ], los índices de referencia refldxLO y refIdxL1 y los indicadores de utilización de la lista de predicción predFlagL0[ 0 ][ 0 ] y predFlagL1 [ 0 ][ 0 ], y el índice de ponderación de bipredicción bcwIdx como salidas.
Cuando se cumplen todas las condiciones siguientes, dmvrFlag se establece en 1:
sps_dmvr_enabled_flag es igual a 1
general_merge_flag[ xCb ][ yCb ] es igual a 1
tanto predFlagLO [ 0 ][ 0 ] como predFlagL 1 [ 0 ][ 0 ] son iguales a 1
mmvd_flag[ xCb ][ yCb ] es igual a 0
DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ]) es igual a DiffPicOrderCnt( RefPicList[ 1 ][ refldxLI ], currPic ) BcwIdx[ xCb ][ yCb ] es igual a 0
Tanto luma_weight_10_flag[ refIdxL0 ] como luma_weight_11_flag[ refIdxL1 ] son iguales a 0
cbWidth es mayor o igual que 8
cbHeight es mayor o igual que 8
cbHeight*cbWidth es mayor o igual a 128
RefPicSameSizeFlag[ 0 ][ refIdxL0 ] es igual a 1
RefPicSameSizeFlag[ 1 ][ refIdxL1 ] es igual a 1.
r r i n n l in xi l m ni l n n r m r n i .
Figure imgf000023_0001
Sps_dmvr_enabled_flag igual a 1 especifica que la inter bipredicción basada en el refinamiento del vector de movimiento del decodificador está habilitada. El sps_dmvr_enabled_flag igual a 0 especifica que la inter bipredicción basada en el refinamiento del vector de movimiento del decodificador está deshabilitada.
r r i n n l in xi l m ni l r m n .
Figure imgf000023_0002
slice_dmvr_enabled_flag igual a 0 especifica que la inter bipredicción basada en el refinamiento del vector de movimiento del decodificador está deshabilitada para el segmento actual. El slice_dmvr_enabled_flag igual a 1 especifica que la inter bipredicción basada en el refinamiento del vector de movimiento del decodificador está habilitada para el segmento actual. Cuando no está presente, se infiere que el valor de slice_dmvr_enabled_flag es igual a sps_dmvr_enabled_flag.
Derivación del indicador que determina si se usa o no DMVR.
El proceso de decodificación para codificar unidades codificadas en modo interpredicción comprende las siguientes etapas ordenadas.
1. La variable dmvrFlag se establece en 0.
2. Los componentes del vector de movimiento y los índices de referencia de la unidad de codificación actual se derivan de la siguiente manera:
Si MergeTriangleFlag[ xCb ][ yCb ], inter_affine_flag[ xCb ][ yCb ] y merge_subblock_flag[ xCb ][ yCb ] son todos iguales a 0, se aplica lo siguiente:
El proceso de derivación para los componentes del vector de movimiento y los índices de referencia como se especifica en la cláusula 8.5.2.1 se invoca con la ubicación del bloque de codificación luminancia (xCb, yCb), el ancho del bloque de codificación luminancia cbWidth y la altura del bloque de codificación luminancia cbHeight como entradas, y los vectores de movimiento luminancia mvL0[ 0 ][ 0 ] y mvL1 [ 0 ][ 0 ], los índices de referencia refldxLO y refIdxL1 y los indicadores de utilización de la lista de predicción predFlagL0[ 0 ][ 0 ] y predFlagL1 [ 0 ][ 0 ], y el índice de ponderación de bipredicción bcwIdx como salidas.
Cuando se cumplen todas las condiciones siguientes, dmvrFlag se establece en 1:
sps_dmvr_enabled_flag es igual a 1
slice_dmvr_enabled_flag es igual a 1
general_merge_flag[ xCb ][ yCb ] es igual a 1
tanto predFlagLO [ 0 ][ 0 ] como predFlagL 1 [ 0 ][ 0 ] son iguales a 1
mmvd_flag[ xCb ][ yCb ] es igual a 0
DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ]) es igual a DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic ) BcwIdx[ xCb ][ yCb ] es igual a 0
Tanto luma_weight_10_flag[ refIdxL0 ] como luma_weight_11_flag[ refIdxL1 ] son iguales a 0
cbWidth es mayor o igual que 8
cbHeight es mayor o igual que 8
cbHeight*cbWidth es mayor o igual a 128
r r i n n l in xi l m ni l n n r m r n i .
Figure imgf000024_0001
El sps_dmvr_enabled_flag igual a 1 especifica que la inter bipredicción basada en el refinamiento del vector de movimiento del decodificador está habilitada. El sps_dmvr_enabled_flag igual a 0 especifica que la inter bipredicción basada en el refinamiento del vector de movimiento del decodificador está deshabilitada.
r r i n n l in xi l m ni l n n r m r im n.
Figure imgf000024_0002
pps_dmvr_enabled_flag igual a 0 especifica que la inter bipredicción basada en el refinamiento del vector de movimiento del decodificador está deshabilitada para las imágenes que se refieren al PPS. El pps_dmvr_enabled_flag igual a 1 especifica que la inter bipredicción basada en el refinamiento del vector de movimiento del decodificador está habilitada para las imágenes que se refieren al PPS.
Es un requisito de conformidad del flujo de bits que el valor de pps_dmvr_enabled_flag sea igual a 0 cuando el valor de sps_dmvr_enabled_flag sea igual a 0.
Derivación del indicador que determina si se usa o no DMVR.
El proceso de decodificación para codificar unidades codificadas en modo interpredicción consta de las siguientes etapas ordenadas:
La variable dmvrFlag se establece en 0.
Los componentes del vector de movimiento y los índices de referencia de la unidad de codificación actual se derivan de la siguiente manera:
Si MergeTriangleFlag[ xCb ][ yCb ], inter_affine_flag[ xCb ][ yCb ] y merge_subblock_flag[ xCb ][ yCb ] son todos iguales a 0, se aplica lo siguiente:
El proceso de derivación para los componentes del vector de movimiento y los índices de referencia como se especifica en la cláusula 8.5.2.1 se invoca con la ubicación del bloque de codificación luminancia (xCb, yCb), el ancho del bloque de codificación luminancia cbWidth y la altura del bloque de codificación luminancia cbHeight como entradas, y los vectores de movimiento luminancia mvL0[ 0 ][ 0 ] y mvL1 [ 0 ][ 0 ], los índices de referencia refldxLO y refIdxL1 y los indicadores de utilización de la lista de predicción predFlagL0[ 0 ][ 0 ] y predFlagL1 [ 0 ][ 0 ], y el índice de ponderación de bipredicción bcwIdx como salidas.
Cuando se cumplen todas las condiciones siguientes, dmvrFlag se establece en 1:
sps_dmvr_enabled_flag es igual a 1
pps_dmvr_enabled_flag es igual a 1
general_merge_flag[ xCb ][ yCb ] es igual a 1
tanto predFlagLO [ 0 ][ 0 ] como predFlagL 1 [ 0 ][ 0 ] son iguales a 1
mmvd_flag[ xCb ][ yCb ] es igual a 0
DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ]) es igual a DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic )
BcwIdx[ xCb ][ yCb ] es igual a 0
tanto luma_weight_10_flag[ refIdxL0 ] como luma_weight_11_flag[ refIdxL1 ] son iguales a 0
cbWidth es mayor o igual que 8
cbHeight es mayor o igual que 8
cbHeight*cbWidth es mayor o igual a 128
La FIG. 12 es un diagrama esquemático de un dispositivo 1200 de codificación de vídeo (por ejemplo, un codificador 20 de vídeo o un decodificador 30 de vídeo) según una realización de la descripción. El dispositivo 1200 de codificación de vídeo es adecuado para implementar las realizaciones descritas como se describe en la presente memoria. El dispositivo 1200 de codificación de vídeo comprende puertos 1210 de entrada y unidades de recepción (Rx) 1220 para recibir datos; un procesador, unidad lógica o unidad central de procesamiento (CPU) 1230 para procesar los datos; unidades transmisoras (Tx) 1240 y puertos 1250 de salida para transmitir los datos; y una memoria 1260 para almacenar los datos. El dispositivo 1200 de codificación de vídeo también puede comprender componentes ópticos a eléctricos (OE) y componentes eléctricos a ópticos (EO) acoplados a los puertos 1210 de entrada, a las unidades 1220 de recepción, a las unidades 1240 de transmisión y a puertos 1250 de salida para la salida o entrada de señales ópticas o eléctricas.
El procesador 1230 se implementa mediante hardware y software. El procesador 1230 puede implementarse como uno o más chips de CPU, núcleos (por ejemplo, como un procesador multinúcleo), una matriz de puertas programable en campo (FPGA), circuitos integrados de aplicación específica (ASIC), y procesadores de señales digitales (DSP). El procesador 1230 está en comunicación con el puerto 1210 de entrada, las unidades 1220 de recepción, las unidades 1240 de transmisión, los puertos 1250 de salida y la memoria 1260. El procesador 1230 comprende un módulo 1270 de codificación. El módulo 1270 de codificación implementa las realizaciones descritas anteriormente. Por ejemplo, el módulo 1270 de codificación implementa, procesa, prepara o proporciona las diversas funciones de códec. La inclusión del módulo 1270 de codificación por lo tanto proporciona una mejora sustancial a la funcionalidad del dispositivo 1200 de codificación de vídeo y efectúa una transformación del dispositivo 1200 de codificación de vídeo a un estado diferente. De manera alternativa, el módulo 1270 de codificación de vídeo se implementa como instrucciones almacenadas en la memoria 1260 y ejecutadas por el procesador 1230.
El dispositivo 1200 de codificación de vídeo también puede incluir dispositivos 1280 de entrada y/o salida (I/O) para comunicar datos hacia y desde un usuario. Los dispositivos 1280 de I/O pueden incluir dispositivos de salida, tales como una pantalla para mostrar datos de vídeo, altavoces para emitir datos de audio, etc. Los dispositivos 1280 de I/O también pueden incluir dispositivos de entrada, tales como un teclado, ratón, rueda de desplazamiento, etc. , y/o interfaces correspondientes para interactuar con tales dispositivos de salida.
La memoria 1260 comprende uno o más discos, unidades de cinta, y/o unidades de estado sólido y puede ser usada como un dispositivo de almacenamiento de datos de desbordamiento para almacenar programas cuando tales programas se seleccionan para ejecutarlos, y para almacenar instrucciones y datos que se leen durante la ejecución del programa. La memoria 1260 puede ser volátil y/o no volátil y puede ser memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), memoria ternaria de contenido direccionable (TCAM), y/o memoria estática de acceso aleatorio (SRAM).
La FIG. 13 es un diagrama esquemático de la realización de un medio 1300 de codificación. En una realización, los medios 1300 de codificación se implementan en un dispositivo 1302 de codificación de vídeo (por ejemplo, un codificador 20 de vídeo o un decodificador 30 de vídeo). El dispositivo 1302 de codificación de vídeo incluye medios 1301 de recepción. Los medios 1301 de recepción están configurados para recibir una imagen para codificar o para recibir un flujo de bits para decodificar. El dispositivo 1302 de codificación de vídeo incluye medios 1307 de transmisión acoplados a los medios 1301 de recepción. Los medios 1307 de transmisión están configurados para transmitir el flujo de bits a un decodificador o para transmitir una imagen decodificada a un medio de visualización (por ejemplo, uno de los dispositivos 1280 de I/O).
El dispositivo 1302 de codificación de vídeo incluye unos medios 1303 de almacenamiento. Los medios 1303 de almacenamiento están acoplados a al menos uno de los medios 1301 de recepción o a los medios 1307 de transmisión. Los medios 1303 de almacenamiento están configurados para almacenar instrucciones. El dispositivo 1302 de codificación de vídeo también incluye medios 1305 de procesamiento. Los medios 1305 de procesamiento están acoplado a los medios 1303 de almacenamiento. Los medios 1305 de procesamiento están configurados para ejecutar las instrucciones almacenadas en los medios 1303 de almacenamiento para realizar los métodos descritos en la presente memoria.
También debe entenderse que las etapas de los métodos ejemplares expuestos en la presente memoria no necesariamente deben realizarse en el orden descrito, y el orden de las etapas de tales métodos debe entenderse como meramente ejemplar. Asimismo, se pueden incluir etapas adicionales en tales métodos, y ciertas etapas se pueden omitir o combinar, en métodos consistentes con varias realizaciones de la presente descripción.
Si bien en la presente descripción se han proporcionado varias realizaciones, debe entenderse que los sistemas y métodos descritos pueden realizarse en muchas otras formas específicas sin apartarse del alcance de la presente descripción. Los ejemplos presentes deben considerarse como ilustrativos y no restrictivos, y la intención no es limitarse a los detalles dados en la presente memoria. Por ejemplo, los varios elementos o componentes podrían combinarse o integrarse en otro sistema o ciertas características podrían omitirse o no implementarse.
Además, técnicas, sistemas, subsistemas, procedimientos descritos e ilustrados en las numerosas realizaciones discretas o separadas podrían combinarse o integrarse con otros sistemas, módulos, técnicas, o procedimientos sin apartarse del alcance de la presente descripción. Otros elementos mostrados o analizados como acoplados o directamente acoplados o comunicados entre sí pueden acoplarse indirectamente o comunicarse a través de alguna interfaz, dispositivo o componente intermedio, ya sea eléctrico, mecánico o de otro modo. Un experto en la técnica puede determinar otros ejemplos de cambios, sustituciones y alteraciones y podrían hacerse sin apartarse del alcance descrito en la presente memoria.

Claims (17)

REIVINDICACIONES
1. Un método de decodificación implementado por un decodificador de vídeo, que comprende:
determinar, por el decodificador de vídeo, si una resolución de una imagen actual que se está decodificando es la misma que la resolución de imágenes de referencia identificadas por una lista de imágenes de referencia asociadas con la imagen actual;
habilitar, por el decodificador de vídeo, el refinamiento del vector de movimiento del lado del decodificador, DMVR, para un bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es la misma que la resolución de cada una de las imágenes de referencia;
deshabilitar, por el decodificador de vídeo, el DMVR para el bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es diferente de la resolución de cualquiera de las imágenes de referencia; y decodificar, por el decodificador de vídeo, el bloque actual.
2. El método de la reivindicación 1, en donde habilitar el DMVR comprende establecer un indicador de DMVR en un primer valor, y en donde deshabilitar el DMVR comprende establecer el indicador de DMVR en un segundo valor.
3. El método de cualquiera de las reivindicaciones 1 a 2, que comprende además generar las imágenes de referencia para la imagen actual en función de las listas de imágenes de referencia según un modo de interpredicción bidireccional.
4. El método de cualquiera de las reivindicaciones 1 a 3, que comprende además habilitar el remuestreo de imágenes de referencia, RPR, para una secuencia de vídeo codificada, CVS, completa que contiene la imagen actual cuando el DMVR está deshabilitado.
5. El método de cualquiera de las reivindicaciones 1 a 4, en donde la resolución de la imagen actual se dispone en un conjunto de parámetros del flujo de bits de vídeo codificado, y en donde el bloque actual se obtiene a partir de un segmento de la imagen actual.
6. El método de cualquiera de las reivindicaciones 1 a 5, que además comprende mostrar en una pantalla de un dispositivo electrónico una imagen generada usando el bloque actual.
7. Un método de codificación de un flujo de bits de vídeo implementado por un codificador de vídeo, el método comprende:
determinar, por el codificador de vídeo, si una resolución de la imagen actual que se está codificando es la misma que la resolución de las imágenes de referencia identificadas en una lista de imágenes de referencia asociada con la imagen actual;
habilitar, por el codificador de vídeo, el refinamiento del vector de movimiento del lado del decodificador, DMVR, para un bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es la misma que la resolución de cada una de las imágenes de referencia;
deshabilitar, por el codificador de vídeo, el DMVR para el bloque actual de la imagen actual cuando se determina que la resolución de la imagen actual es diferente de la resolución de cualquiera de las imágenes de referencia; y codificar, por el codificador de vídeo, el bloque actual.
8. El método de la reivindicación 7, en donde el método comprende además:
determinar, por el codificador de vídeo, vectores de movimiento para la imagen actual en función de las imágenes de referencia;
codificar, por el codificador de vídeo, la imagen actual en función de los vectores de movimiento; y
decodificar, por el codificador de vídeo, la imagen actual usando un decodificador de referencia hipotético.
9. El método de cualquiera de las reivindicaciones 7 a 8, en donde habilitar el DMVR comprende establecer un indicador de DMVR en un primer valor, y en donde deshabilitar el DMVR comprende establecer el indicador de DMVR en un segundo valor.
10. El método de cualquiera de las reivindicaciones 7 a 9, que comprende además generar las imágenes de referencia para la imagen actual en función de las listas de imágenes de referencia según un modo de interpredicción bidireccional.
11. El método de cualquiera de las reivindicaciones 7 a 10, que comprende además habilitar el remuestreo de la imagen de referencia, RPR, para una secuencia de vídeo codificada, CVS, completa que contenga la imagen actual, incluso cuando el DMVR esté deshabilitado.
12. El método de cualquiera de las reivindicaciones 7 a 11, que comprende además transmitir el flujo de bits de vídeo que contiene el bloque actual hacia un decodificador de vídeo.
13. Un decodificador que comprende circuitos de procesamiento para llevar a cabo el método según cualquiera de las reivindicaciones 1 a 6.
14. Un codificador que comprende circuitos de procesamiento para llevar a cabo el método según cualquiera de las reivindicaciones 7 a 12.
15. Un sistema, que comprende:
un codificador; y
un decodificador en comunicación con el codificador, en donde el codificador incluye el codificador de la reivindicación 14 o el decodificador incluye el decodificador de la reivindicación 13.
16. Un producto de programa informático que comprende un código de programa para realizar el método según cualquiera de las reivindicaciones 1 a 6 o cualquiera de las reivindicaciones 7 a 12 cuando se ejecuta en un ordenador o un procesador.
17. Un medio legible por ordenador no transitorio que lleva un código de programa que, cuando es ejecutado por un dispositivo ordenador, hace que el dispositivo ordenador realice el método de cualquiera de las reivindicaciones 1 a 6 o cualquiera de las reivindicaciones 7 a 12.
ES20804873T 2019-05-15 2020-05-14 Manejo de la herramienta de codificación del refinamiento del vector de movimiento del lado del decodificador (DMVR) para el remuestreo de imágenes de referencia en la codificación de vídeo Active ES2946163T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962848410P 2019-05-15 2019-05-15
PCT/US2020/032930 WO2020232269A1 (en) 2019-05-15 2020-05-14 Handling of decoder-side motion vector refinement (dmvr) coding tool for reference picture resampling in video coding

Publications (1)

Publication Number Publication Date
ES2946163T3 true ES2946163T3 (es) 2023-07-13

Family

ID=73289822

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20804873T Active ES2946163T3 (es) 2019-05-15 2020-05-14 Manejo de la herramienta de codificación del refinamiento del vector de movimiento del lado del decodificador (DMVR) para el remuestreo de imágenes de referencia en la codificación de vídeo

Country Status (9)

Country Link
US (1) US12022107B2 (es)
EP (2) EP4221224A1 (es)
JP (2) JP7359873B2 (es)
KR (1) KR20220006120A (es)
CN (2) CN113826399A (es)
ES (1) ES2946163T3 (es)
FI (1) FI3963888T3 (es)
MX (1) MX2021013978A (es)
WO (1) WO2020232269A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2968830T3 (es) * 2019-06-04 2024-05-14 Huawei Tech Co Ltd Intercodificación en codificación de vídeo con soporte de múltiples capas
WO2020254335A1 (en) * 2019-06-20 2020-12-24 Interdigital Vc Holdings France, Sas Lossless mode for versatile video coding
CN114342405A (zh) * 2019-06-24 2022-04-12 Lg电子株式会社 图像解码方法和用于该图像解码方法的装置
US20240155114A1 (en) * 2021-02-26 2024-05-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Video coding concept allowing for limitation of drift
US20230199211A1 (en) * 2021-12-16 2023-06-22 Qualcomm Incorporated Interaction between reference picture resampling and template-based inter prediction techniques in video coding
WO2024080778A1 (ko) * 2022-10-12 2024-04-18 엘지전자 주식회사 적응적으로 해상도를 변경하는 영상 부호화/복호화 방법, 장치, 및 비트스트림을 전송하는 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110176611A1 (en) * 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation
US9998735B2 (en) * 2013-04-01 2018-06-12 Qualcomm Incorporated Inter-layer reference picture restriction for high level syntax-only scalable video coding
US9674533B2 (en) 2013-04-05 2017-06-06 Qualcomm Incorporated Picture alignments in multi-layer video coding
US10142638B2 (en) 2013-10-11 2018-11-27 Electronics And Telecommunications Research Institute Method for encoding/decoding image and device using same
WO2015192991A1 (en) 2014-06-18 2015-12-23 Telefonaktiebolaget L M Ericsson (Publ) Random access in a video bitstream
CN108293131B (zh) * 2015-11-20 2021-08-31 联发科技股份有限公司 基于优先级运动矢量预测子推导的方法及装置
EP3449630B1 (en) * 2016-05-28 2024-07-10 Mediatek Inc. Method and apparatus of current picture referencing for video coding
US10477237B2 (en) * 2017-06-28 2019-11-12 Futurewei Technologies, Inc. Decoder side motion vector refinement in video coding
US11558633B2 (en) 2017-11-01 2023-01-17 Vid Scale, Inc. Sub-block motion derivation and decoder-side motion vector refinement for merge mode
US11750832B2 (en) 2017-11-02 2023-09-05 Hfi Innovation Inc. Method and apparatus for video coding
CN117692630A (zh) 2019-05-11 2024-03-12 北京字节跳动网络技术有限公司 视频处理中编解码工具的选择性使用
CA3146230A1 (en) * 2019-07-08 2020-10-22 Huawei Technologies Co., Ltd. Handling of multiple picture size and conformance windows for reference picture resampling in video coding

Also Published As

Publication number Publication date
US12022107B2 (en) 2024-06-25
CN115314708A (zh) 2022-11-08
WO2020232269A1 (en) 2020-11-19
US20220046271A1 (en) 2022-02-10
JP2022533354A (ja) 2022-07-22
JP7359873B2 (ja) 2023-10-11
KR20220006120A (ko) 2022-01-14
JP2023179582A (ja) 2023-12-19
EP4221224A1 (en) 2023-08-02
MX2021013978A (es) 2022-04-01
EP3963888A1 (en) 2022-03-09
FI3963888T3 (fi) 2023-06-19
CN115314708B (zh) 2023-05-12
EP3963888B1 (en) 2023-05-03
CN113826399A (zh) 2021-12-21
EP3963888A4 (en) 2022-07-20

Similar Documents

Publication Publication Date Title
ES2946163T3 (es) Manejo de la herramienta de codificación del refinamiento del vector de movimiento del lado del decodificador (DMVR) para el remuestreo de imágenes de referencia en la codificación de vídeo
ES2947509T3 (es) Manejo de herramienta de codificación de flujo óptico bidireccional (BIO) para remuestreo de imagen de referencia en codificación de video
ES2780688T3 (es) Señalización para operaciones DPB basadas en un búfer de imágenes subdescodificadas (sub-DPB) en la codificación de vídeo
ES2974627T3 (es) Manejo de múltiples tamaños de imagen y ventanas de conformidad para el remuestreo de imágenes de referencia en la codificación de video
ES2935979T3 (es) Señalización de índices para estructuras de listas de imágenes de referencia
ES2968830T3 (es) Intercodificación en codificación de vídeo con soporte de múltiples capas
ES2966494T3 (es) Señalización de modo intra luma
RU2820215C2 (ru) Обработка инструмента кодирования двунаправленного оптического потока (bio) для передискретизации опорного изображения при кодировании видео
RU2817618C2 (ru) Обработка множества размеров изображения и окон соответствия для передискретизации опорного изображения при кодировании видео