ES3030286T3 - Image encoding/decoding method and apparatus using maximum transform size setting for chroma block, and method for transmitting bitstream - Google Patents
Image encoding/decoding method and apparatus using maximum transform size setting for chroma block, and method for transmitting bitstreamInfo
- Publication number
- ES3030286T3 ES3030286T3 ES20833095T ES20833095T ES3030286T3 ES 3030286 T3 ES3030286 T3 ES 3030286T3 ES 20833095 T ES20833095 T ES 20833095T ES 20833095 T ES20833095 T ES 20833095T ES 3030286 T3 ES3030286 T3 ES 3030286T3
- Authority
- ES
- Spain
- Prior art keywords
- block
- prediction
- transform
- current
- current block
- 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
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- 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/136—Incoming video signal characteristics or properties
-
- 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/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/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/186—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 a colour or a chrominance component
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Se proporciona un método y un aparato de codificación/decodificación de imágenes. Un método de decodificación de imágenes, realizado por un aparato de decodificación de imágenes, según la presente divulgación, puede comprender los siguientes pasos: dividir una imagen para obtener el bloque actual; determinar un modo de predicción del bloque actual; si el modo de predicción del bloque actual es un modo de intrapredicción, generar un bloque de intrapredicción para el bloque actual; generar un bloque residual del bloque actual; y reconstruir el bloque actual a partir del bloque de predicción y del bloque residual. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Procedimiento y aparato de codificación/decodificación de imágenes que utiliza configuración de tamaño de transformada máximo para bloque de croma, y procedimiento para transmitir flujo de bits
Campo técnico
La presente descripción se refiere a un procedimiento y aparato de codificación/decodificación de imágenes, y, más en particular, a un procedimiento y aparato para codificar/decodificar una imagen estableciendo un tamaño máximo de un bloque de transformada utilizado para un bloque de croma, y a un procedimiento de transmisión de un flujo de bits generado por el procedimiento/aparato de codificación de imágenes de la presente descripción.
Antecedentes de la técnica
En los últimos tiempos ha tenido lugar en diversos campos una demanda creciente de imágenes de alta resolución y de alta calidad como imágenes de alta definición (HD) e imágenes de definición ultraalta (UHD). A medida que mejora la resolución y los datos de calidad de las imágenes, la cantidad de información o bits transmitidos aumenta relativamente en comparación con los datos de imágenes existentes. El aumento en la cantidad de información o bits transmitidos provoca un aumento en el coste de transmisión y en el coste de almacenamiento.
Por consiguiente, existe una necesidad de una tecnología de compresión de imágenes de alta eficiencia para transmitir, almacenar y reproducir de manera eficaz la información en imágenes de alta resolución y alta calidad.
Los siguientes documentos de la técnica anterior describen la determinación de un tamaño de un bloque de transformada dependiente de un componente de color del bloque: JIANLE CHEN ET AL.: "Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5)", 14. JVET MEETING; 20190319 - 20190327; GINEBRA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), n.2 JVET-N1002 11 junio 2019 (11 -06-2019), páginas 1 -76, US 9854241 B2 (ROSEWARNE CHRISTOPHER JAMES [AU]; KOLESNIKOV VOLODYMYR [AU] ET AL.) 26 diciembre 2017 (26-12-2017) y el documento US 2015/373332 A1 (KIM JUNGSUN [KR] ET AL.) 24 diciembre 2015 (24-12-2015).
En la presentación “Versatile Video Coding (Draft 5)", Joint Video Experts Team (JVET) de ITU-T SG 16 WP 3 y ISO/IEC JTC 1/SC 29/WG 11, 14a Reunión: Ginebra, CH, 19-27 de marzo de 2019, publicado como documento JVET-N1001-v8, Benjamin Bross et al. Describe cómo derivar un tamaño de bloque de transformada máximo en un proceso de decodificación para intrabloques. Específicamente, el tamaño máximo del bloque de transformada se deriva dependiendo del componente de color del bloque actual sin distinción de anchura y altura. Sin embargo, esto causa varios problemas en el procesamiento de canalizaciones (pipelines), que se describirán en detalle a continuación.
Descripción
La invención se expone en las reivindicaciones adjuntas.
Descripción de los dibujos
La FIG. 1 es una vista que ilustra esquemáticamente un sistema de codificación de vídeo, al que se puede aplicar una realización de la presente descripción.
La FIG. 2 es una vista que muestra esquemáticamente un aparato de codificación de imágenes, al que es aplicable una realización de la presente descripción.
La FIG. 3 es una vista que muestra esquemáticamente un aparato de decodificación de imágenes, al que es aplicable una realización de la presente descripción.
La FIG. 4 es una vista que muestra una estructura de división de una imagen según una realización. La FIG. 5 es una vista que muestra una realización de un tipo de división de un bloque según una estructura de árbol multitipo.
La FIG. 6 es una vista que muestra un mecanismo de señalización de información de división de bloques en un árbol cuaternario con estructura multiárbol anidada según la presente descripción.
La FIG. 7 es una vista que muestra una realización en la que una CTU se divide en múltiples CU.
La FIG. 8 es una vista que ilustra una realización de un patrón de división redundante.
La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de vídeo basado en interpredicción/codificación de imágenes.
La FIG. 10 es una vista que ilustra la configuración de una unidad 180 de interpredicción según la presente descripción.
La FIG. 11 es un diagrama de flujo que ilustra un procedimiento de vídeo basado en intrapredicción/codificación de imágenes.
La FIG. 12 es una vista que ilustra la configuración de una unidad 260 de interpredicción según la presente descripción.
La FIG. 13 es una vista que ilustra bloques vecinos disponibles como un candidato de fusión espacial según una realización.
La FIG. 14 es una vista que ilustra esquemáticamente un procedimiento de construcción de listas de candidatos a fusión según una realización.
La FIG. 15 es una vista que ilustra esquemáticamente un procedimiento de construcción de listas de candidatos a predictor de vector de movimiento según una realización.
La FIG. 16 es una vista que ilustra una estructura sintáctica para transmitir MVD desde un aparato de codificación de imágenes a un aparato de decodificación de imágenes según una realización.
La FIG. 17 es un diagrama de flujo que ilustra un procedimiento de codificación de vídeo/imagen basado en IBC según una realización.
La FIG. 18 es una vista que ilustra la configuración de una unidad de predicción para realizar un procedimiento de codificación de vídeo/imagen basado en IBC según una realización.
La FIG. 19 es un diagrama de flujo que ilustra un procedimiento de decodificación de vídeo/imagen basado en IBC según una realización.
La FIG. 20 es una vista que ilustra una configuración de una unidad de predicción para realizar un procedimiento de decodificación de vídeo/imagen basado en IBC según una realización.
La FIG. 21 es una vista que ilustra la sintaxis para señalización de formato de crominancia según una realización.
La FIG. 22 es una vista que ilustra una tabla de clasificación de formato de crominancia según una realización.
La FIG. 23 es una vista que ilustra un ejemplo de limitación de división de una CU para procesamiento de canalización virtual.
Las FIGS. 24 a 26 son vistas que ilustran un ejemplo de división de una CU y una TU según una realización. Las FIGS. 27 y 28 son diagramas de flujo que ilustran la predicción de IBC y la intrapredicción a las que se aplica un tamaño de transformada máximo según una realización.
La FIG. 29 es un diagrama de flujo que ilustra un procedimiento para codificar una imagen por un aparato de codificación según una realización.
La FIG. 30 es un diagrama de flujo que ilustra un procedimiento de decodificación de una imagen por un aparato de decodificación según una realización.
La FIG. 31 es una vista que muestra un sistema de transmisión continua de contenidos, al que es aplicable una realización de la presente descripción.
Modo para la invención
A continuación, las realizaciones de la presente descripción se describirán en detalle con referencia a los dibujos adjuntos de manera que los expertos en la materia puedan implementarlas fácilmente. Sin embargo, la presente descripción se puede implementar en diversas formas diferentes, y no se limita a las realizaciones descritas en la presente memoria.
Al describir la presente descripción, si se determina que la descripción detallada de una función o construcción conocida relacionada convierte el alcance de la presente descripción en innecesariamente ambiguo, se omitirá la descripción detallada de la misma. En los dibujos, las partes no relacionadas con la exposición de la presente descripción se omiten, y se asignan números de referencia similares a partes similares.
En la presente descripción, cuando un componente está "conectado", "acoplado" o "vinculado" con otro componente, esto puede incluir no solo una relación de conexión directa sino también una relación de conexión indirecta en la que está presente un componente que interviene. Además, cuando un componente "incluye" o "tiene" otros componentes, significa que pueden incluirse además otros componentes, en lugar de excluir otros componentes salvo que se indique lo contrario.
En la presente descripción, los términos primero, segundo, etc., se pueden utilizar solo para el fin de distinguir un componente de otros componentes, y no limitan el orden o la importancia de los componentes salvo que se indique lo contrario. Por consiguiente, dentro del alcance de la presente descripción, un primer componente en una realización puede referirse como un segundo componente en otra realización, y de forma análoga, un segundo componente en una realización puede referirse como un primer componente en otra realización.
En la presente descripción, componentes que se distinguen unos de otros pretenden describir claramente cada característica, y no significa que los componentes estén necesariamente separados. Es decir, una pluralidad de componentes puede integrarse e implementarse en una unidad de hardware o software, o un componente puede estar distribuido e implementado en una pluralidad de unidades de hardware o software. Por lo tanto, incluso si no se indica lo contrario, dichas realizaciones en que los componentes están integrados o el componente está distribuido están también incluidas dentro del alcance de la presente descripción.
En la presente descripción, los componentes descritos en diversas realizaciones no se entienden necesariamente como componentes esenciales, y algunos componentes pueden ser componentes opcionales. Por consiguiente, una realización que consista en un subconjunto de componentes descritos en una realización también está incluida dentro del alcance de la presente descripción. Asimismo, realizaciones que incluyen otros componentes además de componentes descritos en las diversas realizaciones están incluidas dentro del alcance de la presente descripción.
La presente descripción se refiere a codificación y decodificación de una imagen, y términos utilizados en la presente descripción pueden tener un significado general utilizado comúnmente en el campo técnico, al que pertenece la presente descripción, salvo que se defina de nuevo en la presente descripción.
En la presente descripción, una "imagen" se refiere en general a una unidad que representa una imagen en un periodo de tiempo específico, y un fragmento/mosaico es una unidad de codificación que constituye una parte de una imagen, y una imagen puede estar compuesta por uno o más fragmentos/mosaicos. Además, un fragmento/mosaico puede incluir una o más unidades de árboles de codificación (CTU).
En la presente descripción, un "píxel" o "pel" puede significar la mínima unidad que constituye una imagen. Además, "muestra" se puede utilizar como un término que corresponde a un píxel. Una muestra puede representar en general un píxel o un valor de un píxel, y puede representar solo un píxel/valor de píxel de un componente de luma o solo un píxel/valor de píxel de un componente de croma.
En la presente descripción, una "unidad" puede representar una unidad básica de procesamiento de imágenes. La unidad puede incluir al menos una de una región específica de la imagen e información relacionada con la región. La unidad se puede utilizar indistintamente con términos como "matriz de muestras", "bloque" o "área" en algunos casos. En un caso general, un bloque MxN puede incluir muestras (o matrices de muestras) o un conjunto (o matriz) de coeficientes de transformada de M columnas y N filas.
En la presente descripción, "bloque actual" puede significar uno entre "bloque de codificación actual", "unidad de codificación actual", "bloque diana de codificación", "bloque diana de decodificación" o "bloque diana de procesamiento". Cuando se realiza predicción, "bloque actual" puede significar "bloque de predicción actual" o "bloque diana de predicción". Cuando se realiza transformada (transformada inversa)/cuantificación (descuantificación), "bloque actual" puede significar "bloque de transformada actual" o "bloque diana de transformada". Cuando se realiza filtrado, "bloque actual" puede significar "bloque diana de filtrado".
Además, en la presente descripción, un "bloque actual" puede significar "un bloque de luma de un bloque actual" a menos que se indique explícitamente como un bloque de croma. El "bloque de croma del bloque actual" puede expresarse incluyendo una descripción explícita de un bloque de croma, como "bloque de croma" o "bloque de croma actual".
En la presente descripción, los términos "/" y “,” deben interpretarse como indicativo de "y/o”. Por ejemplo, la expresión "A/B" y "A, B" puede significar "A y/o B”. Además, "A/B/C" y "A/B/C" puede significar "al menos uno de A, B y/o C”.
En la presente descripción, el término "o" debe interpretarse como indicativo de "y/o”. Por ejemplo, la expresión "A o B" puede comprender 1) solo "A", 2) solo "B", y/o 3) ambos "A y B". En otras palabras, en la presente descripción, el término "o" debe interpretarse como indicativo de "adicional o alternativamente”.
Visión general de sistema de codificación de vídeo
La FIG. 1 es una vista que muestra un sistema de codificación de vídeo según la presente descripción.
El sistema de codificación de vídeo según una realización puede incluir un aparato 10 de codificación y un aparato 20 de decodificación. El aparato 10 de codificación puede suministrar información o datos de vídeo y/o imagen codificados al aparato 20 de decodificación en forma de un archivo o de transmisión continua a través de un medio de almacenamiento digital o red.
El aparato 10 de codificación según una realización puede incluir un generador 11 de fuente de vídeo, una unidad 12 de codificación y un transmisor 13. El aparato 20 de decodificación según una realización puede incluir un receptor 21, una unidad 22 de decodificación y un renderizador 23. La unidad 12 de codificación puede denominarse unidad de codificación de vídeo/imagen, y la unidad 22 de decodificación puede denominarse unidad de decodificación de vídeo/imagen. El transmisor 13 puede estar incluido en la unidad 12 de codificación. El receptor 21 puede estar incluido en la unidad 22 de decodificación. El renderizador 23 puede incluir una pantalla y la pantalla se puede configurar como un dispositivo separado o un componente externo.
El generador 11 de fuente de vídeo puede adquirir un vídeo/imagen a través de un procedimiento de captura, síntesis o generación de vídeo/imagen. El generador 11 de fuente de vídeo puede incluir un dispositivo de captura de vídeo/imagen y/o un dispositivo de generación de vídeo/imagen. El dispositivo de captura de vídeo/imagen puede incluir, por ejemplo, una o más cámaras, archivos de vídeo/imagen que incluyen vídeo/imágenes capturados previamente y similares. El dispositivo de generación de vídeo/imagen puede incluir, por ejemplo, ordenadores, tabletas y teléfonos inteligentes, y puede generar (electrónicamente) vídeo/imágenes. Por ejemplo, se puede generar un vídeo/imagen virtual a través de un ordenador o similar. En este caso, el procedimiento de captura de vídeo/imagen se puede sustituir por un procedimiento de generación de datos relacionados.
La unidad 12 de codificación puede codificar un vídeo/imagen de entrada. La unidad 12 de codificación puede realizar una serie de procedimientos como predicción, transformada y cuantificación para compresión y eficiencia de codificación. La unidad 12 de codificación puede emitir datos codificados (información de vídeo/imagen codificada) en forma de un flujo de bits.
El transmisor 13 puede transmitir la información de vídeo/imagen codificada o datos emitidos en forma de un flujo de bits al receptor 21 del aparato 20 de decodificación a través de un medio de almacenamiento digital o una red en forma de un archivo o de transmisión continua. El medio de almacenamiento digital puede incluir varios medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor 13 puede incluir un elemento para generar un archivo multimedia a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión a través de una red de difusión/comunicación. El receptor 21 puede extraer/recibir el flujo de bits del medio de almacenamiento o red y transmitir el flujo de bits a la unidad 22 de decodificación.
La unidad 22 de decodificación puede decodificar el vídeo/imagen realizando una serie de procedimientos tales como descuantificación, transformada inversa y predicción correspondientes a la operación de la unidad 12 de codificación.
El renderizador 23 puede renderizar el vídeo/imagen decodificado. El vídeo/imagen renderizado se puede visualizar a través de la pantalla.
Visión general de un aparato de codificación de imágenes
La FIG. 2 es una vista que muestra esquemáticamente un aparato de codificación de imágenes, al que es aplicable una realización de la presente descripción.
Como se muestra en la FIG. 2, el aparato 100 de codificación de imágenes puede incluir un divisor 110 de imagen, un sustractor 115, un transformador 120, un cuantificador 130, un descuantificador 140, un transformador 150 inverso, un sumador 155, un filtro 160, una memoria 170, una unidad 180 de interpredicción, una unidad 185 de intrapredicción y un codificador 190 de entropía. La unidad 180 de interpredicción y la unidad 185 de intrapredicción se pueden referir conjuntamente como "unidad de predicción". El transformador 120, el cuantificador 130, el descuantificador 140 y el transformador 150 inverso pueden estar incluidos en un procesador residual. El procesador residual puede incluir además el sustractor 115.
La totalidad o al menos alguno de la pluralidad de componentes que configuran el aparato 100 de codificación de imágenes se pueden configurar por un componente de hardware (por ejemplo, un codificador o un procesador) en algunas realizaciones. Además, la memoria 170 puede incluir una memoria intermedia de imágenes decodificadas (DPB) y se puede configurar con un medio de almacenamiento digital.
El divisor 110 de imagen puede dividir una imagen de entrada (o una imagen o una trama) introducida en el aparato 100 de codificación de imágenes en una o más unidades de procesamiento. Por ejemplo, la unidad de procesamiento puede denominarse unidad de codificación ( CU). La unidad de codificación puede adquirirse por división recursiva de una unidad de árbol de codificación (CTU) o la unidad de codificación más grande (LCU) según una estructura en árbol cuaternario árbol binario árbol ternario (QT/BT/TT). Por ejemplo, un conjunto de codificación se puede dividir en una pluralidad de unidades de codificación de una mayor profundidad basado en una estructura en árbol cuaternario, una estructura en árbol binario y/o una estructura ternaria. Para la división de la unidad de codificación, se puede aplicar primero una estructura de árbol cuaternario y más adelante se puede aplicar una estructura de árbol binario y/o una estructura ternaria. El procedimiento de codificación según la presente descripción se puede realizar basado en la unidad de codificación final que no se divide más. La unidad de codificación más grande se puede utilizar como unidad de codificación final o la unidad de codificación de mayor profundidad adquirida dividiendo la unidad de codificación más grande se puede utilizar como la unidad de codificación final. En este caso, el procedimiento de codificación puede incluir un procedimiento de predicción, transformada y reconstrucción, que se describirá más adelante. Como otro ejemplo, la unidad de procesamiento del procedimiento de codificación puede ser una unidad de predicción (PU) o una unidad de transformada (TU). La unidad de predicción y la unidad de transformada pueden dividirse o partirse a partir de la unidad de codificación final. La unidad de predicción puede ser una unidad de predicción de muestras, y la unidad de transformada puede ser una unidad para derivar un coeficiente de transformada y/o una unidad para derivar una señal residual a partir del coeficiente de transformada.
La unidad de predicción (la unidad 180 de interpredicción o la unidad 185 de intrapredicción) puede realizar predicción en un bloque que se va a procesar (bloque actual) y generar un bloque predicho que incluye muestras de predicción para el bloque actual. La unidad de predicción puede determinar si se aplica intrapredicción o interpredicción en una base de bloque actual o CU. La unidad de predicción puede generar diversa información relacionada con la predicción del bloque actual y transmitir la información generada al codificador 190 de entropía. La información sobre la predicción se puede codificar en el codificador 190 de entropía y emitir en forma de un flujo de bits.
La unidad 185 de intrapredicción puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas pueden estar situadas en las proximidades del bloque actual o pueden estar situadas alejadas según el modo de intrapredicción y/o la técnica de intrapredicción. Los modos de intrapredicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El modo no direccional puede incluir, por ejemplo, un modo DC y un modo plano. El modo direccional puede incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional según el grado de detalle de la dirección de predicción. Sin embargo, se trata simplemente de un ejemplo, y se pueden utilizar más o menos modos de predicción direccionales basados en un ajuste. La unidad 185 de intrapredicción puede determinar el modo de predicción aplicado al bloque actual utilizando un modo de predicción aplicado a un bloque vecino.
La unidad 180 de interpredicción puede derivar un bloque predicho para el bloque actual basado en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este caso, para reducir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento puede predecirse en unidades de bloques, subbloques o muestras basado en la correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imágenes de referencia. La información de movimiento puede incluir además dirección de interpredicción (predicción L0, predicción L1, predicción Bi, etc.). En el caso de interpredicción, el bloque vecino puede incluir un bloque vecino espacial presente en la imagen actual y un bloque vecino temporal presente en la imagen de referencia. La imagen de referencia que incluye el bloque de referencia y la imagen de referencia que incluye el bloque vecino temporal pueden ser iguales o diferentes. El bloque vecino temporal puede denominarse bloque de referencia colocalizado, CU colocalizada (colCU), y similares. La imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen colocalizada (colPic). Por ejemplo, la unidad 180 de interpredicción puede configurar una lista de candidatos de información de movimiento basado en bloques vecinos y generar información que indique el candidato que se utilizará para derivar un vector de movimiento y/o un índice de imágenes de referencia del bloque actual. La interpredicción se puede realizar basado en varios modos de predicción. Por ejemplo, en el caso de un modo de omisión y un modo de fusión, la unidad 180 de interpredicción puede utilizar información de movimiento del bloque vecino como información de movimiento del bloque actual. En el caso del modo de omisión, a diferencia del modo de fusión, la señal residual no puede transmitirse. En el caso del modo de predicción del vector de movimiento (MVP), el vector de movimiento del bloque vecino se puede utilizar como un predictor de vector de movimiento, y el vector de movimiento del bloque actual se puede señalizar codificando una diferencia de vector de movimiento y un indicador para un predictor de vector de movimiento. La diferencia de vector de movimiento puede significar una diferencia entre el vector de movimiento del bloque actual y el predictor de vector de movimiento.
La unidad de predicción puede generar una señal de predicción basado en diversos procedimientos de predicción y técnicas de predicción descritos más adelante. Por ejemplo, la unidad de predicción no solo puede aplicar intrapredicción o interpredicción sino también aplicar simultáneamente intrapredicción e interpredicción, para predecir el bloque actual. Un procedimiento de predicción para aplicar simultáneamente intrapredicción e interpredicción para predicción del bloque actual puede denominarse inter e intrapredicción combinada (CIIP). Además, la unidad de predicción puede realizar copia de intrabloque (IBC) para predicción del bloque actual. La copia de intrabloque se puede utilizar para codificación de imagen/vídeo de contenidos de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). La IBC es un procedimiento de predicción de una imagen actual utilizando un bloque de referencia construido anteriormente en la imagen actual en una localización separada del bloque actual por una distancia predeterminada. Cuando se aplica IBC, la localización del bloque de referencia en la imagen actual se puede codificar como un vector (vector de bloque) que corresponde a la distancia predeterminada. La IBC realiza básicamente la predicción en la imagen actual pero se puede realizar de manera análoga a la interpredicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede utilizar al menos una de las técnicas de interpredicción descritas en la presente descripción.
La señal de predicción generada por la unidad de predicción se puede utilizar para generar una señal reconstruida o para generar una señal residual. El sustractor 115 puede generar una señal residual (bloque residual o matriz de muestras residual) restando la señal de predicción (bloque predicho o matriz de muestras de predicción) emitida desde la unidad de predicción a partir de la señal de imagen de entrada (bloque original o matriz de muestras original). La señal residual generada puede ser transmitida al transformador 120.
El transformador 120 puede generar coeficientes de transformada por la aplicación de una técnica de transformada a la señal residual. Por ejemplo, la técnica de transformada puede incluir al menos una de una transformada de coseno discreta (DCT), una transformada de seno discreta (DST), una transformada de Karhunen-Loeve (KLT), una transformada basada en gráficos (GBT) o una transformada condicionalmente no lineal (CNT). En este caso, la GBT significa transformada obtenida de un gráfico cuando la información de relación entre píxeles está representada por el gráfico. La CNT se refiere a la transformada adquirida basado en una señal de predicción generada utilizando todos los píxeles reconstruidos anteriormente. Además, el procedimiento de transformada se puede aplicar a bloques de píxeles cuadrados que tienen el mismo tamaño o se puede aplicar a bloques que tienen un tamaño variable distinto de un cuadrado.
El cuantificador 130 puede cuantificar los coeficientes de transformada y transmitirlos al codificador 190 de entropía. El codificador 190 de entropía puede codificar la señal cuantificada (información sobre los coeficientes de transformada cuantificados) y emitir un flujo de bits. La información sobre los coeficientes de transformada cuantificados se puede denominar como información residual. El cuantificador 130 puede reorganizar los coeficientes de transformada cuantificados en una forma de bloque en una forma de vector unidimensional basado en un orden de barrido de coeficientes y generar información sobre los coeficientes de transformada cuantificados basado en los coeficientes de transformada cuantificados en la forma de vector unidimensional.
El codificador 190 de entropía puede realizar varios procedimientos de codificación tales como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC) y similares. El codificador 190 de entropía puede codificar información necesaria para reconstrucción de vídeo/imagen distinta de los coeficientes de transformada cuantificados (por ejemplo, valores de elementos de sintaxis, etc.) de manera conjunta o separada. La información codificada (por ejemplo, información de vídeo/imagen codificada) puede ser transmitida o almacenada en unidades de capas de abstracción de red (NAL) en forma de un flujo de bits. La información de vídeo/imagen puede incluir además información sobre diversos conjuntos de parámetros, tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir también información de restricción general. La información señalizada, la información transmitida y/o los elementos de sintaxis descritos en la presente descripción se pueden codificar a través del procedimiento de codificación descrito anteriormente e incluirse en el flujo de bits.
El flujo de bits se puede transmitir en una red o se puede almacenar en un medio de almacenamiento digital. La red puede incluir una red de difusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, S<d>, CD, DVD, Blu-ray, HDD, SSD y similares. Un transmisor (no mostrado) que transmite una señal emitida desde el codificador 190 de entropía y/o una unidad de almacenamiento (no mostrada) que almacena la señal pueden estar incluidos como elemento interno/externo del aparato 100 de codificación de imágenes. Alternativamente, el transmisor puede proporcionarse como componente del codificador 190 de entropía.
Los coeficientes de transformada cuantificados emitidos desde el cuantificador 130 se pueden utilizar para generar una señal residual. Por ejemplo, la señal residual (bloque residual o muestras residuales) se puede reconstruir aplicando descuantificación y transformada inversa a los coeficientes de transformada cuantificados a través del descuantificador 140 y el transformador 150 inverso.
El sumador 155 añade la señal residual reconstruida a la señal de predicción emitida desde la unidad 180 de interpredicción o la unidad 185 de intrapredicción para generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestras reconstruida). Si no existe información residual para el bloque que será procesado, como en el caso en que se aplica el modo de omisión, el bloque predicho se puede utilizar como bloque reconstruido. El sumador 155 se puede denominar reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede utilizar para intrapredicción de un siguiente bloque que será procesado en la imagen actual y se puede utilizar para interpredicción de una siguiente imagen a través del filtrado como se describe más adelante.
El filtro 160 puede mejorar calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 160 puede generar una imagen reconstruida modificada aplicando diversos procedimientos de filtrado a la imagen reconstruida y almacenar la imagen reconstruida modificada en la memoria 170, específicamente, en una DPB de la memoria 170. Los diversos procedimientos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral y similares. El filtro 160 puede generar diversa información relacionada con el filtrado y transmitir la información generada al codificador 190 de entropía como se describe más adelante en la descripción de cada procedimiento de filtrado. La información relacionada con el filtrado puede ser codificada por el codificador 190 de entropía y emitirse en forma de un flujo de bits.
La imagen reconstruida modificada transmitida a la memoria 170 se puede utilizar como la imagen de referencia en la unidad 180 de interpredicción. Cuando se aplica interpredicción a través del aparato 100 de codificación de imágenes, puede evitarse la falta de concordancia de la predicción entre el aparato 100 de codificación de imágenes y el aparato de decodificación de imágenes y es posible mejorar la eficacia de la codificación.
La DPB de la memoria 170 puede almacenar la imagen reconstruida modificada para su empleo como imagen de referencia en la unidad 180 de interpredicción. La memoria 170 puede almacenar la información de movimiento del bloque a partir de la cual se deriva (o codifica) la información de movimiento en la imagen actual y/o la información de movimiento de los bloques en la imagen que ya se ha reconstruido. La información de movimiento almacenada puede ser transmitida a la unidad 180 de interpredicción y utilizada como la información de movimiento del bloque vecino espacial o la información de movimiento del bloque vecino temporal. La memoria 170 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y puede transferir las muestras reconstruidas a la unidad 185 de intrapredicción.
Visión general de aparato de decodificación de imágenes
La FIG. 3 es una vista que muestra esquemáticamente un aparato de decodificación de imágenes, al que es aplicable una realización de la presente descripción.
Como se muestra en la FIG. 3, el aparato 200 de decodificación de imágenes puede incluir un decodificador 210 de entropía, un descuantificador 220, un transformador 230 inverso, un sumador 235, un filtro 240, una memoria 250, una unidad 260 de interpredicción y una unidad 265 de intrapredicción. La unidad 260 de interpredicción y la unidad 265 de intrapredicción se pueden referir conjuntamente como "unidad de predicción". El descuantificador 220 y el transformador 230 inverso pueden estar incluidos en un procesador residual.
La totalidad o al menos alguno de una pluralidad de componentes que configuran el aparato 200 de decodificación de imágenes pueden ser configurados por un componente de hardware (por ejemplo, un decodificador o un procesador) según una realización. Además, la memoria 250 puede incluir una memoria intermedia de imágenes decodificadas (DPB) o puede ser configurada por un medio de almacenamiento digital.
El aparato 200 de decodificación de imágenes, que ha recibido un flujo de bits que incluye información de vídeo/imagen, puede reconstruir una imagen realizando un procedimiento correspondiente a un procedimiento realizado por el aparato 100 de codificación de imágenes de la FIG. 2. Por ejemplo, el aparato 200 de decodificación de imágenes puede realizar decodificación utilizando una unidad de procesamiento aplicada en el aparato de codificación de imágenes. Así, la unidad de procesamiento de decodificación puede ser una unidad de codificación, por ejemplo. La unidad de codificación puede adquirirse dividiendo una unidad de árbol de codificación o la unidad de decodificación más grande. La señal de imagen reconstruida decodificada y emitida a través del aparato 200 de decodificación de imágenes puede reproducirse a través de un aparato de reproducción (no mostrado).
El aparato 200 de decodificación de imágenes puede recibir una señal emitida desde el aparato de codificación de imágenes de la FIG. 2 en forma de un flujo de bits. La señal recibida puede ser decodificada a través del decodificador 210 de entropía. Por ejemplo, el decodificador 210 de entropía puede analizar el flujo de bits para derivar información (por ejemplo, información de vídeo/imagen) necesaria para la reconstrucción de imágenes. La información de vídeo/imagen puede incluir además información sobre diversos conjuntos de parámetros, tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir también información de restricción general. El aparato de decodificación de imágenes puede decodificar además imágenes basadas en la información sobre el conjunto de parámetros y/o la información de restricción general. La información señalizada/recibida y/o los elementos de sintaxis descritos en la presente descripción pueden ser decodificados a través del procedimiento de decodificación y obtenidos del flujo de bits. Por ejemplo, el decodificador 210 de entropía decodifica la información en el flujo de bits basado en un procedimiento de codificación tal como codificación Golomb exponencial, CAVLC o CABAC, y emitir valores de elementos de sintaxis requeridos para reconstrucción de imágenes y valores cuantificados de coeficientes de transformada para residuos. Más en concreto, el procedimiento de decodificación de entropía CABAC puede recibir un bin correspondiente a cada elemento de sintaxis en el flujo de bits, determinar un modelo de contexto utilizando información de un elemento de sintaxis diana de decodificación, información de decodificación de un bloque vecino y un bloque diana de decodificación o información de un símbolo/bin decodificado en una fase anterior, y realizar decodificación aritmética en el bin prediciendo una probabilidad de ocurrencia de un bin según el modelo de contexto determinado, y generar un símbolo correspondiente al valor de cada elemento de sintaxis. En este caso, el procedimiento de decodificación de entropía CABAC puede actualizar el modelo de contexto utilizando la información del símbolo/bin decodificado para un modelo de contexto de un siguiente símbolo/bin después de determinar el modelo de contexto. La información relacionada con la predicción entre la información decodificada por el decodificador 210 de entropía puede ser proporcionada a la unidad de predicción (la unidad 260 de interpredicción y la unidad 265 de intrapredicción), y el valor residual sobre el cual se realizó la decodificación de entropía en el decodificador 210 de entropía, es decir, los coeficientes de transformada cuantificados y la información de parámetros relacionada, se puede introducir en el descuantificador 220. Además, la información sobre el filtrado entre la información decodificada por el decodificador 210 de entropía se puede proporcionar al filtro 240. Entretanto, un receptor (no mostrado) para recibir una señal emitida desde el aparato de codificación de imágenes puede ser configurado además como un elemento interno/externo del aparato 200 de decodificación de imágenes, o el receptor puede ser un componente del decodificador 210 de entropía.
Entretanto, el aparato de decodificación de imágenes según la presente descripción puede referirse como un aparato de decodificación de vídeo/imagen. El aparato de decodificación de imágenes se puede clasificar en un decodificador de información (decodificador de información de vídeo/imagen) y un decodificador de muestra (decodificador de muestra de vídeo/imagen). El decodificador de información puede incluir el decodificador 210 de entropía. El decodificador de muestra puede incluir al menos uno entre el descuantificador 220, el transformador 230 inverso, el sumador 235, el filtro 240, la memoria 250, la unidad 260 de interpredicción o la unidad 265 de intrapredicción.
El descuantificador 220 puede descuantificar los coeficientes de transformada cuantificados y emitir los coeficientes de transformada. El descuantificador 220 puede reorganizar los coeficientes de transformada cuantificados en una forma de bloque bidimensional. En este caso, la reorganización se puede realizar basado en el orden de barrido de coeficientes realizado en el aparato de codificación de imágenes. El descuantificador 220 puede realizar descuantificación en los coeficientes de transformada cuantificados utilizando un parámetro de cuantificación (por ejemplo, una información de tamaño de etapa de cuantificación) y obtener coeficientes de transformada.
El transformador 230 inverso puede realizar transformada inversa en los coeficientes de transformada para obtener una señal residual (bloque residual, matriz de muestras residual).
La unidad de predicción puede realizar una predicción en el bloque actual y generar un bloque predicho que incluye muestras de predicción para el bloque actual. La unidad de predicción puede determinar si se aplica intrapredicción o interpredicción al bloque actual basado en la información en la predicción emitida desde el decodificador 210 de entropía y puede determinar un modo específico de intra/interpredicción (técnica de predicción).
Al igual que se describió en la unidad de predicción del aparato 100 de codificación de imágenes, la unidad de predicción puede generar la señal de predicción basado en diversos procedimientos (técnicas) de predicción que se describirán más adelante.
La unidad 265 de intrapredicción puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. La descripción de la unidad 185 de intrapredicción se aplica igualmente a la unidad 265 de intrapredicción.
La unidad 260 de interpredicción puede derivar un bloque predicho para el bloque actual basado en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este caso, para reducir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento puede predecirse en unidades de bloques, subbloques o muestras basado en la correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imágenes de referencia. La información de movimiento puede incluir además dirección de interpredicción (predicción L0, predicción L1, predicción Bi, etc.). En el caso de interpredicción, el bloque vecino puede incluir un bloque vecino espacial presente en la imagen actual y un bloque vecino temporal presente en la imagen de referencia. Por ejemplo, la unidad 260 de interpredicción puede configurar una lista de candidatos de información de movimiento basado en bloques vecinos y derivar un vector de movimiento del bloque actual y/o un índice de imágenes de referencia basado en la información de selección de candidatos recibida. La interpredicción se puede realizar basado en varios modos de predicción, y la información sobre la predicción puede incluir información que indica un modo de interpredicción para el bloque actual.
El sumador 235 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestras reconstruida) añadiendo la señal residual obtenida a la señal de predicción (bloque predicho, matriz de muestras predicha) emitida desde la unidad de predicción (que incluye la unidad 260 de interpredicción y/o la unidad 265 de intrapredicción). Si no existe residuo para el bloque que será procesado, por ejemplo cuando se aplica el modo de omisión, el bloque predicho se puede utilizar como el bloque reconstruido. La descripción del sumador 155 es aplicable igualmente al sumador 235. El sumador 235 se puede denominar reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede utilizar para intrapredicción de un siguiente bloque que será procesado en la imagen actual y se puede utilizar para interpredicción de una siguiente imagen a través del filtrado como se describe más adelante.
El filtro 240 puede mejorar calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 240 puede generar una imagen reconstruida modificada aplicando diversos procedimientos de filtrado a la imagen reconstruida y almacenar la imagen reconstruida modificada en la memoria 250, específicamente, en una DPB de la memoria 250. Los diversos procedimientos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral y similares.
La imagen reconstruida (modificada) almacenada en la DPB de la memoria 250 se puede utilizar como imagen de referencia en la unidad 260 de interpredicción. La memoria 250 puede almacenar la información de movimiento del bloque a partir de la cual se deriva (o decodifica) la información de movimiento en la imagen actual y/o la información de movimiento de los bloques en la imagen que ya se ha reconstruido. La información de movimiento almacenada puede transmitirse a la unidad 260 de interpredicción de manera que se utilice como la información de movimiento del bloque vecino espacial o la información de movimiento del bloque vecino temporal. La memoria 250 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transferir las muestras reconstruidas a la unidad 265 de intrapredicción.
En la presente descripción, las realizaciones descritas en el filtro 160, la unidad 180 de interpredicción y la unidad 185 de intrapredicción del aparato 100 de codificación de imágenes se pueden aplicar del mismo modo o en correspondencia al filtro 240, la unidad 260 de interpredicción y la unidad 265 de intrapredicción del aparato 200 de decodificación de imágenes.
Visión general de división de imágenes
El procedimiento de codificación de vídeo/imagen basado en la presente descripción se puede realizar basado en la siguiente estructura de división. Específicamente, los procedimientos de predicción, procesamiento residual (transformada (inversa) y (des)cuantificación), codificación de elementos sintácticos y filtrado que se describirán más adelante se pueden realizar basado en CTU y CU (y/o TU y PU) derivados basado en la estructura de división de imagen. La imagen se puede dividir en unidades de bloques y el procedimiento de división de bloques se puede realizar en el divisor 110 de imagen del aparato de codificación. La información relacionada con división se puede codificar por el codificador 190 de entropía y transmitir al aparato de decodificación en forma de un flujo de bits. El decodificador 210 de entropía del aparato de decodificación puede derivar la estructura de división en bloques de la imagen actual basado en la información relacionada con la división obtenida a partir del flujo de bits, y basado en esto, puede realizar una serie de procedimientos (por ejemplo, predicción, procesamiento residual, reconstrucción de bloques/imágenes, filtrado en bucle y similares) para la decodificación de imágenes.
Las imágenes pueden dividirse en una secuencia de unidades de árbol de codificación (CTU). La FIG. 4 muestra un ejemplo en el que una imagen se divide en CTU. La CTU puede corresponder a un bloque de árbol de codificación (CTB). De manera alternativa, la CTU puede incluir un bloque de árbol de codificación de muestras de luma y dos bloques de árbol de codificación de muestras de croma correspondientes. Por ejemplo, para una imagen que contiene tres matrices de muestras, la CTU puede incluir un bloque NxN de muestras de luma y dos bloques correspondientes de muestras de croma.
Visión general de división de CTU
Como descrito anteriormente, ,la unidad de codificación puede adquirirse por división recursiva de una unidad de árbol de codificación (CTU) o la unidad de codificación más grande (LCU) según una estructura en árbol cuaternario/ árbol binario/ árbol ternario (QT/BT/TT). Por ejemplo, la CTU puede dividirse primero en estructuras de árbol cuaternario. A partir de entonces, los nodos de hoja de la estructura de árbol cuaternario pueden dividirse adicionalmente por una estructura multiárbol.
La división según el árbol cuaternario significa que una CU (o CTU) actual se divide en cuatro partes iguales. Al dividir según el árbol cuaternario, la CU actual se puede dividir en cuatro CU que tienen el mismo ancho y la misma altura. Cuando la CU actual ya no se divide en la estructura de árbol cuaternario, la CU actual corresponde al nodo de hoja de la estructura de árbol cuaternario. La CU correspondiente al nodo de hoja de la estructura de árbol cuaternario ya no se puede dividir y se puede utilizar como la unidad de codificación final descrita anteriormente. De manera alternativa, la CU correspondiente al nodo de hoja de la estructura de árbol cuaternario puede dividirse adicionalmente por una estructura multiárbol.
La FIG. 5 es una vista que muestra una realización de un tipo de división de un bloque según una estructura de árbol multitipo. La división según la estructura multiárbol puede incluir dos tipos de división según una estructura de árbol binario y dos tipos de división según una estructura de árbol ternario.
Los dos tipos de división según la estructura de árbol binario pueden incluir división binaria vertical (SPLIT_BT_VER) y división binaria horizontal (SPLIT_BT_HOR). La división binaria vertical (SPLIT_BT_VER) significa que la CU actual se divide en dos partes iguales en la dirección vertical. Como se muestra en la FIG.
4, por división binaria vertical, se pueden generar dos CU que tienen la misma altura que la CU actual y que tienen un ancho que es la mitad del ancho de la CU actual. La división binaria horizontal (SPLIT_BT_HOR) significa que la CU actual se divide en dos partes iguales en la dirección horizontal. Como se muestra en la FIG. 5, por división binaria horizontal, se pueden generar dos CU que tienen una altura que es la mitad de la altura de la CU actual y que tienen el mismo ancho que la CU actual.
Dos tipos de división según la estructura del árbol ternario pueden incluir la división ternaria vertical (SPLIT_TT_VER) y la división ternaria horizontal (SPLIT_t T_HOR). En la división ternaria vertical (SPLIT_TT_VER), la CU actual se divide en la dirección vertical en una relación de 1:2:1. Como se muestra en la FIG. 5, por división ternaria vertical, se pueden generar dos CU que tienen la misma altura que la CU actual y que tienen un ancho que es 1/4 del ancho de la CU actual y una CU que tiene la misma altura que la CU actual y que tiene un ancho que es la mitad del ancho de la CU actual. En la división ternaria horizontal (SPLIT_TT_HOR), la CU actual se divide en la dirección horizontal en una relación de 1:2:1. Como se muestra en la FIG. 5, por división ternaria horizontal, se pueden generar dos CU que tienen una altura que es 1/4 de la altura de la CU actual y que tienen el mismo ancho que la CU actual y una CU que tiene una altura que es la mitad de la altura de la CU actual y que tiene el mismo ancho que la CU actual.
La FIG. 6 es una vista que muestra un mecanismo de señalización de información de división de bloques en un árbol cuaternario con estructura multiárbol anidada según la presente descripción.
Aquí, la CTU se trata como el nodo raíz del árbol cuaternario y se divide por primera vez en una estructura de árbol cuaternario. Se señaliza la información (por ejemplo, qt_split_flag) que especifica si la división de árbol cuaternario se realiza en la CU actual (CTU o nodo (QT_node) del árbol cuaternario). Por ejemplo, cuando el indicador de división de qt tiene un primer valor (por ejemplo, "1"), la CU actual puede dividirse en cuatro árboles. Además, cuando el indicador de división de qt tiene un segundo valor (por ejemplo, "0"), la CU actual no se divide en cuatro árboles, sino que se convierte en el nodo de hoja (QT_Leaf_node) del árbol cuaternario. Cada nodo de hoja de árbol cuaternario puede a continuación dividirse adicionalmente en estructuras multiárbol. Es decir, el nodo de hoja del árbol cuaternario puede convertirse en el nodo (MTT_node) del árbol multitipo. En la estructura multiárbol, se señaliza un primer indicador (por ejemplo, Mtt_split_cu_flag) para especificar si el nodo actual está dividido adicionalmente. Si el nodo correspondiente se divide adicionalmente (por ejemplo, si el primer indicador es 1), se puede señalizar un segundo indicador (por ejemplo, Mtt_split_cu_vertical_flag) para especificar la dirección de división. Por ejemplo, la dirección de división puede ser una dirección vertical si el segundo indicador es 1 y puede ser una dirección horizontal si el segundo indicador es 0. A continuación, se puede señalizar un tercer indicador (por ejemplo, Mtt_s p l it_c u_b i n a ry_f l ag) para especificar si el tipo de división es un tipo de división binaria o un tipo de división ternaria. Por ejemplo, el tipo de división puede ser un tipo de división binaria cuando el tercer indicador es 1 y puede ser un tipo de división ternaria cuando el tercer indicador es 0. El nodo del árbol multitipo adquirido por división binaria o división ternaria puede dividirse adicionalmente en estructuras multiárbol. Sin embargo, el nodo del árbol multitipo no puede dividirse en estructuras de árbol cuaternario. Si el primer indicador es 0, el nodo correspondiente del árbol multitipo ya no se divide, sino que se convierte en el nodo de hoja (MTT_Leaf_node) del árbol multitipo. La CU correspondiente al nodo de hoja del árbol multitipo se puede utilizar como la unidad de codificación final descrita anteriormente.
Basado en mtt_split_cu_vertical_flag y mtt_split_cu_binary_flag, se puede derivar un modo de división multiárbol (MttSplitMode) de una CU como se muestra en la Tabla 1 a continuación. En la siguiente descripción, el modo de división multiárbol se puede denominar como un tipo de división multiárbol o un tipo de división.
[Tabla 1]
La FIG. 7 es una vista que muestra un ejemplo en el que una CTU se divide en múltiples CU aplicando un árbol multitipo después de aplicar un árbol cuaternario. En la FIG. 7, los bordes 710 de bloque en negrita representan la división de árbol cuaternario y los bordes 720 restantes representan la división multiárbol. La CU puede corresponder a un bloque de codificación (CB). En una realización, la CU puede incluir un bloque de codificación de muestras de luma y dos bloques de codificación de muestras de croma correspondientes a las muestras de luma. El tamaño de CB o TB del componente de croma (muestra) se puede derivar basado en el tamaño de CB o TB del componente de luma (muestra) según una relación de componentes según el formato de color (formato de croma, por ejemplo, 4:4:4, 4:2:2, 4:2:0 y similares) de una imagen/cuadro. En caso de formato de color 4:4:4, el tamaño de CB/TB del componente de croma se puede establecer igual al tamaño de CB/TB del componente de luma. En el caso del formato de color 4:2:2, el ancho del componente de crominancia CB/TB se puede establecer en la mitad del ancho del componente de luma CB/TB y la altura del componente de crominancia CB/TB se puede establecer en la altura del componente de luma CB/TB. En el caso del formato de color 4:2:0, el ancho del componente de crominancia CB/TB se puede establecer en la mitad del ancho del componente de luma CB/TB y la altura del componente de crominancia CB/TB se puede establecer en la mitad de la altura del componente de luma CB/TB.
En una realización, cuando el tamaño de la CTU es 128 basado en la unidad de muestra de luma, el tamaño de la CU puede tener un tamaño de 128x128 a 4x4 que es el mismo tamaño que la CTU. En una realización, en caso de formato de color 4:2:0 (o formato de crominancia), un tamaño de CB de crominancia puede tener un tamaño de 64x64 a 2x2.
Entretanto, en una realización, el tamaño de CU y el tamaño de TU pueden ser los mismos. Alternativamente, puede haber una pluralidad de TU en una región de CU. El tamaño de TU puede representar en general un tamaño de bloque de transformada (TB) de componente de luminancia (muestra).
El tamaño de TU se puede derivar basado en un tamaño de TB más grande permisible maxTbSize que es un valor predeterminado. Por ejemplo, si el tamaño de CU es mayor que el maxTbSize, se puede derivar una pluralidad de TU (TB) del maxTbSize de la CU, y la transformada/transformada inversa se puede realizar en el conjunto de TU (TB). Por ejemplo, el mayor tamaño de TB de luma permitido puede ser 64x64 y el mayor tamaño de TB de croma permitido puede ser 32x32. Si el ancho o la altura del CB dividido según la estructura del árbol es mayor que el ancho o la altura de la transformada más grande, el CB puede dividirse automáticamente (o implícitamente) hasta que se cumpla el límite de tamaño de TB en las direcciones horizontal y vertical.
Además, por ejemplo, en caso de que se aplique intrapredicción, el modo/tipo de intrapredicción se puede derivar en el conjunto de CU (o CB), y la derivación de muestras de referencia vecinas y los procedimientos de generación de muestras de predicción se pueden realizar en el conjunto de TU (o TB). En este caso, un o una pluralidad de TU (o TB) pueden estar presentes en una región de CU (o CB), y en este caso, la pluralidad de TU (o TB) puede compartir el mismo modo/tipo de intrapredicción.
Entretanto, para un esquema de árbol de codificación de árbol cuaternario con árbol multitipo anidado, los siguientes parámetros pueden señalizarse como elementos de sintaxis de SPS desde el aparato de codificación al aparato de decodificación. Por ejemplo, se señaliza al menos uno de un tamaño de CTU que es un parámetro que representa el tamaño de nodo raíz de un árbol cuaternario, MinQTSize que es un parámetro que representa el tamaño mínimo permitido de nodo de hoja de árbol cuaternario, MaxBtSize que es un parámetro que representa el tamaño máximo permitido de nodo raíz de árbol binario, MaxTtSize que es un parámetro que representa el tamaño máximo permitido de nodo raíz de árbol ternario, MaxMttDepth que es un parámetro que representa la profundidad de jerarquía máxima permitida de división multiárbol de un nodo de hoja de árbol cuaternario, MinBtSize que es un parámetro que representa el tamaño mínimo permitido de nodo de hoja de árbol binario, o MinTtSize que es un parámetro que representa el tamaño mínimo permitido de nodo de hoja de árbol ternario.
Como una realización de uso del formato de crominancia 4:2:0, el tamaño de la CTU se puede establecer en bloques de luma de 128x128 y dos bloques de crominancia de 64x64 correspondientes a los bloques de luma. En este caso, MinOTSize puede establecerse en 16x16, MaxBtSize puede establecerse en 128x128, MaxTtSzie puede establecerse en 64x64, MinBtSize y MinTtSize pueden establecerse en 4x4, y MaxMttDepth puede establecerse en 4. La división de árbol cuaternario se puede aplicar a la CTU para generar nodos de hoja de árbol cuaternario. El nodo de hoja de árbol cuaternario se puede denominar nodo QT de hoja. Los nodos de hoja de árbol cuaternario pueden tener un tamaño de 16x16 (por ejemplo, el MinOTSize) a un tamaño de 128x128 (por ejemplo, el tamaño de la CTU). Si el nodo QT de hoja es 128x128, no se puede dividir adicionalmente en un árbol binario/árbol ternario. Esto se debe a que, en este caso, incluso si se divide, excede MaxBtsize y MaxTtszie (por ejemplo, 64x64). En otros casos, los nodos QT de hoja pueden dividirse adicionalmente en un árbol multitipo. Por lo tanto, el nodo QT de hoja es el nodo raíz para el árbol multitipo, y el nodo QT de hoja puede tener un valor 0 de profundidad multiárbol (mttDepth). Si la profundidad del árbol multitipo alcanza MaxMttdepth (por ejemplo, 4), es posible que no se considere una división adicional. Si el ancho del nodo multiárbol es igual a MinBtSize y menor o igual que 2xMinTtSize, a continuación no se puede considerar ninguna división horizontal adicional. Si la altura del nodo multiárbol es igual a MinBtSize y menor o igual que 2xMinTtSize, no se puede considerar ninguna división vertical adicional. Cuando no se considera la división, el aparato de codificación puede omitir la señalización de la información de división. En este caso, el aparato de decodificación puede derivar información de división con un valor predeterminado.
Entretanto, una CTU puede incluir un bloque de codificación de muestras de luma (a continuación denominado “bloque de luma”) y dos bloques de codificación de muestras de croma correspondientes al mismo (a continuación denominados “bloques de croma”). El esquema de árbol de codificación descrito anteriormente se puede aplicar por igual o por separado al bloque de luma y al bloque de crominancia de la CU actual. Específicamente, los bloques de luma y crominancia en una CTU se pueden dividir en la misma estructura de árbol de bloques y, en este caso, la estructura de árbol se representa como SINGLE_TREE. Alternativamente, los bloques de luma y crominancia en una CTU pueden dividirse en estructuras en árbol de bloques separadas y, en este caso, la estructura en árbol puede representarse como DUAL_TREE. Es decir, cuando la CTU se divide en árboles duales, la estructura de árbol de bloques para el bloque de luma y la estructura de árbol de bloques para el bloque de crominancia pueden estar presentes por separado. En este caso, la estructura de árbol de bloques para el bloque de luma puede denominarse DUAL_TREE_LUMA, y la estructura de árbol de bloques para el componente de croma puede denominarse DUAL_TREE_CHROMA. Para los grupos de fragmento/mosaico P y B, los bloques de luma y croma en una CTU pueden limitarse a tener la misma estructura de árbol de codificación. Sin embargo, para los grupos de fragmento/mosaico I, los bloques de luma y crominancia pueden tener una estructura de árbol de bloques separada entre sí. Si se aplica la estructura de árbol de bloques separada, el CTB de luma se puede dividir en CU basado en una estructura de árbol de codificación particular, y el CTB de crominancia se puede dividir en CU de crominancia basado en otra estructura de árbol de codificación. Es decir, esto significa que una CU en un grupo de fragmento/mosaico I, al que se aplica la estructura de árbol de bloques separada, puede incluir un bloque de codificación de componentes de luma o bloques de codificación de dos componentes de crominancia y una CU de un grupo de fragmento/mosaico P o B puede incluir bloques de tres componentes de color (un componente de luma y dos componentes de crominancia).
Aunque se ha descrito una estructura de árbol de codificación de árbol cuaternario con un árbol multitipo anidado, una estructura en la que se divide una CU no se limita a la misma. Por ejemplo, la estructura de BT y la estructura de TT pueden interpretarse como un concepto incluido en una estructura de árbol de división múltiple (MPT), y la CU puede interpretarse como dividida a través de la estructura de QT y la estructura de MPT. En un ejemplo donde la CU se divide a través de una estructura QT y una estructura de MPT, un elemento de sintaxis (por ejemplo, MPT_split_type) que incluye información sobre en cuántos bloques se divide el nodo de hoja de la estructura QT y un elemento de sintaxis (por ejemplo, MPT_split_mode) que incluye información sobre en cuál de las direcciones verticales y horizontales se divide el nodo de hoja de la estructura QT se puede señalizar para determinar una estructura de división.
En otro ejemplo, la CU puede dividirse de una manera diferente a la estructura QT, estructura BT o estructura TT. Es decir, a diferencia de que la CU de la profundidad más baja se divide en 1/4 de la CU de la profundidad<más alta según la estructura>Q<t>,<la CU de la profundidad más baja se divide en 1/2 de la CU de la profundidad>más alta según la estructura BT, o la CU de la profundidad más baja se divide en 1/4 o 1/2 de la CU de la profundidad más alta según la estructura TT, la CU de la profundidad más baja se puede dividir en 1/5, 1/3, 3/8, 3/5, 2/3 o 5/8 de la CU de la profundidad más alta en algunos casos, y el procedimiento de división de la CU no se limita a esto.
La estructura de bloques de codificación de árbol cuaternario con el árbol multitipo puede proporcionar una estructura de división de bloques muy flexible. Debido a los tipos de división admitidos en un árbol multitipo, diferentes patrones de división pueden dar como resultado potencialmente la misma estructura de bloques de codificación en algunos casos. En el aparato de codificación y el aparato de decodificación, al limitar la aparición de dichos patrones de división redundantes, se puede reducir una cantidad de datos de información de división.
Por ejemplo, la FIG. 8 muestra patrones de división redundantes que pueden ocurrir en la división de árboles binarios y la división de árboles ternarios. Como se muestra en la FIG. 8, la división 810 y 820 binaria continua para una dirección de niveles de dos etapas tiene la misma estructura de bloques de codificación que la división binaria para una división central después de la división ternaria. En este caso, se puede prohibir la división de árboles binarios para los bloques 830 y 840 centrales de la división de árboles ternarios, esta prohibición es aplicable a las CU de todas las imágenes. Cuando se prohíbe dicha división específica, la señalización de los elementos de sintaxis correspondientes puede modificarse reflejando este caso prohibido, reduciendo así el número de bits señalizados para la división. Por ejemplo, en el ejemplo mostrado en la FIG. 8, cuando se prohíbe la división en árbol binario para el bloque central de la CU, un elemento de sintaxis mtt_split_cu_binary_flag que especifica si la división es división binaria o división ternaria no se señala y el valor del mismo se puede derivar como 0 por un aparato de decodificación.
Visión general de la interpredicción
A continuación se describirá la interpredicción según la presente descripción.
La unidad de predicción de un aparato de codificación de imágenes/aparato de decodificación de imágenes según la presente descripción puede realizar interpredicción en unidades de bloques para derivar una muestra de predicción. La interpredicción puede representar predicción derivada de una manera que depende de elementos de datos (por ejemplo, valores de muestra o información de movimiento, etc.) de imágenes distintas de la imagen actual. En caso de que se aplique interpredicción al bloque actual, se puede inducir un bloque predicho (bloque de predicción o matriz de muestras de predicción) para el bloque actual basado en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia indicada por un índice de imagen de referencia. En este caso, con el fin de reducir la cantidad de información de movimiento que se transmite en el modo de interpredicción, la información de movimiento del bloque actual se puede predecir en unidades de bloques, un subbloque o una muestra basada en la correlación de la información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imágenes de referencia. La información de movimiento puede incluir además información de tipo de interpredicción (predicción L0, predicción L1, predicción Bi, etc.). En el caso de interpredicción, el bloque vecino puede incluir un bloque vecino espacial presente en la imagen actual y un bloque vecino temporal presente en la imagen de referencia. La imagen de referencia que incluye el bloque de referencia y la imagen de referencia que incluye el bloque vecino temporal pueden ser iguales o diferentes. El bloque vecino temporal puede referirse como bloque de referencia colocalizado o CU colocalizada (colCU) o colBloque, y la imagen de referencia que incluye el bloque vecino temporal puede referirse como imagen colocalizada (colPic) o colImagen. Por ejemplo, se puede construir una lista de candidatos con información de movimiento basándose en los bloques vecinos del bloque actual, y se puede señalar información de bandera o índice que especifique qué candidato se selecciona (se utiliza) para derivar el vector de movimiento del bloque actual y/o el índice de imagen de referencia.
La interpredicción se puede realizar basado en varios modos de predicción. Por ejemplo, en el caso de un modo de omisión y un modo de fusión, la información de movimiento del bloque actual puede ser igual a la información de movimiento del bloque vecino seleccionado. En el caso del modo de omisión, la señal residual puede no ser transmitida a diferencia del modo de fusión. En el caso de un modo de predicción de vector de movimiento (MVP), el vector de movimiento del bloque vecino seleccionado se puede utilizar como un predictor del vector de movimiento y se puede señalizar una diferencia de vectores de movimiento. En este caso, el vector de movimiento del bloque actual puede derivarse usando la suma del predictor del vector de movimiento y la diferencia del vector de movimiento. En la presente descripción, el modo MVP puede tener el mismo significado que la predicción avanzada de vectores de movimiento (AMVP).
La información de movimiento puede incluir información de movimiento de L0 y/o información de movimiento de L1 según un tipo de interpredicción (predicción de L0, predicción de L1, predicción de Bi, etc.). Un vector de movimiento en la dirección L0 se puede denominar vector de movimiento L0 o MVL0, y un vector de movimiento en la dirección L1 se puede denominar vector de movimiento L1 o MVL1. Una predicción basada en el vector de movimiento L0 se puede denominar predicción L0, una predicción basada en el vector de movimiento L1 se puede denominar predicción L1 y una predicción basada en tanto del vector de movimiento L0 como del vector de movimiento L1 se puede denominar Bi predicción. Aquí, el vector de movimiento L0 puede indicar un vector de movimiento asociado con una lista de imágenes de referencia L0 (L0) y el vector de movimiento L1 puede indicar un vector de movimiento asociado con una lista de imágenes de referencia L1 (L1). La lista de imágenes de referencia L0 puede incluir imágenes antes de la imagen actual en orden de salida como imágenes de referencia, y la lista de imágenes de referencia L1 puede incluir imágenes después de la imagen actual en orden de salida. Las imágenes anteriores se pueden denominar imagen (de referencia) directa y las imágenes posteriores se pueden denominar imagen (de referencia) inversa. La lista de imágenes de referencia L0 puede incluir además imágenes antes de la imagen actual en orden de salida como imágenes de referencia. En este caso, dentro de la lista de imágenes de referencia L0, las imágenes anteriores se pueden indexar primero y las imágenes posteriores a continuación se pueden indexar. La lista de imágenes de referencia L1 puede incluir además imágenes antes de la imagen actual en orden de salida como imágenes de referencia. En este caso, dentro de la lista de imágenes de referencia L1, las imágenes posteriores se pueden indexar primero y las imágenes anteriores a continuación se pueden indexar. En este caso, el orden de salida puede corresponder al orden de recuento de orden de imágenes (POC).
La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de vídeo basado en interpredicción/codificación de imágenes.
La FIG. 10 es una vista que ilustra la configuración de una unidad 180 de interpredicción según la presente descripción.
El procedimiento de codificación de la FIG. 9 se puede realizar por el aparato de codificación de imágenes de la FIG. 2. Específicamente, la etapa S610 se puede realizar por la unidad 180 de interpredicción, y la etapa S620 se puede realizar por el procesador residual. Específicamente, la etapa S620 se puede realizar por el sustractor 115. La etapa S630 se puede realizar por el codificador 190 de entropía. La información de predicción de la etapa S630 se puede derivar por la unidad 180 de interpredicción, y la información residual de la etapa S630 se puede derivar por el procesador residual. La información residual es información sobre las muestras residuales. La información residual puede incluir información sobre coeficientes de transformada cuantificados para las muestras residuales. Como se describió anteriormente, las muestras residuales se pueden derivar como coeficientes de transformada a través del transformador 120 del aparato de codificación de imágenes, y los coeficientes de transformada se pueden derivar como coeficientes de transformada cuantificados a través del cuantificador 130. La información sobre los coeficientes de transformada cuantificados puede ser codificada por el codificador 190 de entropía a través de un procedimiento de codificación residual.
El aparato de codificación de imágenes puede realizar interpredicción con respecto a un bloque actual (S610). El aparato de codificación de imágenes puede derivar un modo de interpredicción e información de movimiento del bloque actual y generar muestras de predicción del bloque actual. En este caso, los procedimientos de determinación de modo de interpredicción, derivación de información de movimiento y generación de muestras de predicción se pueden realizar simultáneamente o cualquiera de los mismos se puede realizar antes de los otros procedimientos. Por ejemplo, como se muestra en la FIG. 10, la unidad 180 de interpredicción del aparato de codificación de imágenes puede incluir una unidad 181 de determinación del modo de predicción, una unidad 182 de derivación de información de movimiento y una unidad 183 de derivación de muestras de predicción. La unidad 181 de determinación del modo de predicción puede determinar el modo de predicción del bloque actual, la unidad 182 de derivación de información de movimiento puede derivar la información de movimiento del bloque actual y la unidad 183 de derivación de muestras de predicción puede derivar las muestras de predicción del bloque actual. Por ejemplo, la unidad 180 de interpredicción del aparato de codificación de imágenes puede buscar un bloque similar al bloque actual dentro de un área predeterminada (área de búsqueda) de imágenes de referencia a través de estimación del movimiento, y derivar un bloque de referencia cuya diferencia con respecto al bloque actual es igual a o menor que un criterio predeterminado o un mínimo. Basado en ello, se puede derivar un índice de imágenes de referencia que indica una imagen de referencia en que el bloque de referencia está situado, y se puede derivar un vector de movimiento basado en una diferencia de posición entre el bloque de referencia y el bloque actual. El aparato de codificación de imágenes puede determinar un modo de aplicación al bloque actual entre diversos modos de interpredicción. El aparato de codificación de imágenes puede comparar los costes de distorsión de tasa (RD) para los diversos modos de predicción y determinar un modo de interpredicción óptimo del bloque actual. Sin embargo, el procedimiento de determinación del modo de interpredicción del bloque actual por el aparato de codificación de imágenes no se limita al ejemplo anterior, y se pueden utilizar diversos procedimientos.
Por ejemplo, cuando un modo de omisión o un modo de fusión se aplica al bloque actual, el aparato de codificación de imágenes puede derivar candidatos de fusión a partir de bloques vecinos del bloque actual y construir una lista de candidatos de fusión utilizando los candidatos de fusión derivados. Además, el aparato de codificación de imágenes puede derivar un bloque de referencia cuya diferencia con respecto al bloque actual es igual o menor que un criterio predeterminado o un mínimo, entre bloques de referencia indicados por candidatos de fusión incluidos en la lista de candidatos de fusión. En este caso, se puede seleccionar un candidato de fusión asociado con el bloque de referencia derivado, y se puede generar información de índices de fusión que indica el candidato de fusión seleccionado y señalizarla a un aparato de decodificación de imágenes. La información de movimiento del bloque actual se puede derivar utilizando la información de movimiento del candidato de fusión seleccionado.
Como otro ejemplo, cuando se aplica un modo MVP al bloque actual, el aparato de codificación de imágenes puede derivar candidatos de predictores de vectores de movimiento (MVP) a partir de los bloques vecinos del bloque actual y construir una lista de candidatos MVP utilizando los candidatos MVP derivados. Además, el aparato de codificación de imágenes puede utilizar el vector de movimiento del candidato MVP seleccionado entre los candidatos MVP incluidos en la lista de candidatos MVP como el MVP del bloque actual. En este caso, por ejemplo, el vector de movimiento que indica el bloque de referencia derivado por la estimación descrita anteriormente del movimiento se puede utilizar como el vector de movimiento del bloque actual, un candidato MVP con un vector de movimiento que tiene la diferencia más pequeña desde el vector de movimiento del bloque actual entre los candidatos MVP puede ser el candidato MVP seleccionado. Se puede derivar una diferencia de vectores de movimiento (MVD) que es una diferencia obtenida restando el MVP del vector de movimiento del bloque actual. En este caso, se puede señalizar la información de índices que indica el candidato MVP seleccionado y la información sobre el MVD al aparato de decodificación de imágenes. Además, cuando se aplica el modo MVP, el valor del índice de imágenes de referencia se puede construir como información de índices de imágenes de referencia y señalizarse por separado al aparato de decodificación de imágenes.
El aparato de codificación de imágenes puede derivar muestras residuales basadas en las muestras de predicción (S620). El aparato de codificación de imágenes puede derivar las muestras residuales a través de la comparación entre muestras originales del bloque actual y las muestras de predicción. Por ejemplo, la muestra residual se puede derivar restando una muestra de predicción correspondiente de una muestra original.
El aparato de codificación de imágenes puede codificar información de imagen que incluye información de predicción e información residual (S630). El aparato de codificación de imágenes puede emitir la información de imagen codificada en forma de un flujo de bits. La información de predicción puede incluir información de modo de predicción (por ejemplo, indicador de omisión, indicador de fusión o índice de modo, etc.) e información sobre información de movimiento como información relacionada con el procedimiento de predicción. Entre el modo de información de predicción, el indicador de omisión indica si se aplica un modo de omisión al bloque actual, y el indicador de fusión indica si se aplica el modo de fusión al bloque actual. Alternativamente, el modo de información de predicción puede indicar uno de una pluralidad de modos de predicción, tal como un índice de modo. Cuando el indicador de omisión y el indicador de fusión son 0, se puede determinar que el modo MVP se aplica al bloque actual. La información sobre la información de movimiento puede incluir información de selección de candidatos (por ejemplo, índice de fusión, indicador MVP o índice MVP) que es información para derivar un vector de movimiento. Entre la información de selección de candidatos, el índice de fusión se puede señalizar cuando el modo de fusión se aplica al bloque actual y puede ser información para seleccionar uno de los candidatos de fusión incluidos en una lista de candidatos de fusión. Entre la información de selección de candidatos, el indicador MVP o el índice MVP se puede señalizar cuando el modo MVP se aplica al bloque actual y puede ser información para seleccionar uno de los candidatos MVP en una lista de candidatos MVP. Además, la información sobre la información de movimiento puede incluir información sobre el MVD descrito anteriormente y/o información de índices de imágenes de referencia. Además, la información sobre la información de movimiento puede incluir información que indica si se aplica predicción L0, predicción L1 o Bi predicción. La información residual es información sobre las muestras residuales. La información residual puede incluir información sobre coeficientes de transformada cuantificados para las muestras residuales.
El flujo de bits de salida se puede almacenar en un medio de almacenamiento (digital) y transmitirse al aparato de decodificación de imágenes o puede transmitirse al aparato de decodificación de imágenes por medio de una red.
Como se describió anteriormente, el aparato de codificación de imágenes puede generar una imagen reconstruida (una imagen que incluye muestras reconstruidas y un bloque reconstruido) basado en las muestras de referencia y las muestras residuales. Así sucede para el aparato de codificación de imágenes para derivar el mismo resultado de predicción que el realizado por el aparato de decodificación de imágenes, aumentando con ello la eficacia de codificación. Por consiguiente, el aparato de codificación de imágenes puede almacenar la imagen reconstruida (o las muestras reconstruidas y el bloque reconstruido) en una memoria y utilizarla como una imagen de referencia para interpredicción. Como se describió anteriormente, se puede aplicar además un procedimiento de filtrado en bucle a la imagen reconstruida.
La FIG. 11 es un diagrama de flujo que ilustra un procedimiento de vídeo basado en intrapredicción/codificación de imágenes.
La FIG. 12 es una vista que ilustra la configuración de una unidad 260 de interpredicción según la presente descripción.
El aparato de decodificación de imágenes puede realizar una operación correspondiente a la operación realizada por el aparato de codificación de imágenes. El aparato de decodificación de imágenes puede realizar predicción con respecto a un bloque actual basado en información de predicción recibida y derivar muestras de predicción.
El procedimiento de decodificación de la FIG. 11 se puede realizar por el aparato de decodificación de imágenes de la FIG. 3. Las etapas S810 a S830 se pueden realizar por la unidad 260 de interpredicción, y la información de predicción de la etapa S810 y la información residual de la etapa S840 se pueden obtener de un flujo de bits por el decodificador 210 de entropía. El procesador residual del aparato de decodificación de imágenes puede derivar muestras residuales para un bloque actual basado en la información residual (S840). Específicamente, el descuantificador 220 del procesador residual puede realizar descuantificación basado en coeficientes de transformada cuantificados derivados basado en la información residual para derivar coeficientes de transformada, y el transformador 230 inverso del procesador residual puede realizar transformada inversa con respecto a los coeficientes de transformada para derivar las muestras residuales para el bloque actual. La etapa S850 se puede realizar por el sumador 235 o el reconstructor.
Específicamente, el aparato de decodificación de imágenes puede determinar el modo de predicción del bloque actual basado en la información de predicción recibida (S810). El aparato de decodificación de imágenes puede determinar el modo de interpredicción que se aplica al bloque actual basado en el modo de información de predicción en la información de predicción.
Por ejemplo, se puede determinar si se aplica el modo de omisión al bloque actual basado en el indicador de omisión. Además, se puede determinar si se aplica el modo de fusión o el modo MVP al bloque actual basado en el indicador de fusión. Alternativamente, se puede seleccionar uno de los diversos candidatos de modo de interpredicción basado en el índice de modo. Los candidatos de modo de interpredicción pueden incluir un modo de omisión, un modo de fusión y/o un modo MVP o pueden incluir diversos modos de interpredicción que se describirán más adelante.
El aparato de decodificación de imágenes puede derivar la información de movimiento del bloque actual basado en el modo de interpredicción determinado (S820). Por ejemplo, cuando el modo de omisión o el modo de fusión se aplican al bloque actual, el aparato de decodificación de imágenes puede construir una lista de candidatos de fusión, que se describirán más adelante, y seleccionar uno de los candidatos de fusión incluidos en la lista de candidatos de fusión. La selección se puede realizar basado en la información de selección de candidatos (índice de fusión) descrita anteriormente. La información de movimiento del bloque actual se puede derivar utilizando la información de movimiento del candidato de fusión seleccionado. Por ejemplo, la información de movimiento del candidato de fusión seleccionado se puede utilizar como la información de movimiento del bloque actual.
Como otro ejemplo, cuando el modo MVP se aplica al bloque actual, el aparato de decodificación de imágenes puede construir una lista de candidatos MVP y utilizar el vector de movimiento de un candidato MVP seleccionado entre candidatos MVP incluidos en la lista de candidatos MVP como un MVP del bloque actual. La selección se puede realizar basado en la información descrita anteriormente de selección de candidatos (indicador MVP o índice MVP). En este caso, el MVD del bloque actual se puede derivar basado en información sobre el MVD, y el vector de movimiento del bloque actual se puede derivar basado en el MVP y el MVD del bloque actual. Además, el índice de imágenes de referencia del bloque actual se puede derivar basado en la información de índices de imágenes de referencia. Una imagen indicada por el índice de imágenes de referencia en la lista de imágenes de referencia del bloque actual se puede derivar como una imagen de referencia a la que se hace referencia para interpredicción del bloque actual.
El aparato de decodificación de imágenes puede generar muestras de predicción del bloque actual basado en información de movimiento del bloque actual (S830). En este caso, la imagen de referencia se puede derivar basado en el índice de imágenes de referencia del bloque actual, y las muestras de predicción del bloque actual se pueden derivar utilizando las muestras del bloque de referencia indicadas por el vector de movimiento del bloque actual en la imagen de referencia. En algunos casos, puede realizarse además un procedimiento de filtrado de muestras de predicción con respecto a parte o la totalidad de las muestras de predicción del bloque actual.
Por ejemplo, como se muestra en la FIG. 12, la unidad 260 de interpredicción del aparato de decodificación de imágenes puede incluir una unidad 261 de determinación del modo de predicción, una unidad 262 de derivación de información de movimiento y una unidad 263 de derivación de muestras de predicción. En la unidad 260 de interpredicción del aparato de decodificación de imágenes, la unidad 261 de determinación del modo de predicción puede determinar el modo de predicción del bloque actual basado en la información de modo de predicción recibida, la unidad 262 de derivación de información de movimiento puede derivar la información de movimiento (un vector de movimiento y/o un índice de imágenes de referencia, etc.) del bloque actual basado en la información de movimiento recibida y la unidad 263 de derivación de muestras de predicción puede derivar las muestras de predicción del bloque actual.
El aparato de decodificación de imágenes puede generar muestras residuales del bloque actual basándose en la información residual recibida (S840). El aparato de decodificación de imágenes puede generar las muestras reconstruidas del bloque actual basado en las muestras de predicción y las muestras residuales y generar una imagen reconstruida basado en esto (S850). Posteriormente, se puede aplicar un procedimiento de filtrado en bucle a la imagen reconstruida como se describió anteriormente.
Como se describió anteriormente, el procedimiento de interpredicción puede incluir la etapa de determinación de un modo de interpredicción, la etapa de derivación de información de movimiento según el modo de predicción determinado y la etapa de realización de predicción (generación de muestras de predicción) basado en la información de movimiento derivada. El procedimiento de interpredicción se puede realizar por el aparato de codificación de imágenes y el aparato de decodificación de imágenes, como se describió anteriormente.
A continuación se describirá en mayor detalle la etapa de derivación de la información de movimiento según el modo de predicción.
Como se describió anteriormente, la interpredicción se puede realizar utilizando información de movimiento de un bloque actual. Un aparato de codificación de imágenes puede derivar información de movimiento óptima de un bloque actual a través de un procedimiento de estimación del movimiento. Por ejemplo, el aparato de codificación de imágenes puede buscar un bloque de referencia similar con alta correlación dentro de un intervalo de búsqueda predeterminado en la imagen de referencia utilizando un bloque original en una imagen original para el bloque actual en unidad de píxel fraccionaria, y derivar información de movimiento utilizando la misma. La semejanza del bloque se puede calcular basado en una suma de diferencias absolutas (SAD) entre el bloque actual y el bloque de referencia. En este caso, la información de movimiento se puede derivar basado en un bloque de referencia con una SAD mínima en el área de búsqueda. La información de movimiento derivada se puede señalizar a un aparato de decodificación de imágenes según diversos procedimientos basado en un modo de interpredicción.
Cuando un modo de fusión se aplica a un bloque actual, la información de movimiento del bloque actual no se transmite directamente y la información de movimiento del bloque actual se deriva utilizando información de movimiento de un bloque vecino. Por consiguiente, la información de movimiento de un bloque de predicción actual puede indicarse transmitiendo información de indicador que indica que se utiliza el modo de fusión y la información de selección de candidatos (por ejemplo, un índice de fusión) que indica que se utiliza el bloque vecino como un candidato de fusión. En la presente descripción, dado que el bloque actual es una unidad de rendimiento de predicción, el bloque actual se puede utilizar con el mismo significado que el bloque de predicción actual, y el bloque vecino se puede utilizar como el mismo significado que un bloque de predicción vecino.
El aparato de codificación de imágenes puede buscar bloques de candidatos de fusión utilizados para derivar la información de movimiento del bloque actual para realizar el modo de fusión. Por ejemplo, se pueden utilizar hasta cinco bloques de candidatos de fusión, sin estar limitado a ellos. El número máximo de bloques de candidatos de fusión puede transmitirse en un encabezamiento de fragmento o en un encabezamiento de grupos de mosaico, sin estar limitado a ellos. Después de encontrar los bloques de candidatos de fusión, el aparato de codificación de imágenes puede generar una lista de candidatos de fusión y seleccionar un bloque de candidatos de fusión con el menor coste de RD como bloque de candidato de fusión final.
La presente descripción proporciona diversas realizaciones para los bloques de candidatos de fusión que configuran la lista de candidatos de fusión. La lista de candidatos de fusión puede utilizar, por ejemplo, cinco bloques de candidatos de fusión. Por ejemplo, se pueden utilizar cuatro candidatos de fusión espaciales y un candidato de fusión temporal.
La FIG. 13 es una vista que ilustra bloques vecinos disponibles como un candidato de fusión espacial.
La FIG. 14 es una vista que ilustra esquemáticamente un procedimiento de construcción de listas de candidatos de fusión según un ejemplo de la presente descripción.
Un aparato de codificación/decodificación de imágenes puede insertar, en una lista de candidatos de fusión, candidatos de fusión espacial derivados por búsqueda de bloques vecinos espaciales de un bloque actual (S1 110). Por ejemplo, como se muestra en la FIG. 13, los bloques vecinos espaciales pueden incluir un bloque vecino en la esquina inferior izquierda A0, un bloque vecino izquierdo A1, un bloque vecino en la esquina superior derecha B0, un bloque vecino superior B1 y un bloque vecino en la esquina superior izquierda B2 del bloque actual. Sin embargo, este es un ejemplo y, además de los bloques vecinos espaciales descritos anteriormente, se pueden utilizar además bloques vecinos adicionales como un bloque vecino derecho, un bloque vecino inferior y un bloque vecino inferior derecho como bloques vecinos espaciales. El aparato de codificación/decodificación de imágenes puede detectar bloques disponibles por búsqueda de los bloques vecinos espaciales basados en la prioridad y derivar información de movimiento de los bloques detectados como los candidatos de fusión espaciales. Por ejemplo, el aparato de codificación/decodificación de imágenes puede construir una lista de candidatos de fusión por búsqueda de los cinco bloques mostrados en la FIG. 13 en el orden de A1, B1, B0, A0 y B2 y candidatos disponibles de indexación en secuencia.
El aparato de codificación/decodificación de imágenes puede insertar, en la lista de candidatos de fusión, un candidato de fusión temporal derivado por búsqueda de bloques vecinos temporales del bloque actual (S1 120). Los bloques vecinos temporales pueden estar situados en una imagen de referencia que sea diferente de una imagen actual en que se encuentra el bloque actual. Una imagen de referencia en la que se encuentra el bloque vecino temporal puede referirse como imagen colocalizada o una imagen col. El bloque vecino temporal puede buscarse en el orden de un bloque vecino en la esquina inferior derecha y un bloque central superior derecho del bloque colocalizado para el bloque actual en la imagen col. Entretanto, cuando se aplica compresión de datos de movimiento para reducir carga de memoria, la información de movimiento específica se puede almacenar como información de movimiento representativa para cada unidad de almacenamiento predeterminada para la imagen col. En este caso, no es necesario almacenar la información de movimiento de todos los bloques en la unidad de almacenamiento predeterminada, con lo que se obtiene un efecto de compresión de datos de movimiento. En este caso, la unidad de almacenamiento predeterminada puede determinarse, por ejemplo, como una unidad de muestra 16x16 o una unidad de muestra 8x8 o la información de tamaño de la unidad de almacenamiento predeterminada se puede señalizar desde el aparato de codificación de imágenes al aparato de decodificación de imágenes. Cuando se aplica la compresión de datos de movimiento, la información de movimiento del bloque vecino temporal puede sustituirse por la información de movimiento representativa de la unidad de almacenamiento predeterminada en que se encuentra el bloque vecino temporal. Es decir, en este caso, desde el punto de vista de la implementación, el candidato de fusión temporal se puede derivar basado en la información de movimiento de un bloque de predicción que cubre una posición aritmética desplazada a la izquierda después de un desplazamiento aritmético a la derecha por un valor predeterminado basado en coordenadas (posición de la muestra arriba a la izquierda) del bloque vecino temporal, no un bloque de predicción situado en las coordenadas del bloque vecino temporal. Por ejemplo, cuando la unidad de almacenamiento predeterminada es una unidad de muestra 2nx2n y las coordenadas del bloque vecino temporal son (xTnb, yTnb), la información de movimiento de un bloque de predicción situado en una posición modificada ((xTnb>>n)<<n), (yTnb>>n)<<n)) se puede utilizar para el candidato de fusión temporal. Específicamente, por ejemplo, cuando la unidad de almacenamiento predeterminada es una unidad de muestra 16x16 y las coordenadas del bloque vecino temporal son (xTnb, yTnb), la información de movimiento de un bloque de predicción situado en una posición modificada ((xTnb>>4)<<4), (yTnb>>4)<<4)) se puede utilizar para el candidato de fusión temporal. Alternativamente, por ejemplo, cuando la unidad de almacenamiento predeterminada es una unidad de muestra 8x8 y las coordenadas del bloque vecino temporal son (xTnb, yTnb), la información de movimiento de un bloque de predicción situado en una posición modificada ((xT nb>>3)<<3), (yT nb>>3)<<3)) se puede utilizar para el candidato de fusión temporal.
Con referencia a la FIG. 14 de nuevo, el aparato de codificación/decodificación de imágenes puede verificar si el número actual de candidatos de fusión es menor que un número máximo de candidatos de fusión (S1, 130). El número máximo de candidatos de fusión puede ser predefinido o señalizado desde el aparato de codificación de imágenes al aparato de decodificación de imágenes. Por ejemplo, el aparato de codificación de imágenes puede generar y codificar información sobre el número máximo de candidatos de fusión y transmitir la información codificada al aparato de decodificación de imágenes en forma de un flujo de bits. Cuando se cumple el número máximo de candidatos de fusión, no puede realizarse un procedimiento de adición de candidatos S1 140 posterior.
Cuando el número actual de candidatos de fusión es menor que el número máximo de candidatos de fusión como un resultado verificado de la etapa S1 130, el aparato de codificación/decodificación de imágenes puede derivar un candidato de fusión adicional según un procedimiento predeterminado y a continuación insertar el candidato de fusión adicional en la lista de candidatos de fusión (S1 140).
Cuando el número actual de candidatos de fusión es no menor que el número máximo de candidatos de fusión como resultado verificado de la etapa S1 130, el aparato de codificación/decodificación de imágenes puede finalizar la construcción de la lista de candidatos de fusión. En este caso, el aparato de codificación de imágenes puede seleccionar un candidato a fusión óptimo entre los candidatos a fusión que configuran la lista de candidatos a fusión, y enviar información de selección de candidato de señal (por ejemplo, índice de fusión) que especifica el candidato a fusión seleccionado al aparato de decodificación de imágenes. El aparato de decodificación de imágenes puede seleccionar el candidato de fusión óptimo basado en la lista de candidatos de fusión y de la información de selección de candidatos.
La información de movimiento del candidato de fusión seleccionado se puede utilizar como la información de movimiento del bloque actual, y las muestras de predicción del bloque actual se pueden derivar basado en la información de movimiento del bloque actual, como se describió anteriormente. El aparato de codificación de imágenes puede derivar las muestras residuales del bloque actual basado en las muestras de predicción y señalizar la información residual de las muestras residuales al aparato de decodificación de imágenes. El aparato de decodificación de imágenes puede generar muestras reconstruidas basado en las muestras residuales derivadas basado en la información residual y las muestras de predicción y generar la imagen reconstruida basado en las mismas, como se describió anteriormente.
Cuando se aplica un modo de omisión al bloque actual, la información de movimiento del bloque actual se puede derivar utilizando el mismo procedimiento que en el caso de aplicación del modo de fusión. Sin embargo, cuando se aplica el modo de omisión, se omite una señal residual para un bloque correspondiente y así las muestras de predicción se pueden utilizar directamente como muestras reconstruidas.
Cuando se aplica un modo MVP al bloque actual, se puede generar una lista de candidatos de predictores de vector de movimiento (MVP) utilizando un vector de movimiento de un bloque vecino espacial reconstruido (por ejemplo, el bloque vecino mostrado en la FIG. 13) y/o un vector de movimiento que corresponde al bloque vecino temporal (o bloques Col). Es decir, el vector de movimiento de los bloques vecinos espaciales reconstruidos y el vector de movimiento correspondiente a los bloques vecinos temporales se pueden utilizar como candidatos de predictores de vector de movimiento del bloque actual. Cuando se aplica predicción Bi, se genera y se utiliza individualmente una lista de candidatos MVP para derivación de información de movimiento L0 y una lista de candidatos MVP para derivación de información de movimiento L1. La información de predicción (o información sobre predicción) del bloque actual puede incluir información de selección de candidatos (por ejemplo, un indicador MVP o un Índice MVP) que indica un candidato de predictor de vector de movimiento óptimo seleccionado entre los candidatos de predictores de vector de movimiento incluidos en la lista de candidatos MVP. En este caso, una unidad de predicción selecciona un predictor de vector de movimiento de un bloque actual entre los candidatos de predictores de vector de movimiento incluidos en la lista de candidatos MVP utilizando la información de selección de candidatos. La unidad de predicción del aparato de codificación de imágenes puede obtener y codificar una diferencia de vector de movimiento (MVD) entre el vector de movimiento del bloque actual y el predictor de vector de movimiento y emitir el MVD codificado en forma de un flujo de bits. Es decir, el MVD puede obtenerse restando el predictor de vector de movimiento del vector de movimiento del bloque actual. La unidad de predicción del aparato de decodificación de imágenes puede obtener una diferencia de vector de movimiento incluido en la información sobre predicción y derivar el vector de movimiento del bloque actual a través de la adición de la diferencia de vector de movimiento y el predictor de vector de movimiento. La unidad de predicción del aparato de decodificación de imágenes puede obtener o derivar un índice de imágenes de referencia que indica una imagen de referencia de la información sobre predicción.
La FIG. 15 es una vista que ilustra esquemáticamente un procedimiento de construcción de listas de candidatos de predictor de vector de movimiento según un ejemplo de la presente descripción.
En primer lugar, puede buscarse un bloque de candidato espacial de un bloque actual y pueden insertarse bloques de candidatos disponibles en una lista de candidatos MVP (S1210). Posteriormente, se determina si el número de candidatos MVP incluidos en la lista de candidatos MVP es menor que 2 (S1220) y, cuando el número de candidatos MVP es dos, la construcción de la lista de candidatos MVP puede completarse.
En la etapa S1220, cuando el número de candidatos de bloques espaciales disponibles es menor que 2, puede buscarse un candidato temporal bloque del bloque actual y pueden insertarse bloques de candidatos disponibles en la lista de candidatos MVP (S1230). Cuando los bloques de candidatos temporales no están disponibles, puede insertarse un vector de movimiento cero en la lista de candidatos MVP, completando con ello la construcción de la lista de candidatos MVP.
Entretanto, cuando se aplica un modo MVP, se puede señalizar explícitamente un índice de imágenes de referencia. En este caso, pueden señalizarse de forma distinguible un índice de imágenes de referencia refidxL0 para predicción L0 y un índice de imágenes de referencia refidxL1 para predicción L1. Por ejemplo, cuando se aplica el modo MVP y se aplica Bi predicción, se puede señalizar tanto la información sobre refidxL0 como la información sobre refidxL1.
Como se describió anteriormente, cuando se aplica el modo MVP, se puede señalizar la información sobre MVP derivada por el aparato de codificación de imágenes para el aparato de decodificación de imágenes. La información sobre el MVD puede incluir, por ejemplo, información que especifica las componentes x e y para un valor absoluto (valor absoluto de MVD) y un signo del MVD. En este caso, cuando el valor absoluto de MVD es mayor que 0, si el valor absoluto de MVD es mayor que 1 la información que indica un resto de MVD se puede señalizar paso a paso. Por ejemplo, la información que indica si el valor absoluto de MVD es mayor que 1 se puede señalizar solo cuando un valor de información de indicador que indica si el valor absoluto de MVD es mayor que 0 es 1.
La FIG. 16 es una vista que ilustra una estructura sintáctica para transmitir MVD desde un aparato de codificación de imágenes a un aparato de decodificación de imágenes según una realización de la presente descripción.
En la FIG. 16, abs_mvd_greater0_flag[0] especifica si el valor absoluto del componente x de MVD es mayor que 0, y abs_mvd_greater0_flag[1] especifica si el valor absoluto del componente y de MVD es mayor que 0. De manera similar, abs_mvd_greater1_flag[0] especifica si el valor absoluto del componente x de MVD es mayor que 1, y abs_mvd_greater1_flag[1] especifica si el valor absoluto del componente y de MVD es mayor que 1. Como se muestra en la FIG. 16, abs_mvd_greater1_flag solo se puede transmitir cuando abs_mvd_greater0_flag es 1. En la FIG. 16, abs_mvd_minus2 puede especificar un valor obtenido restando 2 del valor absoluto de MVD, y mvd_sign_flag puede especificar si el signo de MVD es positivo o negativo. Usando la estructura sintáctica que se muestra en la FIG. 16, MVD se puede derivar como se muestra en la Ecuación 1 a continuación.
[Ecuación 1]
MVD[compIdx] = abs_mvd_greater0_flag[compldx]
*(abs_mvd_minus2[compldx] 2) *(1 - 2 * mvd_sign_flag[compldx])
Entretanto, MVD (MVDL0) para la predicción L0 y MVD (MVDL1) para la predicción L1 pueden señalizarse de manera distinguible, y la información sobre MVD puede incluir información sobre MVDL0 e/o información sobre MVDL1. Por ejemplo, cuando se aplica el modo MVP y se aplica BI predicción, se puede señalizar tanto la información sobre MVDL0 como la información sobre MVDL1.
Visión general de predicción de copia intrabloque (IBC)
A continuación se describirá la predicción IBC según la presente descripción.
La predicción IBC se puede realizar por una unidad de predicción de un aparato de codificación/decodificación de imágenes. La predicción IBC puede denominarse simplemente IBC. La IBC se puede utilizar para la codificación de imágenes de contenido/imágenes en movimiento, como la codificación de contenido de pantalla (SCC). La IBC realiza básicamente la predicción en la imagen actual pero se puede realizar de manera análoga a la interpredicción en la que se deriva un bloque de referencia dentro de la imagen actual. Es decir, IBC puede utilizar al menos una de las técnicas de interpredicción descritas en la presente descripción. Por ejemplo, IBC puede utilizar al menos uno de los procedimientos de derivación de información de movimiento (vector de movimiento) descritos anteriormente. Al menos una de las técnicas de interpredicción puede modificarse parcialmente y utilizarse teniendo en cuenta la predicción de IBC. La IBC puede referirse a una imagen actual y, por lo tanto, puede denominarse referencia de imagen actual (CPR).
Para IBC, el aparato de codificación de imágenes puede realizar una coincidencia de bloques (BM) y derivar un vector de bloque óptimo (o vector de movimiento) para un bloque actual (por ejemplo, una CU). El vector de bloques derivado (o vector de movimiento) se puede señalizar al aparato de decodificación de imágenes a través de un flujo de bits utilizando un procedimiento similar a la señalización de información de movimiento (vector de movimiento) en la interpredicción descrita anteriormente. El aparato de decodificación de imágenes puede derivar un bloque de referencia para el bloque actual en la imagen actual a través del vector de bloque señalizado (vector de movimiento), y derivar una señal de predicción (bloque predicho o muestras de predicción) para el bloque actual a través de este. Aquí, el vector de bloque (o vector de movimiento) puede especificar el desplazamiento desde el bloque actual a un bloque de referencia ubicado en un área ya reconstruida en la imagen actual. Por consiguiente, el vector de bloque (o el vector de movimiento) puede referirse a un vector de desplazamiento. A continuación, en la IBC, el vector de movimiento puede corresponder al vector de bloque o al vector de desplazamiento. El vector de movimiento del bloque actual puede incluir un vector de movimiento (vector de movimiento de luma) para un componente de luma o un vector de movimiento (vector de movimiento de croma) para un componente de croma. Por ejemplo, el vector de movimiento de luma para una CU codificada por IBC puede ser una unidad de muestra entera (es decir, precisión entera). El vector de movimiento de croma se puede recortar en unidades de muestra enteras. Como se describió anteriormente, IBC puede utilizar al menos una de las técnicas de interpredicción y, por ejemplo, el vector de movimiento de luma puede codificarse/decodificarse utilizando el modo de fusión o el modo MVP descritos anteriormente. Cuando se aplica un modo de fusión al bloque de IBC de luma, una lista de candidatos de fusión para el bloque de IBC de luma puede construirse de manera similar a una lista de candidatos de fusión en el modo inter descrito con referencia a la FIG. 14. Sin embargo, en el caso del bloque IBC de luma, no se puede utilizar un bloque vecino temporal como candidato a la fusión.
Cuando se aplica el modo MVP al bloque IBC de luma, se puede construir una lista de candidatos MVP para el bloque IBC de luma de manera similar a la lista de candidatos MVP en el modo inter descrito con referencia a la FIG. 15. Sin embargo, en el caso del bloque IBC de luma, no se puede utilizar un bloque candidato temporal como candidato MVP.
En IBC, un bloque de referencia se deriva del área ya reconstruida en la imagen actual. En este caso, con el fin de reducir el consumo de memoria y la complejidad del aparato de decodificación de imágenes, solo se puede hacer referencia a un área predefinida entre las áreas ya reconstruidas en la imagen actual. El área predefinida puede incluir una CTU actual en la que se incluye el bloque actual. Al restringir el área reconstruida referenciable al área predefinida, el modo IBC puede implementarse en hardware utilizando una memoria local en chip.
El aparato de codificación de imágenes para realizar IBC puede buscar en el área predefinida para determinar un bloque de referencia con el menor coste de RD y derivar un vector de movimiento (vector de bloque) basado en las posiciones del bloque de referencia y el bloque actual.
Se puede indicar si se aplica IBC al bloque actual como información de rendimiento de IBC a nivel de CU. Se puede señalizar información sobre un procedimiento de señalización (modo IBC MVP o modo omisión/fusión de IBC) del vector de movimiento del bloque actual. La información de rendimiento de IBC se puede utilizar para determinar el modo de predicción del bloque actual. Por consiguiente, la información de rendimiento de IBC se puede incluir en la información sobre el modo de predicción del bloque actual.
En el caso del modo de omisión/fusión de IBC, se puede señalizar un índice de candidatos de fusión para especificar un vector de bloque que se utilizará para la predicción del bloque de luma actual entre los vectores de bloque incluidos en la lista de candidatos de fusión. En este caso, la lista de candidatos de fusión puede incluir bloques vecinos codificados por IBC. La lista de candidatos de fusión se puede configurar para incluir candidatos de fusión espaciales y no para incluir candidatos de fusión temporales. Además, la lista de candidatos de fusión puede incluir además candidatos de predictor de vector de movimiento (HMVP) basados en el historial y/o candidatos por pares.
En el caso del modo IBC MVP, un valor de diferencia de vector de bloque puede codificarse usando el mismo procedimiento que un valor de diferencia de vector de movimiento del modo inter descrito anteriormente. El procedimiento de predicción de vector de bloques puede construir y usar una lista de candidatos MVP que incluye dos candidatos como predictores de manera similar al modo MVP del modo inter. Uno de los dos candidatos se puede derivar de un bloque vecino izquierdo y el otro candidato se puede derivar de un bloque vecino superior. En este caso, solo cuando el bloque vecino izquierdo o superior está codificado por IBC, los candidatos pueden derivarse del bloque vecino correspondiente. Si el bloque vecino izquierdo o superior no está disponible, por ejemplo, no está codificado por IBC, se puede incluir un vector de bloque predeterminado en la lista de candidatos MVP como predictor. Además, la información (por ejemplo, indicador) que especifica uno de los dos predictores de vectores de bloques se señaliza y se utiliza como información de selección de candidatos de manera similar al modo MVP del modo inter. La lista de candidatos de MVP puede incluir un candidato de HMVP y/o un vector de movimiento cero como el vector de bloque predeterminado.
El candidato de HMVP puede denominarse candidato de MVP basado en el historial, y un candidato de MVP utilizado antes de la codificación/decodificación del bloque actual, un candidato de fusión o un candidato de vector de bloque puede almacenarse en una lista de HMVP como candidatos de HMVP. A partir de entonces, cuando la lista de candidatos de fusión del bloque actual o la lista de candidatos de MVP no incluye un número máximo de candidatos, los candidatos almacenados en la lista de HMVP se pueden añadir a la lista de candidatos de fusión o lista de candidatos de MVP del bloque actual como candidatos de HMVP.
El candidato por pares significa un candidato derivado seleccionando dos candidatos según un orden predeterminado de entre los candidatos ya incluidos en la lista de candidatos de fusión del bloque actual y promediando los dos candidatos seleccionados.
La FIG. 17 es un diagrama de flujo que ilustra un procedimiento de codificación de vídeo/imagen basado en IBC.
La FIG. 18 es una vista que ilustra la configuración de una unidad de predicción para realizar un procedimiento de codificación de vídeo/imagen basado en IBC según la presente descripción.
El procedimiento de codificación de la FIG. 17 se puede realizar por el aparato de codificación de imágenes de la FIG. 2. Específicamente, la etapa S1410 se puede realizar por la unidad de predicción y la etapa S1420 se puede realizar por el procesador residual. Específicamente, la etapa S1420 se puede realizar por el sustractor 115. La etapa S1430 se puede realizar por el codificador 190 de entropía. La información de predicción de la etapa S1430 se puede derivar por la unidad de predicción y la información residual de la etapa S1430 se puede derivar por el procesador residual. La información residual es información sobre las muestras residuales. La información residual puede incluir información sobre coeficientes de transformada cuantificados para las muestras residuales. Como se describió anteriormente, las muestras residuales se pueden derivar como coeficientes de transformada a través del transformador 120 del aparato de codificación de imágenes, y los coeficientes de transformada se pueden derivar como coeficientes de transformada cuantificados a través del cuantificador 130. La información sobre los coeficientes de transformada cuantificados puede ser codificada por el codificador 190 de entropía a través de un procedimiento de codificación residual.
El aparato de codificación de imágenes puede realizar predicción de IBC (predicción basada en IBC) para el bloque actual (S1410). El aparato de codificación de imágenes puede derivar un modo de predicción y un vector de movimiento (vector de bloque) del bloque actual y generar muestras de predicción del bloque actual. El modo de predicción puede incluir al menos uno de los modos de interpredicción descritos anteriormente. Aquí, los procedimientos de determinación del modo de predicción, derivación del vector de movimiento y generación de muestras de predicción se pueden realizar simultáneamente o cualquier procedimiento se puede realizar antes que los demás. Por ejemplo, como se muestra en la FIG. 18, la unidad de predicción del aparato de codificación de imágenes para realizar un procedimiento de codificación de vídeo/imagen basado en IBC puede incluir una unidad de determinación del modo de predicción, una unidad de derivación del vector de movimiento y una unidad de derivación de muestras de predicción. La unidad de determinación del modo de predicción puede determinar el modo de predicción del bloque actual, la unidad de derivación del vector de movimiento puede derivar el vector de movimiento del bloque actual y la unidad de derivación de muestra de predicción puede derivar las muestras de predicción del bloque actual. Por ejemplo, la unidad de predicción del aparato de codificación de imágenes puede buscar un bloque similar al bloque actual en un área reconstruida (o un área determinada (área de búsqueda) del área reconstruida) de una imagen actual y derivar un bloque de referencia cuya diferencia con el bloque actual sea igual o menor que un cierto criterio o un mínimo. El aparato de codificación de imágenes puede derivar un vector de movimiento basado en una diferencia de desplazamiento entre el bloque de referencia y el bloque actual. El aparato de codificación de imágenes puede determinar un modo de aplicación al bloque actual entre diversos modos de interpredicción. El aparato de codificación de imagen puede comparar el coste RD para los diversos modos de predicción y determinar un modo de predicción óptimo para el bloque actual. Sin embargo, el procedimiento de determinación del modo de interpredicción del bloque actual por el aparato de codificación de imágenes no se limita al ejemplo anterior, y se pueden utilizar diversos procedimientos.
Por ejemplo, cuando un modo de omisión o un modo de fusión se aplica al bloque actual, el aparato de codificación de imágenes puede derivar candidatos de fusión a partir de bloques vecinos del bloque actual y construir una lista de candidatos de fusión utilizando los candidatos de fusión derivados. Además, el aparato de codificación de imágenes puede derivar un bloque de referencia cuya diferencia con respecto al bloque actual es igual o menor que un criterio predeterminado o un mínimo, entre bloques de referencia indicados por candidatos de fusión incluidos en la lista de candidatos de fusión. En este caso, se puede seleccionar un candidato de fusión asociado con el bloque de referencia derivado, y se puede generar información de índices de fusión que indica el candidato de fusión seleccionado y señalizarla a un aparato de decodificación de imágenes. Usando el vector de movimiento del candidato de fusión seleccionado, se puede derivar el vector de movimiento del bloque actual.
Como otro ejemplo, cuando se aplica un modo MVP al bloque actual, el aparato de codificación de imágenes puede derivar candidatos de predictores de vectores de movimiento (MVP) a partir de los bloques vecinos del bloque actual y construir una lista de candidatos MVP utilizando los candidatos MVP derivados. Además, el aparato de codificación de imágenes puede utilizar el vector de movimiento del candidato MVP seleccionado entre los candidatos MVP incluidos en la lista de candidatos MVP como el MVP del bloque actual. En este caso, por ejemplo, el vector de movimiento que indica el bloque de referencia derivado por la estimación del movimiento se puede utilizar como el vector de movimiento del bloque actual y un candidato MVP que tiene un vector de movimiento con una diferencia mínima con respecto al vector de movimiento del bloque actual entre los candidatos MVP puede convertirse en el candidato MVP seleccionado. Se puede derivar una diferencia de vector de movimiento (MVD) que es una diferencia obtenida restando el MVP del vector de movimiento del bloque actual. En este caso, se puede señalizar la información de índices que indica el candidato MVP seleccionado y la información sobre el MVD al aparato de decodificación de imágenes.
El aparato de codificación de imágenes puede derivar muestras residuales basadas en las muestras de predicción (S1420). El aparato de codificación de imágenes puede derivar las muestras residuales a través de la comparación entre muestras originales del bloque actual y las muestras de predicción. Por ejemplo, la muestra residual se puede derivar restando una muestra de predicción correspondiente de una muestra original.
El aparato de codificación de imágenes puede codificar información de imagen que incluye información de predicción e información residual (S1430). El aparato de codificación de imágenes puede emitir la información de imagen codificada en forma de un flujo de bits. La información de predicción puede incluir información de modo de predicción (por ejemplo, indicador de omisión, indicador de fusión o índice de modo, etc.) e información sobre un vector de movimiento como información relacionada con el procedimiento de predicción. Entre la información del modo de predicción, el indicador de omisión especifica si se debe aplicar el modo de omisión al bloque actual y el indicador de combinación especifica si se debe aplicar el modo de combinación al bloque actual. Alternativamente, el modo de información de predicción puede indicar uno de una pluralidad de modos de predicción, tal como un índice de modo. Cuando el indicador de omisión y el indicador de fusión son 0, se puede determinar que el modo MVP se aplica al bloque actual. La información sobre el vector de movimiento puede incluir información de selección de candidatos (p. ej., índice de fusión, indicador MVP o índice MVP) que es información para derivar el vector de movimiento. Entre la información de selección de candidatos, el índice de fusión puede señalarse cuando se aplica el modo de fusión al bloque actual y puede ser información para seleccionar uno de los candidatos a fusión incluidos en la lista de candidatos a fusión. Entre la información de selección de candidatos, el indicador MVP o el índice MVP se pueden señalar cuando se aplica el modo MVP al bloque actual y pueden ser información para seleccionar uno de los candidatos MVP incluidos en la lista de candidatos MVP. Además, la información sobre el vector de movimiento puede incluir información sobre el MVD descrito anteriormente. Además, la información sobre la información de movimiento puede incluir información que indica si se aplica predicción L0, predicción L1 o Bi predicción. La información residual es información sobre las muestras residuales. La información residual puede incluir información sobre los coeficientes de transformada cuantificados para las muestras residuales.
El flujo de bits de salida se puede almacenar en un medio de almacenamiento (digital) y transmitirse al aparato de decodificación de imágenes o puede transmitirse al aparato de decodificación de imágenes por medio de una red.
Entretanto, como se describió anteriormente, el aparato de codificación de imágenes puede generar una imagen reconstruida (una imagen que incluye muestras reconstruidas y un bloque reconstruido) basado en las muestras de referencia y las muestras residuales. Así sucede para el aparato de codificación de imágenes para derivar el mismo resultado de predicción que el realizado por el aparato de decodificación de imágenes, aumentando con ello la eficacia de codificación. Por consiguiente, el aparato de codificación de imágenes puede almacenar la imagen reconstruida (o las muestras reconstruidas y el bloque reconstruido) en una memoria y utilizarla como una imagen de referencia para interpredicción. Además, a la imagen reconstruida se le puede aplicar un procedimiento de filtrado en bucle, como se describió anteriormente.
La FIG. 19 Es un diagrama de flujo que ilustra un procedimiento de decodificación de vídeo/imágenes basado en IBC.
La FIG. 20 es una vista que ilustra una configuración de una unidad de predicción para realizar un procedimiento de decodificación de vídeo/imagen basado en IBC según la presente descripción.
El aparato de decodificación de imágenes puede realizar una operación correspondiente a la operación realizada por el aparato de codificación de imágenes. El aparato de decodificación de imágenes puede realizar una predicción IBC para un bloque actual basándose en la información de predicción recibida para derivar muestras de predicción.
El procedimiento de decodificación de la FIG. 19 se puede realizar por el aparato de decodificación de imágenes de la FIG. 3. La unidad de predicción puede realizar las etapas S1610 a S1630 y la información de predicción de la etapa S1610 y la información residual de la etapa S1640 pueden obtenerse de un flujo de bits por el decodificador 210 de entropía. El procesador residual del aparato de decodificación de imágenes puede derivar muestras residuales para un bloque actual basado en la información residual (S1640). Específicamente, el descuantificador 220 del procesador residual puede realizar descuantificación basado en coeficientes de transformada cuantificados derivados basado en la información residual para derivar coeficientes de transformada, y el transformador 230 inverso del procesador residual puede realizar transformada inversa con respecto a los coeficientes de transformada para derivar las muestras residuales para el bloque actual. La etapa S1650 se puede realizar por el sumador 235 o el reconstructor.
Específicamente, el aparato de decodificación de imágenes puede determinar el modo de predicción del bloque actual basado en la información de predicción recibida (S1610). El aparato de decodificación de imágenes puede determinar el modo de interpredicción que se aplica al bloque actual basado en el modo de información de predicción en la información de predicción.
Por ejemplo, se puede determinar si se aplica el modo de omisión al bloque actual basado en el indicador de omisión. Además, se puede determinar si se aplica el nodo de fusión o el modo MVP al bloque actual basado en el indicador de fusión. Alternativamente, se puede seleccionar uno de los diversos candidatos de modo de predicción basado en el índice de modo. Los candidatos al modo de predicción pueden incluir un modo de omisión, un modo de fusión y/o un modo MVP o pueden incluir los diversos modos de interpredicción descritos anteriormente.
El aparato de decodificación de imágenes puede derivar la información de movimiento del bloque actual basado en el modo de interpredicción determinado (S1620). Por ejemplo, al aplicar el modo de omisión o el modo de fusión al bloque actual, el aparato de decodificación de imágenes puede construir la lista de candidatos a fusión descrita anteriormente y seleccionar uno de los modos de fusión incluidos en la lista de candidatos a fusión. La selección se puede realizar basado en la información de selección de candidatos (índice de fusión) descrita anteriormente. El vector de movimiento del bloque actual se puede derivar utilizando el vector de movimiento del candidato de fusión seleccionado. Por ejemplo, el vector de movimiento del candidato de fusión seleccionado se puede utilizar como el vector de movimiento del bloque actual.
Como otro ejemplo, al aplicar el modo MVP al bloque actual, el aparato de decodificación de imágenes puede construir una lista de candidatos MVP y utilizar el vector de movimiento del candidato MVP seleccionado entre los candidatos MVP incluidos en la lista de candidatos MVP como el MVP del bloque actual. La selección se puede realizar basado en la información descrita anteriormente de selección de candidatos (indicador MVP o índice MVP). En este caso, el MVD del bloque actual se puede derivar basado en información sobre el MVD, y el vector de movimiento del bloque actual se puede derivar basado en el MVP y el MVD del bloque actual.
El aparato de decodificación de imágenes puede generar muestras de predicción del bloque actual basado en información de movimiento del bloque actual (S1630). Las muestras de predicción del bloque actual se pueden derivar utilizando las muestras del bloque de referencia indicadas por el vector de movimiento del bloque actual en la imagen actual. En algunos casos, se puede realizar además un procedimiento de filtrado de muestras de predicción para todas o algunas de las muestras de predicción del bloque actual.
Por ejemplo, como se muestra en la FIG. 20, la unidad de predicción del aparato de decodificación de imágenes para realizar un procedimiento de decodificación de vídeo/imagen basado en IBC puede incluir una unidad de determinación del modo de predicción, una unidad de derivación del vector de movimiento y una unidad de derivación de muestras de predicción. La unidad de predicción del aparato de decodificación de imágenes puede determinar el modo de predicción para el bloque actual basado en la información del modo de predicción recibida en la unidad de determinación del modo de predicción, derivar el vector de movimiento del bloque actual basado en la información recibida sobre el vector de movimiento en la unidad de derivación del vector de movimiento y derivar las muestras de predicción del bloque actual en la unidad de derivación de muestras de predicción.
El aparato de decodificación de imágenes puede generar muestras residuales del bloque actual basándose en la información residual recibida (S1640). El aparato de decodificación de imágenes puede generar las muestras reconstruidas del bloque actual basado en las muestras de predicción y las muestras residuales y generar una imagen reconstruida basado en esto (S1650). Posteriormente, se puede aplicar un procedimiento de filtrado en bucle a la imagen reconstruida como se describió anteriormente.
Como se describió anteriormente, una unidad (por ejemplo, una unidad de codificación (CU)) puede incluir un bloque de luma (bloque de codificación (CB) de luma) y un bloque de croma (croma CB). En este caso, el bloque de luminancia y el bloque de crominancia correspondientes a este pueden tener la misma información de movimiento (por ejemplo, vector de movimiento) o diferente información de movimiento. Por ejemplo, la información de movimiento del bloque de crominancia se puede derivar basado en la información de movimiento del bloque de luminancia, de modo que el bloque de luminancia y el bloque de crominancia correspondiente a este tengan la misma información de movimiento.
Visión general del formato de croma
A continuación se describirá un formato de croma. Una imagen puede codificarse en datos codificados que incluyen una matriz de componentes de luminancia (por ejemplo, Y) y dos matrices de componentes de crominancia (por ejemplo, Cb y Cr). Por ejemplo, un píxel de la imagen codificada puede incluir una muestra de luma y una muestra de croma. Se puede utilizar un formato de crominancia para representar un formato de configuración de la muestra de luma y la muestra de crominancia, y el formato de crominancia se puede denominar formato de color.
En una realización, una imagen puede codificarse en diversos formatos de croma, tales como monocromo, 4:2:0, 4:2:2 o 4:4:4. En el muestreo monocromo, puede haber una matriz de muestras y la matriz de muestras puede ser una matriz de luma. En el muestreo 4:2:0, puede haber una matriz de muestras de luma y dos matrices de muestras de croma, cada una de las dos matrices de croma puede tener una altura igual a la mitad de la de la matriz de luma y una anchura igual a la mitad de la de la matriz de luma. En el muestreo 4:2:2, puede haber una matriz de muestras de luma y dos matrices de muestras de croma, cada una de las dos matrices de croma puede tener una altura igual a la de la matriz de luma y una anchura igual a la mitad de la de la matriz de luma. En el muestreo 4:4:4, puede haber una matriz de muestras de luma y dos matrices de muestras de croma, y cada una de las dos matrices de croma puede tener una altura y anchura iguales a las de la matriz de luma.
Por ejemplo, en el muestreo 4:2:0, una muestra de crominancia puede ubicarse debajo de una muestra de luma correspondiente a la misma. En el muestreo 4:2:2, se puede ubicar una muestra de croma para superponer una muestra de luma correspondiente a la misma. En el muestreo 4:4:4, tanto una muestra de luma como una muestra de croma pueden ubicarse en una posición superpuesta.
Un formato de croma utilizado en un aparato de codificación y un aparato de decodificación puede estar predeterminado. De manera alternativa, un formato de croma puede señalizarse desde un aparato de codificación a un aparato de decodificación para usarse de manera adaptativa en el aparato de codificación y el aparato de decodificación. En una realización, el formato de croma puede señalizarse basado en al menos uno de chroma_format_idc o separate_colour_plane_flag. Al menos uno de chroma_format_idc o separate_color_plane_flag puede señalizarse a través de sintaxis de nivel superior, como DPS, VPS, SPS o PPS. Por ejemplo, chroma_format_idc y separate_color_plane_flag pueden incluirse en la sintaxis de SPS que se muestra en la FIG. 21.
Entretanto, la FIG. 22 muestra una realización de clasificación de formato de croma utilizando la señalización de chroma_format_idc y separate_color_plane_flag. chroma_format_idc puede ser una información que especifica un formato de croma que se aplica a una imagen codificada. separate_color_plane_flag puede especificar si una matriz de colores se procesa por separado en un formato de croma específico. Por ejemplo, un primer valor (por ejemplo, 0) de chroma_format_idc puede especificar un muestreo monocromo. Un segundo valor (por ejemplo, 1) de chroma_format_idc puede especificar un muestreo 4:2:0. Un tercer valor (por ejemplo, 2) de chroma_format_idc puede especificar un muestreo 4:2:2. Un cuarto valor (por ejemplo, 3) de chroma_format_idc puede especificar un muestreo 4:4:4.
En 4:4:4, se puede aplicar lo siguiente basado en el valor de separate_colour_plane_flag. Si el valor de separate_colour_plane_flag es un primer valor (por ejemplo, 0), cada una de las dos matrices de croma puede tener la misma altura y anchura que una matriz de luma. En este caso, un valor de ChromaArrayType que especifica un tipo de una matriz de muestra de croma puede establecerse igual a chroma_format_idc. Si el valor de separate_colour_plane_flag es un segundo valor (por ejemplo, 1), las matrices de muestras de luminancia, Cb y Cr se pueden procesar por separado y procesar junto con imágenes muestreadas monocromáticas. En este caso, ChromaArrayType puede establecerse en 0.
Intrapredicción en bloque de crominancia
Cuando se realiza intrapredicción en un bloque actual, se puede realizar predicción en un bloque de componente de luma (bloque de luma) del bloque actual y predicción en un bloque de componente de croma (bloque de croma). En este caso, el modo de intrapredicción para el bloque de crominancia puede establecerse por separado del modo de intrapredicción para el bloque de luminancia.
Por ejemplo, el modo de intrapredicción para el bloque de croma puede especificarse basado en la información del modo de predicción de intracroma, y la información del modo de predicción de intracroma puede señalizarse en forma de un elemento de sintaxis intra_chroma_pred_mode. Por ejemplo, la información del modo de predicción intracroma puede representar uno de un modo plano, un modo DC, un modo vertical, un modo horizontal, un modo derivado (DM) y un modo de modelo lineal de componentes cruzados (CCLM). En este caso, el modo plano puede especificar el modo de intrapredicción n.° 0, el modo DC puede especificar el modo de intrapredicción n.° 1, el modo vertical puede especificar el modo de intrapredicción n.° 26 y el modo horizontal puede especificar el modo de intrapredicción n.° 10. DM también puede denominarse como un modo directo. El CCLM también puede denominarse como un modelo lineal (LM).
Entretanto, el DM y el CCLM son modos de intrapredicción dependientes para predecir el bloque de crominancia utilizando información sobre el bloque de luma. El DM puede representar un modo en el que el mismo modo de intrapredicción que el modo de intrapredicción para el componente de luminancia se aplica como el modo de intrapredicción para el componente de crominancia. Además, el CCLM puede representar un modo de intrapredicción utilizando, como muestras de predicción del bloque de crominancia, muestras derivadas submuestreando muestras reconstruidas del bloque de luma y a continuación aplicando a y p, que son parámetros de CCLM, a muestras submuestreadas en un proceso de generación del bloque de predicción para el bloque de crominancia.
[Ecuación 2]
donde, predc(i,j) puede denotar la muestra de predicción de coordenadas (i, j) del bloque de crominancia actual en la CU actual. recL’(i,j) puede denotar la muestra reconstruida de coordenadas (i, j) del bloque de luma actual en la CU. Por ejemplo, recL’(i,j) puede denotar la muestra reconstruida submuestreada del bloque de luma actual. Los coeficientes del modelo lineal a y p pueden señalizarse o derivarse de muestras vecinas.
Unidad de datos de canalización virtual
Las unidades de datos de canalización virtual (VPDU) pueden definirse para el procesamiento de canalización dentro de una imagen. Las VPDU se pueden definir como unidades no superpuestas dentro de una imagen. En un aparato de decodificación de hardware, VPDU sucesivas pueden procesarse simultáneamente por múltiples etapas de canalización. En la mayoría de las etapas de canalización, un tamaño de VPDU puede ser aproximadamente proporcional a un tamaño de la memoria intermedia. En consecuencia, mantener el tamaño de la VPDU pequeño es importante cuando se considera el tamaño de la memoria intermedia desde el punto de vista del hardware. En la mayoría de los aparatos de decodificación de hardware, el tamaño de VPDU puede establecerse igual a un tamaño máximo de bloque de transformada (TB). Por ejemplo, el tamaño de VPDU puede ser de 64x64 (muestras de luma de 64x64). Alternativamente, en VVC, el tamaño de VPDU se puede cambiar (aumentar o disminuir) teniendo en cuenta la división de árbol ternario (TT) y/o árbol binario (BT) descrita anteriormente.
Entretanto, para mantener el tamaño de VPDU en la muestra de 64x64 muestras de luma, la división de una CU mostrada en la FIG. 23 puede estar restringida. Más específicamente, se puede aplicar al menos una de las siguientes restricciones.
Restricción 1 : No se permite la división de árboles ternarios (TT) para una CU que tenga un ancho o una altura de 128 o un ancho y una altura de 128.
Restricción 2 : La división de árbol binario (BT) horizontal no está permitida para una CU que tenga 128xN (donde, N es un número entero igual o inferior a 64 y superior a 0) (por ejemplo, la división de árbol binario horizontal no está permitida para una CU que tenga un ancho de 128 y una altura inferior a 128).
Restricción 3 : No se permite la división vertical de árboles binarios (BT) para una CU que tiene Nx128 (donde, N es un número entero igual o inferior a 64 y superior a 0) (por ejemplo, no se permite la división vertical de árboles binarios para una CU que tiene una altura de 128 y un ancho inferior a 128).
Problema de limitación de tamaño máximo del bloque de crominancia para el procesamiento de canalizaciones
Como se describió anteriormente con respecto a una estructura de división y un proceso de transformada, una CU puede dividirse para generar una pluralidad de TU. Cuando un tamaño de la CU es mayor que un tamaño máximo de TU, la CU puede dividirse en una pluralidad de TU. Por lo tanto, se puede realizar una transformada y/o una transformada inversa en cada TU. En general, un tamaño de TU máximo para un bloque de luma se puede establecer en un tamaño de transformada máximo disponible que se puede realizar por un aparato de codificación y/o un aparato de decodificación. Ejemplos de división de una CU y una TU según una realización se muestran en las FIGS. 24 a 26.
La FIG. 24 muestra un ejemplo de una TU generada dividiendo una CU de luminancia y una CU de crominancia según una realización. En una realización, un tamaño máximo de la CU de luma puede ser 64x64, un tamaño de transformada máximo disponible puede ser 32x32, y una TU no cuadrada puede no estar permitida. Por lo tanto, un tamaño máximo de un bloque de transformada de componente de luma puede ser 32x32. En esta realización, el tamaño máximo de TU se puede establecer como se muestra en la siguiente ecuación.
[Ecuación 3]
maxTbSize = ( cldx = = 0 ) ? MaxTbSizeY : MaxTbSizeY / max (SubWidthC, SubHeightC)
En la ecuación anterior, maxTbSize puede ser un tamaño máximo de un bloque de transformada (TB), y cldx puede ser un componente de color de un bloque correspondiente, cldx 0 puede indicar un componente de luma, 1 puede indicar un componente de croma Cb y 2 puede indicar un componente de croma Cr. MaxTbSizeY puede indicar un tamaño máximo de un bloque de transformada de componente de luma, SubWidthC puede indicar una relación del ancho del bloque de luma al ancho del bloque de croma, SubHeightC puede indicar una relación de la altura del bloque de luma a la altura del bloque de croma, y max(A, B) puede indicar una función para devolver el valor más grande de A y B como un valor resultante.
Según la ecuación anterior, en la realización descrita anteriormente, en el caso del bloque de luma, un tamaño máximo de un bloque de transformada se puede establecer como un tamaño máximo de un bloque de transformada de componente de luma. En este caso, el tamaño máximo del bloque de transformada de componente de luma es un valor establecido durante la codificación y puede señalizarse desde el aparato de codificación al aparato de decodificación a través de un flujo de bits.
Además, en la realización anterior, un tamaño máximo de un bloque de transformada del bloque de croma se puede establecer en un valor obtenido dividiendo el tamaño máximo del bloque de transformada del componente de luma por el valor mayor de SubWidthC y SubHeightC. Aquí, SubWidthC y SubHeightC pueden determinarse basado en chroma_format_idc y separate_color_plane_flag señalizados desde el aparato de codificación al aparato de decodificación a través de un flujo de bits como se muestra en la FIG. 23.
Según la ecuación anterior, en la realización anterior, se puede determinar que el tamaño máximo del bloque de transformada es cualquiera de una anchura mínima y una altura mínima del bloque de transformada. Por lo tanto, la división de TU del bloque de luma y el bloque de croma en la realización anterior se puede realizar como se muestra en la FIG. 24. Por ejemplo, como se muestra en la FIG. 24, en el caso de un bloque de croma que tiene un formato 4:2:2, como se determina que el tamaño máximo del bloque de transformada es 16, una CU de croma se puede dividir en una pluralidad de bloques de transformada en la forma diferente de la forma de división de una CU de luma en bloques de transformada.
La FIG. 25 muestra un ejemplo de una TU generada al dividir una CU de luma y una CU de croma según otra realización. En una realización, un tamaño máximo de la CU de luma puede ser 128x128, un tamaño de transformada máximo disponible puede ser 64x64, y una TU no cuadrada puede no estar permitida. Por lo tanto, el tamaño máximo de un bloque de transformada de componente de luma puede ser 64x64. En esta realización, el tamaño máximo del bloque de transformada se puede establecer como se muestra en la siguiente ecuación. En la siguiente ecuación, min(A, B) puede ser una función para devolver el valor más pequeño de A y B.
[Ecuación 4]
maxTbSize = ( cldx = = 0 ) ? MaxTbSizeY : MaxTbSizeY / min (SubWidthC, SubHeightC)
Entretanto, según la ecuación anterior, como el valor más grande de la anchura y la altura del bloque correspondiente se aplica como el tamaño máximo del bloque de transformada, la CU de luma y la CU de croma se pueden dividir en una pluralidad de TU como en el ejemplo de la FIG. 25.
En los ejemplos de las FIGS. 24 y 25, al dividir una CU de croma que tiene un formato 4:2:2 en TU, se divide en la forma diferente de la forma de dividir la CU de luma correspondiente en TU. Sin embargo, cuando la codificación/decodificación del bloque de crominancia se realiza con referencia al bloque de luma como en un modo DM o modo CCLM para la predicción del bloque de crominancia descrito anteriormente, la realización de la codificación (o decodificación) del bloque de crominancia correspondiente inmediatamente después de la codificación (o decodificación) del bloque de luma correspondiente al bloque de crominancia es eficiente para reducir el retraso en el procesamiento de canalización y para guardar una memoria.
Sin embargo, en el ejemplo de la FIG. 24, la codificación de dos bloques de croma 2421 y 2423 se realizará después de la codificación de un bloque de transformada de luma 2411, que requiere un procesamiento separado en una relación con diferentes formatos de color (4:4: 4 o 4:2:0). Además, en el ejemplo de la FIG.
25, la codificación de un bloque de transformada de croma 2521 se realizará después de la codificación de dos bloques de transformada de luma 2511 y 2512. De esta manera, en el procedimiento de división de TU descrito anteriormente, cuando se utiliza un formato 4:2:2, dado que un bloque de luma y un bloque de croma correspondiente al mismo no coinciden, se puede agregar un proceso separado para realizar el procesamiento de canalización o no se puede realizar el procesamiento de canalización.
Limitación de tamaño máximo del bloque de transformada de crominancia para el procesamiento de canalizaciones
A continuación, se describirá un procedimiento para establecer un tamaño de un bloque de transformada máxima para una CU de croma para satisfacer una condición para realizar la VPDU descrita anteriormente según la presente invención.
La FIG. 26 muestra un ejemplo de una TU generada al dividir una CU de luma y una CU de croma según otra realización. En una realización, un tamaño máximo de una CU de luma puede ser 128x128, un tamaño de transformada máximo disponible puede ser 64x64, y puede permitirse la división en TU no cuadrada. Por lo tanto, un tamaño máximo de un bloque de transformada de componente de luma puede ser 64x64.
Como se muestra en la FIG. 26, para la división en TU no cuadradas, se puede definir el tamaño máximo del bloque de transformada para el ancho y la altura. Específicamente, el ancho máximo (maxTbWidth) del bloque de transformada y la altura máxima (maxTbHeight) del bloque de transformada se definen como se muestra en las siguientes ecuaciones, definiendo así el tamaño máximo del bloque de transformada.
[Ecuación 5]
maxTbWidth = ( cldx = = 0 ) ? MaxTbSizeY : MaxTbSizeY / SubWidthC
[Ecuación 6]
maxTbHeight = ( cldx = = 0 ) ? MaxTbSizeY : MaxTbSizeY / SubHeightC
Como en la realización anterior, al definir el tamaño máximo del bloque de transformada como el ancho y la altura, como se muestra en el ejemplo de la FIG. 26, incluso en el caso de una CU de croma que tiene un formato 4:2:2, como en la forma de división de la CU de luma correspondiente en TU, la CU de croma se puede dividir en TU. Por lo tanto, al dividir la CU de croma en TU para que correspondan a las TU de la CU de luma, inmediatamente después de la codificación (o decodificación) del bloque de luma, se puede realizar la codificación (o decodificación) del bloque de croma correspondiente, reduciendo así el retraso en el procesamiento de la canalización.
Limitación de tamaño máximo del bloque de transformada de croma en modo de intrapredicción
A continuación, se describirá la realización de un modo de intrapredicción, al que se aplica la limitación de tamaño máximo de un bloque de transformada de croma para el procesamiento de canalización de croma descrito anteriormente. Un aparato de codificación y un aparato de decodificación pueden realizar intrapredicción limitando el tamaño máximo del bloque de transformada de croma según la siguiente descripción y las operaciones de los mismos pueden corresponder entre sí. Por lo tanto, a continuación, se describirá el funcionamiento del aparato de decodificación.
El aparato de decodificación según una realización puede generar una imagen reconstruida, realizando intrapredicción. El filtrado en bucle se puede realizar en la imagen reconstruida. El aparato de decodificación según una realización puede obtener directamente la siguiente información de un flujo de bits o derivar la siguiente información de otra información obtenida del flujo de bits para realizar intrapredicción.
- Posición de la muestra (xTb0, yTb0) que especifica la posición de la muestra superior izquierda de un bloque de transformada actual en relación con la posición de la muestra superior izquierda de una imagen actual - Parámetro nTbW que especifica el ancho del bloque de transformada actual
- Parámetro nTbH que especifica la altura del bloque de transformada actual
- Parámetro predModelntra que especifica el modo de intrapredicción de la CU actual
- Parámetro cldx que especifica un componente de color de la CU actual
El aparato de decodificación deriva una anchura máxima maxTbWidth de un bloque de transformada y una altura máxima maxTbHeight del bloque de transformada a partir de la información recibida de la siguiente manera.
[Ecuación 7]
maxTbWidth = ( cldx = = 0 ) ? MaxTbSizeY : MaxTbSizeY / SubWidthC
[Ecuación 8]
maxTbHeight = ( cldx = = 0 ) ? MaxTbSizeY : MaxTbSizeY / SubHeightC
Además, el aparato de decodificación puede derivar la posición de muestra superior izquierda (xTbY, yTbY) del bloque de transformada actual basado en si la CU actual es un componente de luma o un componente de croma de la siguiente manera.
[Ecuación 9]
[280] ( xTbY, yTbY ) = ( cldx = = 0 ) ? ( xTb0, yTb0 ) : ( xTb0 * SubWidthC, yTb0 * SubHeightC)
A continuación, el aparato de decodificación puede realizar intrapredicción realizando el siguiente procedimiento. En primer lugar, el aparato de decodificación determina si el bloque de transformada actual se divide (S2710). Específicamente, el aparato de decodificación determina si el bloque de transformada actual se divide basado en si la anchura y la altura del bloque de transformada actual son mayores que la anchura y la altura del bloque de transformada máxima. Además, el aparato de decodificación puede determinar si la división se realiza considerando además si la subdivisión intra (ISP) se aplica a la CU actual. Por ejemplo, cuando nTbW es mayor que maxTbWidth o nTbH es mayor que maxTbHeight, el aparato de decodificación puede determinar que la intrapredicción se realiza dividiendo el bloque de transformada actual. Además, incluso en este caso, el aparato de decodificación puede determinar que la intrapredicción se realiza dividiendo el bloque de transformada actual, solo cuando el ISP no se aplica a la CU actual (por ejemplo, el valor de IntraSubpartitonSplitType es NO_ISP_SPLIT, es decir, el ISP no se aplica a la CU actual).
Cuando el bloque de transformada actual se divide en bloques de transformada de capa inferior, el aparato de decodificación puede derivar el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior como se muestra en la siguiente ecuación (S2720).
[Ecuación 10]
newTbW = ( nTbW > maxTbWidth ) ? ( nTbW / 2 ) : nTbW
[Ecuación 11]
newTbH = ( nTbH > maxTbHeight) ? ( nTbH / 2 ) : nTbH
Esto se describirá con referencia a la FIG. 26. En una realización, el ancho nTbW del bloque de transformada actual puede ser el ancho de la CU de crominancia, y la altura nTbH del bloque de transformada actual puede ser la altura de la CU de crominancia. En esta realización, se puede determinar que el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior son el ancho y la altura del bloque de transformada 2621 dividido de la CU de croma. Es decir, en esta realización, el bloque de transformada actual puede ser un bloque de transformada que tiene el ancho y la altura de la CU de croma que tiene un formato 4:2:2, y los bloques de transformada de capa inferior pueden ser un primer bloque de transformada de capa inferior 2621 a un cuarto bloque de capa inferior 2624 obtenido dividiendo el bloque de transformada actual en cuatro en la forma no cuadrada.
A continuación, el aparato de decodificación puede realizar intrapredicción usando los bloques de transformada de capa inferior divididos del bloque de transformada actual (S2730). En primer lugar, el aparato de decodificación puede realizar la intrapredicción en el primer bloque de transformada de capa inferior. Con referencia a la FIG. 26, el primer bloque de transformada de capa inferior 2621 puede especificarse por la posición de muestra (xTb0, yTb0), el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior. El aparato de decodificación puede realizar la intrapredicción del primer bloque de transformada de capa inferior 2621 utilizando el modo de intrapredicción predModelntra de la CU actual y el componente de color cldx de la CU. Por lo tanto, se puede generar una imagen reconstruida modificada del primer bloque de transformada de capa inferior 2621.
Por ejemplo, el aparato de decodificación puede generar una matriz de muestras de predicción predSamples que tiene un tamaño de (newTbW)x(newTbH), realizando un proceso de predicción intramuestra. Por ejemplo, el aparato de decodificación puede realizar un proceso de predicción intramuestra usando la posición de muestra (xTb0, yTb0), el modo de intrapredicción predModelntra, el ancho de bloque de transformada (nTbW) newTbW, la altura de bloque de transformada (nTbH) newTbH, el ancho de bloque de codificación (nCbW) nTbW y la altura de bloque de codificación (nCbH) nTbH y el valor del parámetro cldx.
Además, el aparato de decodificación puede generar un remuestreo de matriz de muestra residual que tiene un tamaño de (newTbW)x(newTbH), realizando un proceso de escalado y transformada. Por ejemplo, el aparato de decodificación puede realizar el proceso de escalado y transformada basado en la posición de muestra (xTb0, yTb0), el valor del parámetro cldx, el ancho del bloque de transformada (nTbW) newTbW y la altura del bloque de transformada (nTbH) newTbH.
Además, el aparato de decodificación puede generar una imagen reconstruida, realizando un proceso de reconstrucción de imagen en un componente de color. Por ejemplo, el aparato de decodificación puede establecer una posición de bloque de transformada en (xTb0, yTb0), un ancho de bloque de transformada (nTbW) en newTbW, establecer una altura de bloque de transformada (nTbH) en newTbH, usar el valor del parámetro cldx, usar la matriz de muestra de predicción predSamples que tiene un tamaño de (newTbW)x(newTbH) y usar una matriz de muestra residual reSamples que tiene un tamaño de (newTbW)x(newTbH), realizando así un proceso de reconstrucción de imágenes en el componente de color.
A continuación, cuando nTbW es mayor que maxTbWidth, el aparato de decodificación puede realizar intrapredicción en el segundo bloque de transformada de capa inferior. El segundo bloque de transformada de capa inferior 2622 puede especificarse por la posición de muestra (xTb0 newTbW, yTb0), el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior. El aparato de decodificación puede realizar intrapredicción del segundo bloque de transformada de capa inferior 2622 usando el modo de intrapredicción predModelntra de la CU actual y el componente de color cldx de la CU actual. La intrapredicción del segundo bloque de transformada de capa inferior 2622 puede realizarse en la posición de muestra del mismo de manera similar a la intrapredicción del primer bloque de transformada de capa inferior 2621. Por lo tanto, se puede generar una imagen reconstruida modificada del segundo bloque de transformada de capa inferior 2622.
A continuación, cuando nTbH es mayor que maxTbHeight, el aparato de decodificación puede realizar intrapredicción en el tercer bloque de transformada de capa inferior. El tercer bloque de transformada de capa inferior 2623 puede especificarse por la posición de muestra (xTb0, yTb0 newTbH), el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior. De manera similar a la descripción anterior, el aparato de decodificación puede realizar intrapredicción utilizando el modo de intrapredicción predModelntra de la CU actual y el componente de color cldx de la CU actual.
A continuación, cuando nTbW es mayor que maxTbWidth y nTbH es mayor que maxTbHeight, el aparato de decodificación puede realizar intrapredicción en el cuarto bloque de transformada de capa inferior. El cuarto bloque de transformada de capa inferior 2624 puede especificarse por la posición de muestra (xTb0 newTbW, yTb0 newTbH), el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior. De manera similar a la descripción anterior, el aparato de decodificación puede realizar intrapredicción utilizando el modo de intrapredicción predModelntra de la CU actual y el componente de color cldx de la CU actual.
Entretanto, el aparato de decodificación puede realizar intrapredicción de la siguiente manera, cuando no se realiza la división del bloque de transformada actual. Por ejemplo, cuando nTbW es menor que maxTbWidth y nTbH es menor que maxTbHeight o ISP se aplica a la CU actual (por ejemplo, el valor de IntraSubpartitonSplitType no es NO_ISP_SPLIT), el bloque de transformada actual no se puede dividir.
En primer lugar, el aparato de decodificación puede derivar los parámetros nW, nH, numPartsX y numPartsY como se muestra en las siguientes ecuaciones.
[Ecuación 12]
nW, = IntraSubPartitionsSplitType = = ISP_VER_SPLIT ? nTbW / NumlntraSubPartitions : nTbW
nH = IntraSubPartitionsSplitType = = ISP_HOR_SPLIT ? nTbW / NumlntraSubPartitions : nTbW numPartsX = IntraSubPartitionsSplitType = = ISP_VER_SPLIT ? NumlntraSubPartitions : 1
numPartsY = IntraSubPartitionsSplitType = = ISP_HOR_SPLIT ? NumlntraSubPartitions : 1
En la ecuación anterior, IntraSubPartitionsSplitType especifica un tipo de división ISP de la CU actual, e ISP_VER_SPLIT especifica la división ISP vertical, e ISP_HOR_SPLIT especifica la división ISP horizontal. NumlntraSubPartitions especifica el número de subdivisiones de ISP.
A continuación, el aparato de decodificación puede generar una matriz de muestra de predicción predSamples que tiene un tamaño de (nTbW)x(nTbH), realizando el proceso de predicción intra muestra. Por ejemplo, el aparato de decodificación puede realizar el proceso de predicción intramuestra utilizando la posición de la muestra (xTb0 nW * xPartldx, yTb0 nH * yPartldx), el modo de intrapredicción predModelntra, el ancho del bloque de transformada (nTbW) nW, la altura del bloque de transformada (nTbH) nH, el ancho del bloque de codificación (nCbW) nTbW y la altura del bloque de codificación (nCbH) nTbH y el valor del parámetro cldx. Aquí, el valor del índice de división xPartldx puede tener un valor de 0 a numPartX-1, e yPartldx puede tener un valor de 0 a numPartsY-1.
A continuación, el aparato de decodificación puede generar un remuestreo de matriz de muestra residual que tiene un tamaño de (nTbW)x(nTbH), realizando un proceso de escalado y transformada. Por ejemplo, el aparato de decodificación puede realizar el proceso de escalado y transformada basado en la posición de muestra (xTbY nW * xPartldx, yTb Y nH * yPartldx), el valor del parámetro cldx, el ancho del bloque de transformada (nTbW) nW y la altura del bloque de transformada (nTbH) nH.
A continuación, el aparato de decodificación puede generar una imagen reconstruida, realizando un proceso de reconstrucción de imagen en un componente de color. Por ejemplo, el aparato de decodificación puede establecer una posición de bloque de transformada en (xTb0 nW * xPartldx, yTb0 nH * yPartldx), establecer un ancho de bloque de transformada (nTbW) en nW, establecer una altura de bloque de transformada (nTbH) en nH, utilizar el valor del cldx preestablecido y utilizar la matriz de muestra de predicción predSamples que tiene un tamaño de (nTbW)x(nTbH) y la matriz de muestra residual reSamples que tiene un tamaño de (nTbW)x(nTbH), realizando así el proceso de reconstrucción de imagen en el componente de color.
Limitación de tamaño máximo del bloque de transformada de croma en modo de interpredicción y modo de predicción IBC
A continuación, se describirá la realización de un modo de interpredicción y un modo de predicción IBC, al que se aplica la limitación de tamaño máximo de un bloque de transformada de croma para el procesamiento de canalización de croma descrito anteriormente. Un aparato de codificación y un aparato de decodificación pueden realizar interpredicción y predicción IBC limitando el tamaño máximo del bloque de transformada de croma según la siguiente descripción y las operaciones de los mismos pueden corresponder entre sí. Además, la siguiente descripción de la interpredicción puede aplicarse al modo de predicción IBC con cambio. Por lo tanto, a continuación, se describirá la operación de interpredicción de un aparato de decodificación según una realización.
El aparato de decodificación según una realización puede generar un bloque de predicción de luminancia predSamplesL que tiene un tamaño de (cbWidth)x(cbHeight) y bloques de predicción de crominancia predSamplesCb y predSamplesCr que tienen un tamaño de (cbWidth / SubWidthC)x(cbHeight / SubHeightC), realizando interpredicción. Aquí, cbWidth puede ser el ancho de una CU actual y cbHeight puede ser el alto de la CU actual.
Además, el aparato de decodificación puede generar un bloque residual de luminancia resSamplesL que tiene un tamaño de (cbWidth)x(cbHeight) y bloques residuales de crominancia resSamplesCr y resSamplesCb que tienen un tamaño de (cbWidth / SubWidthC)x(cbHeight / SubHeightC). Finalmente, el aparato de decodificación puede generar un bloque reconstruido usando los bloques de predicción y los bloques residuales.
A continuación, se describirá un procedimiento de limitación de un tamaño máximo de un bloque de transformada de croma para generar un bloque residual de una CU codificada en un modo de interpredicción por un aparato de decodificación según una realización. El aparato de decodificación puede generar un bloque reconstruido utilizando el bloque residual generado en esta etapa.
El aparato de decodificación según una realización puede obtener directamente la siguiente información de un flujo de bits o derivar la siguiente información de otra información obtenida del flujo de bits para generar un bloque residual que tiene un tamaño de (nTbW)x(nTbH) de una CU codificada en un modo de interpredicción. Aquí, nTbW y nTbH pueden establecerse en el ancho cbWidth de la CU actual y el alto cbHeight de la CU actual.
- Posición de la muestra (xTb0, yTb0) que especifica la posición de la muestra superior izquierda de un bloque de transformada actual en relación con la posición de la muestra superior izquierda de una imagen actual - Parámetro nTbW que especifica el ancho del bloque de transformada actual
- Parámetro nTbH que especifica la altura del bloque de transformada actual
- Parámetro cldx que especifica un componente de color de la CU actual
El aparato de decodificación puede derivar una anchura máxima maxTbWidth de un bloque de transformada y una altura máxima maxTbHeight del bloque de transformada a partir de la información recibida de la siguiente manera.
[Ecuación 13]
maxTbWidth = ( cldx = = 0 ) ? MaxTbSizeY : MaxTbSizeY / SubWidthC
[Ecuación 14]
maxTbHeight = ( cldx = = 0 ) ? MaxTbSizeY : MaxTbSizeY / SubHeightC
Además, el aparato de decodificación puede derivar la posición de muestra superior izquierda (xTbY, yTbY ) del bloque de transformada actual basado en si la CU actual es un componente de luma o un componente de croma de la siguiente manera.
[Ecuación 15]
( xTbY, yTbY ) = ( cldx = = 0 ) ? ( xTb0, yTb0 ) : ( xTb0 * SubWidthC, yTb0 * SubHeightC)
Como en la ecuación anterior, cuando un bloque de transformada actual es un bloque de crominancia, para reflejar el tamaño de un bloque de crominancia determinado según el formato de crominancia del bloque de transformada actual, la anchura y la altura máximas del bloque de transformada y la posición de muestra superior izquierda del bloque de transformada actual se pueden determinar basado en el formato de crominancia.
A continuación, el aparato de decodificación puede generar un bloque residual realizando el siguiente procedimiento. En primer lugar, el aparato de decodificación puede determinar si el bloque de transformada actual está dividido (S2810). Por ejemplo, el aparato de decodificación puede determinar si el bloque de transformada actual se divide basado en si el ancho y la altura del bloque de transformada actual son mayores que el ancho y la altura del bloque de transformada máximo. Por ejemplo, cuando nTbW es mayor que maxTbWidth o nTbH es mayor que maxTbHeight, el aparato de decodificación puede determinar que los bloques de transformada de capa baja se generan dividiendo el bloque de transformada actual.
Cuando el bloque de transformada actual se divide en bloques de transformada de capa inferior, como en el ejemplo anterior de intrapredicción, el aparato de decodificación puede derivar el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior como se muestra en la siguiente ecuación (S2820).
[Ecuación 16]
newTbW = ( nTbW > maxTbWidth ) ? ( nTbW / 2 ) : nTbW
[Ecuación 17]
newTbH = ( nTbH > maxTbHeight) ? ( nTbH / 2 ) : nTbH
A continuación, el aparato de decodificación puede generar un bloque residual utilizando los bloques de transformada de capa inferior divididos del bloque de transformada actual (S2830). En una realización, como se muestra en la FIG. 26, el bloque de transformada actual puede ser un bloque de transformada que tiene el ancho y la altura de una CU de croma que tiene un formato 4:2:2, y los bloques de transformada de capa inferior pueden ser un primer bloque de transformada de capa inferior 2621 a un cuarto bloque de capa inferior 2624 obtenido dividiendo el bloque de transformada actual en cuatro en la forma no cuadrada.
En primer lugar, el aparato de decodificación puede generar un bloque residual para el primer bloque de transformada de capa inferior. Con referencia a la FIG. 26, el primer bloque de transformada de capa inferior 2621 puede especificarse por la posición de muestra (xTb0, yTb0), el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior. El aparato de decodificación puede generar el bloque residual del primer bloque de transformada de capa inferior 2621 usando un componente de color cldx de una CU actual. Basado en esto, el aparato de decodificación puede generar una imagen reconstruida modificada. A partir de entonces, se puede realizar un filtrado en bucle para la imagen reconstruida modificada.
A continuación, cuando nTbW es mayor que maxTbWidth, el aparato de decodificación puede generar un bloque residual para el segundo bloque de transformada de capa inferior. El segundo bloque de transformada de capa inferior 2622 puede especificarse por una posición de muestra (xTb0 newTbW, yTb0), el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior. El aparato de decodificación puede generar el bloque residual del segundo bloque de transformada de capa inferior 2622 usando el componente de color cldx de la CU actual. Basado en esto, el aparato de decodificación puede generar una imagen reconstruida modificada. A partir de entonces, se puede realizar un filtrado en bucle para la imagen reconstruida modificada.
A continuación, cuando nTbH es mayor que maxTbHeight, el aparato de decodificación puede generar un bloque residual para el tercer bloque de transformada de capa inferior. El tercer bloque de transformada de capa inferior 2623 puede especificarse por una posición de muestra (xTb0, yTb0 newTbH), el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior. De manera similar a la descripción anterior, el aparato de decodificación puede generar el bloque residual utilizando el componente de color cldx de la CU actual.
A continuación, cuando nTbW es mayor que maxTbWidth y nTbH es mayor que maxTbHeight, el aparato de decodificación puede generar un bloque residual para el cuarto bloque de transformada de capa inferior. El cuarto bloque de transformada de capa inferior 2624 puede especificarse por una posición de muestra (xTb0 newTbW, yTb0 newTbH), el ancho newTbW del bloque de transformada de capa inferior y la altura newTbH del bloque de transformada de capa inferior. De manera similar a la descripción anterior, el aparato de decodificación puede generar el bloque residual utilizando el componente de color cldx de la CU actual.
Entretanto, cuando no se realiza la división del bloque de transformada actual, el aparato de decodificación puede realizar interpredicción de la siguiente manera. Por ejemplo, cuando nTbW es menor que maxTbWidth y nTbH es menor que maxTbHeight, el bloque de transformada actual no se puede dividir. En este caso, el aparato de decodificación puede generar un bloque residual para un modo de interpredicción, realizando un proceso de escalado y transformada utilizando una posición de muestra (xTbY, xTbY), un componente de color cldx de la CU actual, un ancho de bloque de transformada nTbW y una altura de bloque de transformada nTbH como entrada. Basado en esto, el aparato de decodificación puede generar una imagen reconstruida modificada. A partir de entonces, se puede realizar un filtrado en bucle para la imagen reconstruida modificada.
Procedimiento de codificación
A continuación, se describirá un procedimiento para realizar la codificación por un aparato de codificación según una realización usando el procedimiento descrito anteriormente con referencia a la FIG. 29. Un aparato de codificación según una realización puede incluir una memoria y al menos un procesador, y el al menos un procesador puede realizar el siguiente procedimiento de codificación.
En primer lugar, el aparato de codificación puede determinar un bloque actual dividiendo una imagen (S2910). A continuación, el aparato de codificación puede generar un bloque de intrapredicción del bloque actual (S2920). A continuación, el aparato de codificación puede generar un bloque residual del bloque actual basándose en el bloque de intrapredicción (S2930). A continuación, el aparato de codificación puede codificar información de modo de intrapredicción del bloque actual (S2940).
En este caso, el bloque de intrapredicción y el bloque residual se pueden codificar basado en el tamaño de un bloque de transformada del bloque actual, y el tamaño del bloque de transformada se puede determinar basado en un componente de color del bloque actual.
El componente de color puede ser uno cualquiera de un componente de luma y un componente de croma, y, cuando el componente de color del bloque actual es un componente de croma, el tamaño del bloque de transformada puede determinarse basado en un formato de color.
Para el ajuste de tamaño del bloque de transformada, se puede determinar un ancho del bloque de transformada basado en un ancho máximo del bloque de transformada, y el ancho máximo del bloque de transformada se puede determinar basado en un tamaño máximo y formato de color de un bloque de transformada de un bloque de luminancia correspondiente al bloque actual.
Además, para el ajuste de tamaño del bloque de transformada, una altura del bloque de transformada puede determinarse basado en una altura máxima del bloque de transformada, y la altura máxima del bloque de transformada puede determinarse basado en un tamaño máximo y formato de color de un bloque de transformada de un bloque de luminancia correspondiente al bloque actual.
Además, una posición de una muestra superior izquierda del bloque de transformada puede determinarse basado en una posición y formato de color de una muestra superior izquierda del bloque de luma correspondiente al bloque actual.
Más específicamente, la posición superior izquierda del bloque de transformada se puede determinar basado en el ancho máximo del bloque de transformada y la altura máxima del bloque de transformada, el ancho máximo del bloque de transformada se puede determinar basado en el tamaño máximo y el formato de color del bloque de transformada del bloque de luma correspondiente al bloque actual, y la altura máxima del bloque de transformada se puede determinar basado en el tamaño máximo y el formato de color del bloque de transformada del bloque de luma correspondiente al bloque actual.
Además, el bloque actual es un bloque de croma y, cuando el ancho del bloque de transformada es mayor que el ancho máximo del bloque de transformada, se puede generar una pluralidad de bloques de transformada de capa inferior dividiendo verticalmente el bloque actual. En este caso, el bloque de intrapredicción y el bloque residual pueden generarse basado en la pluralidad de bloques de transformada de capa inferior.
Más específicamente, la pluralidad de bloques de transformada de capa inferior puede incluir un primer bloque de transformada de capa inferior y un segundo bloque de transformada de capa inferior, y se determina que el ancho del primer bloque de transformada de capa inferior es el ancho máximo del bloque de transformada, y se puede determinar que la coordenada superior izquierda del segundo bloque de transformada de capa inferior es un valor desplazado de la coordenada superior izquierda del primer bloque de transformada a la derecha por el ancho máximo del bloque de transformada.
Además, el bloque actual es un bloque de croma y, cuando la altura del bloque de transformada es mayor que la altura máxima del bloque de transformada, se puede generar una pluralidad de bloques de transformada de capa inferior dividiendo horizontalmente el bloque actual. En este caso, el bloque de intrapredicción y el bloque residual pueden generarse basado en la pluralidad de bloques de transformada de capa inferior.
Más específicamente, la pluralidad de bloques de transformada de capa inferior puede incluir un tercer bloque de transformada de capa inferior y un cuarto bloque de transformada de capa inferior. Se puede determinar que la altura del tercer bloque de transformada de capa inferior es la altura máxima del bloque de transformada, y se puede determinar que la coordenada superior izquierda del cuarto bloque de transformada de capa inferior es un valor desplazado hacia abajo desde la coordenada superior izquierda del primer bloque de transformada por la altura máxima del bloque de transformada.
Como una implementación de la descripción anterior, el tamaño máximo del bloque de transformada puede ser 64x64 cuando el formato de color del bloque actual es un formato 4:4:4, el tamaño máximo del bloque de transformada puede ser 32x64 cuando el formato de color del bloque actual es un formato 4:2:2, y el tamaño máximo del bloque de transformada puede ser 32x32 cuando el formato de color del bloque actual es un formato 4:2:0.
Procedimiento de decodificación
A continuación, se describirá un procedimiento para realizar la decodificación por un aparato de decodificación según una realización que usa el procedimiento descrito anteriormente con referencia a la FIG. 30. Un aparato de decodificación según una realización puede incluir una memoria y al menos un procesador, y el al menos un procesador puede realizar el siguiente procedimiento de decodificación.
En primer lugar, el aparato de decodificación puede obtener un bloque actual dividiendo una imagen (S3010). A continuación, el aparato de decodificación puede determinar un modo de predicción del bloque actual (S3020). A continuación, cuando el modo de predicción del bloque actual es un modo de intrapredicción, el aparato de decodificación puede generar un bloque de intrapredicción del bloque actual (S3030). A continuación, el aparato de decodificación puede generar un bloque residual del bloque actual (S3040). A continuación, el aparato de decodificación puede reconstruir el bloque actual basado en el bloque de predicción y el bloque residual del bloque actual (S3050).
En este caso, el bloque de intrapredicción y el bloque residual se pueden generar basado en el tamaño de un bloque de transformada del bloque actual, y el tamaño del bloque de transformada se puede determinar basado en un componente de color del bloque actual.
El componente de color puede ser uno cualquiera de un componente de luma y un componente de croma, y, cuando el componente de color del bloque actual es un componente de croma, el tamaño del bloque de transformada puede determinarse basado en un formato de color.
Para el ajuste de tamaño del bloque de transformada, se puede determinar un ancho del bloque de transformada basado en un ancho máximo del bloque de transformada, y el ancho máximo del bloque de transformada se puede determinar basado en un tamaño máximo y formato de color de un bloque de transformada de un bloque de luminancia correspondiente al bloque actual.
Además, para el ajuste de tamaño del bloque de transformada, una altura del bloque de transformada puede determinarse basado en una altura máxima del bloque de transformada, y la altura máxima del bloque de transformada puede determinarse basado en un tamaño máximo y formato de color de un bloque de transformada de un bloque de luminancia correspondiente al bloque actual.
Además, una posición de una muestra superior izquierda del bloque de transformada puede determinarse basado en una posición y formato de color de una muestra superior izquierda del bloque de luma correspondiente al bloque actual.
Más específicamente, la posición superior izquierda de los bloques de transformada de capa inferior se puede determinar basado en el ancho máximo del bloque de transformada y la altura máxima del bloque de transformada, el ancho máximo del bloque de transformada se puede determinar basado en el tamaño máximo y el formato de color del bloque de transformada del bloque de luma correspondiente al bloque actual, y la altura máxima del bloque de transformada se puede determinar basado en el tamaño máximo y el formato de color del bloque de transformada del bloque de luma correspondiente al bloque actual.
Además, el bloque actual es un bloque de croma y, cuando el ancho del bloque de transformada es mayor que el ancho máximo del bloque de transformada, se puede generar una pluralidad de bloques de transformada de capa inferior dividiendo verticalmente el bloque actual. En este caso, el bloque de intrapredicción y el bloque residual pueden generarse basado en la pluralidad de bloques de transformada de capa inferior.
Más específicamente, la pluralidad de bloques de transformada de capa inferior puede incluir un primer bloque de transformada de capa inferior y un segundo bloque de transformada de capa inferior, y se determina que el ancho del primer bloque de transformada de capa inferior es el ancho máximo del bloque de transformada, y se puede determinar que la coordenada superior izquierda del segundo bloque de transformada de capa inferior es un valor desplazado de la coordenada superior izquierda del primer bloque de transformada a la derecha por el ancho máximo del bloque de transformada.
Además, el bloque actual es un bloque de croma y, cuando la altura del bloque de transformada es mayor que la altura máxima del bloque de transformada, se puede generar una pluralidad de bloques de transformada de capa inferior dividiendo horizontalmente el bloque actual. En este caso, el bloque de intrapredicción y el bloque residual pueden generarse basado en la pluralidad de bloques de transformada de capa inferior.
Más específicamente, la pluralidad de bloques de transformada de capa inferior puede incluir un tercer bloque de transformada de capa inferior y un cuarto bloque de transformada de capa inferior. Se puede determinar que la altura del tercer bloque de transformada de capa inferior es la altura máxima del bloque de transformada, y se puede determinar que la coordenada superior izquierda del cuarto bloque de transformada de capa inferior es un valor desplazado hacia abajo desde la coordenada superior izquierda del primer bloque de transformada por la altura máxima del bloque de transformada.
Como una implementación de la descripción anterior, el tamaño máximo del bloque de transformada puede ser 64x64 cuando el formato de color del bloque actual es un formato 4:4:4, el tamaño máximo del bloque de transformada puede ser 32x64 cuando el formato de color del bloque actual es un formato 4:2:2, y el tamaño máximo del bloque de transformada puede ser 32x32 cuando el formato de color del bloque actual es un formato 4:2:0,
Realización de la solicitud
Si bien los procedimientos ejemplares de la presente descripción descritos anteriormente se representan como una serie de operaciones por cuestiones de claridad de descripción, no se pretende limitar el orden en que se realizan las etapas, y las etapas se pueden realizar simultáneamente o en un orden diferente si fuera necesario. Para implementar el procedimiento según la presente descripción, las etapas descritas pueden incluir además otras etapas, pueden incluir etapas restantes excepto en alguna de las etapas, o pueden incluir otras etapas adicionales excepto en algunas etapas.
En la presente descripción, el aparato de codificación de imágenes o el aparato de decodificación de imágenes que realiza una operación (etapa) predeterminada puede realizar una operación (etapa) de confirmación de una condición o situación de ejecución de la operación (etapa) correspondiente. Por ejemplo, si se describe que una operación predeterminada se realiza cuando se cumple una condición predeterminada, el aparato de codificación de imágenes o el aparato de decodificación de imágenes puede realizar la operación predeterminada después de determinar si se cumple la condición predeterminada.
Las diversas realizaciones de la presente descripción no son una lista de todas las posibles combinaciones y pretenden describir aspectos representativos de la presente descripción, y los asuntos descritos en las diversas realizaciones se pueden aplicar independientemente o en combinación de dos o más.
Diversas realizaciones de la presente descripción se pueden implementar en hardware, firmware, software o una combinación de los mismos. En el caso de implementación de la presente descripción por hardware, la presente descripción se puede implementar con circuitos integrados específicos de aplicaciones (ASIC), procesadores de señales digitales (DSP), dispositivos de procesamiento de señales digitales (DSPD), dispositivos lógicos programables (PLD), matrices de puertas programables de campo (FPGA), procesadores generales, controladores, microcontroladores, microprocesadores, etc.
Además, el aparato de decodificación de imágenes y el aparato de codificación de imágenes, a los que se aplican las realizaciones de la presente descripción, pueden estar incluidos en un dispositivo de transmisión y recepción de difusión multimedia, un terminal de comunicación móvil, un dispositivo de vídeo de cine en casa, un dispositivo de vídeo de cine digital, una cámara de vigilancia, un dispositivo de chat para vídeo, un dispositivo de comunicación en tiempo real como comunicación de vídeo, un dispositivo de transmisión continua móvil, un medio de almacenamiento, una videocámara, un dispositivo de suministro de servicio de vídeo bajo demanda (VoD), un dispositivo de vídeo OTT (vídeo “over the top”, servicio de transmisión libre), un dispositivo de suministro de servicios de transmisión continua en Internet, un dispositivo de vídeo tridimensional (3D), un dispositivo de vídeo para videotelefonía, un dispositivo de vídeo médico, y similares, y se puede utilizar para procesar señales de vídeo o señales de datos. Por ejemplo, los dispositivos de vídeo OTT pueden incluir una consola de juegos, un reproductor Blu-ray, una TV con acceso a Internet, un sistema de cine en casa, un teléfono inteligente, un PC de tipo tableta, un grabador de vídeo digital (DVR), o similares.
La FIG. 31 es una vista que muestra un sistema de transmisión continua de contenidos, al que es aplicable una realización de la presente descripción.
Como se muestra en la FIG. 31, el sistema de transmisión continua de contenidos, al que se aplica la realización de la presente descripción, puede incluir en sentido extenso un servidor de codificación, un servidor de transmisión continua, un servidor web, un almacenamiento multimedia, un dispositivo de usuario y un dispositivo de entrada multimedia.
El servidor de codificación comprime el contenido introducido desde dispositivos de entrada multimedia como un teléfono inteligente, una cámara, una videocámara, etc., en datos digitales para generar un flujo de bits y transmite el flujo de bits al servidor de transmisión continua. Como otro ejemplo, cuando los dispositivos de entrada multimedia tales como teléfonos inteligentes, cámaras, videocámaras, etc., generan directamente un flujo de bits, se puede omitir el servidor de codificación.
El flujo de bits se puede generar por un procedimiento de codificación de imágenes o un aparato de codificación de imágenes, al que se aplica la realización de la presente descripción, y el servidor de transmisión continua puede almacenar temporalmente el flujo de bits en el procedimiento de transmisión o recepción del flujo de bits.
El servidor de transmisión continua transmite los datos multimedia al dispositivo de usuario basado en una solicitud de usuario a través del servidor web, y el servidor web sirve como un medio para informar al usuario de un servicio. Cuando el usuario solicita un servicio deseado del servidor web, el servidor web puede suministrarlo a un servidor de transmisión continua, y el servidor de transmisión continua puede transmitir datos multimedia al usuario. En este caso, el sistema de transmisión continua de contenido puede incluir un servidor de control separado. En este caso, el servidor de control sirve para controlar un comando/respuesta entre dispositivos en el sistema de transmisión continua de contenido.
El servidor de transmisión continua puede recibir contenidos de un almacenamiento multimedia y/o un servidor de codificación. Por ejemplo, cuando los contenidos se reciben del servidor de codificación, los contenidos se pueden recibir en tiempo real. En este caso, con el fin de proporcionar un servicio de transmisión continua sin problemas, el servidor de transmisión continua puede almacenar el flujo de bits durante un tiempo predeterminado.
Ejemplos del dispositivo de usuario pueden incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de difusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), navegación, un PC de tipo pizarra, un PC de tipo tableta, ultrabooks, dispositivos llevables (por ejemplo, relojes inteligentes, gafas inteligentes, pantallas de montaje frontal), televisores digitales, ordenadores de sobremesa, señalización digital, y similares.
Cada servidor en el sistema de transmisión continua de contenidos puede funcionar como un servidor distribuido, en cuyo caso los datos recibidos por cada servidor pueden ser distribuidos.
El alcance de la descripción incluye software u órdenes ejecutables por máquina (por ejemplo, un sistema operativo, una aplicación, firmware, un programa, etc.) para permitir que las operaciones según los procedimientos de diversas realizaciones sean ejecutadas en un aparato o un ordenador, un medio legible por ordenador no transitorio que tiene dicho software o dichas órdenes almacenados en el mismo y ejecutables en el aparato o el ordenador.
Aplicación Industrial
Las realizaciones de la presente descripción se pueden utilizar para codificar o decodificar una imagen.
Claims (11)
1. Un procedimiento de decodificación de imágenes realizado por un aparato (200) de decodificación de imágenes, comprendiendo el procedimiento de decodificación de imágenes:
obtener un bloque actual por la división de una imagen;
determinar un modo de predicción del bloque actual;
generar un bloque de intrapredicción del bloque actual, basado en que el modo de predicción del bloque actual sea un modo de intrapredicción;
generar un bloque residual del bloque actual; y
reconstruir el bloque actual basado en el bloque de intrapredicción y el bloque residual del bloque actual, caracterizado por que:
el bloque de intrapredicción y el bloque residual se generan basado en el tamaño de un bloque de transformada del bloque actual,
basado en que un componente de color del bloque actual sea un componente de croma, se deriva un ancho máximo del bloque de transformada dividiendo un tamaño máximo de un bloque de transformada de luma correspondiente al bloque actual por una relación de un ancho de un bloque de luma a un ancho de un bloque de croma, determinándose la relación basado en un formato de color del bloque actual, basado en que el componente de color del bloque actual sea el componente de crominancia, se deriva una altura máxima del bloque de transformada dividiendo el tamaño máximo del bloque de transformada de luma correspondiente al bloque actual por una relación de una altura del bloque de luma a una altura del bloque de crominancia, determinándose la relación basado en el formato de color del bloque actual, el ancho máximo del bloque de transformada se compara con un ancho del bloque de transformada para determinar si se divide el bloque de transformada verticalmente, y
la altura máxima del bloque de transformada se compara con una altura del bloque de transformada para determinar si se divide el bloque de transformada horizontalmente.
2. El procedimiento de decodificación de imagen de la reivindicación 1, en donde una posición de una muestra superior izquierda del bloque de transformada se determina basado en una posición de una muestra superior izquierda del bloque de transformada de luma correspondiente al bloque actual y el formato de color del bloque actual.
3. El procedimiento de decodificación de imágenes de la reivindicación 1,
en donde una posición superior izquierda del bloque de transformada se determina basado en el ancho máximo del bloque de transformada y la altura máxima del bloque de transformada.
4. El procedimiento de decodificación de imágenes de la reivindicación 1,
en donde el bloque actual es el bloque de crominancia,
en donde, basado en que el ancho del bloque de transformada sea mayor que el ancho máximo del bloque de transformada, se genera una pluralidad de bloques de transformada de capa inferior dividiendo verticalmente el bloque actual, y
en donde el bloque de intrapredicción y el bloque residual se generan basado en la pluralidad de bloques de transformada de capa inferior.
5. El procedimiento de decodificación de imágenes de la reivindicación 4,
en donde la pluralidad de bloques de transformada de capa inferior incluye un primer bloque de transformada de capa inferior y un segundo bloque de transformada de capa inferior,
en donde se determina que un ancho del primer bloque de transformada de capa inferior es la mitad del ancho del bloque de transformada, y
en donde se determina que una coordenada superior izquierda del segundo bloque de transformada de capa inferior es un valor desplazado de una coordenada superior izquierda del bloque de transformada a la derecha en la mitad del ancho del bloque de transformada.
6. El procedimiento de decodificación de imágenes de la reivindicación 1,
en donde el bloque actual es el bloque de crominancia,
en donde, basado en que la altura del bloque de transformada sea mayor que la altura máxima del bloque de transformada, se genera una pluralidad de bloques de transformada de capa inferior dividiendo horizontalmente el bloque actual, y
en donde el bloque de intrapredicción y el bloque residual se generan basado en la pluralidad de bloques de transformada de capa inferior.
7. El procedimiento de decodificación de imágenes de la reivindicación 6,
en donde la pluralidad de bloques de transformada de capa inferior incluye un tercer bloque de transformada de capa inferior y un cuarto bloque de transformada de capa inferior,
en donde se determina que una altura del tercer bloque de transformada de capa inferior es la mitad de la altura del bloque de transformada, y
en donde se determina que una coordenada superior izquierda del cuarto bloque de transformada de capa inferior es un valor desplazado hacia abajo desde una coordenada superior izquierda del bloque de transformada por la mitad de la altura del bloque de transformada.
8. El procedimiento de decodificación de imagen de la reivindicación 1, en donde el tamaño máximo del bloque de transformada es 64x64 basado en el formato de color del bloque actual que es un formato 4:4:4, el tamaño máximo del bloque de transformada es 32x64 basado en el formato de color del bloque actual que es un formato 4:2:2, y el tamaño máximo del bloque de transformada es 32x32 basado en el formato de color del bloque actual que es un formato 4:2:0.
9. Un procedimiento de codificación de imágenes realizado por un aparato (100) de codificación de imágenes, comprendiendo el procedimiento de codificación de imágenes:
determinar un bloque actual dividiendo una imagen;
generar un bloque de intrapredicción del bloque actual;
generar un bloque residual de un bloque actual basado en el bloque de intrapredicción;
generar información de modo de intrapredicción del bloque actual relacionada con el bloque de intrapredicción del bloque actual;
generar información residual del bloque actual basado en el bloque residual del bloque actual; y codificar la información del modo de intrapredicción del bloque actual y la información residual del bloque actual en un flujo de bits,
caracterizado por que:
el bloque de intrapredicción y el bloque residual se generan basado enl tamaño de un bloque de transformada del bloque actual,
basado en que un componente de color del bloque actual sea un componente de croma, se deriva un ancho máximo del bloque de transformada dividiendo un tamaño máximo de un bloque de transformada de luma correspondiente al bloque actual por una relación de un ancho de un bloque de luma a un ancho de un bloque de croma, determinándose la relación basado en un formato de color del bloque actual, basado en que el componente de color del bloque actual sea el componente de crominancia, se deriva una altura máxima del bloque de transformada dividiendo el tamaño máximo del bloque de transformada de luma correspondiente al bloque actual por una relación de una altura del bloque de luma a una altura del bloque de crominancia, determinándose la relación basado en el formato de color del bloque actual, el ancho máximo del bloque de transformada se compara con un ancho del bloque de transformada para determinar si se divide el bloque de transformada verticalmente, y
la altura máxima del bloque de transformada se compara con una altura del bloque de transformada para determinar si se divide el bloque de transformada horizontalmente.
10. Un medio de grabación legible por ordenador no transitorio comprendiendo instrucciones que, cuando son ejecutadas por un ordenador, hacen que el ordenador lleve a cabo el procedimiento de codificación de la reivindicación 9.
11. El procedimiento de codificación de imágenes de la reivindicación 9, comprendiendo además: generar el flujo de bits y transmitir el flujo de bits generado.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962865949P | 2019-06-24 | 2019-06-24 | |
| PCT/KR2020/008234 WO2020262963A1 (ko) | 2019-06-24 | 2020-06-24 | 크로마 블록의 최대 변환 크기 설정을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3030286T3 true ES3030286T3 (en) | 2025-06-27 |
Family
ID=74060293
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20833095T Active ES3030286T3 (en) | 2019-06-24 | 2020-06-24 | Image encoding/decoding method and apparatus using maximum transform size setting for chroma block, and method for transmitting bitstream |
Country Status (14)
| Country | Link |
|---|---|
| US (5) | US11563942B2 (es) |
| EP (2) | EP4542995A3 (es) |
| JP (2) | JP7309928B2 (es) |
| KR (2) | KR20250121458A (es) |
| CN (4) | CN114270827B (es) |
| BR (1) | BR112021026544A2 (es) |
| ES (1) | ES3030286T3 (es) |
| FI (1) | FI3989559T3 (es) |
| HR (1) | HRP20250571T1 (es) |
| HU (1) | HUE071363T2 (es) |
| MX (4) | MX2022000028A (es) |
| PL (1) | PL3989559T3 (es) |
| SI (1) | SI3989559T1 (es) |
| WO (1) | WO2020262963A1 (es) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7405870B2 (ja) * | 2019-05-24 | 2023-12-26 | 華為技術有限公司 | Ibcマージ・リストのために使用する符号化器、復号器、及び対応する方法 |
| US12470716B2 (en) * | 2022-05-16 | 2025-11-11 | Tencent America LLC | Chroma from luma prediction based on merged chroma blocks |
| CN120814227A (zh) * | 2023-01-10 | 2025-10-17 | 联发科技股份有限公司 | 用于交叉分量模型合并模式的视频编解码方法和装置 |
| WO2024214924A1 (ko) * | 2023-04-12 | 2024-10-17 | 삼성전자 주식회사 | 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치 |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101503269B1 (ko) * | 2010-04-05 | 2015-03-17 | 삼성전자주식회사 | 영상 부호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치, 및 영상 복호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치 |
| RS61146B1 (sr) | 2011-10-24 | 2020-12-31 | Innotive Ltd | Postupak i aparat za dekodiranje slike |
| KR20130049526A (ko) | 2011-11-04 | 2013-05-14 | 오수미 | 복원 블록 생성 방법 |
| KR20130049525A (ko) * | 2011-11-04 | 2013-05-14 | 오수미 | 잔차 블록 복원을 위한 역변환 방법 |
| KR101620619B1 (ko) | 2012-01-30 | 2016-05-12 | 한국전자통신연구원 | 인트라 예측 모드 부호화/복호화 방법 및 장치 |
| CN108632611A (zh) * | 2012-06-29 | 2018-10-09 | 韩国电子通信研究院 | 视频解码方法、视频编码方法和计算机可读介质 |
| AU2012232992A1 (en) | 2012-09-28 | 2014-04-17 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the transform units of a coding unit |
| US9667994B2 (en) * | 2012-10-01 | 2017-05-30 | Qualcomm Incorporated | Intra-coding for 4:2:2 sample format in video coding |
| US9743091B2 (en) * | 2012-12-17 | 2017-08-22 | Lg Electronics Inc. | Method for encoding/decoding image, and device using same |
| KR101596085B1 (ko) * | 2012-12-18 | 2016-02-19 | 한양대학교 산학협력단 | 적응적인 인트라 예측을 이용한 영상 부호화/복호화 장치 및 방법 |
| US11284103B2 (en) * | 2014-01-17 | 2022-03-22 | Microsoft Technology Licensing, Llc | Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning |
| KR101642092B1 (ko) * | 2014-10-06 | 2016-07-22 | 성균관대학교산학협력단 | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 |
| CN117201808A (zh) | 2016-08-01 | 2023-12-08 | 韩国电子通信研究院 | 图像编码/解码方法和装置以及存储比特流的记录介质 |
| KR20260038965A (ko) * | 2017-09-12 | 2026-03-19 | 삼성전자주식회사 | 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치 |
| WO2019076138A1 (en) * | 2017-10-16 | 2019-04-25 | Huawei Technologies Co., Ltd. | Encoding method and apparatus |
| CN115037931B (zh) * | 2017-10-18 | 2025-08-26 | 英迪股份有限公司 | 图像编码/解码方法和装置以及存储有比特流的记录介质 |
| CN118338017A (zh) | 2017-11-22 | 2024-07-12 | 英迪股份有限公司 | 用于解码图像的方法、用于编码图像的方法和非暂态存储介质 |
| MY205629A (en) * | 2018-06-25 | 2024-10-31 | Guangdong Oppo Mobile Telecommunications Corp Ltd | Intra-frame prediction method and device |
| CN112655206B (zh) * | 2018-08-24 | 2024-11-15 | 三星电子株式会社 | 视频解码方法和设备、以及视频编码方法和设备 |
| US20200252608A1 (en) * | 2019-02-05 | 2020-08-06 | Qualcomm Incorporated | Sub-partition intra prediction |
| US11159795B2 (en) * | 2019-03-04 | 2021-10-26 | Tencent America LLC | Max transform size control |
| KR102648569B1 (ko) * | 2019-05-13 | 2024-03-19 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 변환 스킵 모드의 블록 치수 설정들 |
-
2020
- 2020-06-24 PL PL20833095.1T patent/PL3989559T3/pl unknown
- 2020-06-24 CN CN202080058311.7A patent/CN114270827B/zh active Active
- 2020-06-24 KR KR1020257025539A patent/KR20250121458A/ko active Pending
- 2020-06-24 CN CN202511004126.0A patent/CN120583225A/zh active Pending
- 2020-06-24 HU HUE20833095A patent/HUE071363T2/hu unknown
- 2020-06-24 EP EP25162642.0A patent/EP4542995A3/en active Pending
- 2020-06-24 CN CN202511004123.7A patent/CN120568050A/zh active Pending
- 2020-06-24 ES ES20833095T patent/ES3030286T3/es active Active
- 2020-06-24 KR KR1020217042476A patent/KR102843174B1/ko active Active
- 2020-06-24 FI FIEP20833095.1T patent/FI3989559T3/fi active
- 2020-06-24 MX MX2022000028A patent/MX2022000028A/es unknown
- 2020-06-24 HR HRP20250571TT patent/HRP20250571T1/hr unknown
- 2020-06-24 WO PCT/KR2020/008234 patent/WO2020262963A1/ko not_active Ceased
- 2020-06-24 BR BR112021026544A patent/BR112021026544A2/pt active IP Right Grant
- 2020-06-24 SI SI202030616T patent/SI3989559T1/sl unknown
- 2020-06-24 JP JP2021577202A patent/JP7309928B2/ja active Active
- 2020-06-24 EP EP20833095.1A patent/EP3989559B1/en active Active
- 2020-06-24 CN CN202511004121.8A patent/CN120568049A/zh active Pending
-
2021
- 2021-12-27 US US17/562,315 patent/US11563942B2/en active Active
-
2022
- 2022-01-03 MX MX2025003023A patent/MX2025003023A/es unknown
- 2022-01-03 MX MX2025003024A patent/MX2025003024A/es unknown
- 2022-01-03 MX MX2025003022A patent/MX2025003022A/es unknown
- 2022-11-21 US US17/991,134 patent/US11770529B2/en active Active
-
2023
- 2023-06-14 US US18/209,665 patent/US12003721B2/en active Active
- 2023-07-04 JP JP2023109900A patent/JP7554881B2/ja active Active
-
2024
- 2024-04-25 US US18/646,405 patent/US12262011B2/en active Active
-
2025
- 2025-02-24 US US19/061,968 patent/US20250193396A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3023935T3 (en) | Image encoding/decoding method and device for signaling chroma component prediction information according to whether palette mode is applicable, and method for transmitting bitstream | |
| ES3030286T3 (en) | Image encoding/decoding method and apparatus using maximum transform size setting for chroma block, and method for transmitting bitstream | |
| KR102769192B1 (ko) | 크로마 블록에 대한 분할 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| KR102488925B1 (ko) | 크로마 블록의 적응적 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| US12047561B2 (en) | Image encoding/decoding method and apparatus using IBC, and method for transmitting bitstream | |
| JP7492067B2 (ja) | クロマ変換ブロックの最大サイズ制限を用いた画像符号化/復号化方法、装置、及びビットストリームを伝送する方法 | |
| JP7671393B2 (ja) | クロマ成分符号化ブロックの最大変換サイズ制限を用いた画像符号化/復号化方法、装置、及びビットストリームを伝送する方法 | |
| KR102488861B1 (ko) | 크로마 블록의 크기를 제한하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| ES3057180T3 (en) | Image encoding/decoding method and apparatus for performing prediction on basis of reconfigured prediction mode type of leaf node, and bitstream transmission method | |
| ES3004864T3 (en) | Image decoding/encoding method for performing bdof, and method for transmitting bitstream | |
| KR102937166B1 (ko) | 크로마 블록의 분할 조건을 제한하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| RU2826613C2 (ru) | Способ кодирования/декодирования изображений, оборудование и способ для передачи потока битов с использованием задания максимального размера преобразования блока сигналов цветности | |
| RU2812196C2 (ru) | Способ кодирования/декодирования изображений, оборудование и способ для передачи потока битов с использованием задания максимального размера преобразования блока сигналов цветности | |
| KR102957822B1 (ko) | 크로마 블록의 적응적 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| KR20260058234A (ko) | 크로마 블록의 적응적 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |