ES3053016T3 - Image prediction method and apparatus, and computer-readable storage medium - Google Patents
Image prediction method and apparatus, and computer-readable storage mediumInfo
- Publication number
- ES3053016T3 ES3053016T3 ES20795740T ES20795740T ES3053016T3 ES 3053016 T3 ES3053016 T3 ES 3053016T3 ES 20795740 T ES20795740 T ES 20795740T ES 20795740 T ES20795740 T ES 20795740T ES 3053016 T3 ES3053016 T3 ES 3053016T3
- Authority
- ES
- Spain
- Prior art keywords
- mode
- current image
- image block
- ciip
- blending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
Se describe un método y un aparato de predicción de imágenes. El método de predicción de imágenes comprende: determinar si un bloque de imagen actual utiliza un modo de fusión y, cuando lo utiliza, determinar si un modo de fusión principal está disponible para dicho bloque; si un primer modo de fusión no está disponible y un elemento sintáctico de capa superior correspondiente a dicho modo indica que su uso está prohibido, determinar directamente un segundo modo de fusión como modo objetivo aplicable al bloque de imagen actual, donde tanto el primer modo de fusión como el segundo son modos de fusión secundarios; y predecir el bloque de imagen actual según el modo objetivo de fusión mencionado. Mediante las realizaciones de la presente solicitud, se puede reducir al máximo la redundancia generada en el proceso de determinación del modo de fusión. (Traducción automática con Google Translate, sin valor legal)
Description
[0001] DESCRIPCIÓN
[0002] Método y aparato de predicción de imagen, y medio de almacenamiento legible por ordenador
[0003] Esta solicitud reivindica prioridad a la Solicitud de Patente China N.º 201910341218.6, presentada ante la Administración Nacional de Propiedad Intelectual de China el 25 de abril de 2019 y titulada "VIDEO PICTURE ENCODING/DECODING METHOD AND APPARATUS", que se incorpora en el presente documento como referencia en su totalidad.
[0004] Esta solicitud reivindica prioridad a la Solicitud de Patente China N.º 201910474007.X, presentada ante la Administración Nacional de Propiedad Intelectual de China el 2 de junio de 2019 y titulada "PICTURE PREDICTION METHOD AND APPARATUS, AND COMPUTER-READABLE STORAGE MEDIUM", que se incorpora en el presente documento como referencia en su totalidad.
[0005] Campo técnico
[0006] Esta solicitud se relaciona con el campo de las tecnologías de codificación de vídeo, y más específicamente, con un método y aparato de predicción de imagen, y un medio de almacenamiento legible por ordenador.
[0007] Antecedentes
[0008] Una capacidad de vídeo digital puede ser incorporada en una amplia variedad de aparatos, incluidos un televisor digital, un sistema de difusión digital en directo, un sistema de difusión inalámbrica, un asistente digital personal (PDA), un ordenador portátil, una tableta, un lector de libros electrónicos, una cámara digital, un aparato de grabación digital, un reproductor de medios digitales, un aparato de videojuegos, una consola de videojuegos, un teléfono móvil o de radio por satélite (es decir, "teléfono inteligente"), un aparato de videoconferencia, un aparato de transmisión de vídeo y similares. Los aparatos de vídeo digital implementan tecnologías de compresión de vídeo, tales como las tecnologías de compresión de vídeo descritas en los estándares definidos en codificación de vídeo avanzada (AVC) MPEG-2, MPEG-4, ITU-T H.263 e ITU-T H.264/MPEG-4 Parte 10, un estándar de codificación de vídeo H.265/estándar de codificación de vídeo de alta eficiencia (HEVC) y las extensiones de dichos estándares. Los aparatos de vídeo pueden transmitir, recibir, codificar, decodificar y/o almacenar información de vídeo digital de manera más eficiente mediante la implementación de dichas tecnologías de compresión de vídeo. Las tecnologías de compresión de vídeo se usan para realizar predicción espacial (intraimagen) y/o predicción temporal (interimagen) para reducir o eliminar la redundancia inherente a las secuencias de vídeo. En la codificación de vídeo con base en bloques, un segmento de vídeo (es decir, un fotograma de vídeo o una parte de un fotograma de vídeo) se puede particionar en varios bloques de imagen, y el bloque de imagen también se puede denominar bloque de árbol, unidad de codificación (CU) y/o nodo de codificación. Un bloque de imagen en un segmento a intracodificar (I) de una imagen se codifica a través de la predicción espacial con base en una muestra de referencia en un bloque vecino en la misma imagen. Para un bloque de imagen en un segmento de una imagen a intercodificar (P o B), se puede usar la predicción espacial con base en una muestra de referencia en un bloque vecino en la misma imagen o predicción temporal con base en una muestra de referencia en otra imagen de referencia. La imagen puede denominarse fotograma y la imagen de referencia puede denominarse fotograma de referencia.
[0009] Cuando se usa un modo de fusión para predecir el bloque de imagen, generalmente hay una pluralidad de modos de fusión opcionales. En una solución convencional, un modo A de fusión aplicable a un bloque de imagen actual generalmente se determina a partir de una pluralidad de modos de fusión candidatos, uno por uno. Cuando un modo de fusión no está disponible, se continúa determinando si habrá un siguiente modo de fusión disponible. En la solución convencional, existe redundancia cuando el modo A de fusión aplicable al bloque actual se determina a partir de los dos últimos modos de fusión restantes.
[0010] Documento C-W HSU (MEDIATEK) ET AL: "CE4-related: On merge list construction", 14. REUNIÓN JVET; 19/03/2019 - 27/03/2019; GINEBRA;(EL EQUIPO CONJUNTO DE EXPLORACIÓN DE VÍDEO DE ISO/IEC JTC1/SC29/WG11 Y ITU-T SG.16 ), n.º JVET-N085124 de marzo de 2019 (24/03/2019), describe un mecanismo de decodificación de vídeo que comprende una sintaxis de datos de fusión.
[0011] Compendio
[0012] La invención se define por las reivindicaciones independientes adjuntas.En las reivindicaciones dependientes se presentan características adicionales de realizaciones concretas de la invención. En lo sucesivo, sólo se considerarán como realizaciones reales de la invención las materias que caen dentro del alcance de las reivindicaciones. Otros temas potencialmente denominados realizaciones pero que no comprenden todas las características de la invención reivindicada simplemente representan ejemplos útiles para comprender las realizaciones de la invención. Esta solicitud proporciona un método y un aparato de predicción de imagen y un medio de almacenamiento legible por ordenador para reducir la redundancia en un proceso de predicción de
imagen tanto como sea posible.
[0013] Según un primer aspecto, se proporciona un método de predicción de imagen. El método incluye: determinar si se usa un modo de fusión para un bloque de imagen actual; cuando se usa el modo de fusión para el bloque de imagen actual, continuar determinando si está disponible un modo de fusión normal; cuando el modo de fusión normal no está disponible y un elemento de sintaxis de capa alta correspondiente a un modo de partición triangular, TPM, indica que está prohibido usar el TPM, determinar un modo de intra e interpredicción combinada, CIIP, como un modo de fusión objetivo aplicable al bloque de imagen actual; y predecir el bloque de imagen actual con base en el modo de fusión objetivo.
[0014] Tanto el primer modo de fusión como el segundo modo de fusión pertenecen a un modo de fusión de nivel 2, y el modo de fusión de nivel 2 incluye el primer modo de fusión y el segundo modo de fusión. Además, para el bloque de imagen actual, el modo de fusión de nivel 1 y el modo de fusión de nivel 2 pueden incluir todos los modos de fusión opcionales del bloque de imagen actual y, para el bloque de imagen actual, se necesita determinar un modo de fusión objetivo final a partir del modo de fusión de nivel 1 y el modo de fusión de nivel 2.
[0015] Opcionalmente, una prioridad del modo de fusión de nivel 1 es mayor que una prioridad del modo de fusión de nivel 2.
[0016] Que una prioridad del modo de fusión de nivel 1 sea mayor que una prioridad del modo de fusión de nivel 2 significa que en un proceso de determinación del modo de fusión objetivo del bloque de imagen actual, el modo de fusión objetivo se determina preferentemente a partir del modo de fusión de nivel 1. Si no hay ningún modo de fusión disponible en el modo de fusión de nivel 1, el modo de fusión objetivo se determina a partir del modo de fusión de nivel 2.
[0017] Opcionalmente, la determinación de si se usa un modo de fusión para un bloque de imagen actual incluye: cuando el merge_flag correspondiente al bloque de imagen actual es 1, determinar que el modo de fusión se usa para el bloque de imagen actual; y cuando el merge_flag correspondiente al bloque de imagen actual es 0, determinar que el modo de fusión no se usa para el bloque de imagen actual.
[0018] Debe entenderse que cuando se determina que el modo de fusión no se usa para el bloque de imagen actual, se puede usar otro modo distinto del modo de fusión para predecir el bloque de imagen actual. Por ejemplo, cuando se determina que el modo de fusión no se usa para el bloque de imagen actual, se puede usar un modo AMVP de vector de movimiento avanzado para predecir el bloque de imagen actual.
[0019] En esta solicitud, cuando el elemento de sintaxis de capa alta del primer modo de fusión indica que está prohibido usar el primer modo de fusión, no es necesario analizar la información de estado disponible del segundo modo de fusión restante, y el segundo modo de fusión puede determinarse directamente como el modo de fusión objetivo final. Esto puede reducir, tanto como sea posible, la redundancia generada debido a la determinación del modo de fusión objetivo en un proceso de predicción de imagen.
[0020] Opcionalmente, el método incluye además: determinar si el modo de fusión de nivel 1 está disponible.
[0021] Específicamente, si el modo de fusión de nivel 1 está disponible se determina con base en un elemento de sintaxis de capa alta correspondiente al modo de fusión de nivel 1 y/o información de estado disponible correspondiente al modo de fusión de nivel 1.
[0022] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, cuando el modo de fusión normal no está disponible, y el elemento de sintaxis de capa alta correspondiente al TPM indica que se permite usar el TPM, el modo de fusión objetivo se determina con base en un elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible del modo CIIP.
[0023] La información de estado disponible del modo CIIP se usa para indicar si se usa el modo CIIP cuando se predice el bloque de imagen actual.
[0024] Por ejemplo, el segundo modo de fusión es un modo CIIP, y la información de estado disponible del segundo modo de fusión es un valor de ciip_flag. Cuando ciip_flag es 0, el modo CIIP no está disponible para el bloque de imagen actual. Cuando ciip_flag es 1, se usa el modo CIIP para predecir el bloque de imagen actual.
[0025] Se debe entender que, para el modo CIIP, si se debe seleccionar el modo CIIP como el modo de fusión objetivo, un elemento de sintaxis de capa alta correspondiente al CIIP debe indicar que se permite usar el modo CIIP, y la información de estado disponible que indica un estado disponible del modo CIIP debe indicar que el CIIP está disponible.
[0026] Por ejemplo, cuando sps_ciip_enabled_flag = 1 y ciip_flag = 1, el modo CIIP puede determinarse como el modo de fusión objetivo del bloque de imagen actual.
[0027] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, que el modo de fusión objetivo se determine con base en un elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible del modo CIIP incluye: Cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible del modo CIIP indica/indica que está prohibido usar el modo CIIP, el TPM se determina como el modo de fusión objetivo.
[0028] Que el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible del modo CIIP indique/indica que está prohibido usar el modo CIIP incluye:
[0029] El elemento de sintaxis de capa alta correspondiente al modo CIIP indica que está prohibido usar el modo CIIP y la información de estado disponible del modo CIIP indica que no se puede usar el modo CIIP; y el elemento de sintaxis de capa alta correspondiente al modo CIIP indica que está permitido usar el modo CIIP y la información de estado disponible del modo CIIP indica que no se puede usar el modo CIIP.
[0030] Opcionalmente, que el modo de fusión objetivo se determine con base en un elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible del modo CIIP incluye además: Cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP indica que se permite usar el modo CIIP, y la información de estado disponible del modo CIIP indica que el modo CIIP está disponible, el modo CIIP se determina como el modo de fusión objetivo.
[0031] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, antes de que se determine el modo de fusión objetivo con base en el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible del modo CIIP, el método incluye además: determinar que se cumple al menos una de las siguientes condiciones: Un tamaño del bloque de imagen actual cumple una condición preestablecida; y no se usa un modo de salto para predecir el bloque de imagen actual.
[0032] En otras palabras, antes de determinar el modo de fusión objetivo, es necesario garantizar además que el tamaño del bloque de imagen actual cumpla con la condición y que no se use el modo de salto para el bloque de imagen actual. De lo contrario, se puede usar otro modo distinto del modo de fusión para predecir el bloque de imagen actual.
[0033] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, que un tamaño del bloque de imagen actual cumpla una condición preestablecida incluye: el bloque de imagen actual cumple las siguientes tres condiciones:
[0035] y
[0037] cdWidth es una anchura del bloque de imagen actual y cbHeight es la altura del bloque de imagen actual.
[0038] Opcionalmente, cuando un elemento de sintaxis de capa alta correspondiente al modo TPM indica que está prohibido usar el modo TPM, el modo CIIP se determina como el modo de fusión objetivo.
[0039] En esta solicitud, cuando el elemento de sintaxis de capa alta correspondiente al modo TPM indica que está prohibido usar el modo TPM, no hay necesidad de determinar, mediante el análisis de una sintaxis de capa alta correspondiente al modo CIIP y/o información de estado disponible que indica un estado disponible del modo CIIP, si el modo CIIP está disponible. En lugar de ello, el modo CIIP puede determinarse directamente como el modo de fusión objetivo. Esto puede reducir la redundancia en el proceso de determinación del modo de fusión objetivo. Opcionalmente, cuando el elemento de sintaxis de capa alta correspondiente al modo TPM indica que se permite usar el modo TPM, el modo de fusión objetivo se determina con base en l elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP.
[0040] Opcionalmente, cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indica/indique que está prohibido usar el modo CIIP, el modo TPM se determina como el modo de fusión objetivo.
[0041] Opcionalmente, cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP indica que se permite el uso del modo CIIP, y la información de estado disponible que indica el estado disponible del modo CIIP indica
que el modo CIIP está disponible, el modo CIIP se determina como el modo de fusión objetivo.
[0042] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, antes de que se determine el modo de fusión objetivo con base en el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible del modo CIIP, el método incluye además: determinar que un tipo de una segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es B; y determinar que una cantidad máxima de candidatos de modo TPM soportados por el segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2.
[0043] Opcionalmente, antes de que se determine el modo de fusión objetivo con base en el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible del modo CIIP, el método incluye además: determinar que el tipo del segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es B; y determinar que una cantidad máxima de candidatos de modo TPM soportados por el segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2.
[0044] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto. El método incluye además: cuando el modo de fusión normal no está disponible, y un elemento de sintaxis de capa alta correspondiente al modo TPM indica que se permite usar el modo TPM, pero el bloque de imagen actual no cumple al menos una de una condición A y una condición B, determinar el modo CIIP como el modo de fusión objetivo.
[0045] La condición A y la condición B son las siguientes:
[0046] Condición A: Un tipo de segmento en el que se ubica el bloque de imagen actual es B.
[0047] Condición B: La cantidad máxima de candidatos al modo TPM soportados por el segmento o el grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2.
[0048] El modo TPM se puede seleccionar como el modo de fusión objetivo usado finalmente para predecir el bloque de imagen actual solo cuando se cumplen tanto la condición A como la condición B.
[0049] Por un lado, si no se cumple la condición A o la condición B, el modo CIIP se determina como el modo de fusión objetivo.
[0050] Por otro lado, cuando el elemento de sintaxis de capa alta correspondiente al modo TPM indica que está prohibido usar el modo TPM, si no se cumple la condición A o la condición B, el modo CIIP se determina como el modo de fusión objetivo.
[0051] Por otro lado, cuando el elemento de sintaxis de capa alta correspondiente al modo TPM indica que está permitido usar el modo TPM, si no se cumple la condición A o la condición B, el modo CIIP se determina como el modo de fusión objetivo.
[0052] En otras palabras, el modo CIIP puede determinarse como el modo de fusión objetivo siempre que no se cumpla uno de los siguientes valores: sps_trangle_enabled_flag = 1, la condición A y la condición B.
[0053] Por otro lado, si sps_trangle_enabled_flag = 1, se cumplen la condición A y la condición B, el modo de fusión objetivo debe determinarse con base en ciip_flag según varias condiciones de la técnica anterior.
[0054] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, el elemento de sintaxis de capa alta es un elemento de sintaxis en al menos uno de un nivel de secuencia, un nivel de imagen, un nivel de segmento y un nivel de grupo de segmentos.
[0055] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, el modo de fusión de nivel 1 incluye un modo de fusión normal, un modo de fusión con diferencia de vector de movimiento MMVD y un modo de fusión de subbloque.
[0056] Cuando se determina si el modo de fusión de nivel 1 está disponible, si estos modos están disponibles se puede determinar secuencialmente en una secuencia del modo de fusión normal, el modo MMVD y el modo de fusión de subbloque.
[0057] Por ejemplo, primero se puede determinar si el modo de fusión normal está disponible. Cuando el modo de fusión normal no está disponible (si el modo de fusión normal está disponible, el modo de fusión normal se puede usar directamente como el modo de fusión objetivo final), se continúa determinando si el modo MMVD está disponible. Cuando el modo MMVD no está disponible, se continúa determinando si el modo de fusión de subbloques está disponible.
[0058] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, el método incluye además:
cuando el modo de fusión normal no está disponible, determinar el modo de fusión objetivo a partir del modo de fusión de nivel 2, donde el modo de fusión de nivel 2 incluye un modo TPM y un modo CIIP; y cuando se permite usar el modo CIIP, y no se cumple cualquiera de las siguientes condiciones, determinar el modo CIIP como el modo de fusión objetivo:
[0059] Condición D: Se permite usar el modo TPM.
[0060] Condición E: No se usa un modo de salto para predecir el bloque de imagen actual.
[0061] Condición F: (cbWidth * cbHeight) ≥ 64.
[0062] Condición G: cbWidth < 128.
[0063] Condición H: cbHeight < 128.
[0064] cdWidth es una anchura del bloque de imagen actual y cbHeight es una altura del bloque de imagen actual. Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, el método de predicción se aplica a un lado codificador, para codificar el bloque de imagen actual.
[0065] Con referencia al primer aspecto, en algunas implementaciones del primer aspecto, el método de predicción se aplica a un lado decodificador, para decodificar el bloque de imagen actual.
[0066] Según un segundo aspecto, se da a conocer un método de predicción de imagen. El método incluye: determinar si se usa un modo de fusión para un bloque de imagen actual; cuando se usa el modo de fusión para el bloque de imagen actual, determinar si está disponible un modo de fusión de nivel 1; cuando el modo de fusión de nivel 1 no está disponible, determinar un modo de fusión objetivo a partir de un modo de fusión de nivel 2, donde el modo de fusión de nivel 2 incluye un modo TPM y un modo CIIP; cuando se permite usar el modo CIIP y no se cumple cualquiera de las siguientes condiciones (una condición 1 a una condición 5), determinar el modo CIIP como el modo de fusión objetivo:
[0067] Condición 1: Se permite usar el modo TPM.
[0068] Condición 2: Un tipo de segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es B. Condición 3: Una cantidad máxima de candidatos al modo TPM soportados por el segmento o el grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2.
[0069] Condición 4: Un tamaño del bloque de imagen actual cumple una condición preestablecida.
[0070] Condición 5: No se usa un modo de salto para predecir el bloque de imagen actual.
[0071] La primera condición puede estar representada específicamente por sps_triangle_enabled_flag = 1, la segunda condición puede estar representada específicamente por slice_type == B, y la tercera condición puede estar representada específicamente por MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand indica la cantidad máxima de candidatos de modo TPM soportados por el segmento o grupo de segmentos en el que se ubica el bloque de imagen actual.
[0072] Además, para el bloque de imagen actual, el modo de fusión de nivel 1 y el modo de fusión de nivel 2 pueden incluir todos los modos de fusión opcionales del bloque de imagen actual y, para el bloque de imagen actual, se debe determinar un modo de fusión objetivo final a partir del modo de fusión de nivel 1 y el modo de fusión de nivel 2.
[0073] Opcionalmente, una prioridad del modo de fusión de nivel 1 es mayor que una prioridad del modo de fusión de nivel 2.
[0074] Que una prioridad del modo de fusión de nivel 1 sea mayor que una prioridad del modo de fusión de nivel 2 significa que en un proceso de determinación del modo de fusión objetivo del bloque de imagen actual, el modo de fusión objetivo se determina preferentemente a partir del modo de fusión de nivel 1. Si no hay ningún modo de fusión disponible en el modo de fusión de nivel 1, el modo de fusión objetivo se determina a partir del modo de fusión de nivel 2.
[0075] Opcionalmente, que un tamaño del bloque de imagen actual cumpla una condición preestablecida incluye: el bloque de imagen actual cumple las siguientes tres condiciones:
[0076] y
[0078] Opcionalmente, la determinación de si se usa un modo de fusión para un bloque de imagen actual incluye: cuando el merge_flag correspondiente al bloque de imagen actual es 1, determinar que el modo de fusión se usa para el bloque de imagen actual; y cuando el merge_flag correspondiente al bloque de imagen actual es 0, determinar que el modo de fusión no se usa para el bloque de imagen actual.
[0079] Debe entenderse que cuando se determina que el modo de fusión no se usa para el bloque de imagen actual, se puede usar otro modo distinto del modo de fusión para predecir el bloque de imagen actual. Por ejemplo, cuando se determina que el modo de fusión no se usa para el bloque de imagen actual, se puede usar un modo AMVP de vector de movimiento avanzado para predecir el bloque de imagen actual.
[0080] Opcionalmente, el modo de fusión de nivel 1 incluye un modo de fusión normal, un modo MMVD y un modo de fusión de subbloque.
[0081] Cuando se determina si el modo de fusión de nivel 1 está disponible, si estos modos están disponibles se puede determinar secuencialmente en una secuencia del modo de fusión normal, el modo MMVD y el modo de fusión de subbloque. Cuando todos los modos no están disponibles, se determina que el modo de fusión de nivel 1 no está disponible.
[0082] En esta solicitud, cuando el modo de fusión de nivel 1 no está disponible, se puede determinar, con base en algunas condiciones preestablecidas, si se selecciona el modo CIIP como el modo de fusión final, y el modo CIIP se puede determinar directamente como el modo de fusión objetivo siempre que no se cumpla alguna de las condiciones preestablecidas. Esto reduce la redundancia generada en un proceso de determinación de la fusión objetivo.
[0083] Con referencia al segundo aspecto, en algunas implementaciones del segundo aspecto, la determinación de un modo de fusión objetivo a partir de un modo de fusión de nivel 2 incluye: cuando no se cumple ninguna de las condiciones 1 a 5, establecer un valor de información de estado disponible que indica un estado disponible del modo CIIP en un primer valor, donde cuando el valor de la información de estado disponible que indica el estado disponible del modo CIIP es el primer valor, el modo CIIP se usa para realizar una predicción de imagen en el bloque de imagen actual.
[0084] Debe entenderse que establecer un valor de información de estado disponible que indica un estado disponible del modo TPM en un primer valor aquí es equivalente a determinar el CIIP como el modo de fusión objetivo.
[0085] Opcionalmente, la información de estado disponible que indica el estado disponible del modo CIIP es ciip_flag. La configuración de un valor de información de estado disponible que indica un estado disponible del modo CIIP a un primer valor puede ser la configuración específica de ciip_flag a 1.
[0086] Además, cuando el valor de la información de estado disponible que indica el estado disponible del modo CIIP se establece en un segundo valor, puede significar que el modo CIIP no se usa para realizar la predicción de imagen en el bloque de imagen actual. Por ejemplo, cuando la información de estado disponible que indica el estado disponible del modo CIIP es ciip_flag y ciip_flag = 0, el modo CIIP no se usa para realizar la predicción de imagen en el bloque de imagen actual.
[0087] Con referencia al segundo aspecto, en algunas implementaciones del segundo aspecto, la determinación de un modo de fusión objetivo a partir de un modo de fusión de nivel 2 incluye: cuando se cumplen todas las condiciones de la condición 1 a la condición 5, determinar el modo de fusión objetivo con base en un elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP, donde la información de estado disponible que indica el estado disponible del modo CIIP se usa para indicar si se usa el modo CIIP cuando se predice el bloque de imagen actual.
[0088] Por ejemplo, la información de estado disponible que indica el estado disponible del modo CIIP es un valor de ciip_flag. Cuando ciip_flag es 0, el modo CIIP no está disponible para el bloque de imagen actual. Cuando ciip_flag es 1, el modo CIIP está disponible para el bloque de imagen actual.
[0089] En esta solicitud, el modo de fusión objetivo se puede determinar con base en el elemento de sintaxis de capa alta del modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP solo cuando se cumplen las cinco condiciones preestablecidas. En comparación con una solución convencional, se deben
cumplir más condiciones antes de que el modo de fusión objetivo se determine con más detalle con base en el elemento de sintaxis de capa alta y la información de estado disponible del modo CIIP. De otro modo, el modo CIIP puede determinarse directamente como el modo de fusión objetivo. Esto puede reducir algunos procesos redundantes en el proceso de determinación del modo de fusión objetivo.
[0090] Con referencia al segundo aspecto, en algunas implementaciones del segundo aspecto, la determinación del modo de fusión objetivo con base en un elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP incluye: cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indican que el modo CIIP está prohibido, determinar el modo TPM como el modo de fusión objetivo. Con referencia al segundo aspecto, en algunas implementaciones del segundo aspecto, cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indica/indique que el modo CIIP está prohibido para su uso, la determinación del modo TPM como el modo de fusión objetivo incluye:
[0091] cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indica/indique que el modo CIIP está prohibido para su uso, establecer un valor de información de estado disponible que indica un estado disponible del modo TPM en un primer valor, donde cuando el valor de la información de estado disponible que indica el estado disponible del modo TPM es el primer valor, el modo TPM se usa para realizar predicción de imagen en el bloque de imagen actual.
[0092] Debe entenderse que establecer un valor de información de estado disponible que indica un estado disponible del modo TPM en un primer valor en este documento es equivalente a determinar el TPM como el modo de fusión objetivo.
[0093] Opcionalmente, la información de estado disponible que indica el estado disponible del modo TPM es MergeTriangleFlag.
[0094] La configuración de un valor de información de estado disponible que indica un estado disponible del modo TPM a un primer valor puede específicamente configurar MergeTriangleFlag.a 1.
[0095] Con referencia al segundo aspecto, en algunas implementaciones del segundo aspecto, antes de que se determine el modo de fusión objetivo con base en el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP, el método incluye además: determinar que se cumple al menos una de las siguientes condiciones:
[0096] Un tamaño del bloque de imagen actual cumple una condición preestablecida; y
[0097] no se usa un modo de salto para predecir el bloque de imagen actual.
[0098] cdWidth es una anchura del bloque de imagen actual y cbHeight es una altura del bloque de imagen actual. Según un tercer aspecto, se proporciona un método de predicción de imagen. El método incluye: determinar si se usa un modo de fusión para un bloque de imagen actual; cuando se usa el modo de fusión para el bloque de imagen actual, determinar si está disponible un modo de fusión de nivel 1; y cuando el modo de fusión de nivel 1 no está disponible, determinar un modo de fusión objetivo a partir de un modo de fusión de nivel 2. El modo de fusión de nivel 2 incluye un modo TPM y un modo CIIP. Cuando se permite usar el modo CIIP y se cumplen todas las condiciones siguientes (de una condición 1 a una condición 3), la información de estado disponible del modo CIIP se obtiene analizando un flujo de bits y el modo de fusión objetivo se determina con base en la información de estado disponible del modo CIIP:
[0099] Condición 1: Se permite usar el modo TPM.
[0100] Condición 2: Un tamaño del bloque de imagen actual cumple una condición preestablecida.
[0101] Condición 3: No se usa un modo de salto para predecir el bloque de imagen actual.
[0102] En una posible implementación según el tercer aspecto, si la información de estado disponible del modo CIIP obtenida al analizar el flujo de bits indica que el modo CIIP no está disponible, el TPM se usa como el modo de fusión objetivo.
[0103] En esta solicitud, cuando el modo de fusión de nivel 1 no está disponible, se puede determinar, con base en algunas condiciones preestablecidas, si se selecciona el modo CIIP como el modo de fusión final, y el modo CIIP
se puede determinar directamente como el modo de fusión objetivo siempre que no se cumpla alguna de las condiciones preestablecidas. Esto reduce la redundancia generada en un proceso de determinación de la fusión objetivo.
[0104] Según un cuarto aspecto, se proporciona un método de predicción de imagen. El método incluye: determinar si se usa un modo de fusión para un bloque de imagen actual; cuando se usa el modo de fusión para el bloque de imagen actual, determinar si está disponible un modo de fusión de nivel 1; y cuando el modo de fusión de nivel 1 no está disponible, determinar un modo de fusión objetivo a partir de un modo de fusión de nivel 2. El modo de fusión de nivel 2 incluye un modo TPM y un modo CIIP. Cuando se permite usar el modo CIIP y se cumplen todas las condiciones siguientes (de una condición 1 a una condición 5), la información de estado disponible del modo CIIP se obtiene analizando un flujo de bits, y el modo de fusión objetivo se determina con base en la información de estado disponible del modo CIIP:
[0105] Condición 1: Se permite usar el modo TPM.
[0106] Condición 2: Un tipo de segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es B. Condición 3: Una cantidad máxima de candidatos al modo TPM soportados por el segmento o el grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2.
[0107] Condición 4: Un tamaño del bloque de imagen actual cumple una condición preestablecida.
[0108] Condición 5: No se usa un modo de salto para predecir el bloque de imagen actual.
[0109] En una posible implementación según el cuarto aspecto, si la información de estado disponible del modo CIIP obtenida al analizar el flujo de bits indica que el modo CIIP no está disponible, el TPM se usa como el modo de fusión objetivo.
[0110] En esta solicitud, cuando el modo de fusión de nivel 1 no está disponible, se puede determinar, con base en algunas condiciones preestablecidas, si se selecciona el modo CIIP como el modo de fusión final, y el modo CIIP se puede determinar directamente como el modo de fusión objetivo siempre que no se cumpla alguna de las condiciones preestablecidas. Esto reduce la redundancia generada en el proceso de determinación de la fusión objetivo.
[0111] Según un quinto aspecto, se proporciona un método de predicción de imagen. El método incluye: determinar si se usa un modo de fusión para un bloque de imagen actual; cuando se usa el modo de fusión para el bloque de imagen actual, continuar determinando si está disponible un modo de fusión de nivel 1; cuando el modo de fusión de nivel 1 no está disponible y un elemento de sintaxis de capa alta correspondiente a un primer conjunto de modos de fusión indica que está prohibido usar un modo de fusión en el primer conjunto de modos de fusión, determinar un modo de fusión objetivo aplicable al bloque de imagen actual a partir de un segundo conjunto de modos de fusión; y predecir el bloque de imagen actual usando el modo de fusión objetivo.
[0112] Tanto el primer conjunto de modos de fusión como el segundo conjunto de modos de fusión pertenecen a un modo de fusión de nivel 2. En otras palabras, el modo de fusión de nivel 2 incluye el primer conjunto de modos de fusión y el segundo conjunto de modos de fusión. Además, para el bloque de imagen actual, el modo de fusión de nivel 1 y el modo de fusión de nivel 2 pueden incluir todos los modos de fusión opcionales del bloque de imagen actual y, para el bloque de imagen actual, se necesita determinar un modo de fusión objetivo final a partir del modo de fusión de nivel 1 y el modo de fusión de nivel 2.
[0113] Opcionalmente, el primer conjunto de modos de fusión incluye al menos un modo de fusión, y el segundo conjunto de modos de fusión incluye al menos un modo de fusión.
[0114] Debe entenderse que el primer conjunto de modos de fusión y el segundo conjunto de modos de fusión son simplemente conceptos introducidos para facilitar la descripción y se usan principalmente para distinguir entre diferentes modos de fusión. En un proceso real de determinación del modo de fusión objetivo final, es posible que el primer conjunto de modos de fusión y el segundo conjunto de modos de fusión pueden no existir.
[0115] En esta solicitud, cuando los elementos de sintaxis de capa alta de algunos modos de fusión indican que está prohibido usar estos modos de fusión, no hay necesidad de analizar la información de estado disponible de estos modos de fusión. En lugar de ello, el modo de fusión objetivo final puede determinarse directamente a partir de los modos de fusión opcionales restantes. Esto puede reducir, tanto como sea posible, la redundancia generada debido a la determinación del modo de fusión objetivo en un proceso de predicción de imagen.
[0116] Con referencia al quinto aspecto, en algunas implementaciones del quinto aspecto, cuando el modo de fusión de nivel 1 no está disponible, y el elemento de sintaxis de capa alta correspondiente al primer conjunto de modos de fusión indica que se puede usar el modo de fusión en el primer conjunto de modos de fusión, el modo de fusión
objetivo se determina con base en un elemento de sintaxis de capa alta correspondiente al segundo conjunto de modos de fusión y/o información de estado disponible del segundo conjunto de modos de fusión.
[0117] La información de estado disponible del segundo conjunto de modos de fusión se usa para indicar si se usa un modo de fusión en el segundo conjunto de modos de fusión cuando se predice el bloque de imagen actual. Por ejemplo, si el segundo conjunto de modos de fusión incluye un modo CIIP, la información de estado disponible del segundo conjunto de modos de fusión puede ser un valor de ciip_flag. Cuando ciip_flag es 0, el modo CIIP no está disponible para el bloque de imagen actual. Cuando ciip_flag es 1, se usa el modo CIIP para predecir el bloque de imagen actual.
[0118] Con referencia al quinto aspecto, en algunas implementaciones del quinto aspecto, el primer conjunto de modos de fusión incluye un modo de partición triangular TPM, y el segundo conjunto de modos de fusión incluye un modo combinado de intra e interpredicción CIIP.
[0119] Opcionalmente, el primer conjunto de modos de fusión consta del modo TPM, y el segundo conjunto de modos consta del modo CIIP.
[0120] Cuando el primer conjunto de modos de fusión y el segundo conjunto de modos de fusión incluyen cada uno solo un modo de fusión, si se prohíbe el uso del modo de fusión en el primer conjunto de modos de fusión, el modo de fusión en el segundo conjunto de modos de fusión puede determinarse como el modo de fusión objetivo; y si se prohíbe el uso del modo de fusión en el segundo conjunto de modos de fusión, la fusión en el primer conjunto de modos de fusión puede determinarse como el modo de fusión objetivo.
[0121] Cuando el primer conjunto de modos de fusión y el segundo conjunto de modos de fusión incluyen cada uno solo un modo de fusión, siempre que se prohíba usar un modo de fusión en uno de los conjuntos de modos de fusión, un modo de fusión en el otro conjunto de modos de fusión puede determinarse directamente como el modo de fusión objetivo final.
[0122] Con referencia al quinto aspecto, en algunas implementaciones del quinto aspecto, cuando el modo de fusión de nivel 1 no está disponible y el elemento de sintaxis de capa alta correspondiente al primer conjunto de modos de fusión indica que el modo de fusión en el primer conjunto de modos de fusión está prohibido para ser usado, la determinación de un modo de fusión objetivo aplicable al bloque de imagen actual a partir de un segundo conjunto de modos de fusión incluye: cuando el modo de fusión de nivel 1 no está disponible y el elemento de sintaxis de capa alta correspondiente al modo TPM indica que se prohíbe usar el modo TPM, determinar el modo CIIP como el modo de fusión objetivo.
[0123] Según un sexto aspecto, se proporciona un aparato de predicción de imagen. El aparato incluye un módulo correspondiente al método según uno cualquiera del primer aspecto al quinto aspecto, y el módulo correspondiente puede implementar los pasos del método según uno cualquiera del primer aspecto al quinto aspecto.
[0124] El aparato de predicción de imagen en el sexto aspecto puede incluir uno o más módulos, y uno cualquiera del uno o más módulos puede incluir cualquiera de los siguientes: un circuito, una matriz de puertas programables en campo FPGA, un circuito integrado específico de aplicación ASIC y un procesador de propósito general.
[0125] El aparato de predicción de imagen en el sexto aspecto puede estar ubicado en un aparato codificador o un aparato decodificador.
[0126] Según un séptimo aspecto, se proporciona un aparato de predicción de imagen que incluye un procesador y una memoria. El procesador invoca al código de programa almacenado en la memoria para realizar el método según uno cualquiera del primer aspecto, el segundo aspecto, y el tercer aspecto.
[0127] El aparato de predicción de imagen en el séptimo aspecto puede estar ubicado en un aparato de codificación de imágenes o un aparato de decodificación de imágenes.
[0128] Según un octavo aspecto, se proporciona un aparato de codificación/decodificación de imagen. El aparato incluye un módulo correspondiente al método según uno cualquiera del primer aspecto al quinto aspecto, y el módulo correspondiente puede implementar los pasos del método según uno cualquiera del primer aspecto al quinto aspecto.
[0129] Según un noveno aspecto, se proporciona un aparato de codificación/decodificación de imagen, que incluye una memoria y un procesador. El procesador invoca al código de programa almacenado en la memoria para realizar el método según uno cualquiera del primer aspecto al quinto aspecto.
[0130] Opcionalmente, la memoria es una memoria no volátil.
[0131] Opcionalmente, la memoria y el procesador están acoplados entre sí.
[0132] Según un décimo aspecto, una realización de esta solicitud proporciona un medio de almacenamiento legible por ordenador. El medio de almacenamiento legible por ordenador almacena una instrucción, y las instrucciones permiten a uno o más procesadores realizar el método según uno cualquiera del primer aspecto al quinto aspecto. Cualquiera de los uno o más procesadores puede incluir cualquiera de un circuito, una matriz de puertas programables en campo FPGA, un circuito integrado específico de aplicación ASIC y un procesador de propósito general.
[0133] Según un undécimo aspecto, una realización de esta solicitud proporciona un producto de programa informático. Cuando el producto de programa informático se ejecuta en un ordenador, el ordenador está habilitado para realizar algunos o todos los pasos del método según uno cualquiera del primer aspecto al quinto aspecto.
[0134] Breve descripción de los dibujos
[0135] La FIG.1 es un diagrama de bloques de un ejemplo de un sistema de codificación de vídeo para implementar una realización de la presente solicitud;
[0136] la FIG. 2 es un diagrama de bloques estructural esquemático de un ejemplo de un codificador de vídeo para implementar una realización de esta solicitud;
[0137] la FIG. 3 es un diagrama de bloques estructural esquemático de un ejemplo de un decodificador de vídeo para implementar una realización de esta solicitud;
[0138] la FIG.4 es un diagrama de bloques estructural esquemático de un ejemplo de un sistema de codificación de vídeo para implementar una realización de esta solicitud;
[0139] la FIG.5 es un diagrama de bloques estructural esquemático de un ejemplo de un sistema de codificación de vídeo para implementar una realización de esta solicitud;
[0140] la FIG.6 es un diagrama de bloques esquemático de un ejemplo de un aparato de codificación o un aparato de decodificación para implementar una realización de esta solicitud;
[0141] la FIG.7 es un diagrama esquemático de información de movimiento candidata espacial y temporal de una unidad de codificación actual;
[0142] la FIG.8 es un diagrama esquemático de un punto de búsqueda MMVD usado para implementar una realización de esta solicitud;
[0143] la FIG.9 es otro diagrama esquemático de un punto de búsqueda MMVD usado para implementar una realización de esta solicitud;
[0144] la FIG.10 es un diagrama esquemático de una partición triangular;
[0145] la FIG.11 es un diagrama esquemático de un método de predicción en forma de partición triangular;
[0146] la FIG. 12 es un diagrama de bloques esquemático de un sistema de comunicaciones de video según una realización de esta solicitud; y
[0147] la FIG.13 es un diagrama de flujo esquemático de un método de predicción de imagen según una realización de esta solicitud;
[0148] la FIG.14 es un diagrama de flujo esquemático de un método de predicción de imagen según una realización de esta solicitud;
[0149] la FIG.15 es un diagrama de flujo esquemático de un método de predicción de imagen según una realización de esta solicitud;
[0150] la FIG.16 es un diagrama de bloques esquemático de un aparato de predicción de imagen según una realización de esta solicitud;
[0151] la FIG.17 es un diagrama de bloques esquemático de un aparato de predicción de imagen según una realización de esta solicitud; y
[0152] la FIG.18 es un diagrama de bloques esquemático de un aparato de codificación/decodificación de imagen según
una realización de esta solicitud.
[0153] Descripción de las realizaciones
[0154] A continuación se describen soluciones técnicas de esta solicitud con referencia a los dibujos adjuntos.
[0155] En la siguiente descripción, se hace referencia a los dibujos adjuntos, que forman parte de esta solicitud y muestran, a modo de ilustración, aspectos específicos de las realizaciones de esta solicitud o aspectos específicos en los que se pueden usar las realizaciones de esta solicitud. Se debe entender que las realizaciones de esta solicitud se pueden usar en otros aspectos y pueden comprender cambios estructurales o lógicos no representados en las dibujos adjuntos. Por lo tanto, la siguiente descripción detallada no debe entenderse en un sentido limitado, y el alcance de esta solicitud se define por las reivindicaciones adjuntas.
[0156] Por ejemplo, se debe entender que una descripción en relación con un método descrito también puede ser válida para un dispositivo o sistema correspondiente configurado para realizar el método y viceversa.
[0157] Como otro ejemplo, si se describe uno o más pasos específicos del método, un dispositivo correspondiente puede incluir una o más unidades tales como unidades funcionales para realizar los descritos uno o más pasos del método (por ejemplo, una unidad que realiza el uno o más pasos, o una pluralidad de unidades, cada una de las cuales realiza uno o más de la pluralidad de pasos), incluso si dichas una o más unidades no se describen o ilustran explícitamente en los dibujos adjuntos.
[0158] Además, si se describe un aparato específico con base en una o más unidades, tal como una unidad funcional, un método correspondiente puede incluir un paso usado para realizar una función de una o más unidades (por ejemplo, un paso usado para realizar la función de la una o más unidades; o una pluralidad de pasos cada uno de los cuales se usa para realizar la función de una o más unidades), incluso si tal uno o más pasos no se describen o ilustran en los dibujos adjuntos. Además, se debe entender que las características de las diversas realizaciones y/o aspectos de ejemplo descritos en esta memoria descriptiva pueden combinarse entre sí, a menos que se especifique lo contrario.
[0159] Las soluciones técnicas en las realizaciones de esta solicitud se pueden aplicar al estándar H.266 y a un futuro estándar de codificación de vídeo. Los términos usados en las implementaciones de las realizaciones de esta solicitud simplemente pretenden explicar realizaciones específicas de esta solicitud, y no pretenden limitar esta solicitud. A continuación, se describen primero brevemente conceptos relacionados en las realizaciones de esta solicitud.
[0160] La codificación de vídeo generalmente se refiere al procesamiento de una secuencia de imágenes, que constituyen el vídeo o la secuencia de vídeo. En el campo de la codificación de vídeo, los términos "imagen", "fotograma" o "ilustración" se pueden usar como sinónimos. La codificación de vídeo usada en esta especificación indica codificación de vídeo y decodificación de vídeo. La codificación de vídeo se realiza en un lado origen, que incluye normalmente el procesamiento (por ejemplo, comprimiendo) una imagen de vídeo original para reducir una cantidad de datos para representar la imagen de vídeo, para un almacenamiento y/o transmisión más eficientes. La decodificación de vídeo se realiza en un lado de destino y típicamente incluye el procesamiento inverso en relación con un codificador para reconstruir la imagen de vídeo. La "codificación" de una imagen de vídeo en las realizaciones debe entenderse como "codificación" o "decodificación" de una secuencia de vídeo. Una combinación de una parte de codificación y una parte de decodificación también se conoce como CODEC (codificación y decodificación).
[0161] Una secuencia de vídeo incluye una serie de imágenes, la imagen se divide además en segmentos y el segmento se divide en bloques. La codificación de vídeo se realiza por bloques. En algunos nuevos estándares de codificación de vídeo, el concepto "bloque" se amplía aún más. Por ejemplo, se introduce un macrobloque (MB) en el estándar H.264. El macrobloque puede dividirse además en una pluralidad de bloques de predicción (partición) que pueden usarse para codificación predictiva. En el estándar de codificación de vídeo de alta eficiencia (HEVC), se usan conceptos básicos tales como "unidad de codificación" (CU), "unidad de predicción" (PU) y "unidad de transformada" (TU). Se obtienen una pluralidad de unidades de bloque a través de la división funcional y se describen usando una nueva estructura basada en árbol. Por ejemplo, una CU se puede dividir en CU más pequeñas con base en un árbol cuádruple, y la CU más pequeña se puede dividir aún más, para generar una estructura de árbol cuádruple. La CU es una unidad básica para dividir y codificar una imagen codificada. Una PU y una TU también tienen estructuras de árbol similares. La PU puede corresponder a un bloque de predicción y es una unidad básica para la codificación predictiva. La CU se divide adicionalmente en una pluralidad de PU en un patrón de división. La TU puede corresponder a un bloque de transformada, y es una unidad básica para transformar una predicción residual. Sin embargo, en esencia, todas de la CU, la PU y la TU son conceptualmente bloques (o bloques de imagen).
[0162] Por ejemplo, en HEVC, una CTU se divide en una pluralidad de CU mediante el uso de una estructura de árbol cuádruple representada como un árbol de codificación. Una decisión de si codificar un área de imagen usando
interimagen (temporal) o intraimagen (espacial) se realiza en un nivel de CU. Cada CU se puede dividir en una, dos o cuatro PU con base en un patrón de división de PU. En una PU, se aplica un mismo proceso de predicción y la información relacionada se transmite a un decodificador por PU. Después de obtener un bloque residual aplicando el proceso de predicción basado en el patrón de división de PU, la CU puede particionarse en unidades de transformada (TU) con base en otra estructura de árbol cuádruple similar al árbol de codificación usado para la CU. En el desarrollo reciente de tecnologías de compresión de vídeo, un fotograma de partición en árbol binario más árbol cuádruple (QTBT) se usa para particionar un bloque de codificación. En una estructura de bloques QTBT, la CU puede ser cuadrada o rectangular.
[0164] En esta especificación, para facilitar la descripción y comprensión, un bloque de imagen a codificar en una imagen codificada actual puede denominarse bloque de imagen actual. Por ejemplo, en la codificación, el bloque de imagen actual es un bloque que se está codificando actualmente; y en la decodificación, el bloque de imagen actual es un bloque que se está decodificando actualmente. Un bloque de imagen decodificado, en una imagen de referencia, usado para predecir el bloque de imagen actual se denomina bloque de referencia. Para ser específico, el bloque de referencia es un bloque que proporciona una señal de referencia para el bloque de imagen actual, y la señal de referencia representa un valor de píxel en el bloque de imagen. Un bloque que proporciona una señal de predicción para el bloque de imagen actual se puede referir como un bloque de predicción, y la señal de predicción representa un valor de píxel, un valor de muestra o una señal de muestra en el bloque de predicción. Por ejemplo, un bloque de referencia óptimo se ubica después de recorrer una pluralidad de bloques de referencia, el bloque de referencia óptimo proporciona una predicción para el bloque de imagen actual, y este bloque se denomina bloque de predicción.
[0166] En caso de codificación de vídeo sin pérdidas, las imágenes de vídeo originales pueden reconstruirse, lo que significa que las imágenes de vídeo reconstruidas tienen la misma calidad que las imágenes de vídeo originales (suponiendo que no se produzcan pérdidas de transmisión u otras pérdidas de datos durante el almacenamiento o la transmisión). En caso de codificación de vídeo con pérdidas, se realiza una compresión adicional, por ejemplo, mediante cuantificación, para reducir la cantidad de datos que representan las imágenes de vídeo, y las imágenes de video no pueden reconstruirse completamente en el lado del decodificador, es decir, la calidad de las imágenes de vídeo reconstruidas es menor o peor que las imágenes de vídeo originales.
[0168] Varios estándares de codificación de vídeo H.261 se usan para "códecs de vídeo híbridos con pérdidas" (es decir, la predicción espacial y temporal en un dominio de muestras se combina con codificación de transformada 2D para aplicar cuantificación en el dominio de transformada). Cada imagen de una secuencia de vídeo normalmente se particiona en un conjunto de bloques que no se superponen y la codificación normalmente se realiza a nivel de bloque. En otras palabras, en un lado codificador, un vídeo usualmente se procesa, es decir, se codifica, a nivel de bloque (bloque de vídeo). Por ejemplo, un bloque de predicción se genera a través de la predicción espacial (intraimagen) y la predicción temporal (interimagen), el bloque de predicción se resta de un bloque actual (un bloque que actualmente se está procesando o se va a procesar) para obtener un bloque residual, y el bloque residual se transforma en el dominio de transformada y se cuantifica para reducir una cantidad de datos que se van a transmitir (comprime). En un lado decodificador, una parte de procesamiento inversa en relación con el codificador se aplica al bloque codificado o comprimido para reconstruir el bloque de imagen actual para su representación. Además, el codificador duplica un bucle de procesamiento de decodificador, para que el codificador y el decodificador generen una misma predicción (por ejemplo, intrapredicción e interpredicción) y/o reconstrucción para el procesamiento, es decir, para codificar los bloques posteriores.
[0170] A continuación se describe una arquitectura de sistema aplicable a las realizaciones de la presente invención. La FIG.1 es un diagrama de bloques esquemático de un ejemplo de un sistema 10 de codificación y decodificación de vídeo aplicable a las realizaciones de la presente invención. Como se muestra en la FIG.1, el sistema 10 de codificación y decodificación de vídeo puede incluir un dispositivo 12 de origen y un dispositivo 14 de destino. El dispositivo 12 de origen genera datos de vídeo codificados, y por lo tanto el dispositivo 12 de origen puede denominarse aparato de codificación de vídeo. El dispositivo 14 de destino puede decodificar los datos de vídeo codificados generados por el dispositivo 12 de origen, y por lo tanto el dispositivo 14 de destino puede denominarse aparato de decodificación de vídeo. En diversas soluciones de implementación, el dispositivo 12 de origen, el dispositivo 14 de destino, o ambos, el dispositivo 12 de origen y el dispositivo 14 de destino pueden incluir uno o más procesadores y una memoria acoplada al uno o más procesadores. La memoria puede incluir pero no se limita a una memoria de solo lectura (ROM), una memoria de acceso aleatorio (RAM), una memoria de solo lectura programable borrable (EPROM), una memoria flash o cualquier otro medio que pueda ser configurado para almacenar el código de programa requerido en forma de una instrucción o una estructura de datos a la que puede acceder un ordenador, según se describe en esta especificación. El dispositivo 12 de origen y el dispositivo 14 de destino pueden incluir diversos aparatos, incluyendo un ordenador de escritorio, un aparato informático móvil, un ordenador portátil (por ejemplo, un portátil), un ordenador tableta, un decodificador, un auricular telefónico tal como un llamado teléfono "inteligente", una televisión, una cámara, un aparato de visualización, un reproductor de medios digitales, una consola de videojuegos, un ordenador montada en un vehículo, un dispositivo de comunicaciones inalámbricas, o similares.
[0172] Aunque la FIG.1 representa el dispositivo 12 de origen y el dispositivo 14 de destino como dispositivos separados,
una realización de dispositivo puede incluir alternativamente tanto el dispositivo 12 de origen como el dispositivo 14 de destino o funciones tanto del dispositivo 12 de origen como del dispositivo 14 de destino, es decir, el dispositivo 12 de origen o una función correspondiente y el dispositivo 14 de destino o una función correspondiente. En tal realización, el dispositivo 12 de origen o la funcionalidad correspondiente y el dispositivo 14 de destino o la funcionalidad correspondiente pueden implementarse usando el mismo hardware y/o software o por hardware y/o software separados o cualquier combinación de los mismos.
[0174] Una conexión de comunicación entre el dispositivo de origen 12 y el dispositivo 14 de destino puede implementarse a través de un en enlace 13. El dispositivo 14 de destino puede recibir los datos de vídeo codificados del dispositivo de origen 12 a través del en enlace 13. El en enlace 13 puede incluir uno o más medios o aparatos capaces de mover los datos de vídeo codificados desde el dispositivo 12 de origen al dispositivo 14 de destino. En un ejemplo, el en enlace 13 puede incluir uno o más medios de comunicaciones que permiten que el dispositivo 12 de origen transmita directamente los datos de vídeo codificados al dispositivo 14 de destino en tiempo real. En este ejemplo, el dispositivo 12 de origen puede modular los datos de vídeo codificados según un estándar de comunicaciones (por ejemplo, un protocolo de comunicaciones inalámbricas), y puede transmitir datos de vídeo modulados al dispositivo 14 de destino. El uno o más medios de comunicaciones puede incluir un medio de comunicaciones inalámbricas y/o un medio de comunicaciones por cable, por ejemplo, un espectro de radiofrecuencia (RF) o uno o más cables físicos de transmisión. El uno o más medios de comunicaciones puede ser una parte de una red con base en paquetes, y la red con base en paquetes es, por ejemplo, una red de área local, una red de área amplia o una red global (por ejemplo, Internet). El uno o más medios de comunicación pueden incluir un enrutador, un conmutador, una estación base u otro dispositivo que facilita la comunicación desde el dispositivo 12 de origen al dispositivo destino 14.
[0176] El dispositivo 12 de origen incluye un codificador 20. Opcionalmente, el dispositivo 12 de origen puede incluir además una fuente 16 de imagen, un preprocesador 18 de imágenes y una interfaz 22 de comunicaciones. En una forma de implementación específica, el codificador 20, la fuente 16 de imagen, el preprocesador 18 de imágenes y la interfaz 22 de comunicaciones pueden ser componentes de hardware en el dispositivo 12 de origen, o pueden ser programas de software en el dispositivo 12 de origen. Las descripciones se proporcionan por separado como sigue:
[0178] La fuente 16 de imagen puede incluir o ser cualquier tipo de dispositivo de captura de imágenes configurado para, por ejemplo, capturar una imagen del mundo real, y/o cualquier tipo de dispositivo para generar una imagen o comentario (para codificación de contenido de pantalla, algún texto en una pantalla también se considera parte de una imagen a codificar o una imagen), por ejemplo, un procesador de gráficos por ordenador configurado para generar una imagen de animación informática, o cualquier tipo de dispositivo configurado para obtener y/o proporcionar una imagen del mundo real o una imagen de animación informática (por ejemplo, contenido de pantalla, una imagen de realidad virtual (VR)) y/o cualquier combinación de las mismas (por ejemplo, una imagen de realidad aumentada (AR)). La fuente 16 de imagen puede ser una cámara configurada para capturar una imagen o una memoria configurada para almacenar una imagen. La fuente 16 de imagen puede incluir además cualquier tipo de interfaz (interna o externa) a través de la que se almacena una imagen previamente capturada o generada y/o se obtiene o recibe una imagen. Cuando la fuente 16 de imagen es una cámara, la fuente 16 de imagen puede ser, por ejemplo, una cámara local o una cámara integrada en el dispositivo de origen. Cuando la fuente 16 de imagen es una memoria, la fuente 16 de imagen puede ser una memoria local o, por ejemplo, una memoria integrada en el dispositivo de fuente. Cuando la fuente 16 de imagen incluye una interfaz, la interfaz puede ser, por ejemplo, una interfaz externa para recibir una imagen de una fuente de vídeo externa. La fuente de vídeo externa es, por ejemplo, un dispositivo de captura de imagen externo, tal como una cámara, una memoria externa o un dispositivo de generación de imagen externo. El dispositivo de generación de imagen externo es, por ejemplo, un procesador de gráficos por ordenador externo, un ordenador o un servidor. La interfaz puede ser cualquier tipo de interfaz, por ejemplo, una interfaz por cable o inalámbrica, o una interfaz óptica, según cualquier protocolo de interfaz patentado o estandarizado.
[0180] Una imagen puede considerarse como una matriz bidimensional o matriz de elementos de píxel (elementos de imagen). El elemento de píxel en la distribución también puede denominarse muestra. Una cantidad de muestras en direcciones (o ejes) horizontal y vertical de la matriz o la imagen define un tamaño y/o resolución de la imagen. Para la representación de un color, usualmente se usan tres componentes de color. Para ser específicos, la imagen puede representarse o incluir tres matrices de muestras. Por ejemplo, en un espacio de color o formato RBG, una imagen incluye matrices de muestras roja, verde y azul correspondientes. Sin embargo, en la codificación de vídeo, cada píxel generalmente se representa en un formato de luminancia/crominancia o un espacio de color. Por ejemplo, una imagen en un formato YUV incluye un componente de luminancia indicado por Y (a veces indicado por L de manera alternativa) y dos componentes de crominancia indicados por U y V. El componente Y de luminancia (luma) representa el brillo o la intensidad del nivel de gris (por ejemplo, ambos son iguales en una imagen de escala de grises), y los dos componentes de crominancia U y V (croma) representan componentes de información de crominancia o color. En consecuencia, la imagen en el formato YUV incluye una matriz de muestras de luminancia de valores de muestra de luminancia (Y) y dos matrices de muestras de crominancia de valores de crominancia (U y V). Una imagen en un formato RBG puede transformarse o convertirse en un formato YUV y viceversa. Este proceso también se conoce como conversión o transformada de color. Si una imagen es
monocromática, la imagen puede incluir solo una matriz de muestras de luma. En esta realización de esta solicitud, una imagen transmitida por la fuente 16 de imagen al procesador de imagen también puede denominarse datos 17 de imagen sin procesar.
[0181] El preprocesador 18 de imagen se configura para recibir los datos 17 de imagen sin procesar y realizar el preprocesamiento de los datos 17 de imagen sin procesar para obtener una imagen 19 preprocesada o datos 19 de imagen preprocesados. Por ejemplo, el preprocesamiento realizado por el preprocesador 18 de imagen puede incluir recorte, conversión de formato de color (por ejemplo, de un formato RBG a un formato YUV), corrección de color o eliminación de ruido.
[0182] El codificador 20 (denominado también codificador 20 de vídeo) se configura para recibir los datos 19 de imagen preprocesados, y procesar los datos 19 de imagen preprocesados usando un modo de predicción relacionado (tal como un modo de predicción en cada realización de esta memoria descriptiva), para proporcionar datos 21 de imagen codificados (los detalles estructurales del codificador 20 se describen además a continuación con base en la FIG.2, la FIG.4 o la FIG.5). En algunas realizaciones, el codificador 20 puede configurarse para realizar cada una de las realizaciones descritas a continuación, para implementar la aplicación del lado codificador del método de predicción de imagen descrito en esta solicitud.
[0183] La interfaz 22 de comunicaciones puede configurarse para recibir los datos 21 de imagen codificada, y transmitir los datos 21 de imagen codificada al dispositivo 14 de destino o a cualquier otro dispositivo (por ejemplo, una memoria) a través del en enlace 13 para almacenamiento o reconstrucción directa. El otro dispositivo puede ser cualquier dispositivo usado para la decodificación o el almacenamiento. La interfaz 22 de comunicaciones puede configurarse, por ejemplo, para encapsular los datos 21 de imagen codificada en un formato apropiado, por ejemplo, en un paquete de datos, para transmisión sobre el en enlace 13.
[0184] El dispositivo 14 de destino incluye un decodificador 30. Opcionalmente, el dispositivo 14 de destino puede incluir además una interfaz 28 de comunicaciones, un postprocesador 32 de imagen y un dispositivo 34 de visualización. Las descripciones se proporcionan de manera separada como sigue:
[0185] La interfaz 28 de comunicaciones puede configurarse para recibir los datos 21 de imagen codificada desde el dispositivo 12 de origen o cualquier otra fuente. El otro origen es, por ejemplo, un dispositivo de almacenamiento. El dispositivo de almacenamiento es, por ejemplo, un dispositivo de almacenamiento de datos de imagen codificada. La interfaz 28 de comunicaciones puede configurarse para transmitir o recibir los datos 21 de imagen codificada a través del en enlace 13 entre el dispositivo 12 de origen y el dispositivo 14 de destino o a través de cualquier tipo de red. El en enlace 13 es, por ejemplo, una conexión directa por cable o inalámbrica. El cualquier tipo de red es, por ejemplo, una red por cable o inalámbrica o cualquier combinación de las mismas, o cualquier tipo de red privada o pública o cualquier combinación de las mismas. La interfaz 28 de comunicaciones puede configurarse, por ejemplo, para desencapsular el paquete de datos transmitido a través de la interfaz 22 de comunicaciones, para obtener los datos 21 de imagen codificados.
[0186] Tanto la interfaz 28 de comunicaciones como la interfaz 22 de comunicaciones pueden configurarse como interfaces de comunicaciones unidireccionales o interfaces de comunicaciones bidireccionales, y pueden configurarse, por ejemplo, para enviar y recibir mensajes para establecer una conexión, y acusar recibo e intercambiar cualquier otra información relacionada con el enlace de comunicación y/o la transmisión de datos tales como la transmisión de datos de imagen codificada.
[0187] El decodificador 30 (también denominado decodificador 30) se configura para recibir los datos 21 de imagen codificados y proporcionar datos 31 de imagen decodificados o una imagen 31 decodificada (a continuación se describen detalles estructurales del decodificador 30 con base en la FIG. 3, la FIG. 4 o la FIG. 5). En algunas realizaciones, el decodificador 30 puede configurarse para realizar diversas realizaciones descritas a continuación, para implementar la aplicación del lado decodificador del método de predicción de imagen descrito en la presente invención.
[0188] El postprocesador 32 de imagen se configura para postprocesar los datos 31 de imagen decodificados (también conocidos como datos de imagen reconstruidos) para obtener los datos 33 de imagen postprocesados. El postprocesamiento realizado por el postprocesador 32 de imagen puede incluir conversión de formato de color (por ejemplo, de un formato YUV a un formato RBG), corrección de color, recorte, remuestreo o cualquier otro procesamiento. El postprocesador 32 de imagen puede configurarse además para transmitir los datos 33 de imagen postprocesados al dispositivo 34 de visualización.
[0189] El dispositivo 34 de visualización se configura para recibir los datos 33 de imagen postprocesados para visualizar una imagen, por ejemplo, a un usuario o espectador. El dispositivo 34 de visualización puede ser o puede incluir cualquier tipo de elemento de visualización para representar la imagen reconstruida, por ejemplo, un elemento de visualización o monitor integrado o externo. Por ejemplo, el elemento de visualización puede incluir un elemento de visualización de cristal líquido (LCD), un elemento de visualización de diodos orgánicos emisores de luz (OLED), un elemento de visualización de plasma, un proyector, un elemento de visualización micro LED, cristal líquido
sobre silicio (LCoS), procesador de luz digital (DLP) o cualquier otro tipo de elemento de visualización.
[0191] Aunque la FIG.1 representa el dispositivo 12 de origen y el dispositivo 14 de destino como dispositivos separados, una realización de dispositivo puede incluir alternativamente tanto el dispositivo 12 de origen como el dispositivo 14 de destino o las funcionalidades tanto del dispositivo 12 de origen como del dispositivo 14 de destino, es decir, el dispositivo 12 de origen o la funcionalidad correspondiente y el dispositivo 14 de destino o la funcionalidad correspondiente. En tal realización, el dispositivo 12 de origen o la funcionalidad correspondiente y el dispositivo 14 de destino o la funcionalidad correspondiente pueden implementarse usando el mismo hardware y/o software o por hardware y/o software separados o cualquier combinación de los mismos.
[0193] Como resultará evidente para un experto en la técnica con base en las descripciones, la existencia y la división (exacta) de las funcionalidades de las diferentes unidades o funcionalidades del dispositivo 12 de origen y/o del dispositivo 14 de destino mostrados en la FIG.1 pueden variar dependiendo del dispositivo y la aplicación reales. El dispositivo 12 de origen y el dispositivo 14 de destino pueden incluir cualquiera de una amplia gama de dispositivos, incluido cualquier tipo de dispositivo de mano o estacionario, por ejemplo, un portátil u ordenador portátil, un teléfono móvil, un teléfono inteligente, una tableta u ordenador tableta, una videocámara, un ordenador de escritorio, un decodificador, un televisor, una cámara, un dispositivo montado en vehículo, un dispositivo de visualización, un reproductor de medios digitales, una consola de videojuegos, un dispositivo de retransmisión de vídeo (tal como un servidor de servicios de contenido o un servidor de entrega de contenido), un dispositivo receptor de difusiones, un dispositivo transmisor de difusiones, y puede usar o no usar cualquier tipo de sistema operativo.
[0195] El codificador 20 y el decodificador 30 pueden implementarse cada uno como cualquiera de diversos circuitos adecuados, por ejemplo, uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados de aplicación específica (ASIC), matrices de puertas programables en campo (FPGA), lógica discreta, hardware o cualquier combinación de los mismos. Si las tecnologías se implementan parcialmente usando software, un dispositivo puede almacenar instrucciones de software en un soporte de almacenamiento no transitorio legible por ordenador adecuado y puede ejecutar la instrucción usando hardware tal como uno o más procesadores, para realizar las tecnologías de esta especificación. Uno cualquiera del contenido anterior (incluyendo hardware, software, una combinación de hardware y software, y similares) puede considerarse como uno o más procesadores.
[0197] En algunos casos, el sistema 10 de codificación y decodificación de vídeo mostrado en la FIG.1 es simplemente un ejemplo y las tecnologías de la presente solicitud pueden aplicarse a configuraciones de codificado de vídeo (por ejemplo, codificación de vídeo o decodificación de vídeo) que no necesariamente incluyen ninguna comunicación de datos entre un dispositivo de codificación y un dispositivo de decodificación. En otro ejemplo, pueden recuperarse datos de una memoria local, retransmitirse a través de una red o similar. Un dispositivo de codificación de vídeo puede codificar datos y almacenar datos codificados en una memoria, y/o un dispositivo de decodificación de vídeo puede recuperar los datos de la memoria y decodificar los datos. En algunos ejemplos, la codificación y la decodificación es realizada por dispositivos que no se comunican entre sí, sino que simplemente codifican datos para la memoria y/o recuperan los datos de la memoria y decodifican los datos.
[0199] La FIG. 2 es un diagrama de bloques esquemático/conceptual de un ejemplo de un codificador 20 configurado para implementar una realización de la presente invención. En el ejemplo de la FIG. 2, el codificador 20 incluye una unidad 204 de cálculo residual, una unidad 206 de procesamiento de transformada, una unidad 208 de cuantificación, una unidad 210 de cuantificación inversa, una unidad 212 de procesamiento de transformada inversa, una unidad 214 de reconstrucción, un memoria intermedia 216, una unidad 220 de filtro de bucle, un memoria intermedia 230 de imágenes decodificadas (DPB), una unidad 260 de procesamiento de predicción y una unidad 270 de codificación de entropía. La unidad 260 de procesamiento de predicción puede incluir una unidad 244 de interpredicción, una unidad 254 de intrapredicción y una unidad 262 de selección de modo. La unidad 244 de interpredicción puede incluir una unidad de estimación de movimiento y una unidad de compensación de movimiento (no mostrada en la figura). El codificador 20 mostrado en la FIG. 2 también puede denominarse codificador de vídeo híbrido o codificador de vídeo basado en un códec de vídeo híbrido.
[0201] Por ejemplo, la unidad 204 de cálculo residual, la unidad 206 de procesamiento de transformada, la unidad 208 de cuantificación, la unidad 260 de procesamiento de predicción y la unidad 270 de codificación de entropía forman una ruta de señal directa del codificador 20, mientras que, por ejemplo, la unidad 210 de cuantificación inversa, la unidad 212 de procesamiento de transformada inversa, la unidad 214 de reconstrucción, el memoria intermedia 216, el filtro de bucle 220, la memoria intermedia 230 de imágenes decodificadas (DPB), y la unidad 260 de procesamiento de predicción forman una ruta de señal inversa del codificador. La ruta de señal inversa del codificador corresponde a una ruta de señal de un decodificador (consulte el decodificador 30 en la FIG.3).
[0202] El codificador 20 recibe, por ejemplo, a través de una entrada 202, una imagen 201 o un bloque 203 de imagen de la imagen 201, por ejemplo, una imagen en una secuencia de imágenes que forman un vídeo o una secuencia de vídeo. El bloque 203 de imagen también puede denominarse bloque de imagen actual o bloque de imagen a codificar, y la imagen 201 puede denominarse imagen actual o imagen a codificar (en particular en codificación de
vídeo, para distinguir la imagen actual de otras imágenes, por ejemplo, imágenes previamente codificadas y/o decodificadas en una misma secuencia de vídeo, es decir, la secuencia de vídeo que también incluye la imagen actual).
[0203] Una realización del codificador 20 puede incluir una unidad de particionamiento (no mostrada en la FIG. 2), configurada para particionar la imagen 201 en una pluralidad de bloques tales como bloques 203 de imagen. La imagen 201 normalmente se particiona en una pluralidad de bloques no superpuestos. La unidad de particionamiento puede configurarse para usar un mismo tamaño de bloque para todas las imágenes en una secuencia de vídeo y una cuadrícula correspondiente que define el tamaño de bloque, o para cambiar un tamaño de bloque entre imágenes o subconjuntos o grupos de imágenes, y particionar cada imagen en bloques correspondientes.
[0204] En un ejemplo, la unidad 260 de procesamiento de predicción del codificador 20 puede configurarse para realizar cualquier combinación de tecnologías de partición descritas anteriormente.
[0205] Al igual que la imagen 201, el bloque 203 de imagen también se considera o puede considerarse como una distribución o matriz bidimensional de muestras con valores de muestra, aunque un tamaño del bloque 203 de imagen es más pequeño que un tamaño de la imagen 201. En otras palabras, el bloque 203 de imagen puede incluir, por ejemplo, una matriz de muestras (por ejemplo, una matriz de luma en caso de una imagen 201 monocromática), tres matrices de muestras (por ejemplo, una matriz de luma y dos matrices de croma en caso de una imagen en color) o cualquier otra cantidad y/o tipo de matrices dependiendo de un formato de color aplicado. Una cantidad de muestras en direcciones (o ejes) horizontal y vertical del bloque 203 de imagen define un tamaño del bloque 203 de imagen.
[0206] El codificador 20 mostrado en la FIG.2 se configura para codificar la imagen 201 bloque por bloque, por ejemplo, realizar codificación y predicción en cada bloque 203 de imagen.
[0207] La unidad 204 de cálculo residual se configura para calcular un bloque 205 residual con base en el bloque 203 de imagen y de un bloque 265 de predicción (más adelante se proporcionan otros detalles sobre el bloque 265 de predicción), por ejemplo, restando los valores de muestra del bloque 265 de predicción de los valores de muestra del bloque 203 de imagen, muestra por muestra (píxel por píxel) para obtener el bloque 205 residual en un dominio de muestras.
[0208] La unidad 206 de procesamiento de transformada se configura para aplicar una transformada, por ejemplo, una transformada de coseno discreta (DCT) o una transformada de seno discreta (DST), a valores de muestra del bloque 205 residual para obtener coeficientes 207 de transformada en un dominio de transformada. El coeficiente 207 de transformada también puede denominarse coeficiente residual de transformada y representa el bloque 205 residual en el dominio de transformada.
[0209] La unidad 206 de procesamiento de transformada puede configurarse para aplicar aproximaciones enteras de DCT/DST, tales como transformadas especificadas en HEVC/H.265. En comparación con una transformada DCT ortogonal, tales aproximaciones de enteros generalmente se escalan mediante un factor. Para preservar una norma del bloque residual que se procesa usando transformaciones directas e inversas, la aplicación de un factor de escala adicional forma parte del proceso de transformada. El factor de escala se elige normalmente con base en algunas limitaciones, por ejemplo, el factor de escala que es una potencia de dos para una operación de desplazamiento, una profundidad de bits del coeficiente de transformada o un compromiso entre la precisión y los costes de implementación. Por ejemplo, se especifica un factor de escala específico para la transformada inversa por, por ejemplo, la unidad 212 de procesamiento de transformada inversa en el lado de decodificador 30 (y una transformada inversa correspondiente por, por ejemplo, la unidad 212 de procesamiento de transformada inversa en el lado de codificador 20), y en consecuencia, se puede especificar un factor de escala correspondiente para la transformada directa por la unidad 206 de procesamiento de transformada en el lado de codificador 20.
[0210] La unidad 208 de cuantificación se configura para cuantificar los coeficientes 207 de transformada para obtener coeficientes 209 de transformada cuantificados, por ejemplo, aplicando cuantificación escalar o cuantificación vectorial. Los coeficientes 209 de transformada cuantificados también pueden denominarse coeficientes 209 residuales cuantificados. Un proceso de cuantificación puede reducir una profundidad de bits relacionada con una parte o todos los coeficientes 207 de transformada. Por ejemplo, un coeficiente de transformada de n bits puede redondearse hacia abajo a un coeficiente de transformada de m bits durante la cuantificación, donde n es mayor que m. Un grado de cuantificación puede modificarse ajustando un parámetro de cuantificación (QP). Por ejemplo, para la cuantificación escalar, se pueden aplicar escalas diferentes para lograr una cuantificación más fina o más gruesa. Un paso de cuantificación más pequeño corresponde a una cuantificación más fina, y un paso de cuantificación más grande corresponde a una cuantificación más gruesa. Un paso de cuantificación apropiado puede ser indicado por un parámetro de cuantificación (QP). Por ejemplo, el parámetro de cuantificación puede ser un índice de un conjunto predefinido de pasos de cuantificación apropiados. Por ejemplo, un parámetro de cuantificación más pequeño puede corresponder a cuantificación más fina (un paso de cuantificación más pequeño) y un parámetro de cuantificación más grande puede corresponder a una cuantificación más gruesa (un
paso de cuantificación más grande) o viceversa. La cuantificación puede incluir la división por un paso de cuantificación y la cuantificación correspondiente o cuantificación inversa, por ejemplo, realizada por la unidad 210 de cuantificación inversa, o puede incluir la multiplicación por un paso de cuantificación. En realizaciones según algunos estándares tales como HEVC, puede usarse un parámetro de cuantificación para determinar el paso de cuantificación. Generalmente, el paso de cuantificación puede calcularse con base en un parámetro de cuantificación usando una aproximación de punto fijo de una ecuación que incluye la división. Pueden introducirse factores de escala adicionales para la cuantificación y la descuantificación para restaurar la norma del bloque residual, donde la norma del bloque residual puede modificarse debido a una escala usada en la aproximación de punto fijo de la ecuación para el paso de cuantificación y el parámetro de cuantificación. En una implementación de ejemplo, se pueden combinar una escala de la transformada inversa y una escala de la descuantificación. Alternativamente, puede usarse una tabla de cuantificación personalizada y señalizarse desde un codificador a un decodificador, por ejemplo, en un flujo de bits. La cuantificación es una operación con pérdidas, donde un paso de cuantificación mayor indica una pérdida mayor.
[0211] La unidad 210 de cuantificación inversa se configura para aplicar la cuantificación inversa de la unidad 208 de cuantificación a un coeficiente cuantificado para obtener un coeficiente 211 descuantificado, por ejemplo, aplicar, sobre la base o usando un mismo paso de cuantificación que la unidad 208 de cuantificación, la inversa del esquema de cuantificación aplicado por la unidad 208 de cuantificación. El coeficiente 211 descuantificado también puede denominarse coeficiente 211 residual descuantificado y corresponde al coeficiente 207 de transformada, aunque el coeficiente 211 descuantificado usualmente es diferente del coeficiente de transformada debido a la pérdida provocada por la cuantificación.
[0212] La unidad 212 de procesamiento de transformada inversa se configura para aplicar una transformada inversa de la transformada aplicada por la unidad 206 de procesamiento de transformada, por ejemplo, una transformada de coseno discreta inversa (DCT) o una transformada de seno discreta inversa (DST), para obtener un bloque 213 de transformada inversa en el dominio de muestras. El bloque 213 de transformada inversa también puede denominarse bloque 213 descuantificado de transformada inversa o bloque 213 residual de transformada inversa. La unidad 214 de reconstrucción (por ejemplo, un sumador 214) se configura para añadir el bloque 213 de transformada inversa (es decir, el bloque 213 residual reconstruido) al bloque 265 de predicción, por ejemplo, añadiendo los valores de muestra del bloque 213 residual reconstruido y los valores de muestra del bloque 265 de predicción, para obtener un bloque 215 reconstruido en el dominio de muestras.
[0213] Opcionalmente, una unidad 216 de memoria intermedia("memoria intermedia" 216 para abreviar), de, por ejemplo, un memoria intermedia 216 de línea, se configura para almacenar en la memoria intermedia o almacenar el bloque 215 reconstruido y un valor de muestra correspondiente, por ejemplo, para intrapredicción. En otras realizaciones, el codificador puede configurarse para usar un bloque reconstruido sin filtrar y/o un valor de muestra correspondiente que se almacenan en la unidad 216 de memoria intermedia para cualquier tipo de estimación y/o predicción, por ejemplo, intrapredicción.
[0214] Por ejemplo, en una realización, el codificador 20 puede configurarse de modo que la unidad 216 de memoria intermedia se configura para almacenar los bloques 215 reconstruidos no solo se usa para la intrapredicción 254, sino que también se usa para la unidad 220 de filtro de bucle (no mostrada en la FIG. 2), y/o de modo que, por ejemplo, la unidad 216 de memoria intermedia y la memoria intermedia 230 de imágenes decodificadas formen una memoria intermedia. En otras realizaciones, un bloque 221 filtrado y/o un bloque o una muestra de la memoria intermedia 230 de imágenes decodificadas (el bloque o la muestra no se muestran en la FIG. 2) se usan como entrada o base para la unidad 254 de intrapredicción.
[0215] La unidad 220 de filtro de bucle (o de forma abreviada "filtro de bucle" 220), se configura para filtrar el bloque 215 reconstruido para obtener el bloque 221 filtrado, para suavizar la transición de píxeles o mejorar la calidad de vídeo. La unidad 220 de filtro de bucle se destina a representar uno o más filtros de bucle, por ejemplo, un filtro de desbloqueo, un filtro de desplazamiento adaptativo de muestras (SAO) u otro filtro tal como un filtro bilateral, un filtro de bucle adaptativo (ALF), un filtro de nitidez y de suavizado o un filtro colaborativo. Aunque la unidad 220 de filtro de bucle se muestra en la FIG.2 como un filtro en bucle, en otra configuración, la unidad 220 de filtro de bucle puede implementarse como filtro posterior al bucle. El bloque 221 filtrado también puede denominarse bloque 221 reconstruido filtrado. La memoria intermedia 230 de imágenes decodificadas puede almacenar un bloque codificado reconstruido después de que la unidad 220 de filtro de bucle realice las operaciones de filtrado en el bloque codificado reconstruido.
[0216] En una realización, el codificador 20 (correspondientemente, la unidad 220 de filtro de bucle) puede configurarse para tener como salida un parámetro de filtro de bucle (por ejemplo, información de desplazamiento adaptativa), por ejemplo, directamente o después de la codificación de entropía realizada por la unidad 270 de codificación de entropía o cualquier otra unidad de codificación de entropía, para que, por ejemplo, el decodificador 30 pueda recibir y aplicar el mismo parámetro de filtro de bucle para decodificar.
[0217] La memoria intermedia 230 de imágenes decodificadas (DPB) puede ser una memoria de imágenes de referencia
que almacena datos de imágenes de referencia para su uso en la codificación de datos de vídeo por el codificador 20. La DPB 230 puede formarse por uno cualquiera de una variedad de dispositivos de memoria, tal como una memoria dinámica de acceso aleatorio (DRAM) (incluida una DRAM síncrona (SDRAM), una RAM magnetorresistiva (MRAM) y una RAM resistiva (RRAM)) u otro tipo de dispositivo de memoria. La DPB 230 y la memoria intermedia 216 pueden proporcionarse por un mismo dispositivo de memoria o dispositivos de memoria separados. En un ejemplo, la memoria intermedia 230 de imágenes decodificadas (DPB) se configura para almacenar el bloque 221 filtrado. La memoria intermedia 230 de imágenes decodificadas puede ser configurada además para almacenar otros bloques previamente filtrados, por ejemplo, bloques 221 previamente reconstruidos y filtrados, de la misma imagen actual o de diferentes imágenes, por ejemplo, imágenes previamente reconstruidas, y puede proporcionar imágenes completas previamente reconstruidas, es decir, decodificadas (y los correspondientes bloques y muestras de referencia) y/o una imagen actual parcialmente reconstruida (y los correspondientes bloques y muestras de referencia), por ejemplo, para interpredicción. En un ejemplo, si el bloque 215 reconstruido se reconstruye sin filtrado en bucle, la memoria intermedia 230 de imágenes decodificadas (DPB) se configura para almacenar el bloque 215 reconstruido.
[0219] La unidad 260 de procesamiento de predicción, también denominada unidad 260 de procesamiento de predicción de bloque, se configura para recibir u obtener el bloque 203 de imagen (un bloque 203 de imagen actual de la imagen 201 actual) y datos de imagen reconstruida, por ejemplo, muestras de referencia de una misma imagen (actual) de la memoria intermedia 216 y/o datos 231 de imágenes de referencia de una o más de imágenes previamente decodificadas de la memoria intermedia 230 de imágenes decodificadas, y para procesar dichos datos para predicción, es decir, para proporcionar el bloque 265 de predicción, que puede ser un bloque 245 de interpredicción o un bloque 255 de intrapredicción.
[0221] La unidad 262 de selección de modo puede configurarse para seleccionar un modo de predicción (por ejemplo, un modo de intrapredicción o interpredicción) y/o un bloque 245 o 255 de predicción correspondiente a usar como el bloque 265 de predicción, para el cálculo del bloque 205 residual y para la reconstrucción del bloque 215 reconstruido.
[0223] En una realización, la unidad 262 de selección de modo pueden configurarse para seleccionar el modo de predicción (por ejemplo, de los modos de predicción soportados por la unidad 260 de procesamiento de predicción), donde el modo de predicción proporciona la mejor correspondencia o en otras palabras un residual mínimo (el residual mínimo significa mejor compresión para transmisión o almacenamiento) o proporciona sobrecarga de señalización mínima (la sobrecarga de señalización mínima significa una mejor compresión para transmisión o almacenamiento), o que considera o equilibra ambos. La unidad 262 de selección de modo puede configurarse para determinar el modo de predicción con base en la optimización de distorsión de tasa (RDO), para ser específicos, seleccionar un modo de predicción que proporciona una optimización de distorsión de tasa mínima o seleccionar un modo de predicción para el que la distorsión de tasa asociada satisface un criterio de selección de modo de predicción.
[0225] A continuación se describe en detalle el procesamiento de predicción realizado (por ejemplo, por la unidad 260 de procesamiento de predicción) y una selección de modo realizada (por ejemplo, por la unidad 262 de selección de modo) en un ejemplo del codificador 20.
[0227] Como se ha descrito anteriormente, el codificador 20 se configura para determinar o seleccionar un modo de predicción mejor u óptimo de un conjunto de modos de predicción (predeterminados). El conjunto de modos de predicción puede incluir, por ejemplo, un modo de intrapredicción y/o un modo de interpredicción.
[0229] Un conjunto de modos de intrapredicción puede incluir 35 modos de intrapredicción diferentes, por ejemplo, modos no direccionales tales como un modo DC (o promedio) y un modo planar, o modos direccionales, tales como se define en H.265, o puede incluir 67 modos de intrapredicción diferentes, por ejemplo, modos no direccionales tales como el modo DC (o promedio) y un modo planar, o modos direccionales, tales como se define en H.266 en desarrollo.
[0231] En una posible implementación, un conjunto de modos de interpredicción depende de las imágenes de referencia disponibles (es decir, por ejemplo, al menos una parte de las imágenes decodificadas almacenadas en el DBP 230, como se ha descrito anteriormente) y otros parámetros de interpredicción, por ejemplo, depende de si se aplica una imagen de referencia completa o solo una parte de la imagen de referencia, por ejemplo, se usa una región de ventana de búsqueda alrededor de una región del bloque de imagen actual, para buscar un bloque de referencia de correspondencia óptima, y/o por ejemplo, depende de si se aplica la interpolación de píxeles, como la interpolación de medio pel y/o cuarto de pel. El conjunto de modos de interpredicción puede incluir, por ejemplo, un modo de vector de movimiento avanzado (AMVP) y un modo de fusión. En una implementación específica, el conjunto de modos de interpredicción puede incluir un modo basado en puntos de control mejorados AMVP y un modo de fusión basado en puntos de control mejorados en las realizaciones de esta solicitud. En un ejemplo, la unidad 254 de intrapredicción puede configurarse para realizar cualquier combinación de tecnologías de interpredicción descritas más adelante.
[0232] Además de los modos de predicción anteriores, también se puede aplicar un modo de salto y/o un modo directo en las realizaciones de esta solicitud.
[0233] La unidad 260 de procesamiento de predicción puede configurarse además para particionar el bloque 203 de imagen en particiones de bloque o subbloques más pequeños, por ejemplo, mediante el uso iterativo de particiones de árbol cuádruple (QT), particiones de árbol binario (BT), particiones de árbol triple (TT) o cualquier combinación de los mismos, y realizar, por ejemplo, predicción en cada una de las particiones de bloque o subbloques. La selección de modo incluye selección de una estructura de árbol del bloque 203 de imagen particionado y la selección de un modo de predicción aplicado a cada una de las particiones de bloque o subbloques.
[0234] La unidad 244 de interpredicción puede incluir una unidad de estimación de movimiento (ME) (no mostrada en la FIG.2) y una unidad de compensación de movimiento (MC) (no mostrada en la FIG.2). La unidad de estimación de movimiento se configura para recibir u obtener el bloque 203 de imagen (el bloque 203 de imagen actual de la imagen 201 actual) y una imagen 231 decodificada, o al menos uno o más bloques previamente reconstruidos, por ejemplo, uno o más bloques reconstruidos de otras/diferentes imágenes 231 previamente decodificadas, para estimación de movimiento. Por ejemplo, una secuencia de vídeo puede incluir la imagen actual y las imágenes 31 previamente decodificadas, o en otras palabras, la imagen actual y as imágenes 31 previamente decodificadas pueden ser parte o formar una secuencia de imágenes que forman la secuencia de vídeo.
[0235] Por ejemplo, el codificador 20 puede configurarse para seleccionar un bloque de referencia de una pluralidad de bloques de referencia de una misma imagen o diferentes imágenes en una pluralidad de otras imágenes y proporcionar, a la unidad de estimación de movimiento (no representada en la FIG.2), una imagen de referencia y/o un desplazamiento (un desplazamiento espacial) entre una ubicación (coordenadas X e Y) del bloque de referencia y una ubicación del bloque de imagen actual como un parámetro de interpredicción. Este desplazamiento también se denomina también vector de movimiento (MV).
[0236] La unidad de compensación de movimiento se configura para obtener un parámetro de interpredicción y realizar la interpredicción con base en o usando el parámetro de interpredicción, para obtener el bloque 245 de interpredicción. La compensación de movimiento realizada por la unidad de compensación de movimiento (no mostrada en la FIG. 2), puede incluir obtener o generar un bloque de predicción con base en un vector de movimiento/bloque determinado mediante estimación de movimiento (posiblemente realizando interpolación con precisión de subpíxel). El filtrado de interpolación puede generar muestras de píxeles adicionales a partir de muestras de píxeles conocidas, aumentando así potencialmente una cantidad de bloques de predicción candidatos que pueden usarse para codificar un bloque de imagen. Al recibir un vector de movimiento para una PU del bloque de imagen actual, la unidad 246 de compensación de movimiento puede ubicar un bloque de predicción al que apunta el vector de movimiento en una de las listas de imágenes de referencia. La unidad 246 de compensación de movimiento puede generar además un elemento de sintaxis asociado con un bloque y un segmento de vídeo, de manera que el decodificador 30 use el elemento de sintaxis para decodificar el bloque de imagen en el segmento de vídeo.
[0237] Específicamente, la unidad 244 de interpredicción puede transmitir el elemento de sintaxis a la unidad 270 de codificación de entropía. El elemento de sintaxis incluye el parámetro de interpredicción (como la información indicativa de la selección de un modo de interpredicción usado para la predicción del bloque de imagen actual tras recorrer una pluralidad de modos de interpredicción). En un posible escenario de aplicación, si solo hay un modo de interpredicción, el parámetro de interpredicción puede alternativamente no transportarse en el elemento de sintaxis. En este caso, el lado 30 decodificador puede realizar directamente decodificación en un modo de predicción por defecto. Se puede entender que la unidad 244 de interpredicción puede configurarse para realizar cualquier combinación de tecnologías de interpredicción.
[0238] La unidad 254 de intrapredicción se configura para obtener, por ejemplo recibir, un bloque 203 de imagen (un bloque de imagen actual) y uno o más bloques previamente reconstruidos, por ejemplo, bloques vecinos reconstruidos, de una misma imagen para intraestimación. El codificador 20, por ejemplo, puede configurarse para seleccionar un modo de intrapredicción de una pluralidad de modos de intrapredicción (predeterminados).
[0239] En una realización, el codificador 20 configurado para seleccionar el modo de intrapredicción según un criterio de optimización, por ejemplo, con base en un residual mínimo (por ejemplo, un modo de intrapredicción que proporciona el bloque 255 de predicción que es más similar al bloque 203 de imagen actual) o distorsión de tasa mínima.
[0240] La unidad 254 de intrapredicción se configura además para determinar el bloque 255 de intrapredicción con base en, por ejemplo, un parámetro de intrapredicción en el modo de intrapredicción seleccionado. En cualquier caso, después de seleccionar el modo de intrapredicción para un bloque, la unidad 254 de intrapredicción se configura además para proporcionar el parámetro de intrapredicción, es decir, la información que indica el modo de intrapredicción seleccionado para el bloque, por la unidad 270 de codificación de entropía. En un ejemplo, la unidad 254 de intrapredicción puede configurarse para realizar cualquier combinación de las tecnologías de intrapredicción descritas más adelante.
[0241] Específicamente, la unidad 254 de intrapredicción puede transmitir el elemento de sintaxis a la unidad 270 de codificación de entropía. El elemento de sintaxis incluye el parámetro de intrapredicción (como la información indicativa de la selección de un modo de intrapredicción usado para la predicción del bloque de imagen actual tras recorrer una pluralidad de modos de intrapredicción). En un posible escenario de aplicación, si solo hay un modo de intrapredicción, el parámetro de intrapredicción puede alternativamente no transportarse en el elemento de sintaxis. En este caso, el lado 30 decodificador puede realizar directamente decodificación en un modo de predicción por defecto.
[0243] La unidad 270 de codificación de entropía se configura para aplicar (o no aplicar) un algoritmo o esquema de codificación de entropía (por ejemplo, un esquema de codificación de longitud variable (VLC), un esquema VLC adaptable al contexto (CAVLC), un esquema de codificación aritmética, una codificación aritmética binaria adaptable al contexto (CABAC), una codificación aritmética binaria adaptable al contexto con base en sintaxis (SBAC), una codificación de entropía de partición de intervalo de probabilidad (PIPE), u otra técnica o metodología de codificación de entropía) en uno o todos del coeficiente 209 cuantificado, el parámetro de interpredicción, el parámetro de intrapredicción, y/o el parámetro de filtro de bucle, para obtener los datos 21 de imagen codificada que pueden salir por la salida 272, por ejemplo, en forma de un flujo de bits 21 codificados. El flujo de bits codificados puede transmitirse al decodificador 30 de vídeo, o archivarse para su posterior transmisión o recuperación por el decodificador 30 de vídeo. La unidad 270 de codificación de entropía puede configurarse además para codificar por entropía otro elemento de sintaxis para un segmento de vídeo actual que se está codificando.
[0245] Se puede usar otra variante estructural del codificador 20 de vídeo para codificar un flujo de bits de vídeo. Por ejemplo, un codificador 20 no basado en transformada puede cuantificar directamente una señal residual sin la unidad 206 de procesamiento de transformada para algunos bloques o fotogramas. En otra implementación, el codificador 20 puede tener la unidad 208 de cuantificación y la unidad 210 de cuantificación inversa combinados en una sola unidad.
[0247] Específicamente, en esta realización de la presente invención, el codificador 20 puede configurarse para implementar un proceso de codificación de video descrito en las realizaciones siguientes.
[0249] Debe entenderse que el codificador de vídeo en esta solicitud puede incluir solo algunos módulos del codificador 20 de vídeo. Por ejemplo, el codificador de vídeo en esta solicitud puede incluir una unidad de codificación de imagen y una unidad de partición. La unidad de decodificación de imagen puede incluir una o más de una unidad de decodificación de entropía, una unidad de predicción, una unidad de transformada inversa y una unidad de cuantificación inversa.
[0251] Además, se pueden usar otras variaciones estructurales del codificador 20 de video para codificar un flujo de video. Por ejemplo, para algunos bloques de imagen o fotogramas de imagen, el codificador 20 de vídeo puede cuantificar directamente una señal residual, no se requiere procesamiento por la unidad 206 de procesamiento de transformada y, en consecuencia, tampoco se requiere procesamiento por la unidad 212 de procesamiento de transformada inversa. Alternativamente, para algunos bloques de imagen o fotogramas de imagen, el codificador 20 de vídeo no genera datos residuales y, en consecuencia, no se requiere el procesamiento por la unidad 206 de procesamiento de transformada, la unidad 208 de cuantificación, la unidad 210 de cuantificación inversa y la unidad 212 de procesamiento de transformada inversa. Alternativamente, el codificador 20 de vídeo puede almacenar directamente un bloque de imagen reconstruido como un bloque de referencia, y no se requiere el procesamiento por el filtro 220. Alternativamente, la unidad 208 de cuantificación y la unidad 210 de cuantificación inversa en el codificador 20 de vídeo pueden combinarse. El filtro 220 de bucle es opcional. En caso de codificación de compresión sin pérdidas, la unidad 206 de procesamiento de transformada, la unidad 208 de cuantificación, la unidad 210 de cuantificación inversa y la unidad 212 de procesamiento de transformada inversa son opcionales. Debe entenderse que, en diferentes escenarios de aplicación, la unidad 244 de interpredicción y la unidad 254 de intrapredicción pueden usarse selectivamente.
[0253] La FIG.3 es un diagrama de bloques esquemático/conceptual de un ejemplo de un decodificador 30 configurado para implementar una realización de la presente invención. El decodificador 30 de vídeo se configura para recibir datos 21 de imagen codificados (por ejemplo, un flujo de bits codificado) codificados mediante, por ejemplo, el codificador 20, para obtener una imagen 231 decodificada. En un proceso de decodificación, el decodificador 30 de vídeo recibe datos de vídeo del codificador 20 de vídeo, por ejemplo, un flujo de bits de vídeo codificado que representa un bloque de imagen de un segmento de vídeo codificado, y un elemento de sintaxis asociado.
[0255] En el ejemplo de la FIG.3, el decodificador 30 incluye una unidad 304 de decodificación de entropía, una unidad 310 de cuantificación inversa, una unidad 312 de procesamiento de transformada inversa, una unidad 314 de reconstrucción (por ejemplo, un sumador 314), una memoria intermedia 316, un filtro 320 de bucle, una memoria intermedia 330 de imágenes decodificadas y una unidad 360 de procesamiento de predicción. La unidad 360 de procesamiento de predicción puede incluir una unidad 344 de interpredicción, una unidad 354 de intrapredicción y una unidad 362 de selección de modo. En algunos ejemplos, el decodificador 30 de vídeo puede realizar una
pasada de decodificación generalmente recíproca a la pasada de codificación descrita con referencia al codificador 20 de vídeo en la FIG.2.
[0256] La unidad 304 de decodificación de entropía se configura para realizar la decodificación de entropía de los datos 21 de imagen codificada para obtener, por ejemplo, un coeficiente 309 cuantificado y/o un parámetro de codificación decodificado (no mostrado en la FIG. 3), por ejemplo, uno cualquiera o todos los parámetros de interpredicción, un parámetro de intrapredicción, un parámetro de filtro de bucle, y/u otro elementos de sintaxis (que son decodificados). La unidad 304 de decodificación de entropía se configura además para reenviar el parámetro de interpredicción, el parámetro de intrapredicción y/o el otro elemento de sintaxis a la unidad 360 de procesamiento de predicción. El decodificador 30 de vídeo puede recibir elementos de sintaxis en un nivel de segmento de vídeo y/o un nivel de bloque de vídeo.
[0257] La unidad 310 de cuantificación inversa puede tener una misma función que la unidad 110 de cuantificación inversa. La unidad 312 de procesamiento de transformada inversa puede tener una misma función que la unidad 212 de procesamiento de transformada inversa. La unidad 314 de reconstrucción puede tener una misma función que la unidad 214 de reconstrucción. El búfer 316 puede tener una misma función que el memoria intermedia 216. El filtro 320 de bucle puede tener una misma función que el filtro 220 de bucle. La memoria intermedia 330 de imágenes decodificadas puede tener una misma función que la memoria intermedia 230 de imágenes decodificadas.
[0258] La unidad 360 de procesamiento de predicción puede incluir la unidad 344 de interpredicción y la unidad 354 de intrapredicción. La unidad 344 de interpredicción puede ser similar a la unidad 244 de interpredicción en función, y la unidad 354 de intrapredicción puede ser similar a la unidad de 254 de intrapredicción en función. La unidad 360 de procesamiento de predicción normalmente se configura para realizar predicción de bloque y/u obtener un bloque 365 de predicción a partir de los datos 21 codificados y recibir u obtener (explícita o implícitamente) un parámetro relacionado con predicción y/o información sobre un modo de predicción seleccionado, por ejemplo, de la unidad 304 de decodificación de entropía.
[0259] Cuando el segmento de vídeo se codifica como un segmento intracodificado (I), la unidad 354 de intrapredicción de la unidad 360 de procesamiento de predicción se configura para generar el bloque 365 de predicción para un bloque de imagen del segmento de vídeo actual con base en un modo de intrapredicción señalado y los datos de un bloque previamente decodificado de un fotograma o imagen actual. Cuando un fotograma de vídeo se codifica como segmento intercodificado (es decir, B o P), la unidad 344 de interpredicción (por ejemplo, una unidad de compensación de movimiento) en la unidad 360 de procesamiento de predicción se configura para generar el bloque 365 de predicción de un bloque de vídeo en el segmento de vídeo actual con base en un vector de movimiento y el otro elemento de sintaxis que se recibe de la unidad 304 de decodificación de entropía. Para la interpredicción, el bloque de predicción puede generarse a partir de una de las imágenes de referencia en una lista de imágenes de referencia. El decodificador 30 de vídeo puede construir listas de fotogramas de referencia, una lista 0 y una lista 1, usando una tecnología de construcción predeterminada con base en las imágenes de referencia almacenadas en la DPB 330.
[0260] La unidad 360 de procesamiento de predicción se configura para determinar información de predicción para el bloque de vídeo del segmento de vídeo actual analizando el vector de movimiento y otro elemento de sintaxis, y usar la información de predicción para generar un bloque de predicción para el bloque de vídeo actual que se está decodificando. En un ejemplo de la presente invención, la unidad 360 de procesamiento de predicción determina, usando algunos elementos de sintaxis recibidos, un modo de predicción (por ejemplo, intra o interpredicción) para la codificación del bloque de vídeo en el segmento de vídeo, un tipo de segmento de interpredicción (por ejemplo, un segmento B, un segmento P, o un segmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento, un vector de movimiento de cada bloque de vídeo intercodificado para el segmento, un estado de interpredicción de cada bloque de vídeo intercodificado en el segmento, y otra información para decodificar el bloque de vídeo en el segmento de vídeo actual. En otro ejemplo de esta descripción, los elementos de sintaxis recibidos por el decodificador 30 de vídeo desde un flujo de bits incluyen elementos de sintaxis en uno o más de un conjunto de parámetros adaptativos (APS), un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS) o una cabecera de segmento.
[0261] La unidad 310 de cuantificación inversa se configura para realizar cuantificación inversa (es decir, descuantificación) en un coeficiente de transformada cuantificado que se proporciona en el flujo de bits y es decodifico por la unidad 304 de decodificación de entropía. Un proceso de cuantificación inversa puede incluir: usar un parámetro de cuantificación calculado por el codificador 20 de vídeo para cada bloque de vídeo en el segmento de vídeo, para determinar un grado de cuantificación que debe aplicarse y, asimismo, un grado de cuantificación inversa que debe aplicarse.
[0262] La unidad 312 de procesamiento de transformada inversa se configura para aplicar una transformada inversa (por ejemplo, una DCT inversa, una transformada entera inversa o un proceso de transformada inversa conceptualmente similar) a un coeficiente de transformada, para generar un bloque residual en el dominio de píxeles.
[0263] La unidad 314 de reconstrucción (por ejemplo, el sumador 314) se configura para añadir un bloque 313 de transformada inversa (es decir, un bloque 313 residual reconstruido) al bloque 365 de predicción, por ejemplo, añadiendo valores de muestra del bloque 313 residual reconstruido y valores de muestra del bloque 365 de predicción, para obtener un bloque 315 reconstruido en un dominio de muestras.
[0264] La unidad 320 de filtro de bucle (en un bucle de codificación o después de un bucle de codificación) se configura para filtrar el bloque 315 reconstruido para obtener un bloque 321 filtrado, para suavizar las transiciones de píxel o mejorar la calidad de vídeo. En un ejemplo, la unidad 320 de filtro de bucle puede configurarse para realizar cualquier combinación de las tecnologías de filtrado descritas más adelante. La unidad 320 de filtro de bucle se destina a representar uno o más filtros de bucle, tal como un filtro de desbloqueo, un filtro de desplazamiento adaptativo de muestra (SAO) u otros filtros, por ejemplo, un filtro bilateral o un filtro de bucle adaptativo (ALF) o un filtro de nitidez o filtros de suavizado o filtros colaborativos. Aunque la unidad 320 de filtro de bucle se muestra en la FIG.3 como un filtro de bucle, en otra configuración, la unidad 320 de filtro de bucle puede implementarse como un filtro posterior al bucle.
[0265] Un bloque 321 de vídeo decodificado en un fotograma o imagen dados se almacena luego en la memoria intermedia 330 de imágenes decodificadas, que almacena una imagen de referencia usada para la compensación de movimiento posterior.
[0266] El decodificador 30 se configura para, por ejemplo, tener como salida la imagen 31 decodificada, por ejemplo, a través de la salida 332, para su presentación o visualización a un usuario.
[0267] Se puede usar otra variante del decodificador 30 de vídeo para decodificar el flujo de bits comprimido. Por ejemplo, el decodificador 30 puede generar un flujo de bits de vídeo de salida sin la unidad 320 de filtro de bucle. Por ejemplo, un codificador 30 no basado en transformada puede cuantificar directamente de forma inversa una señal residual sin la unidad 312 de procesamiento de transformada inversa para algunos bloques o fotogramas. En otra implementación, el decodificador 30 de video puede tener la unidad 310 de cuantificación inversa y la unidad 312 de procesamiento mediante transformada inversa combinadas en una sola unidad.
[0268] Específicamente, en esta realización de esta solicitud, el decodificador 30 se configura para implementar un método descrito en las realizaciones siguientes.
[0269] Debe entenderse que el codificador de vídeo en esta solicitud puede incluir solo algunos módulos del codificador 30 de vídeo. Por ejemplo, el codificador de vídeo en esta solicitud puede incluir una unidad de codificación de imagen y una unidad de partición. La unidad de codificación de imagen puede incluir una o más de una unidad de predicción, una unidad de transformada, una unidad de cuantificación, y una unidad de codificación de entropía. Además, otra variante estructural del decodificador 30 de vídeo puede usarse para decodificar un flujo de bits de vídeo codificado. Por ejemplo, el decodificador 30 de vídeo puede generar un flujo de bits de vídeo de salida sin procesamiento por el filtro 320. Alternativamente, para algunos bloques de imagen o fotogramas de imagen, la unidad 304 de decodificación de entropía del decodificador 30 de vídeo no obtiene coeficientes cuantificados a través de la decodificación y, en consecuencia, no es necesario que la unidad 310 de cuantificación inversa y la unidad 312 de procesamiento de transformada inversa realicen procesamiento. El filtro 320 de bucle es opcional. Además, en caso de compresión sin pérdidas, la unidad 310 de cuantificación inversa y la unidad 312 de procesamiento de transformada inversa son opcionales. Debe entenderse que, en diferentes escenarios de aplicación, la unidad de interpredicción y la unidad de intrapredicción pueden usarse selectivamente.
[0270] Debe entenderse que en el codificador 20 y el decodificador 30 de esta solicitud, un resultado de procesamiento para un procedimiento puede ser enviado a un siguiente procedimiento después de ser procesado adicionalmente. Por ejemplo, después de un procedimiento tal como el filtrado de interpolación, derivación de vector de movimiento, o filtrado de bucle, una operación tal como recorte o desplazamiento se realiza adicionalmente en un resultado de procesamiento del procedimiento correspondiente.
[0271] Por ejemplo, puede procesarse además un vector de movimiento que es de un punto de control de un bloque de imagen actual y que se deriva con base en un vector de movimiento de un bloque de codificación afín vecino (un bloque de codificación que se predice usando un modelo de movimiento afín puede denominarse un bloque de codificación afín) o un vector de movimiento que es de un subbloque del bloque de imagen actual y que se deriva con base en el vector de movimiento del bloque de codificación afín vecino. Esto no se limita en esta solicitud. Por ejemplo, un valor del vector de movimiento está restringido para estar dentro de un intervalo de profundidad de bits específico. Se supone que una anchura de bits permitida del vector de movimiento es bitDepth, un valor del vector de movimiento varía de -2^(bitDepth - 1) a 2^(bitDepth - 1) - 1, donde el símbolo "^" representa la exponenciación. Si bitdepth es 16, el valor oscila entre -32768 y 32767. Si bitdepth es 18, el valor varía entre -131072 a 131071.
[0272] Como otro ejemplo, el valor del vector de movimiento (por ejemplo, los vectores de movimiento MV de cuatro
subbloques 4x4 en un bloque de imagen 8x8) pueden ser restringidos además, de modo que una diferencia máxima entre las partes enteras de los MV de los cuatro subbloques 4x4 no excede N píxeles (por ejemplo, N puede configurarse a 1).
[0273] La FIG. 4 es un diagrama ilustrativo de un ejemplo de un sistema 40 de codificación de vídeo que incluye el codificador 20 en la FIG.2 y/o el decodificador 30 en la FIG.3 según una realización de ejemplo. El sistema 40 de codificación de vídeo puede implementar una combinación de diversas tecnologías en las realizaciones de la presente invención. En la implementación ilustrada, el sistema 40 de codificación de vídeo puede incluir un dispositivo 41 de imagen, el codificador 20, el decodificador 30 (y/o un codificador/decodificador de vídeo implementado mediante un circuito 47 lógico de una unidad 46 de procesamiento), una antena 42, uno o más procesadores 43, una o más memorias 44 y/o un dispositivo 45 de visualización.
[0274] Como se muestra en la FIG.4, el dispositivo 41 de imagen, la antena 42, la unidad 46 de procesamiento, el circuito 47 lógico, el codificador 20, el decodificador 30, el procesador 43, la memoria 44 y/o el dispositivo 45 de visualización pueden comunicarse entre sí. Como se ha descrito, aunque se ilustra el sistema 40 de codificación de vídeo con el codificador 20 y el decodificador 30, el sistema 40 de codificación de vídeo puede incluir solo el codificador 20 o solo el decodificador 30 en ejemplos diferentes.
[0275] En algunos ejemplos, la antena 42 puede configurarse para transmitir o recibir un flujo de bits codificado de datos de vídeo. Además, en algunos ejemplos, el dispositivo 45 de visualización puede ser configurado para presentar los datos de vídeo. En algunos ejemplos, el circuito 47 lógico puede ser implementado por la unidad 46 de procesamiento. La unidad 46 de procesamiento puede incluir lógica de circuito integrado de aplicación específica (circuito integrado de aplicación específica, ASIC), un procesador de gráficos, un procesador de propósito general, o similares. El sistema 40 de codificación de vídeo puede incluir también un procesador 43 opcional. El procesador 43 opcional puede incluir de manera similar lógica de circuito integrado de aplicación específica (ASIC), un procesador de gráficos, un procesador de propósito general, o similares. En algunos ejemplos, el circuito 47 lógico puede ser implementado mediante hardware, por ejemplo, hardware dedicado para codificación de vídeo. El procesador 43 puede ser implementado mediante software de propósito general, un sistema operativo o similar. Además, la memoria 44 puede ser cualquier tipo de memoria, por ejemplo, una memoria volátil (por ejemplo, una memoria estática de acceso aleatorio (SRAM), una memoria dinámica de acceso aleatorio (DRAM)) o una memoria no volátil (por ejemplo, una memoria flash). En un ejemplo no limitativo, la memoria 44 puede implementarse mediante memoria caché. En algunos ejemplos, el circuito 47 lógico puede acceder a la memoria 44 (por ejemplo, para implementar una memoria intermedia de imágenes). En otros ejemplos, el circuito 47 lógico y/o la unidad 46 de procesamiento pueden incluir una memoria (por ejemplo, una caché) para implementar una memoria Intermedia de imágenes o similar.
[0276] En algunos ejemplos, el codificador 20 implementado por el circuito lógico puede incluir una memoria intermedia de imágenes (que es implementada mediante, por ejemplo, la unidad 46 de procesamiento o la memoria 44) y una unidad de procesamiento de gráficos (por ejemplo, implementado mediante la unidad 46 de procesamiento). La unidad de procesamiento de gráficos puede acoplarse comunicativamente a la memoria intermedia de imágenes. La unidad de procesamiento de gráficos puede incluir un codificador 20 implementado a través del circuito 47 lógico para implementar diversos módulos que se describen con referencia a la FIG. 2 y/o cualquier otro sistema o subsistema de codificador descrito en esta memoria descriptiva. El circuito lógico puede configurarse para realizar diversas operaciones descritas en esta memoria descriptiva.
[0277] En algunos ejemplos, el decodificador 30 puede ser implementado mediante el circuito 47 lógico de manera similar, para implementar diversos módulos que se describen con referencia al decodificador 30 en la FIG.3 y/o cualquier otro sistema o subsistema decodificador descrito en esta especificación. En algunos ejemplos, el decodificador 30 implementado mediante el circuito lógico puede incluir una memoria intermedia de imágenes (que es implementada mediante la unidad 2820 de procesamiento o la memoria 44) y una unidad de procesamiento de gráficos (que es implementada mediante, por ejemplo, la unidad 46 de procesamiento). La unidad de procesamiento de gráficos puede acoplarse comunicativamente a la memoria intermedia de imágenes. La unidad de procesamiento de gráficos puede incluir el decodificador 30 implementado a través del circuito 47 lógico para implementar diversos módulos que se describen con referencia a la FIG.3 y/o cualquier otro sistema o subsistema decodificador descrito en esta especificación.
[0278] En algunos ejemplos, la antena 42 puede configurarse para recibir un flujo de bits codificado de datos de vídeo. Como se describe, el flujo de bits codificado puede incluir datos, un indicador, un valor de índice, datos de selección de modo, o similares que se relacionan con codificación de fotograma de vídeo y que se describe en esta especificación, por ejemplo, datos relacionados con la partición de codificación (por ejemplo, un coeficiente de transformada o un coeficiente de transformada cuantificado, un indicador opcional (como se describe), y/o datos que definen la partición de codificación). El sistema 40 de codificación de vídeo puede incluir además el decodificador 30 que se acopla a la antena 42 y que se configura para decodificar el flujo de bits codificado. El dispositivo 45 de visualización se configura para presentar un fotograma de vídeo.
[0279] Debe entenderse que, en esta realización de esta solicitud, en el ejemplo descrito con referencia al codificador 20,
el decodificador 30 puede configurarse para realizar un proceso inverso. Con respecto a la señalización de un elemento de sintaxis, el decodificador 30 puede configurarse para recibir y analizar dicho elemento de sintaxis y en consecuencia decodificar datos de vídeo relacionados. En algunos ejemplos, el codificador 20 puede codificar por entropía el elemento de sintaxis en un flujo de bits de vídeo codificado. En tales ejemplos, el decodificador 30 puede analizar el elemento de sintaxis y decodificar en consecuencia los datos de vídeo relacionados.
[0281] La FIG. 5 es un diagrama esquemático de una estructura de un dispositivo 400 de codificación de vídeo (por ejemplo, un dispositivo 400 de codificación de vídeo o un dispositivo 400 de decodificación de vídeo) según una realización de la presente invención. El dispositivo 400 de codificación de vídeo es adecuado para implementar las realizaciones descritas como en esta especificación. En una realización, el dispositivo 400 de codificación de vídeo puede ser un decodificador de vídeo (por ejemplo, el decodificador 30 en la FIG.3) o un codificador de vídeo (por ejemplo, el codificador 20 en la FIG.2). En otra realización, el dispositivo 400 de codificación de vídeo puede ser uno o más componentes del decodificador 30 de la FIG.3 o del codificador 20 de la FIG.2.
[0283] El dispositivo 400 de codificación de vídeo incluye: puertos 410 de entrada y unidades 420 de recepción (Rx) que se configuran para recibir datos; un procesador, unidad lógica, o unidad 430 de procesamiento central (CPU) que se configura para procesar datos; una unidad 440 de transmisión (Tx) y puertos 450 de salida que se configuran para transmitir datos; y una memoria 460 que se configura para almacenar datos. El dispositivo 400 de codificación de vídeo puede incluir además un componente de óptico a eléctrico y un componente de eléctrico a óptico (EO) que se acoplan al puerto 410 de entrada, a la unidad 420 de recepción, a la unidad 440 de transmisión y al puerto 450 de salida para la salida o entrada de una señal óptica o eléctrica.
[0285] El procesador 430 se implementa por hardware y software. El procesador 430 puede implementarse como uno o más chips CPU, núcleos (por ejemplo, como un procesador multinúcleo), FPGA, ASIC y DSP. El procesador 430 se comunica con el puerto 410 de entrada, la unidad 420 de recepción, la unidad 440 de transmisión, los puertos 450 de salida y la memoria 460. El procesador 430 incluye un módulo 470 de codificación (por ejemplo, un módul o 470 de codificación o un módulo 470 de decodificación). El módulo 470 de codificación/decodificación impleme nta las realizaciones descritas en esta especificación, para implementar el método de predicción de imagen propo rcionado en las realizaciones de la presente invención. Por ejemplo, el módulo 470 de codificación/decodificación implementa, procesa o proporciona diversas operaciones de codificación. Por lo tanto, el módulo 470 de codifica ción/decodificación sustancialmente mejora las funciones del dispositivo 400 de codificación de vídeo y afecta a l a transformada del dispositivo 400 de codificación de vídeo a un estado diferente. Alternativamente, el módulo 47 0 de codificación/decodificación se implementa como una instrucción almacenada en la memoria 460 y ejecutada por el procesador 430.
[0287] La memoria 460 incluye uno o más discos, unidades de cinta y unidades de estado sólido y puede usarse como dispositivo de almacenamiento de datos de desbordamiento, para almacenar programas cuando dichos programas se seleccionan para su ejecución, y para almacenar instrucciones y datos que se leen durante la ejecución del programa. La memoria 460 puede ser volátil o no volátil y puede ser una memoria de solo lectura (ROM), una memoria de acceso aleatorio (RAM), una memoria de acceso aleatorio (memoria ternaria de contenido direccionable, TCAM), y/o una memoria estática de acceso aleatorio (SRAM).
[0289] La FIG. 6 es un diagrama de bloques simplificado de un aparato 500 que se puede usar como uno o dos del dispositivo 12 de origen y dispositivo 14 de destino en la FIG.1 según una realización de ejemplo. El aparato 500 puede implementar el método de predicción de imagen en las realizaciones de esta solicitud. En otras palabras, la FIG. 6 es un diagrama de bloques esquemático de una implementación de un dispositivo de codificación o un dispositivo de decodificación (denominado dispositivo 500 de codificación para abreviar) según una realización de esta solicitud. El dispositivo 500 de codificación puede incluir un procesador 510, una memoria 530 y un sistema 550 de bus. El procesador y la memoria se conectan a través del sistema de bus. La memoria está configurada para almacenar una instrucción. El procesador se configura para ejecutar la instrucción almacenada en la memoria. La memoria del dispositivo de codificación almacena código de programa. El procesador puede invocar el código de programa almacenado en la memoria, para realizar diversos métodos de codificación o decodificación de vídeo descritos en esta solicitud, y en particular, diversos nuevos métodos de partición de bloque de imagen. Para evitar repeticiones, los detalles no se describen de nuevo en este documento.
[0291] En esta realización de esta solicitud, el procesador 510 puede ser una unidad central de procesamiento (CPU). Alternativamente, el procesador 510 puede ser un procesador de propósito general, un procesador de señales digitales (DSP), un circuito integrado de aplicación específica (ASIC), una matriz de puertas programable en campo (FPGA) u otro dispositivo lógico programable, una puerta discreta o dispositivo lógico de transistor, un componente de hardware discreto, o similar. El procesador de propósito general puede ser un microprocesador, o el procesador puede ser cualquier procesador convencional o similar.
[0293] La memoria 530 puede incluir un dispositivo de memoria de solo lectura (ROM) o un dispositivo de memoria de acceso aleatorio (RAM). Cualquier otro tipo adecuado de dispositivo de almacenamiento se puede usar alternativamente como la memoria 530. La memoria 530 puede incluir código y datos 531 a los que accede el procesador 510 a través del bus 550. La memoria 530 puede incluir además un sistema 533 operativo y un
programa 535 de aplicación. El programa 535 de aplicación incluye al menos un programa que permite al procesador 510 realizar el método de codificación o decodificación de vídeo descrito en esta solicitud. Por ejemplo, el programa 535 de aplicación puede incluir las aplicaciones 1 a N, e incluye además una aplicación de codificación o decodificación de vídeo (denominada como aplicación de codificación de vídeo para abreviar) que realiza el método de codificación o decodificación descrito en esta solicitud.
[0294] Además de un bus de datos, el sistema 550 de bus puede incluir, además, un bus de alimentación, un bus de control, un bus de señales de estado y similares. Sin embargo, para una mayor claridad de descripción, en la figura se marcan los diversos tipos de buses como el sistema 550 de bus.
[0295] Opcionalmente, el dispositivo 500 de codificación puede incluir además uno o más dispositivos de salida, por ejemplo, un elemento de visualización 570. En un ejemplo, el elemento de visualización 570 puede ser un elemento de visualización sensible al tacto que combina un elemento de visualización y una unidad sensible al tacto que puede funcionar para detectar una entrada táctil. El elemento de visualización 570 puede conectarse al procesador 510 a través del bus 550.
[0296] Para comprender mejor el método de predicción de imagen en las realizaciones de esta solicitud, a continuación se describen primero en detalle algunos conceptos relacionados y el contenido básico de la interpredicción. La interpredicción significa buscar en una imagen reconstruida un bloque de referencia correspondiente para un bloque de imagen actual en una imagen actual, y usar un valor de píxel de un elemento de píxel en el bloque de referencia como un predictor de un valor de píxel de un elemento de píxel en el bloque de imagen actual (este proceso se denomina estimación de movimiento (ME)).
[0297] La estimación de movimiento consiste en probar una pluralidad de bloques de referencia en una imagen de referencia para un bloque de imagen actual y, luego, determinar finalmente uno o dos bloques de referencia (se requieren dos bloques de referencia para la bipredicción) a partir de la pluralidad de bloques de referencia mediante el uso de optimización de tasa-distorsión (RDO) u otro método. El bloque de referencia se usa para realizar interpredicción en el bloque de imagen actual.
[0298] La información de movimiento del bloque de imagen actual incluye información de indicación de una dirección de predicción (que normalmente es predicción hacia adelante, predicción hacia atrás o bipredicción), uno o dos vectores de movimiento (MV) que apuntan al bloque de referencia, información de indicación de la imagen en la que se ubica el bloque de referencia (que normalmente se representa mediante el uso de un índice de referencia). La predicción hacia adelante significa seleccionar una imagen de referencia de un conjunto de imágenes de referencia hacia adelante, para obtener un bloque de referencia para un bloque de imagen actual. La predicción hacia atrás significa seleccionar una imagen de referencia de un conjunto de imágenes de referencia hacia atrás, para obtener un bloque de referencia para un bloque de imagen actual. La bipredicción significa seleccionar una imagen de referencia de un conjunto de imágenes de referencia hacia adelante y una imagen de referencia de un conjunto de imágenes de referencia hacia atrás, para obtener un bloque de referencia. Cuando se usa un método de bipredicción, hay dos bloques de referencia en un bloque de codificación actual. Cada bloque de referencia debe indicarse mediante un vector de movimiento y un índice de referencia. Luego, se determina un predictor de un valor de píxel de un elemento de píxel en el bloque de imagen actual con base en los valores de píxel de los elementos de píxel en los dos bloques de referencia.
[0299] En HEVC, hay dos modos de interpredicción: un modo AMVP y un modo de fusión.
[0300] En el modo AMVP, primero se recorren los bloques codificados espacial o temporalmente vecinos (denotados como bloques vecinos) de un bloque de codificación actual. Se construye una lista de vectores de movimiento candidatos con base en la información de movimiento de los bloques vecinos. Luego, se determina un vector de movimiento óptimo a partir de la lista de información de movimiento candidato con base en un coste de tasadistorsión, y la información de movimiento candidato con un coste de tasa-distorsión mínimo se usa como un predictor de vector de movimiento (MVP) del bloque de codificación actual.
[0301] Las ubicaciones y el orden de recorrido de los bloques vecinos están predefinidos. El coste de tasa-distorsión se calcula según una fórmula (1), donde J representa el coste de tasa-distorsión, SAD representa una suma de diferencias absolutas (SAD) entre un valor de píxel original y un valor de píxel predicho que se obtiene a través de la estimación de movimiento realizada mediante el uso del predictor de vector de movimiento de candidato, R es una tasa de bits y λ es un multiplicador de Lagrange. Un lado codificador transfiere, a un lado decodificador, un valor de índice y un valor de índice de referencia del predictor de vector de movimiento seleccionado en la lista de vectores de movimiento de candidatos. Además, el lado codificador puede realizar una búsqueda de movimiento en un vecindario centrado en el MVP para obtener un vector de movimiento real del bloque de codificación actual y luego transferir una diferencia (diferencia de vector de movimiento) entre el MVP y el vector de movimiento real al lado decodificador.
[0302]
[0304] Además, en términos de diferentes modelos de movimiento, el modo AMVP puede clasificarse en un modo AMVP con base en un modelo traslacional y un modo AMVP con base en un modelo no traslacional.
[0305] En el modo de fusión, primero se construye una lista de información de movimiento candidata con base en la información de movimiento de una unidad codificada espacial o temporalmente de una unidad de codificación actual. Luego, la información de movimiento óptima se determina a partir de la lista de información de movimiento candidata como información de movimiento de la unidad de codificación actual con base en un coste de tasadistorsión. Finalmente, un valor de índice (denotado de aquí en adelante como índice de fusión) de una ubicación de la información de movimiento óptima en la lista de información de movimiento candidata se transfiere al lado decodificador.
[0306] En el modo de fusión, la información de movimiento de candidato espacial y temporal de la unidad de codificación actual se muestra en la FIG. 7. La información de movimiento de candidato espacial viene de cinco bloques espacialmente vecinos (A0, A1, B0, B1 y B2). Si los bloques vecinos no están disponibles o un modo de predicción es intrapredicción, los bloques vecinos no se agregan a la lista de información de movimiento candidato.
[0307] La información de movimiento candidato temporal de la unidad de codificación actual se puede obtener escalando un MV de un bloque colocado en un fotograma de referencia con base en recuentos de orden de imagen (POC) del fotograma de referencia y un fotograma actual. Cuando se obtiene el bloque en la ubicación correspondiente en el fotograma de referencia, se puede determinar primero si hay un bloque disponible en una ubicación T en el fotograma de referencia. Si el bloque en la ubicación T no está disponible, se selecciona un bloque en la ubicación C.
[0308] Cuando se usa un modelo traslacional para la predicción, se usa la misma información de movimiento para todos los píxeles en una unidad de codificación y luego se realiza una compensación de movimiento con base en la información de movimiento, para obtener un predictor de un píxel en la unidad de codificación. Sin embargo, en el mundo real hay una variedad de movimientos. Muchos objetos, por ejemplo, un objeto giratorio, una montaña rusa que gira en diferentes direcciones, los fuegos artificiales y algunas acrobacias en las películas, no están en movimiento de traslación. Si estos objetos en movimiento, especialmente aquellos en un escenario de contenido generado por usuario (UGC), se codifican usando una tecnología de compensación de movimiento de bloque con base en el modelo de movimiento traslacional en un estándar de codificación actual, la eficiencia de la codificación se ve afectada en gran medida. Por lo tanto, para mejorar el efecto de codificación, se proporciona una predicción con base en un modelo de movimiento no traslacional.
[0309] En la predicción con base en modelo de movimiento no traslacional, se usa un mismo modelo de movimiento en un lado codificador y un lado decodificador para derivar información de movimiento de cada unidad de compensación de submovimiento en un bloque de codificación actual, y luego se realiza la compensación de movimiento con base en la información de movimiento de la unidad de compensación de submovimiento para obtener un subbloque de predicción de cada subbloque, para mejorar la eficiencia de la predicción. Los modelos de movimiento no traslacional usados con frecuencia incluyen un modelo de movimiento afín de 4 parámetros y un modelo de movimiento afín de 6 parámetros.
[0310] Además, un modo de salto es un modo especial del modo de fusión. Una diferencia radica en que no hay ningún residuo durante la transmisión en el modo de salto, y solo se transfiere un índice candidato de fusión (índice de fusión). El índice de fusión se usa para indicar la información de movimiento candidato mejor u objetivo en una lista de información de movimiento candidato de fusión.
[0311] Se pueden usar diferentes modos cuando se predice una imagen. A continuación, se describen en detalle estos modos comunes.
[0312] Modo de fusión con diferencia de vector de movimiento:
[0313] En el modo de fusión con diferencia de vector de movimiento (MMVD), uno o más vectores de movimiento candidatos se seleccionan de una lista de vectores de movimiento candidatos de fusión y luego se realiza la expresión de extensión de vector de movimiento (MV) con base en los vectores de movimiento candidatos. La expresión de extensión MV incluye un punto de inicio de un MV, un paso de movimiento y una dirección de movimiento.
[0314] Generalmente, un tipo de vector de movimiento candidato seleccionado en el modo MMVD es un tipo de fusión por defecto (por ejemplo, MRG_TYPE_DEFAULT_N). El vector de movimiento candidato seleccionado es el punto de inicio del MV. En otras palabras, el vector de movimiento candidato seleccionado se usa para determinar una ubicación inicial del MV
[0315] Como se muestra en la Tabla 1, un índice candidato base (IDX candidato base) indica qué vector de movimiento candidato se selecciona de la lista de vectores de movimiento candidato como vector de movimiento candidato óptimo. Si la lista de vectores de movimiento candidato de fusión incluye un vector de movimiento candidato para selección, es posible que no se determine el IDX candidato base.
[0316] Tabla 1
[0319]
[0321] Por ejemplo, si el índice candidato base es 1, el vector de movimiento candidato seleccionado es el segundo vector de movimiento en la lista de vectores de movimiento candidato de fusión.
[0322] Un índice de distancia (IDX de distancia) representa información de distancia de desplazamiento de vector de movimiento. Un valor del índice de distancia representa una distancia (por ejemplo, una distancia preestablecida) desplazada desde la ubicación inicial. La distancia en este documento se representa mediante una distancia de píxel. La distancia entre píxeles también puede denominarse brevemente pel. En la Tabla 2 se puede mostrar una correspondencia entre el índice de distancia y la distancia de píxel.
[0323] Tabla 2
[0326]
[0328] Se usa un índice de dirección (IDX de dirección ) para representar una dirección de una diferencia de vector de movimiento (MVD) con base en la ubicación inicial. El índice de dirección puede incluir cuatro casos en total. La definición específica se muestra en la Tabla 3.
[0329] Tabla 3
[0332]
[0334] Un proceso para determinar un valor de píxel previsto de un bloque de imagen actual con base en el método MMVD incluye los siguientes pasos:
[0335] Paso 1: Determinar un punto de inicio de un MV con base en un IDX candidato base.
[0336] La FIG.8 es un diagrama esquemático de un punto de búsqueda MMVD según una realización de esta solicitud, y la FIG.9 es un diagrama esquemático de un proceso de búsqueda MMVD según esta realización de esta solicitud. Por ejemplo, el punto de inicio del MV es un punto hueco en el centro en la FIG.8, o una ubicación correspondiente a una línea sólida en la FIG.9.
[0337] Paso 2: Determinar, con base en una dirección IDX, una dirección de desplazamiento ab con base en el punto de inicio del MV
[0338] Paso 3: Determinar, con base en una distancia IDX, una cantidad de elementos de píxel que están desplazados en la dirección indicada por la dirección IDX.
[0339] Por ejemplo, la dirección IDX == 00 y la distancia IDX = 2 indican que un vector de movimiento que está desplazado por un elemento de píxel en una dirección X positiva se usa como un vector de movimiento del bloque de imagen actual, para predecir u obtener el valor de píxel predicho del bloque de imagen actual. Modo intra e inter combinado: En un bloque de codificación/CU codificado en un modo de fusión, se puede transmitir un indicador (por ejemplo, ciip_flag) para indicar si se usa el modo de intra e interpredicción combinada (CIIP) para el bloque de imagen actual. Cuando se usa el modo CIIP, se puede generar un bloque de intrapredicción con base en un modo de intrapredicción seleccionado de una lista de modos intracandidatos (lista de intracandidatos ) según un elemento de sintaxis relacionado, y se genera un bloque de interpredicción usando un método de interpredicción convencional. Finalmente, se usa un método de ponderación adaptativa para combinar el bloque de predicción de intracodificación y el bloque de predicción de intercodificación para generar un bloque de predicción final.
[0340] Para un bloque de luminancia, la lista de modos intracandidatos puede seleccionarse entre cuatro modos: un modo DC, un modo planar, un modo horizontal y un modo vertical. Un tamaño de la lista de modos intracandidatos se selecciona con base en la forma de un bloque de codificación actual, y puede haber tres o cuatro modos en la lista de modos intracandidatos. Cuando la anchura de un bloque de codificación/CU actual es mayor que el doble de la altura, la lista de modos intracandidatos no incluye el modo horizontal. Cuando la altura de un bloque de codificación/CU actual es mayor que el doble de la altura, la lista de modos intracandidatos no incluye el modo vertical.
[0342] En un método de ponderación que combina codificación intra e intercodificación, se usan diferentes coeficientes de ponderación para diferentes modos de intrapredicción. Específicamente, cuando se usa el modo DC o planar para la intracodificación, o cuando la longitud o la anchura del bloque de codificación actual es menor o igual a 4, se usa un mismo valor de peso/coeficiente de peso para un predictor obtenido a través de intrapredicción y un predictor obtenido a través de interpredicción. De lo contrario, se puede determinar un valor de peso/coeficiente de peso con base en un modo de intrapredicción usado por el bloque actual y/o una ubicación de una muestra de predicción en el bloque actual. Por ejemplo, se usa un coeficiente de peso variable cuando se usan los modos horizontal y vertical para la intracodificación.
[0344] Modo de unidad de predicción de triángulo:
[0346] El modo de unidad de predicción de triángulo (PU de triángulo) también puede denominarse modo de partición de triángulo (TPM) o modo de triángulo de fusión. Para facilitar la descripción, en esta aplicación, el modo de unidad de predicción triangular o modo de partición triangular se denomina brevemente TPM, que también es aplicable posteriormente.
[0348] Como se muestra en la FIG.11, un bloque de imagen actual se divide en dos unidades de predicción de triángulo, y se seleccionan un vector de movimiento y un índice de referencia de una lista de candidatos de predicción única para cada unidad de predicción de triángulo. Luego, se obtiene un predictor para cada una de las dos unidades de predicción de triángulo, y se obtiene un predictor realizando una ponderación adaptativa en un píxel incluido en cada región de hipotenusa. Luego, se realizan procesos de transformada y cuantificación en todo el bloque de imagen actual. Se debe tener en cuenta que un método de unidad de predicción de triángulo generalmente se aplica solo en un modo de salto o en un modo de fusión. El lado izquierdo de la FIG. 10 muestra un modo de división de arriba a la izquierda a abajo a la derecha (en otras palabras, división de arriba a la izquierda a abajo a la derecha), y el lado derecho de la FIG. 10 muestra un modo de división de arriba a la derecha a abajo a la izquierda (en otras palabras, división de arriba a la derecha a abajo a la izquierda).
[0350] Una lista de candidatos de uni-predicción en el modo de unidad de predicción de triángulo puede incluir normalmente cinco vectores de movimiento predichos candidatos. Estos vectores de movimiento predichos candidatos se obtienen, por ejemplo, usando siete bloques vecinos periféricos (cinco bloques vecinos espaciales y dos bloques co-ubicados temporales) en la FIG. 5. Se busca información de movimiento de los siete bloques vecinos y estos se colocan en la lista de candidatos de uni-predicción en una secuencia. Por ejemplo, la secuencia puede ser un vector de movimiento de bipredicción en L0, un vector de movimiento de bipredicción en L1 y un promedio de vectores de movimiento en L0 y L1. Si hay menos de cinco candidatos, se agrega un vector 0 de movimiento cero a la lista de candidatos de uni-predicción. Durante la codificación, la lista de candidatos de unipredicción se obtiene de la manera antes descrita. Por ejemplo, en la lista de candidatos de uni-predicción, la información de movimiento de predicción hacia adelante se usa para predecir un predictor de píxel de una PU de triángulo, y la información de movimiento de predicción hacia atrás se usa para predecir un predictor de píxel de la otra PU de triángulo. Un lado codificador selecciona un vector de movimiento óptimo mediante un recorrido. Por ejemplo, se puede usar la siguiente manera: {m, i, j}:
[0353]
[0354] donde en {m, i, j}, m en la primera posición representa el modo de división de arriba a la izquierda a abajo a la derecha o de arriba a la derecha a abajo a la izquierda; la segunda posición representa la información de movimiento hacia adelante de un i-<ésimo>vector de movimiento predicho candidato usado para la primera PU de triángulo; y la tercera posición representa la información de movimiento hacia atrás de un j-<ésimo>vector de movimiento predicho candidato usado para la segunda PU de triángulo.
[0355] Para un proceso de ponderación adaptativa realizado con base en el predictor del píxel incluido en la región de hipotenusa, consulte la FIG. 11. Una vez completada la predicción en las unidades P<1>y P<2>de predicción de triángulo, se realiza el proceso de ponderación adaptativa en el píxel incluido en la región de hipotenusa, para obtener un predictor final del bloque de imagen actual.
[0356] Por ejemplo, en la imagen del lado izquierdo de la FIG. 11, un predictor de un píxel en una ubicación 2 es
[0357] . P<1>representa un predictor de un píxel en una región superior derecha en la FIG.11, yP2
representa un predictor de un píxel en una región inferior izquierda en la FIG.11.
[0358] Dos conjuntos de parámetros ponderados son los siguientes:
[0359] Un primer conjunto de parámetros ponderados, {7/8, 6/8, 4/8, 2/8, 1/8} y {7/8, 4/8, 1/8}, se usan para los puntos de luma y croma, respectivamente.
[0360] Un segundo conjunto de parámetros ponderados, {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} y {6/8, 4/8, 2/8}, se usan para los puntos de luma y croma, respectivamente.
[0361] Se usa un conjunto de parámetros ponderados para codificar y decodificar el bloque de imagen actual. Cuando las imágenes de referencia de las dos unidades de predicción son diferentes o la diferencia del vector de movimiento entre las dos unidades de predicción es mayor a 16 píxeles, se selecciona el segundo conjunto de parámetros ponderados; de lo contrario, se usa el primer conjunto de parámetros ponderados.
[0362] La FIG. 12 es un diagrama de bloques esquemático de un sistema de comunicaciones de vídeo según una realización de esta solicitud.
[0363] Un sistema 500 de comunicaciones de vídeo mostrado en la FIG.12 incluye un aparato 600 de origen y un aparato 700 de destino. El aparato 600 de origen puede codificar un vídeo obtenido y transmitir un flujo de bits de vídeo codificado al aparato 700 de recepción. El aparato 700 de destino puede analizar el flujo de bits de vídeo recibido para obtener una imagen de vídeo y mostrar el vídeo usando un aparato de visualización.
[0364] El método de predicción de imagen en las realizaciones de esta solicitud puede ser realizado por el aparato 600 de origen o el aparato 700 de destino. Específicamente, el método de predicción de imagen en las realizaciones de esta solicitud puede ser realizado por un codificador 603 de vídeo o un decodificador 702 de vídeo.
[0365] El sistema 500 de comunicaciones de vídeo también puede denominarse sistema de codificación de vídeo. El aparato 600 de origen también puede denominarse aparato de codificación de vídeo o dispositivo de codificación de vídeo. El aparato 700 de destino puede denominarse aparato de decodificación de vídeo o dispositivo de decodificación de vídeo.
[0366] En la FIG.12, el aparato 600 de origen incluye un aparato 601 de captura de vídeo, una memoria 602 de vídeo, un codificador 603 de vídeo y un transmisor 604. La memoria 602 de vídeo puede almacenar un vídeo obtenido por el aparato 601 de captura de vídeo. El codificador 603 de vídeo puede codificar datos de vídeo desde la memoria 602 de vídeo y el aparato 601 de captura de vídeo. En algunos ejemplos, el aparato 600 de origen transmite directamente los datos de vídeo codificados al aparato 700 de destino a través del transmisor 604. Los datos de vídeo codificados pueden almacenarse además en un medio de almacenamiento o un servidor de archivos, de modo que el aparato 700 de destino extraiga posteriormente los datos de vídeo codificados para decodificarlos y/o reproducirlos.
[0367] En la FIG.12, el aparato 700 de destino incluye un receptor 701, un decodificador 702 de vídeo y un aparato 703 de visualización. En algunos ejemplos, el receptor 701 puede recibir los datos de vídeo codificados a través de un canal 800. El aparato 703 de visualización puede estar integrado con el aparato 700 de destino o puede estar dispuesto fuera del aparato 7000 de destino. Por lo general, el aparato 700 de visualización muestra datos de vídeo decodificados. El aparato 700 de visualización puede incluir una pluralidad de tipos de aparatos de visualización, por ejemplo, un elemento de visualización de cristal líquido, un elemento de visualización de plasma, un elemento de visualización de diodo emisor de luz orgánico, o un aparato de visualización de otro tipo.
[0368] Las implementaciones específicas del aparato 600 de origen y del aparato 700 de destino pueden ser cualquiera de los siguientes dispositivos: un ordenador de sobremesa, un aparato informático móvil, un ordenador portátil (por
ejemplo, un portátil), una tableta, un decodificador, un teléfono inteligente, un auricular, un televisor, una cámara, un aparato de visualización, un reproductor de medios digitales, una consola de videojuegos, un ordenador instalado en un vehículo u otro dispositivo similar.
[0369] El aparato 700 de destino puede recibir los datos de vídeo codificados del aparato 600 de origen a través del canal 800. El canal 800 puede incluir uno o más medios y/o aparatos que pueden transferir los datos de vídeo codificados desde el aparato 600 de origen al aparato 700 de destino. En un ejemplo, el canal 800 puede incluir uno o más medios de comunicaciones que pueden permitir que el aparato 600 de origen transmita directamente los datos de vídeo codificados al aparato 700 de destino en tiempo real. En este ejemplo, el aparato 600 de origen puede modular los datos de vídeo codificados según un estándar de comunicaciones (por ejemplo, un protocolo de comunicaciones inalámbricas), y puede transmitir datos de vídeo modulados al aparato 700 de destino. El uno o más medios de comunicación puede incluir cualquier medio de comunicaciones inalámbricas o por cable, por ejemplo, un espectro de radiofrecuencia (RF) o uno o más líneas físicas de transmisión. El uno o más medios de comunicaciones pueden constituir una parte de una red con base en paquetes (por ejemplo, una red de área local, una red de área amplia o una red global (por ejemplo, Internet). El uno o más medios de comunicación pueden incluir un enrutador, un conmutador, una estación base u otro dispositivo que implemente la comunicación entre el aparato 600 de origen y el aparato 700 de destino.
[0370] En otro ejemplo, el canal 800 puede incluir un medio de almacenamiento que almacena los datos de vídeo codificados generados por el aparato 600 de origen. En este ejemplo, el aparato 700 de destino puede acceder al medio de almacenamiento a través del acceso de disco o el acceso de tarjeta. El medio de almacenamiento puede incluir una pluralidad de tipos de medios de almacenamiento de datos localmente accesibles, tales como un disco Blu-ray, un disco de vídeo digital (DVD) de alta densidad, un disco compacto de memoria de solo lectura (CD-ROM), una memoria flash, u otro medio de almacenamiento digital apropiado configurado para almacenar los datos de vídeo codificados.
[0371] En otro ejemplo, el canal 800 puede incluir un servidor de archivos, u otro aparato de almacenamiento intermedio que almacene los datos de vídeo codificados generados por el aparato 600 de origen. En este ejemplo, el aparato 700 de destino puede acceder, mediante transmisión en vivo o descarga, los datos de vídeo codificados almacenados en el servidor de archivos o en otro dispositivo de almacenamiento intermedio. 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 aparato 700 de destino. Por ejemplo, el servidor de archivos puede incluir un servidor web (Web) (por ejemplo, usado para un sitio web), un servidor de protocolo de transferencia de archivos (FTP), un aparato de almacenamiento conectado a la red (NAS) o una unidad de disco local.
[0372] El aparato 700 de destino puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar (por ejemplo, una conexión a Internet). Un tipo de ejemplo de la conexión de datos incluye un canal inalámbrico o una conexión por cable (por ejemplo, un módem de cable) o una combinación de los mismos que sea adecuado para acceder a los datos de vídeo codificados almacenados en el servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento puede ser una transmisión en vivo, una transmisión de descarga o una combinación de las mismas.
[0373] A continuación, se describen en detalle el método de predicción de imagen con referencia a dibujos adjuntos específicos.
[0374] La FIG.13 es un diagrama de flujo esquemático de un método de predicción de imagen según una realización de esta solicitud. El método de predicción de imagen que se muestra en la FIG.13 puede ser realizado por un aparato de predicción de imagen (el aparato de predicción de imagen puede estar ubicado en un aparato (sistema) de codificación de imagen o en un aparato (sistema) de decodificación de imagen). Específicamente, el método mostrado en la FIG. 13 puede ser realizado por el aparato de codificación de imagen o por el aparato de decodificación de imagen. El método que se muestra en la FIG.13 se puede realizar en un lado codificador o en un lado decodificador. El método mostrado en la FIG.13 incluye del pasos 1001 al paso 1008. A continuación se describen por separado estos pasos en detalle.
[0375] 1001: Inicio.
[0376] El paso 1001 indica que comienza la predicción de imagen.
[0377] 1002: Determinar si se usa un modo de fusión para el bloque de imagen actual.
[0378] Opcionalmente, el método mostrado en la FIG.13 incluye además: obtener el bloque de imagen actual antes del paso 1002.
[0379] El bloque de imagen actual puede ser un bloque de imagen en una imagen actual a codificar o a decodificar. Debe entenderse que, en esta solicitud, el bloque de imagen actual puede obtenerse en un proceso de
determinación de un modo de fusión objetivo del bloque de imagen actual o después de que se determina el modo de fusión objetivo del bloque de imagen actual.
[0380] En cuanto al decodificador, en el paso 1002, se puede determinar específicamente si se utiliza el modo de fusión para el bloque de imagen actual basándose en un elemento sintáctico a nivel de CU merge_flag[x0] [y0].
[0381] Si merge_flag[x0][y0] = 1, se determina que el modo de fusión se utiliza para predecir el bloque de imagen actual. Si merge_flag[x0][y0] = 1, se determina que el modo de fusión no se utiliza para predecir el bloque de imagen actual. x0 e y0 representan una ubicación de coordenadas de un elemento de píxel de luminancia en la esquina superior izquierda del bloque de imagen actual en relación con un elemento de píxel de luminancia en la esquina superior izquierda de la imagen actual.
[0382] Una vez determinado, basándose en el elemento sintáctico de nivel CU merge _flag[x0] [y0], que se utiliza el modo de fusión para el bloque de imagen actual, el modo de fusión de destino que se utiliza finalmente puede determinarse analizando la información específica del elemento sintáctico de nivel CU merge _flag[x0] [y0].
[0384] 1003: Determinar si se usará un modo de fusión de nivel 1.
[0385] Específicamente, si el modo de fusión de nivel 1 está disponible se determina con base en un elemento de sintaxis de capa alta correspondiente al modo de fusión de nivel 1 y/o información de estado disponible correspondiente al modo de fusión de nivel 1.
[0386] En una posible implementación de la presente invención, se supone que el modo de fusión de nivel 1 incluye dos modos de fusión en total: un modo A de fusión y un modo de fusión B. En este caso, si hay un modo de fusión disponible en el modo de fusión de nivel 1 se determina uno por uno. Si hay un modo de fusión disponible, se realiza el paso 1005. Si no hay ningún modo de fusión disponible en el modo de fusión de nivel 1, se determina que el modo de fusión de nivel 1 no está disponible. En este caso, el modo de fusión objetivo debe determinarse a partir de un modo de fusión de nivel 2. En otras palabras, se realiza el paso 1004.
[0387] 1004: Determinar si un elemento de sintaxis de capa alta correspondiente al primer modo de fusión indica que está prohibido usar el primer modo de fusión.
[0388] El primer modo de fusión pertenece al modo de fusión de nivel 2, y el modo de fusión de nivel 2 incluye además un segundo modo de fusión.
[0389] Cuando se determina en el paso 1004 que el elemento de sintaxis de capa alta correspondiente al primer modo de fusión indica que está prohibido usar el primer modo de fusión, se realiza el paso 1006 para determinar el segundo modo de fusión como el modo de fusión objetivo.
[0390] En esta solicitud, cuando el elemento de sintaxis de capa alta del primer modo de fusión indica que está prohibido usar el primer modo de fusión, no es necesario analizar la información de estado disponible del segundo modo de fusión restante, y el segundo modo de fusión puede determinarse directamente como el modo de fusión objetivo final. Esto puede reducir, tanto como sea posible, la redundancia generada al determinar el modo de fusión objetivo en un proceso de predicción de imagen.
[0391] Cuando se determina en el paso 1004 que el elemento de sintaxis de capa alta correspondiente al primer modo de fusión indica que está permitido usar el primer modo de fusión, se realiza el paso 1007 para determinar además el modo de fusión objetivo.
[0392] 1005: Predecir el bloque de imagen actual con base en el modo de fusión de nivel 1.
[0393] Se debe entender que, en el paso 1005, si el modo A de fusión en el modo de fusión de nivel 1 está disponible, el bloque de imagen actual se predice con base en el modo A de fusión.
[0394] 1006: Determinar el segundo modo de fusión como el modo de fusión de destino aplicable al bloque de imagen actual.
[0395] Cuando el elemento de sintaxis de capa alta correspondiente al primer modo de fusión indica que está prohibido usar el primer modo de fusión, no hay necesidad de analizar un elemento de sintaxis de capa alta y/o la información de estado disponible correspondiente al segundo modo de fusión, y el segundo modo de fusión puede determinarse directamente como el modo de fusión objetivo.
[0396] 1007: Determinar el modo de fusión objetivo con base en el elemento de sintaxis de capa alta correspondiente al segundo modo de fusión y/o la información de estado disponible del segundo modo de fusión.
[0397] La información de estado disponible del segundo modo de fusión se usa para indicar si se usa el segundo modo de fusión cuando se predice el bloque de imagen actual.
[0398] Por ejemplo, el segundo modo de fusión es un modo CIIP, y la información de estado disponible del segundo modo de fusión es un valor de ciip_flag. Cuando ciip_flag es 0, el modo CIIP no se utiliza para el bloque de imagen actual. Cuando ciip_flag es 1, se usa el modo CIIP para predecir el bloque de imagen actual.
[0399] Se debe entender que, para el modo CIIP, si se debe seleccionar el modo CIIP como el modo de fusión objetivo, un elemento de sintaxis de capa alta correspondiente al CIIP debe indicar que se permite usar el modo CIIP, y la información de estado disponible que indica un estado disponible del modo CIIP necesita indicar que el CIIP está disponible.
[0400] Por ejemplo, cuando sps_ciip_enabled_flag = 1 y ciip_flag = 1, el modo CIIP puede determinarse como el modo de fusión objetivo del bloque de imagen actual.
[0401] En el paso 1007, debido a que se permite usar el primer modo de fusión, tanto el primer modo de fusión como el segundo modo de fusión se pueden usar como el modo de fusión objetivo del bloque de imagen actual. Por lo tanto, el modo de fusión objetivo se puede determinar a partir del modo de fusión de nivel 2 con base en una sintaxis de capa alta y la información de estado disponible que corresponde a uno de los modos de fusión.
[0402] Opcionalmente, el primer modo de fusión es un modo TPM y el segundo modo de fusión es el modo CIIP.
[0403] A continuación se describe en detalle cómo determinar el modo de fusión objetivo cuando el primer modo de fusión es el modo TPM y el segundo modo de fusión es el modo CIIP.
[0404] Opcionalmente, cuando un elemento de sintaxis de capa alta correspondiente al modo TPM indica que está prohibido usar el modo TPM, el modo CIIP se determina como el modo de fusión objetivo.
[0405] Por ejemplo, cuando sps_triangle_enabled_flag correspondiente al modo TPM es 0, está prohibido usar el modo TPM. En este caso, no es necesario analizar un valor específico de ciip_flag. En lugar de ello, el modo CIIP puede determinarse directamente como el modo de fusión objetivo. De esta manera, se puede reducir un proceso de análisis innecesario y la redundancia de la solución.
[0406] En esta solicitud, cuando el elemento de sintaxis de capa alta correspondiente al modo TPM indica que está prohibido usar el modo TPM, no hay necesidad de determinar, mediante el análisis de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica un estado disponible del modo CIIP, si el modo CIIP está disponible. En lugar de ello, el modo CIIP puede determinarse directamente como el modo de fusión objetivo. Esto puede reducir la redundancia en el proceso de determinación del modo de fusión objetivo.
[0407] Opcionalmente, cuando el elemento de sintaxis de capa alta correspondiente al modo TPM indica que se permite usar el modo TPM, el modo de fusión objetivo se determina con base en el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP.
[0408] Por ejemplo, cuando sps_triangle_enabled_flag correspondiente al modo TPM es 1, está permitido usar el modo TPM. En este caso, tanto el modo TPM como el modo CIIP pueden usarse como modo de fusión objetivo. Por lo tanto, es necesario determinar con más detalle si se debe seleccionar el modo TPM o el modo CIIP como modo de fusión objetivo.
[0409] Opcionalmente, cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indica/indique que está prohibido usar el modo CIIP, el modo TPM se determina como el modo de fusión objetivo.
[0410] Que el elemento sintáctico de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indica/indique que está prohibido usar el modo CIIP incluye los casos 1 a 3:
[0411] Caso 1: El elemento de sintaxis de capa alta correspondiente al modo CIIP indica que está prohibido usar el modo CIIP, y la información de estado disponible que indica el estado disponible del modo CIIP indica que el modo CIIP no está disponible.
[0412] Caso 2: El elemento de sintaxis de capa alta correspondiente al modo CIIP indica que está prohibido usar el modo CIIP, y la información de estado disponible que indica el estado disponible del modo CIIP indica que el modo CIIP no está disponible.
[0413] Caso 3: La información de estado disponible que indica el estado disponible del modo CIIP indica que el modo CIIP no está disponible.
[0414] Opcionalmente, cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP indica que se permite el uso del modo CIIP, y la información de estado disponible que indica el estado disponible del modo CIIP indica que el modo CIIP está disponible, el modo CIIP se determina como el modo de fusión objetivo.
[0415] 1008: Predecir el bloque de imagen actual con base en el modo de fusión objetivo.
[0416] En el método mostrado en la FIG. 13, antes de realizar el paso 1007, el método mostrado en la FIG. 13 incluye además: determinar que un tipo de segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es B; y determinar que una cantidad máxima de candidatos de modo TPM soportados por la segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2.
[0417] Opcionalmente, antes de que se determine el modo de fusión objetivo con base en el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP, el método incluye además: determinar que el tipo del segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es B; y determinar que una cantidad máxima de candidatos de modo TPM soportados por el segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2. Opcionalmente, en una realización, el método mostrado en la FIG.13 incluye además: cuando el modo de fusión de nivel 1 no está disponible y el elemento de sintaxis de capa alta correspondiente al modo TPM indica que se permite el uso del modo TPM, pero el bloque de imagen actual no cumple al menos una de las condiciones A y B, se determina que el modo CIIP es el modo de fusión objetivo.
[0418] La condición A y la condición B son las siguientes:
[0419] Condición A: Un tipo de segmento en el que se ubica el bloque de imagen actual es B.
[0420] Condición B: La cantidad máxima de candidatos de modo TPM soportados por el segmento o el grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2.
[0421] La condición A y la condición B pueden representarse de algunas maneras específicas. Por ejemplo, la condición A puede estar representada específicamente por slice_type == B, y la condición B puede estar representada específicamente por MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand indica la cantidad máxima de candidatos de modo TPM soportados por el segmento o el grupo de segmentos en el que se ubica el bloque de imagen actual.
[0422] El modo TPM se puede seleccionar como el modo de fusión objetivo usado finalmente para predecir el bloque de imagen actual solo cuando se cumplen tanto la condición A como la condición B.
[0423] Si no se cumple la condición A o la condición B, el modo CIIP se determina como el modo de fusión objetivo. Cuando el elemento de sintaxis de capa alta correspondiente al modo TPM indica que está prohibido usar el modo TPM, si no se cumple la condición A o la condición B, el modo CIIP se determina como el modo de fusión objetivo. Cuando el elemento de sintaxis de capa alta correspondiente al modo TPM indica que está permitido usar el modo TPM, si no se cumple la condición A o la condición B, el modo CIIP se determina como el modo de fusión objetivo. En otras palabras, el modo CIIP puede determinarse como el modo de fusión objetivo siempre que no se cumpla uno de sps_trangle_enabled_flag = 1, la condición A y la condición B.
[0424] Al contrario, si sps_trangle_enabled_flag = 1, se cumplen la condición A y la condición B, el modo de fusión objetivo necesita determinarse con base en ciip_flag según varias condiciones de la técnica anterior.
[0425] Opcionalmente, el elemento de sintaxis de capa alta es un elemento de sintaxis en al menos uno de un nivel de secuencia, un nivel de imagen, un nivel de segmento y un nivel de grupo de segmentos.
[0426] Opcionalmente, el modo de fusión de nivel 1 del paso 4003 incluye un modo de fusión normal, un modo MMVD y un modo de fusión de subbloques.
[0427] Cuando se determina si el modo de fusión de nivel 1 está disponible, si estos modos están disponibles se puede determinar secuencialmente en una secuencia del modo de fusión normal, el modo MMVD y el modo de fusión de subbloque.
[0428] Por ejemplo, primero se puede determinar si el modo de fusión normal está disponible. Cuando el modo de fusión
normal no está disponible (si el modo de fusión normal está disponible, el modo de fusión normal se puede usar directamente como el modo de fusión objetivo final), se continúa determinando si el modo MMVD está disponible. Cuando el modo MMVD no está disponible, se continúa determinando si el modo de fusión de subbloques está disponible.
[0429] Opcionalmente, el método mostrado en la FIG.13 se puede aplicar al lado codificador, para codificar el bloque de imagen actual.
[0430] Opcionalmente, el método mostrado en la FIG.13 se puede aplicar al lado decodificador, para decodificar el bloque de imagen actual.
[0431] Para comprender mejor un proceso específico del método de predicción de imagen en las realizaciones de esta solicitud, a continuación se describe en detalle, con referencia a un ejemplo específico, un proceso de determinación de un modo de fusión de imagen en el método de predicción de imagen en las realizaciones de esta solicitud.
[0432] A continuación, se describe en detalle el método de predicción de imagen en las realizaciones de esta solicitud con referencia a la FIG.14 y la Tabla 4.
[0433] La FIG.14 muestra un proceso de determinación de un modo de fusión según una realización de esta solicitud. El proceso que se muestra en la FIG.14 incluye los pasos 3001 al paso 3007. A continuación se describe en detalle cada paso.
[0434] 3001: Inicio.
[0435] El paso 3001 indica que comienza la predicción de imagen.
[0436] 3002: Determinar si se usa un modo de fusión para el bloque de imagen actual.
[0437] Específicamente, cuando el paso 3002 es realizado por un lado decodificador, en el paso 3002, si se usa el modo de fusión para el bloque de imagen actual se puede determinar con base en un valor de un elemento de sintaxis de nivel CU merge_flag[x0][y0] correspondiente al bloque de imagen actual.
[0438] Por ejemplo, como se muestra en la Tabla 4, cuando merge_flag[x0][y0] = 0, el modo de fusión no se usa para el bloque de imagen actual. En este caso, el bloque de imagen actual se puede predecir de otra manera. Por ejemplo, el bloque de imagen actual se puede predecir en un modo AMVP.
[0439] Cuando merge_flag[x0][y0] = 1, el modo de fusión se usa para el bloque de imagen actual. A continuación, se puede determinar con más detalle qué modo de fusión se usa para predecir el bloque de imagen actual.
[0440] Debe entenderse que, cuando no hay merge_flag[x0] [y0] en un flujo de bits, merge_flag[x0][y0] es 0 por defecto. (x0, y0) representa una ubicación de coordenadas de un elemento de píxel de luminancia en la esquina superior izquierda del bloque de imagen actual en relación con un elemento de píxel de luminancia en la esquina superior izquierda de una imagen actual. El significado de (x0, y0) en los siguientes elementos de sintaxis es el mismo que este y no se describen los detalles en este documento.
[0441] Opcionalmente, el método mostrado en la FIG.14 incluye además: obtener el bloque de imagen actual antes del paso 3002.
[0442] El bloque de imagen actual puede ser un bloque de imagen en una imagen actual a codificar o a decodificar. Debe entenderse que, en esta solicitud, el bloque de imagen actual puede obtenerse en un proceso de determinación de un modo de fusión objetivo del bloque de imagen actual o después de que se determina el modo de fusión objetivo del bloque de imagen actual.
[0443] 3003: Determinar si se utiliza un modo de fusión normal para el bloque de imagen actual.
[0444] Concretamente, en el paso 3003, se puede determinar si se utiliza el modo de fusión regular para el bloque de im agen actual analizando un valor de un elemento sintáctico regular_merge_flag[x0][y0].
[0445] Cuando regular_merge_flag[x0][y0] = 1, se determina que se utiliza el modo de fusión regular para el bloque de i magen actual. En este caso, se puede realizar el paso 3007. En concreto, el bloque de imagen actual se predice basándose en el modo de fusión regular.
[0446] Cuando regular_merge_flag[x0][y0] = 0, se determina que el modo de fusión regular no se utiliza para el bloque d
e imagen actual. En este caso, es necesario continuar con el paso 3004 para determinar el modo de fusión utiliza do para el bloque de imagen actual.
[0447] Debe entenderse que, cuando no hay regular_merge_flag[x0][y0] en el flujo de bits, regular_merge_flag[x0][y0] es 0 por defecto.
[0448] 3004: Determinar si se utiliza un modo MMVD para el bloque de imagen actual.
[0449] Específicamente, en el paso 3004, cuando un elemento de sintaxis de capa alta correspondiente al modo MMVD indica que se puede permitir el uso del MMVD, y un área del bloque de imagen actual no es igual a 32, se puede determinar si se usa el MMVD para el bloque de imagen actual analizando un valor de un elemento de sintaxis mmvd_flag[x0][y0].
[0450] Cuando mmvd_flag[x0][y0] = 1, se determina que se usa el modo MMVD para el bloque de imagen actual. Cuando mmvd_flag. En este caso se puede realizar el paso 3007. Para ser más específico, el bloque de imagen actual se predice con base en el modo MMVD.
[0451] Cuando mmvd_flag[x0][y0] = 0, se determina que se usa el modo MMVD para el bloque de imagen actual. En este caso, es necesario continuar para realizar el paso 3005, para determinar con más detalle el modo de fusión usado para el bloque de imagen actual.
[0452] Debe entenderse que, cuando no hay mmvd_flag[x0][y0] en el flujo de bits, mmvd_flag[x0][y0] es 0 por defecto.
[0453] 3005: Determinar si se usa un modo de fusión de subbloque para el bloque de imagen actual.
[0454] En el paso 3004, se puede determinar si se usa el modo de fusión de subbloques para el bloque de imagen actual con base en un valor de un elemento de sintaxis merge_subblock_flag[x0] [y0], que se obtiene al analizar el flujo de bits.
[0455] Cuando merge_subblock_flag[x0][y0] = 1, se determina que se usa el modo de fusión de subbloques para el bloque de imagen actual. En este caso se puede realizar el paso 3007. Para ser más específico, el bloque de imagen actual se predice con base en el modo de fusión de subbloque.
[0456] Cuando merge_subblock_flag[x0][y0] = 0, se determina que se usa el modo de fusión de subbloque para el bloque de imagen actual. En este caso, es necesario continuar para realizar el paso 3006, para determinar con más detalle el modo de fusión usado para el bloque de imagen actual.
[0457] Debe entenderse que, cuando no hay merge_subblock_flag[x0][y0] en el flujo de bits, merge_subblock_flag[x0][y0] es 0 por defecto.
[0458] Además, en el paso 3004, el valor del elemento de sintaxis merge_subblock_flag[x0][y0] se puede analizar solo cuando la longitud máxima de una lista de candidatos de fusión de subbloque es mayor que 0 y tanto la anchura como la altura del bloque de imagen actual son mayores o iguales a 8, y el paso 3007 continúa realizándose cuando el valor obtenido de merge_subblock_flag[x0][y0] es 0.
[0459] 3006: Determinar el modo de fusión usado para el bloque de imagen actual a partir de un modo CIIP y un modo TPM.
[0460] Específicamente, en el paso 3006, si se cumplen las seis condiciones en las siguientes condiciones (1) a (6), se analiza ciip_flag[x0][y0] del flujo de bits, el modo de fusión usado para el bloque de imagen actual se determina con base en un valor de ciip_flag[x0][y0]. Cuando ciip_flag[x0][y0] = 1, se usa el modo CIIP para predecir el bloque de imagen actual.
[0461] Además, cuando se cumple la siguiente condición (1), si no se cumple alguna de las siguientes condiciones (2) a (6), se usa el modo CIIP para predecir el bloque de imagen actual.
[0464]
[0465] y
[0467]
[0469] cbWidth y cbHeight son respectivamente la anchura y la altura del bloque de imagen actual.
[0470] Opcionalmente, se pueden agregar más condiciones determinantes cuando se determina el modo de fusión usado para el bloque actual en el paso 3006.
[0471] Con base en las condiciones anteriores (1) a (6), se pueden agregar además las condiciones (7) y (8):
[0473]
[0475] Opcionalmente, en el paso 3006, si se cumplen las ocho condiciones en las siguientes condiciones (1) a (8), se analiza ciip_flag[x0][y0] del flujo de bits, el modo de fusión usado para el bloque de imagen actual se determina con base en un valor de ciip_flag[x0][y0]. Cuando ciip_flag[x0][y0] = 1, se usa el modo CIIP para predecir el bloque de imagen actual.
[0476] Además, cuando se cumple la siguiente condición (1), si no se cumple alguna de las siguientes condiciones (2) a (8), se usa el modo CIIP para predecir el bloque de imagen actual.
[0477] 3007: Predecir el bloque de imagen actual con base en el modo de fusión usado para el bloque de imagen actual. Cuando se determina en el paso 3003 que se usa el modo de fusión normal para el bloque de imagen actual, en el paso 3007, se predice el bloque de imagen actual con base en el modo de fusión normal. Cuando se determina en el paso 3004 que se usa el modo MMVD para el bloque de imagen actual, en el paso 3007, se predice el bloque de imagen actual con base en el modo de fusión normal. Cuando se determina en el paso 3005 que se usa el modo de fusión normal para el bloque de imagen actual, en el paso 3007, se predice el bloque de imagen actual con base en el modo de fusión de subbloque.
[0478] La Tabla 4 muestra cómo determinar, con base en un elemento de sintaxis correspondiente, un modo de fusión usado para el bloque de imagen actual cuando se usa el modo de fusión. A continuación se describe en detalle cómo determinar el modo de fusión del bloque de imagen actual con referencia a la Tabla 4.
[0479] Tabla 4
[0482]
[0483]
[0485] Cuando regular_merge_flag[x0][y0] mostrado en la Tabla 4 es 1, se determina que se usa el modo de fusión normal para el bloque de imagen actual. En este caso, se puede obtener un parámetro del modo de fusión normal analizando un elemento de sintaxis merge_idx[x0][y0]. Cuando regular_merge_flag[x0][y0] que se muestra en la Tabla 4 es 0, se determina que el modo de fusión normal no se usa para el bloque de imagen actual y es necesario determinar además el modo de fusión usado para el bloque de imagen actual.
[0486] Cuando sps_mmvd_enabled_flag y cbWidth * cbHeight ! que se muestran en la Tabla 4 son respectivamente 1 y 32, indica que se puede usar el modo MMVD para el bloque de imagen actual. En este caso, el modo de fusión del bloque de imagen actual se puede determinar con base en el valor de mmvd_flag[x0][y0]. Si mmvd_flag[x0][y0] = 1, se determina que se usa el modo MMVD para el bloque de imagen actual, y se puede determinar un parámetro del modo MMVD analizando los elementos de sintaxis mmvd_merge_flag[x0][y0], mmvd_distance_idx[x0][y0] y mmvd_direction_idx[x0][y0]. Si mmvd_flag[x0][y0] = 0, es necesario determinar además el modo de fusión usado para el bloque de imagen actual.
[0487] Cuando merge_subblock_flag[x0][y0] mostrado en la Tabla 4 es 1, se determina que se usa el modo de fusión de subbloque para el bloque de imagen actual. Cuando regular_merge_flag[x0][y0] que se muestra en la Tabla 4 es 0, se determina que no se usa el modo de fusión de subbloque para el bloque de imagen actual, y es necesario determinar además el modo de fusión usado para el bloque de imagen actual.
[0488] Cuando sps_ciip_enabled_flag que se muestra en la Tabla 4 es 0, se puede determinar directamente que se usa el modo TPM para el bloque de imagen actual. Sin embargo, cuando sps_ciip_enabled_flag y sps_ciip_enabled_flag que se muestran en la Tabla 4 son respectivamente 1 y 0, se puede determinar directamente que se usa el modo CIIP para el bloque de imagen actual.
[0489] Como se muestra en la Tabla 4, cuando se cumplen las seis condiciones en las siguientes condiciones (1) a (6), se debe obtener una indicación de información de estado disponible del modo Ciip, es decir, el valor de ciip_flag[x0] [y0], necesita ser obtenido del flujo de bits. Si ciip_flag[x0][y0] = 1, se determina que se usa el modo CIIP para el bloque de imagen actual. Si ciip_flag[x0][y0] = 0, se determina que se usa el modo TPM para el bloque de imagen actual.
[0490]
[0493] Opcionalmente, si (sps_ciip_enabled_flag && sps_triangle_enabled_flag &&cu_skip_flag[x0][y0] = = 0 && (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128) en la Tabla 4 puede reemplazarse alternativamente con si (sps_triangle_enabled_flag && sps_ciip_enabled_flag && cu_skip_flag[x0][y0] = = 0 && (cbWidth * cbHeight) ≥ 64 && cbWidth < 128 && cbHeight < 128). En otras palabras, se puede ajustar una secuencia de sps_ciip_enabled_flag y sps_triangle_enabled_flag. Un resultado específico puede mostrarse en la Tabla 5.
[0494] Tabla 5
[0497]
[0498]
[0501] Cabe señalar que, en la Tabla 4 y la Tabla 5, una secuencia de tiempo de determinación del CIIP es anterior a una secuencia de tiempo de determinación del TPM. Para ser más específico, primero se determina el CIIP y, finalmente, se determina un modo de predicción usado para el bloque actual con base en el estado del CIIP. Si el CIIP es verdadero, no es necesario determinar más información sobre el TPM. Si el CIIP es falso, significa que solo está disponible el TPM. En este caso, el modo de predicción final del bloque actual puede establecerse en el modo TPM. El establecimiento de prioridades o una lógica de la secuencia temporal determinante es sólo un ejemplo y puede ajustarse alternativamente según sea necesario. Por ejemplo, la secuencia de tiempo del TPM está diseñada para ser anterior a la secuencia de tiempo del CIIP. En este caso, también es necesario ajustar según sea necesario una condición para determinar si el modo TPM es aplicable.
[0503] Tabla 6
[0506]
[0507]
[0510] Como se muestra en la Tabla 6, cuando se cumplen las ocho condiciones en las siguientes condiciones (1) a (8), se necesita obtener una indicación de información de estado disponible del modo CIIP, es decir, el valor de ciip _flag[x0] [y0], del flujo de bits. Si ciip_flag[x0][y0] = 1, se determina que se usa el modo CIIP para el bloque de imagen actual. Si ciip_flag[x0][y0] = 0, se determina que se usa el modo TPM para el bloque de imagen actual.
[0513]
[0516] Opcionalmente, si (sps_ciip_enabled_flag && sps_triangle_enabled_flag &&slice_type == B && MaxNumTriangle MergeCand ≥ 2 && cu_skip_flag[x0][y0] = =0&& (cbWidth * cbHeight) ≥ 64&&cbWidth < 128 && cbHeight < 128) e n la Tabla 6 puede ser reemplazado de manera alternativa con si(sps_triangle_enabled_flag && sps_ciip_enabled _flag &&slice_type == B && MaxNumTriangleMergeCand ≥ 2 && cu_skip_flag[x0][y0] = =0&& (cbWidth * cbHeight ) ≥ 64&&cbWidth < 128 && cbHeight < 128). En otras palabras, se puede ajustar una secuencia de sps_ciip_enab led_flag y sps_triangle_enabled_flag. Un resultado específico puede mostrarse en la Tabla 7.
[0518] Tabla 7
[0521]
[0522]
[0524] Lo anterior describe en detalle el método de predicción de imagen en las realizaciones de esta solicitud con referencia a la FIG.13 y la FIG.14. A continuación se describe el método de predicción de imagen proporcionado en las realizaciones de esta solicitud con referencia a la FIG.15.
[0525] La FIG. 15 es un diagrama de flujo esquemático de un método de predicción bidireccional inter según una realización de esta solicitud. El método de predicción de imagen que se muestra en la FIG.15 puede ser realizado por un aparato de predicción de imagen (el aparato de predicción de imagen puede estar ubicado en un aparato (sistema) de decodificación de imagen o en un aparato (sistema) de codificación de imagen). Específicamente, el método mostrado en la FIG.15 puede ser realizado por el aparato de codificación de imagen o por el aparato de decodificación de imagen. El método que se muestra en la FIG.15 se puede realizar en un lado codificador o en un lado decodificador. El método mostrado en la FIG.15 incluye los pasos 4001 al paso 4007. A continuación se describen por separado estos pasos en detalle.
[0526] 4001: Inicio.
[0527] El paso 4001 indica que comienza la predicción de imagen.
[0528] 4002: Determinar si se usa un modo de fusión para el bloque de imagen actual.
[0529] Para el lado decodificador, en el paso 4002, se puede determinar específicamente si se usa el modo de fusión para el bloque de imagen actual con base en un elemento de sintaxis de nivel CU merge_flag[x0] [y0]. Para un proceso de determinación específico, consulte las descripciones relacionadas a continuación del paso 1003. Cuando se determina en el paso 4002 que el modo de fusión no se usa para el bloque de imagen actual, se puede usar otro modo distinto del modo de fusión para predecir el bloque de imagen actual. Por ejemplo, cuando se determina que el modo de fusión no se usa para el bloque de imagen actual, se puede usar un modo AMVP para predecir el bloque de imagen actual.
[0530] Después de que se determina en el paso 4002 que se usa el modo de fusión para el bloque de imagen actual, se continúa ejecutando el paso 4003, para determinar el modo de fusión objetivo aplicable al bloque de imagen actual. Opcionalmente, el método mostrado en la FIG.15 incluye además: obtener el bloque de imagen actual antes del paso 4002.
[0531] El bloque de imagen actual puede ser un bloque de imagen en una imagen actual a codificar o a decodificar. Debe entenderse que, en esta solicitud, el bloque de imagen actual puede obtenerse en un proceso de determinación de un modo de fusión objetivo del bloque de imagen actual o después de que se determina el modo de fusión objetivo del bloque de imagen actual.
[0532] 4003: Determinar si se usará un modo de fusión de nivel 1.
[0533] Específicamente, si el modo de fusión de nivel 1 está disponible se determina con base en un elemento de sintaxis de capa alta correspondiente al modo de fusión de nivel 1 y/o información de estado disponible correspondiente al modo de fusión de nivel 1.
[0534] Opcionalmente, el modo de fusión de nivel 1 del paso 4003 incluye un modo de fusión regular, un modo MMVD y un modo de fusión de subbloques.
[0535] Cuando se determina si el modo de fusión de nivel 1 está disponible, si estos modos están disponibles se puede determinar secuencialmente en una secuencia del modo de fusión normal, el modo MMVD y el modo de fusión de subbloque. Cuando todos los modos no están disponibles, se determina que el modo de fusión de nivel 1 no está disponible.
[0536] Cuando se determina en el paso 4003 que el modo de fusión de nivel 1 no está disponible, se puede continuar ejecutando el paso 4004 para determinar el modo de fusión objetivo a partir de un modo de fusión de nivel 2. Para el método de predicción de imagen mostrado en la FIG.15, el modo de fusión de nivel 1 y el modo de fusión de nivel 2 pueden incluir todos los modos de fusión opcionales del bloque de imagen actual, y para el bloque de imagen actual, es necesario determinar un modo de fusión objetivo final a partir del modo de fusión de nivel 1 y el modo de fusión de nivel 2.
[0537] Opcionalmente, una prioridad del modo de fusión de nivel 1 es mayor que una prioridad del modo de fusión de nivel 2.
[0538] Que una prioridad del modo de fusión de nivel 1 sea mayor que una prioridad del modo de fusión de nivel 2 significa que en un proceso de determinación del modo de fusión objetivo del bloque de imagen actual, el modo de fusión objetivo se determina preferiblemente a partir del modo de fusión de nivel 1. Si no hay ningún modo de fusión disponible en el modo de fusión de nivel 1, el modo de fusión objetivo se determina a partir del modo de fusión de nivel 2.
[0539] 4004: Determinar si se cumple una condición 1 a una condición 5.
[0540] Las condición 1 a la condición 5 son las siguientes:
[0541] Condición 1: Se permite usar el modo TPM.
[0542] Condición 2: Un tipo de segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es B. Condición 3: La cantidad máxima de candidatos al modo TPM soportados por el segmento o el grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2.
[0543] Condición 4: Un tamaño del bloque de imagen actual cumple una condición preestablecida.
[0544] Condición 5: No se usa un modo de salto para predecir el bloque de imagen actual.
[0545] La condición 1 puede estar representada específicamente por sps_triangle_enabled_flag = 1, la condición 2 puede estar representada específicamente por slice_type == B, y la condición 3 puede estar representada específicamente por MaxNumTriangleMergeCand ≥ 2. MaxNumTriangleMergeCand indica la cantidad máxima de candidatos de modo TPM soportados por el segmento o grupo de segmentos en el que se ubica el bloque de imagen actual.
[0546] Cuando se determina en el paso 4004 que no se cumple alguna de las condiciones 1 a 5, se puede determinar directamente un modo CIIP como el modo de fusión objetivo. En otras palabras, se realiza el paso 4005. Cuando se determina en el paso 4004 que se cumplen las cinco condiciones, es decir, la condición 1 a la condición 5, el modo de fusión objetivo debe determinarse además con base en la información relacionada del modo CIIP. En otras palabras, se realiza el paso 4006.
[0547] 4005: Determinar el modo CIIP como el modo de fusión objetivo cuando se permite usar el modo CIIP.
[0548] En otras palabras, en el paso 4005, cuando se permite usar el modo CIIP y no se cumple ninguna de la condición 1 a la condición 5, el modo CIIP se determina como el modo de fusión objetivo.
[0549] Opcionalmente, cuando no se cumple ninguna de la condición 1 a la condición 5, un valor de información de estado disponible que indica un estado disponible del modo CIIP se establece en un primer valor. Cuando el valor de la información de estado disponible que indica el estado disponible del modo CIIP es el primer valor, el modo CIIP se usa para realizar la predicción de imagen en el bloque de imagen actual.
[0550] Debe entenderse que establecer un valor de información de estado disponible que indica un estado disponible del modo CIIP en un primer valor en este documento es equivalente a determinar el CIIP como el modo de fusión objetivo.
[0551] Opcionalmente, la información de estado disponible que indica el estado disponible del modo CIIP es ciip_flag. Que un valor de información de estado disponible que indica un estado disponible del modo CIIP se establezca en un primer valor puede ser específicamente que ciip_flag se establezca a 1.
[0552] Además, cuando el valor de la información de estado disponible que indica el estado disponible del modo CIIP se establece a un segundo valor, puede significar que el modo CIIP no se usa para realizar la predicción de imagen en el bloque de imagen actual. Por ejemplo, cuando la información de estado disponible que indica el estado
disponible del modo CIIP es ciip_flag y ciip_flag = 0, el modo CIIP no se usa para realizar la predicción de imagen en el bloque de imagen actual.
[0553] 4006: Determinar el modo de fusión objetivo con base en un elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP.
[0554] La información de estado disponible del modo CIIP se usa para indicar si se usa el modo CIIP cuando se predice el bloque de imagen actual.
[0555] En otras palabras, en el paso 4006, cuando se cumplen todas las condiciones desde la condición 1 hasta la condición 5, el modo de fusión objetivo debe determinarse además con base en el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP.
[0556] La información de estado disponible que indica el estado disponible del modo CIIP es un valor de ciip_flag. Cuando ciip_flag es 0, el modo CIIP no está disponible para el bloque de imagen actual. Cuando ciip_flag es 1, se usa el modo CIIP para predecir el bloque de imagen actual.
[0557] Opcionalmente, el modo de fusión objetivo se determina con base en el elemento sintáctico de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP, lo que incluye: cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indican que está prohibido usar el modo CIIP, el modo TPM se determina como el modo de fusión objetivo.
[0558] Que el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indica/indique que está prohibido usar el modo CIIP incluye los casos 1 a 3:
[0559] Caso 1: El elemento de sintaxis de capa alta correspondiente al modo CIIP indica que está prohibido usar el modo CIIP, y la información de estado disponible que indica el estado disponible del modo CIIP indica que el modo CIIP no está disponible.
[0560] Caso 2: El elemento de sintaxis de capa alta correspondiente al modo CIIP indica que está prohibido usar el modo CIIP, y la información de estado disponible que indica el estado disponible del modo CIIP indica que el modo CIIP no está disponible.
[0561] Caso 3: La información de estado disponible que indica el estado disponible del modo CIIP indica que el modo CIIP no está disponible.
[0562] Debe entenderse que, cuando el elemento sintáctico de capa alta correspondiente al modo CIIP indica que se permite el uso del modo CIIP, y la información de estado disponible que indica el estado disponible del modo CIIP indica que el modo CIIP está disponible, el modo CIIP se determina como el modo de fusión objetivo.
[0563] Opcionalmente, cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indica/indique que está prohibido usar el modo CIIP, el modo TPM se determina como el modo de fusión objetivo incluye:
[0564] Cuando el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP indica/indica que está prohibido usar el modo CIIP, un valor de la información de estado disponible que indica un estado disponible del modo TPM se establece en un primer valor, donde cuando el valor de la información de estado disponible que indica el estado disponible del modo TPM es el primer valor, el modo TPM se usa para realizar una predicción de imagen en el bloque de imagen actual.
[0565] Debe entenderse que establecer un valor de información de estado disponible que indica un estado disponible del modo TPM a un primer valor en este documento es equivalente a determinar el TPM como el modo de fusión objetivo.
[0566] Opcionalmente, la información de estado disponible que indica el estado disponible del modo TPM es MergeTriangleFlag.
[0567] Que un valor de información de estado disponible que indica un estado disponible del modo TPM se establezca a un primer valor puede ser específicamente que MergeTriangleFlag se establezca a 1.
[0568] En esta solicitud, el modo de fusión objetivo se puede determinar con base en el elemento de sintaxis de capa alta del modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP solo cuando se cumplen las cinco condiciones preestablecidas. En comparación con una solución convencional, se deben
cumplir más condiciones antes de que el modo de fusión objetivo se determine con más detalle con base en el elemento de sintaxis de capa alta y la información de estado disponible del modo CIIP. En lugar de ello, el modo CIIP puede determinarse directamente como el modo de fusión objetivo. Esto puede reducir algunos procesos redundantes en el proceso de determinación del modo de fusión objetivo.
[0569] Desde otra perspectiva, cuando el modo de fusión de nivel 1 no está disponible, se puede determinar, con base en algunas condiciones preestablecidas, si se selecciona el modo CIIP como el modo de fusión final, y el modo CIIP se puede determinar directamente como el modo de fusión objetivo siempre que no se cumpla alguna de las condiciones preestablecidas. Esto reduce la redundancia generada en el proceso de determinación de la fusión objetivo.
[0570] 4007: Predecir el bloque de imagen actual con base en el modo de fusión objetivo.
[0571] Opcionalmente, antes de determinar el modo de fusión objetivo con base en el elemento de sintaxis de capa alta correspondiente al modo CIIP y/o la información de estado disponible que indica el estado disponible del modo CIIP, el método mostrado en la FIG.15 incluye además:
[0572] determinar que se cumple al menos una de las siguientes condiciones:
[0573] Un tamaño del bloque de imagen actual cumple una condición preestablecida; y
[0574] no se usa un modo de salto para predecir el bloque de imagen actual.
[0575] Opcionalmente, que un tamaño del bloque de imagen actual cumpla una condición preestablecida incluye: el bloque de imagen actual cumple las siguientes tres condiciones:
[0577] y
[0579] cdWidth es la anchura del bloque de imagen actual y cbHeight es la altura del bloque de imagen actual.
[0580] Lo anterior describe en detalle el método de predicción de imagen en las realizaciones de esta aplicación con referencia a los dibujos adjuntos. A continuación se describe un aparato de predicción de imagen en una realización de esta solicitud con referencia a la FIG.16. Se debe entender que el aparato de predicción de imagen mostrado en la FIG.16 puede realizar los pasos del método de predicción de imagen en las realizaciones de esta solicitud. Para evitar repeticiones innecesarias, a continuación se omiten apropiadamente las descripciones repetidas al describir el aparato de predicción de imagen en esta realización de esta solicitud.
[0581] La FIG.16 es un diagrama de bloques esquemático de un aparato de predicción de imagen según una realización de esta solicitud.
[0582] Un aparato 5000 de predicción de imagen mostrado en la FIG.16 incluye una unidad 5001 de determinación y una unidad 5002 de predicción.
[0583] El aparato 5000 de predicción de imagen que se muestra en la FIG. 16 está configurado para realizar el método de predicción de imagen en las realizaciones de esta solicitud. Específicamente, la unidad 5001 de determinación en el aparato 5000 de predicción de imagen puede estar configurada para realizar el proceso de determinación del modo de fusión objetivo en el método de predicción de imagen que se muestra en las FIG.13 a FIG.15. La unidad 5002 de predicción en el aparato 5000 de predicción de imagen está configurada para realizar el proceso de realizar la predicción de imagen en el bloque de imagen actual con base en el modo de fusión objetivo en el método de predicción de imagen que se muestra en las FIG.13 a FIG.15.
[0584] La FIG.17 es un diagrama esquemático de una estructura hardware de un aparato de predicción de imagen según una realización de esta solicitud. Un aparato 6000 de predicción de imagen mostrado en la FIG. 17 (el aparato 6000 puede ser específicamente un dispositivo informático) incluye una memoria 6001, un procesador 6002, una interfaz 6003 de comunicaciones y un bus 6004. Las conexiones de comunicación entre la memoria 6001, el procesador 6002 y la interfaz 6003 de comunicaciones se implementan a través del bus 6004.
[0585] La memoria 6001 puede ser una memoria de sólo lectura (ROM), un dispositivo de almacenamiento estático, un dispositivo de almacenamiento dinámico o una memoria de acceso aleatorio (RAM). La memoria 6001 almacena
un programa. Cuando el programa almacenado en la memoria 6001 es ejecutado por el procesador 6002, el procesador 6002 está configurado para realizar los pasos del método de predicción de imagen en las realizaciones de esta solicitud.
[0586] El procesador 6002 puede usar una unidad central de procesamiento (CPU) de uso general, un microprocesador, un circuito integrado específico de aplicación (ASIC), una unidad de procesamiento de gráficos (GPU) o uno o varios circuitos integrados, y está configurado para ejecutar un programa relacionado, con el fin de implementar el método de detección de imagen en las realizaciones del método de esta solicitud.
[0587] El procesador 6002 puede ser un chip de circuito integrado y tiene capacidad de procesamiento de señales. En un proceso de implementación, los pasos del método de predicción de imagen en esta solicitud pueden completarse usando un circuito lógico integrado de hardware o una instrucción en forma de software en el procesador 6002.
[0588] El procesador 6002 puede ser un procesador de propósito general, un procesador de señales digitales (DSP), un circuito integrado de aplicación específica (ASIC), una matriz de puertas programable en campo (FPGA) u otro dispositivo lógico programable, una puerta discreta o un dispositivo lógico de transistor, o un componente de hardware discreto. El procesador 602 puede implementar o realizar los métodos, los pasos, y los diagramas de bloques lógicos que se describen en las realizaciones de esta solicitud. El procesador de propósito general puede ser un microprocesador, o el procesador puede ser cualquier procesador convencional o similar. Los pasos de los métodos descritos con referencia a las realizaciones de esta solicitud pueden ser ejecutadas y completadas directamente mediante un procesador de decodificación de hardware, o pueden ser realizadas y completadas mediante una combinación de módulos de hardware y software en el procesador de decodificación. Un módulo de software puede ubicarse en un medio de almacenamiento antiguo en la técnica, tal como una memoria de acceso aleatorio, una memoria flash, una memoria de solo lectura, una memoria de solo lectura programable, una memoria programable borrable eléctricamente o un registro. El medio de almacenamiento se ubica en la memoria 6001. El procesador 6002 lee información en la memoria 6001 y completa, en combinación con el hardware del procesador 6002, funciones que necesitan ser realizadas por unidades incluidas en el aparato de predicción de imagen, o realiza el método de predicción de imagen en las realizaciones del método de esta solicitud.
[0589] La interfaz 6003 de comunicaciones usa un aparato transceptor, por ejemplo, pero no limitado a, un transceptor, para implementar la comunicación entre el aparato 6000 y otro dispositivo o una red de comunicaciones. Por ejemplo, la información sobre una red neuronal a construir y los datos de entrenamiento necesarios en un proceso de construcción de red neuronal se pueden obtener a través de la interfaz 6003 de comunicaciones.
[0590] El bus 6004 puede incluir una ruta para transmitir información entre componentes (por ejemplo, la memoria 6001, el procesador 6002 y la interfaz 6003 de comunicaciones) del aparato 6000.
[0591] La unidad 5001 de determinación y la unidad 5002 de predicción en el aparato 5000 de predicción de imagen son equivalentes al procesador 6002 en el aparato 6000 de predicción de imagen.
[0592] La FIG.18 es un diagrama esquemático de una estructura de hardware de un aparato de codificación/decodificac ión de imagen según una realización de esta solicitud. Un aparato 7000 de codificación/decodificación de imagen mostrado en la FIG.18 (el aparato 7000 puede ser específicamente un dispositivo informático) incluye una mem oria 7001, un procesador 7002, una interfaz 7003 de comunicaciones y un bus 7004. Las conexiones de comunic ación entre la memoria 7001, el procesador 7002 y la interfaz 7003 de comunicaciones se implementan a través d el bus 7004.
[0593] Las limitaciones y explicaciones anteriores de los módulos en el aparato 6000 de predicción de imagen también son aplicables al aparato 7000 de codificación/decodificación de imagen, y no se describen detalles nuevamente en este documento.
[0594] La memoria 7001 puede configurarse para almacenar un programa. El procesador 7002 está configurado para ejecutar el programa almacenado en la memoria 7001. Cuando el programa almacenado en la memoria 7001 es ejecutado, el procesador 7002 se configura para realizar los pasos del método de predicción de imagen en las realizaciones de esta solicitud.
[0595] Además, al codificar una imagen de vídeo, el aparato 7000 de codificación/decodificación de imagen puede obtener la imagen de vídeo a través de la interfaz de comunicaciones y luego codificar la imagen de vídeo obtenida para obtener datos de vídeo codificados. Los datos de vídeo codificados pueden transmitirse a un dispositivo de decodificación de vídeo a través de la interfaz 7003 de comunicaciones.
[0596] Al decodificar una imagen de video, el aparato 7000 de codificación/decodificación de imagen puede obtener la imagen de video a través de la interfaz de comunicación y luego decodificar la imagen de video obtenida para obtener una imagen de video a ser visualizada.
[0597] Un experto en la técnica puede ser consciente de que, en combinación con los ejemplos descritos en las realizaciones descritas en esta especificación, las unidades y pasos de algoritmo se pueden implementar por hardware electrónico o una combinación de software informático y hardware electrónico. Si las funciones se realizan mediante hardware o software depende de aplicaciones particulares y condiciones de restricción de diseño de las soluciones técnicas. Un experto en la técnica puede usar diferentes métodos para implementar las funciones descritas para cada aplicación particular, pero no debe considerarse que la implementación va más allá del alcance de esta solicitud.
[0598] Los expertos en la técnica pueden entender claramente que, con el propósito de una descripción conveniente y breve, para un proceso de trabajo detallado del sistema, aparato y unidades anteriores, se hace referencia a un proceso correspondiente en las realizaciones del método anterior, y los detalles no se describen de nuevo en este documento.
[0599] En las varias realizaciones proporcionadas en esta solicitud, se debería entender que el sistema, aparato y método descritos se pueden implementar de otras maneras. Por ejemplo, la realización del aparato descrita es simplemente un ejemplo. Por ejemplo, la división en unidades es simplemente una división en funciones lógicas y puede ser otra división en una implementación real. Por ejemplo, una pluralidad de unidades o componentes pueden combinarse o integrarse en otro sistema, o algunas características pueden ignorarse o no realizarse. Además, los acoplamientos mutuos o acoplamientos directos o conexiones de comunicación mostrados o discutidos, pueden implementarse a través de algunas interfaces. Los acoplamientos o conexiones de comunicación indirectos entre los aparatos o unidades se pueden implementar de forma electrónica, de forma mecánica u otra forma.
[0600] Las unidades descritas como partes separadas pueden o no estar físicamente separadas, y las partes visualizadas como unidades pueden o no ser unidades físicas, pueden estar ubicadas en una posición, o pueden estar distribuidas en una pluralidad de unidades de red. Algunas o todas las unidades pueden seleccionarse con base en un requisito real para lograr los objetivos de las soluciones de las realizaciones.
[0601] Además, las unidades funcionales en las realizaciones de esta solicitud se pueden integrar en una unidad de procesamiento, o cada una de las unidades puede existir sola físicamente, o dos o más unidades se integran en una unidad.
[0602] Cuando las funciones se implementan en una forma de una unidad funcional de software y se venden o se usan como un producto independiente, las funciones se pueden almacenar en un medio de almacenamiento legible por ordenador. Basado en dicho entendimiento, las soluciones técnicas de esta solicitud esencialmente, o la parte que contribuye a la técnica anterior, o algunas de las soluciones técnicas, pueden implementarse en una forma de un producto de software. El producto de software se almacena en un soporte de almacenamiento e incluye varias instrucciones para dar instrucciones a un dispositivo informático (que puede ser un ordenador personal, un servidor o un dispositivo de red) para realizar todos o algunos de los pasos de los métodos descritos en las realizaciones de esta solicitud. El medio de almacenamiento anterior incluye: cualquier medio que pueda almacenar código de programa, como una unidad flash USB, un disco duro extraíble, una memoria de solo lectura (ROM), una memoria de acceso aleatorio (RAM), un disco magnético o un disco óptico.
[0603] Las descripciones anteriores son, simplemente, implementaciones específicas de esta solicitud, pero no pretenden limitar el alcance de protección de esta solicitud. Por lo tanto, el alcance de protección de esta solicitud estará sujeto al alcance de protección de las reivindicaciones.
Claims (7)
1. REIVINDICACIONES
1. Un método de visualización, en donde el método comprende:
determinar (1002) si se usa un modo de fusión para el bloque de imagen actual;
cuando se determina que se usa un modo de fusión para el bloque de imagen actual, determinar (1003) si hay un tercer modo de fusión disponible como modo de fusión objetivo aplicable al bloque de imagen actual; y cuando se determina que no hay ningún tercer modo de fusión disponible como modo de fusión objetivo aplicable al bloque de imagen actual, y un primer elemento de sintaxis de nivel de secuencia correspondiente a un primer modo de fusión indica que está prohibido usar el primer modo de fusión, determinar (1006) un segundo modo de fusión como el modo de fusión objetivo aplicable al bloque de imagen actual; y
predecir (1008) el bloque de imagen actual con base en el modo de fusión objetivo;
en donde
el primer modo de fusión es un modo de partición de triángulo, TPM, que divide el bloque de imagen actual en dos unidades de predicción de triángulo,
el segundo modo de fusión es un modo de intrapredicción e interpredicción combinado, CIIP, y
el tercer modo de fusión incluye un modo de fusión normal, una fusión con diferencia de vector de movimiento, modo MMVD, y un modo de fusión de subbloque.
2. El método según la reivindicación 1, en donde el método comprende además:
cuando se determina que no hay un tercer modo de fusión disponible como modo de fusión objetivo aplicable al bloque de imagen actual, y el primer elemento de sintaxis de nivel de secuencia correspondiente al primer modo de fusión indica que se permite usar el primer modo de fusión, determinar (1007) el modo de fusión objetivo con base en un segundo elemento de sintaxis de nivel de secuencia correspondiente al segundo modo de fusión y/o la información de estado disponible del segundo modo de fusión, en donde la información de estado disponible del segundo modo de fusión se usa para indicar si se usa el segundo modo de fusión al predecir el bloque de imagen actual, en donde la información de estado disponible del segundo modo de fusión es un valor de un indicador ciip_flag.
3. El método según la reivindicación 2, en donde la determinación del modo de fusión objetivo con base en un segundo elemento de sintaxis de nivel de secuencia correspondiente al segundo modo de fusión y/o la información de estado disponible del segundo modo de fusión comprende:
cuando se determina que el segundo elemento de sintaxis de nivel de secuencia correspondiente al segundo modo de fusión y/o la información de estado disponible del segundo modo de fusión indica/indique que está prohibido usar el segundo modo de fusión, determinar el primer modo de fusión como el modo de fusión objetivo.
4. El método según cualquiera de las reivindicaciones 1 a 3, en donde antes de determinar el modo de fusión objetivo con base en un segundo elemento de sintaxis de secuencia correspondiente al segundo modo de fusión y/o la información de estado disponible del segundo modo de fusión, el método comprende además: determinar que un tipo de segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es B; y
determinar que una cantidad máxima de los primeros candidatos al modo de fusión soportados por el segmento o grupo de segmentos en el que se ubica el bloque de imagen actual es mayor o igual a 2.
5. El método según la reivindicación 1, el método comprende además:
cuando se determina que no hay un tercer modo de fusión disponible como modo de fusión objetivo aplicable al bloque de imagen actual, y el primer elemento de sintaxis a nivel de secuencia correspondiente al primer modo de fusión indica que se permite el uso del primer modo de fusión, pero el bloque de imagen actual no cumple al menos una de una condición A y una condición B, determinar el segundo modo de fusión como modo de fusión objetivo, en donde la condición A es que un tipo de segmento en el que se ubica el bloque de imagen actual sea B, y la condición B es que una cantidad máxima de candidatos al primer modo A de fusión soportados por el segmento o grupo de segmentos en el que se ubica el bloque de imagen actual sea mayor o igual a 2.
6. Un aparato (6000) de predicción de imagen, en donde el aparato comprende:
una memoria (6001), configurada para almacenar un programa; y
un procesador (6002), configurado para ejecutar el programa almacenado en la memoria (6001), en donde cuando el programa almacenado en la memoria (6001) es ejecutado por el procesador (6002), el procesador (6002) realiza el método según cualquiera de las reivindicaciones 1 a 5.
7. Un medio de almacenamiento legible por ordenador, en donde el medio de almacenamiento legible por ordenador almacena un programa informático que puede ser ejecutado por un procesador, y cuando el programa es ejecutado por el procesador, el procesador realiza el método según cualquiera de las reivindicaciones 1 a 5.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910341218 | 2019-04-25 | ||
| CN201910474007.XA CN111866502B (zh) | 2019-04-25 | 2019-06-02 | 图像预测方法、装置和计算机可读存储介质 |
| PCT/CN2020/086418 WO2020216294A1 (zh) | 2019-04-25 | 2020-04-23 | 图像预测方法、装置和计算机可读存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3053016T3 true ES3053016T3 (en) | 2026-01-16 |
Family
ID=72940826
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20795740T Active ES3053016T3 (en) | 2019-04-25 | 2020-04-23 | Image prediction method and apparatus, and computer-readable storage medium |
Country Status (12)
| Country | Link |
|---|---|
| US (2) | US12010293B2 (es) |
| EP (2) | EP4618535A3 (es) |
| JP (2) | JP7637633B2 (es) |
| KR (2) | KR20250086800A (es) |
| CN (2) | CN119420900A (es) |
| AU (1) | AU2024201357B2 (es) |
| BR (1) | BR112021021226A2 (es) |
| ES (1) | ES3053016T3 (es) |
| MX (2) | MX2021012996A (es) |
| PL (1) | PL3955569T3 (es) |
| SG (1) | SG11202111818UA (es) |
| WO (1) | WO2020216294A1 (es) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119420900A (zh) * | 2019-04-25 | 2025-02-11 | 华为技术有限公司 | 图像预测方法、装置和计算机可读存储介质 |
| US11109041B2 (en) * | 2019-05-16 | 2021-08-31 | Tencent America LLC | Method and apparatus for video coding |
| KR102857618B1 (ko) * | 2019-06-19 | 2025-09-09 | 엘지전자 주식회사 | 결정된 예측 모드를 적용하여 예측 샘플들을 생성하는 영상 디코딩 방법 및 그 장치 |
| EP4179728A4 (en) * | 2021-06-23 | 2023-12-27 | Zhejiang Dahua Technology Co., Ltd. | SYSTEMS AND METHODS FOR IMAGE PREDICTION |
| US20230059035A1 (en) * | 2021-08-23 | 2023-02-23 | Netflix, Inc. | Efficient encoding of film grain noise |
Family Cites Families (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE19946267C2 (de) * | 1999-09-27 | 2002-09-26 | Harman Becker Automotive Sys | Digitales Transcodiersystem |
| WO2012097376A1 (en) * | 2011-01-14 | 2012-07-19 | General Instrument Corporation | Spatial block merge mode |
| US9866859B2 (en) | 2011-06-14 | 2018-01-09 | Texas Instruments Incorporated | Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding |
| US9648334B2 (en) | 2011-03-21 | 2017-05-09 | Qualcomm Incorporated | Bi-predictive merge mode based on uni-predictive neighbors in video coding |
| US9131239B2 (en) | 2011-06-20 | 2015-09-08 | Qualcomm Incorporated | Unified merge mode and adaptive motion vector prediction mode candidates selection |
| CN105376576B (zh) * | 2011-08-29 | 2017-07-28 | 苗太平洋控股有限公司 | 用于解码合并模式下的运动信息的装置 |
| JP2013236358A (ja) | 2012-03-14 | 2013-11-21 | Sharp Corp | 画像フィルタ装置、画像復号装置、画像符号化装置、およびデータ構造 |
| US9918105B2 (en) | 2014-10-07 | 2018-03-13 | Qualcomm Incorporated | Intra BC and inter unification |
| US20180115787A1 (en) | 2015-04-12 | 2018-04-26 | Lg Electronics Inc. | Method for encoding and decoding video signal, and apparatus therefor |
| CN106303534B (zh) * | 2015-06-08 | 2022-05-31 | 上海天荷电子信息有限公司 | 多种索引串与像素串融合复制方式的图像压缩方法和装置 |
| WO2017082670A1 (ko) * | 2015-11-12 | 2017-05-18 | 엘지전자 주식회사 | 영상 코딩 시스템에서 계수 유도 인트라 예측 방법 및 장치 |
| CN108293131B (zh) | 2015-11-20 | 2021-08-31 | 联发科技股份有限公司 | 基于优先级运动矢量预测子推导的方法及装置 |
| JP6921870B2 (ja) * | 2016-05-24 | 2021-08-18 | エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute | 画像復号方法、画像符号化方法及び記録媒体 |
| WO2018028615A1 (en) * | 2016-08-12 | 2018-02-15 | Mediatek Inc. | Methods and apparatuses of predictor-based partition in video processing system |
| WO2018064967A1 (en) * | 2016-10-07 | 2018-04-12 | Mediatek Inc. | Video encoding method and apparatus with syntax element signaling of employed projection layout and associated video decoding method and apparatus |
| CN109587479B (zh) | 2017-09-29 | 2023-11-10 | 华为技术有限公司 | 视频图像的帧间预测方法、装置及编解码器 |
| CN113330739B (zh) * | 2019-01-16 | 2025-01-10 | 北京字节跳动网络技术有限公司 | Lut中的运动候选的插入顺序 |
| JP7277590B2 (ja) * | 2019-01-18 | 2023-05-19 | ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド | モーション補償を用いたビデオ信号処理方法及び装置 |
| US10742972B1 (en) | 2019-03-08 | 2020-08-11 | Tencent America LLC | Merge list construction in triangular prediction |
| GB2582929A (en) * | 2019-04-08 | 2020-10-14 | Canon Kk | Residual signalling |
| CN111866502B (zh) | 2019-04-25 | 2024-10-11 | 华为技术有限公司 | 图像预测方法、装置和计算机可读存储介质 |
| CN119420900A (zh) * | 2019-04-25 | 2025-02-11 | 华为技术有限公司 | 图像预测方法、装置和计算机可读存储介质 |
| CN111866515B (zh) * | 2019-04-30 | 2022-03-04 | 杭州海康威视数字技术股份有限公司 | 一种矢量差解码方法、装置及电子设备 |
| CN111953997B (zh) * | 2019-05-15 | 2024-08-09 | 华为技术有限公司 | 候选运动矢量列表获取方法、装置及编解码器 |
| US11109041B2 (en) * | 2019-05-16 | 2021-08-31 | Tencent America LLC | Method and apparatus for video coding |
| WO2021056219A1 (zh) * | 2019-09-24 | 2021-04-01 | 北京大学 | 视频编解码的方法和装置 |
| EP4409882A4 (en) * | 2021-09-29 | 2025-08-20 | Alibaba Damo Hangzhou Tech Co Ltd | ENHANCED TEMPORAL MERGE CANDIDATES IN MERGE CANDIDATE LISTS IN VIDEO CODING |
-
2019
- 2019-06-02 CN CN202411388701.7A patent/CN119420900A/zh active Pending
- 2019-06-02 CN CN202411395280.0A patent/CN119420901A/zh active Pending
-
2020
- 2020-04-23 WO PCT/CN2020/086418 patent/WO2020216294A1/zh not_active Ceased
- 2020-04-23 ES ES20795740T patent/ES3053016T3/es active Active
- 2020-04-23 PL PL20795740.8T patent/PL3955569T3/pl unknown
- 2020-04-23 KR KR1020257018345A patent/KR20250086800A/ko active Pending
- 2020-04-23 EP EP25186970.7A patent/EP4618535A3/en active Pending
- 2020-04-23 EP EP20795740.8A patent/EP3955569B1/en active Active
- 2020-04-23 BR BR112021021226A patent/BR112021021226A2/pt unknown
- 2020-04-23 JP JP2021563353A patent/JP7637633B2/ja active Active
- 2020-04-23 MX MX2021012996A patent/MX2021012996A/es unknown
- 2020-04-23 SG SG11202111818UA patent/SG11202111818UA/en unknown
- 2020-04-23 KR KR1020217038532A patent/KR102817818B1/ko active Active
-
2021
- 2021-10-22 MX MX2024002743A patent/MX2024002743A/es unknown
- 2021-10-22 US US17/451,992 patent/US12010293B2/en active Active
-
2023
- 2023-10-12 JP JP2023176755A patent/JP2023179684A/ja active Pending
-
2024
- 2024-02-29 AU AU2024201357A patent/AU2024201357B2/en active Active
- 2024-04-29 US US18/649,543 patent/US12531975B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US12010293B2 (en) | 2024-06-11 |
| WO2020216294A1 (zh) | 2020-10-29 |
| US12531975B2 (en) | 2026-01-20 |
| CN119420900A (zh) | 2025-02-11 |
| AU2024201357B2 (en) | 2024-11-14 |
| KR20250086800A (ko) | 2025-06-13 |
| MX2024002743A (es) | 2024-03-22 |
| MX2021012996A (es) | 2022-01-26 |
| PL3955569T3 (pl) | 2025-12-22 |
| JP7637633B2 (ja) | 2025-02-28 |
| CN119420901A (zh) | 2025-02-11 |
| AU2024201357A1 (en) | 2024-03-21 |
| US20220046234A1 (en) | 2022-02-10 |
| EP4618535A2 (en) | 2025-09-17 |
| KR102817818B1 (ko) | 2025-06-05 |
| BR112021021226A2 (pt) | 2021-12-21 |
| SG11202111818UA (en) | 2021-11-29 |
| US20240291965A1 (en) | 2024-08-29 |
| EP3955569A1 (en) | 2022-02-16 |
| EP4618535A3 (en) | 2025-12-24 |
| EP3955569B1 (en) | 2025-08-27 |
| EP3955569A4 (en) | 2022-07-27 |
| KR20220003021A (ko) | 2022-01-07 |
| JP2022530883A (ja) | 2022-07-04 |
| JP2023179684A (ja) | 2023-12-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2989421T3 (es) | Un codificador, un decodificador y métodos correspondientes para la intrapredicción | |
| ES3010207T3 (en) | Inter-frame prediction method and device | |
| ES3053016T3 (en) | Image prediction method and apparatus, and computer-readable storage medium | |
| ES2974237T3 (es) | Método y aparato de predicción de imágenes de vídeo | |
| ES2965276T3 (es) | Método de decodificación de vídeo y decodificador de vídeo | |
| ES2992659T3 (en) | Method and apparatus for prediction refinement with optical flow for an affine coded block | |
| CN112235580B (zh) | 图像编码方法、解码方法、装置和存储介质 | |
| ES2978268T3 (es) | Método y aparato de codificación y decodificación de imágenes de video | |
| JP7410191B2 (ja) | ビデオエンコーダ、ビデオデコーダ、及び対応する方法 | |
| AU2020261145B2 (en) | Picture prediction method and apparatus, and computer-readable storage medium | |
| CN111107373A (zh) | 基于仿射预测模式的帧间预测的方法及相关装置 | |
| ES2998959T3 (en) | Inter-frame prediction method and device | |
| CN112235568B (zh) | 图像编码方法、解码方法、装置和存储介质 | |
| ES3038385T3 (en) | Video coder, video decoder, and corresponding method | |
| RU2810126C2 (ru) | Способ и устройство прогнозирования изображений и считываемый компьютером носитель данных | |
| CN111355961A (zh) | 一种帧间预测的方法和装置 | |
| BR122024008318A2 (pt) | Método e aparelho de predição de imagem, e mídia de armazenamento legível por computador | |
| BR112021007865B1 (pt) | Método e aparelho de predição de imagem |