ES2981910T3 - Transformada en codificación de imágenes basada en intrapredicción - Google Patents
Transformada en codificación de imágenes basada en intrapredicción Download PDFInfo
- Publication number
- ES2981910T3 ES2981910T3 ES20791140T ES20791140T ES2981910T3 ES 2981910 T3 ES2981910 T3 ES 2981910T3 ES 20791140 T ES20791140 T ES 20791140T ES 20791140 T ES20791140 T ES 20791140T ES 2981910 T3 ES2981910 T3 ES 2981910T3
- Authority
- ES
- Spain
- Prior art keywords
- transform
- current block
- lfnst
- mip
- residual
- 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
- 230000009466 transformation Effects 0.000 title abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 159
- 239000011159 matrix material Substances 0.000 claims abstract description 77
- 239000013598 vector Substances 0.000 claims description 48
- 230000002123 temporal effect Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 11
- 238000012935 Averaging Methods 0.000 claims description 8
- 239000001259 polydextrose Substances 0.000 claims description 4
- 239000004375 Dextrin Substances 0.000 claims description 3
- 239000001339 acylated starch Substances 0.000 claims description 3
- 239000001248 monostarch phosphate Substances 0.000 claims description 3
- 239000000523 sample Substances 0.000 description 45
- 230000008569 process Effects 0.000 description 43
- 238000005192 partition Methods 0.000 description 28
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 25
- 238000001914 filtration Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 12
- 241000023320 Luma <angiosperm> Species 0.000 description 11
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 11
- 230000011664 signaling Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000013139 quantization Methods 0.000 description 9
- 239000013074 reference sample Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000009795 derivation Methods 0.000 description 7
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 5
- 241000209094 Oryza Species 0.000 description 5
- 235000007164 Oryza sativa Nutrition 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 5
- 235000009566 rice Nutrition 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000001131 transforming effect Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000006698 induction Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001939 inductive effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000002146 bilateral effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- NLXLAEXVIDQMFP-UHFFFAOYSA-N Ammonium chloride Substances [NH4+].[Cl-] NLXLAEXVIDQMFP-UHFFFAOYSA-N 0.000 description 1
- 239000004382 Amylase Substances 0.000 description 1
- 239000004111 Potassium silicate Substances 0.000 description 1
- 239000004115 Sodium Silicate Substances 0.000 description 1
- 239000001164 aluminium sulphate Substances 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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
-
- 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/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/18—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 set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un método de decodificación de imágenes según el presente documento comprende los pasos de: adquirir información relacionada con la predicción e información relacionada con los residuos para un bloque actual; derivar coeficientes de transformación para el bloque actual sobre la base de la información relacionada con los residuos; y generar muestras residuales del bloque actual sobre la base de los coeficientes de transformación, en donde la información relacionada con los residuos incluye información de índice de transformación no separable de baja frecuencia (LFNST) que indica información relacionada con la transformación no separable para un coeficiente de transformación de baja frecuencia del bloque actual sobre la base de un indicador de predicción intra basada en matriz (MIP). (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Transformada en codificación de imágenes basada en intrapredicción
Antecedentes de la descripción
Campo de la descripción
La presente descripción se refiere a una tecnología de codificación de imágenes y, más particularmente, a una transformada en la codificación de imágenes basada en intrapredicción.
Técnica relacionada
Recientemente, la demanda de imagen/vídeo de alta resolución y alta calidad como, por ejemplo, imagen/vídeo de 4K, 8K o más de definición ultraalta (UHD, por sus siglas en inglés), está aumentando en diversos campos. A medida que la resolución o calidad de imagen/vídeo se hace más alta, se transmite relativamente más cantidad de información o bits que para datos de imagen/vídeo convencionales. Por lo tanto, si los datos de imagen/vídeo se transmiten a través de un medio como, por ejemplo, una línea de banda ancha cableada/inalámbrica existente o se almacenan en un medio de almacenamiento heredado, los costes de transmisión y almacenamiento aumentan fácilmente.
Además, están creciendo los intereses y las demandas de contenidos de realidad virtual (VR, por sus siglas en inglés) y realidad artificial (AR, por sus siglas en inglés), y medios inmersivos como, por ejemplo, hologramas; y también están creciendo la difusión de imágenes/vídeos que presentan características de imagen/vídeo diferentes de las de una imagen/vídeo real como, por ejemplo, imágenes/vídeos de juegos.
Por lo tanto, se requiere una técnica de compresión de imagen/vídeo altamente eficiente para comprimir y transmitir, almacenar o reproducir imágenes/vídeos de alta calidad y alta resolución que muestran diversas características como se ha descrito anteriormente. El documento: ALSHIN A y otros, "Description of SDR, HDR and 360° video coding technology proposal by Samsung, Huawei, GoPro, and HiSilicon mobile application scenario",10. Reunión JVET; 10 4-2018 - 20-4-2018; SAN DIEGO;(THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-TSG. 16);URL: HTTP://PHENIX.INTEVRY.FR/JVET/, (20180414), n.2 JVET-J0024-v5, se refiere a la tecnología de codificación de vídeo SDR, HDR y 360°.
El documento JVET-N0509-v3 emitido por JVET de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, Ginebra, CH, 19-27 de marzo de 2019,"CE6-Related: NSST with 8 Coeffcients Computations",describe una simplificación de la herramienta de codificación de transformada secundaria no separable (NSST). En el texto del borrador de VVC modificado anexo publicado con JVET-N0509-v3, se describe una señalización condicional de un índice NSST basado en el uso de intrasubparticiones, ISP.
PFAFF, JONATHAN y otros en"C’E3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2)",publicado porJoint Video Experts Team (JVET)de [TU-T SG 16 WP 3 e ISO/IEC JTC I/SC 29/WG 11 como JVET-N0217 el 12 de marzo de 2019 (12-03-2019), describen detalles de una herramienta de codificación que se desarrolló adicionalmente en el modo de intrapredicción basada en matriz, MIP, de VVC.
Compendio
Según aspectos de la invención, se proveen métodos según las reivindicaciones 1 y 2 y un medio de almacenamiento legible por ordenador según la reivindicación 3. La descripción habilitante de la invención se provee a continuación con las realizaciones que implementan el proceso ilustrado en la Figura 11 y con la sintaxis que se muestra en las tablas 7 y 8, respectivamente. Las realizaciones, aspectos y elementos restantes de la siguiente descripción se proveen con fines explicativos y no definen el alcance de la invención protegida. Según una realización del presente documento, se proveen un método y un aparato para mejorar la eficiencia de codificación de imagen/vídeo.
Según una realización del presente documento, se proveen un método y un aparato para transformada en codificación de imágenes basada en intrapredicción.
Según una realización del presente documento, cuando se aplica una intrapredicción basada en matriz (MIP) a un bloque, se proveen un método y un aparato para transformar el bloque usando un índice de transformada.
Según una realización del presente documento, se proveen un método y un aparato para binarizar o codificar un índice de transformada para un bloque al que se aplica MIP.
Según una realización del presente documento, se proveen un método y un aparato para señalizar un índice de transformada para un bloque al que se aplica MIP.
Según una realización del presente documento, se proveen un método y un aparato para inducir un índice de transformada para un bloque al que se aplica MIP.
Según una realización del presente documento, se proveen un método y un aparato para señalizar un índice de transformada para un bloque al que no se aplica MIP.
Según una realización del presente documento, se provee un método de decodificación de vídeo/imagen llevado a cabo por un aparato de decodificación.
Según una realización del presente documento, se provee un aparato de decodificación para llevar a cabo la decodificación de vídeo/imagen.
Según una realización del presente documento, se provee un método de codificación de vídeo/imagen llevado a cabo por un aparato de codificación.
Según una realización del presente documento, se provee un aparato de codificación para llevar a cabo la codificación de vídeo/imagen.
Según una realización del presente documento, se provee un medio de almacenamiento digital legible por ordenador que almacena información de vídeo/imagen codificada generada según el método de codificación de vídeo/imagen descrito en al menos una de las realizaciones de este documento.
Según una realización del presente documento, se provee un medio de almacenamiento digital legible por ordenador que almacena información codificada o información de vídeo/imagen codificada que hace que un aparato de decodificación lleve a cabo el método de decodificación de vídeo/imagen descrito en al menos una de las realizaciones de este documento.
Según el presente documento, la eficiencia global de compresión de imagen/vídeo puede ser mejorada.
Según el presente documento, un índice de transformada para un bloque al que se aplica la intrap redicción basada en matriz (MIP) puede señalizarse de manera eficiente.
Según el presente documento, un índice de transformada para un bloque al que se aplica MIP puede codificarse de manera eficiente.
Según el presente documento, un índice de transformada para un bloque al que se aplica MIP puede inducirse sin señalizar por separado el índice de transformada.
Según el presente documento, en caso de que se apliquen MIP y transformada no separable de baja frecuencia (LFNST, por sus siglas en inglés), la interferencia entre ellas puede minimizarse, puede mantenerse una eficiencia de codificación óptima y puede reducirse la complejidad.
Los efectos que pueden obtenerse a través de un ejemplo detallado del presente documento no se limitan a los efectos enumerados más arriba. Por ejemplo, puede haber varios efectos técnicos que pueden ser entendidos o inducidos por una persona con experiencia ordinaria en la técnica relacionada a partir del presente documento. Por consiguiente, los efectos detallados del presente documento no se limitan a los indicados explícitamente en el presente documento, sino que pueden incluir diversos efectos que pueden entenderse o inducirse a partir de las características técnicas del presente documento.
Breve descripción de los dibujos
La Figura 1 ilustra esquemáticamente un ejemplo de un sistema de codificación de vídeo/imagen al que es aplicable el presente documento.
La Figura 2 es un diagrama que explica esquemáticamente la configuración de un aparato de codificación de vídeo/imagen al que es aplicable el presente documento.
La Figura 3 es un diagrama que explica esquemáticamente la configuración de un aparato de decodificación de vídeo/imagen al que es aplicable el presente documento.
La Figura 4 ilustra esquemáticamente una técnica de multitransformada según el presente documento.
La Figura 5 ilustra esquemáticamente una técnica de multitransformada según una realización del presente documento.
La Figura 6 ilustra a modo de ejemplo modos intradireccionales en 65 direcciones de predicción.
Las Figuras 7 y 8 son diagramas que explican la RST según una realización del presente documento.
La Figura 9 es un diagrama que ilustra un orden de exploración para bloques.
La Figura 10 es un diagrama que explica la MIP para un bloque de 8x8.
La Figura 11 es un diagrama de flujo que explica un método al que se aplican MIP y LFNST según la invención protegida.
Las Figuras 12 y 13 ilustran esquemáticamente un método de codificación de vídeo/imagen y un ejemplo de componentes relacionados según la(s) realización(es) del presente documento.
Las Figuras 14 y 15 ilustran esquemáticamente un método de decodificación de vídeo/imagen y un ejemplo de componentes relacionados según la(s) realización(es) del presente documento.
La Figura 16 ilustra un ejemplo de un sistema de transmisión continua de contenido al que son aplicables las realizaciones descritas en el presente documento.
Descripción de realizaciones a modo de ejemplo
La presente descripción puede modificarse de diversas formas, y las realizaciones específicas de la misma se describirán e ilustrarán en los dibujos. Sin embargo, las realizaciones no pretenden limitar la descripción. Los términos usados en la siguiente descripción se usan para describir simplemente realizaciones específicas, pero no pretenden limitar la descripción. Una expresión de un número singular incluye una expresión del número plural, siempre que se lea claramente de manera diferente. Los términos como, por ejemplo, "incluir" y "tener" pretenden indicar que existen características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos usados en la siguiente descripción y debe entenderse, por lo tanto, que no se excluye la posibilidad de existencia o adición de una o más características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos diferentes.
Además, cada configuración de los dibujos descritos en este documento es una ilustración independiente para explicar funciones como características que son diferentes entre sí, y no significa que cada configuración se implemente mediante hardware mutuamente diferente o software diferente. Por ejemplo, dos o más de las configuraciones pueden combinarse para formar una configuración, y una configuración también puede dividirse en múltiples configuraciones. Sin apartarse de la esencia de este documento, las realizaciones en las que las configuraciones se combinan y/o separan se incluyen en el alcance de las reivindicaciones.
En este documento, los términos "/" y "," deben interpretarse como unos que indican "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". Además, "A/B/C" puede significar "al menos uno de A, B y/o C".
Además, en el documento, el término "o" debe interpretarse como uno que indica "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) solo A, 2) solo B y/o 3) tanto A como B. En otras palabras, el término "o" en este documento debe interpretarse como uno que indica "de manera adicional o alternativa".
En la presente memoria descriptiva, "al menos uno de A y B" puede significar "solo A", "solo B" o "tanto A como B". Además, en la presente memoria descriptiva, la expresión "al menos uno de A o B" o "al menos uno de A y/o B" puede interpretarse igual que "al menos uno de A y B".
Además, en la presente memoria descriptiva, "al menos uno de A, B y C" puede significar "solo A", "solo B", "solo C" o "cualquier combinación de A, B y C". Además, "al menos uno de A, B o C" o "al menos uno de A, B y/o C" puede significar "al menos uno de A, B y C".
Este documento se refiere a la codificación de vídeo/imagen. Por ejemplo, los métodos/realizaciones descritos en este documento pueden estar relacionados con el estándar de codificación de vídeo versátil (VVC, por sus siglas en inglés) (ITU-T Rec. H.266), la norma de codificación de vídeo/imagen de próxima generación después de VVC, u otras normas relacionadas con la codificación de vídeo (p. ej., la norma de codificación de vídeo de alta eficiencia (HEVC, por sus siglas en inglés) (ITU-T Rec. H.265), la norma de codificación de vídeo esencial (EVC, por sus siglas en inglés), la norma AVS2, y similares).
En este documento, un vídeo puede referirse a una serie de imágenes a lo largo del tiempo. Una imagen se refiere, en general, a la unidad que representa una imagen en un marco de tiempo particular, y un segmento/mosaico se refiere a la unidad que constituye una parte de la imagen en términos de codificación. Un segmento/mosaico puede incluir una o más unidades de árbol de codificación (CTU, por sus siglas en inglés). Una imagen puede consistir en uno o más segmentos/mosaicos. Una imagen puede consistir en uno o más grupos de mosaicos. Un grupo de mosaicos puede incluir uno o más mosaicos.
Un píxel o un pel puede significar la unidad más pequeña que constituye una imagen. Además, 'muestra' puede usarse como un término correspondiente 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 valor de píxel/píxel de un componente luma o solo un valor de píxel/píxel de un componente croma.
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. Una unidad puede incluir un bloque luma y dos bloques croma (p. ej. cb, cr). La unidad puede usarse indistintamente con términos como, por ejemplo, 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. De manera alternativa, la muestra puede significar un valor de píxel en el dominio espacial, y cuando dicho valor de píxel se transforma al dominio de frecuencia, puede significar un coeficiente de transformada en el dominio de la frecuencia.
Además, los paréntesis usados en la presente memoria descriptiva pueden significar "por ejemplo". De manera específica, en el caso de que se exprese "predicción (intrapredicción)", puede indicarse que se propone "intrapredicción" como ejemplo de "predicción". En otras palabras, el término "predicción" en la presente memoria descriptiva no se limita a "intrapredicción", y puede indicarse que "intrapredicción" se propone como un ejemplo de "predicción". Además, incluso en el caso de que se exprese "predicción (es decir, intrapredicción)", puede indicarse que "intrapredicción" se propone como un ejemplo de "predicción".
En la presente memoria descriptiva, las características técnicas explicadas individualmente en un dibujo pueden implementarse individualmente o pueden implementarse simultáneamente.
Este documento sugiere diversas realizaciones de codificación de vídeo/imagen, y las realizaciones de más arriba también pueden llevarse a cabo en combinación entre sí a menos que se especifique lo contrario.
A continuación en el presente documento, se describirán en detalle ejemplos de la presente realización con referencia a los dibujos anexos. Además, se usan numerales de referencia iguales para indicar elementos iguales en todos los dibujos, y se omitirán las mismas descripciones de los elementos iguales.
La Figura 1 ilustra un ejemplo de un sistema de codificación de vídeo/imagen al que se puede aplicar la descripción del presente documento.
Con referencia a la Figura 1, un sistema de codificación de vídeo/imagen puede incluir un dispositivo de origen y un dispositivo de recepción. El dispositivo de origen puede transmitir información o datos de vídeo/imagen codificados al dispositivo de recepción a través de un medio o red de almacenamiento digital en forma de un archivo o flujo continuo.
El dispositivo de origen puede incluir una fuente de vídeo, un aparato de codificación y un transmisor. El dispositivo receptor puede incluir un receptor, un aparato de decodificación y un renderizador. El aparato de codificación puede denominarse aparato de codificación de vídeo/imagen, y el aparato de decodificación puede denominarse aparato de decodificación de vídeo/imagen. El transmisor puede incluirse en el aparato de codificación. El receptor puede estar incluido en el aparato de decodificación. El renderizador puede incluir una pantalla, y la pantalla puede configurarse como un dispositivo separado o un componente externo.
La fuente de vídeo puede adquirir vídeo/imagen a través de un proceso de captura, sintetizado o generación del vídeo/imagen. La fuente de vídeo puede incluir un dispositivo de captura de vídeo/imagen y/o un dispositivo generador de vídeo/imagen. El dispositivo de captura de video/imagen puede incluir, por ejemplo, una o más cámaras, archivos de video/imagen que incluyen video/imágenes capturadas previamente y similares. El dispositivo generador 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 proceso de captura de video/imagen puede ser sustituido por un proceso de generación de datos relacionados.
El aparato de codificación puede codificar vídeo/imagen de entrada. El aparato de codificación puede llevar a cabo una serie de procedimientos como, por ejemplo, predicción, transformada y cuantificación para la eficiencia de compactación y codificación. Los datos codificados (información de vídeo/imagen codificada) pueden emitirse en forma de un flujo de bits.
El transmisor puede transmitir la imagen/información de imagen codificada o datos emitidos en forma de un flujo de bits al receptor del dispositivo receptor a través de un medio de almacenamiento digital o una red en forma de un archivo o flujo continuo. El medio de almacenamiento digital puede incluir diversos medios de almacenamiento como, por ejemplo, USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor 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 puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido al aparato de decodificación.
El aparato de decodificación puede decodificar el vídeo/imagen llevando a cabo una serie de procedimientos como, por ejemplo, descuantificación, transformada inversa y predicción correspondientes al funcionamiento del aparato de codificación.
El renderizador puede renderizar el vídeo/imagen decodificada. El vídeo/imagen renderizada puede mostrarse a través de la pantalla.
La Figura 2 es un diagrama que ilustra esquemáticamente la configuración de un aparato de codificación de vídeo/imagen al que se puede aplicar la descripción del presente documento. En lo sucesivo, lo que se denomina aparato de codificación de vídeo puede incluir un aparato de codificación de imágenes.
Con referencia a la Figura 2, el aparato 200 de codificación puede incluir y configurarse con un particionador 210 de imágenes, un predictor 220, un procesador 230 residual, un codificador 240 de entropía, un sumador 250, un filtro 260 y una memoria 270. El predictor 220 puede incluir un interpredictor 221 y un intrapredictor 222. El procesador 230 residual puede incluir un transformador 232, un cuantificador 233, un descuantificador 234 y un transformador 235 inverso. El procesador 230 residual puede incluir además un restador 231. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. El particionador 210 de imágenes, el predictor 220, el procesador 230 residual, el codificador 240 de entropía, el sumador 250 y el filtro 260, que se han descrito más arriba, pueden configurarse mediante uno o más componentes de hardware (p. ej., conjuntos de chips o procesadores de codificador) según una realización. Además, la memoria 270 puede incluir una memoria intermedia de imágenes decodificadas (DPB, por sus siglas en inglés) y también puede configurarse mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 270 como un componente interno/externo.
El particionador 210 de imágenes puede dividir una imagen de entrada (o, imagen, fotograma) ingresada en el aparato 200 de codificación en una o más unidades de procesamiento. Como ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU, por sus siglas en inglés). En este caso, la unidad de codificación puede dividirse recursivamente según una estructura de árbol ternario de árbol binario de árbol cuaternario (QTBTTT, por sus siglas en inglés) de una unidad de árbol de codificación (CTU) o la unidad de codificación más grande (LCU, por sus siglas en inglés). Por ejemplo, una unidad de codificación puede dividirse en múltiples unidades de codificación de una profundidad más profunda basándose en una estructura de árbol cuaternario, una estructura de árbol binario y/o una estructura de árbol ternario. En este caso, por ejemplo, se aplica primero la estructura de árbol cuaternario y la estructura de árbol binario y/o la estructura de árbol ternario pueden aplicarse más tarde. De manera alternativa, la estructura de árbol binario también puede aplicarse en primer lugar. Un procedimiento de codificación según la presente descripción puede llevarse a cabo basándose en una unidad de codificación final que ya no se divide. En este caso, basándose en la eficiencia de codificación según características de imagen o similares, la unidad de codificación máxima puede usarse directamente como la unidad de codificación final, o según sea necesario, la unidad de codificación puede dividirse recursivamente en unidades de codificación de una profundidad más profunda, de manera que puede usarse una unidad de codificación que tiene un tamaño óptimo como la unidad de codificación final. En este caso, el procedimiento de codificación puede incluir un procedimiento como, por ejemplo, predicción, transformada y reconstrucción que se describirá más adelante. Como otro ejemplo, la unidad de procesamiento puede incluir además una unidad de predicción (PU, por sus siglas en inglés) o una unidad de transformada (TU, por sus siglas en inglés). En este caso, cada una de la unidad de predicción y la unidad de transformada puede dividirse o particionarse de la unidad de codificación final mencionada anteriormente. La unidad de predicción puede ser una unidad de predicción de muestras, y la unidad de transformada puede ser una unidad para inducir un coeficiente de transformada y/o una unidad para inducir una señal residual a partir del coeficiente de transformada.
La unidad puede usarse indistintamente con el término como, por ejemplo, un bloque o un área en algunos casos. En general, un bloque MxN puede representar muestras compuestas de M columnas y N filas o un grupo de coeficientes de transformada. La muestra puede representar, en general, un píxel o un valor del píxel, y también puede representar solo el valor de píxel/píxel de un componente luma, y también representar solo el valor de píxel/píxel de un componente croma. La muestra puede usarse como el término correspondiente a un píxel o un pel que configura una imagen.
El restador 231 puede generar una señal residual (bloque residual, muestras residuales o matriz de muestras residuales) restando una señal de predicción (bloque predicho, muestras de predicción o matriz de muestras de predicción) emitida desde el predictor 220 de una señal de imagen de entrada (bloque original, muestras originales o matriz de muestras originales), y la señal residual generada se transmite al transformador 232. El predictor 220 puede llevar a cabo la predicción para un bloque objetivo de procesamiento (en lo sucesivo, denominado "bloque actual"), y generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor 220 puede determinar si la intrapredicción o la interpredicción se aplica en un bloque actual o en una unidad de CU. Como se describe más adelante en la descripción de cada modo de predicción, el predictor puede generar varios tipos de información relacionada con la predicción, como, por ejemplo, información del modo de predicción, y transferir la información generada al codificador 240 de entropía. La información sobre la predicción puede codificarse en el codificador 240 de entropía y emitirse en forma de un flujo de bits.
El intrapredictor 222 puede predecir un bloque actual con referencia a muestras dentro de una imagen actual. Las muestras referenciadas pueden ubicarse vecinas al bloque actual, o también pueden ubicarse alejadas del bloque actual según el modo de predicción. Los modos de predicción en la intrapredicción pueden incluir múltiples modos no direccionales y múltiples modos direccionales. El modo no direccional puede incluir, por ejemplo, un modo de DC o 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 fino de la dirección de predicción. Sin embargo, esto es ilustrativo y los modos de predicción direccional que son más o menos que el número anterior pueden usarse según el ajuste. El intrapredictor 222 también puede determinar el modo de predicción aplicado al bloque actual usando el modo de predicción aplicado al bloque vecino.
El interpredictor 221 puede inducir un bloque predicho del bloque actual basándose en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este momento, para disminuir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento puede predecirse en unidades de un bloque, un subbloque o una muestra basándose 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 imagen de referencia. La información de movimiento puede incluir además información de dirección de interpredicción (predicción L0, predicción L1, predicción Bi o similares). En el caso de la interpredicción, el bloque vecino puede incluir un bloque vecino espacial existente dentro de la imagen actual y un bloque vecino temporal existente 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 también pueden ser iguales entre sí, y también pueden ser diferentes entre sí. El bloque vecino temporal puede denominarse nombre como, por ejemplo, un bloque de referencia co-ubicado, una CU co-ubicada (colCU, por sus siglas en inglés) o similar, y la imagen de referencia que incluye el bloque vecino temporal también puede denominarse imagen co-ubicada (colPic, por sus siglas en inglés). Por ejemplo, el interpredictor 221 puede configurar una lista de candidatos de información de movimiento basándose en los bloques vecinos, y generar información que indica qué candidato se usa para derivar el vector de movimiento y/o el índice de imagen de referencia del bloque actual. La interpredicción puede llevarse a cabo basándose en diversos modos de predicción y, por ejemplo, en el caso de un modo de salto y un modo de fusión, el interpredictor 221 puede usar la información de movimiento del bloque vecino como la información de movimiento del bloque actual. En el caso del modo de salto, la señal residual puede no transmitirse a diferencia del modo de fusión. Un modo de predicción de vector de movimiento (MVP, por sus siglas en inglés) puede indicar el vector de movimiento del bloque actual usando el vector de movimiento del bloque vecino como un predictor de vector de movimiento, y señalando una diferencia de vector de movimiento.
El predictor 220 puede generar una señal de predicción basándose en diversos métodos de predicción descritos a continuación. Por ejemplo, el predictor puede no solo aplicar intrapredicción o interpredicción para predecir un bloque, sino también aplicar simultáneamente tanto intrapredicción como interpredicción. Esto puede denominarse inter e intrapredicción combinada (CIIP, por sus siglas en inglés). Además, el predictor puede llevar a cabo una copia intrabloque (IBC, por sus siglas en inglés) para la predicción de un bloque. La copia intrabloque puede usarse para la codificación de imágenes de contenido/imágenes en movimiento de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC, por sus siglas en inglés). La IBC lleva a cabo básicamente la predicción en la imagen actual, pero puede llevarse a cabo de manera similar a la interpredicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede usar al menos una de las técnicas de interpredicción descritas en el presente documento.
La señal de predicción generada a través del interpredictor 221 y/o el intrapredictor 222 puede usarse para generar una señal reconstruida o para generar una señal residual. El transformador 232 puede generar coeficientes de transformada aplicando 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, por sus siglas en inglés), una transformada de seno discreta (DST, por sus siglas en inglés), una transformada basada en gráficos (GBT, por sus siglas en inglés) o una transformada condicionalmente no lineal (CNT, por sus siglas en inglés). En este caso, la GBT significa transformada obtenida de un gráfico cuando la información de relación entre píxeles se representa por el gráfico. La CNT se refiere a la transformada obtenida basándose en una señal de predicción generada usando todos los píxeles reconstruidos previamente. Además, el proceso de transformada puede aplicarse a bloques de píxeles cuadrados que tienen el mismo tamaño, o puede aplicarse a bloques que tienen un tamaño variable en lugar de un cuadrado.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitirlos al codificador 240 de entropía, y el codificador 240 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 puede denominarse información residual. El cuantificador 233 puede reorganizar los coeficientes de transformada cuantificados tipo bloque en una forma de vector unidimensional basándose en un orden de exploración de coeficientes, y generar información sobre los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados en la forma de vector unidimensional. El codificador 240 de entropía puede llevar a cabo diversos métodos de codificación como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC, por sus siglas en inglés), codificación aritmética binaria adaptativa al contexto (CABAC, por sus siglas en inglés) y similares. El codificador 240 de entropía puede codificar la información necesaria para la reconstrucción de vídeo/imagen junto con o por separado de los coeficientes de transformada cuantificados (p. ej., valores de elementos sintácticos y similares). La información codificada (p. ej., información de vídeo/imagen codificada) puede transmitirse o almacenarse en la unidad de una capa de abstracción de red (NAL, por sus siglas en inglés) 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, como, por ejemplo, un conjunto de parámetros de adaptación (APS, por sus siglas en inglés), un conjunto de parámetros de imagen (PPS, por sus siglas en inglés), un conjunto de parámetros de secuencia (SPS, por sus siglas en inglés) o un conjunto de parámetros de vídeo (VPS, por sus siglas en inglés). Además, la información de vídeo/imagen puede incluir además información de restricción general. En el presente documento, la información y/o los elementos sintácticos que se señalizan/transmiten para describirse más adelante pueden codificarse a través del procedimiento de codificación descrito más arriba, e incluirse en el flujo de bits. El flujo de bits puede transmitirse a través de una red, o puede almacenarse en un medio de almacenamiento digital. En este caso, la red puede incluir una red de radiodifusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento, como, por ejemplo, USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. Un transmisor (no se ilustra) que transmite una señal emitida desde el codificador 240 de entropía y/o una unidad de almacenamiento (no se ilustra) que almacena la señal puede configurarse como un elemento interno/externo del aparato 200 de codificación y, alternativamente, el transmisor puede incluirse en el codificador 240 de entropía.
Los coeficientes de transformada cuantificados emitidos desde el cuantificador 233 pueden usarse para generar una señal de predicción. Por ejemplo, la señal residual (bloque residual o muestras residuales) puede reconstruirse aplicando descuantificación y transformada inversa a los coeficientes de transformada cuantificados a través del descuantificador 234 y el transformador 235 inverso. El sumador 250 suma la señal residual reconstruida a la señal de predicción emitida desde el predictor 220 para generar una señal reconstruida (imagen reconstruida, bloque reconstruido, muestras reconstruidas o matriz de muestras reconstruidas). Si no hay ningún residual para el bloque objetivo de procesamiento como, por ejemplo, un caso en el que se aplica un modo de salto, el bloque predicho puede usarse como el bloque reconstruido. La señal reconstruida generada puede usarse para la intrapredicción de un siguiente bloque objetivo de procesamiento en la imagen actual, y puede usarse para la interpredicción de una imagen siguiente a través del filtrado como se describe a continuación.
Mientras tanto, el mapeo de luma con escalado de croma (LMCS, por sus siglas en inglés) puede aplicarse durante un proceso de codificación y/o reconstrucción de imágenes.
El filtro 260 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 260 puede generar una imagen reconstruida modificada aplicando diversos métodos de filtrado a la imagen reconstruida, y almacenar la imagen reconstruida modificada en la memoria 270, específicamente, en una DPB de la memoria 270. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra (SAO, por sus siglas en inglés), un filtro de bucle adaptativo, un filtro bilateral y similares. El filtro 260 puede generar diversos tipos de información relacionada con el filtrado, y transferir la información generada al codificador 290 de entropía como se describe más adelante en la descripción de cada método de filtrado. La información relacionada con el filtrado puede ser codificada por el codificador 290 de entropía y emitida en forma de un flujo de bits.
La imagen reconstruida modificada transmitida a la memoria 270 puede usarse como una imagen de referencia en el interpredictor 221. Cuando la interpredicción se aplica a través del aparato de codificación, puede evitarse la falta de coincidencia de predicción entre el aparato 200 de codificación y el aparato de decodificación y puede mejorarse la eficiencia de codificación.
La DPB de la memoria 270 puede almacenar la imagen reconstruida modificada para su uso como imagen de referencia en el interpredictor 221. La memoria 270 puede almacenar información de movimiento de un bloque del que se deriva (o codifica) la información de movimiento en la imagen actual y/o información de movimiento de bloques en la imagen, que ya se ha reconstruido. La información de movimiento almacenada puede transferirse al interpredictor 221 para utilizarse como información de movimiento del bloque vecino espacial o información de movimiento del bloque vecino temporal. La memoria 270 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual, y puede transferir las muestras reconstruidas al intrapredictor 222.
La Figura 3 es un diagrama para explicar esquemáticamente la configuración de un aparato de decodificación de vídeo/imagen al que puede aplicarse la descripción del presente documento.
Con referencia a la Figura 3, el aparato 300 de decodificación puede incluir y configurarse con un decodificador 310 de entropía, un procesador 320 residual, un predictor 330, un sumador 340, un filtro 350 y una memoria 360. El predictor 330 puede incluir un interpredictor 331 y un intrapredictor 332. El procesador 320 residual puede incluir un descuantificador 321 y un transformador 322 inverso. El decodificador 310 de entropía, el procesador 320 residual, el predictor 330, el sumador 340 y el filtro 350, que se han descrito más arriba, pueden configurarse mediante uno o más componentes de hardware (p. ej., conjuntos de chips o procesadores de decodificador) según una realización. Además, la memoria 360 puede incluir una memoria intermedia de imágenes decodificadas (DPB) y puede configurarse mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 360 como un componente interno/externo.
Cuando se introduce el flujo de bits que incluye la información de vídeo/imagen, el aparato 300 de decodificación puede reconstruir la imagen en respuesta a un proceso en el que la información de vídeo/imagen se procesa en el aparato de codificación ilustrado en la Figura 2. Por ejemplo, el aparato 300 de decodificación puede derivar las unidades/bloques basándose en información relacionada con división de bloques adquirida a partir del flujo de bits. El aparato 300 de decodificación puede llevar a cabo la decodificación usando la unidad de procesamiento aplicada al aparato de codificación. Por lo tanto, la unidad de procesamiento para la decodificación puede ser, por ejemplo, una unidad de codificación, y la unidad de codificación puede dividirse según la estructura de árbol cuaternario, la estructura de árbol binario y/o la estructura de árbol ternario de la unidad de árbol de codificación o la unidad de codificación máxima. Una o más unidades de transformada pueden derivarse de la unidad de codificación. Además, la señal de imagen reconstruida decodificada y emitida a través del aparato 300 de decodificación puede reproducirse a través de un aparato de reproducción.
El aparato 300 de decodificación puede recibir una señal emitida desde el aparato de codificación de la Figura 2 en forma de un flujo de bits, y la señal recibida puede decodificarse a través del decodificador 310 de entropía. Por ejemplo, el decodificador 310 de entropía puede analizar el flujo de bits para derivar información (p. ej., información de vídeo/imagen) necesaria para la reconstrucción de imágenes (o reconstrucción de imágenes). La información de vídeo/imagen puede incluir además información sobre diversos conjuntos de parámetros como, por ejemplo, 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 además información de restricción general. El aparato de decodificación puede decodificar además la imagen basándose 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 sintácticos descritos más adelante en este documento pueden decodificarse y obtenerse a partir del flujo de bits. Por ejemplo, el decodificador 310 de entropía decodifica la información en el flujo de bits basándose en un método de codificación como, por ejemplo, la codificación exponencial de Golomb, CAVLC o CABAC, y emite elementos sintácticos requeridos para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformada para el residual. Más específicamente, el método de decodificación por entropía CABAC puede recibir un bin correspondiente a cada elemento sintáctico en el flujo de bits, determinar un modelo de contexto usando una información de elemento sintáctico objetivo de decodificación, decodificar información de un bloque objetivo de decodificación o información de un símbolo/bin decodificado en una etapa anterior, y llevar a cabo una decodificación aritmética en el bin prediciendo una probabilidad de aparición de un bin según el modelo de contexto determinado, y generar un símbolo correspondiente al valor de cada elemento sintáctico. En este caso, el método de decodificación por entropía CABAC puede actualizar el modelo de contexto usando 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 310 de entropía puede proveerse al predictor 330, y la información sobre el residual en el que se ha llevado a cabo la decodificación de entropía en el decodificador 310 de entropía, es decir, los coeficientes de transformada cuantificados y la información de parámetros relacionados, puede introducirse en el descuantificador 321. Además, la información sobre el filtrado entre la información decodificada por el decodificador 310 de entropía puede proveerse al filtro 350. Mientras tanto, un receptor (no se ilustra) para recibir una señal emitida desde el aparato de codificación puede configurarse además como un elemento interno/externo del aparato 300 de decodificación, o el receptor puede ser un elemento constituyente del decodificador 310 de entropía. Mientras tanto, el aparato de decodificación según el presente documento puede denominarse aparato de decodificación de vídeo/imagen, y el aparato de decodificación puede clasificarse 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 310 de entropía, y el decodificador de muestras puede incluir al menos uno del descuantificador 321, el transformador 322 inverso, el predictor 330, el sumador 340, el filtro 350 y la memoria 360.
El descuantificador 321 puede descuantificar los coeficientes de transformada cuantificados para emitir los coeficientes de transformada. El descuantificador 321 puede reorganizar los coeficientes de transformada cuantificados en una forma de bloque bidimensional. En este caso, la reorganización puede llevarse a cabo basándose en un orden de exploración de coeficientes llevado a cabo por el aparato de codificación. El descuantificador 321 puede llevar a cabo la descuantificación para los coeficientes de transformada cuantificados usando un parámetro de cuantificación (p. ej., información de tamaño de etapa de cuantificación), y adquirir los coeficientes de transformada.
El transformador 322 inverso transforma inversamente los coeficientes de transformada para adquirir la señal residual (bloque residual, matriz de muestras residuales).
El predictor 330 puede llevar a cabo la predicción del bloque actual y generar un bloque predicho que incluye las muestras de predicción del bloque actual. El predictor puede determinar si se aplica la intrapredicción o si se aplica la interpredicción al bloque actual basándose en la información sobre la predicción emitida desde el decodificador 310 de entropía, y determinar un modo de intrapredicción/interpredicción específico.
El predictor puede generar una señal de predicción basándose en diversos métodos de predicción descritos a continuación. Por ejemplo, el predictor puede no solo aplicar intrapredicción o interpredicción para predecir un bloque, sino también aplicar simultáneamente intrapredicción e interpredicción. Esto puede denominarse inter e intrapredicción combinada (CIIP). Además, el predictor puede llevar a cabo una copia intrabloque (IBC) para la predicción de un bloque. La copia intrabloque puede usarse para la codificación de imágenes de contenido/imágenes en movimiento de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). La IBC lleva a cabo básicamente la predicción en la imagen actual, pero puede llevarse a cabo de manera similar a la interpredicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede usar al menos una de las técnicas de interpredicción descritas en el presente documento.
El intrapredictor 332 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas pueden estar ubicadas en las proximidades del bloque actual, o pueden estar ubicadas separadas del bloque actual según el modo de predicción. En la intrapredicción, los modos de predicción pueden incluir múltiples modos no direccionales y múltiples modos direccionales. El intrapredictor 332 puede determinar el modo de predicción a aplicar al bloque actual usando el modo de predicción aplicado al bloque vecino.
El interpredictor 331 puede derivar un bloque predicho para el bloque actual basándose 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 que se transmite en el modo de interpredicción, la información de movimiento puede predecirse en la unidad de bloques, subbloques o muestras basándose 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 imagen de referencia. La información de movimiento puede incluir además información sobre la dirección de interpredicción (predicción L0, predicción L1, predicción Bi y similares). En el caso de la interpredicción, el bloque vecino puede incluir un bloque vecino espacial existente en la imagen actual y un bloque vecino temporal existente en la imagen de referencia. Por ejemplo, el interpredictor 331 puede construir una lista de candidatos de información de movimiento basándose en bloques vecinos, y derivar un vector de movimiento del bloque actual y/o un índice de imagen de referencia basándose en la información de selección de candidatos recibida. La interpredicción puede llevarse a cabo basándose en diversos modos de predicción, y la información sobre la predicción puede incluir información que indica un modo de interpredicción para el bloque actual.
El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido o matriz de muestras reconstruidas) sumando la señal residual obtenida a la señal de predicción (bloque predicho o matriz de muestras predicha) emitida desde el predictor 330. Si no hay ningún residual para el bloque objetivo de procesamiento como, por ejemplo, un caso en el que se aplica un modo de salto, el bloque predicho puede usarse como el bloque reconstruido.
El sumador 340 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para la intrapredicción de un siguiente bloque que va a procesarse en la imagen actual y, como se describe más adelante, también puede emitirse a través de filtrado o también puede usarse para la interpredicción de una imagen siguiente.
Mientras tanto, también puede aplicarse un mapeo de luma con escalado de croma (LMCS) en el proceso de decodificación de imágenes.
El filtro 350 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 350 puede generar una imagen reconstruida modificada aplicando diversos métodos de filtrado a la imagen reconstruida, y almacenar la imagen reconstruida modificada en la memoria 360, específicamente, en una DPB de la memoria 360. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral y similares.
La imagen reconstruida (modificada) almacenada en la DPB de la memoria 360 puede usarse como una imagen de referencia en el interpredictor 331. La memoria 360 puede almacenar la información de movimiento del bloque del que se deriva (o decodifica) la información de movimiento en la imagen actual y/o la información de movimiento de los bloques en la imagen que ya se ha reconstruido. La información de movimiento almacenada puede transferirse al interpredictor 331 para utilizarse como la información de movimiento del bloque vecino espacial o la información de movimiento del bloque vecino temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual, y transferir las muestras reconstruidas al intrapredictor 332.
En la presente memoria descriptiva, las realizaciones descritas en el predictor 330, el descuantificador 321, el transformador 322 inverso y el filtro 350 del aparato 300 de decodificación también pueden aplicarse de la misma manera o correspondiente al predictor 220, descuantificador 234, transformador 235 inverso y filtro 260 del aparato 200 de codificación.
Mientras tanto, como se ha descrito más arriba, al llevar a cabo la codificación de vídeo, se lleva a cabo la predicción para mejorar la eficiencia de compresión. A través de esto, se puede generar un bloque predicho que incluye muestras de predicción para un bloque actual como un bloque a codificar (es decir, un bloque objetivo de codificación). Aquí, el bloque predicho incluye muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque predicho se deriva de la misma manera en un aparato de codificación y un aparato de decodificación, y el aparato de codificación puede señalizar información (información residual) sobre el residual entre el bloque original y el bloque predicho, en lugar de un valor de muestra original de un bloque original, al aparato de decodificación, aumentando de este modo la eficiencia de codificación de imágenes. El aparato de decodificación puede derivar un bloque residual que incluye muestras residuales en base a la información residual, añadir el bloque residual y el bloque predicho para generar bloques reconstruidos que incluyen muestras reconstruidas y generar una imagen reconstruida que incluye los bloques reconstruidos.
La información residual puede generarse a través de un procedimiento de transformada y cuantificación. Por ejemplo, el aparato de codificación puede derivar un bloque residual entre el bloque original y el bloque predicho, llevar a cabo un procedimiento de transformada en muestras residuales (matriz de muestras residuales) incluidas en el bloque residual para derivar coeficientes de transformada, llevar a cabo un procedimiento de cuantificación en los coeficientes de transformada para derivar coeficientes de transformada cuantificados e información residual relacionada con la señal al aparato de decodificación (a través de un flujo de bits). En este caso, la información residual puede incluir información de valor de los coeficientes de transformada cuantificados, información de ubicación, una técnica de transformada, un núcleo de transformada, un parámetro de cuantificación y similares. El aparato de decodificación puede llevar a cabo un procedimiento de descuantificación/transformada inversa en base a la información residual y derivar muestras residuales (o bloques residuales). El aparato de decodificación puede generar una imagen reconstruida basándose en el bloque predicho y el bloque residual. Además, para referencia para la interpredicción de una imagen posteriormente, el aparato de codificación también puede descuantificar/transformar inversamente los coeficientes de transformada cuantificados para derivar un bloque residual y generar una imagen reconstruida basándose en los mismos.
Mientras tanto, por ejemplo, el aparato de codificación puede derivar el flujo de bits codificando el valor del elemento sintáctico o los valores cuantificados del coeficiente de transformada para el residual basándose en diversos métodos de codificación 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. Además, el aparato de decodificación puede derivar el valor del elemento sintáctico o los valores cuantificados del coeficiente de transformada para el residual basándose en diversos métodos de codificación como, por ejemplo, codificación exponencial de Golomb, CAVLC, CABAC y similares.
Por ejemplo, los métodos de codificación descritos más arriba pueden llevarse a cabo como los contenidos que se describirán más adelante.
La Figura 4 ilustra a modo de ejemplo la codificación aritmética binaria adaptativa al contexto (CABAC) para codificar un elemento sintáctico.
Por ejemplo, en un proceso de codificación CABAC, si una señal de entrada es un elemento sintáctico que no es un valor binario, un valor de la señal de entrada puede transformarse en un valor binario a través de binarización. Además, si la señal de entrada ya es el valor binario (es decir, si el valor de la señal de entrada es el valor binario), la binarización puede no llevarse a cabo, pero la señal de entrada puede usarse tal cual está. Aquí, cada número binario 0 o 1 que constituye el valor binario puede denominarse un bin. Por ejemplo, si una cadena binaria después de la binarización es 110, cada uno de 1, 1 y 0 puede representarse como un bin. El bin para un elemento sintáctico puede representar el valor del elemento sintáctico. La binarización puede basarse en varios métodos de binarización como, por ejemplo, un proceso de binarización de Rice truncada o un proceso de binarización de longitud fija, y el método de binarización para un elemento sintáctico objetivo puede estar predefinido. El procedimiento de binarización puede llevarse a cabo mediante un binarizador en un codificador de entropía.
A continuación, los bins binarizados del elemento sintáctico pueden introducirse en un motor de codificación regular o un motor de codificación de derivación. El motor de codificación regular del aparato de codificación puede asignar un modelo de contexto que refleja un valor de probabilidad con respecto al bin correspondiente, y codificar el bin correspondiente basándose en el modelo de contexto asignado. El motor de codificación regular del aparato de codificación puede actualizar el modelo de contexto para el bin correspondiente después de llevar a cabo la codificación con respecto a los bins respectivos. Los bins que se codifican como los contenidos descritos más arriba pueden representarse como bins codificados por contexto.
Mientras tanto, en caso de que los bins binarizados del elemento sintáctico se introduzcan en el motor de codificación de derivación, pueden codificarse de la siguiente manera. Por ejemplo, el motor de codificación de derivación del aparato de codificación puede omitir un procedimiento para estimar la probabilidad con respecto al bin de entrada y un procedimiento para actualizar un modelo de probabilidad que se ha aplicado al bin después de la codificación. En caso de que se aplique la codificación de derivación, el aparato de codificación puede codificar el bin de entrada aplicando una distribución de probabilidad regular en lugar de asignar el modelo de contexto y, a través de esto, se puede mejorar la velocidad de codificación. El bin que se codifica como el contenido descrito más arriba puede representarse como un bin de derivación.
La decodificación por entropía puede representar un proceso para llevar a cabo el mismo proceso que la codificación por entropía descrita más arriba en orden inverso.
El aparato (decodificador de entropía) de decodificación puede decodificar información de imagen/vídeo codificada. La información de imagen/vídeo puede incluir información relacionada con la partición, información relacionada con la predicción (p. ej., información de división inter/intrapredicción, información de modo de intrapredicción, información de modo de interpredicción y similares), información residual o información relacionada con el filtrado en bucle, o puede incluir diversos elementos sintácticos sobre la misma. La codificación por entropía puede llevarse a cabo en la unidad de un elemento sintáctico.
El aparato de decodificación puede llevar a cabo la binarización de elementos sintácticos objetivo. En este caso, la binarización puede basarse en varios métodos de binarización como, por ejemplo, un proceso de binarización de Rice truncado o un proceso de binarización de longitud fija, y el método de binarización para el elemento sintáctico objetivo puede estar predefinido. El aparato de decodificación puede derivar cadenas de bin disponibles (candidatos de cadena de bin) para valores disponibles de los elementos sintácticos objetivo a través del procedimiento de binarización. El procedimiento de binarización puede llevarse a cabo por el binarizador en el decodificador de entropía.
El aparato de decodificación puede comparar la cadena de bins derivada con cadenas de bins disponibles para los elementos sintácticos correspondientes mientras decodifica o analiza secuencialmente los bins respectivos para los elementos sintácticos objetivo a partir de bit(s) de entrada en el flujo de bits. Si la cadena de bins derivada es igual a una de las cadenas de bins disponibles, el valor correspondiente a la cadena de bins correspondiente se deriva como el valor del elemento sintáctico correspondiente. Si no, el aparato de decodificación puede volver a llevar a cabo el procedimiento descrito más arriba después de analizar adicionalmente el siguiente bit en el flujo de bits. A través de dicho proceso, es posible llevar a cabo la señalización de información específica (o elemento sintáctico específico) en el flujo de bits usando un bit de longitud variable incluso sin usar un bit inicial o un bit final de la información correspondiente. A través de esto, se puede asignar un bit relativamente más pequeño con respecto a un valor más pequeño, y por lo tanto se puede mejorar la eficiencia de codificación general.
El aparato de decodificación puede llevar a cabo una decodificación basada en modelos de contexto o basada en derivaciones de los respectivos bins en la cadena de bins a partir del flujo de bits basándose en una técnica de codificación por entropía como, por ejemplo, CABAC o CAVLC.
En caso de que el elemento sintáctico se decodifique basándose en el modelo de contexto, el aparato de decodificación puede recibir el bin correspondiente al elemento sintáctico a través del flujo de bits, puede determinar un modelo de contexto usando el elemento sintáctico y decodificando información del bloque objetivo de decodificación o el bloque vecino o información de símbolos/bin decodificados en la etapa anterior, y puede derivar el valor del elemento sintáctico llevando a cabo una decodificación aritmética del bin a través de la predicción de la probabilidad de aparición del bin recibido según el modelo de contexto determinado. A continuación, el modelo de contexto del bin que se decodifica a continuación puede actualizarse basándose en el modelo de contexto determinado.
El modelo de contexto puede asignarse y actualizarse mediante bins codificados por contexto (codificados regularmente), y el modelo de contexto puede indicarse basándose en el índice de contexto (ctxIdx, por sus siglas en inglés) o el incremento del índice de contexto (ctxIn, por sus siglas en inglés). CtxIdx puede derivarse basándose en ctxInc. Específicamente, por ejemplo, el ctxIdx que representa el modelo de contexto para cada uno de los bins codificados regularmente puede ser derivado por la suma de ctxInc y desplazamiento de índice de contexto (ctxIdxOffset, por sus siglas en inglés). Por ejemplo, el ctxInc puede derivarse de manera diferente mediante bins. El ctxIdxOffset puede representarse como el valor más bajo del ctxIdx. En general, el ctxIdxOffset puede ser un valor que se usa para distinguir el mismo de los modelos de contexto para otros elementos sintácticos, y el modelo de contexto para un elemento sintáctico puede dividirse o derivarse basándose en el ctxInc.
En el procedimiento de codificación por entropía, puede determinarse si llevar a cabo la codificación a través del motor de codificación regular o llevar a cabo la codificación a través del motor de codificación de derivación y, en consecuencia, puede cambiarse un trayecto de codificación. La decodificación por entropía puede llevar a cabo el mismo proceso que la codificación por entropía en orden inverso.
Mientras tanto, por ejemplo, en caso de que el elemento de sintaxis se decodifique por derivación, el aparato de decodificación puede recibir el bin correspondiente al elemento de sintaxis a través del flujo de bits, y puede decodificar el bin de entrada aplicando una distribución de probabilidad regular. En este caso, el aparato de decodificación puede omitir un procedimiento de derivación del modelo de contexto del elemento sintáctico y un procedimiento de actualización del modelo de contexto aplicado al bin después de la decodificación.
La Figura 5 ilustra esquemáticamente una técnica de multitransformada según el presente documento.
Con referencia a la Figura 5, un transformador puede corresponder al transformador en el aparato de codificación de la Figura 2 como se describió más arriba, y un transformador inverso puede corresponder al transformador inverso en el aparato de codificación de la Figura 2, o el transformador inverso en el aparato de decodificación de la Figura 3 como se describió más arriba.
El transformador puede derivar coeficientes de transformada (primaria) llevando a cabo una transformada primaria basada en muestra residual (matriz de muestras residuales) en un bloque residual (E510). Dicha transformada primaria puede denominarse transformada de núcleo. En este caso, la transformada primaria puede basarse en la selección de transformada múltiple (MTS, por sus siglas en inglés) y, en caso de que la transformada múltiple se aplique como la transformada primaria, puede denominarse transformada multinúcleo.
Por ejemplo, la transformada de núcleos múltiples puede representar un método de transformada usando adicionalmente transformada de coseno discreta (DCT) tipo 2 (DCT-II), transformada de seno discreta (DST) tipo 7 (DST-VII), DCT tipo 8 (DCT-VIII) y/o DST tipo 1 (DST-I). Es decir, la transformada de núcleos múltiples puede representar un método de transformada para transformar una señal residual (o bloque residual) de un dominio espacial en coeficientes de transformada (o coeficientes de transformada primaria) de un dominio de frecuencia basándose en múltiples núcleos de transformada seleccionados entre el tipo 2 de DCT, el tipo 7 de DST, el tipo 8 de DCT y el tipo 1 de DST. En este caso, los coeficientes de transformada primaria pueden denominarse coeficientes de transformada temporal en el lado del transformador.
En otras palabras, en caso de que se aplique el método de transformada existente, la transformada del dominio espacial para la señal residual (o bloque residual) en el dominio de frecuencia puede aplicarse basándose en la DCT tipo 2, y pueden generarse los coeficientes de transformada. Sin embargo, a diferencia de esto, en caso de que se aplique la transformada de múltiples núcleos, la transformada del dominio espacial para la señal residual (o bloque residual) en el dominio de frecuencia puede aplicarse basándose en el tipo 2 de DCT, el tipo 7 de DST, el tipo 8 de DCT y/o el tipo 1 de DST, y pueden generarse los coeficientes de transformada (o coeficientes de transformada primaria). En este caso, el tipo 2 de DCT, el tipo 7 de DST, el tipo 8 de DCT y el tipo 1 de DST pueden denominarse tipo de transformada, conjunto de transformadas o núcleo de transformada. Los tipos de transformada DCT/DST pueden definirse basándose en funciones básicas.
En caso de que se lleve a cabo la transformada de núcleos múltiples, se puede seleccionar un núcleo de transformada vertical y/o un núcleo de transformada horizontal para un bloque objetivo entre los núcleos de transformada, se puede llevar a cabo una transformada vertical para el bloque objetivo basándose en el núcleo de transformada vertical, y se puede llevar a cabo una transformada horizontal para el bloque objetivo basándose en el núcleo de transformada horizontal. En este caso, la transformada horizontal puede representar una transformada para componentes horizontales del bloque objetivo, y la transformada vertical puede representar una transformada para componentes verticales del bloque objetivo. El núcleo de transformada vertical/núcleo de transformada horizontal puede determinarse de manera adaptativa basándose en el modo de predicción y/o el índice de transformada del bloque objetivo (CU o subbloque) que incluye el bloque residual.
Además, por ejemplo, en caso de llevar a cabo una transformada primaria aplicando MTS, las funciones básicas específicas pueden configurarse en valores especificados, y en caso de la transformada vertical o la transformada horizontal, la relación de mapeo para el núcleo de transformada puede configurarse combinando qué funciones básicas se aplican. Por ejemplo, en caso de que el núcleo de transformada de dirección horizontal esté representado por trTypeHor, y el núcleo de transformada de dirección vertical esté representado por trTypeVer, trTypeHor o trTypeVer que tienen un valor de 0 se pueden configurar como DCT2, y trTypeHor o trTypeVer que tienen un valor de 1 se pueden configurar como DCT7. trTypeHor o trTypeVer que tienen un valor de 2 pueden configurarse como DCT8.
Además, por ejemplo, para indicar uno cualquiera de varios conjuntos de núcleos de transformada, puede codificarse un índice MTS, y puede señalizarse información de índice MTS al aparato de decodificación. En este caso, el índice MTS puede representarse como elemento sintáctico tu_mts_idx o elemento sintáctico mts_idx. Por ejemplo, si el índice MTS es 0, puede representar que los valores de trTypeHor y trTypeVer son todos 0, y si el índice MTS es 1, puede representar que los valores de trTypeHor y trTypeVer son todos 1. Si el índice MTS es 2, puede representar que el valor de trTypeHor es 2 y el valor de trTypeVer es 1, y si el índice MTS es 3, puede representar que el valor de trTypeHor es 1 y el valor de trTypeVer es 2. Si el índice MTS es 4, puede representar que los valores de trTypeHor y trTypeVer son todos 2. Por ejemplo, un conjunto de núcleos de transformada según el índice MTS puede representarse como en la siguiente tabla.
El transformador puede derivar coeficientes de transformada (secundaria) modificados llevando a cabo una transformada secundaria en base a los coeficientes de transformada (primaria) (E520). La transformada primaria puede ser una transformada del dominio espacial en el dominio de frecuencia, y la transformada secundaria puede representar una transformada en una expresión más compresiva usando una correlación existente entre los coeficientes de transformada (primaria).
Por ejemplo, la transformada secundaria puede incluir una transformada no separable. En este caso, la transformada secundaria puede denominarse transformada secundaria no separable (NSST) o transformada secundaria no separable dependiente del modo (MDNSST, por sus siglas en inglés). La transformada secundaria no separable puede representar una transformada para generar coeficientes de transformada modificados (o coeficientes de transformada secundaria) para la señal residual transformando secundariamente los coeficientes de transformada (primaria) derivados a través de la transformada primaria basándose en una matriz de transformada no separable. En este caso, la transformada vertical y la transformada horizontal pueden no aplicarse por separado (o de manera independiente) con respecto a los coeficientes de transformada (primaria) basándose en la matriz de transformada no separable, sino que pueden aplicarse todas a la vez.
En otras palabras, la transformada secundaria no separable puede representar un método de transformada para reorganizar, por ejemplo, señales bidimensionales (coeficientes de transformada) a una señal unidimensional a través de una dirección determinada específicamente (p. ej., dirección de primero fila o dirección de primero columna), sin separar los coeficientes de transformada (primaria) en componentes verticales y componentes horizontales, y luego generar coeficientes de transformada modificados (o coeficientes de transformada secundaria) en base a la matriz de transformada no separable.
Por ejemplo, la dirección (u orden) de primero fila puede representar una disposición de un bloque de MxN en una línea en el orden de una primera fila a una N-ésima fila, y la dirección (u orden) de primero columna puede representar una disposición de un bloque de MxN en una línea en el orden de una primera columna a una M-ésima columna. Aquí, M y N pueden representar un ancho (W) y una altura (H) del bloque, y pueden ser todos enteros positivos.
Por ejemplo, la transformada secundaria no separable puede aplicarse a un área superior izquierda del bloque compuesto de coeficientes de transformada (primaria) (en lo sucesivo, bloque de coeficientes de transformada). Por ejemplo, si el ancho (W) y la altura (H) del bloque de coeficientes de transformada son todas iguales a o mayores que 8, se puede aplicar una transformada secundaria no separable de 8x8 al área superior izquierda de x8 del bloque de coeficientes de transformada. Además, si el ancho (W) y la altura (H) del bloque de coeficientes de transformada son todos iguales a o mayores que 4 y menores que 8, se puede aplicar una transformada secundaria no separable de 4x4 al área superior izquierda mín (8, W) x mín (8, H) del bloque de coeficientes de transformada. Sin embargo, las realizaciones no se limitan a ello, y por ejemplo, incluso si se satisface una condición de que el ancho (W) y la altura (H) del bloque de coeficientes de transformada sean todos iguales a o mayores que 4, la transformada secundaria no separable de 4x4 puede aplicarse al área superior izquierda (8, W) x mín (8, H) del bloque de coeficientes de transformada.
Específicamente, por ejemplo, en caso de que se use un bloque de entrada de 4x4, la transformada secundaria no separable puede llevarse a cabo de la siguiente manera.
El bloque de entrada X de 4x4 puede representarse como sigue.
Por ejemplo, la forma vectorial de la X puede representarse como sigue.
Ecuación 2
X —jJ^ oo ^fii Xn X2¡XzsX3lt X í3X¡2
Con referencia a la Ecuación 2,Xpuede representar el vector X, y el bloque bidimensional de la X en la Ecuación 1 puede reorganizarse y representarse como el vector unidimensional según el orden de fila primero.
En este caso, la transformada secundaria no separable puede calcularse como sigue.
Ecuación 3
F = T- X
Aquí,Fpuede representar un vector de coeficientes de transformada, y T puede representar una matriz de transformada (no separable) de 16x16.
Según la Ecuación 3,^ que un tamaño de 16x1 puede derivarse, y ^ puede reorganizarse como un bloque de 4x4 a través de un orden de exploración (horizontal, vertical o diagonal). Sin embargo, el cálculo descrito más arriba es a modo de ejemplo, y para reducir la complejidad del cálculo de la transformada secundaria no separable, la transformada de hipercubo dado (HyGT, por sus siglas en inglés) y similares se pueden usar para calcular la transformada secundaria no separable.
Mientras tanto, en la transformada secundaria no separable, un núcleo de transformada (o núcleo de transformada o tipo de transformada) puede seleccionarse de una manera dependiente del modo. En este caso, el modo puede incluir un modo de intrapredicción y/o un modo de interpredicción.
Por ejemplo, como se describió más arriba, la transformada secundaria no separable puede llevarse a cabo basándose en la transformada de 8x8 o la transformada de 4x4 determinada basándose en el ancho (W) y la altura (H) del bloque de coeficientes de transformada. Por ejemplo, si W y H son todos iguales a o mayores que 8, la transformada de 8x8 puede representar una transformada que se puede aplicar al área de 8x8 incluida dentro del bloque de coeficientes de transformada correspondiente, y el área de 8x8 puede ser el área superior izquierda de 8x8 dentro del bloque de coeficientes de transformada correspondiente. Además, de manera similar, si W y H son todos iguales a o mayores que 4, la transformada de 4x4 puede representar una transformada que se puede aplicar al área de 4x4 incluida dentro del bloque de coeficientes de transformada correspondiente, y el área de 4x4 puede ser el área de 4x4 superior izquierda dentro del bloque de coeficientes de transformada correspondiente. Por ejemplo, una matriz de núcleo de transformada de 8x8 puede ser una matriz de 64x64/16x64, y una matriz de núcleo de transformada de 4x4 puede ser una matriz de 16x16/8x16.
En este caso, para la selección de núcleos de transformada basada en modo, dos núcleos de transformada secundaria no separables por conjunto de transformada para la transformada secundaria no separable pueden configurarse con respecto a la totalidad de la transformada de 8x8 y la transformada de 4x4, y pueden proveerse cuatro conjuntos de transformada. Es decir, se pueden configurar cuatro conjuntos de transformada con respecto a la transformada de 8x8, y se pueden configurar cuatro conjuntos de transformada con respecto a la transformada de 4x4. En este caso, cada uno de los cuatro conjuntos de transformada para la transformada de 8x8 puede incluir dos núcleos de transformada de 8x8, y cada uno de los cuatro conjuntos de transformada para la transformada de 4x4 puede incluir dos núcleos de transformada de 4x4.
Sin embargo, el tamaño de la transformada, el número de conjuntos y el número de núcleos de transformada en el conjunto son a modo de ejemplo, y se puede usar un tamaño excluyendo los de 8x8 o 4x4, o se pueden configurar n conjuntos, o se pueden incluir k núcleos de transformada en cada conjunto. Aquí, n y k pueden ser números enteros positivos.
Por ejemplo, el conjunto de transformada puede denominarse conjunto de NSST, y el núcleo de transformada en el conjunto de NSST puede denominarse núcleo de NSSAT. Por ejemplo, la selección de un conjunto específico entre los conjuntos de transformada se puede llevar a cabo en base al modo de intrapredicción del bloque objetivo (CU o subbloque).
Por ejemplo, el modo de intrapredicción puede incluir dos modos de intrapredicción no direccionales o no angulares y 65 modos de intrapredicción direccionales o angulares. Los modos de intrapredicción no direccionales pueden incluir el modo de intrapredicción planar n.° 0 y el modo de intrapredicción DC n.° 1, y los modos de intrapredicción direccional pueden incluir 65 (n.° 2 a n.° 66) modos de intrapredicción. Sin embargo, esto es a modo de ejemplo, y la realización según el presente documento puede aplicarse incluso a un caso en el que se provee un número diferente de modos de intrapredicción. Mientras tanto, en algunos casos, el modo de intrapredicción n.° 67 puede usarse adicionalmente, y el modo de intrapredicción n.° 67 puede representar un modo de modelo lineal (LM, por sus siglas en inglés).
La Figura 6 ilustra a modo de ejemplo modos intradireccionales en 65 direcciones de predicción.
Con referencia a la Figura 6, los modos pueden dividirse en modos de intrapredicción que tienen direccionalidad horizontal y modos de intrapredicción que tienen direccionalidad vertical alrededor del modo de intrapredicción n.° 34 que tiene dirección de predicción diagonal superior izquierda. En la Figura 6, H y V pueden significar la direccionalidad horizontal y la direccionalidad vertical, respectivamente, y los numerales de -32 a 32 pueden representar desplazamientos en la unidad de 1/32 en una posición de cuadrícula de muestra. Esto puede representar un desplazamiento para un valor de índice de modo.
Por ejemplo, los modos de intrapredicción n.° 2 a n.° 33 pueden tener la direccionalidad horizontal, y los modos de intrapredicción n.° 34 a n.° 66 tienen la direccionalidad vertical. Mientras tanto, técnicamente hablando, el modo de intrapredicción n.° 34 puede considerarse que no tiene ni la direccionalidad horizontal ni la direccionalidad vertical, sino que puede clasificarse para pertenecer a la direccionalidad horizontal desde el punto de vista de determinar el conjunto de transformada de la transformada secundaria. Esto se debe a que los datos de entrada se transponen y se usan con respecto a los modos de dirección vertical que son simétricos alrededor del modo de intrapredicción n.° 34, y se usa un método de disposición de datos de entrada para el modo de dirección horizontal con respecto al modo de intrapredicción n.° 34. En este caso, la transposición de los datos de entrada puede significar la configuración de datos NxM de una manera que las filas se convierten en columnas y las columnas se convierten en filas con respecto a los datos de bloque bidimensional MxN.
Además, el modo de intrapredicción n.° 18 y el modo de intrapredicción n.° 50 pueden representar un modo de intrapredicción horizontal y un modo de intrapredicción vertical, respectivamente, y el modo de intrapredicción n.° 2 puede denominarse modo de intrapredicción diagonal superior derecha, ya que la predicción se realiza en la dirección superior derecha con un píxel de referencia izquierdo. En el mismo contexto, el modo de intrapredicción n.° 34 puede denominarse un modo de intrapredicción diagonal inferior derecha, y el modo de intrapredicción n.° 66 puede denominarse un modo de intrapredicción diagonal inferior izquierda.
Mientras tanto, si se determina que se usa un conjunto específico para la transformada no separable, uno de los k núcleos de transformada en el conjunto específico puede seleccionarse a través del índice de transformada secundaria no separable. Por ejemplo, el aparato de codificación puede derivar el índice de transformada secundaria no separable que representa un núcleo de transformada específico basándose en una comprobación de tasa de distorsión (RD, por sus siglas en inglés), y puede señalizar el índice de transformada secundaria no separable al aparato de decodificación. Por ejemplo, el aparato de decodificación puede seleccionar uno de los k núcleos de transformada en el conjunto específico basándose en el índice de transformada secundaria no separable. Por ejemplo, un índice de NSST que tiene un valor de 0 puede representar un primer núcleo de transformada secundaria no separable, un índice de NSST que tiene un valor de 1 puede representar un segundo núcleo de transformada secundaria no separable, y un índice de NSST que tiene un valor de 2 puede representar un tercer núcleo de transformada secundaria no separable. Alternativamente, un índice NSST que tiene un valor de 0 puede representar que la primera transformada secundaria no separable no se aplica al bloque objetivo, y un índice NSST que tiene un valor de 1 a 3 puede indicar los tres núcleos de transformada como se describe más arriba.
El transformador puede llevar a cabo la transformada secundaria no separable en base a los núcleos de transformada seleccionados, y puede obtener coeficientes de transformada (secundaria) modificados. Los coeficientes de transformada modificados pueden derivarse como coeficientes de transformada cuantificados a través del cuantificador descrito más arriba, y pueden codificarse para señalizarse al aparato de decodificación y pueden transferirse al descuantificador/transformador inverso en el aparato de codificación.
Mientras tanto, si la transformada secundaria se omite como se ha descrito más arriba, los coeficientes de transformada (primaria) que son salidas de la transformada primaria (separable) pueden derivarse como los coeficientes de transformada cuantificados a través del cuantificador como se ha descrito más arriba, y pueden codificarse para señalizarse al aparato de decodificación y pueden transferirse al descuantificador/transformador inverso en el aparato de codificación.
Con referencia de nuevo a la Figura 5, el transformador inverso puede llevar a cabo una serie de procedimientos en orden inverso a los procedimientos llevados a cabo por el transformador descrito más arriba. El transformador inverso puede recibir coeficientes de transformada (descuantificados), derivar coeficientes de transformada (primaria) llevando a cabo la transformada secundaria (inversa) (E550) y obtener un bloque residual (muestras residuales) llevando a cabo la transformada primaria (inversa) con respecto a los coeficientes de transformada (primaria) (E560). En este caso, los coeficientes de transformada primaria pueden denominarse coeficientes de transformada modificados en el lado del transformador inverso. Como se ha descrito más arriba, el aparato de codificación y/o el aparato de decodificación pueden generar un bloque reconstruido basándose en el bloque residual y un bloque predicho, y pueden generar una imagen reconstruida basándose en esto.
Mientras tanto, el aparato de decodificación puede incluir además un determinador de aplicación/no aplicación de transformada inversa secundaria (o elemento para determinar si aplicar la transformada inversa secundaria) y un determinador de transformada inversa secundaria (o elemento para determinar la transformada inversa secundaria). Por ejemplo, el determinador de aplicación/no aplicación de transformada inversa secundaria puede determinar si aplicar la transformada inversa secundaria. Por ejemplo, la transformada inversa secundaria puede ser NSST o RST, y el determinador de aplicación/no aplicación de transformada inversa secundaria puede determinar si aplicar la transformada inversa secundaria basándose en una bandera de transformada secundaria analizada u obtenida a partir de un flujo de bits. Alternativamente, por ejemplo, el determinador de aplicación/no aplicación de transformada inversa secundaria puede determinar si aplicar la transformada inversa secundaria basándose en el coeficiente de transformada del bloque residual.
El determinador de transformada inversa secundaria puede determinar la transformada inversa secundaria. En este caso, el determinador de transformada inversa secundaria puede determinar la transformada inversa secundaria que se aplica al bloque actual basándose en el conjunto de transformada de NSST (o RST) designado según el modo de intrapredicción. Alternativamente, un método de determinación de transformada secundaria puede determinarse dependiendo de un método de determinación de transformada primaria. Alternativamente, diversas combinaciones de la transformada primaria y la transformada secundaria pueden determinarse según el modo de intrapredicción. Por ejemplo, el determinador de transformada inversa secundaria puede determinar un área a la que se aplica la transformada inversa secundaria basándose en el tamaño del bloque actual.
Mientras tanto, si la transformada secundaria (inversa) se omite como se ha descrito más arriba, el bloque residual (muestras residuales) puede obtenerse recibiendo los coeficientes de transformada (descuantificados) y llevando a cabo la transformada inversa primaria (separable). Como se ha descrito más arriba, el aparato de codificación y/o el aparato de decodificación pueden generar un bloque reconstruido basándose en el bloque residual y el bloque predicho, y pueden generar una imagen reconstruida basándose en esto.
Mientras tanto, en el presente documento, para reducir una cantidad de cálculo y una cantidad de requisito de memoria que están acompañadas por la transformada secundaria no separable, una transformada secundaria reducida (RST) que tiene un tamaño reducido de la matriz de transformada (núcleo) puede aplicarse al concepto de NSST.
En el presente documento, la RST puede significar una transformada (simplificación) que se lleva a cabo con respecto a las muestras residuales para el bloque objetivo basándose en la matriz de transformada cuyo tamaño se reduce según un factor de simplificación. En caso de llevar a cabo esto, la cantidad de cálculo que se requiere durante la transformada puede reducirse debido a la reducción del tamaño de la matriz de transformada. Es decir, la RST puede usarse para resolver el problema de complejidad de cálculo que se produce durante la transformada de un bloque que tiene una transformada de gran tamaño o no separable.
Por ejemplo, la RST puede denominarse varios términos como, por ejemplo, transformada reducida, transformada secundaria reducida, transformada de reducción, transformada simplificada o transformada simple, y los nombres a los que se hace referencia a la RST no se limitan a los ejemplos enumerados. Además, la RST se lleva a cabo principalmente en un dominio de baja frecuencia que incluye coeficientes que no son 0 en el bloque de transformada, y por lo tanto puede denominarse una transformada no separable de baja frecuencia (LFNST).
Mientras tanto, en caso de que la transformada inversa secundaria se lleve a cabo basándose en la RST, el transformador 235 inverso del aparato 200 de codificación y el transformador 322 inverso del aparato 300 de decodificación pueden incluir una unidad de RST inversa que deriva coeficientes de transformada modificados basándose en la RST inversa para los coeficientes de transformada, y un transformador primario inverso que deriva muestras residuales para el bloque objetivo basándose en la transformada primaria inversa para los coeficientes de transformada modificados. La transformada primaria inversa significa una transformada inversa de la transformada primaria que se ha aplicado al residual. En el presente documento, la derivación de los coeficientes de transformada basándose en la transformada puede significar la derivación de los coeficientes de transformada aplicando la transformada correspondiente.
Las Figuras 7 y 8 son diagramas que explican la RST según una realización del presente documento.
Por ejemplo, la Figura 7 puede ser una figura que explica que se aplica una transformada reducida directa, y la Figura 8 puede ser una figura que explica que se aplica una transformada reducida inversa. En el presente documento, el bloque objetivo puede representar el bloque actual, un bloque residual o un bloque de transformada del cual se lleva a cabo la codificación.
Por ejemplo, en la RST, un vector N-dimensional puede mapearse en un vector R-dimensional ubicado en otro espacio, y puede determinarse una matriz de transformada reducida. En este caso, N y R pueden ser enteros positivos, y R puede ser menor que N. N puede significar un cuadrado de una longitud de un lado de un bloque al que se aplica la transformada o el número total de coeficientes de transformada correspondientes al bloque al que se aplica la transformada, y un factor de simplificación puede significar un valor de R/N. El factor de simplificación puede denominarse con diversos términos como, por ejemplo, factor reducido, factor de reducción, factor simplificado o factor simple. Mientras tanto, R puede denominarse coeficiente reducido y, en algunos casos, el factor de simplificación puede significar R. Además, en algunos casos, el factor de simplificación puede significar el valor de N/R.
Por ejemplo, el factor de simplificación o el coeficiente reducido se pueden señalizar a través del flujo de bits, pero no se limita a ello. Por ejemplo, los valores predefinidos para el factor de simplificación o el coeficiente reducido pueden almacenarse en el aparato 200 de codificación y el aparato 300 de decodificación y, en este caso, el factor de simplificación o el coeficiente reducido pueden no señalizarse por separado.
Por ejemplo, el tamaño (RxN) de la matriz de transformada de simplificación puede ser menor que el tamaño (NxN) de una matriz de transformada regular, y puede definirse como en la siguiente ecuación.
Por ejemplo, la matriz T en el bloque de transformada reducida ilustrado en la Figura 7 puede representar la matriz T<rxn>de la Ecuación 4. Como se muestra en la Figura 7, en caso de que las muestras residuales para el bloque objetivo se multipliquen por la matriz de transformada de simplificación T<rxn>, se pueden derivar los coeficientes de transformada para el bloque objetivo.
Por ejemplo, en caso de que el tamaño del bloque al que se aplica la transformada sea de 8<x>8, y R sea 16 (es decir, R/N = 16/64 = 1/4), la RST según la Figura 7 puede expresarse mediante una operación de matriz como en la Ecuación 5 a continuación. En este caso, la memoria y la operación de multiplicación pueden reducirse a aproximadamente 1/4 por el factor de simplificación.
En el presente documento, la operación de matriz puede entenderse como una operación de obtención de un vector de columna colocando la matriz en el lado izquierdo del vector de columna y multiplicando la matriz y el vector de columna.
Ecuación 5
En la Ecuación 5, n a r64 puede representar muestras residuales para el bloque objetivo. Alternativamente, por ejemplo, pueden ser coeficientes de transformada generados aplicando la transformada primaria. Basándose en el resultado de la operación de la Ecuación 5, pueden derivarse los coeficientes de transformada ci para el bloque objetivo.
Por ejemplo, en caso de que R sea 16, pueden derivarse los coeficientes de transformada ci a c i6 para el bloque objetivo. Si la matriz de transformada que tiene un tamaño de 64x64 (NxN) a través de la aplicación de una transformada regular en lugar de la RST se multiplica por las muestras residuales que tienen un tamaño de 64x1 (Nx1), 64 (N) coeficientes de transformada para el bloque objetivo pueden derivarse, pero dado que se aplica la RST, solo 16 (N) coeficientes de transformada para el bloque objetivo pueden derivarse. Dado que el número total de coeficientes de transformada para el bloque objetivo se reduce de N a R, la cantidad de datos que el aparato 200 de codificación transmite al aparato 300 de decodificación puede reducirse y, por lo tanto, la eficiencia de transmisión entre el aparato 200 de codificación y el aparato 300 de decodificación puede aumentarse.
Teniendo en cuenta el tamaño de la matriz de transformada, dado que el tamaño de la matriz de transformada regular es de 64x64 (NxN), y el tamaño de la matriz de transformada de simplificación se reduce a 16x64 (RxN), el uso de memoria cuando se lleva a cabo la RST puede reducirse en una relación R/N en comparación con un caso en el que se lleva a cabo la transformada regular. Además, en comparación con el número (NxN) de operaciones de multiplicación cuando se usa la matriz de transformada regular, el uso de la matriz de transformada de simplificación puede reducir el número de operaciones de multiplicación (RxN) en la relación R/N.
En una realización, el transformador 232 del aparato 200 de codificación puede derivar los coeficientes de transformada para el bloque objetivo llevando a cabo una transformada primaria y una transformada secundaria basada en RST de las muestras residuales para el bloque objetivo. Los coeficientes de transformada pueden transferirse al transformador inverso del aparato 300 de decodificación, y el transformador 322 inverso del aparato 300 de decodificación puede derivar los coeficientes de transformada modificados basándose en la transformada secundaria reducida (RST) inversa para los coeficientes de transformada, y puede derivar las muestras residuales para el bloque objetivo basándose en la transformada primaria inversa de los coeficientes de transformada modificados.
El tamaño de la matriz de RST inversa TNxR según una realización puede ser NxR que es menor que el tamaño NxN de la matriz de transformada inversa regular, y puede estar en relación de transposición con la matriz de transformada de simplificación TRxN ilustrada en la Ecuación 4.
La matriz Tt en el bloque de transformada inversa reducida ilustrado en la Figura 8 puede representar una matriz RST de inversa T<rxnt>. En este caso, el superíndice T puede representar la transposición. Como se muestra en la Figura 8 , en caso de que los coeficientes de transformada para el bloque objetivo se multipliquen por la matriz de RST inversa T<rxnt>, se pueden derivar los coeficientes de transformada modificados para el bloque objetivo o las muestras residuales para el bloque objetivo. La matriz RST inversa T<rxnt>puede expresarse como (T<rxn>)<tnxr>.
Más específicamente, en caso de que la RST inversa se aplique como la transformada inversa secundaria, los coeficientes de transformada modificados para el bloque objetivo pueden derivarse multiplicando los coeficientes de transformada para el bloque objetivo por la matriz de RST inversa T<rxn>t . Mientras tanto, la RST inversa puede aplicarse como la transformada primaria inversa y, en este caso, las muestras residuales para el bloque objetivo pueden derivarse multiplicando los coeficientes de transformada para el bloque objetivo por la matriz RST inversa T<rxnt>.
En una realización, en caso de que el tamaño del bloque al que se aplica la transformada inversa sea de 8x8 , y R sea de 16 (es decir, R/N = 16/64 = 1/4), la RST según la Figura 8 puede expresarse mediante una operación de matriz como en la Ecuación 6 a continuación.
Ecuación 6
^2,1 % 6,1 '
t l,2 t i ,2 —Í l6 ,2
^1.3t'2,3í 16,3
0 ,6412,64 *•^16,64.
En la Ecuación 6 , c1 a c16 puede representar coeficientes de transformada para el bloque objetivo. rj que representa los coeficientes de transformada modificados para el bloque objetivo o las muestras residuales para el bloque objetivo puede derivarse basándose en el resultado de la operación de la Ecuación 6. Es decir, pueden derivarse r1 a rN que representa los coeficientes de transformada modificados para el bloque objetivo o las muestras residuales para el bloque objetivo.
Teniendo en cuenta el tamaño de la matriz de transformada inversa, dado que el tamaño de la matriz de transformada inversa regular es de 64<x>64 (N<x>N), y el tamaño de la matriz de transformada inversa de simplificación se reduce a 64<x>16 (N<x>R), el uso de memoria cuando se lleva a cabo la RST inversa puede reducirse en una relación R/N en comparación con un caso en el que se lleva a cabo la transformada inversa regular. Además, en comparación con el número (N<x>N) de operaciones de multiplicación cuando se usa la matriz de transformada inversa regular, el uso de la matriz de transformada inversa de simplificación puede reducir el número de operaciones de multiplicación (N<x>R) en la relación R/N.
Mientras tanto, los conjuntos de transformada pueden configurarse y aplicarse incluso con respecto a RST de 8x8. Es decir, la RST de 8x8 correspondiente puede aplicarse según el conjunto de transformada. Dado que un conjunto de transformadas está compuesto de dos o tres núcleos de transformada según el modo de intrapredicción, puede configurarse para seleccionar una de cuatro transformadas como máximo, incluyendo incluso un caso en el que no se aplique la transformada secundaria. En la transformada cuando no se aplica la transformada secundaria, puede considerarse que se ha aplicado una matriz de identidad. Si se supone que se da un índice de 0, 1,2 o 3 para cuatro transformadas (p. ej., el índice n.° 0 puede asignarse a un caso en el que no se aplica la matriz de identidad, es decir, la transformada secundaria), la transformada a aplicar puede designarse señalizando un elemento sintáctico que es un índice NSST a cada bloque de coeficientes de transformada. Es decir, a través del índice NSST, 8X8 NSST se puede designar para un bloque superior izquierdo de 8X8 , y en la configuración RST, se puede designar 8X8 RST. La NSST de 8X8 y la RST de 8X8 pueden representar transformadas que pueden aplicarse al área de 8X8 incluida dentro del bloque de coeficientes de transformada correspondiente en caso de que W y H del bloque objetivo que se convierte en el objetivo de la transformada sean todos iguales a o mayores que 8, y el área de 8X8 puede ser el área de 8X8 superior izquierda dentro del bloque de coeficientes de transformada correspondiente. De manera similar, la NSST 4X4 y la RST 4X4 pueden representar transformadas que pueden aplicarse al área de 4X4 incluida dentro del bloque de coeficientes de transformada correspondiente en caso de que W y H del bloque objetivo sean todos iguales a o mayores que 4, y el área de 4X4 puede ser el área de 4X4 superior izquierda dentro del bloque de coeficientes de transformada correspondiente.
La Figura 9 es un diagrama que ilustra un orden de exploración para bloques.
Por ejemplo, cuando se aplica RST de 8x8 directa como en la Ecuación 4, se pueden generar 16 coeficientes de transformada válidos, se pueden reducir 64 datos de entrada que constituyen una región de 8x8 a 16 datos de salida, y desde el punto de vista de un dominio bidimensional, solo un cuarto de un área se puede rellenar con coeficientes de transformada válidos. Por lo tanto, por ejemplo, 16 datos de salida obtenidos aplicando la RST directa de 8x8 pueden llenarse en la región superior izquierda de la Figura 9.
En la Figura 9, la región de 4X4 superior izquierda puede ser una región de interés (ROI, por sus siglas en inglés) en la que se rellenan coeficientes de transformada válidos, y las regiones restantes pueden estar vacías. Por ejemplo, una región vacía puede llenarse con un valor de 0 como defecto. Si se encuentra un coeficiente de transformada distinto de cero válido distinto de la región de ROI, dado que no se aplica RST de 8x8, puede omitirse la codificación de índice de NSST correspondiente. Sin embargo, a la inversa, si no se encuentra un coeficiente de transformada distinto de cero fuera del área de ROI (suponiendo que 0 se rellena en el área distinta de la ROI cuando se aplica RST de 8X8), puede haber sido aplicada la RST de 8X8, de modo que puede codificarse el índice de NSST. Por ejemplo, la codificación de índice NSST condicional puede llevarse a cabo después del proceso de codificación residual porque es necesario comprobar si existe un coeficiente de transformada distinto de cero.
Por ejemplo, suponiendo que el orden de exploración directa está numerado desde 1, la exploración puede llevarse a cabo para los coeficientes 17.° a 64.° en el orden de exploración directa. O, por ejemplo, una dirección de flecha en la Figura 9 puede indicar una exploración inversa, y puede indicar una exploración inversa desde el 64.° al 17.°. Por ejemplo, el área explorada puede ser un área vacía, y los coeficientes de transformada no cero válidos distintos del área vacía o el área de ROI pueden comprobarse basándose en la exploración.
Como se ha descrito más arriba, la muestra residual puede derivarse como coeficientes de transformada cuantificados a través de los procesos de transformada y cuantificación. Los coeficientes de transformada cuantificados pueden denominarse coeficientes de transformada. En este caso, los coeficientes de transformada en el bloque pueden señalizarse en forma de información residual. La información residual puede incluir una sintaxis o un elemento sintáctico sobre la codificación residual. Por ejemplo, el aparato de codificación puede codificar la información residual, y puede emitir la misma en forma de un flujo de bits, y el aparato de decodificación puede decodificar la información residual del flujo de bits, y puede derivar los coeficientes de transformada residuales (cuantificados). Como se describe más adelante, la información residual puede incluir elementos sintácticos que representan si la transformada se ha aplicado al bloque correspondiente, donde se sitúa la ubicación del último coeficiente de transformada efectivo en el bloque, si existe un coeficiente de transformada efectivo en el subbloque o cómo es el tamaño/signo del coeficiente de transformada efectivo.
Mientras tanto, por ejemplo, el predictor en el aparato de codificación de la Figura 2 o el predictor en el aparato de decodificación de la Figura 3 pueden llevar a cabo la intrapredicción. La intrapredicción se describirá con más detalle como sigue.
La intrapredicción puede representar una predicción para generar muestras de predicción para el bloque actual basándose en muestras de referencia en la imagen (en lo sucesivo, imagen actual) a la que pertenece el bloque actual. En caso de que la intrapredicción se aplique al bloque actual, se pueden derivar muestras de referencia vecinas que se van a usar para la intrapredicción del bloque actual. Las muestras de referencia vecinas del bloque actual pueden incluir una muestra adyacente a un límite izquierdo del bloque actual que tiene un tamaño de nWXnH, total 2*nH muestras vecinas de la parte inferior izquierda, una muestra adyacente al límite superior del bloque actual, total 2*nW muestras vecinas de la parte superior derecha, y una muestra vecina de la parte superior izquierda del bloque actual. Alternativamente, las muestras de referencia vecinas del bloque actual pueden incluir la muestra vecina superior de columnas plurales y la muestra vecina izquierda de filas plurales. De manera alternativa, las muestras de referencia vecinas del bloque actual pueden incluir nH muestras totales adyacentes al límite derecho del bloque actual que tiene un tamaño de nWXnH, nH muestras totales adyacentes al límite derecho del bloque actual, nW muestras totales adyacentes al límite inferior del bloque actual, y una muestra vecina a la parte inferior derecha del bloque actual.
Sin embargo, algunas de las muestras de referencia vecinas del bloque actual pueden no haber sido decodificadas aún o pueden no estar disponibles. En este caso, el decodificador puede configurar las muestras de referencia vecinas que se van a usar para la predicción a través de la sustitución de muestras disponibles por las muestras no disponibles. De manera alternativa, las muestras de referencia vecinas que se van a usar para la predicción pueden configurarse a través de la interpolación de las muestras disponibles.
En caso de que se deriven las muestras de referencia vecinas, (i) puede inducirse una muestra de predicción basándose en un promedio o interpolación de las muestras de referencia vecinas del bloque actual, y (ii) puede inducirse una muestra de predicción basándose en una muestra de referencia existente en una dirección (predicción) específica con respecto a la muestra de predicción entre las muestras de referencia vecinas del bloque actual. El caso de (i) puede denominarse un modo no direccional o un modo no angular, y el caso de (ii) puede denominarse un modo direccional o un modo angular.
Además, la muestra de predicción puede generarse a través de la interpolación entre la primera muestra vecina y la segunda muestra vecina ubicada en una dirección opuesta a la dirección de predicción del modo de intrapredicción del bloque actual basándose en la muestra de predicción del bloque actual entre las muestras de referencia vecinas. El caso descrito más arriba puede denominarse intrapredicción por interpolación lineal (LIP, por sus siglas en inglés). Además, las muestras de predicción de croma pueden generarse basándose en muestras de luma usando un modelo lineal. Este caso puede denominarse modo de modelo lineal (LM). De manera alternativa, la muestra de predicción del bloque actual puede derivarse derivando una muestra de predicción temporal del bloque actual basándose en las muestras de referencia vecinas filtradas y llevando a cabo la suma ponderada de la muestra de predicción temporal y al menos una muestra de referencia derivada según el modo de intrapredicción entre las muestras de referencia vecinas no filtradas. El caso descrito más arriba puede denominarse una intrapredicción dependiente de la posición (PDPC, por sus siglas en inglés). De manera alternativa, la codificación de intrapredicción puede llevarse a cabo en un método para derivar una muestra de predicción usando una muestra de referencia ubicada en la dirección de predicción en la línea de muestra de referencia que tiene la precisión de predicción más alta a través de la selección de la línea correspondiente entre líneas de muestra de múltiples referencias vecinas del bloque actual, y para indicar (señalizar) la línea de muestra de referencia usada en ese momento al aparato de decodificación. El caso descrito más arriba puede denominarse una intrapredicción de línea de referencia múltiple (MRL, por sus siglas en inglés) o intrapredicción basada en MRL. Además, al llevar a cabo la intrapredicción basándose en los mismos modos de intrapredicción a través de la división del bloque actual en subparticiones verticales u horizontales, las muestras de referencia vecinas pueden derivarse y usarse en la unidad de la subpartición. Es decir, el modo de intrapredicción para el bloque actual puede aplicarse igualmente a las subparticiones y, en este caso, puesto que las muestras de referencia vecinas se derivan y usan en la unidad de la subpartición, el rendimiento de intrapredicción puede mejorarse en algunos casos. Este método de predicción puede denominarse una intrasubpartición (ISP) o una intrapredicción basada en ISP.
Los métodos de intrapredicción descritos más arriba pueden denominarse un tipo de intrapredicción a diferencia del modo de intrapredicción. El tipo de intrapredicción puede denominarse varios términos como, por ejemplo, una técnica de intrapredicción o un modo de intrapredicción adicional. Por ejemplo, el tipo de intrapredicción (o modo de intrapredicción adicional) puede incluir al menos uno de LIP, PDPC, MRL e ISP como se ha descrito más arriba. Un método de intrapredicción general que excluye el tipo de intrapredicción específico, como, por ejemplo, LIP, PDPC, MRL o ISP, puede denominarse un tipo de intrapredicción normal. En caso de que no se aplique el tipo de intrapredicción específico descrito más arriba, puede aplicarse generalmente el tipo de intrapredicción normal, y la predicción puede llevarse a cabo basándose en el modo de intrapredicción descrito más arriba. Mientras tanto, según sea necesario, puede llevarse a cabo un postfiltrado para la muestra de predicción derivada.
En otras palabras, el procedimiento de intrapredicción puede incluir determinación de modo/tipo de intrapredicción, derivación de muestra de referencia vecina y derivación de muestra de predicción basada en modo/tipo de intrapredicción. Además, según sea necesario, se puede llevar a cabo un postfiltrado para la muestra de predicción derivada.
Mientras tanto, entre los tipos de intrapredicción descritos más arriba, la ISP puede dividir el bloque actual en una dirección horizontal o una dirección vertical, y puede llevar a cabo la intrapredicción en la unidad de bloques divididos. Es decir, la ISP puede derivar subbloques dividiendo el bloque actual en la dirección horizontal o dirección vertical, y puede llevar a cabo la intrapredicción para cada uno de los subbloques. En este caso, se puede generar un bloque reconstruido mediante la realización de la codificación/decodificación en la unidad del subbloque dividido, y el bloque reconstruido se puede usar como un bloque de referencia del siguiente subbloque dividido. En este caso, el subbloque puede denominarse una intrasubpartición.
Por ejemplo, en caso de que se aplique la ISP, el bloque actual puede dividirse en dos o cuatro subbloques en la dirección vertical u horizontal basándose en el tamaño del bloque actual.
Por ejemplo, para aplicar la ISP, una bandera que representa si aplicar la ISP puede transmitirse en la unidad de un bloque, y en caso de que la ISP se aplique al bloque actual, una bandera que representa si el tipo de partición es horizontal o vertical, es decir, si la dirección de partición es una dirección horizontal o una dirección vertical, puede codificarse/decodificarse. La bandera que representa si aplicar la ISP puede denominarse una bandera de ISP, y la bandera de ISP puede representarse como un elemento sintáctico intra_subpartitions_mode_flag. Además, la bandera que representa el tipo de partición puede denominarse una bandera de partición de ISP, y la bandera de partición de ISP puede representarse como un elemento sintáctico intra_subpartitions_split_flag.
Por ejemplo, mediante la bandera de ISP o la bandera de partición de ISP, puede representarse información que representa que ISP no se aplica al bloque actual (IntraSubPartitionsSplitType == ISP_NO_SPLIT), información que representa la partición en la dirección horizontal n (IntraSubPartitionsSplitType == ISP_HOR_SPLIT), información que representa la partición en la dirección vertical (IntraSubPartitionsSplitType == ISP_VER_SPLIT). Por ejemplo, la bandera de ISP o la bandera de partición de ISP puede denominarse información relacionada con ISP en la subpartición del bloque.
Mientras tanto, además de los tipos de intrapredicción descritos más arriba, puede usarse una intrapredicción ponderada lineal afín (ALWIP, por sus siglas en inglés). La ALWIP puede denominarse una intrapredicción ponderada lineal (LWIP, por sus siglas en inglés), una intrapredicción ponderada de matriz (MWIP, por sus siglas en inglés) o una intrapredicción basada en matriz (MIP). En caso de que la ALWIP se aplique al bloque actual, i) usando muestras de referencia vecinas de las que se ha llevado a cabo un procedimiento de promediado, ii) puede llevarse a cabo un procedimiento de multiplicación de vector de matriz, y iii) según sea necesario, pueden derivarse muestras de predicción para el bloque actual llevando a cabo adicionalmente un procedimiento de interpolación horizontal/vertical.
Los modos de intrapredicción usados para la ALWIP pueden ser la intrapredicción LIP, PDPC, MRL o ISP descritas más arriba, pero pueden configurarse de manera diferente de los modos de intrapredicción usados en la intrapredicción normal. El modo de intrapredicción para la ALWIP puede denominarse modo ALWIP. Por ejemplo, según el modo de intrapredicción para la ALWIP, la matriz y el desplazamiento que se usan en la multiplicación de vector de matriz pueden configurarse de manera diferente. En este caso, la matriz puede denominarse una matriz de ponderación (afín), y el desplazamiento puede denominarse un vector de desplazamiento (afín) o un vector de sesgo (afín). En el presente documento, el modo de intrapredicción para la ALWIP puede denominarse modo ALWIP, modo de intrapredicción ALWIP, modo LWIP, modo de intrapredicción LWIP, modo MWIP, modo de intrapredicción MWIP, modo MIP o modo de intrapredicción MIP. Un método ALWIP detallado se describirá más adelante.
La Figura 10 es un diagrama que explica una MIP para un bloque de 8X8.
Con el fin de predecir muestras de un bloque rectangular que tiene un ancho W y una altura H, la MIP puede usar muestras vecinas al límite izquierdo del bloque y muestras vecinas al límite superior. Aquí, las muestras vecinas al límite izquierdo pueden representar muestras ubicadas en una línea adyacente al límite izquierdo del bloque, y pueden representar muestras reconstruidas. Las muestras vecinas al límite superior pueden representar muestras ubicadas en una línea adyacente al límite superior del bloque, y pueden representar muestras reconstruidas.
Por ejemplo, si las muestras reconstruidas no están disponibles, las muestras reconstruidas como en la intrapredicción en la técnica relacionada pueden generarse o derivarse, y pueden usarse.
Una señal de predicción (o muestras de predicción) puede generarse basándose en un proceso de promediado, un proceso de multiplicación de vector de matriz y un proceso de interpolación (lineal).
Por ejemplo, el proceso de promediado puede ser un proceso para extraer muestras fuera del límite a través del promediado. Por ejemplo, si el ancho W y la altura H de las muestras son todos 4, las muestras que se extraen pueden ser cuatro muestras, y pueden ser 8 muestras en otro caso. Por ejemplo, en la Figura 10, bdry<lzq>y bdry<superior>pueden representar muestras extraídas izquierdas y muestras superiores, respectivamente.
Por ejemplo, el proceso de multiplicación de vector de matriz puede ser un proceso de realización de multiplicación de vector de matriz con las muestras promediadas como entradas. Además, se puede añadir un desplazamiento. Por ejemplo, en la Figura 10, A<k>puede representar una matriz, b<k>puede representar un desplazamiento y bdry<red>puede ser una señal reducida para las muestras extraídas a través del proceso de promediado. Además, bdry<red>puede ser información reducida en bdry<izq>y bdry<superior>. El resultado puede ser una señal de predicción reducida pred<red>para un conjunto de muestras submuestreadas en el bloque original.
Por ejemplo, el proceso de interpolación (lineal) puede ser un proceso en el que se genera una señal de predicción en las ubicaciones restantes a partir de la señal de predicción para el conjunto submuestreado por la interpolación lineal. En este caso, la interpolación lineal puede representar una única interpolación lineal en direcciones respectivas. Por ejemplo, la interpolación lineal puede llevarse a cabo basándose en la señal de predicción reducida pred<red>marcada en gris en el bloque de la Figura 10 y muestras de límite vecinas y, a través de esto, pueden derivarse todas las muestras de predicción en el bloque.
Por ejemplo, las matrices (Ak en la Figura 10) y los vectores de desplazamiento (bk en la Figura 10) requeridos para generar la señal de predicción (o bloque de predicción o muestras de predicción) pueden provenir de tres conjuntos S0, S1, y S2. Por ejemplo, el conjunto S0 puede estar compuesto de 18 matrices (A0i, i=0, 1, ..., 17) y 18 vectores de desplazamiento (b0i, i=0, 1, ..., 17). Aquí, cada una de las 18 matrices puede tener 16 filas y 4 columnas, y cada uno de los 18 vectores de desplazamiento puede tener 16 tamaños. Las matrices y los vectores de desplazamiento del conjunto S0 pueden usarse para un bloque que tiene un tamaño de 4x4. Por ejemplo, el conjunto S1 puede estar compuesto de 10 matrices (AV- i=0, 1, ..., 9) y 10 vectores de desplazamiento (bV, i=0, 1,..., 9). Aquí, cada una de las 10 matrices puede tener 16 filas y 8 columnas, y cada uno de los 10 vectores de desplazamiento puede tener 16 tamaños. Las matrices y los vectores de desplazamiento del conjunto S1 pueden usarse para un bloque que tiene un tamaño de 4x8, 8x4 u 8x8. Por ejemplo, el conjunto S2 puede estar compuesto de 6 matrices (A2i, i=0, 1, ..., 5) y 6 vectores de desplazamiento (b2i, i=0, 1, ..., 5). Aquí, cada una de las 6 matrices puede tener 64 filas y 8 columnas, y cada uno de los 6 vectores de desplazamiento puede tener 64 tamaños. Las matrices y los vectores de desplazamiento del conjunto S2 pueden usarse para todos los bloques restantes.
Mientras tanto, en una realización del presente documento, la información del índice LFNST puede señalizarse con respecto al bloque al que se aplica la MIP. De manera alternativa, el aparato de codificación puede generar un flujo de bits codificando la información de índice LFNST para transformar el bloque al que se aplica la MIP, y el aparato de decodificación puede obtener la información de índice LFNST para transformar el bloque al que se aplica la MIP analizando o decodificando el flujo de bits.
Por ejemplo, la información de índice de LFNST puede ser información para discriminar el conjunto de transformadas de LFNST según el número de transformadas que constituyen el conjunto de transformadas. Por ejemplo, se puede seleccionar un núcleo de LFNST óptimo con respecto al bloque en el que se aplica la intrapredicción a la que se aplica la MIP basándose en la información de índice de LFNST. Por ejemplo, la información de índice de LFNST puede representarse como elemento sintáctico st_idx o elemento sintáctico lfnst_idx.
Por ejemplo, la información de índice de LFNST (o elemento sintácticost_idx)puede incluirse en la sintaxis como en las siguientes tablas.
Tabla 2
Tabla 3
Tabla 4
Tabla 5
La Tabla 2 a la Tabla 5 como se describe más arriba pueden representar sucesivamente una sintaxis o información. Por ejemplo, en la Tabla 2 a la Tabla 5, la información o semántica representada por un elemento sintáctico intra_mip_flag, un elemento sintáctico intra_mip_mpm_flag un elemento sintáctico intra_mip_mpm_idx un elemento sintáctico intra_mip_mpm_remainder o un elemento sintáctico st_idx puede ser como en la siguiente tabla.
Tabla 6
Por ejemplo, el elemento sintáctico intra_mip_flag puede representar información sobre si se aplica MIP a muestras de luma o al bloque actual. Además, por ejemplo, el elemento sintáctico intra_mip_mpm_flag el elemento sintáctico intra_mip_mpm_idx o el elemento sintáctico intra_mip_mpm_remainder pueden representar información sobre el modo de intrapredicción que se aplicará al bloque actual en caso de que se aplique la MIP. Además, por ejemplo, el elemento sintáctico st_idx puede representar información sobre el núcleo de transformada (núcleo LFNST) que se aplicará a LFNST para el bloque actual. Es decir, el elemento sintáctico st_idx puede ser información que representa uno de los núcleos de transformada en el conjunto de transformada de LFNST. En este caso, el elemento sintáctico st_idx puede representarse como el elemento sintáctico lfnst_idx o la información de índice LFNST.
La Figura 11 es un diagrama de flujo que explica un método al que se aplican MIP y LFNST según la invención protegida.
Mientras tanto, otra realización del presente documento puede no señalizar información de índice de LFNST con respecto a un bloque al que se aplica MIP. Además, el aparato de codificación puede generar un flujo de bits codificando información de imagen excluyendo la información de índice LFNST para la transformada del bloque al que se aplica la MIP, y el aparato de decodificación puede analizar o decodificar el flujo de bits, y puede llevar a cabo un proceso de transformación del bloque sin la información de índice LFNST para transformar el bloque al que se aplica la MIP.
Por ejemplo, si la información de índice de LFNST no se señala, la información de índice de LFNST puede inducirse como un valor por defecto. Por ejemplo, la información del índice de LFNST inducida como el valor por defecto puede ser un valor de 0. Por ejemplo, la información de índice de LFNST que tiene el valor de 0 puede representar que la LFNST no se aplica al bloque correspondiente. En este caso, dado que no se transmite la información de índice de LFNST, puede reducirse una cantidad de bits para codificar la información de índice de LFNST. Además, la complejidad puede reducirse evitando que la MIP y la LFNST se apliquen simultáneamente, y por tanto también puede reducirse la latencia.
Con referencia a la Figura 11, puede determinarse en primer lugar si la MIP se aplica al bloque correspondiente. Es decir, puede determinarse si el valor del elemento de sintaxis intra_mip_flag es 1 o 0 (E1100). Por ejemplo, si el valor del elemento sintáctico intra_mip_flag es 1, puede considerarse verdadero o sí, y puede representar que la MIP se aplica al bloque correspondiente. Por consiguiente, la predicción MIP puede llevarse a cabo para el bloque correspondiente (E1110). Es decir, el bloque de predicción para el bloque correspondiente puede derivarse llevando a cabo la predicción MIP. A continuación, se puede llevar a cabo un procedimiento de transformada primaria inversa (E1120), y se puede llevar a cabo un procedimiento de intra-reconstrucción (E1130). En otras palabras, un bloque residual puede derivarse llevando a cabo la transformada primaria inversa con respecto a los coeficientes de transformada obtenidos a partir de un flujo de bits, y un bloque reconstruido puede generarse basándose en el bloque de predicción según la predicción MIP y el bloque residual. Es decir, la información de índice LFNST para el bloque al que se aplica la MIP puede no incluirse. Además, la LFNST puede no aplicarse al bloque al que se aplica la MIP.
Además, por ejemplo, si el valor del elemento sintáctico intra_mip_flag es 0, puede considerarse falso o no, y puede representar que la MIP no se aplica al bloque correspondiente. Es decir, se puede aplicar una intrapredicción convencional al bloque correspondiente (E1140). Es decir, el bloque de predicción para el bloque correspondiente puede derivarse llevando a cabo la intrapredicción convencional. A continuación, se puede determinar si la LFNST se aplica al bloque correspondiente en base a la información de índice de LFNST. En otras palabras, se puede determinar si el valor del elemento sintáctico st_idex es mayor que 0 (E1150). Por ejemplo, si el valor del elemento sintáctico st_idex es mayor que 0, el procedimiento de transformada de LFNST inversa puede llevarse a cabo usando el núcleo de transformada representado por el elemento sintáctico st_idex (E1160). Además, si el valor del elemento sintáctico st_idex no es mayor que 0, puede representar que la LFNST no se aplica al bloque correspondiente, y el procedimiento de transformada de LFNST inversa puede no llevarse a cabo. A continuación, se puede llevar a cabo el procedimiento de transformada primaria inversa (E1120), y se puede llevar a cabo el procedimiento de intra-reconstrucción (E1130). En otras palabras, el bloque residual puede derivarse llevando a cabo la transformada primaria inversa con respecto a los coeficientes de transformada obtenidos a partir del flujo de bits, y el bloque reconstruido puede generarse basándose en el bloque de predicción según la intrapredicción convencional y el bloque residual.
En resumen, si se aplica la MIP, el bloque de predicción MIP puede generarse sin decodificar la información de índice LFNST, y la señal de intra-reconstrucción final puede generarse aplicando la transformada primaria inversa al coeficiente recibido.
Por el contrario, si no se aplica la MIP, la información de índice de LFNST puede decodificarse, y si el valor del valor de la bandera (o información de índice de LFNST o elemento sintáctico st_idx) es mayor que 0, la señal de intrareconstrucción final puede generarse aplicando la transformada de LFNST inversa y la transformada primaria inversa con respecto al coeficiente recibido.
Por ejemplo, para el procedimiento descrito más arriba, la información de índice LFNST (o elemento sintáctico st_idx) puede incluirse en la información sintáctica o de imagen basándose en la información (o elemento sintáctico intra_mip_flag) sobre si se aplica la MIP, y puede señalarse. Además, la información de índice de LFNST (o elemento sintáctico st_idx) puede configurarse/analizarse/señalizarse/transmitirse/recibirse selectivamente con referencia a la información (o elemento sintáctico intra_mip_flag) sobre si se aplica la MIP. Por ejemplo, la información de índice de LFNST puede representarse como el elemento sintáctico st_idx o el elemento sintáctico lfnst_idex.
Por ejemplo, la información de índice de LFNST (o elemento sintáctico st_idx) puede incluirse como en la Tabla 7 a continuación.
Tabla 7
Por ejemplo, con referencia a la Tabla 7, el elemento sintáctico st_idx puede incluirse basándose en el elemento sintáctico intra_mip_flag. En otras palabras, si el valor del elemento sintáctico intra_mip_flag es 0(!intra_mip_flag), se puede incluir el elemento sintáctico st_idx.
Además, por ejemplo, la información de índice de LFNST (o elemento sintáctico lfnst_idx) puede incluirse como en la Tabla 8 a continuación.
Tabla 8
Por ejemplo, con referencia a la Tabla 8, el elemento sintáctico lfnst_idx puede incluirse basándose en el elemento sintáctico intra_mip_flag. En otras palabras, si el valor del elemento sintáctico intra_mip_flag es 0(!intra_mip_flag), se puede incluir el elemento sintáctico lfnst_idx.
Por ejemplo, con referencia a la Tabla 7 o a la Tabla 8, el elemento sintáctico st_idx o el elemento sintáctico lfnst_idx pueden incluirse basándose en información relacionada con intrasubparticiones (ISP) sobre la subpartición del bloque. Por ejemplo, la información relacionada con ISP puede incluir la bandera de ISP o la bandera de partición de ISP y, a través de esto, se puede representar información sobre si la subpartición se lleva a cabo con respecto al bloque. Por ejemplo, la información sobre si se lleva a cabo la subpartición puede representarse como IntraSubSubPartitionsSplitType, ISP_NO_SPLIT puede representar que no se lleva a cabo la subpartición, ISP_HOR_SPLIT puede representar que la subpartición se lleva a cabo en una dirección horizontal e ISP_VER_SPLIT puede representar que la subpartición se lleva a cabo en una dirección vertical.
La información relacionada residual puede incluir la información de índice LFNST basada en la bandera MIP y la información relacionada con la ISP.
Mientras tanto, en otra realización del presente documento, la información de índice de LFNST puede inducirse con respecto al bloque al que se aplica la MIP sin señalizarse por separado. Además, el aparato de codificación puede generar el flujo de bits codificando información de imagen excluyendo la información de índice LFNST para transformar el bloque al que se aplica la MIP, y el aparato de decodificación puede analizar o decodificar el flujo de bits, inducir y obtener la información de índice LFNST para transformar el bloque al que se aplica la MIP, y llevar a cabo un proceso de transformación del bloque basándose en esto.
Es decir, la información de índice de LFNST puede no decodificarse con respecto al bloque correspondiente, sino a través de un proceso de inducción, puede determinarse el índice para dividir las transformadas que constituyen el conjunto de transformadas de LFNST. Además, a través del proceso de inducción, se puede determinar que se utiliza un núcleo de transformada optimizado separado para el bloque al que se aplica la MIP. En este caso, el núcleo LFNST óptimo puede seleccionarse con respecto al bloque al que se aplica la MIP, y la cantidad de bits para codificar esto puede reducirse.
Por ejemplo, la información de índice de LFNST puede inducirse basándose en al menos una de información de índice de línea de referencia para intrapredicción, información de modo de intrapredicción, información de tamaño de bloque o información de aplicación/no aplicación de MIP.
Mientras tanto, en otra realización del presente documento, la información de índice de LFNST para el bloque al que se aplica la MIP puede binarizarse para señalizarse. Por ejemplo, el número de transformadas LFNST aplicables puede diferir dependiendo de si la MIP se aplica al bloque actual y, para esto, el método de binarización para la información de índice LFNST puede conmutarse selectivamente.
Por ejemplo, se puede utilizar un núcleo de LFNST con respecto al bloque al que se aplica la MIP, y este núcleo puede ser uno de los núcleos de LFNST que se aplican al bloque al que no se aplica la MIP. Además, el núcleo LFNST existente que ha sido utilizado puede no ser utilizado para el bloque al que se aplica la MIP, sino que un núcleo separado optimizado para el bloque al que se aplica la MIP puede ser definido y utilizado.
En este caso, dado que se utiliza un número reducido de núcleos de LFNST con respecto al bloque al que se aplica la MIP en comparación con el bloque al que no se aplica la MIP, la sobrecarga debida a la señalización de la información de índice de LFNST puede reducirse, y la complejidad puede reducirse.
Por ejemplo, la información de índice de LFNST puede usar el método de binarización como en la siguiente tabla.
Tabla 9
Con referencia a la Tabla 9, por ejemplo, el elemento sintáctico st_idx puede binarizarsericetruncado (TR, por sus siglas en inglés) en caso de que la MIP no se aplique al bloque correspondiente, en caso de intra_mip_flag[][]==falso o en caso de que el valor del elemento sintáctico intra_mip_flag sea 0. En este caso, por ejemplo, cMax que es un parámetro de entrada puede tener un valor de 2, y cRiceParam puede tener un valor de 0.
Además, por ejemplo, el elemento sintáctico st_idx puede binarizarse a una longitud fija (FL, por sus siglas en inglés) en caso de que la MIP se aplique al bloque correspondiente, en caso de intra_mip_flag[][]==verdadero o en caso de que el valor del elemento sintáctico intra_mip_flag sea 1. En este caso, por ejemplo, cMax que es un parámetro de entrada puede tener un valor de 1.
En este caso, el elemento sintáctico st_idx puede representar la información de índice LFNST, y puede representarse como el elemento sintáctico lfnst_idx.
Mientras tanto, en otra realización del presente documento, la información relacionada con LFNST puede señalizarse con respecto al bloque al que se aplica la MIP.
Por ejemplo, la información de índice de LFNST puede incluir un elemento sintáctico y puede representar información sobre si la LFNST se aplica basándose en un elemento sintáctico e información sobre el tipo de núcleo de transformada que se usa para la LFNST. En este caso, la información de índice de LFNST puede representarse como, por ejemplo, el elemento sintáctico st_idx o el elemento sintáctico lfnst_idx.
Además, por ejemplo, la información de índice de LFNST puede incluir uno o más elementos sintácticos, y puede representar información sobre si se aplica la LFNST basándose en uno o más elementos sintácticos e información sobre el tipo de núcleo de transformada que se usa para la LFNST. Por ejemplo, la información de índice de LFNST puede incluir dos elementos sintácticos. En este caso, la información de índice de LFNST puede incluir un elemento sintáctico que representa información sobre si se aplica la LFNST y un elemento sintáctico que representa información sobre el tipo de núcleo de transformada que se usa para la LFNST. Por ejemplo, la información sobre si se aplica la LFNST puede representarse como una bandera LFNST, y puede representarse como un elemento sintáctico st_flag o un elemento sintáctico lfnst_flag. Además, por ejemplo, la información sobre el tipo del núcleo de transformada que se usa para la LFNST puede representarse como la bandera de índice de núcleo de transformada, y puede representarse como un elemento sintáctico st_idx_flag, elemento sintáctico st_kernel_flag, elemento sintáctico lfnst_idx_flag o elemento sintáctico lfnst_kernel_flag. Por ejemplo, en caso de que la información de índice de LFNST incluya uno o más elementos sintácticos como se ha descrito más arriba, la información de índice de LFNST puede denominarse información relacionada con LFNST.
Por ejemplo, la información relacionada con LFNST (p. ej., elemento sintáctico st_flag o elemento sintáctico st_idx_flag) puede incluirse como en la Tabla 10 a continuación.
Tabla 10
Mientras tanto, el bloque al que se aplica la MIP puede utilizar un número diferente de transformadas (núcleos) de LFNST del bloque al que no se aplica la MIP. Por ejemplo, el bloque al que se aplica la MIP puede utilizar solamente un núcleo de transformada de LFNST. Por ejemplo, el núcleo de transformada de LFNST puede ser uno de los núcleos de LFNST que se aplican al bloque al que no se aplica la MIP. Además, en lugar de utilizar el núcleo LFNST existente que ha sido utilizado con respecto al bloque al que se aplica la MIP, puede definirse y utilizarse un núcleo separado optimizado para el bloque al que se aplica la MIP.
En este caso, la información (p. ej., bandera de índice de núcleo de transformada) sobre el tipo de núcleo de transformada que se usa para la LFNST entre la información relacionada con la LFNST puede señalizarse selectivamente dependiendo de si se aplica la MIP, y la información relacionada con la LFNST en este momento puede incluirse, por ejemplo, como en la Tabla 11 a continuación.
Tabla 11
En otras palabras, con referencia a la Tabla 11, la información (o elemento sintáctico st_idx_flag) sobre la clase del núcleo de transformada que se usa para la LFNST puede incluirse basándose en la información (o elemento sintáctico !intra_mip_flag) sobre si la MIP se ha aplicado al bloque correspondiente. Además, por ejemplo, el elemento sintáctico st_idx_flag puede señalizarse a !intra_mip_flag en caso de que la MIP no se aplique al bloque correspondiente.
Por ejemplo, en la Tabla 10 o la Tabla 11, la información o semántica representada por el elemento sintáctico st_flag o el elemento sintáctico st_idx_flag puede ser como en la siguiente tabla.
Tabla 12
Por ejemplo, el elemento sintáctico st_flag puede representar información sobre si se aplica la transformada secundaria. Por ejemplo, si el valor del elemento sintáctico st_flag es 0, puede representar que la transformada secundaria no se aplica, mientras que si es 1, puede representar que se aplica la transformada secundaria. Por ejemplo, el elemento sintáctico st_idx_flag puede representar información sobre el núcleo de transformada secundaria aplicado de dos núcleos candidatos en el conjunto de transformada seleccionado.
Por ejemplo, para la información relacionada con LFNST, puede usarse un método de binarización como en la siguiente tabla.
Tabla 13
Con referencia a la Tabla 13, por ejemplo, el elemento sintáctico st_flag puede binarizarse a FL. Por ejemplo, en este caso, cMax que es el parámetro de entrada puede tener un valor de 1. Además, por ejemplo, el elemento sintáctico st_idx_flag puede binarizarse a FL. Por ejemplo, en este caso, el cMax que es el parámetro de entrada puede tener un valor de 1.
Por ejemplo, con referencia a la Tabla 10 o a la Tabla 11, un descriptor del elemento sintáctico st_flag o del elemento sintáctico st_idx_flag puede ser ae(v). En este caso, ae(v) puede representar codificación aritmética por entropía adaptativa al contexto. Además, el elemento sintáctico cuyo descriptor es ae(v) puede ser un elemento sintáctico codificado por entropía aritmético adaptativo al contexto. Es decir, la codificación por entropía aritmética adaptativa al contexto puede aplicarse a la información relacionada con LFNST (p. ej., elemento sintáctico st_flag o elemento sintáctico st_idx_flag). Además, la información relacionada con LFNST (p. ej., elemento sintáctico st_flag o elemento sintáctico st_idx_flag) puede ser información o un elemento sintáctico al que se aplica la codificación por entropía aritmética adaptativa al contexto. Además, la información relacionada con LFNST (p. ej., bins de una cadena de bins del elemento sintáctico st_flag o el elemento sintáctico st_idx_flag) puede codificarse/decodificarse basándose en la CABAC descrita anteriormente y similares. En este caso, la codificación por entropía aritmética adaptativa al contexto puede representarse como codificación basada en modelo de contexto, codificación de contexto o codificación regular.
Por ejemplo, el incremento del índice de contexto (ctxInc) de la información relacionada con LFNST (p. ej., elemento sintáctico st_flag o elemento sintáctico st_idx_flag) o ctxInc según la ubicación de bin del elemento sintáctico st_flag o el elemento sintáctico st_idx_flag puede asignarse o determinarse como en la Tabla 14. Además, como en la Tabla 14, se puede seleccionar un modelo de contexto en base al ctxInc según la ubicación de bin del elemento sintáctico st_flag o el elemento sintáctico st_idx_flag que se asigna o determina como en la Tabla 14.
Tabla 14
Con referencia a la Tabla 14, por ejemplo, (el bin de la cadena de bins o el primer bin de) el elemento sintáctico st_flag puede usar dos modelos de contexto (o ctxIdx), y se puede seleccionar un modelo de contexto basándose en el ctxInc que tiene un valor de 0 o 1. Además, por ejemplo, la codificación de derivación puede aplicarse a (el bin de la cadena de bins o el primer bin de) el elemento sintáctico st_idx_flag. Además, la codificación puede llevarse a cabo aplicando una distribución de probabilidad regular.
Por ejemplo, el ctxInc de (el bin de la cadena de bins o el primer bin de) el elemento sintáctico st_flag puede determinarse basándose en la Tabla 15 a continuación.
Tabla 15
Con referencia a la Tabla 15, por ejemplo, el ctxlnc de (el bin de la cadena de bins o el primer bin de) el elemento sintáctico st_flag puede determinarse basándose en un índice MTS (o elemento sintáctico tu_mts_idx) o información de tipo de árbol (treeType). Por ejemplo, el ctxInc puede derivarse como 1 en caso de que el valor del índice MTS sea 0 y el tipo de árbol no sea un único árbol. Además, el ctxInc puede derivarse como 0 en caso de que el valor del índice MTS no sea 0 o el tipo de árbol sea el árbol único.
En este caso, puesto que se utiliza un número reducido de núcleos de LFNST con respecto al bloque al que se aplica la MIP en comparación con el bloque al que no se aplica la MIP, la sobrecarga debida a la señalización de la información del índice de LFNST puede reducirse, y la complejidad puede reducirse.
Mientras tanto, en otra realización del presente documento, el núcleo LFNST puede ser inducido y usado con respecto al bloque al que se aplica la MIP. Es decir, el núcleo de LFNST puede inducirse sin señalizar por separado información sobre el núcleo de LFNST. Además, el aparato de codificación puede generar el flujo de bits codificando información de imagen excluyendo la información de índice de LFNST para transformar el bloque al que se aplica la MIP e información sobre (el tipo de) el núcleo de transformada que se está utilizando para la LFNST, y el aparato de decodificación puede analizar o decodificar el flujo de bits, inducir y obtener la información de índice de LFNST para transformar el bloque al que se aplica la MIP y la información sobre el núcleo de transformada que se usa para la LFNST, y llevar a cabo un proceso de transformada del bloque basándose en esto.
Es decir, la información de índice de LFNST para el bloque correspondiente o la información en el núcleo de transformada usado para la LFNST puede no decodificarse pero, a través de un proceso de inducción, puede determinarse el índice para dividir las transformadas que constituyen el conjunto de transformada de LFNST. Además, a través del proceso de inducción, se puede determinar que se utiliza un núcleo de transformada optimizado separado para el bloque al que se aplica la MIP. En este caso, el núcleo LFNST óptimo puede seleccionarse con respecto al bloque al que se aplica la MIP, y la cantidad de bits para codificar esto puede reducirse.
Por ejemplo, la información de índice de LFNST o la información sobre el núcleo de transformada que se usa para la LFNST puede inducirse basándose en al menos una de información de índice de línea de referencia para intrapredicción, información de modo de intrapredicción, información de tamaño de bloque o información de aplicación/no aplicación de MIP.
En las realizaciones descritas más arriba del presente documento, la binarización de longitud fija (FL) puede representar un método de binarización con una longitud fija como, por ejemplo, un número específico de bits, y el número específico de bits puede estar predefinido, o puede representarse basándose en cMax. La binarización unaria truncada (TU, por sus siglas en inglés) puede representar un método de binarización con una longitud variable sin añadir 0 en caso de que el número de símbolos, que se pretende expresar usando 1 de los cuales el número es igual al número de símbolos y uno 0, sea igual a la longitud máxima, y la longitud máxima puede representarse basándose en el cMax. La binarización de Rice truncada (TR) puede representar un método de binarización en la forma en la que el prefijo y el sufijo están conectados entre sí como, por ejemplo, TU FL, usando la información de longitud y desplazamiento máximos, y en caso de que la información de desplazamiento tenga un valor de 0, puede ser igual a la TU. En este caso, la longitud máxima puede representarse basándose en cMax, y la información de desplazamiento puede representarse basándose en cRiceParam.
Las Figuras 12 y 13 ilustran esquemáticamente un método de codificación de vídeo/imagen y un ejemplo de componentes relacionados según la(s) realización(es) del presente documento.
El método descrito en la Figura 12 puede llevarse a cabo mediante un aparato de codificación descrito en la Figura 2 o la Figura 13. Específicamente, por ejemplo, E1200 a E1220 de la Figura 12 pueden llevarse a cabo por el predictor 220 del aparato de codificación de la Figura 13, y E1230 a E1250 de la Figura 12 pueden llevarse a cabo por el procesador 230 residual del aparato de codificación de la Figura 13, y E1260 de la Figura 12 puede llevarse a cabo por el codificador 240 de entropía del aparato de codificación de la Figura 13. Además, aunque no se ilustra en la Figura 12, el predictor 220 del aparato de codificación en la Figura 13 puede derivar muestras de predicción o información relacionada con la predicción, el procesador 230 residual del aparato de codificación puede derivar información residual de las muestras originales o muestras de predicción, y el codificador 240 de entropía del aparato de codificación puede generar un flujo de bits a partir de la información residual o la información relacionada con la predicción. El método descrito en la Figura 12 puede incluir las realizaciones descritas más arriba del presente documento.
Con referencia a la Figura 12, el aparato de codificación puede determinar un modo de intrapredicción y un tipo de intrapredicción para el bloque actual (E1200), y generar información relacionada con la predicción para el bloque actual basándose en el modo de intrapredicción y el tipo de intrapredicción (E1210). Por ejemplo, la información relacionada con la predicción puede incluir información del modo de intrapredicción y/o información del tipo de intrapredicción.
Por ejemplo, el aparato de codificación puede determinar el tipo de intrapredicción del bloque actual teniendo en cuenta un coste de distorsión de tasa (RD). La información de tipo de intrapredicción puede representar información sobre si aplicar un tipo de intrapredicción normal usando una línea de referencia adyacente al bloque actual, una línea de referencia múltiple (MRL) usando una línea de referencia que no es adyacente al bloque actual, intrasubparticiones (ISP) que llevan a cabo la subpartición para el bloque actual, o una intrapredicción basada en matriz (MIP) usando una matriz.
Por ejemplo, la información del tipo de intrapredicción (o la información relacionada con la predicción) puede incluir una bandera MIP que represente si la MIP se aplica al bloque actual. Además, por ejemplo, la información de tipo de intrapredicción (o la información relacionada con la predicción) puede incluir información relacionada con las intrasubparticiones (ISP) de ISP para el bloque actual. Por ejemplo, la información relacionada con ISP puede incluir una bandera de ISP que representa si la ISP se aplica al bloque actual o una bandera de partición de ISP que representa una dirección de partición. Además, por ejemplo, la información del tipo de intrapredicción puede incluir la bandera MIP y la información relacionada con ISP. Por ejemplo, la bandera MIP puede representar un elemento sintáctico intra_mip_flag. Además, por ejemplo, la bandera de ISP puede representar un elemento sintáctico intra_subpartitions_mode_flag y la bandera de partición de ISP puede representar un elemento sintáctico intra_subpartitions_split_flag.
Además, por ejemplo, el aparato de codificación puede determinar el modo de intrapredicción para el bloque actual, y puede generar información de intrapredicción para el bloque actual basándose en el modo de intrapredicción. Por ejemplo, el aparato de codificación puede determinar el modo de intrapredicción teniendo en cuenta el coste de RD. La información de modo de intrapredicción puede representar el modo de intrapredicción que se aplicará al bloque actual entre los modos de intrapredicción. Por ejemplo, los modos de intrapredicción pueden incluir los modos de intrapredicción n.° 0 a n.° 66. Por ejemplo, el modo de intrapredicción n.°.0 puede representar un modo planar, y el modo de intrapredicción n.° 1 puede representar un modo de DC. Además, los modos de intrapredicción n.° 2 a n.° 66 pueden representarse como modos de intrapredicción direccionales o angulares, y pueden representar direcciones a las que se hará referencia. Además, los modos de intrapredicción n.° 0 y n.° 1 pueden representarse como modos de intrapredicción no direccionales o no angulares. La explicación detallada de la misma se ha realizado con referencia a la Figura 5.
El aparato de codificación puede derivar muestras de predicción del bloque actual basándose en el modo de intrapredicción y el tipo de intrapredicción (E1220). O, por ejemplo, el aparato de codificación puede generar las muestras de predicción basándose en un modo de intrapredicción y/o un tipo de intrapredicción.
El aparato de codificación puede generar muestras residuales del bloque actual basándose en las muestras de predicción (E1230). Por ejemplo, el aparato de codificación puede generar las muestras residuales basándose en las muestras originales (p. ej., señal de imagen de entrada) y las muestras de predicción. Además, por ejemplo, el aparato de codificación puede generar las muestras residuales basándose en una diferencia entre las muestras originales y las muestras de predicción.
El aparato de codificación puede generar información relacionada residual para el bloque actual basándose en las muestras residuales (E1240). Por ejemplo, el aparato de codificación puede derivar coeficientes de transformada temporales para el bloque actual basándose en muestras residuales, derivar coeficientes de transformada para el bloque actual a partir de los coeficientes de transformada temporales y generar la información relacionada residual basándose en los coeficientes de transformada. Por ejemplo, cuando no se lleva a cabo la transformada secundaria, los coeficientes de transformada temporal pueden ser los mismos que los coeficientes de transformada, y pueden usarse como los coeficientes de transformada.
Por ejemplo, el aparato de codificación puede derivar los coeficientes de transformada llevando a cabo una transformada primaria en base a las muestras residuales. Además, por ejemplo, el aparato de codificación puede derivar coeficientes de transformada temporales llevando a cabo la transformada primaria basándose en las muestras residuales, y puede derivar los coeficientes de transformada aplicando la LFNST a los coeficientes de transformada temporales. Por ejemplo, en caso de que se aplique la LFNST, el aparato de codificación puede generar la información de índice de LFNST. Es decir, el aparato de codificación puede generar la información de índice de LFNST basándose en el núcleo de transformada usado para derivar los coeficientes de transformada.
Por ejemplo, el aparato de codificación puede derivar coeficientes de transformada cuantificados llevando a cabo la cuantificación basándose en los coeficientes de transformada. Además, el aparato de codificación puede generar información sobre los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados. Además, la información relacionada residual puede incluir información sobre los coeficientes de transformada cuantificados.
El aparato de codificación puede codificar la información relacionada con la predicción y la información relacionada residual (E1250). Por ejemplo, la información relacionada residual puede incluir la información sobre los coeficientes de transformada cuantificados como se describió más arriba. Además, por ejemplo, la información relacionada residual puede incluir la información de índice de LFNST. Además, por ejemplo, la información relacionada residual puede no incluir la información de índice de LFNST.
Por ejemplo, la información relacionada residual puede incluir la información de índice de LFNST que representa información sobre una transformada no separable para coeficientes de transformada de baja frecuencia del bloque actual. Además, por ejemplo, la información relacionada residual puede incluir la información de índice LFNST basada en la bandera MIP o el tamaño del bloque actual. Además, por ejemplo, la información relacionada residual puede incluir la información de índice LFNST basada en la bandera MIP o la información sobre el bloque actual. En este caso, la información sobre el bloque actual puede incluir al menos uno del tamaño del bloque actual, información de estructura de árbol que representa un árbol único o un árbol dual, una bandera habilitada para LFNST o información relacionada con ISP. Por ejemplo, la bandera MIP puede ser una de múltiples condiciones para determinar si la información relacionada residual incluye la información de índice LFNST y, mediante otras condiciones, como, por ejemplo, el tamaño del bloque actual, además de la bandera MIP, la información relacionada residual puede incluir la información de índice LFNST. Sin embargo, en lo sucesivo, se hará una explicación acerca de la bandera MIP. En este caso, la información de índice de LFNST puede representarse como información de índice de transformada. Además, la información de índice de LFNST puede representarse como el elemento sintáctico st_idx o el elemento sintáctico lfnst_idx.
Por ejemplo, la información relacionada residual puede incluir la información de índice LFNST basada en la bandera MIP que representa que la MIP no está aplicada. Además, por ejemplo, la información relacionada residual puede no incluir la información de índice LFNST basada en la bandera MIP que representa que se aplica la MIP. Es decir, en caso de que la bandera MIP represente que la MIP se aplica al bloque actual (p. ej., en caso de que el valor del elemento sintáctico intra_mip_flag sea 1), la información relacionada residual puede no incluir la información de índice de LFNST, y en caso de que la bandera MIP represente que la MIP no se aplica al bloque actual (p. ej., en caso de que el valor del elemento sintáctico intra_mip_flag sea 0), la información relacionada residual puede incluir la información de índice de LFNST.
Además, por ejemplo, la información relacionada residual puede incluir la información de índice LFNST basada en la bandera MIP y la información relacionada con ISP. Por ejemplo, en caso de que la bandera MIP represente que la MIP no se aplique al bloque actual (p. ej., en caso de que el valor del elemento sintáctico intra_mip_flag sea 0), la información relacionada residual puede incluir la información de índice de LFNST con referencia a la información relacionada con ISP (IntraSubPartitionsSplitType). En este caso, IntraSubSubPartitionsSplitType puede representar que la ISP no se aplica (ISP_NO_SPLIT), la<i>S<p>se aplica en una dirección horizontal (I<s>P_<h>O<r>_SPLIT) o la ISP se aplica en una dirección vertical (ISP_VER_SPLIT), y esto puede derivarse en base a la bandera ISP o a la bandera de partición de ISP.
Por ejemplo, como la bandera MIP representa que la MIP se aplica al bloque actual, la información de índice de LFNST puede inducirse o derivarse para ser usada y, en este caso, la información relacionada residual puede no incluir la información de índice de LFNST. Es decir, el aparato de codificación puede no señalizar la información de índice de LFNST. Por ejemplo, la información de índice de LFNST puede inducirse o derivarse para usarse basándose en al menos una de información de índice de línea de referencia para el bloque actual, información de modo de intrapredicción del bloque actual, información de tamaño del bloque actual y la bandera MIP.
Además, por ejemplo, la información de índice de LFNST puede incluir una bandera LFNST que representa si se aplica una transformada no separable para los coeficientes de transformada de baja frecuencia del bloque actual y/o una bandera de índice de núcleo de transformada que representa el núcleo de transformada aplicado al bloque actual entre candidatos de núcleo de transformada. Es decir, aunque la información de índice de LFNST puede representar la información sobre la transformada no separable para los coeficientes de transformada de baja frecuencia del bloque actual basándose en un elemento sintáctico o una pieza de información, también puede representar la información basándose en dos elementos sintácticos o dos piezas de información. Por ejemplo, la bandera LFNST puede representarse como el elemento sintáctico st_flag o el elemento sintáctico lfnst_flag, y la bandera de índice de núcleo de transformada puede representarse como el elemento sintáctico st_idx_flag, el elemento sintáctico st_kemel_flag, el elemento sintáctico lfnst_idx_flag o el elemento sintáctico lfnst_kemel_flag. En este caso, la bandera de índice de núcleo de transformada puede incluirse en la información de índice de LFNST basándose en la bandera LFNST que representa que se aplica la transformada no separable y la bandera MIP que representa que no se aplica la MIP. Es decir, en caso de que la bandera LFNST represente que se aplica la transformada no separable y la bandera MIP represente que se aplica la MIP, la información de índice de LFNST puede incluir la bandera de índice de núcleo de transformada.
Por ejemplo, como la bandera MIP representa que la MIP se aplica al bloque actual, la bandera LFNST y la bandera de índice de núcleo de transformada pueden inducirse o derivarse para usarse y, en este caso, la información relacionada residual puede no incluir la bandera LFNST y la bandera de índice de núcleo de transformada. Es decir, el aparato de codificación puede no señalizar la bandera LFNST y la bandera de índice de núcleo de transformada. Por ejemplo, la bandera LFNST y la bandera de índice de núcleo de transformada pueden inducirse o derivarse para usarse basándose en al menos una de información de índice de línea de referencia para el bloque actual, información de modo de intrapredicción del bloque actual, información de tamaño del bloque actual y la bandera MIP.
Por ejemplo, en caso de que la información relacionada residual incluya la información de índice de LFNST, la información de índice de LFNST puede representarse a través de binarización. Por ejemplo, la información de índice LFNST (p. ej., elemento sintáctico st_idx o elemento sintáctico lfnst_idx) puede representarse mediante binarización basada en Rice truncado (TR) basándose en la bandera MIP que representa que la MIP no está aplicada, y la información de índice LFNST (p. ej., elemento sintáctico st_idx o elemento sintáctico lfnst_idx) puede representarse mediante binarización basada en longitud fija (FL) basándose en la bandera MIP que representa que la MIP está aplicada. Es decir, en caso de que la bandera MIP represente que la MIP no se aplica al bloque actual (p. ej., en caso de que el elemento sintáctico intra_mip_flag sea 0 o falso), la información de índice de LFNST (p. ej., elemento sintáctico st_idx o elemento sintáctico lfnst_idx) puede representarse a través de la binarización basada en TR, y en caso de que la bandera MIP represente que la MIP se aplica al bloque actual (p. ej., en caso de que el elemento sintáctico intra_mip_flag sea 1 o verdadero), la información de índice de LFNST (p. ej., elemento sintáctico st_idx o elemento sintáctico lfnst_idx) puede representarse a través de la binarización basada en FL.
Además, por ejemplo, en caso de que la información relacionada residual incluya la información de índice de LFNST, y la información de índice de LFNST incluya la bandera LFNST y la bandera de índice de núcleo de transformada, la bandera LFNST y la bandera de índice de núcleo de transformada pueden representarse a través de la binarización basada en longitud fija (FL).
Por ejemplo, la información de índice de LFNST puede representarse como (un bin de) una cadena de bins a través de la binarización descrita más arriba, y mediante la codificación de esta, puede generarse un bit, una cadena de bits o un flujo de bits.
Por ejemplo, (el primer) bin de la cadena de bins de la bandera LFNST puede codificarse basándose en la codificación de contexto, y la codificación de contexto puede llevarse a cabo basándose en el valor del incremento de índice de contexto para la bandera LFNST. En este caso, la codificación de contexto es una codificación que se lleva a cabo basándose en un modelo de contexto, y puede denominarse codificación regular. Además, el modelo de contexto puede representarse por el índice de contexto ctsIdx, y el índice de contexto puede representarse basándose en el incremento de índice de contexto ctxInc y el desplazamiento de índice de contexto ctxIdxOffset. Por ejemplo, el valor del incremento del índice de contexto puede representarse como uno de los candidatos que incluyen 0 y 1. Por ejemplo, el valor del incremento del índice de contexto puede determinarse basándose en el índice MTS (p. ej., elemento sintáctico mts_idx o elemento sintáctico tu_mts_idx) que representa el conjunto de núcleos de transformada que va a usarse para el bloque actual entre los conjuntos de núcleos de transformada y la información de tipo de árbol que representa la estructura de partición del bloque actual. En este caso, la información de tipo de árbol puede representar un único árbol que representa que las estructuras de partición del componente luma y el componente croma del bloque actual son iguales entre sí o un árbol dual que representa que las estructuras de partición del componente luma y el componente croma del bloque actual son diferentes entre sí.
Por ejemplo, (el primer) bin de la cadena de bins de la bandera de índice de núcleo de transformada puede codificarse basándose en codificación de derivación. En este caso, la codificación de derivación puede representar que la codificación de contexto se lleva a cabo basándose en la distribución de probabilidad regular, y la eficiencia de codificación puede mejorarse mediante la omisión del procedimiento de actualización de codificación de contexto.
Además, aunque no se ilustra en la Figura 12, por ejemplo, el aparato de codificación puede generar muestras reconstruidas basándose en las muestras residuales y las muestras de predicción. Además, un bloque reconstruido y una imagen reconstruida pueden derivarse en base a las muestras reconstruidas.
Por ejemplo, el aparato de codificación puede generar el flujo de bits o la información codificada codificando información de imagen que incluye la totalidad o partes de las piezas de información (o elementos sintácticos) descritas más arriba. Además, el aparato de codificación puede emitir la información en forma de un flujo de bits. Además, el flujo de bits o la información codificada pueden transmitirse al aparato de decodificación a través de una red o un medio de almacenamiento. Además, el flujo de bits o la información codificada pueden almacenarse en un medio de almacenamiento legible por ordenador, y el flujo de bits o la información codificada pueden generarse mediante el método de codificación de imágenes descrito más arriba.
Las Figuras 14 y 15 ilustran esquemáticamente un método de decodificación de vídeo/imagen y un ejemplo de componentes relacionados según la(s) realización(es) del presente documento.
El método descrito en la Figura 14 puede llevarse a cabo por un aparato de decodificación descrito en la Figura 3 o la Figura 15. Específicamente, por ejemplo, el decodificador 310 de entropía del aparato de decodificación de la Figura 15 puede llevar a cabo E1400 de la Figura 14, y el procesador 320 residual del aparato de decodificación de la Figura 15 puede llevar a cabo E1410 y E1420 de la Figura 14. Además, aunque no se ilustra en la Figura 14, el decodificador 310 de entropía del aparato de decodificación de la Figura 15 puede derivar información relacionada con la predicción o información residual del flujo de bits, el procesador 320 residual del aparato de decodificación puede derivar muestras residuales de la información residual, el predictor 330 del aparato de decodificación puede derivar muestras de predicción de la información relacionada con la predicción, y el sumador 340 del aparato de decodificación puede derivar un bloque reconstruido o una imagen reconstruida de las muestras residuales o las muestras de predicción. El método descrito en la Figura 14 puede incluir las realizaciones descritas más arriba del presente documento.
Con referencia a la Figura 14, el aparato de decodificación puede obtener información relacionada con la predicción e información relacionada residual para un bloque actual (E1400). Por ejemplo, la información relacionada con la predicción puede incluir información del modo de intrapredicción y/o información del tipo de intrapredicción para el bloque actual. Por ejemplo, el aparato de decodificación puede obtener información relacionada con la predicción o información relacionada residual mediante el análisis o decodificación del flujo de bits. En este caso, el flujo de bits puede denominarse información (imagen) codificada. Por ejemplo, el aparato de decodificación puede generar muestras de predicción para el bloque actual basándose en información relacionada con la predicción.
La información de modo de intrapredicción puede representar el modo de intrapredicción que se aplicará al bloque actual entre los modos de intrapredicción. Por ejemplo, los modos de intrapredicción pueden incluir los modos de intrapredicción n.° 0 a n.° 66. Por ejemplo, el modo de intrapredicción n.° 0 puede representar un modo planar, y el modo de intrapredicción n.° 1 puede representar un modo de DC. Además, los modos de intrapredicción n.° 2 a n.° 66 pueden representarse como modos de intrapredicción direccionales o angulares, y pueden representar direcciones a las que se hará referencia. Además, los modos de intrapredicción n.° 0 y n.° 1 pueden representarse como modos de intrapredicción no direccionales o no angulares. La explicación detallada de la misma se ha realizado con referencia a la Figura 5.
Además, la información de tipo de intrapredicción puede representar información sobre si aplicar un tipo de intrapredicción normal usando una línea de referencia adyacente al bloque actual, una línea de referencia múltiple (MRL) usando una línea de referencia que no es adyacente al bloque actual, intrasubparticiones (ISP) que llevan a cabo la subpartición para el bloque actual, o una intrapredicción basada en matriz (MIP) usando una matriz.
Por ejemplo, el aparato de decodificación puede obtener información relacionada residual del flujo de bits. En este caso, la información relacionada residual puede representar información que se usa para derivar muestras residuales, y puede incluir información sobre las muestras residuales, información relacionada con transformada (inversa) y/o información relacionada con cuantificación (inversa). Por ejemplo, la información relacionada residual puede incluir información sobre coeficientes de transformada cuantificados.
Por ejemplo, la información del tipo de intrapredicción (o la información relacionada con la predicción) puede incluir una bandera MIP que represente si la MIP se aplica al bloque actual. Además, por ejemplo, la información de tipo de intrapredicción (o la información relacionada con la predicción) puede incluir información relacionada con las intrasubparticiones (ISP) en la subpartición de ISP para el bloque actual. Por ejemplo, la información relacionada con ISP puede incluir una bandera ISP que representa si la ISP se aplica al bloque actual o una bandera de partición de ISP que representa una dirección de partición. Además, por ejemplo, la información del tipo de intrapredicción puede incluir la bandera MIP y la información relacionada con la ISP. Por ejemplo, la bandera MIP puede representar un elemento sintáctico intra_mip_flag. Además, por ejemplo, la bandera ISP puede representar un elemento sintáctico intra_subpartitions_mode_flag y la bandera de partición de ISP puede representar un elemento sintáctico intra_subpartitions_split_flag.
Por ejemplo, la información relacionada residual puede incluir la información de índice de transformada no separable de baja frecuencia (LFNST) que representa información sobre una transformada no separable para coeficientes de transformada de baja frecuencia del bloque actual. Además, por ejemplo, la información relacionada residual puede incluir la información de índice LFNST basada en la bandera MIP o el tamaño del bloque actual. Además, por ejemplo, la información relacionada residual puede incluir la información de índice LFNST basada en la bandera MIP o la información sobre el bloque actual. En este caso, la información sobre el bloque actual puede incluir al menos uno del tamaño del bloque actual, información de estructura de árbol que representa un árbol único o un árbol dual, una bandera habilitada para LFNST o información relacionada con ISP. Por ejemplo, la bandera MIP puede ser una de múltiples condiciones para determinar si la información relacionada residual incluye la información de índice LFNST y, mediante otras condiciones como, por ejemplo, el tamaño del bloque actual, además de la bandera MIP, la información relacionada residual puede incluir la información de índice LFNST. Sin embargo, en lo sucesivo, se hará una explicación acerca de la bandera MIP. En este caso, la información de índice de LFNST puede representarse como información de índice de transformada. Además, la información de índice de LFNST puede representarse como el elemento sintáctico st idx o el elemento sintáctico lfnst idx.
Por ejemplo, la información relacionada residual puede incluir la información de índice LFNST basada en la bandera MIP que representa que la MIP no está aplicada. Además, por ejemplo, la información relacionada residual puede no incluir la información de índice LFNST basada en la bandera MIP que representa que se aplica la MIP. Es decir, en caso de que la bandera MIP represente que la MIP se aplica al bloque actual (p. ej., en caso de que el valor del elemento sintáctico intra_mip_flag sea 1), la información relacionada residual puede no incluir la información de índice de LFNST, y en caso de que la bandera MIP represente que la MIP no se aplica al bloque actual (p. ej., en caso de que el valor del elemento sintáctico intra_mip_flag sea 0), la información relacionada residual puede incluir la información de índice de LFNST.
Además, por ejemplo, la información relacionada residual puede incluir la información de índice LFNST basada en la bandera MIP y la información relacionada con ISP. Por ejemplo, en caso de que la bandera MIP represente que la MIP no se aplica al bloque actual (p. ej., en caso de que el valor del elemento sintáctico intra_mip_flag sea 0), la información relacionada residual puede incluir la información de índice de LFNST con referencia a la información relacionada con ISP (IntraSubPartitionsSplitType). En este caso, IntraSubSubPartitionsSplitType puede representar que la ISP no se aplica (ISP_NO_SPLIT), la<i>S<p>se aplica en una dirección horizontal (I<s>P_<h>O<r>_SPLIT) o la ISP se aplica en una dirección vertical (ISP_VER_SPLIT), y esto puede derivarse en base a la bandera ISP o a la bandera de partición de ISP.
Por ejemplo, como la bandera MIP representa que la MIP se aplica al bloque actual, la información de índice LFNST puede inducirse o derivarse para ser utilizada en caso de que la información relacionada residual no incluya la información de índice LFNST, es decir, en caso de que la información de índice LFNST no se señalice. Por ejemplo, la información de índice de LFNST puede derivarse basándose en al menos una de información de índice de línea de referencia para el bloque actual, información de modo de intrapredicción del bloque actual, información de tamaño del bloque actual y la bandera MIP.
Además, por ejemplo, la información de índice de LFNST puede incluir una bandera LFNST que representa si se aplica una transformada no separable para los coeficientes de transformada de baja frecuencia del bloque actual y/o una bandera de índice de núcleo de transformada que representa el núcleo de transformada aplicado al bloque actual entre candidatos de núcleo de transformada. Es decir, aunque la información de índice de LFNST puede representar la información sobre la transformada no separable para los coeficientes de transformada de baja frecuencia del bloque actual basándose en un elemento sintáctico o una pieza de información, también puede representar la información basándose en dos elementos sintácticos o dos piezas de información. Por ejemplo, la bandera LFNST puede representarse como el elemento sintáctico st_flag o el elemento sintáctico lfnst_flag, y la bandera de índice de núcleo de transformada puede representarse como el elemento sintáctico st_idx_flag, el elemento sintáctico st_kemel_flag, el elemento sintáctico lfnst_idx_flag o el elemento sintáctico lfnst_kemel_flag. En este caso, la bandera de índice de núcleo de transformada puede incluirse en la información de índice de LFNST basándose en la bandera LFNST que representa que se aplica la transformada no separable y la bandera MIP que representa que no se aplica la MIP. Es decir, en caso de que la bandera LFNST represente que se aplica la transformada no separable y la bandera MIP represente que se aplica la MIP, la información de índice de LFNST puede incluir la bandera de índice de núcleo de transformada.
Por ejemplo, como la bandera MIP representa que la MIP se aplica al bloque actual, la bandera LFNST y la bandera de índice de núcleo de transformada pueden inducirse o derivarse en caso de que la información relacionada residual no incluya la bandera LFNST y la bandera de índice de núcleo de transformada, es decir, la bandera LFNST y la bandera de índice de núcleo de transformada no se señalizan. Por ejemplo, la bandera LFNST y la bandera de índice de núcleo de transformada pueden derivarse basándose en al menos una de información de índice de línea de referencia para el bloque actual, información de modo de intrapredicción del bloque actual, información de tamaño del bloque actual y la bandera MIP.
Por ejemplo, en caso de que la información relacionada residual incluya la información de índice de LFNST, la información de índice de LFNST puede representarse a través de binarización. Por ejemplo, la información de índice LFNST (p. ej., elemento sintáctico st_idx o elemento sintáctico lfnst_idx) puede derivarse a través de binarización basada en Rice truncado (TR) en base a la bandera MIP que representa que la MIP no está aplicada, y la información de índice LFNST (p. ej., elemento sintáctico st_idx o elemento sintáctico lfnst_idx) puede derivarse a través de binarización basada en longitud fija (FL) en base a la bandera MIP que representa que la MIP está aplicada. Es decir, en caso de que la bandera MIP represente que la MIP no se aplique al bloque actual (p. ej., en caso de que el elemento sintáctico intra_mip_flag sea 0 o falso), la información de índice de LFNST (p. ej., elemento sintáctico st_idx o elemento sintáctico lfnst_idx) puede derivarse a través de la binarización basada en TR, y en caso de que la bandera MIP represente que la MIP se aplica al bloque actual (p. ej., en caso de que el elemento sintáctico intra_mip_flag sea 1 o verdadero), la información de índice de LFNST (p. ej., elemento sintáctico st_idx o elemento sintáctico lfnst_idx) puede derivarse a través de la binarización basada en FL.
Además, por ejemplo, en caso de que la información relacionada residual incluya la información de índice de LFNST, y la información de índice de LFNST incluye la bandera LFNST y la bandera de índice de núcleo de transformada, la bandera LFNST y la bandera de índice de núcleo de transformada pueden derivarse a través de la binarización basada en longitud fija (FL).
Por ejemplo, la información de índice de LFNST puede derivar candidatos a través de la binarización descrita más arriba, puede comparar los bins representados analizando o decodificando el flujo de bits con los candidatos y, a través de esto, puede obtenerse la información de índice de LFNST.
Por ejemplo, (el primer) bin de la cadena de bins de la bandera LFNST puede derivarse basándose en la codificación de contexto, y la codificación de contexto puede llevarse a cabo basándose en el valor del incremento de índice de contexto para la bandera LFNST. En este caso, la codificación de contexto es una codificación que se lleva a cabo basándose en el modelo de contexto, y puede denominarse codificación regular. Además, el modelo de contexto puede representarse por el índice de contexto ctsIdx, y el índice de contexto puede derivarse basándose en el incremento de índice de contexto ctxInc y el desplazamiento de índice de contexto ctxIdxOffset. Por ejemplo, el valor del incremento del índice de contexto puede derivarse como uno de los candidatos que incluyen 0 y 1. Por ejemplo, el valor del incremento del índice de contexto puede derivarse en base al índice MTS (p. ej., elemento sintáctico mts_idx o elemento sintáctico tu_mts_idx) que representa el conjunto de núcleos de transformada que se utilizará para el bloque actual entre los conjuntos de núcleos de transformada y la información de tipo de árbol que representa la estructura de partición del bloque actual. En este caso, la información de tipo de árbol puede representar un único árbol que representa que las estructuras de partición del componente luma y el componente croma del bloque actual son iguales entre sí o un árbol dual que representa que las estructuras de partición del componente luma y el componente croma del bloque actual son diferentes entre sí.
Por ejemplo, (el primer) bin de la cadena de bins de la bandera de índice de núcleo de transformada puede derivarse basándose en codificación de derivación. En este caso, la codificación de derivación puede representar que la codificación de contexto se lleva a cabo basándose en la distribución de probabilidad regular, y la eficiencia de codificación puede mejorarse mediante la omisión del procedimiento de actualización de codificación de contexto.
El aparato de decodificación puede derivar coeficientes de transformada para el bloque actual basándose en la información relacionada residual (E1410). Por ejemplo, la información relacionada residual puede incluir información sobre los coeficientes de transformada cuantificados, y el aparato de decodificación puede derivar los coeficientes de transformada cuantificados para el bloque actual basándose en la información sobre los coeficientes de transformada cuantificados. Por ejemplo, el aparato de decodificación puede derivar los coeficientes de transformada para el bloque actual llevando a cabo la descuantificación de los coeficientes de transformada cuantificados.
El aparato de decodificación puede generar las muestras residuales del bloque actual basándose en los coeficientes de transformada (E1420). Por ejemplo, el aparato de decodificación puede generar las muestras residuales a partir de los coeficientes de transformada basándose en la información de índice de LFNST. O, por ejemplo, el aparato de decodificación puede derivar coeficientes de transformada modificados de los coeficientes de transformada en base a la información de índice de LFNST, y puede generar las muestras residuales en base a los coeficientes de transformada modificados. Por ejemplo, cuando no se lleva a cabo la transformada secundaria inversa, los coeficientes de transformada pueden ser los mismos que los coeficientes de transformada modificados, y los coeficientes de transformada pueden usarse para generar las muestras residuales.
Por ejemplo, en caso de que la información de índice de LFNST se incluya en la información relacionada residual o la información de índice de LFNST se induzca o derive, la LFNST puede llevarse a cabo con respecto a los coeficientes de transformada según la información de índice de LFNST, y pueden derivarse coeficientes de transformada modificados. A continuación, el aparato de decodificación puede generar las muestras residuales basándose en los coeficientes de transformada modificados. Además, por ejemplo, en caso de que la información de índice de LFNST no esté incluida en la información relacionada residual o se represente que no se lleva a cabo la LFNST, el aparato de decodificación puede no llevar a cabo la LFNST con respecto a los coeficientes de transformada, sino que puede generar las muestras residuales basándose en los coeficientes de transformada.
Aunque no se ilustra en la Figura 14, por ejemplo, el aparato de decodificación puede generar las muestras reconstruidas basándose en las muestras de predicción y las muestras residuales. Además, por ejemplo, el bloque reconstruido y la imagen reconstruida pueden derivarse basándose en las muestras reconstruidas.
Por ejemplo, el aparato de decodificación puede obtener información de imagen que incluye la totalidad o partes de las piezas de información (o elementos sintácticos) descritas más arriba decodificando el flujo de bits o la información codificada. Además, el flujo de bits o la información codificada pueden almacenarse en un medio de almacenamiento legible por ordenador, y pueden hacer que se lleve a cabo el método de decodificación descrito más arriba.
Aunque los métodos se han descrito sobre la base de un diagrama de flujo en el que las etapas o bloques se enumeran en secuencia en las realizaciones descritas más arriba, las etapas del presente documento no se limitan a un cierto orden, y una cierta etapa se puede llevar a cabo en una etapa diferente o en un orden diferente o simultáneamente con respecto a la descripción de más arriba. Además, las personas con experiencia ordinaria en la técnica entenderán que las etapas de los diagramas de flujo no son excluyentes, y se puede incluir otra etapa en los mismos o se pueden eliminar una o más etapas en el diagrama de flujo.
El método descrito más arriba según la presente descripción puede ser en forma de software, y el aparato de codificación y/o el aparato de decodificación según la presente descripción pueden incluirse en un dispositivo para llevar a cabo el procesamiento de imágenes, por ejemplo, un TV, un ordenador, un teléfono inteligente, un decodificador, un dispositivo de visualización o similares.
Cuando las realizaciones de la presente descripción se implementan mediante software, el método descrito anteriormente puede implementarse mediante un módulo (proceso o función) que lleva a cabo la función descrita anteriormente. El módulo puede almacenarse en una memoria y ejecutarse por un procesador. La memoria puede instalarse dentro o fuera del procesador y puede conectarse al procesador a través de diversos medios conocidos. El procesador puede incluir un circuito integrado para aplicaciones específicas (ASIC, por sus siglas en inglés), otros conjuntos de chips, un circuito lógico y/o un dispositivo de procesamiento de datos. La memoria puede incluir una memoria de solo lectura (ROM, por sus siglas en inglés), una memoria de acceso aleatorio (RAM, por sus siglas en inglés), una memoria flash, una tarjeta de memoria, un medio de almacenamiento y/u otro dispositivo de almacenamiento. En otras palabras, las realizaciones según la presente descripción pueden implementarse y ejecutarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades funcionales ilustradas en las figuras respectivas pueden implementarse y ejecutarse en un ordenador, un procesador, un microprocesador, un controlador o un chip. En este caso, la información sobre la implementación (por ejemplo, información sobre instrucciones) o algoritmos se pueden almacenar en un medio de almacenamiento digital.
Además, el aparato de decodificación y el aparato de codificación a los cuales se aplica(n) la(s) realización(es) del presente documento pueden incluirse en un transceptor de radiodifusión multimedia, un terminal de comunicación móvil, un dispositivo de vídeo de cine en casa, un dispositivo de vídeo de cine digital, una cámara de vigilancia, un dispositivo de chat de vídeo y un dispositivo de comunicación en tiempo real como, por ejemplo, comunicación de vídeo, un dispositivo de transmisión móvil, un medio de almacenamiento, una videocámara, un proveedor de servicios de vídeo bajo demanda (VoD, por sus siglas en inglés), un dispositivo de vídeoover the top(OTT, por sus siglas en inglés), un proveedor de servicios de transmisión de Internet, un dispositivo de vídeo 3D, un dispositivo de realidad virtual (VR), un dispositivo de realidad aumentada (AR), un dispositivo de vídeo de teléfono de imagen, un terminal de vehículo (por ejemplo, un terminal de vehículo (incluido un vehículo autónomo), un terminal de avión o un terminal de barco) y un dispositivo de vídeo médico; y pueden usarse para procesar una señal o datos de imagen. Por ejemplo, el dispositivo de vídeo OTT puede incluir una consola de juegos, un reproductor Bluray, un TV conectado a Internet, un sistema de cine en casa, un teléfono inteligente, una tableta y un grabador de vídeo digital (DVR, por sus siglas en inglés).
Además, el método de procesamiento al que se aplica la(s) realización(es) del presente documento puede producirse en forma de un programa ejecutado por un ordenador y puede almacenarse en un medio de grabación legible por ordenador. Los datos multimedia que tienen una estructura de datos según la(s) realización(es) del presente documento también pueden almacenarse en el medio de grabación legible por ordenador. El medio de grabación legible por ordenador incluye todo tipo de dispositivos de almacenamiento y dispositivos de almacenamiento distribuidos en los que se almacenan datos legibles por ordenador. El medio de grabación legible por ordenador puede incluir, por ejemplo, un disco Bluray (BD, por sus siglas en inglés), un bus universal en serie (USB, por sus siglas en inglés), una ROM, una PROM, una EP<r>O<m>, una EEPROM, una RAM, un CD-ROM, una cinta magnética, un disquete y un dispositivo de almacenamiento de datos ópticos. El medio de grabación legible por ordenador también incluye medios incorporados en forma de una onda portadora (por ejemplo, transmisión a través de Internet). Además, un flujo de bits generado por el método de codificación puede almacenarse en el medio de grabación legible por ordenador o transmitirse a través de una red de comunicación cableada o inalámbrica.
Además, la(s) realización(es) del presente documento puede(n) realizarse como un producto de programa informático basado en un código de programa, y el código de programa puede ejecutarse en un ordenador según la(s) realización(es) del presente documento. El código de programa puede almacenarse en una portadora legible por ordenador.
La Figura 16 representa un ejemplo de un sistema de flujo continuo de contenidos al que puede aplicarse la realización del presente documento.
Con referencia a la Figura 16, el sistema de transmisión de contenidos al que se aplican las realizaciones del presente documento puede incluir, en general, un servidor de codificación, una transmisión.
El servidor de codificación funciona para comprimir a datos digitales los contenidos introducidos desde los dispositivos de entrada multimedia como, por ejemplo, el teléfono inteligente, la cámara, la videocámara y similares, para generar un flujo de bits, y para transmitirlo al servidor de transmisión continua. Como otro ejemplo, en un caso en el que el dispositivo de entrada multimedia como, por ejemplo, el teléfono inteligente, la cámara, la videocámara o similares, genera directamente un flujo de bits, el servidor de codificación puede omitirse.
El flujo de bits puede generarse mediante un método de codificación o un método de generación de flujo de bits al que se aplican las realizaciones del presente documento. Y el servidor de transmisión puede almacenar temporalmente el flujo de bits en un proceso de transmisión o recepción del flujo de bits.
El servidor de transmisión en continuo transmite datos multimedia al equipo de usuario basándose en una solicitud del usuario a través del servidor web, que funciona como un instrumento que informa a un usuario qué servicio hay. Cuando el usuario solicita un servicio que desea el usuario, el servidor web transfiere la solicitud al servidor de transmisión continua, y el servidor de transmisión continua transmite datos multimedia al usuario. A este respecto, el sistema de transmisión de contenidos puede incluir un servidor de control separado y, en este caso, el servidor de control funciona para controlar comandos/respuestas entre equipos respectivos en el sistema de transmisión de contenidos.
El servidor de transmisión puede recibir contenidos del almacenamiento de medios y/o el servidor de codificación. Por ejemplo, en un caso en el que los contenidos se reciben del servidor de codificación, los contenidos pueden recibirse en tiempo real. En este caso, el servidor de transmisión puede almacenar el flujo de bits durante un período predeterminado para proveer el servicio de transmisión sin problemas.
Por ejemplo, el equipo de usuario puede incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de radiodifusión digital, un asistente digital personal (PDA, por sus siglas en inglés), un reproductor multimedia portátil (PMP, por sus siglas en inglés), una navegación, un PC de pizarra, una tableta, unultrabook,un dispositivo ponible (p. ej., un terminal tipo reloj (reloj inteligente), un terminal tipo cristal (cristal inteligente), una pantalla montada en la cabeza (HMD, por sus siglas en inglés)), un TV digital, un ordenador de sobremesa, una señalización digital o similares.
Cada uno de los servidores en el sistema de transmisión continua de contenidos puede ser operado como un servidor distribuido y, en este caso, los datos recibidos por cada servidor pueden ser procesados de manera distribuida.
Claims (3)
1. Un método de decodificación de imágenes llevado a cabo por un aparato de decodificación, comprendiendo el método:
obtener (E1400) información relacionada con la predicción e información relacionada residual para un bloque actual a partir de un flujo de bits;
derivar (E1410) coeficientes de transformada para el bloque actual basándose en la información relacionada residual; y
generar (E1420) muestras residuales del bloque actual basándose en los coeficientes de transformada, en donde si la información relacionada residual incluye la transformada no separable de baja frecuencia, LFNST, la información de índice relacionada con uno de los núcleos de transformada en un conjunto de transformada de LFNST o no para el bloque actual se determina en respuesta a una bandera habilitada para LFNST y una bandera de intrapredicción basada en matriz, MIP,
en donde, en respuesta a la bandera habilitada que representa que la LFNST está habilitada y a la bandera MIP que representa que la MIP no está aplicada, la información relacionada residual incluye la información de índice de LFNST, en donde generar las muestras residuales comprende:
derivar coeficientes de transformada modificados a partir de coeficientes de transformada basándose en la información de índice de LFNST; y
generar las muestras residuales basándose en los coeficientes de transformada modificados,
en donde la bandera MIP representa si se aplica MIP al bloque actual,
en donde, en respuesta a la aplicación de la MIP al bloque actual, las muestras de predicción del bloque actual se derivan reduciendo, a través de la promediado, muestras de referencia vecinas del bloque actual, llevando a cabo una multiplicación de vector de matriz en las muestras de referencia vecinas reducidas, y añadiendo un vector de desplazamiento a valores en los que se lleva a cabo la multiplicación de vector de matriz, y
en donde la bandera MIP está incluida en la información relacionada con la predicción.
2. Un método de codificación de imágenes llevado a cabo por un aparato de codificación, comprendiendo el método: determinar (E1200) un modo de intrapredicción y un tipo de intrapredicción para un bloque actual;
generar (E1210) información relacionada con la predicción para el bloque actual basándose en el modo de intrapredicción y el tipo de intrapredicción;
derivar (E1220) muestras de predicción del bloque actual basándose en el modo de intrapredicción y el tipo de intrapredicción;
generar (E1230) muestras residuales del bloque actual basándose en las muestras de predicción;
generar (E1240) información relacionada residual para el bloque actual basándose en las muestras residuales; y codificar (E1250) la información relacionada con la predicción y la información relacionada residual,
en donde si la información relacionada residual incluye la transformada no separable de baja frecuencia, LFNST, la información de índice relacionada con uno de los núcleos de transformada en un conjunto de transformada de LFNST o no para el bloque actual se determina en respuesta a una bandera habilitada para LFNST y una bandera de intrapredicción basada en matriz, MIP,
en donde, en respuesta a la bandera habilitada que representa que la LFNST está habilitada y a la bandera MIP que representa que la MIP no está aplicada, la información relacionada residual incluye la información de índice de LFNST, en donde generar la información relacionada residual comprende:
derivar coeficientes de transformada temporales para el bloque actual a partir de muestras residuales;
derivar coeficientes de transformada para el bloque actual a partir de los coeficientes de transformada temporales; y generar la información relacionada residual basándose en los coeficientes de transformada,
en donde la información de índice de LFNST se genera basándose en un núcleo de transformada usado para derivar los coeficientes de transformada,
en donde la bandera MIP representa si se aplica MIP al bloque actual,
en donde, en respuesta a la aplicación de la MIP al bloque actual, las muestras de predicción del bloque actual se derivan reduciendo, a través de promediado, muestras de referencia vecinas del bloque actual, llevando a cabo una multiplicación de vector de matriz en las muestras de referencia vecinas reducidas, y añadiendo un vector de desplazamiento a valores en los que se lleva a cabo la multiplicación de vector de matriz, y
en donde la bandera MIP está incluida en la información relacionada con la predicción.
3. Un medio de almacenamiento legible por ordenador no transitorio que almacena un flujo de bits generado por un método de codificación, comprendiendo el método:
determinar (E1200) un modo de intrapredicción y un tipo de intrapredicción para un bloque actual;
generar (E1210) información relacionada con la predicción para el bloque actual basándose en el modo de intrapredicción y el tipo de intrapredicción;
derivar (E1220) muestras de predicción del bloque actual basándose en el modo de intrapredicción y el tipo de intrapredicción;
generar (E1230) muestras residuales del bloque actual basándose en las muestras de predicción;
generar (E1240) información relacionada residual para el bloque actual basándose en las muestras residuales; y codificar (E1250) la información relacionada con la predicción y la información relacionada residual,
en donde si la información relacionada residual incluye la transformada no separable de baja frecuencia, LFNST, la información de índice relacionada con uno de los núcleos de transformada en un conjunto de transformada de LFNST o no para el bloque actual se determina en respuesta a una bandera habilitada para LFNST y una bandera de intrapredicción basada en matriz, MIP,
en donde, en respuesta a la bandera habilitada que representa que la LFNST está habilitada y a la bandera MIP que representa que la MIP no está aplicada, la información relacionada residual incluye la información de índice de LFNST, en donde generar la información relacionada residual comprende:
derivar coeficientes de transformación temporales del bloque actual a partir de las muestras residuales; derivar coeficientes de transformada para el bloque actual a partir de los coeficientes de transformada temporales; y generar la información relacionada residual basándose en los coeficientes de transformada,
en donde la información de índice de LFNST se genera basándose en un núcleo de transformada usado para derivar los coeficientes de transformada,
en donde la bandera MIP representa si se aplica MIP al bloque actual,
en donde, en respuesta a la aplicación de la MIP al bloque actual, las muestras de predicción del bloque actual se derivan reduciendo, a través de la promediado, muestras de referencia vecinas del bloque actual, llevando a cabo una multiplicación de vector de matriz en las muestras de referencia vecinas reducidas, y añadiendo un vector de desplazamiento a valores en los que se lleva a cabo la multiplicación de vector de matriz, y
en donde la bandera MIP está incluida en la información relacionada con la predicción.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962834951P | 2019-04-16 | 2019-04-16 | |
PCT/KR2020/005077 WO2020213945A1 (ko) | 2019-04-16 | 2020-04-16 | 인트라 예측 기반 영상 코딩에서의 변환 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2981910T3 true ES2981910T3 (es) | 2024-10-11 |
Family
ID=72837498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES20791140T Active ES2981910T3 (es) | 2019-04-16 | 2020-04-16 | Transformada en codificación de imágenes basada en intrapredicción |
Country Status (13)
Country | Link |
---|---|
US (4) | US11516510B2 (es) |
EP (2) | EP3952313B1 (es) |
JP (3) | JP7214894B2 (es) |
KR (2) | KR20220162184A (es) |
CN (5) | CN118175312A (es) |
AU (3) | AU2020258920B2 (es) |
ES (1) | ES2981910T3 (es) |
FI (1) | FI3952313T3 (es) |
HR (1) | HRP20240832T1 (es) |
HU (1) | HUE067370T2 (es) |
PL (1) | PL3952313T3 (es) |
SI (1) | SI3952313T1 (es) |
WO (1) | WO2020213945A1 (es) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2975941T3 (es) | 2019-04-17 | 2024-07-18 | Huawei Tech Co Ltd | Armonización de intrapredicción basada en matriz y selección de núcleo de transformada secundaria |
AU2020265960A1 (en) * | 2019-04-27 | 2021-08-19 | Huawei Technologies Co., Ltd. | An encoder, a decoder and corresponding methods of intra prediction |
CN119277062A (zh) * | 2019-04-27 | 2025-01-07 | 数码士有限公司 | 基于帧内预测处理视频信号的方法和设备 |
WO2023197195A1 (zh) * | 2022-04-13 | 2023-10-19 | Oppo广东移动通信有限公司 | 视频编解码方法、编码器、解码器及存储介质 |
US11856227B2 (en) * | 2022-05-26 | 2023-12-26 | Mediatek Inc. | Transform architecture in video encoding systems |
US20250047849A1 (en) * | 2023-08-02 | 2025-02-06 | Tencent America LLC | Methods and systems for signaling and performing secondary transforms |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101904173B (zh) * | 2007-12-21 | 2013-04-03 | 艾利森电话股份有限公司 | 用于视频编码的改进像素预测的方法及设备 |
CN100586184C (zh) * | 2008-01-24 | 2010-01-27 | 北京工业大学 | 帧内预测方法 |
EP2141927A1 (en) * | 2008-07-03 | 2010-01-06 | Panasonic Corporation | Filters for video coding |
WO2011016248A1 (ja) | 2009-08-06 | 2011-02-10 | パナソニック株式会社 | 符号化方法、復号方法、符号化装置及び復号装置 |
US9661338B2 (en) | 2010-07-09 | 2017-05-23 | Qualcomm Incorporated | Coding syntax elements for adaptive scans of transform coefficients for video coding |
JP2012023632A (ja) * | 2010-07-15 | 2012-02-02 | Sony Corp | 符号化装置および符号化方法、並びに、復号装置および復号方法 |
MX2014004851A (es) * | 2011-10-18 | 2014-05-28 | Kt Corp | Metodo para codificar imagen, metodo para decodificar imagen, codificador de imagen y decodificador de imagen. |
GB2501535A (en) | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
US9503760B2 (en) * | 2013-08-15 | 2016-11-22 | Mediatek Inc. | Method and system for symbol binarization and de-binarization |
US10491922B2 (en) * | 2015-09-29 | 2019-11-26 | Qualcomm Incorporated | Non-separable secondary transform for video coding |
US10623774B2 (en) * | 2016-03-22 | 2020-04-14 | Qualcomm Incorporated | Constrained block-level optimization and signaling for video coding tools |
US11095893B2 (en) * | 2016-10-12 | 2021-08-17 | Qualcomm Incorporated | Primary transform and secondary transform in video coding |
CN110419218B (zh) * | 2017-03-16 | 2021-02-26 | 联发科技股份有限公司 | 编码或解码视频数据的方法和装置 |
CN110546952A (zh) * | 2017-03-21 | 2019-12-06 | Lg电子株式会社 | 图像编码系统中的变换方法和用于该变换方法的设备 |
KR102466945B1 (ko) * | 2017-06-21 | 2022-11-14 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치 |
CN117880501A (zh) * | 2018-10-07 | 2024-04-12 | 三星电子株式会社 | 用于编码或解码视频信号的视频信号处理方法和设备 |
EP3918797A4 (en) * | 2019-03-10 | 2023-01-25 | HFI Innovation Inc. | METHOD AND DEVICE FOR CALCULATION AND REPRESENTATION OF QUANTIZATION MATRICES FOR VIDEO CODING |
CN118921455A (zh) * | 2019-03-12 | 2024-11-08 | 苹果公司 | 用于对图像信号进行编码/解码的方法及其装置 |
US11616966B2 (en) * | 2019-04-03 | 2023-03-28 | Mediatek Inc. | Interaction between core transform and secondary transform |
EP3939314A4 (en) * | 2019-04-12 | 2022-06-08 | Beijing Bytedance Network Technology Co., Ltd. | MATRIX-BASED INTRA PREDICTION-BASED TRANSFORMATION CODING |
ES2975941T3 (es) * | 2019-04-17 | 2024-07-18 | Huawei Tech Co Ltd | Armonización de intrapredicción basada en matriz y selección de núcleo de transformada secundaria |
CN118741124A (zh) * | 2019-05-03 | 2024-10-01 | 韩国电子通信研究院 | 对图像进行编码/解码的方法以及比特流的数据的传输方法 |
-
2020
- 2020-04-16 EP EP20791140.5A patent/EP3952313B1/en active Active
- 2020-04-16 CN CN202410503750.4A patent/CN118175312A/zh active Pending
- 2020-04-16 CN CN202080036064.0A patent/CN113841407B/zh active Active
- 2020-04-16 KR KR1020227040786A patent/KR20220162184A/ko active Pending
- 2020-04-16 CN CN202410503747.2A patent/CN118200567A/zh active Pending
- 2020-04-16 HU HUE20791140A patent/HUE067370T2/hu unknown
- 2020-04-16 AU AU2020258920A patent/AU2020258920B2/en active Active
- 2020-04-16 CN CN202410503752.3A patent/CN118175313A/zh active Pending
- 2020-04-16 CN CN202410503756.1A patent/CN118175314A/zh active Pending
- 2020-04-16 ES ES20791140T patent/ES2981910T3/es active Active
- 2020-04-16 JP JP2021562021A patent/JP7214894B2/ja active Active
- 2020-04-16 SI SI202030452T patent/SI3952313T1/sl unknown
- 2020-04-16 FI FIEP20791140.5T patent/FI3952313T3/fi active
- 2020-04-16 HR HRP20240832TT patent/HRP20240832T1/hr unknown
- 2020-04-16 KR KR1020217032788A patent/KR102470695B1/ko active Active
- 2020-04-16 WO PCT/KR2020/005077 patent/WO2020213945A1/ko unknown
- 2020-04-16 EP EP24170546.6A patent/EP4376411A3/en active Pending
- 2020-04-16 PL PL20791140.5T patent/PL3952313T3/pl unknown
-
2021
- 2021-10-18 US US17/503,788 patent/US11516510B2/en active Active
-
2022
- 2022-10-20 US US17/970,027 patent/US11838549B2/en active Active
-
2023
- 2023-01-18 JP JP2023005762A patent/JP7387925B2/ja active Active
- 2023-07-26 AU AU2023208134A patent/AU2023208134B2/en active Active
- 2023-10-25 US US18/383,732 patent/US12200257B2/en active Active
- 2023-11-14 JP JP2023193615A patent/JP7540064B2/ja active Active
-
2024
- 2024-05-28 AU AU2024203561A patent/AU2024203561A1/en active Pending
- 2024-12-06 US US18/972,241 patent/US20250106433A1/en active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2982593T3 (es) | Método de codificación de imágenes basado en una transformada y dispositivo para el mismo | |
ES2966115T3 (es) | Métodos de codificación de imagen basados en historial | |
ES2981910T3 (es) | Transformada en codificación de imágenes basada en intrapredicción | |
ES2969115T3 (es) | Transformada para intra-predicción basada en matriz en codificación de imágenes | |
ES2954232T3 (es) | Método de codificación de video basado en transformada secundaria y dispositivo para el mismo | |
US20240048766A1 (en) | Image coding using transform index | |
ES2952457T3 (es) | Método y aparato para construir un candidato de predicción en base a HMVP | |
ES2983826T3 (es) | Codificación de imágenes basada en transformada | |
ES2982809T3 (es) | Codificación de información sobre conjunto de núcleos de transformada | |
ES2987119T3 (es) | Dispositivo y método de codificación de imágenes basado en filtrado | |
ES2986930T3 (es) | Codificación de imágenes basada en transformadas | |
JP2023053018A (ja) | 変換に基づく映像コーディング方法及びその装置 | |
JP2023500299A (ja) | 変換に基づく映像コーディング方法およびその装置 | |
CN114902678A (zh) | 基于变换的图像编码方法及其设备 | |
CN119420947A (zh) | 基于变换的图像编译方法及其装置 | |
ES2953235T3 (es) | Codificación de imágenes basada en transformadas | |
CN114762340B (zh) | 编译图像的基于变换的方法及其装置 | |
RU2824482C1 (ru) | Способ и оборудование кодирования/декодирования изображений для выполнения внутреннего предсказания и способ для передачи потока битов | |
RU2781079C1 (ru) | Преобразование при кодировании изображений на основе внутреннего прогнозирования | |
RU2799629C1 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
RU2806283C2 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
RU2795696C2 (ru) | Преобразование при кодировании изображений на основе внутреннего прогнозирования | |
RU2781175C1 (ru) | Преобразование для матричного внутреннего прогнозирования при кодировании изображений | |
BR122022006273B1 (pt) | Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem | |
BR122022025588B1 (pt) | Aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e aparelho para transmitir dados para uma imagem |