ES2966494T3 - Señalización de modo intra luma - Google Patents
Señalización de modo intra luma Download PDFInfo
- Publication number
- ES2966494T3 ES2966494T3 ES19833377T ES19833377T ES2966494T3 ES 2966494 T3 ES2966494 T3 ES 2966494T3 ES 19833377 T ES19833377 T ES 19833377T ES 19833377 T ES19833377 T ES 19833377T ES 2966494 T3 ES2966494 T3 ES 2966494T3
- Authority
- ES
- Spain
- Prior art keywords
- modes
- video
- mode
- intra
- list
- 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
- 230000011664 signaling Effects 0.000 title description 11
- 241000023320 Luma <angiosperm> Species 0.000 title description 7
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 title description 7
- 238000000034 method Methods 0.000 claims abstract description 99
- 239000013598 vector Substances 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 14
- 238000003860 storage Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000013139 quantization Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000005192 partition Methods 0.000 description 9
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- FZEIVUHEODGHML-UHFFFAOYSA-N 2-phenyl-3,6-dimethylmorpholine Chemical compound O1C(C)CNC(C)C1C1=CC=CC=C1 FZEIVUHEODGHML-UHFFFAOYSA-N 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012360 testing method Methods 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
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient 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/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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/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
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un método de codificación implementado por un aparato de codificación. El método incluye seleccionar un modo de intra predicción para un bloque actual y codificar el modo de intra predicción seleccionado usando codificación binaria truncada cuando el modo de intra predicción seleccionado es un modo restante. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Señalización de modo intra luma
Referencia cruzada a solicitudes relacionadas
Esta solicitud de patente reivindica el beneficio de la solicitud de patente provisional estadounidense n.° 62/696.739, presentada el 11 de julio de 2019 por Anand Meher Kotra, et al., y titulada "Luma Intra Mode Signaling Improvements,".
Campo técnico
La presente memoria se refiere generalmente a la codificación de vídeo, y se refiere específicamente a la señalización de modo intra luma.
Antecedentes
La cantidad de datos de vídeo necesarios para representar incluso un vídeo relativamente corto puede ser sustancial, lo que puede dar como resultado dificultades cuando los datos se van a enviar por flujo continuo o comunicar de cualquier otra manera a través de una red de comunicaciones con capacidad de ancho de banda limitada. Por lo tanto, los datos de vídeo generalmente se comprimen antes de comunicarse a través de las redes de telecomunicaciones modernas. El tamaño de un vídeo también podría ser un problema cuando el vídeo se almacena en un dispositivo de almacenamiento porque los recursos de memoria pueden ser limitados. Los dispositivos de compresión de vídeo a menudo usan software y/o hardware en la fuente para codificar los datos de vídeo antes de su transmisión o almacenamiento, disminuyendo de esta manera la cantidad de datos necesarios para representar imágenes de vídeo digitales. A continuación, los datos comprimidos se reciben en el destino mediante un dispositivo de descompresión de vídeo que decodifica los datos de vídeo. Con recursos de red limitados y demandas cada vez mayores de mayor calidad de vídeo, son deseables técnicas mejoradas de compresión y descompresión que mejoren la relación de compresión con poco o ningún sacrificio en la calidad de la imagen. La técnica anterior útil para comprender los antecedentes de la presente invención se describe en el documento de ALSHIN A Y COL., “ Description of<s>D<r>, HDR and 360° video coding technology proposal by Samsung, Huawei, GoPro, and HiSilicon - mobile application scenario” , n.° JVET-J0024, (20180414); y en el documento de KOTRA (HUAWEI) A M Y COL.,” CE3.2.2: Intra mode signaling with priority based MPM and non-MPM list construction” , n.° JVET-K0365, (20180703). JVET-K0365 se refiere al BMS (Benchmark Set), que usa un total de 67 modos de intrapredicción. Dichos modos se señalan dividiendo los modos de intrapredicción disponibles en tres listas: una lista de modos de MPM, una lista de modos seleccionados de 16 modos seleccionados y una lista de modos no seleccionados.
Resumen
La presente invención proporciona un método de codificación, un método de codificación, un aparato de codificación y un aparato de decodificación según las reivindicaciones independientes. Se definen realizaciones particulares por las reivindicaciones dependientes. Esta solicitud proporciona además los siguientes aspectos: Un primer aspecto se refiere a un método de codificación implementado por un aparato de codificación. El método incluye seleccionar, usando el aparato de codificación, un modo de intrapredicción para un bloque actual; y codificar, usando el aparato de codificación, el modo de intrapredicción seleccionado usando codificación binaria truncada cuando el modo de intrapredicción seleccionado es un modo restante. El método incluye determinar que el modo de intrapredicción que se seleccionó está dentro de la lista de modos restantes.
Como se explicará más detalladamente a continuación, el método mejora el esquema de señalización intramodo existente. Las realizaciones están configuradas para codificar todos los modos intra restantes, p. ej., todos los modos intra que no están en la lista de MPM (también conocidos como “ modos no de MPM” ) y se señalizan en el flujo de bits, usando binarización truncada. Al usar binarización truncada para los modos restantes, las palabras de código se usan de manera más eficiente. Todos los modos pertenecen a la lista de MPM o bien a los modos restantes. La lista de MPM contiene 6 modos y el modo restante es uno de los 61 modos restantes. Todos los modos restantes se codifican usando la codificación binaria truncada. El método comprende además codificar el modo de intrapredicción seleccionado usando 5 bits cuando el modo de intrapredicción seleccionado es uno de unos primeros tres modos de los modos restantes. El método comprende además codificar el modo de intrapredicción usando 6 bits cuando el modo de intrapredicción seleccionado es uno de los primeros tres modos de los modos restantes.
En una primera forma de implementación del método según el primer aspecto como tal, el método comprende además determinar que el modo de intrapredicción seleccionado queda fuera de una lista de modos más probables (MPM).
(borrado)
(borrado)
(borrado)
(borrado)
(borrado)
(borrado)
(borrado)
En una segunda forma de implementación del método según el primer aspecto como tal o la primera forma de implementación del primer aspecto, el método comprende además llenar modos iniciales en una lista de modos restantes usando una lista de modos predeterminados predeterminada.
En una tercera forma de implementación del método según el primer aspecto como tal o cualquier forma de implementación anterior del primer aspecto, la lista de modos predeterminados predeterminada comprende un modo planar (PLANAR_IDX), un modo cc (DC_IDX), un modo vertical (VER_IDX), un modo horizontal (H<o>R_IDX), un modo intra 2 (2), un modo diagonal vertical (VDIA_IDX) y un modo diagonal (DIA_IDX).
En una cuarta forma de implementación del método según el primer aspecto como tal o cualquier forma de implementación anterior del primer aspecto, el método comprende además llenar los modos iniciales en la lista de modos restantes usando un desplazamiento a los modos angulares incluidos en la lista de MPM.
En una quinta forma de implementación del método según el primer aspecto como tal o cualquier forma de implementación anterior del primer aspecto, el desplazamiento es /- N, donde N es un número entero con un valor de 1, 2, 3 o 4.
En una sexta forma de implementación del método según el primer aspecto como tal o cualquier forma de implementación anterior del primer aspecto, el desplazamiento se añade únicamente al primero de dos de los modos angulares en la lista de MPM.
En una séptima forma de implementación del método según el primer aspecto como tal o cualquier forma de implementación anterior del primer aspecto, el método comprende además llenar modos iniciales de una lista de modos restantes usando modos de bloques vecinos que no son inmediatamente adyacentes al bloque actual.
En una octava forma de implementación del método según el primer aspecto como tal o cualquier forma de implementación anterior del primer aspecto, el método comprende además llenar modos iniciales de una lista de modos restantes usando modos de vecinos de segundo nivel del bloque actual en lugar de vecinos de primer nivel. En una novena forma de implementación del método según el primer aspecto como tal o cualquier forma de implementación anterior del primer aspecto, el método comprende además llenar modos iniciales en la lista de modos restantes basándose en una ubicación de la mayoría de modos en la lista de MPM con respecto a uno de un modo planar (PLANAR_IDX), un modo cc (DC_IDX), un modo vertical (VER_IDX), un modo horizontal (HOR IDX), un modo intra 2 (2), un modo diagonal vertical (VDIA_IDX), y un modo diagonal (DIA_IDX).
En una décima forma de implementación del método según el primer aspecto como tal o cualquier forma de implementación anterior del primer aspecto, el método comprende además llenar modos iniciales en la lista de modos restantes: comparando cada uno de los modos en la lista de MPM con una ubicación de diferentes modos dentro de una lista de modos predeterminados; determinar que uno ganador de los diferentes modos dentro de la lista de modos predeterminados es el más cercano a la mayoría de los modos en la lista de MPM; y llenar los primeros tres modos en la lista de modos restantes con los modos más cercanos al ganador de los diferentes modos dentro de la lista de modos predeterminados.
Un segundo aspecto se refiere al método de decodificación implementado por un aparato de decodificación. El método incluye obtener, mediante el aparato de decodificación, un código binario truncado; decodificar, mediante el aparato de decodificación, el código binario truncado para obtener un modo de intrapredicción que comprende un modo restante; y generar, mediante el aparato de decodificación, un bloque actual usando el modo de intrapredicción que se obtuvo. Todos los modos pertenecen a la lista de MPM o bien a los modos restantes. La lista de MPM contiene 6 modos y el modo restante es uno de los 61 modos restantes. Todos los modos restantes se codifican usando la codificación binaria truncada. El método comprende además decodificar el modo de intrapredicción seleccionado usando 5 bits cuando el modo de intrapredicción seleccionado es uno de unos primeros tres modos de los modos restantes. El método comprende además decodificar el modo de intrapredicción usando 6 bits cuando el modo de intrapredicción seleccionado es uno de los primeros tres modos de los modos restantes.
Como se explicará más detalladamente a continuación, el método mejora el esquema de señalización intramodo existente. Las realizaciones están configuradas para decodificar el código binario truncado para obtener un modo de intrapredicción, que es uno de los modos restantes codificados usando codificación binaria truncada. Al usar binarización truncada para los modos restantes, las palabras de código se usan de manera más eficiente.
En una primera forma de implementación del método según el segundo aspecto como tal, el método comprende además determinar que el modo de intrapredicción está fuera de una lista de modos más probables (MPM).
(borrado)
(borrado)
(borrado)
(borrado)
(borrado).
(borrado).
En una segunda forma de implementación del método según el segundo aspecto como tal o la primera forma de implementación del segundo aspecto, los modos iniciales en una lista de modos restantes son de una lista de modos predeterminados predeterminada.
En una tercera forma de implementación del método según el segundo aspecto como tal o cualquier forma de implementación anterior del segundo aspecto, la lista de modos predeterminados predeterminada comprende un modo planar (PLANAR_IDX), un modo cc (DC_IDX), un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo intra 2 (2), un modo diagonal vertical (VDIA_IDX) y un modo diagonal (DIA_IDX).
En una cuarta forma de implementación del método según el segundo aspecto como tal o cualquier forma de implementación anterior del segundo aspecto, los modos iniciales en la lista de modos restantes se basan en un desplazamiento de los modos angulares incluidos en la lista de MPM.
En una quinta forma de implementación del método según el segundo aspecto como tal o cualquier forma de implementación anterior del primer segundo, el desplazamiento es /- N, donde N es un número entero con un valor de 1, 2, 3 o 4.
En una sexta forma de implementación del método según el segundo aspecto como tal o cualquier forma de implementación anterior del segundo aspecto, el desplazamiento se añade únicamente al primero de dos de los modos angulares en la lista de MPM.
En una séptima forma de implementación del método según el segundo aspecto como tal o cualquier forma de implementación anterior del segundo aspecto, los modos iniciales en la lista de modos restantes se basan en modos de bloques vecinos que no son inmediatamente adyacentes al bloque actual.
En una octava forma de implementación del método según el segundo aspecto como tal o cualquier forma de implementación anterior del segundo aspecto, los modos iniciales en la lista de modos restantes se basan en modos de vecinos de segundo nivel del bloque actual en lugar de vecinos de primer nivel.
En una novena forma de implementación del método según el segundo aspecto como tal o cualquier forma de implementación anterior del segundo aspecto, los modos iniciales en la lista de modos restantes se basan en una ubicación de la mayoría de modos en la lista de MPM con respecto a uno de un modo planar (PLANAR_IDX), un modo cc (DC_IDX), un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo intra 2 (2), un modo diagonal vertical (VDIA_IDX), y un modo diagonal (DIA_IDX).
En una décima forma de implementación del método según el segundo aspecto como tal o cualquier forma de implementación anterior del segundo aspecto, los modos iniciales en la lista de modos restantes se determinaron: comparando cada uno de los modos en la lista de MPM con una ubicación de diferentes modos dentro de una lista de modos predeterminados; determinar que uno ganador de los diferentes modos dentro de la lista de modos predeterminados es el más cercano a la mayoría de los modos en la lista de MPM; y llenar los primeros tres modos en la lista de modos restantes con los modos más cercanos al ganador de los diferentes modos dentro de la lista de modos predeterminados.
En una undécima forma de implementación del método según el segundo aspecto como tal o cualquier forma de implementación anterior del segundo aspecto, los diferentes modos dentro de la categoría de modo comprenden un modo planar (PLANAR_IDX), un modo cc (DC_IDX), un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo intra 2 (2), un modo diagonal vertical (VDIA_IDX) y un modo diagonal (DIA_IDX).
Un tercer aspecto se refiere a un aparato de codificación configurado para realizar cualquiera de los métodos de codificación anteriores.
Un cuarto aspecto se refiere a un aparato de decodificación configurado para realizar cualquiera de los métodos de decodificación anteriores.
Un quinto aspecto se refiere a un aparato de codificación que incluye una memoria; y un procesador acoplado a la memoria, estando configurado el procesador para: seleccionar un modo de intrapredicción para un bloque actual; codificar el modo de intrapredicción seleccionado usando codificación binaria truncada cuando el modo de intrapredicción seleccionado es un modo restante.
En una primera forma de implementación del aparato de codificación según el quinto aspecto como tal, el aparato de codificación comprende un transmisor acoplado al procesador, estando configurado el transmisor para transmitir el modo de intrapredicción seleccionado codificado hacia un aparato de decodificación.
En una segunda forma de implementación del aparato de codificación según el quinto aspecto como tal o cualquier forma de implementación anterior del quinto aspecto, el procesador está configurado para implementar uno o más de los aspectos o implementaciones anteriores.
Formas de implementación adicionales del aparato de codificación corresponden a las respectivas formas de implementación del método de codificación según el primer aspecto.
Un sexto aspecto se refiere a un aparato de decodificación que incluye un receptor configurado para obtener un código binario truncado; un procesador acoplado al receptor, estando configurado el procesador para: decodificar el código binario truncado para obtener un modo de intrapredicción que comprende un modo restante; y generar un bloque actual usando el modo de intrapredicción que se obtuvo.
En una primera forma de implementación del aparato de decodificación según el sexto aspecto como tal, el aparato de decodificación comprende una pantalla acoplada al procesador, estando configurada la pantalla para mostrar una imagen generada usando el bloque actual.
En una segunda forma de implementación del aparato de codificación según el sexto aspecto como tal o cualquier forma de implementación anterior del sexto aspecto, el procesador está configurado para implementar uno o más de los aspectos o implementaciones anteriores.
Formas de implementación adicionales del aparato de decodificación corresponden a las respectivas formas de implementación del método de decodificación según el segundo aspecto.
Breve descripción de los dibujos
Para una comprensión más completa de esta descripción, ahora se hace referencia a la siguiente breve descripción, tomada en relación con los dibujos adjuntos y la descripción detallada, en donde los mismos números de referencia representan partes similares.
La Figura 1 es un diagrama de bloques que ilustra un sistema de codificación ilustrativo que puede utilizar técnicas de modelado de contexto.
La Figura 2 un diagrama de bloques que ilustra un codificador de vídeo ilustrativo que puede implementar técnicas de modelado de contexto.
La Figura 3 un diagrama de bloques que ilustra un decodificador de vídeo de ejemplo que puede implementar técnicas de modelado de contexto.
La Figura 4 es un diagrama esquemático de una unidad de codificación actual y cinco bloques vecinos.
La Figura 5 es un diagrama esquemático de una unidad de codificación actual, vecinos de primer nivel y vecinos de segundo nivel.
La Figura 6 es un diagrama esquemático de un ejemplo de 67 modos de intrapredicción.
La Figura 7 es un diagrama esquemático de un dispositivo de codificación de vídeo ilustrativo.
Descripción detallada
Debe entenderse desde el principio que los sistemas y/o métodos descritos pueden implementarse usando cualquier número de técnicas, ya sean actualmente conocidas o existentes. La descripción no debe limitarse en modo alguno a las implementaciones ilustrativas, dibujos y técnicas que se ilustran a continuación, incluyendo los ejemplos de diseños e implementaciones que se ilustran y describen en la presente memoria.
La Figura 1 es un diagrama de bloques que ilustra un sistema 10 de codificación de ejemplo que puede ser adecuado para implementar diversas técnicas de codificación, predicción o compresión de vídeo. Como se muestra en la Figura 1, el sistema 10 de codificación incluye un dispositivo 12 fuente que proporciona datos de vídeo codificados para ser decodificados en un momento posterior por un dispositivo 14 de destino. En particular, el dispositivo 12 fuente puede proporcionar los datos de vídeo al dispositivo 14 de destino a través de un medio 16 legible por ordenador. El dispositivo 12 fuente y el dispositivo 14 de destino pueden comprender cualquiera de una amplia gama de dispositivos, incluyendo ordenadores de escritorio, ordenadores portátiles (es decir, portátiles), tabletas, decodificadores de salón, teléfonos tales como los llamados teléfonos “ inteligentes” , las tabletas “ inteligentes” , televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivo de envío por flujo continuo de vídeo o similares. En algunos casos, el dispositivo 12 fuente y el dispositivo 14 de destino pueden estar equipados para comunicación inalámbrica.
El dispositivo 14 de destino puede recibir los datos de vídeo codificados para ser decodificados a través de un medio 16 legible por ordenador. El medio 16 legible por ordenador puede comprender cualquier tipo de medio o dispositivo que pueda mover los datos de vídeo codificados desde el dispositivo 12 fuente al dispositivo 14 de destino. En un ejemplo, el medio 16 legible por ordenador puede comprender un medio de comunicación para permitir que el dispositivo 12 fuente transmita datos de vídeo codificados directamente al dispositivo 14 de destino en tiempo real. Los datos de vídeo codificados pueden modularse según un estándar de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo 14 de destino. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrico o alámbrico, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global tal como Internet. El medio de comunicación puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo 12 fuente al dispositivo 14 de destino.
En algunos ejemplos, los datos codificados pueden emitirse desde la interfaz 22 de salida a un dispositivo de almacenamiento. Similarmente, se puede acceder a los datos codificados desde el dispositivo de almacenamiento mediante una interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera de una diversidad de medios de almacenamiento de datos distribuidos o a los que se accede localmente, tales como un disco duro, discos Blu-ray, discos de vídeo digital (DVD), memorias de disco compacto de sólo lectura (CD-ROM), memoria flash, memoria volátil o no volátil, o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de archivos u otro dispositivo de almacenamiento intermedio que puede almacenar el vídeo codificado generado por el dispositivo 12 fuente. El dispositivo 14 de destino puede acceder a los datos de vídeo almacenados desde el dispositivo de almacenamiento a través de envío por flujo continuo o descarga. El servidor de archivos puede ser cualquier tipo de servidor que pueda almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo 14 de destino. Los servidores de archivos ilustrativos incluyen un servidor web (p. ej., para un sitio web), un servidor de protocolo de transferencia de archivos (FTP), dispositivos de almacenamiento conectados en red (NAS) o una unidad de disco local. El dispositivo 14 de destino puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (p. ej., una conexión wifi), una conexión alámbrica (p. ej., línea de abonado digital (DSL), módem por cable, etc.) o una combinación de ambos que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento puede ser una transmisión de envío por flujo continuo, una transmisión de descarga o una combinación de las mismas.
Las técnicas de esta descripción no se limitan necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo como soporte de cualquiera de una diversidad de aplicaciones multimedia, tales como difusiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo de envío por flujo continuo por Internet, tales como envío por flujo continuo adaptativo dinámico a través de HTTP (DASH), vídeo digital que se codifica en un medio de almacenamiento de datos, decodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 de codificación puede configurarse para soportar transmisión de vídeo unidireccional o bidireccional para soportar aplicaciones tales como envío de flujo continuo de vídeo, reproducción de vídeo, difusión de vídeo y/o videotelefonía.
En el ejemplo de la Figura 1, el dispositivo 12 fuente incluye una fuente 18 de vídeo, un codificador 20 de vídeo y una interfaz 22 de salida. El dispositivo 14 de destino incluye la interfaz 28 de entrada, el decodificador 30 de vídeo y el dispositivo 32 de visualización. Según esta descripción, el codificador 20 de vídeo del dispositivo 12 fuente y/o el decodificador 30 de vídeo del dispositivo 14 de destino pueden configurarse para aplicar las técnicas de predicción bidireccional. En otros ejemplos, un dispositivo fuente y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo 12 fuente puede recibir datos de vídeo desde una fuente de vídeo externa, tal como una cámara externa. Asimismo, el dispositivo 14 de destino puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
El sistema 10 de codificación ilustrado de la Figura 1 es simplemente un ejemplo. Las técnicas de predicción bidireccional pueden realizarse mediante cualquier dispositivo de codificación y/o decodificación de vídeo digital. Aunque las técnicas de esta descripción generalmente se realizan mediante un dispositivo de codificación de vídeo, las técnicas también se pueden realizar mediante un codificador/decodificador de vídeo, normalmente denominado “ CÓDEC” . Además, las técnicas de esta descripción también pueden realizarse mediante un preprocesador de vídeo. El codificador y/o el decodificador de vídeo pueden ser una unidad de procesamiento de gráficos (GPU) o un dispositivo similar.
El dispositivo 12 fuente y el dispositivo 14 de destino son simplemente ejemplos de tales dispositivos de codificación en los que el dispositivo 12 fuente genera datos de vídeo codificados para su transmisión al dispositivo 14 de destino. En algunos ejemplos, el dispositivo 12 fuente y el dispositivo 14 de destino pueden operar de una manera sustancialmente simétrica de modo que cada uno de los dispositivos 12, 14 fuente y de destino incluya componentes de codificación y decodificación de vídeo. Por lo tanto, el sistema 10 de codificación puede soportar transmisión de vídeo unidireccional o bidireccional entre los dispositivos 12, 14 de vídeo, p. ej., para envío por flujo continuo de vídeo, reproducción de vídeo, difusión de vídeo o videotelefonía.
La fuente 18 de vídeo del dispositivo 12 fuente puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo capturado previamente y/o una interfaz de alimentación de vídeo para recibir vídeo de un proveedor de contenido de vídeo. Como alternativa adicional, la fuente 18 de vídeo puede generar datos basados en gráficos por ordenador como vídeo fuente, o una combinación de vídeo en directo, vídeo archivado y vídeo generado por ordenador.
En algunos casos, cuando la fuente 18 de vídeo es una cámara de vídeo, el dispositivo 12 fuente y el dispositivo 14 de destino pueden formar los llamados teléfonos con cámara o teléfonos de vídeo. Sin embargo, como se mencionó anteriormente, las técnicas descritas en esta descripción pueden ser aplicables a la codificación de vídeo generalmente y pueden aplicarse a aplicaciones inalámbricas y/o cableadas. En cada caso, el vídeo capturado, precapturado o generado por ordenador puede codificarse mediante el codificador 20 de vídeo. A continuación, la información de vídeo codificada puede enviarse mediante la interfaz 22 de salida a un medio 16 legible por ordenador.
El medio 16 legible por ordenador puede incluir medios transitorios, tales como una difusión inalámbrica o una transmisión de red alámbrica, o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tales como un disco duro, una unidad flash, un disco compacto, un disco de vídeo digital, disco Blu-ray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo 12 fuente y proporcionar los datos de vídeo codificados al dispositivo 14 de destino, p. ej., mediante transmisión de red. Similarmente, un dispositivo informático de una instalación de producción de medios, tal como una instalación de estampado de discos, puede recibir datos de vídeo codificados desde el dispositivo 12 fuente y producir un disco que contenga los datos de vídeo codificados. Por lo tanto, se puede entender que el medio 16 legible por ordenador incluye uno o más medios legibles por ordenador de diversas formas, en diversos ejemplos.
La interfaz 28 de entrada del dispositivo 14 de destino recibe información del medio 16 legible por ordenador. La información del medio 16 legible por ordenador puede incluir información de sintaxis definida por el codificador 20 de vídeo, que también se usa por el decodificador 30 de vídeo, que incluye elementos de sintaxis que describen características y/o procesamiento de bloques y otras unidades codificadas, p. ej., grupo de imágenes (GOP). El dispositivo 32 de visualización muestra los datos de vídeo decodificados a un usuario, y puede comprender cualquiera de una diversidad de dispositivos de visualización tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, un diodo de emisión de luz orgánico (OLED) u otro tipo de dispositivo de visualización.
El codificador 20 de vídeo y el decodificador 30 de vídeo pueden operar según un estándar de codificación de vídeo, tal como el estándar de codificación de vídeo de alta eficiencia (HEVC) actualmente bajo desarrollo, y pueden ajustarse al modelo de prueba de HEVC (HM). Alternativamente, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden operar según otros estándares patentados o industriales, tales como el estándar H.264 del Sector de Normalización de Telecomunicaciones de la Unión Internacional de Telecomunicaciones (ITU-T), denominado, como alternativa, como Grupo de Expertos en Imágenes en Movimiento (MPEG)-4, Parte 10, Codificación de Vídeo Avanzada (AVC), H.265/HEVC o extensiones de tales estándares. Sin embargo, las técnicas de esta descripción no se limitan a ningún estándar de codificación particular. Otros ejemplos de estándares de codificación de vídeo incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la Figura 1, en algunos aspectos, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden integrarse cada uno con un codificador y decodificador de audio, y pueden incluir unidades multiplexorasdemultiplexoras (MUX-DEMUX) apropiadas, u otro hardware y software, para manejar la codificación de audio y vídeo en un flujo de datos común o en flujos de datos separados. Si corresponde, las unidades de MUX-DEMUX pueden cumplir con el protocolo multiplexor ITU H.223 u otros protocolos como el protocolo de datagramas de usuario (UDP).
El codificador 20 de vídeo y el decodificador 30 de vídeo pueden implementarse como cualquiera de una diversidad de sistemas de circuitos de codificador adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados de específicos de la aplicación (ASIC), matrices de puertas programables en campo (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio legible por ordenador no transitorio adecuado y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta descripción. Cada uno de los codificadores 20 de vídeo y el descodificador 30 de vídeo puede incluirse en uno o más codificadores o descodificadores, cualquiera de los cuales puede integrarse como parte de un codificador/descodificador (códec) combinado en un dispositivo respectivo. Un dispositivo que incluye un codificador 20 de vídeo y/o un decodificador 30 de vídeo puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
La Figura 2 es un diagrama de bloques que ilustra un ejemplo de codificador 20 de vídeo que puede implementar técnicas de predicción bidireccional. El codificador 20 de vídeo puede realizar una intra-e inter-codificación de bloques de vídeo dentro de porciones de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de un fotograma o imagen de vídeo determinados. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de fotogramas o imágenes adyacentes de una secuencia de vídeo. El modo intra (modo I) puede referirse a cualquiera de varios modos de codificación basados en el espacio. Los intermodos, tales como la predicción unidireccional (modo P) o la bipredicción (modo B), pueden referirse a cualquiera de varios modos de codificación basados en el tiempo.
Como se muestra en la Figura 2, el codificador 20 de vídeo recibe un bloque de vídeo actual dentro de un fotograma de vídeo a codificar. En el ejemplo de la Figura 2, el codificador 20 de vídeo incluye una unidad 40 de selección de modo, una memoria 64 de fotograma de referencia, un sumador 50, una unidad 52 de procesamiento de transformadas, una unidad 54 de cuantificación y una unidad 56 de codificación por entropía. La unidad 40 de selección de modo, a su vez, incluye la unidad 44 de compensación de movimiento, la unidad 42 de estimación de movimiento, la unidad 46 de intrapredicción y la unidad 48 de partición. Para la reconstrucción de bloques de vídeo, el codificador 20 de vídeo también incluye una unidad 58 de cuantificación inversa, una unidad 60 de transformada inversa y un sumador 62. También se puede incluir un filtro de desbloqueo (no mostrado en la Figura 2) para filtrar los límites de los bloques y eliminar los artefactos de bloqueo del vídeo reconstruido. Si se desea, el filtro de desbloqueo típicamente filtraría la salida del sumador 62. También se pueden usar filtros adicionales (en bucle o post bucle) además del filtro de desbloqueo. Tales filtros no se muestran por brevedad, pero, si se desea, pueden filtrar la salida del sumador 50 (como un filtro en bucle).
Durante el proceso de codificación, el codificador 20 de vídeo recibe un fotograma o segmento de vídeo a codificar. El fotograma o segmento se puede dividir en múltiples bloques de vídeo. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento realizan codificación interpredictiva del bloque de vídeo recibido con respecto a uno o más bloques en uno o más fotogramas de referencia para proporcionar predicción temporal. La unidad 46 de intrapredicción puede realizar alternativamente codificación intrapredictiva del bloque de vídeo recibido con respecto a uno o más bloques vecinos en el mismo fotograma o segmento que el bloque a codificar para proporcionar predicción espacial. El codificador 20 de vídeo puede realizar múltiples pasadas de codificación, p. ej., para seleccionar un modo de codificación apropiado para cada bloque de datos de vídeo.
Además, la unidad 48 de partición puede particionar bloques de datos de vídeo en subbloques, basándose en la evaluación de esquemas de partición anteriores en pasadas de codificación anteriores. Por ejemplo, la unidad 48 de partición puede particionar inicialmente una trama o segmento en unidades de codificación más grandes (LCU) y partir cada una de las LCU en unidades de subcodificación (sub-CU) basándose en un análisis de tasa-distorsión (p. ej., optimización de tasa-distorsión). La unidad 40 de selección de modo puede producir además una estructura de datos de árbol cuádruple indicativa de la partición de una LCU en subCU. Las CU de nodo hoja del árbol cuádruple pueden incluir una o más unidades de predicción (PU) y una o más unidades de transformada (TU).
La presente memoria usa el término “ bloque” para referirse a cualquiera de una CU, PU o TU, en el contexto de HEVC, o estructuras de datos similares en el contexto de otros estándares (p. ej., macrobloques y subbloques de los mismos en H.264/AVC). Una CU incluye un nodo de codificación, PU y TU asociadas con el nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y tiene forma cuadrada. El tamaño de la CU puede variar desde 8*8 píxeles hasta el tamaño del bloque de árbol con un máximo de 64*64 píxeles o mayor. Cada CU puede contener una o más PU y una o más TU. Los datos de sintaxis asociados con una CU pueden describir, por ejemplo, la partición de la CU en una o más PU. Los modos de partición pueden diferir entre si la CU está codificada en modo directo o de salto, codificada en modo de intrapredicción o codificada en modo interpredicción. Las PU pueden dividirse para que no tengan forma cuadrada. Los datos de sintaxis asociados con una CU también pueden describir, por ejemplo, la partición de la CU en una o más TU según un árbol cuádruple. Una TU puede tener forma cuadrada o no cuadrada (p. ej., rectangular).
La unidad 40 de selección de modo puede seleccionar uno de los modos de codificación, intra o inter, p. ej., basándose en resultados de error, y proporciona el bloque intra- o intercodificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para usarlo como fotograma de referencia. La unidad 40 de selección de modo también proporciona elementos de sintaxis, tales como vectores de movimiento, indicadores intramodo, información de partición y otra información de sintaxis similar, a la unidad 56 de codificación por entropía.
La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden estar altamente integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por la unidad 42 de estimación de movimiento, es el proceso de generar vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de un fotograma de vídeo o imagen actual con respecto a un bloque predictivo dentro de un fotograma de referencia (u otra unidad codificada) con respecto al bloque actual que se está codificando dentro del fotograma actual (u otra unidad codificada). Un bloque predictivo es un bloque que coincide estrechamente con el bloque que se va a codificar, en términos de diferencia de píxeles, que puede determinarse mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrada (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador 20 de vídeo puede calcular valores para posiciones de píxeles subenteros de imágenes de referencia almacenadas en la memoria 64 de fotograma de referencia. Por ejemplo, el codificador 20 de vídeo puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxel fraccionales de la imagen de referencia. Por lo tanto, la unidad 42 de estimación de movimiento puede realizar una búsqueda de movimiento con respecto a las posiciones de píxeles completas y las posiciones de píxeles fraccionales y generar un vector de movimiento con precisión de píxeles fraccionales.
La unidad 42 de estimación de movimiento calcula un vector de movimiento para una PU de un bloque de vídeo en un segmento intercodificado comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria 64 de fotogramas de referencia. La unidad 42 de estimación de movimiento envía el vector de movimiento calculado a la unidad 56 de codificación por entropía y a la unidad 44 de compensación de movimiento.
La compensación de movimiento, realizada por la unidad 44 de compensación de movimiento, puede implicar obtener o generar el bloque predictivo basándose en el vector de movimiento determinado por la unidad 42 de estimación de movimiento. De nuevo, la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden integrarse funcionalmente, en algunos ejemplos. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad 44 de compensación de movimiento puede ubicar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando los valores de píxeles del bloque predictivo de los valores de píxeles del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxeles, como se analiza a continuación. Generalmente, la unidad 42 de estimación de movimiento realiza una estimación de movimiento con respecto a los componentes de luma, y la unidad 44 de compensación de movimiento usa vectores de movimiento calculados basándose en los componentes de luma tanto para los componentes de croma como para los componentes de luma. La unidad 40 de selección de modo también puede generar elementos sintácticos asociados con los bloques y segmentos de vídeo para su uso por el decodificador 30 de vídeo al decodificar los bloques de imagen del segmento de vídeo.
La unidad 46 de intrapredicción puede intrapredecir un bloque actual, como alternativa a la interpredicción realizada por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento, como se describió anteriormente. En particular, la unidad 46 de intrapredicción puede determinar un modo de intrapredicción a usar para codificar un bloque actual. En algunos ejemplos, la unidad 46 de intrapredicción puede codificar un bloque actual usando diversos modos de intrapredicción, p. ej., durante pasadas de codificación separadas, y la unidad 46 de intrapredicción (o la unidad 40 de selección de modo, en algunos ejemplos) puede seleccionar un modo de intrapredicción apropiado para su uso desde los modos probados.
Por ejemplo, la unidad 46 de intrapredicción puede calcular valores de tasa-distorsión usando un análisis de tasa-distorsión para los diversos modos de intrapredicción probados, y seleccionar el modo de intrapredicción que tenga las mejores características de tasa-distorsión entre los modos probados. El análisis de tasa-distorsión generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado que fue codificado para producir el bloque codificado, así como una tasa de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad 46 de intrapredicción puede calcular relaciones a partir de las distorsiones y tasa para los diversos bloques codificados para determinar qué modo de intrapredicción presenta el mejor valor de tasa-distorsión para el bloque.
Además, la unidad 46 de intrapredicción puede configurarse para codificar bloques de profundidad de un mapa de profundidad usando un modo de modelado de profundidad (DMM). La unidad 40 de selección de modo puede determinar si un modo de DMM disponible produce mejores resultados de codificación que un modo de intrapredicción y los otros modos de DMM, p. ej., usando optimización de tasa-distorsión (RDO). Los datos para una imagen de textura correspondiente a un mapa de profundidad pueden almacenarse en la memoria 64 de fotograma de referencia. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento también pueden configurarse para interpredecir bloques de profundidad de un mapa de profundidad.
Después de seleccionar un modo de intrapredicción para un bloque (p, ej., un modo de intrapredicción convencional o uno de los modos de DMM), la unidad 46 de intrapredicción puede proporcionar información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad 56 de codificación por entropía. La unidad 56 de codificación por entropía puede codificar la información que indica el modo de intrapredicción seleccionado. El codificador 20 de vídeo puede incluir en los datos de configuración de flujo de bits transmitido, que pueden incluir una pluralidad de tablas de índice de modo de intrapredicción y una pluralidad de tablas de índice de modo de intrapredicción modificadas (también denominadas tablas de mapeo de palabras de código), definiciones de contextos de codificación para diversos bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índice de modo de intrapredicción y una tabla de índice de modo de intrapredicción modificada para su uso en cada uno de los contextos.
El codificador 20 de vídeo forma un bloque de vídeo residual restando los datos de predicción de la unidad 40 de selección de modo del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o componentes que realizan esta operación de resta.
La unidad 52 de procesamiento de transformada aplica una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficientes de transformada residual. La unidad 52 de procesamiento de transformada puede realizar otras transformadas que son conceptualmente similares a DCT. También podrían usarse transformadas de ondícula, transformadas de números enteros, transformadas de subbanda u otros tipos de transformadas.
La unidad 52 de procesamiento de transformada aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada residual. La transformada puede convertir la información residual de un dominio de valor de píxel a un dominio de la transformada, tal como un dominio de la frecuencia. La unidad 52 de procesamiento de transformada puede enviar los coeficientes de transformada resultantes a la unidad 54 de cuantificación. La unidad 54 de cuantificación cuantifica los coeficientes de transformada para reducir aún más la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, a continuación, la unidad 54 de cuantificación puede realizar una exploración de la matriz que incluye los coeficientes de transformada cuantificados. Alternativamente, la unidad 56 de codificación por entropía puede realizar la exploración.
Después de la cuantificación, la unidad 56 de codificación por entropía codifica por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad 56 de codificación por entropía puede realizar codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC), codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), codificación por entropía de partición de intervalos de probabilidad (PIPE) u otra técnica de codificación por entropía. En el caso de la codificación por entropía basada en contexto, el contexto puede basarse en bloques vecinos. Después de la codificación por entropía por la unidad 56 de codificación por entropía, el flujo de bits codificado puede transmitirse a otro dispositivo (p. ej., el decodificador 30 de vídeo) o archivarse para su posterior transmisión o recuperación.
La unidad 58 de cuantificación inversa y la unidad 60 de transformada inversa aplican cuantificación inversa y transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, p. ej., para su uso posterior como bloque de referencia. La unidad 44 de compensación de movimiento puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de uno de los fotogramas de la memoria 64 de fotogramas de referencia. La unidad 44 de compensación de movimiento también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles subenteros para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción con compensación de movimiento producido por la unidad 44 de compensación de movimiento para producir un bloque de vídeo reconstruido para su almacenamiento en la memoria 64 de fotograma de referencia. El bloque de vídeo reconstruido puede usarse por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento como bloque de referencia para intercodificar un bloque en un fotograma de vídeo posterior.
La Figura 3 es un diagrama de bloques que ilustra un ejemplo de decodificador 30 de vídeo que puede implementar técnicas de predicción bidireccional. En el ejemplo de la Figura 3, el decodificador 30 de vídeo incluye una unidad 70 de decodificación por entropía, una unidad 72 de compensación de movimiento, una unidad 74 de intrapredicción, una unidad 76 de cuantificación inversa, una unidad 78 de transformada inversa, una memoria de fotograma de referencia 82 y un sumador 80. El decodificador 30 de vídeo puede realizar, en algunos ejemplos, una pasada de decodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador 20 de vídeo (Figura 2). La unidad 72 de compensación de movimiento puede generar datos de predicción basándose en vectores de movimiento recibidos desde la unidad 70 de decodificación de entropía, mientras que la unidad 74 de intrapredicción puede generar datos de predicción basándose en indicadores de modo de intrapredicción recibidos de la unidad 70 de decodificación de entropía.
Durante el proceso de decodificación, el decodificador 30 de vídeo recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un segmento de vídeo codificado y elementos sintácticos asociados, desde el codificador 20 de vídeo. La unidad 70 de decodificación por entropía del decodificador 30 de vídeo decodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intrapredicción y otros elementos de sintaxis. La unidad 70 de decodificación por entropía reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad 72 de compensación de movimiento. El descodificador 30 de vídeo puede recibir los elementos de sintaxis a nivel del segmento de vídeo y/o el nivel del bloque de vídeo.
Cuando el segmento de vídeo está codificado como un segmento intracodificado (I), la unidad 74 de intrapredicción puede generar datos de predicción para un bloque de vídeo del segmento de vídeo actual basándose en un modo de intrapredicción señalizado y en datos de bloques previamente decodificados del fotograma o imagen actual. Cuando el fotograma de video se codifica como un segmento intercodificado (es decir, B, P, o GPB), la unidad 72 de compensación de movimiento produce bloques predictivos para un bloque de video del segmento de vídeo actual basado en los vectores de movimiento y otros elementos de sintaxis recibidos de la unidad 70 de decodificación por entropía. Los bloques predictivos pueden producirse a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador 30 de vídeo puede construir las listas de fotogramas de referencia, la Lista 0 y la Lista 1, usando técnicas de construcción predeterminadas basándose en imágenes de referencia almacenadas en la memoria 82 de fotograma de referencia.
La unidad 72 de compensación de movimiento determina la información de predicción para un bloque de vídeo del segmento de vídeo actual analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques predictivos para el bloque de vídeo actual que se está decodificando. Por ejemplo, la unidad 72 de compensación de movimiento usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (p. ej., intra- o interpredicción) usado para codificar los bloques de vídeo del segmento de vídeo, un tipo de segmento de interpredicción (p. ej., segmento B, segmento P o segmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento, vectores de movimiento para cada bloque de vídeo intercodificado del segmento, estado de interpredicción para cada bloque de vídeo intercodificado del segmento, y otra información para decodificar los bloques de vídeo en el segmento de vídeo actual.
La unidad 72 de compensación de movimiento también puede realizar una interpolación basándose en filtros de interpolación. La unidad 72 de compensación de movimiento puede usar filtros de interpolación como los que usa el codificador 20 de vídeo durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles subenteros de bloques de referencia. En este caso, la unidad 72 de compensación de movimiento puede determinar los filtros de interpolación usados por el codificador 20 de vídeo a partir de los elementos de sintaxis recibidos y utilizar los filtros de interpolación para producir bloques predictivos.
Los datos para una imagen de textura correspondiente a un mapa de profundidad pueden almacenarse en la memoria 82 de fotograma de referencia. La unidad 72 de compensación de movimiento también puede configurarse para interpredecir bloques de profundidad de un mapa de profundidad.
Se pueden usar mosaicos y/o grupos de mosaicos en lugar de o adicionales a los segmentos.
Definiciones de acrónimos y glosario
CTU / CTB - Unidad de árbol de codificación / Bloque de árbol de codificación
CU / CB - Unidad de codificación / Bloque de codificación
PU / PB - Unidad de predicción / Bloque de predicción
TU/TB - Unidad de transformación / Bloque de transformación
HEVC - Codificación de Vídeo de Alta Eficiencia
Los esquemas de codificación de vídeo tales como H.264/AVC y HEVC se han diseñado siguiendo el exitoso principio de la codificación de vídeo híbrida basada en bloques. Mediante este principio, una imagen se divide primero en bloques y luego cada bloque se predice utilizando la predicción intraimagen o interimagen.
UIT-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) están estudiando la necesidad potencial de estandarización de la futura tecnología de codificación de vídeo con una capacidad de compresión que excede significativamente la norma actual HEVC (incluyendo sus extensiones actuales y extensiones de alto término para codificación de contenido de pantalla y codificación de alto rango dinámico). Los grupos están colaborando en esta actividad de exploración en un esfuerzo conjunto de colaboración conocido como el Equipo Conjunto de Exploración de Vídeo (JVET) para evaluar los diseños de tecnología de compresión propuestos por sus expertos en este campo.
El estándar VTM (Modelo de Prueba Versátil) utiliza 35 intramodos, mientras que el BMS (Conjunto de Referencia) utiliza 67 intramodos. Para codificar los 67 intramodos, el esquema de codificación de intramodo actual en BMS usa el siguiente método.
Para adaptarse al mayor número de intramodos direccionales en BMS, se usa un método de codificación de intramodo con 6 modos más probables (MPM). Están implicados dos aspectos técnicos importantes.
1) la derivación de 6 MPM, y
2) codificación por entropía de 6 MPM y modos no de MPM.
En BMS, los modos incluidos en las listas de MPM se clasifican en tres grupos: Modos intra vecinos, modos intra derivados y modos intra predeterminados.
La Figura 4 representa una unidad 400 de codificación actual y cinco bloques 402 vecinos. La unidad 400 de codificación actual también puede denominarse bloque de codificación actual. Para formar la lista de MPM se usan cinco modos de intrapredicción vecinos, o, en otras palabras, modos de intrapredicción de cinco bloques vecinos. Esas ubicaciones de los 5 bloques vecinos son las mismas que se usan en el modo de fusión, es decir, izquierda (L), arriba (A), abajo a la izquierda (BL), arriba a la derecha (AR) y arriba a la izquierda (AL), como se muestra. en la Figura 4. Una lista de MPM inicial se forma insertando 5 modos intra vecinos, modos planares y de CC en la lista de MPM. Se usa un proceso de poda para eliminar los modos duplicados, de modo que únicamente se incluyan modos únicos en la lista de MPM. El orden en el que se incluyen los modos iniciales es izquierda, arriba, planar, CC, abajo a la izquierda, arriba a la derecha y arriba a la izquierda.
Si la lista de MPM no está completa (es decir, tiene menos de 6 candidatos de MPM en la lista), se añaden modos derivados, esos intramodos se obtienen añadiendo -1 o 1 a los modos angulares que ya están incluidos en la lista de MPM. La derivación no se aplica a modos no angulares, es decir, CC o planar.
Finalmente, si la lista de MPM aún no está completa, se añaden los modos predeterminados en el orden de: vertical, horizontal, intra modo 2 y modo diagonal. En la Figura 6 estos modos se muestran como HOR_IDX, DIA_IDX, MODE2 y VER_IDX, respectivamente. Como resultado de este proceso, se genera una lista única de 6 modos de MPM.
Para la codificación por entropía de 6 MPM, se usa una binarización unaria truncada de los MPM. Los primeros tres contenedores están codificados con contextos que dependen del modo de MPM relacionado con el contenedor que se está señalizando actualmente. El modo de MPM se clasifica en una de tres categorías: (a) si el modo pertenece a la clase horizontal (el modo de MPM es menor o igual que una dirección diagonal), (b) vertical (el modo de MPM es mayor que la dirección diagonal), o (c) no angular (CC y planar). En consecuencia, se usan tres contextos para señalizar el índice de MPM.
La codificación de los 61 no de MPM restantes se realiza de la siguiente manera. Los 61 no de MPM se dividen en primer lugar en dos conjuntos: un conjunto de modos seleccionados y un conjunto de modos no seleccionados. El conjunto de modos seleccionados contiene 16 modos y el resto (45 modos) se asignan al conjunto de modos no seleccionados. El conjunto de modos al que pertenece el modo actual se indica en el flujo de bits con una bandera. A continuación, el modo del conjunto seleccionado se señaliza con un código de longitud fija de 4 bits, y el modo del conjunto no seleccionado se codifica con un código binario truncado. El conjunto de modos seleccionados se genera submuestreando el total de 61 modos no de MPM con los índices de la siguiente manera:
Conjunto de modos seleccionados = {0, 4, 8, 12, 16, 20... 60}
Conjunto de modos no seleccionados = {1,2, 3, 5, 6, 7, 9, 10... 59}
El resumen de los diferentes mecanismos de señalización de modo de INTRA se muestra en la Tabla 1.
Tabla 1 - Señalización de modo intra luma actual en BMS
La presente memoria tiene como objetivo la mejora en el esquema de señalización de intramodo.
El esquema de codificación de intramodo descrito actualmente en BMS se considera complejo y, por lo tanto, se desea una solución más limpia.
Una desventaja del conjunto de modos seleccionados es que la lista de índice es siempre constante y no adaptable basándose en las propiedades del bloque actual (p. ej., sus modos INTRA de bloques vecinos). Una desventaja del conjunto de modos no seleccionados es que la lista de índice siempre es constante y no es adaptativa basándose en las propiedades de bloque actual (p. ej., sus modos INTRA de bloques vecinos).
En la presente memoria, se propone un esquema de señalización intramodo con 6 MPM y 61 modos restantes, en donde los 61 modos restantes se codifican usando un esquema de binarización truncado. Los modos más probables también pueden denominarse modos de intrapredicción más probables, y los modos restantes también pueden denominarse modos de intrapredicción restantes. Por lo tanto, las realizaciones están configuradas para codificar todos los modos intra restantes, es decir, todos los modos intra que no están comprendidos en la lista de MPM (en resumen, “ modos no de MPM” ) y se señalizan en el flujo de bits, usando binarización truncada. Los 61 modos intra restantes también se pueden codificar utilizando un código de longitud fija de 6 bits, pero la desventaja del código de longitud fija de 6 bits es que, de las 64 palabras de código posibles, únicamente se usan 61 palabras de código y no se usan 3 palabras de código restantes. En lugar de un código de longitud fija, se propone la binarización truncada, que usa únicamente 5 bits para señalizar los primeros 3 modos restantes y los 58 modos restantes se codifican a continuación usando 6 bits. Los 6 modos de MPM se codifican, p. ej., usando codificación unaria. Se pueden configurar realizaciones adicionales no reivindicadas para usar una lista de MPM y una lista de modos restantes con un número diferente de modos intra, p. ej., una lista de MPM que comprende más o menos de 6 modos, y una lista de modos restantes que comprende más o menos de 61 modos. Las realizaciones son en particular ventajosas en caso de que el número de modos restantes no sea igual a una potencia de dos porque la codificación de longitud fija no usaría todas las palabras de código posibles de manera eficiente. Las realizaciones que usan codificación binaria truncada señalizan algunos modos usando menos bits en comparación con los otros modos de los modos restantes y, por lo tanto, señalizan los modos restantes de manera más eficiente.
Las realizaciones de un método de codificación comprenden seleccionar un modo de intrapredicción para un bloque actual; y codificar el modo de intrapredicción usando codificación binaria truncada cuando el modo de intrapredicción seleccionado es un modo restante. El modo restante está comprendido en o es parte de un conjunto o pluralidad de modos restantes, p. ej., una lista de modos restantes. Las realizaciones comprenden además determinar que el modo de intrapredicción no está comprendido en (o está fuera) de una lista de MPM, y codificar el modo de intrapredicción seleccionado usando codificación binaria truncada. En realizaciones, el modo de intrapredicción seleccionado no está comprendido en (o está fuera de) una lista de MPM. Las realizaciones comprenden una lista de MPM y los modos restantes, p. ej., únicamente la lista de MPM y los modos restantes (modos no de MPM) y no distinguen conjuntos adicionales de modos de intrapredicción para codificación o señalización, en donde ninguno de los modos de intrapredicción de los modos restantes está comprendido en la lista de MPM. En realizaciones, la lista de MPM comprende 6 modos de intrapredicción y los modos restantes comprenden 61 modos. Las realizaciones pueden comprender añadir el código binario truncado a un flujo de bits. Otras realizaciones comprenden un codificador, p. ej., un aparato o dispositivo de codificación, configurado para realizar cualquiera de los métodos de codificación.
Las realizaciones de un método de decodificación comprenden obtener un código binario truncado, p. ej., analizando un flujo de bits o por otros medios; decodificar el código binario truncado para obtener un modo de intrapredicción de un modo restante, p. ej., de una pluralidad o conjunto de modos restantes; y generar un bloque actual usando el modo de intrapredicción que se obtuvo. Las características adicionales descritas con respecto al método de codificación se aplican igualmente o correspondientemente a las respectivas realizaciones de decodificación. Realizaciones adicionales comprenden un decodificador, p. ej., un aparato o dispositivo de decodificación, configurado para realizar cualquiera de los métodos de decodificación.
Se proponen varias soluciones para llenar los primeros tres modos de la lista de modos restantes.
Los primeros tres modos de la lista de modos restantes se pueden completar de varias maneras posibles.
En primer lugar, usando los modos de una lista de modos predeterminados predeterminada que es {modo planar (PLANAR_IDX, que corresponde al índice “ 0” ), modo CC (DC_IDX, que corresponde al índice “ 1” ), modo vertical (VER_IDX), modo horizontal (HOR_IDX), modo intra 2 (MODE2, que corresponde al índice “2” ), modo diagonal vertical (VDIA_IDX) y modo diagonal (DIA_IDX)} (los términos entre paréntesis muestran los términos correspondientes en la Figura 6, se proporcionan a continuación detalles adicionales acerca de la Figura 6, la lista de modos predeterminados únicamente comprende modos de intrapredicción y también puede denominarse lista de modos de intrapredicción predeterminada).
En segundo lugar, usando desplazamientos de los modos angulares (modos de intrapredicción angular) que ya están presentes en la lista de MPM. En este punto, el desplazamiento puede ser /- N, donde N es un posible valor entero cuyo valor es {1, 2, 3, 4}. Los desplazamientos únicamente podrían añadirse a los dos primeros modos angulares de la lista de MPM.
En tercer lugar, los modos intra (modos de intrapredicción angular) de vecinos no adyacentes también se pueden utilizar para llenar los tres modos. La Figura 5 representa una unidad 500 de codificación actual, vecinos 502 de primer nivel y vecinos de 504 segundo nivel. Como se muestra en la Figura 5, se pueden usar modos intra vecinos de segundo nivel.
En cuarto lugar, como se muestra en la Figura 6, en un primer paso, se toma un modo dado de una lista de MPM y se verifica si está “ cerca” a una de las siguientes categorías de modo {CC IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}, en un segundo paso, a continuación, las categorías de modo se “ ordenan” basándose en la “ mayoría” de modos que se aproximan a ellas. En un tercer paso, se genera la lista de modos restantes insertando modos que están cerca de la categoría de modo ganador del paso 2.
La Figura 6 muestra un ejemplo de 67 modos de intrapredicción, p. ej., según se propone para WC, comprendiendo la pluralidad de modos de intrapredicción de 67 modos de intrapredicción: modo planar (índice 0), modo de cc (índice 1), y modos angulares con los índices 2 a 66, en donde el modo angular inferior izquierdo en la Figura 3 se refiere al índice 2 y la numeración de los índices que se incrementa hasta que el índice 66 es el modo angular más alto de la parte superior derecha de la Figura 6.
Los sistemas de circuitos de procesamiento se pueden implementar en hardware, o en una combinación de hardware y software, por ejemplo, mediante un procesador programable por software o similar.
La Figura 7 es un diagrama esquemático de un dispositivo 700 de red según una realización de la descripción. El dispositivo 700 de red es adecuado para implementar las realizaciones descritas en la presente memoria. El dispositivo 700 de red comprende puertos 710 de entrada y unidades receptoras (Rx) 720 para recibir datos; un procesador, unidad lógica o unidad central de procesamiento (CPU) 730 para procesar los datos; unidades transmisoras (Tx) 740 y puertos 750 de salida para transmitir los datos; y una memoria 760 para almacenar los datos. El dispositivo 700 de red también puede comprender componentes ópticos a eléctricos (OE) y componentes eléctricos a ópticos (EO) acoplados a los puertos 710 de entrada, las unidades 720 receptoras, las unidades 740 transmisoras y los puertos 750 de salida para la salida o entrada de señales ópticas o eléctricas.
El procesador 730 se implementa por hardware y software. El procesador 730 puede implementarse como uno o más chips de CPU, núcleos (p. ej., como un procesador multinúcleo), matrices de puertas programables en campo (FPGA), circuitos integrados de aplicación específica (ASIC) y procesadores de señales digitales (DSP). El procesador 730 está en comunicación con los puertos 710 de entrada, las unidades 720 receptoras, las unidades 740 transmisoras, los puertos 750 de salida y la memoria 760. El procesador 730 comprende un módulo 770 de codificación. El módulo 770 de codificación implementa las realizaciones descritas anteriormente. Por ejemplo, el módulo 770 de codificación implementa, procesa, prepara, o proporciona las diversas funciones de red. La inclusión del módulo 770 de codificación por lo tanto proporciona una mejora sustancial a la funcionalidad del dispositivo 700 de red y efectúa una transformación del dispositivo 700 de red a un estado diferente. Alternativamente, el módulo 770 de codificación se implementa como instrucciones almacenadas en la memoria 760 y ejecutadas por el procesador 730.
La memoria 760 comprende uno o más discos, unidades de cinta y unidades de estado sólido y se pueden usar como un dispositivo de almacenamiento de datos de desbordamiento, para almacenar programas cuando tales programas se seleccionan para su ejecución, y para almacenar instrucciones y datos que se leen durante la ejecución del programa. La memoria 760 puede ser volátil y/o no volátil y puede ser memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), memoria ternaria de contenido direccionable (TCAM) y/o memoria de acceso aleatorio estática (SRAM).
Si bien se han proporcionado varias realizaciones en la presente memoria, debe entenderse que los sistemas y métodos descritos podrían incorporarse de muchas otras formas específicas sin apartarse del alcance de la presente memoria. Los presentes ejemplos deben considerarse ilustrativos y no restrictivos, y la intención no se limita a los detalles ofrecidos en la presente memoria. Por ejemplo, los diversos elementos o componentes se pueden combinar o integrar en otro sistema o se pueden omitir o no implementarse determinadas características.
Además, las técnicas, sistemas, subsistemas, y métodos descritos e ilustrados en las diversas realizaciones como discretos o separados se pueden combinar o integrar con otros sistemas, módulos, técnicas o métodos sin apartarse del alcance de la presente memoria. Otros elementos mostrados o explicados como acoplados o acoplados directamente o que se comunican entre sí pueden acoplarse indirectamente o comunicarse a través de alguna interfaz, dispositivo o componente intermedio, ya sea de forma eléctrica, mecánica u otra.
Claims (6)
- REIVINDICACIONESi.Un método de codificación implementado por un aparato de codificación, comprendiendo el método:seleccionar, usando el aparato de codificación, un modo de intrapredicción para un bloque actual; y codificar, usando el aparato de codificación, el modo de intrapredicción seleccionado usando codificación binaria truncada cuando el modo de intrapredicción seleccionado es un modo restante;en donde todos los modos de intrapredicción pertenecen a la lista de modos más probables, MPM, o bien a los modos restantes, en donde hay 6 modos en la lista de MPM y 61 modos en los modos restantes y todos los modos restantes se codifican usando la codificación binaria truncada, y en donde la codificación usa 5 bits cuando el modo de intrapredicción seleccionado es uno de los primeros tres modos de los modos restantes y 6 bits cuando el modo de intrapredicción está fuera de los primeros tres modos.
- 2. El método de la reivindicación 1, que comprende además determinar que el modo de intrapredicción seleccionado queda fuera de una lista de modos más probables (MPM).
- 3. Un método de decodificación implementado por un aparato de decodificación, comprendiendo el método:obtener, mediante el aparato de decodificación, un código binario truncado;decodificar, mediante el aparato de decodificación, el código binario truncado para obtener un modo de intrapredicción que comprende un modo restante;en donde todos los modos de intrapredicción pertenecen a la lista de modos más probables, MPM, o bien a los modos restantes, en donde hay 6 modos en la lista de MPM y 61 modos en los modos restantes y todos los modos restantes se codifican usando la codificación binaria truncada, y en donde la decodificación usa 5 bits cuando el modo de intrapredicción era uno de los primeros tres modos de los modos restantes y 6 bits cuando el modo de intrapredicción está fuera de los primeros tres modos; y en donde el método comprende ademásgenerar, mediante el aparato de decodificación, un bloque actual usando el modo de intrapredicción que se obtuvo.
- 4. El método de la reivindicación 3, que comprende además determinar que el modo de intrapredicción está fuera de la lista de MPM.
- 5. Un aparato de codificación configurado para realizar el método según la reivindicación 1 o 2.
- 6. Un aparato de decodificación configurado para realizar el método según la reivindicación 3 o 4.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862696739P | 2018-07-11 | 2018-07-11 | |
PCT/US2019/031347 WO2020013911A1 (en) | 2018-07-11 | 2019-05-08 | Luma intra mode signaling |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2966494T3 true ES2966494T3 (es) | 2024-04-22 |
Family
ID=69141873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES19833377T Active ES2966494T3 (es) | 2018-07-11 | 2019-05-08 | Señalización de modo intra luma |
Country Status (15)
Country | Link |
---|---|
US (3) | US11196991B2 (es) |
EP (2) | EP3799690B1 (es) |
JP (2) | JP7201785B2 (es) |
KR (3) | KR102550806B1 (es) |
CN (1) | CN112352423A (es) |
AU (1) | AU2019300691B2 (es) |
BR (1) | BR112021000225A2 (es) |
CA (1) | CA3104981C (es) |
ES (1) | ES2966494T3 (es) |
FI (1) | FI3799690T3 (es) |
HU (1) | HUE064008T2 (es) |
PL (1) | PL3799690T3 (es) |
PT (1) | PT3799690T (es) |
WO (1) | WO2020013911A1 (es) |
ZA (1) | ZA202100480B (es) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3685579A1 (en) * | 2017-10-09 | 2020-07-29 | Huawei Technologies Co., Ltd. | Devices and methods for image and video coding |
KR102637083B1 (ko) * | 2018-07-14 | 2024-02-15 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인트라 예측 관련 정보를 사용하는 영상 디코딩 방법 및 그 장치 |
WO2023068870A1 (ko) * | 2021-10-21 | 2023-04-27 | 엘지전자 주식회사 | 인트라 예측 모드를 코딩하는 방법 및 장치 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2655917T3 (es) | 2011-06-28 | 2018-02-22 | Samsung Electronics Co., Ltd | Aparato de decodificación de vídeo acompañado con decodificación aritmética y señalización bidimensional de un último coeficiente significativo |
EP2745519B1 (en) * | 2011-08-17 | 2017-09-27 | MediaTek Singapore Pte Ltd. | Method and apparatus for intra prediction using non-square blocks |
CN103220508B (zh) | 2012-01-20 | 2014-06-11 | 华为技术有限公司 | 编解码方法和装置 |
CN118890465A (zh) * | 2015-11-19 | 2024-11-01 | Lx半导体科技有限公司 | 图像编码/解码方法和图像数据的传输方法 |
US10448011B2 (en) | 2016-03-18 | 2019-10-15 | Mediatek Inc. | Method and apparatus of intra prediction in image and video processing |
US10368107B2 (en) * | 2016-08-15 | 2019-07-30 | Qualcomm Incorporated | Intra video coding using a decoupled tree structure |
US10506228B2 (en) * | 2016-10-04 | 2019-12-10 | Qualcomm Incorporated | Variable number of intra modes for video coding |
US10750169B2 (en) * | 2016-10-07 | 2020-08-18 | Mediatek Inc. | Method and apparatus for intra chroma coding in image and video coding |
EP3422716A1 (en) * | 2017-06-26 | 2019-01-02 | Thomson Licensing | Method and apparatus for most probable mode (mpm) sorting and signaling in video encoding and decoding |
CA3070444A1 (en) * | 2017-07-24 | 2019-01-31 | Arris Enterprises Llc | Intra mode jvet coding |
EP3685579A1 (en) * | 2017-10-09 | 2020-07-29 | Huawei Technologies Co., Ltd. | Devices and methods for image and video coding |
CN107833799B (zh) * | 2017-10-26 | 2024-09-20 | 上海良信电器股份有限公司 | 一种插入式断路器的固定及解锁机构 |
-
2019
- 2019-05-08 KR KR1020217001370A patent/KR102550806B1/ko active IP Right Grant
- 2019-05-08 BR BR112021000225-1A patent/BR112021000225A2/pt unknown
- 2019-05-08 PL PL19833377.5T patent/PL3799690T3/pl unknown
- 2019-05-08 PT PT198333775T patent/PT3799690T/pt unknown
- 2019-05-08 EP EP19833377.5A patent/EP3799690B1/en active Active
- 2019-05-08 ES ES19833377T patent/ES2966494T3/es active Active
- 2019-05-08 JP JP2021500732A patent/JP7201785B2/ja active Active
- 2019-05-08 CA CA3104981A patent/CA3104981C/en active Active
- 2019-05-08 AU AU2019300691A patent/AU2019300691B2/en active Active
- 2019-05-08 WO PCT/US2019/031347 patent/WO2020013911A1/en unknown
- 2019-05-08 CN CN201980041627.2A patent/CN112352423A/zh active Pending
- 2019-05-08 KR KR1020247013028A patent/KR20240063982A/ko active Search and Examination
- 2019-05-08 KR KR1020237021958A patent/KR102660195B1/ko active IP Right Grant
- 2019-05-08 FI FIEP19833377.5T patent/FI3799690T3/fi active
- 2019-05-08 EP EP23203093.2A patent/EP4283990A3/en active Pending
- 2019-05-08 HU HUE19833377A patent/HUE064008T2/hu unknown
-
2020
- 2020-06-11 US US16/899,313 patent/US11196991B2/en active Active
-
2021
- 2021-01-22 ZA ZA2021/00480A patent/ZA202100480B/en unknown
- 2021-11-03 US US17/518,254 patent/US11695927B2/en active Active
-
2022
- 2022-12-22 JP JP2022205009A patent/JP7513693B2/ja active Active
-
2023
- 2023-05-23 US US18/322,404 patent/US20230370587A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
HUE064008T2 (hu) | 2024-02-28 |
KR20240063982A (ko) | 2024-05-10 |
BR112021000225A2 (pt) | 2021-04-06 |
US11695927B2 (en) | 2023-07-04 |
EP4283990A3 (en) | 2024-02-14 |
KR102660195B1 (ko) | 2024-04-23 |
KR20210019554A (ko) | 2021-02-22 |
EP3799690A1 (en) | 2021-04-07 |
CA3104981C (en) | 2023-12-19 |
JP2021530909A (ja) | 2021-11-11 |
EP4283990A2 (en) | 2023-11-29 |
ZA202100480B (en) | 2022-08-31 |
WO2020013911A1 (en) | 2020-01-16 |
US20220060698A1 (en) | 2022-02-24 |
US20230370587A1 (en) | 2023-11-16 |
JP7201785B2 (ja) | 2023-01-10 |
JP7513693B2 (ja) | 2024-07-09 |
EP3799690B1 (en) | 2023-10-25 |
PT3799690T (pt) | 2023-12-22 |
CA3104981A1 (en) | 2020-01-16 |
US11196991B2 (en) | 2021-12-07 |
AU2019300691A1 (en) | 2021-01-28 |
JP2023052019A (ja) | 2023-04-11 |
EP3799690A4 (en) | 2021-08-04 |
AU2019300691B2 (en) | 2022-12-01 |
CN112352423A (zh) | 2021-02-09 |
KR20230101953A (ko) | 2023-07-06 |
FI3799690T3 (fi) | 2023-11-22 |
KR102550806B1 (ko) | 2023-06-30 |
PL3799690T3 (pl) | 2024-02-19 |
US20200304784A1 (en) | 2020-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110622508B (zh) | 视频压缩中的双向预测方法及装置 | |
ES2938068T3 (es) | Codificador de video, decodificador de video y métodos de codificación y decodificación correspondientes | |
ES2973247T3 (es) | Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo | |
ES2897708T3 (es) | Modelado de contexto eficiente en memoria | |
ES2864623T3 (es) | Codificación de parámetros de cuantificación (QP) en codificación de video | |
US20180367818A1 (en) | Block Partition Structure in Video Compression | |
ES2947509T3 (es) | Manejo de herramienta de codificación de flujo óptico bidireccional (BIO) para remuestreo de imagen de referencia en codificación de video | |
KR20220020427A (ko) | 비디오 코딩에서의 계수 도메인 블록 차동 펄스-코드 변조 | |
KR20220112785A (ko) | 비디오 코딩에서의 픽처 헤더 인트라 랜덤 액세스 픽처 및 점진적 디코더 리프레시 시그널링 | |
ES2966494T3 (es) | Señalización de modo intra luma | |
US20240244205A1 (en) | Position Dependent Spatial Varying Transform For Video Coding | |
US11889079B2 (en) | Constrained prediction mode for video coding | |
ES2968830T3 (es) | Intercodificación en codificación de vídeo con soporte de múltiples capas | |
ES2980470T3 (es) | Procesamiento paralelo de frente de onda para mosaico, ladrillo y segmento | |
WO2019199838A1 (en) | Reducing context switching for coding transform coefficients |