ES2982416T3 - Método y aparato para intrapredicción - Google Patents

Método y aparato para intrapredicción Download PDF

Info

Publication number
ES2982416T3
ES2982416T3 ES19858449T ES19858449T ES2982416T3 ES 2982416 T3 ES2982416 T3 ES 2982416T3 ES 19858449 T ES19858449 T ES 19858449T ES 19858449 T ES19858449 T ES 19858449T ES 2982416 T3 ES2982416 T3 ES 2982416T3
Authority
ES
Spain
Prior art keywords
mode
intra prediction
idx
intra
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19858449T
Other languages
English (en)
Inventor
Biao Wang
Semih Esenlik
Anand Meher Kotra
Han Gao
Jianle Chen
Zhijie Zhao
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2982416T3 publication Critical patent/ES2982416T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes

Landscapes

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

Abstract

Se proporciona un método de decodificación y un decodificador para decodificar un bloque actual de un vídeo, en el que el método de decodificación comprende: obtener un valor de un indicador de modos más probables, MPM, para el bloque actual a partir de un flujo de bits; obtener un índice MPM para el bloque actual a partir del flujo de bits, cuando el valor del indicador MPM indica que un modo de predicción intra para el bloque actual es un modo de predicción intra comprendido en un conjunto MPM de modos de predicción intra; obtener un valor de un modo de predicción intra para el bloque actual, basándose en el índice MPM y el conjunto MPM para el bloque actual; en el que cuando un modo de predicción intra de un bloque vecino izquierdo del bloque actual es un modo Planar, y un modo de predicción intra de un bloque vecino superior del bloque actual es un modo Planar, el conjunto MPM de modos de predicción comprende: un modo Planar, un modo DC, un modo Vertical, un modo Horizontal, un modo de predicción intra correspondiente al modo Vertical con un primer desplazamiento, y un modo de predicción intra correspondiente al modo Vertical con un segundo desplazamiento. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método y aparato para intrapredicción
CAMPO DE LA INVENCIÓN
La presente divulgación se refiere al campo técnico de la codificación y decodificación de imagen y/o vídeo, y en particular a un método y aparato para intrapredicción.
ANTECEDENTES DE LA INVENCIÓN
El vídeo digital ha sido ampliamente utilizado desde la introducción de los discos DVD. Antes de la transmisión, el vídeo es codificado y transmitido utilizando un medio de transmisión. El telespectador recibe el vídeo y utiliza un dispositivo de visualización para decodificar y desplegar el vídeo. Con el paso de los años, la calidad del vídeo se ha mejorado, por ejemplo, debido a resoluciones superiores, profundidades de color y tasas de cuadro. Esto ha conducido a corrientes de datos más grandes que hoy en día son comúnmente transportadas sobre internet y redes de comunicación móvil.
Sin embargo, vídeos de resolución superior típicamente requieren más ancho de banda debido a que tienen más información. A fin de reducir los requerimientos de ancho de banda se han introducido normas de codificación de vídeo que involucran la compresión del vídeo. Cuando el vídeo es codificado, se reducen los requerimientos de ancho de banda (o requerimientos de memoria correspondientes en caso de almacenamiento). Con frecuencia esta reducción sacrifica la calidad. Por lo tanto, las normas de codificación de vídeo intentan encontrar un equilibrio entre los requerimientos de ancho de banda y la calidad.
La Codificación de vídeo de Alta eficiencia (HEVC) es un ejemplo de una norma de codificación de vídeo que comúnmente es conocida por aquellos expertos en la técnica. En HEVC, para dividir una unidad de codificación (CU) en unidades de predicción (PU) o unidades de transformada (TUs). La norma de Codificación de vídeo Versátil (VVC) de siguiente generación es el proyecto de vídeo conjunto más reciente de las organizaciones de estandarización del Grupo de Expertos de Codificación de vídeo ITU-T (VCEG) y el Grupo de Expertos de Imágenes en Movimiento ISO/IEC (MPEG), trabajando juntas en una sociedad conocida como el Equipo de Exploración de vídeo Conjunto (JVET). VVC también se refiere como la norma ITU-T H.266/Codificación de vídeo de siguiente generación (NGVC). En VVC, los conceptos de múltiples tipos de división deberían ser eliminados, es decir, la separación de los conceptos de CU, PU y TU excepto, según se requiera para CUs que tienen un tamaño demasiado grande para la longitud de transformada máxima, y soporta más flexibilidad para formas de división de CU.
El procesamiento de estas unidades de codificación (CUs) (también referidas como bloques) depende de su tamaño, posición espacial y un modo de codificación especificado por un codificador. Los modos de codificación pueden ser clasificados en dos grupos de acuerdo con el tipo de predicción: modos de intrapredicción e interpredicción. Los modos de intrapredicción utilizan muestras de la misma imagen (también referida como cuadro o imagen) para generar muestras de referencia con el fin de calcular los valores de predicción para las muestras del bloque que está siendo reconstruido. La intrapredicción también se refiere como predicción espacial. Los modos de interpredicción están diseñados para predicción temporal y utilizan muestras de referencia de imágenes previas o siguientes para predecir muestras del bloque de la imagen actual.
ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) están estudiando la necesidad potencial de la estandarización de la tecnología de codificación de vídeo futura con una capacidad de compresión que excede significativamente aquella de la norma HEVC actual (incluyendo sus extensiones actuales y extensiones a corto plazo para codificación de contenido de pantalla y codificación de alto rango dinámico). Los grupos están trabajando juntos en esta actividad de exploración en un esfuerzo de colaboración conjunto conocido como el Equipo de Exploración de vídeo Conjunto (JVET) para evaluar los diseños de la tecnología de compresión propuestos por sus expertos en esta área.
La norma VTM (Modelo de Prueba Versátil) utiliza 35 Intra modos mientras que BMS (Ajuste de Referencia) utiliza 67 Intra modos.
El esquema de codificación de intra modo actualmente descrito en BMS es considerado complejo y una desventaja del ajuste de modo no seleccionado es que la lista de índice siempre es constante.
El documento WO2018124333 divulga un método para codificar/decodificar una imagen fija o una imagen móvil con base en un modo de intrapredicción.
El documento WO2017176030A1 divulga un método para procesar un vídeo que comprende: generar una pluralidad de candidatos de Modo Más Probable (MPM); determinar si existe un candidato de MPM idéntico a un modo de intrapredicción de un bloque actual entre la pluralidad de candidatos de MPM; obtener el modo de intrapredicción del bloque actual con base en un resultado de la determinación; y realizar una intrapredicción para el bloque actual con base en el modo de intrapredicción del bloque actual.
BREVE DESCRIPCIÓN DE LA INVENCIÓN
Realizaciones de la presente solicitud proporcionan aparatos y métodos para decodificación de acuerdo con las reivindicaciones independientes. La invención se expone en la reivindicaciones adjuntas en la presente.
BREVE DESCRIPCIÓN DE LAS FIGURAS
Las siguientes realizaciones se describen con mayor con referencia a las figuras y dibujos anexos, en los cuales: La figura 1 es un diagrama de bloques que muestra un ejemplo de un sistema de codificación de vídeo configurado para implementar realizaciones de la invención.
La figura 2 es un diagrama de bloques que muestra un ejemplo de un codificador de vídeo configurado para implementar realizaciones de la invención.
La figura 3 es un diagrama de bloques que muestra una estructura ejemplar de un decodificador de vídeo configurado para implementar realizaciones de la invención.
La figura 4 muestra un diagrama esquemático que ilustra 67 modos de intrapredicción
La figura 5 muestra un diagrama esquemático que ilustra bloques vecinos para derivación MPM.
La figura 6 muestra un diagrama esquemático que ilustra intra modos de bloques vecinos de segunda hilera utilizados para derivar los primeros tres modos en la lista de modos remanentes.
La figura 7 muestra un diagrama esquemático que ilustra un ejemplo de los primeros tres modos en el proceso de generación de lista de modos remanentes.
La figura 8 muestra un diagrama esquemático que ilustra un ejemplo de un método de decodificación de vídeo. La figura 9 muestra otro diagrama esquemático que ilustra un ejemplo de un método de decodificación de vídeo. La figura 10 muestra un diagrama de bloques de un aparato.
DESCRIPCIÓN DETALLADA
Se divulgan un aparato y método para intrapredicción. El aparato y método utilizan un proceso de mapeo para simplificar el procedimiento de cálculo para intrapredicción, con el fin de mejorar la eficiencia de la codificación. El alcance de protección queda definido por las reivindicaciones.
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 Transformada / Bloque de Transformada
HEVC - Codificación de vídeo de Alta Eficiencia
Esquemas de codificación de vídeo tales como H.264/AVC y HEVC están diseñados en función del principio exitoso de la codificación de vídeo híbrido basada en bloque. Utilizando este principio una imagen primero es dividida en bloques y después cada bloque es predicho utilizando predicción de intraimagen o interimagen.
Varias normas de codificación de vídeo desde H.261 pertenecen al grupo de “códecs de vídeo híbrido con pérdida” (es decir, combinan la predicción espacial y temporal en el dominio de muestra y codificación de transformada 2D para aplicar cuantificación en el dominio de transformada). Cada imagen de una secuencia de vídeo típicamente es dividida en un conjunto de bloques que no se traslapan y la codificación típicamente es ejecutada en un nivel de bloque. En otras palabras, en el codificador el vídeo es típicamente procesado, es decir codificado, en un nivel de bloque (bloque de imagen), por ejemplo, utilizando predicción espacial (intraimagen) y predicción temporal (interimagen) para generar un bloque de predicción, sustrayendo el bloque de predicción del bloque actual (bloque actualmente procesado/que va a ser procesado) para obtener un bloque residual, transformando el bloque residual y cuantificando el bloque residual en el dominio de transformada para reducir la cantidad de datos que van a ser transmitidos (compresión), mientras que en el decodificador el procesamiento inverso comparado con el codificador es parcialmente aplicado al bloque codificado o comprimido para reconstruir el bloque actual para representación. Además, el codificador duplica el bucle de procesamiento del decodificador de manera que ambos generarán predicciones idénticas (por ejemplo, intra e inter predicciones) y/o reconstrucciones para procesamiento, es decir, codificación, de los bloques subsiguientes.
Tal como aquí se utiliza, el término “bloque” puede ser una porción de una imagen o un cuadro. Por conveniencia de la descripción, realizaciones de la invención se describen aquí en referencia a Codificación de vídeo de Alta Eficiencia (HEVC) o el software de referencia de la Codificación de vídeo Versátil (VVC), desarrollado por el Equipo de Colaboración Conjunto en Codificación de vídeo (JCT-VC) del Grupo de Expertos de Codificación de vídeo ITU-T (VCEG) y Grupo de Expertos de Imágenes en Movimiento ISO/IEC (MPEG). Un experto en la técnica entenderá que realizaciones de la invención no se limitan a HEVC o VVC. Este se puede referir a CU, PU, y TU. En HEVC, una CTU es dividida en CUs utilizando una estructura de árbol cuaternario denotada como árbol de codificación. La decisión respecto a si se codifica un área de imagen utilizando predicción de interimagen (temporal) o intraimagen (espacial) se realiza al nivel de CU. Cada CU puede ser dividida adicionalmente en una, dos o cuatro PUs de acuerdo con el tipo de división de PU. Dentro de una PU, el mismo proceso de predicción es aplicado y la información relevante es transmitida al decodificador sobre una base PU. Después de obtener el bloque residual aplicando el proceso de predicción basado en el tipo de división de PU, una CU puede ser dividida en unidades de transformada (TUs) de acuerdo con otra estructura de árbol cuaternario similar al árbol de codificación para la CU. En el desarrollo más reciente de la técnica de compresión de vídeo, la división de árbol cuaternario y árbol binario (QTBT) es utilizada para dividir un bloque de codificación. En la estructura de árbol QTBT, una CU puede tener ya sea una forma cuadrada o rectangular. Por ejemplo, una unidad de árbol de codificación (CTU) primero es dividida por una estructura de árbol cuaternario. Los nodos hoja de árbol cuaternario son divididos adicionalmente por una estructura de árbol binario. Los nodos hoja de árbol binario son denominados unidades de codificación (CUs), y esa segmentación es utilizada para procesamiento de predicción y transformada sin alguna división adicional. Esto significa que la CU, PU y TU tienen el mismo tamaño de bloque en la estructura de bloque de codificación QTBT. En paralelo, también se propuso utilizar una división múltiple, por ejemplo, triple división de árbol junto con la estructura de bloque QTBT.
ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) están estudiando la necesidad potencial de la estandarización de tecnología de codificación de vídeo futura con una compatibilidad de compresión que excede significativamente aquella de la norma HEVC actual (incluyendo sus extensiones actuales y extensiones a corto plazo para codificación de contenido de pantalla y codificación de alto-rango-dinámico). Los grupos están trabajando juntos en esta actividad de exploración en un esfuerzo de colaboración conjunto conocido como el Equipo de Exploración de vídeo Conjunto (JVET) para evaluar los diseños de tecnología de compresión propuestos por sus expertos en esta área.
En la siguiente descripción, se hace referencia a los dibujos acompañantes, los cuales forman parte de la divulgación, y en los cuales se muestran, a manera de ilustración, aspectos específicos en los cuales se puede colocar la invención.
Por ejemplo, se entiende que una divulgación en conexión con un método descrito también puede aplicar para un dispositivo o sistema correspondiente configurado para ejecutar el método y viceversa. Por ejemplo, si se describe un paso de método específico, un dispositivo correspondiente puede incluir una unidad para ejecutar el paso del método descrito, incluso si dicha unidad no se describe o ilustra explícitamente en las figuras. Además, se entiende que las características de los diversos aspectos ejemplares aquí descritos se pueden combinar entre sí, a menos que específicamente se observe de otra manera.
La codificación de vídeo típicamente se refiere al procesamiento de una secuencia de imágenes, las cuales forman el vídeo o secuencia de vídeo. El término fotografía, imagen o cuadro pueden ser utilizados/son utilizados como sinónimos en el campo de la codificación de vídeo así como en esta solicitud. Cada imagen típicamente es dividida en un conjunto de bloques que no se traslapan. La codificación/decodificación de la imagen típicamente se ejecuta en un nivel de bloque donde, por ejemplo, la predicción de inter cuadro o predicción de intra cuadro son utilizadas para generar un bloque de predicción, para sustraer el bloque de predicción del bloque actual (bloque actualmente procesado/que va a ser procesado) para obtener un bloque residual, el cual es adicionalmente transformado y cuantificado para reducir la cantidad de datos que van a ser transmitidos (compresión) mientras en el lado del decodificador se aplica el procesamiento inverso al bloque codificado/comprimido para reconstruir el bloque para representación.
La figura 1 es un diagrama de bloques esquemático o conceptual que ilustra un sistema de codificación ejemplar 10, por ejemplo un sistema de codificación de vídeo 10 que puede utilizar técnicas para esta presente solicitud (presente divulgación). El codificador 20 (por ejemplo, codificador de vídeo 20) y decodificador 30 (por ejemplo, decodificador de vídeo 30) del sistema de codificación de vídeo 10 representan ejemplos de dispositivos que pueden ser configurados para ejecutar técnicas de acuerdo con diversos ejemplos descritos en la presente solicitud. Tal como se muestra en la figura 1, el sistema de codificación 10 comprende un dispositivo fuente 12 configurado para proporcionar datos codificados 13, por ejemplo, una imagen codificada 13, por ejemplo a un dispositivo destino 14 para decodificar los datos codificados 13. El dispositivo fuente 12 comprende un codificador 20, y adicionalmente puede comprender, es decir, opcionalmente, una fuente de imágenes 16, una unidad de pre-procesamiento 18, por ejemplo una unidad de pre-procesamiento de imágenes 18, y una interfaz de comunicación o unidad de comunicación 22.
La fuente de imágenes 16 puede comprender o puede ser cualquier tipo de dispositivo de captura de imágenes, por ejemplo para capturar una imagen del mundo real, y/o cualquier tipo de un dispositivo de generación de imagen o comentario (para codificación de contenido de pantalla, algunos textos en la pantalla también se consideran una parte de una imagen o fotografía que se va a codificar), por ejemplo un procesador de gráficos de computadora para generar una imagen animada por computadora, o cualquier tipo de dispositivo para obtener y/o proporcionar una imagen del mundo real, una imagen animada por computadora (por ejemplo un contenido de pantalla, una imagen de realidad virtual (VR)) y/o cualquier combinación de los mismos (por ejemplo a una imagen de realidad aumentada (AR)).
Una imagen (digital) es o puede ser vista como un arreglo bidimensional o matriz de muestras con valores de intensidad. Una muestra en el arreglo también se puede referir como pixel (forma breve de elemento de imagen) o un pel. El número de muestras en la dirección (o eje) horizontal y vertical del arreglo o imagen define el tamaño y/o resolución de la imagen. Para representación de color, típicamente se emplean tres componentes de color, es decir, la imagen puede ser representada o puede incluir tres arreglos de muestra. En formato RBG o espacio de color, una imagen comprende un arreglo de muestras rojo, verde y azul correspondientes. Sin embargo, en la codificación de vídeo cada pixel típicamente es representado en un formato de luminancia/crominancia o espacio de color, por ejemplo YCbCr, el cual comprende un componente de luminancia indicado por Y (en ocasiones también se utiliza L en su lugar) y dos componentes de crominancia indicados por Cb y Cr. El componente de luminancia (o luma para abreviar) Y representa la brillantez o intensidad de nivel de grises (por ejemplo tal como en una imagen de escala de grises), mientras los dos componentes de crominancia (o croma para abreviar) Cb y Cr representan los componentes de información de color o cromaticidad. Por consiguiente, una imagen en formato YCbCr comprende un arreglo de muestras de luminancia de valores de muestra de luminancia (Y), y dos arreglos de muestra de crominancia de valores de crominancia (Cb y Cr). Las imágenes en formato RGB pueden ser convertidas o transformadas en formato YCbCr y viceversa, el proceso también es conocido como transformación o conversión de color. Si una imagen es monocromática, la imagen puede comprender solamente un arreglo de muestras de luminancia.
La fuente de imágenes 16 (por ejemplo fuente de vídeo 16) puede ser, por ejemplo una cámara para capturar una imagen, una memoria, por ejemplo una memoria de imágenes, comprendiendo o almacenando una imagen previamente capturada o generada, y/o cualquier tipo de interfaz (interna o externa) para obtener o recibir una imagen. La cámara puede ser, por ejemplo, una cámara local o integrada en el dispositivo fuente, la memoria puede ser una memoria local o integrada, por ejemplo integrada en el dispositivo fuente. La interfaz puede ser, por ejemplo, una interfaz externa para recibir una imagen desde una fuente de vídeo externa, por ejemplo un dispositivo de captura de imágenes externo tal como una cámara, una memoria externa, o un dispositivo de generación de imágenes externo, por ejemplo un procesador de gráficos de computadora externo, computadora o servidor. La interfaz puede ser cualquier tipo de interfaz, por ejemplo una interfaz cableada o inalámbrica, una interfaz óptica, de acuerdo con cualquier protocolo de interfaz de marca propia o estandarizado. La interfaz para obtener los datos de imagen 17 puede ser la misma interfaz que o una parte de la interfaz de comunicación 22.
A diferencia de la unidad de pre-procesamiento 18 y el procesamiento ejecutado por la unidad de pre-procesamiento 18, la imagen o datos de imagen 17 (por ejemplo datos de vídeo 16) también puede ser referida como imagen sin procesar o datos de imagen sin procesar 17.
La unidad de pre-procesamiento 18 está configurada para recibir los datos de imagen (sin procesar) 17 y para ejecutar pre-procesamiento en los datos de imagen 17 para obtener una imagen pre-procesada 19 o datos de imagen pre-procesada 19. El pre-procesamiento ejecutado por la unidad de pre-procesamiento 18, por ejemplo, puede comprender recorte, conversión de formato de color (por ejemplo de RGB a YCbCr), corrección de color, o eliminación de ruido. Se puede entender que la unidad de pre-procesamiento 18 puede ser un componente opcional. El codificador 20 (por ejemplo codificador de vídeo 20) está configurado para recibir los datos de imagen pre procesada 19 y para proporcionar los datos de imagen codificados 21 (detalles adicionales se proporcionarán a continuación, por ejemplo, con base en la figura 2).
La interfaz de comunicación 22 del dispositivo fuente 12 puede ser configurada para recibir los datos de imagen codificados 21 y transmitirlos a otro dispositivo, por ejemplo el dispositivo destino 14 o cualquier otro dispositivo, para almacenamiento o reconstrucción directa, o para procesar los datos de imagen codificados 21 para respectivamente antes almacenar los datos codificados 13 y/o transmitir los datos codificados 13 a otro dispositivo, por ejemplo el dispositivo destino 14 o cualquier otro dispositivo para decodificación o almacenamiento.
El dispositivo destino 14 comprende un decodificador 30 (por ejemplo un decodificador de vídeo 30), y adicionalmente, es decir, opcionalmente puede comprender una interfaz de comunicación o unidad de comunicación 28, una unidad de post-procesamiento 32 y un dispositivo de exhibición 34.
La interfaz de comunicación 28 del dispositivo destino 14 está configurada para recibir los datos de imagen codificados 21 o los datos codificados 13, por ejemplo directamente desde el dispositivo fuente 12 o desde cualquier otra fuente, por ejemplo un dispositivo de almacenamiento, por ejemplo un dispositivo de almacenamiento de datos de imagen codificados.
La interfaz de comunicación 22 y la interfaz de comunicación 28 pueden ser configuradas para transmitir o recibir los datos de imagen codificados 21 o datos codificados 13 a través de un enlace de comunicación directo entre el dispositivo fuente 12 y el dispositivo destino 14, por ejemplo una conexión cableada o inalámbrica directa, o a través de cualquier tipo de red, por ejemplo una red cableada o inalámbrica o cualquier combinación de las mismas, o cualquier tipo de red privada y pública, o cualquier tipo de combinación de las mismas.
La interfaz de comunicación 22 puede ser configurada, por ejemplo, para empacar los datos de imagen codificados 21 en un formato apropiado, por ejemplo paquetes, para transmisión sobre un enlace de comunicación o red de comunicación.
La interfaz de comunicación 28, formando la contraparte de la interfaz de comunicación 22, puede ser configurada, por ejemplo, para desempacar los datos codificados 13 con el fin de obtener los datos de imagen codificados 21. Ambas, la interfaz de comunicación 22 y la interfaz de comunicación 28 pueden ser configuradas como interfaces de comunicación unidireccionales conforme a lo indicado por la flecha para los datos de imagen codificados 13 en la figura 1A apuntando desde el dispositivo fuente 12 al dispositivo destino 14, o interfaces de comunicación bidireccionales, y se pueden configurar, por ejemplo para enviar y recibir mensajes, por ejemplo para establecer una conexión, para reconocer e intercambiar cualquier otra información relacionada con el enlace de comunicación y/o transmisión de datos, por ejemplo transmisión de datos de imagen codificados.
El decodificador 30 está configurado para recibir los datos de imagen codificados 21 y proporcionar los datos de imagen decodificados 31 o una imagen decodificada 31 (detalles adicionales se describirán a continuación, por ejemplo, con base en la figura 3).
El post-procesador 32 del dispositivo destino 14 está configurado para post-procesar los datos de imagen decodificados 31 (también denominados datos de imagen reconstruidos), por ejemplo la imagen decodificada 31, para obtener datos de imagen post-procesados 33, por ejemplo una imagen post-procesada 33. El post procesamiento ejecutado por la unidad de post-procesamiento 32 puede comprender, por ejemplo, conversión del formato de color (por ejemplo de YCbCr a RGB), corrección de color, recorte, o re-muestreo o cualquier otro procesamiento, por ejemplo para preparar los datos de imagen decodificados 31 para despliegue, por ejemplo por el dispositivo de exhibición 34.
El dispositivo de exhibición 34 del dispositivo destino 14 está configurado para recibir los datos de imagen post procesados 33 para desplegar la imagen, por ejemplo a un usuario o telespectador. El dispositivo de exhibición 34 puede ser o comprender cualquier tipo de despliegue para representar la imagen reconstruida, por ejemplo una pantalla o monitor integrado o externo. Las pantallas, por ejemplo pueden comprender pantallas de cristal líquido (LCD), pantallas de diodos de emisión de luz orgánica (OLED), pantallas de plasma, proyectores, pantallas micro LED, cristal líquido en silicio (LCoS), procesador de luz digital (DLP) o cualquier tipo de otra pantalla.
Aunque la figura 1 muestra el dispositivo fuente 12 y el dispositivo destino 14 como dispositivos separados, realizaciones de dispositivos también pueden comprender ambos o ambas funcionalidades, el dispositivo fuente 12 o funcionalidad correspondiente y el dispositivo destino 14 o funcionalidad correspondiente. En dichas realizaciones, el dispositivo fuente 12 o funcionalidad correspondiente y el dispositivo destino 14 o funcionalidad correspondiente pueden ser implementados utilizando el mismo hardware y/o software o a través de hardware y/o software separado o cualquier combinación de los mismos.
Tal como resultará aparente para aquellos expertos en la técnica con base en la descripción, la existencia y división (exacta) de funcionalidades de las diferentes unidades o funcionalidades dentro del dispositivo fuente 12 y/o dispositivo destino 14 como se muestra en la figura 1 pueden variar dependiendo del dispositivo y aplicación reales. El codificador 20 (por ejemplo un codificador de vídeo 20) y el decodificador 30 (por ejemplo un decodificador de vídeo 30) pueden ser implementados como cualquiera de una variedad de circuitos convenientes, tal como uno o más microprocesadores, procesadores de señal digital (DSPs), circuitos integrados de aplicación específica (ASICs), arreglos de puerta programables en campo (FPGAs), lógica discreta, hardware, o cualesquiera combinaciones de los mismos. Si las técnicas son implementadas parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio de almacenamiento legible por computadora no transitorio, conveniente y puede ejecutar las instrucciones en hardware utilizando uno o más procesadores para ejecutar las técnicas de esta divulgación. Cualquiera de los anteriores (incluyendo hardware, software, una combinación de hardware y software, etc.) se puede considerar como uno o más procesadores. Cada uno del codificador de vídeo 20 y decodificador de vídeo 30 puede ser incluido en uno o más codificadores o decodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/decodificador combinado (CODEC) en un dispositivo respectivo.
La figura 2 muestra un diagrama de bloques esquemático/conceptual de un codificador de vídeo ejemplar 20 que está configurado para implementar las técnicas de la presente solicitud. En el ejemplo de la figura 2, el codificador de vídeo 20 comprende una unidad de cálculo residual 204, una unidad de procesamiento de transformada 206, una unidad de cuantificación 208, una unidad de cuantificación inversa 210, y una unidad de procesamiento de transformada inversa 212, una unidad de reconstrucción 214, una memoria tampón 216, una unidad de filtro de bucle 220, una memoria tampón de imágenes decodificadas (DPB) 230, una unidad de procesamiento de predicción 260 y una unidad de codificación por entropía 270. La unidad de procesamiento de predicción 260 puede incluir una unidad de interpredicción 244, una unidad de intrapredicción 254 y una unidad de selección de modo 262. La unidad de interpredicción 244 puede incluir una unidad de estimación de movimiento y una unidad de compensación de movimiento (que no se muestra). Un codificador de vídeo 20 como se muestra en la figura 2 puede también ser referido como codificador de vídeo híbrido o un codificador de vídeo de acuerdo con un códec de vídeo híbrido. Por ejemplo, la unidad de cálculo residual 204, la unidad de procesamiento de transformada 206, la unidad de cuantificación 208, la unidad de procesamiento de predicción 260 y la unidad de codificación por entropía 270 forman una trayectoria de señal de avance del codificador 20, mientras que, por ejemplo, la unidad de cuantificación inversa 210, la unidad de procesamiento de transformada inversa 212, la unidad de reconstrucción 214, la memoria tampón 216, el filtro de bucle 220, la memoria tampón de imágenes decodificadas (DPB) 230, la unidad de procesamiento de predicción 260 forman una trayectoria de señal de retroceso del codificador, en donde la trayectoria de señal de retroceso del codificador corresponde a la trayectoria de señal del decodificador (ver el decodificador 30 en la figura 3).
El codificador 20 está configurado para recibir, por ejemplo a través de la entrada 202, una imagen 201 o un bloque 203 de la imagen 201, por ejemplo la imagen de una secuencia de imágenes que forman un vídeo o secuencia de vídeo. El bloque de imágenes 203 también se puede referir como bloque de imágenes actual o bloque de imágenes que se van a codificar, y la imagen 201 como imagen actual o imagen que va a ser codificada (en particular en codificación de vídeo para distinguir la imagen actual de otras imágenes, por ejemplo imágenes previamente codificadas y/o decodificadas de la misma secuencia de vídeo, es decir, la secuencia de vídeo que también comprende la imagen actual).
La unidad de procesamiento de predicción 260, también referida como unidad de procesamiento de predicción de bloque 260, está configurada para recibir u obtener el bloque 203 (bloque actual 203 de la imagen actual 201) y datos de imagen reconstruidos, por ejemplo muestras de referencia de la misma imagen (actual) de la memoria tampón 216 y/o datos de imagen de referencia 231 de una o una pluralidad de imágenes previamente decodificadas de la memoria tampón de imágenes decodificadas 230, y procesar dichos datos para predicción, es decir, proporcionar un bloque de predicción 265, el cual puede ser un bloque inter-predicho 245 o un bloque intra-predicho 255.
La unidad de selección de modo 262 puede ser configurada para seleccionar un modo de predicción (por ejemplo un modo de intra o interpredicción) y/o un bloque de predicción correspondiente 245 o 255 para que sea utilizado como el bloque de predicción 265 para el cálculo del bloque residual 205 y para la reconstrucción del bloque reconstruido 215.
Realizaciones de la unidad de selección de modo 262 pueden ser configuradas para seleccionar el modo de predicción (por ejemplo a partir de aquellos soportados por la unidad de procesamiento de predicción 260), el cual proporciona el mejor emparejamiento o en otras palabras el residual mínimo (residual mínimo significa mejor compresión para transmisión o almacenamiento), o una sobrecarga de señalización mínima (sobrecarga de señalización mínima significa mejor compresión para transmisión o almacenamiento), o que considera o equilibra los dos. La unidad de selección de modo 262 puede ser configurada para determinar el modo de predicción basado en la optimización de distorsión de tasa (RDO), es decir, seleccionar el modo de predicción que proporciona una optimización de distorsión de tasa mínima o cuya distorsión de tasa asociada cumple con al menos un criterio de selección de modo de predicción.
La unidad de intrapredicción 254 además está configurada para determinar, con base en el parámetro de intrapredicción, por ejemplo el modo de intrapredicción seleccionado, el bloque de intrapredicción 255. En cualquier caso, después de seleccionar un modo de intrapredicción para un bloque, la unidad de intrapredicción 254 también está configurada para proporcionar el parámetro de intrapredicción, es decir información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad de codificación por entropía 270. En un ejemplo, la unidad de intrapredicción 254 puede ser configurada para ejecutar cualquier combinación de las técnicas de intrapredicción descritas más adelante.
La figura 3 muestra un decodificador de vídeo ejemplar 30 que está configurado para implementar las técnicas de la presente solicitud. El decodificador de vídeo 30 configurado para recibir datos de imagen codificados (por ejemplo corriente de bits codificada) 21, por ejemplo codificada por el codificador 100, para obtener una imagen decodificada 131. Durante el proceso de decodificación, el decodificador de vídeo 30 recibe datos de vídeo, por ejemplo una corriente de bits de vídeo codificado que representa bloques de imágenes de un segmento de vídeo codificado y elementos de sintaxis asociados, del codificador de vídeo 100.
En el ejemplo de la figura 3, el decodificador 30 comprende una unidad de decodificación por entropía 304, una unidad de cuantificación inversa 310, una unidad de procesamiento de transformada inversa 312, una unidad de reconstrucción 314 (por ejemplo una sumadora 314), una memoria tampón 316, un filtro de bucle 320, una memoria tampón de imágenes decodificadas 330 y una unidad de procesamiento de predicción 360. La unidad de procesamiento de predicción 360 puede incluir una unidad de interpredicción 344, una unidad de intrapredicción 354, y una unidad de selección de modo 362. El decodificador de vídeo 30, en algunos ejemplos, puede ejecutar un paso de decodificación generalmente recíproco al paso de codificación descrito con respecto al codificador de vídeo 100 de la figura 2.
La unidad de decodificación por entropía 304 está configurada para ejecutar decodificación por entropía a los datos de imagen codificados 21 para obtener, por ejemplo, coeficientes cuantificados 309 y/o parámetros de codificación decodificados (que no se muestran en la figura 3), por ejemplo (decodificados) cualquiera o todos los parámetros de interpredicción, el parámetro de intrapredicción, parámetros de filtro de bucle, y/u otros elementos de sintaxis. La unidad de decodificación por entropía 304 además está configurada para reenviar parámetros de interpredicción, el parámetro de intrapredicción y/u otros elementos de sintaxis a la unidad de procesamiento de predicción 360. El decodificador de vídeo 30 puede recibir los elementos de sintaxis al nivel de segmento de vídeo y/o al nivel de bloque de vídeo.
La unidad de cuantificación inversa 310 puede ser idéntica en función a la unidad de cuantificación inversa 110, la unidad de procesamiento de transformada inversa 312 puede ser idéntica en función a la unidad de procesamiento de transformada inversa 112, la unidad de reconstrucción 314 puede ser idéntica en función a la unidad de reconstrucción 114, la memoria tampón 316 puede ser idéntica en función a la memoria tampón 116, el filtro de bucle 320 puede ser idéntico en función al filtro de bucle 120, y la memoria tampón de imágenes decodificadas 330 puede ser idéntica en función a la memoria tampón de imágenes decodificadas 130.
La unidad de procesamiento de predicción 360 puede comprender una unidad de interpredicción 344 y una unidad de intrapredicción 354, en donde la unidad de interpredicción 344 puede asemejarse a la unidad de interpredicción 144 en función, y la unidad de intrapredicción 354 puede asemejarse a la unidad de intrapredicción 154 en función. La unidad de procesamiento de predicción 360 típicamente está configurada para ejecutar la predicción de bloque y/u obtener el bloque de predicción 365 de los datos codificados 21 y recibir u obtener (explícitamente o implícitamente) los parámetros relacionados con predicción y/o la información referente al modo de predicción seleccionado, por ejemplo de la unidad de decodificación por entropía 304.
Cuando el segmento de vídeo es codificado como un segmento intra codificado (I), la unidad de intrapredicción 354 de la unidad de procesamiento de predicción 360 está configurada para generar el bloque de predicción 365 para un bloque de imagen del segmento de vídeo actual con base en un modo de intrapredicción señalizado y datos de bloques previamente decodificados del cuadro o imagen actual. Cuando el cuadro de vídeo es codificado como un segmento inter codificado (es decir, B, o P), la unidad de interpredicción 344 (por ejemplo unidad de compensación de movimiento) de la unidad de procesamiento de predicción 360 está configurada para producir bloques de predicción 365 para un bloque de vídeo del segmento de vídeo actual con base en los vectores de movimiento y otros elementos de sintaxis recibidos desde la unidad de decodificación por entropía 304. Para interpredicción, los bloques de predicción pueden ser producidos desde una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador de vídeo 30 puede construir las listas de cuadros de referencia, Lista 0 y Lista 1, utilizando técnicas de construcción por omisión basadas en imágenes de referencia almacenadas en DPB 330.
La unidad de procesamiento de predicción 360 está configurada para determinar 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 utiliza la información de predicción para producir los bloques de predicción para el bloque de vídeo actual que está siendo decodificado. Por ejemplo, la unidad de procesamiento de predicción 360 utiliza algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra o interpredicción) utilizado para codificar los bloques de vídeo del segmento de vídeo, un tipo de segmento de interpredicción (por ejemplo, segmento B, segmento P, o segmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento, vectores de movimiento para cada bloque de vídeo inter codificado del segmento, estatus de interpredicción para cada bloque de vídeo inter codificado del segmento, y otra información para decodificar los bloques de vídeo en el segmento de vídeo actual.
La unidad de cuantificación inversa 310 está configurada para cuantificar a la inversa, es decir, descuantificar, los coeficientes de transformada cuantificados proporcionados en la corriente de bits y decodificados por la unidad de decodificación por entropía 304. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el codificador de vídeo 100 para cada bloque de vídeo en el segmento de vídeo para determinar un grado de cuantificación y, de igual manera, un grado de cuantificación inversa que debiera ser aplicado.
La unidad de procesamiento de transformada inversa 312 está configurado para aplicar una transformada inversa, por ejemplo, una DCT inversa, una transformada de entero inversa, o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada a fin de producir bloques residuales en el dominio de pixel.
La unidad de reconstrucción 314 (por ejemplo sumadora 314) está configurada para agregar el bloque de transformada inversa 313 (es decir, bloque residual reconstruido 313) al bloque de predicción 365 para obtener un bloque reconstruido 315 en el dominio de muestra, por ejemplo agregando los valores de muestra del bloque residual reconstruido 313 y los valores de muestra del bloque de predicción 365.
La unidad de filtro de bucle 320 (ya sea en el bucle de codificación o después del bucle de codificación) está configurada para filtrar el bloque reconstruido 315 para obtener un bloque filtrado 321, por ejemplo para suavizar transiciones de pixel, o de otra manera mejorar la calidad del vídeo. En un ejemplo, la unidad de filtro de bucle 320 puede ser configurada para ejecutar cualquier combinación de las técnicas de filtración descritas más adelante. La unidad de filtro de bucle 320 está destinada a representar uno o más filtros de bucle tal como un filtro de desbloqueo, un filtro de desfase adaptable a la muestra (SAO) u otros filtros, por ejemplo un filtro bilateral o un filtro de bucle adaptable (ALF) o un filtro de suavización o perfilado o filtros colaborativos. Aunque la unidad de filtro de bucle 320 se muestra en la figura 3 como siendo un filtro en bucle, en otras configuraciones, la unidad de filtro de bucle 320 puede ser implementada como un filtro de post-bucle.
Los bloques de vídeo decodificados 321 en un cuadro o imagen determinada son entonces almacenados en memoria tampón de imágenes decodificadas 330, la cual almacena imágenes de referencia utilizadas para compensación de movimiento subsiguiente.
El decodificador 30 está configurado para emitir la imagen decodificada 331, por ejemplo a través de la salida 332, para presentación o visualización a un usuario.
Se pueden utilizar otras variaciones del decodificador de vídeo 30 para decodificar la corriente de bits comprimida. Por ejemplo, el decodificador 30 puede producir la corriente de vídeo de salida sin la unidad de filtración de bucle 320. Por ejemplo, un decodificador basado en no-transformada 30 puede cuantificar a la inversa la señal residual directamente sin la unidad de procesamiento de transformada inversa 312 para algunos bloques o cuadros. En otra implementación, el decodificador de vídeo 30 puede tener la unidad de cuantificación inversa 310 y la unidad de procesamiento de transformada inversa 312 combinadas en una sola unidad.
De acuerdo con la norma HEVC/H.265, hay disponibles 35 modos de intrapredicción. Tal como se muestra en la figura 4, este conjunto contiene los siguientes modos: modo plano (el índice de modo de intrapredicción es 0), modo DC (el índice de modo de intrapredicción es 1), y modos direccionales (angulares) que abarcan el rango de 180° y tienen el rango de valor de índice de modo de intrapredicción de 2 a 34 mostrado por flechas negras en la figura 4. Para capturar las direcciones de borde arbitrario presentes en vídeo natural, el número de intra modos direccionales es extendido de 33, como se utiliza en HEVC, a 65. Los modos direccionales adicionales se muestran como flechas punteadas en la figura 4, y los modos plano y DC permanecen iguales. Vale la pena observar que el rango que es cubierto por los modos de intrapredicción pueden ser mayores que 180°. En particular, 62 modos direccionales con valores de índice de 3 a 64 cubren el rango de aproximadamente 230°, es decir varios pares de modos tienen direccionalidad opuesta. En el caso del Modelo de Referencia HEVC (HM) y plataformas JEM, solamente un par de modos angulares (concretamente, modos 2 y 66) tiene direccionalidad opuesta como se muestra en la figura 4. Para construir un predictor, modos angulares convencionales toman muestras de referencia y (en caso de ser necesario) las filtran para obtener un predictor de muestra. El número de muestras de referencia requeridas para construir un predictor depende de la longitud del filtro utilizado para interpolación (por ejemplo, filtros bilineales y cúbicos tienen longitudes de 2 y 4, respectivamente).
El VTM (Modelo de Prueba Versátil) utiliza 35 Intra modos mientras que el BMS (Ajuste de Referencia) utiliza 67 Intra modos. Para codificar los 67 intra modos, el esquema de codificación de intra modo actual en BMS utiliza el siguiente método:
Para acomodar el número incrementado de Intra modos direccionales en BMS, se utiliza un método de codificación de Intra modo con 6 Modos Más Probables (MPMs). Están involucrados dos aspectos técnicos principales.
1) la derivación de 6 MPMs, y
2) codificación de entropía de 6 modos MPMs y no-MPMs.
En BMS, los modos incluidos en las listas MPM son clasificados en tres grupos: intra modos vecinos, intra modos Derivados, e intra modos por omisión.
Cinco modos de intrapredicción vecinos son utilizados para formar la lista MPM. Aquellas ubicaciones de los 5 bloques vecinos son las mismas que aquellas utilizadas en el modo de fusión, es decir, izquierda (L), encima (A), debajo izquierda (BL), encima derecha (AR), y encima izquierda (AL) como se muestra en la figura 5. Una lista MPM inicial es formada mediante la inserción de 5 intra modos vecinos, modos plano, y DC en la lista MPM. Se utiliza un proceso de recorte para eliminar los modos duplicados de manera que solamente modos únicos son incluidos en la lista MPM. El orden en el cual se incluyen los modos iniciales es izquierda, encima, plano, DC, debajo izquierda, encima derecha y encima izquierda.
Si la lista MPM no está completa (es decir tiene menos de 6 MPMs candidatos en la lista), modos derivados son agregados, esos intra modos son obtenidos agregando -1 o 1 a los modos angulares los cuales ya están incluidos en la lista MPM. La derivación no se aplica a modos no-angulares, es decir DC o plano.
Finalmente, si la lista MPM sigue sin estar completa, los modos por omisión son agregados en el orden de: vertical, horizontal, intra modo 2, y modo diagonal. Como un resultado de este proceso, se genera una lista única de 6 modos MPM.
Para codificación de entropía de 6 MPMs, se utiliza una binarización unaria truncada de los MPMs. Los primeros tres depósitos son codificados con contextos que dependen del modo MPM relacionado con el depósito que actualmente es señalizado. El modo MPM es clasificado en una de las tres categorías: (a) si el modo pertenece a horizontal (modo MPM es menor que o igual a una dirección diagonal), (b) vertical (modo MPM es mayor que la dirección diagonal), o (c) clase no-angular (DC y plano). Por consiguiente, se utilizan tres contextos para señalizar el índice MPM.
La codificación de los 61 no-MPMs remanentes se realiza de la siguiente manera. Los 61 no-MPMs primero son divididos en dos conjuntos: conjunto de modos seleccionados y conjunto de modos no-seleccionados. El conjunto de modos seleccionados contiene 16 modos y el resto (45 modos) son asignados al conjunto de modos no seleccionados. El conjunto de modos al que pertenece el modo actual es indicado en la corriente de bits con un indicador. Después, el modo del conjunto seleccionado es señalizado con un código de longitud fija de 4-bits, y el modo del conjunto no seleccionado es codificado con un código binario truncado. El conjunto de modos seleccionados es generado sub-muestreando el total de 61 no-MPMs con í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 INTRA modo se muestra en la tabla 1.
TABLA 1: Señalización de Intra modo LUMA actual en BMS
En otro ejemplo, se utiliza un método de codificación de Intra modo con 3 Modos Más Probables (MPMs). En un ejemplo, elementos de sintaxis intra_luma_mpm_indicador[ x0 ][ y0 ], intra_luma_mpm_idx[ x0 ][ y0 ] e intra_luma_mpm_remanente[ x0 ][ y0 ] especifican el modo de intrapredicción para muestras de luminancia. Los índices de arreglo x0, y0 especifican la ubicación (x0 , y0 ) de la muestra de luminancia superior-izquierda del bloque de predicción considerado con relación a la muestra de luminancia superior-izquierda de la imagen. Cuando intra_luma_mpm_indicador[ x0 ][ y0 ] es igual a 1, el modo de intrapredicción es inferido de una unidad de predicción intra-predicha vecina.
La intrapredicción para el bloque actual (IntraPredModoY[ xPb ][ yPb ]) es derivada a través de los siguientes pasos ordenados:
Las ubicaciones vecinas (xNbA, yNbA ) y ( xNbB, yNbB ) se establecen igual a ( xPb - 1, yPb ) y ( xPb, yPb - 1 ), respectivamente.
Para X siendo reemplazado por cualquiera de A o B, las variables candIntraPredModoX son derivadas de la siguiente forma:
El proceso de derivación de disponibilidad para un bloque es solicitado con la ubicación ( xCurr, yCurr ) establecida igual a ( xPb, yPb ) y la ubicación vecina (xNbY, yNbY ) establecida igual a ( xNbX, yNbX ) como entradas, y la salida es asignada a disponibleX.
El modo de intrapredicción candidato candIntraPredModoX es derivado de la siguiente manera:
Si una o más de las siguientes condiciones son verdaderas, candIntraPredModoX es establecido igual a INTRA_DC. La variable disponibleX es igual a FALSO.
CuPredModo[ xNbX ][ yNbX ] no es igual a MODO_INTRA.
X es igual a B y yPb - 1 es menor que ( ( yPb >> CtbLog2TamañoY ) << CtbLog2TamañoY ).
De otra manera, candIntraPredModoX es establecido igual a IntraPredModoY[ xNbX ][ yNbX ].
El candModoLista[ x ] con x = 0..2 es derivado de la siguiente manera:
Si candIntraPredModoB es igual a candIntraPredModoA, aplica lo siguiente:
Si candIntraPredModoA es menor que 2 (es decir, igual a INTRA_PLANO o INTRA_DC), candModoLista[ x ] con x = 0..2 es derivado de la siguiente manera:
candModoLista[ 0 ] = INTRA_PLANO
candModoLista[ 1 ] = INTRA_DC
candModoLista[ 2 ] = INTRA_ANGULAR50
De otra manera, candModoLista[ x ] con x = 0..2 es derivado de la siguiente manera:
candModoLista[ 0 ] = candIntraPredModoA
candModoLista[ 1 ] = 2 ( ( candIntraPredModoA 61 ) % 64 )
candModoLista[ 2 ] = 2 ( ( candIntraPredModoA - 1 ) % 64 )
De otra manera (candIntraPredModoB no es igual a candIntraPredModoA), aplica lo siguiente: candModoLista[ 0 ] y candModoLista[ 1 ] son derivados de la siguiente manera:
candModoLista[ 0 ] = candIntraPredModoA
candModoLista[ 1 ] = candIntraPredModoB
Si ninguno de candModoLista[ 0 ] y candModoLista[ 1 ] es igual a INTRA_PLANO, candModoLista[ 2 ] es establecido igual a INTRA_PLANO,
De otra manera, si ninguno de candModoLista[ 0 ] y candModoLista[ 1 ] es igual a INTRA_DC, candModoLista[ 2 ] es establecido igual a INTRA_DC,
De otra manera, candModoLista[ 2 ] es establecido igual a INTRA_ANGULAR50.
IntraPredModoY[ xPb ][ yPb ] es derivado aplicando el siguiente procedimiento:
Si intra_luma_mpm_indicador[ xPb ][ yPb ] es igual a 1, el IntraPredModoY[ xPb ][ yPb ] es establecido igual a candModoLista[ intra_luma_mpm_idx[ xPb ][ yPb ] ].
De otra manera, IntraPredModoY[ xPb ][ yPb ] es derivado aplicando los siguientes pasos ordenados:
El arreglo candModoLista[ x ], x = 0..2 es modificado por los siguientes pasos ordenados:
Cuando candModoLista[ 0 ] es mayor que candModoLista[ 1 ], ambos valores son cambiados de la siguiente forma: (candModoLista[ 0 ], candModoLista[ 1 ]) = Cambiar( candModoLista[ 0 ], candModoLista[ 1 ] )
Cuando candModoLista[ 0 ] es mayor que candModoLista[ 2 ], ambos valores son cambiados de la siguiente manera:
(candModoLista[ 0 ], candModoLista[ 2 ]) = Cambiar( candModoLista[ 0 ], candModoLista[ 2 ] )
Cuando candModoLista[ 1 ] es mayor que candModoLista[ 2 ], ambos valores son cambiados de la siguiente manera:
(candModoLista[ 1 ], candModoLista[ 2 ]) = Cambiar( candModoLista[ 1 ], candModoLista[ 2 ] ) (8-11) IntraPredModoY[ xPb ][ yPb ] es derivado por los siguientes pasos ordenados:
IntraPredModoY[ xPb ][ yPb ] es establecido igual a intra_luma_mpm_remanente[ xPb ][ yPb ].
Para i igual a 0 a 2, inclusivo, cuando IntraPredModoY[ xPb ][ yPb ] es mayor que o igual a candModoLista[ i ], el valor de IntraPredModoY[ xPb ][ yPb ] es incrementado en uno.
En una forma de implementación de la presente solicitud, un cuadro es lo mismo que una imagen. En las formas de implementación ofrecidas a continuación, únicamente las listas MPM que incluyen los siguientes modos de intrapredicción forman parte de la invención tal como se reivindica: un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción que se corresponde con VER_IDX con un desfase 4 y un modo de intrapredicción que se corresponde con VER_IDX con un desfase -4.
En un aspecto de la presente divulgación, se divulga un método para construir una lista de Modo Más Probable, MPM, , el método comprende:
determinar si un bloque izquierdo de un bloque de codificación actual está disponible o no, si el bloque izquierdo del bloque de codificación actual está disponible, agregar un modo de intrapredicción del bloque izquierdo a una lista MPM;
determinar si un bloque de encima del bloque de codificación actual está disponible o no, si el bloque de encima del bloque de codificación actual está disponible, agregar un modo de intrapredicción del bloque de encima a la lista MPM;
si a modo plano no está comprendido en la lista MPM, agregar el modo plano a la lista MPM;
si un modo DC no está comprendido en la lista MPM, agregar el modo DC a la lista MPM.
En una forma de implementación de la presente solicitud, si el bloque de encima del bloque de codificación actual está disponible y un modo de intrapredicción del bloque de encima no está comprendido en la lista MPM, agregar el modo de intrapredicción del bloque de encima a la lista MPM.
En una forma de implementación de la presente solicitud, si el bloque de encima del bloque de codificación actual está disponible y un modo de intrapredicción del bloque de encima está comprendido en la lista MPM, la “adición” ejecutada o, se podría decir, el resultado del proceso de “adición” no cambia la lista MPM.
En una forma de implementación de la presente solicitud, cuando el modo de predicción del bloque izquierdo no es un modo de intrapredicción, el bloque izquierdo del bloque de codificación actual no está disponible.
En una forma de implementación de la presente solicitud, cuando el bloque de codificación actual es un bloque de codificación ubicado en el lado más a la izquierda de un cuadro, el bloque izquierdo del bloque de codificación actual no está disponible.
En una forma de implementación de la presente solicitud, en donde el procesamiento paralelo es soportado y el bloque de codificación actual es un bloque de codificación ubicado en el lado más a la izquierda de un Mosaico, el bloque izquierdo del bloque de codificación actual no está disponible.
En una forma de implementación de la presente solicitud, en donde el procesamiento paralelo no es soportado y el bloque de codificación actual es un bloque de codificación ubicado en el lado más a la izquierda de un Mosaico pero no en el lado más a la izquierda de un cuadro, el bloque izquierdo del bloque de codificación actual está disponible. En una forma de implementación de la presente solicitud, en donde el procesamiento paralelo es soportado y el bloque de codificación actual es un bloque de codificación ubicado en el lado más a la izquierda de un segmento, el bloque izquierdo del bloque de codificación actual no está disponible.
En una forma de implementación de la presente solicitud, en donde el procesamiento paralelo no es soportado y el bloque de codificación actual es un bloque de codificación ubicado en el lado más a la izquierda de un segmento pero no en el lado más a la izquierda de un cuadro, el bloque izquierdo del bloque de codificación actual está disponible.
En una forma de implementación de la presente solicitud, cuando el modo de predicción del bloque de encima no es un modo de intrapredicción, el bloque de encima del bloque de codificación actual no está disponible.
En una forma de implementación de la presente solicitud, cuando el bloque de codificación actual es un bloque de codificación ubicado en el lado más superior de un cuadro, el bloque de encima del bloque de codificación actual no está disponible.
En una forma de implementación de la presente solicitud, en donde el procesamiento paralelo es soportado y el bloque de codificación actual es un bloque de codificación ubicado en el lado más superior de un Mosaico, el bloque de encima del bloque de codificación actual no está disponible.
En una forma de implementación de la presente solicitud, en donde el procesamiento paralelo no es soportado y el bloque de codificación actual es un bloque de codificación ubicado en el lado más superior de un Mosaico pero no en el lado más superior de un cuadro, el bloque de encima del bloque de codificación actual está disponible.
En una forma de implementación de la presente solicitud, en donde el procesamiento paralelo es soportado y el bloque de codificación actual es un bloque de codificación ubicado en el lado más superior de un segmento, el bloque de encima del bloque de codificación actual no está disponible.
En una forma de implementación de la presente solicitud, en donde el procesamiento paralelo no es soportado y el bloque de codificación actual es un bloque de codificación ubicado en el lado más superior de un segmento pero no en el lado más superior de un cuadro, el bloque de encima del bloque de codificación actual está disponible.
En una forma de implementación de la presente solicitud, cuando el tamaño de memoria tampón de línea está restringido y el bloque de codificación actual es un bloque de codificación ubicado en el lado más superior de una CTU actual, el bloque de encima del bloque de codificación actual no está disponible.
En una forma de implementación de la presente solicitud, en donde cuando el bloque de codificación actual es un bloque de codificación no ubicado en el lado más a la izquierda de un cuadro, el bloque izquierdo del bloque de codificación actual está disponible.
En una forma de implementación de la presente solicitud, en donde cuando el bloque de codificación actual es un bloque de codificación no ubicado en el lado más encima de un cuadro, el bloque de encima del bloque de codificación actual está disponible.
En una forma de implementación de la presente solicitud, el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX). En una forma de implementación de la presente solicitud, el método además comprende: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DiA_IDX) a la lista Mp M.
En una forma de implementación de la presente solicitud, el método además comprende una lista de candidatos de modo angular comprendiendo o consistiendo de: un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) en la lista MPM; y el método además comprende: determinar iterativamente de acuerdo con su orden en la lista, si un modo angular de la lista está en la lista MPM, y si el modo angular respectivo no está en la lista MPM agregar el modo angular respectivo a la lista MPM.
En una forma de implementación de la presente solicitud, en donde la construcción de la lista MPM comienza con el paso de determinar si un bloque izquierdo de un bloque de codificación actual está disponible o no, por ejemplo con base en una lista MPM vacía.
En una forma de implementación de la presente solicitud, el método además comprende: si el bloque izquierdo del bloque de codificación actual no está disponible y otro bloque en la dirección izquierda general está disponible (por ejemplo BL o AL en la figura 5), insertar el modo de intrapredicción del otro bloque en la lista MPM, si el bloque izquierdo está disponible, no insertar el modo de intrapredicción del otro bloque en la lista MPM.
En una forma de implementación de la presente solicitud, el método además comprende: si el bloque de encima del bloque de codificación actual no está disponible y otro bloque en la dirección de encima general está disponible (por ejemplo AR o AL en la figura 5), insertar el modo de intrapredicción del otro bloque en la lista MPM, si el bloque de encima está disponible, no insertar el modo de intrapredicción del otro bloque en la lista MPM.
En una forma de implementación de la presente solicitud, el método además comprende: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) en la lista MPM en caso que no estén en la lista MPM.
En una forma de implementación de la presente solicitud, el método además comprende:
si ambos el bloque izquierdo y el bloque de encima del bloque de codificación actual no son angulares, entonces revisar adicionalmente uno más de los otros bloques vecinos (por ejemplo BL o AL o AR en la figura 5). Si cualquiera de ellos (BL, o AL, o AR) es angular, entonces utilizar este modo angular como el modo angular de inicio para el proceso de derivación -1+1, como se describió antes.
En una forma de implementación de la presente solicitud, un valor correspondiente al VER_IDX es 50; un valor correspondiente al HOR_IDX es 18; un valor correspondiente al VDIA_IDX es 66, y este valor puede ser el valor más grande en los valores correspondientes a los modos angulares; el valor 2 correspondiente al intra modo 2 puede ser el valor más pequeño en los valores correspondientes a los modos angulares; un valor correspondiente al DIA_IDX es 34.
En una forma de implementación de la presente solicitud, si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DiA_IDX).
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, el método además comprende:
si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2).
En una forma de implementación de la presente solicitud, el método además comprende:
si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase 4.
En una forma de implementación de la presente solicitud, un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 está utilizando el valor correspondiente al VER_IDX para agregar el desfase -4 y obtener el valor del modo de intrapredicción correspondido, por ejemplo, debido a que el valor de VER_IDX es 50, un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 es el modo de intrapredicción 46, un modo de intrapredicción correspondiente a VER_IDX con un desfase 4 es el modo de intrapredicción 54. Los otros ejemplos con desfase tienen un proceso similar a este ejemplo.
Observar que cuando se ejecuta -1 o 1 u otros valores de desfase, esto pudiera involucrar una operación de cierre ascendente y cierre descendente, por ejemplo, debido a que el valor de intra modo (2) es 2 (el valor más pequeño en los valores correspondientes a los modos angulares), entonces el intra modo (2)-1 sería 66 (caso de cierre ascendente), o debido a que el valor de VDIA_IDX es 66 (el valor más grande en los valores correspondientes a los modos angulares), entonces VDIA_IDX 1 sería 2 (caso de cierre descendente).
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase 4 de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase -4.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, el método además comprende:
si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende uno de los siguientes conjuntos de modos de intrapredicción:
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 4; o
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase -1; o
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase -1; o
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4; o
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4; o
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VDIA_<i>D<x>con un desfase -1; o
un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 1, y un modo de intrapredicción correspondiente a VDIA_|D<x>con un desfase -1.
En una forma de implementación de la presente solicitud, el método además comprende:
si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral;
en donde el conjunto de modos de intrapredicción comprende uno de los siguientes conjuntos de modos de intrapredicción sets:
un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 4; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase -1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase -1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo horizontal (HOR_IDX) (como primer modo de intrapredicción), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDlA_IDX).
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DiA_IDX).
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo horizontal (HOR_IDX) (como primer modo de intrapredicción), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (v DiA_IDX).
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX) (como primer modo de intrapredicción), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase 4.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase 4 de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, el método además comprende:
si el bloque de encima del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende uno de los siguientes conjuntos de modos de intrapredicción:
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -4, y HOR_IDX agregan un desfase 4; o
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1; o
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1; o
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4; o
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4; o
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1; o
un modo horizontal (HOR_IDX ) (como primer modo de intrapredicción), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1.
En una forma de implementación de la presente solicitud, el método además comprende:
si el bloque de encima del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral;
en donde el conjunto de modos de intrapredicción comprende uno de los siguientes conjuntos de modos de intrapredicción:
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -4, y HOR_IDX agregan un desfase 4; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1; o un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, el método además comprende:
si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2).
En una forma de implementación de la presente solicitud, el método además comprende: si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En una forma de implementación de la presente solicitud, se podría entender que la adición de un modo de intrapredicción a la lista MPM está agregando un valor correspondiente al modo de intrapredicción en la lista MPM. En una forma de implementación de la presente solicitud, el umbral es 6.
En una forma de implementación de la presente solicitud, el método además comprende: si el bloque izquierdo del bloque de codificación actual está disponible y el modo de intrapredicción del bloque izquierdo es un modo angular, agregar un desfase al modo de predicción del bloque izquierdo para obtener un nuevo modo de predicción, si el nuevo modo de predicción no está en la lista MPM, agregar el nuevo modo de predicción a la lista MPM.
En un ejemplo, el desfase es -1; en otro ejemplo, el desfase es 1. En algunos ejemplos, el desfase puede ser 2 o -2. En una implementación de la presente solicitud, el método además comprende: si el bloque de encima del bloque de codificación actual está disponible y el modo de intrapredicción del bloque de encima es un modo angular, agregar un desfase al modo de predicción del bloque de encima para obtener un modo de predicción por encima del desfase, si el modo de predicción por encima del desfase no está en la lista MPM, agregar el modo de predicción por encima del desfase a la lista MPM.
En un ejemplo, el desfase es -1; en otro ejemplo, el desfase es 1. En algunos ejemplos, el desfase puede ser 2 o -2.
En un aspecto de la presente solicitud, un codificador comprende circuitos de procesamiento para llevar a cabo los métodos anteriores.
En un aspecto de la presente solicitud, un decodificador comprende circuitos de procesamiento para llevar a cabo los métodos anteriores.
En un aspecto de la presente solicitud, un producto de programa de computadora comprende un código de programa para ejecutar los métodos anteriores.
En un aspecto de la presente solicitud, un decodificador para construir una lista de Modo Más Probable, MPM, comprendiendo: uno o más procesadores; y un medio de almacenamiento legible por computadora no transitorio acoplado a los procesadores y almacenando programación para ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el decodificador para llevar a cabo los métodos anteriores.
En un aspecto de la presente solicitud, un codificador para construir una lista de Modo Más Probable, MPM, comprende: uno o más procesadores; y un medio de almacenamiento legible por computadora no transitorio acoplado a los procesadores y almacenando programación para ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el codificador para llevar a cabo los métodos anteriores.
En un ejemplo,
Paso uno: determinar si un bloque izquierdo de un bloque de codificación actual está disponible o no.
Si el bloque izquierdo del bloque de codificación actual está disponible, agregar un modo de intrapredicción del bloque izquierdo a una lista MPM. La lista MPM puede ser una lista vacía, si el bloque izquierdo del bloque de codificación actual está disponible, un modo de intrapredicción del bloque izquierdo es agregado a la lista MPM, después la lista MPM incluye un modo de intrapredicción; y si el bloque izquierdo del bloque de codificación actual no está disponible, la lista MPM sigue siendo una lista vacía después del paso uno.
Paso dos: determinar si un bloque de encima del bloque de codificación actual está disponible o no.
Si el bloque de encima del bloque de codificación actual está disponible, agregar un modo de intrapredicción del bloque de encima a la lista MPM. La lista MPM puede incluir el modo de intrapredicción del bloque izquierdo o seguir siendo una lista vacía.
Si el bloque de encima del bloque de codificación actual está disponible y la lista MPM incluye el modo de intrapredicción del bloque izquierdo, entonces se determinará si el modo de intrapredicción del bloque de encima es el mismo que el modo de intrapredicción del bloque izquierdo, si son los mismos, el resultado del paso “agregar un modo de intrapredicción del bloque de encima a la lista MPM” no cambia la cantidad de modo de intrapredicción en la lista MPM, la lista MPM solamente incluye un modo de intrapredicción; si el modo de intrapredicción del bloque de encima no es el mismo que el modo de intrapredicción del bloque izquierdo, agregar el modo de intrapredicción del bloque de encima a la lista MPM y entonces la lista MPM incluye dos modos de intrapredicción.
Si el bloque de encima del bloque de codificación actual está disponible y la lista MPM sigue siendo una lista vacía, agregar el modo de intrapredicción del bloque de encima a la lista MPM, la lista MPM incluye solamente un modo de intrapredicción.
Si el bloque de encima del bloque de codificación actual no está disponible y la lista MPM incluye el modo de intrapredicción del bloque izquierdo, la lista MPM seguirá incluyendo solamente el modo de intrapredicción del bloque izquierdo.
Si el bloque de encima del bloque de codificación actual no está disponible y la lista MPM sigue siendo una lista vacía, la lista MPM seguirá siendo una lista vacía.
Paso tres: si un modo plano no está en la lista MPM, agregar el modo plano a la lista MPM.
Si después del paso dos, la lista MPM no incluye un modo plano, entonces agregar el modo plano a la lista MPM. Si el modo de intrapredicción del bloque izquierdo y el modo de intrapredicción del bloque de encima no están disponibles, o el modo de intrapredicción disponible no es el modo plano, la lista MPM no incluye un modo plano. Si un modo plano está en la lista MPM, ir al paso cuatro.
Paso cuatro: si un modo DC no está en la lista MPM, agregar el modo DC a la lista MPM.
Si después del paso dos o el paso tres, la lista MPM no incluye un modo DC, entonces agregar el modo DC a la lista MPM.
Si ambos el modo de intrapredicción del bloque izquierdo y el modo de intrapredicción del bloque de encima no están disponibles, o el modo de intrapredicción disponible no es el modo DC, la lista MPM no incluye un modo DC. Si un modo DC está en la lista MPM, ir a los siguientes pasos o terminar la construcción de la lista MPM.
En una forma de implementación de la presente solicitud, en cada paso, el proceso para agregar un modo de predicción a la lista MPM necesita garantizar que no haya modos de predicción duplicados en la lista MPM. Por lo tanto, si un modo de intrapredicción que necesita ser agregado a la lista MPM es el mismo que un modo de intrapredicción en la lista MPM, el proceso de “adición” no cambia la lista MPM o el proceso de “adición” no es ejecutado.
En una forma de implementación de la presente solicitud, después del paso 4, solamente si existe el modo angular, entonces lo hace angular-1, angular+1.
En un ejemplo, si una cantidad de modos de intrapredicción en la lista MPM es seis. Después del paso cuatro, hay tres casos referentes a la longitud de MPM:
Caso 1: la longitud MPM es 2: ^ ambos L y A no angulares(>DC) o no disponibles, solamente plano y DC en ^ utilizar todos los cuatro modos por omisión.
Caso 2: la longitud MPM es 3: ^ uno de L y A es angular, o son angulares. ^ utilizar un modo por omisión.
Case 3: la longitud MPM es 4: ^ ambos L y A son angulares y son diferentes ^ no se utiliza un modo por omisión, debido a que se agregará al menos uno de L-1, L+1. Si uno de ellos es un duplicado de lo anterior (diff(L-A)=1), entonces al menos uno de A-1 y A+1 será insertado adicionalmente.
En una forma de implementación de la presente solicitud, el método además comprende: si el bloque izquierdo del bloque de codificación actual está disponible y el modo de intrapredicción del bloque izquierdo es un modo angular, agregar un desfase al modo de predicción del bloque izquierdo para obtener un nuevo modo de predicción, si el nuevo modo de predicción no está en la lista MPM, agregar el nuevo modo de predicción a la lista MPM.
En otro ejemplo, la lista MPM incluye seis modos de intrapredicción, debido a que los cuatro pasos anteriores solamente podrían obtener cuatro modos de intrapredicción en el caso más grande. El método además comprende: Paso cinco: si el bloque izquierdo del bloque de codificación actual está disponible y el modo de intrapredicción del bloque izquierdo es un modo angular, agregar un desfase al modo de predicción del bloque izquierdo para obtener un nuevo modo de predicción, y si el nuevo modo de predicción no está en la lista MPM, agregar el nuevo modo de predicción a la lista MPM.
Por ejemplo, si el bloque izquierdo del bloque de codificación actual es el modo angular 27 (un valor correspondiente a este modo angular de intrapredicción es 27), y la lista MPM después de los cuatro pasos anteriores es (27, 15, 0, 1). Agregar un desfase al modo de predicción del bloque izquierdo para obtener un nuevo modo de predicción, si el nuevo modo de predicción no está en la lista MPM, agregar el nuevo modo de predicción a la lista MPM. En un ejemplo, el desfase es -1, de manera que el nuevo modo de predicción es 26 y una lista MPM actualizada es (27, 15, 0, 1, 26). En otro ejemplo, el desfase es 1, de manera que el nuevo modo de predicción es 28 y una lista MPM actualizada es (27, 15, 0, 1, 28). En otro ejemplo, el paso cinco podría agregar dos desfases al modo de intrapredicción del bloque izquierdo, primero agregar -1 y después agregar 1 o primero agregar 1 y después agregar -1, de manera que la lista MPM actualizada puede ser (27, 15, 0, 1,26, 28) o (27, 15, 0, 1, 28, 26).
Después del paso cinco, verificar si la lista MPM está llena (si una cantidad de modos de intrapredicción en la lista MPM es igual a un umbral, por ejemplo, el umbral es 6, entonces la lista MPM está llena. Si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, entonces la lista MPM no está llena). Si la lista MPM está llena, terminar de construir la lista MPM; si la lista MPM no está llena, ir a los siguientes pasos.
Y si el bloque izquierdo del bloque de codificación actual no está disponible, el paso cinco no es ejecutado y entonces avanzar a los siguientes pasos.
Observar que cuando se agrega un desfase (por ejemplo, -1 o 1) a un modo de predicción angular, esto pudiera involucrar una operación de cierre ascendente y cierre descendente, por ejemplo, si un modo de predicción angular angularIzquierdo es 2, entonces angularIzquierdo-1 sería 66 (caso de cierre ascendente), o si angularIzquierdo es 66, entonces angularIzquierdo+1 sería 2 (caso de cierre descendente).
En una forma de implementación de la presente solicitud, el método además comprende: si el bloque de encima del bloque de codificación actual está disponible y el modo de intrapredicción del bloque de encima es un modo angular, agregar un desfase al modo de predicción del bloque de encima para obtener un modo de predicción por encima del desfase, si el modo de predicción por encima del desfase no está en la lista MPM, agregar el modo de predicción por encima del desfase a la lista MPM.
En un ejemplo, el método además comprende:
Paso seis: si el bloque de encima del bloque de codificación actual está disponible y el modo de intrapredicción del bloque de encima es un modo angular, agregar un desfase al modo de predicción del bloque de encima para obtener un modo de predicción por encima del desfase, y si el modo de predicción por encima del desfase no está en la lista MPM, agregar el nuevo modo de predicción a la lista MPM.
Por ejemplo, si el bloque de encima del bloque de codificación actual es modo angular 26 (un valor correspondiente a este modo de intrapredicción angular es 26), y la lista MPM después de los cinco pasos anteriores es (27, 26, 0, 1, 28). Agregar un desfase al modo de predicción del bloque izquierdo para obtener un modo de predicción por encima del desfase, si el modo de predicción por encima del desfase no está en la lista MPM, agregar el modo de predicción por encima del desfase a la lista MPM. En un ejemplo, el desfase es -1, de manera que el modo de predicción por encima del desfase es 25 y una lista MPM actualizada es (27, 26, 0, 1, 28, 25). En otro ejemplo, el desfase es 1, de manera que el modo de predicción por encima del desfase es 27 y la inserción del modo de desfase de encima 27 es bloqueado, debido a que el modo 27 ha sido insertado. En otro ejemplo, el paso seis podría agregar dos desfases al modo de intrapredicción del bloque anterior, primero agregar -1 y después agregar 1 o primero agregar 1 y después agregar -1, si la lista MPM sigue sin estar llena después de agregado un desfase.
Y si el bloque de encima del bloque de codificación actual no está disponible, el paso seis no es ejecutado y se avanza a los siguientes pasos. Después del paso seis, verificar si la lista MPM está llena (una cantidad de modos de intrapredicción en la lista MPM es igual a 6). Si la lista MPM está llena, terminar de construir la lista MPM; si la lista MPM no está llena (una cantidad de modos de intrapredicción en la lista MPM es menor que 6), avanzar a los siguientes pasos.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral (por ejemplo, el umbral es 6), utilizar una lista por omisión para construir la lista MPM.
En un ejemplo, si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, una lista por omisión comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX).
En un ejemplo, si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, una lista por omisión comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un VER_IDX agregar un desfase -4 o un VER_IDX agregar un desfase 4.
En un ejemplo, si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, una lista por omisión comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un VER_IDX agregar un desfase 4 o un VER_IDX agregar un desfase -4.
En un ejemplo, si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, una lista por omisión comprende:
modo vertical (VER_IDX), modo vertical diagonal (VDIA_IDX), modo diagonal (DIA_IDX) o intra modo 2 (2); o modo vertical (VER_IDX), modo vertical diagonal (VDIA_IDX), VER_IDX agregar un desfase -1, y VER_IDX agregar un desfase 1; o
modos verticales (VER_IDX), modo vertical diagonal (VDIA_IDX), VER_IDX agregar un desfase -4, y VER_IDX agregar un desfase 4; o
modos verticales (VER_IDX), modo vertical diagonal (VDIA_IDX), VDIA_IDX agregar un desfase -4, y VER_IDX agregar un desfase -1; o
modos verticales (VER_IDX), modo vertical diagonal (VDIA_IDX), VDIA_IDX agregar un desfase -4, y VER_IDX agregar un desfase 1; o
modos verticales (VER_IDX), modo vertical diagonal (VDIA_IDX), VDIA_IDX agregar un desfase -1, y VER_IDX agregar un desfase -1; o
modos verticales (VER_IDX), modo vertical diagonal (VDIA_IDX), VDIA_IDX agregar un desfase -1, y VER_IDX agregar un desfase 1; o
modos verticales (VER_IDX), modo vertical diagonal (VDIA_IDX), VER_IDX agregar un desfase -1, y VDIA_IDX agregar un desfase -4; o
modos verticales (VER_IDX), modo vertical diagonal (VDIA_IDX), VER_IDX agregar un desfase 1, y VDIA_IDX agregar un desfase -4; o
modos verticales (VER_IDX), modo vertical diagonal (VDIA_IDX), VER_IDX agregar un desfase -1, y VDIA_IDX agregar un desfase -1; o
modos verticales (VER_IDX), modo vertical diagonal (VDIA_IDX), VER_IDX agregar un desfase 1, y VDIA_IDX agregar un desfase -1.
En un ejemplo, si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible, una lista por omisión comprende:
un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX).
En un ejemplo, si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, una lista por omisión comprende:
un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX); o
un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un VER_IDX agregar un desfase -4 o un VER_IDX agregar un desfase 4; o
un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un VER_IDX agregar un desfase 4 o un VER_IDX agregar un desfase -4.
En un ejemplo, si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral y el bloque de encima del bloque de codificación actual no está disponible, una lista por omisión comprende:
modo horizontal (HOR_IDX ), un intra modo 2 (2), HOR_IDX agregar un desfase -1, y HOR_IDX agregar un desfase 1; o
modos horizontales (HOR_IDX ), un intra modo 2 (2), HOR_IDX agregar un desfase -4, y HOR_IDX agregar un desfase 4; o
modos horizontales (HOR_IDX ), un intra modo 2 (2), un intra modo 2 (2) agregar un desfase 4, y HOR_IDX agregar un desfase -1; o
modos horizontales (HOR_IDX ), un intra modo 2 (2), un intra modo 2 (2) agregar un desfase 4, y HOR_IDX agregar un desfase 1; o
modos horizontales (HOR_IDX ), un intra modo 2 (2), un intra modo 2 (2) agregar un desfase 1, y HOR_IDX agregar un desfase -1; o
modos horizontales (HOR_IDX ), un intra modo 2 (2), un intra modo 2 (2) agregar un desfase 1, y HOR_IDX agregar un desfase 1; o
modos horizontales (HOR_IDX ), un intra modo 2 (2), HOR_IDX agregar un desfase -1, y un intra modo 2 (2) agregar un desfase 4; o
modos horizontales (HOR_IDX ), un intra modo 2 (2), HOR_IDX agregar un desfase 1, y un intra modo 2 (2) agregar un desfase 4; o
modos horizontales (HOR_IDX ), un intra modo 2 (2), HOR_IDX agregar un desfase -1, y un intra modo 2 (2) agregar un desfase 1; o
modos horizontales (HOR_IDX ), un intra modo 2 (2), HOR_IDX agregar un desfase 1, y un intra modo 2 (2) agregar un desfase 1.
En una forma de implementación de la presente solicitud, cuando un bloque izquierdo del bloque de codificación actual no está disponible, un bloque de encima del bloque de codificación actual puede estar disponible o puede no estar disponible.
En una forma de implementación de la presente solicitud, cuando un bloque de encima del bloque de codificación actual no está disponible, un bloque izquierdo del bloque de codificación actual puede estar disponible o puede no estar disponible.
En una forma de implementación de la presente solicitud, el método además comprende: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (D<i>A_IDX) a la lista M<p>M.
En una forma de implementación de la presente solicitud, el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX).
En una forma de implementación de la presente solicitud, el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En un ejemplo, después del paso seis, si la lista MPM sigue sin estar llena (una cantidad de modos de intrapredicción en la lista MPM menor que un umbral), agregar un modo de intrapredicción en una lista de modos por omisión ordenadamente en la lista MPM si este modo o estos modos no están en la lista MPM, repetir este paso hasta que la lista MPM está llena.
Paso siete: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) a la lista MPM.
Por ejemplo, si un modo vertical no está en la lista MPM y la lista MPM no está llena, agregar el modo vertical a la lista MPM, si la lista MPM está llena después de agregar el modo vertical, terminar de construir la lista MPM.
Y si la lista MPM sigue sin estar llena después de agregar el modo vertical, verificar si un modo horizontal está en la lista MPM. Si el modo horizontal está en la lista MPM, verificar adicionalmente si un intra modo 2 está en la lista MPM; si el modo horizontal no está en la lista MPM, agregar el modo horizontal a la lista MPM. Repetir este paso hasta que la lista MPM está llena.
En una forma de implementación de la presente solicitud, en el paso siete, con las listas de modos por omisión, cada inserción del modo por omisión a la lista MPM deberá asegurarse que no se inserte un modo duplicado. Si la inserción es exitosa, se realiza otra verificación para detectar si la MPM está llena. En caso de ser así, entonces termina el proceso de construcción MPM; de otra manera, continuar con la inserción con otro modo por omisión en el orden especificado.
En una forma de implementación de la presente solicitud, el método además comprende: si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2).
En una forma de implementación de la presente solicitud, el método además comprende:
si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En un ejemplo, después del paso seis, si la lista MPM sigue sin estar completa y el bloque izquierdo del bloque de codificación actual no está disponible, agregar el modo de intrapredicción en una lista de modos por omisión ordenada a la lista MPM si este modo o estos modos no están en la lista MPM, repetir este paso hasta que la lista MPM está completa.
Paso siete: agregar un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2) a la lista M<p>M.
Por ejemplo, si un modo vertical no está en la lista MPM y la lista MPM no está completa, agregar el modo vertical a la lista MPM, si la lista MPM está completa después de agregar el modo vertical, terminar de construir la lista MPM. Y si la lista MPM sigue sin estar completa después de agregar el modo vertical, verificar si un modo diagonal vertical está en la lista MPM. Si el modo diagonal vertical está en la lista MPM, verificar adicionalmente si un modo diagonal está en la lista MPM; si el modo diagonal no está en la lista MPM, agregar el modo diagonal a la lista MPM. Repetir iterativamente este paso hasta que la lista MPM está completa.
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX).
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En un ejemplo, después del paso, si la lista MPM sigue sin estar completa, el bloque de encima del bloque de codificación actual no está disponible, agregar el modo de intrapredicción en una lista de modos por omisión ordenada a la lista MPM si este modo o estos modos no están en la lista MPM, repetir iterativamente este paso hasta que la lista MPM está llena.
Paso siete: agregar un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX) a la lista MPM.
Por ejemplo, si un modo horizontal no está en la lista MPM y la lista MPM no está llena, agregar el modo horizontal a la lista MPM, si la lista MPM está llena después de agregar el modo horizontal, terminar de construir la lista MPM. Y si la lista MPM sigue sin estar llena después de agregar el modo horizontal, verificar si un intra modo 2 está en la lista MPM. Si el intra modo 2 está en la lista MPM, verificar adicionalmente si un modo diagonal está en la lista MPM; si el modo diagonal no está en la lista MPM, agregar el modo diagonal a la lista MPM. Repetir iterativamente este paso hasta que la lista MPM está llena.
En una forma de implementación de la presente solicitud, el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX).
En una forma de implementación de la presente solicitud, el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
En un ejemplo, después del paso seis, si la lista MPM sigue sin estar completa, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual también está disponible, agregar el modo de intrapredicción en una lista de modos por omisión a la lista MPM si este modo o estos modos no están en la lista MPM, repetir iterativamente este paso hasta que la lista MPM está llena.
Paso siete: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) a la lista MPM.
Por ejemplo, si un modo vertical no está en la lista MPM y la lista MPM no está llena, agregar el modo vertical a la lista MPM, si la lista MPM está llena después de agregar el modo vertical, terminar de construir la lista MPM.
Y si la lista MPM sigue sin estar llena después de agregar el modo vertical, verificar si un modo horizontal está en la lista MPM. Si el modo horizontal está en la lista MPM, verificar adicionalmente si un intra modo 2 está en la lista MPM; si el intra modo 2 no está en la lista MPM, agregar el intra modo 2 a la lista MPM. Repetir iterativamente este paso hasta que la lista MPM está llena.
En una forma de implementación de la presente solicitud, el método además comprende: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un VER_IDX agregar un desfase -4 o un VER_IDX agregar un desfase 4 a la lista MPM.
En una forma de implementación de la presente solicitud, el método además comprende: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un VER_IDX agregar un desfase 4 o un VER_IDX agregar un desfase -4 a la lista Mp M.
En un ejemplo, después del paso seis, si la lista MPM sigue sin estar completa, agregar el modo de intrapredicción en una lista de modos por omisión a la lista MPM si este modo o estos modos no están en la lista MPM, repetir iterativamente este paso hasta que la lista MPM esté completa.
Paso siete: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un VER_IDX agregar un desfase -4 o un VER_IDX agregar un desfase 4 a la lista MPM; o agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), a VER_IDX agregar un desfase 4 o un VER_IDX agregar un desfase -4 a la lista MpM.
Por ejemplo, si un modo vertical no está en la lista MPM y la lista MPM no está completa, agregar el modo vertical a la lista MPM, si la lista MPM está completa después de agregar el modo vertical, terminar de construir la lista MPM. Y si la lista MPM sigue sin estar completa después de agregar el modo vertical, verificar si un modo horizontal está en la lista MPM. Si el modo horizontal está en la lista MPM, verificar adicionalmente si un modo de predicción cuyo valor es igual al valor de VER_IDX agregar un desfase -4 está en la lista MPM; si el modo de predicción cuyo valor es igual al valor de VER_IDX agregar un desfase -4 no está en la lista MPM, agregar el modo de predicción cuyo valor es igual al valor de VER_IDX agregar un desfase -4 a la lista MPM. Repetir iterativamente este paso hasta que la lista MPM esté llena.
En un ejemplo, después del paso seis, si la lista MPM sigue sin estar llena y el bloque izquierdo del bloque de codificación actual no está disponible, agregar el modo de intrapredicción en una lista de modos por omisión a la lista MPM si este modo o estos modos no están en la lista MPM, repetir iterativamente este paso hasta que la lista MPM esté llena.
Paso siete: agregar un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2) a la lista MpM.
Por ejemplo, si un modo vertical no está en la lista MPM y la lista MPM no está llena, agregar el modo vertical a la lista MPM, si la lista MPM está llena después de agregar el modo vertical, terminar de construir la lista MPM.
Y si la lista MPM sigue sin estar llena después de agregar el modo vertical, verifica s un modo diagonal vertical está en la lista MPM. Si el modo diagonal vertical está en la lista MPM, verificar adicionalmente si un modo diagonal está en la lista MPM; si el modo diagonal no está en la lista MPM, agregar el modo diagonal a la lista MPM. Repetir iterativamente este paso hasta que la lista MPM esté llena.
En un ejemplo, después del paso seis, si la lista MPM sigue sin estar completa, el bloque de encima del bloque de codificación actual no está disponible, agregar el modo de intrapredicción en una lista de modos por omisión a la lista MPM si este modo o estos modos no están en la lista MPM, repetir iterativamente este paso hasta que la lista MPM esté llena.
Paso siete: agregar un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX) a la lista MPM.
Por ejemplo, si un modo horizontal no está en la lista MPM y la lista MPM no está llena, agregar el modo horizontal a la lista MPM, si la lista MPM está llena después de agregar el modo horizontal, terminar de construir la lista MPM. Y si la lista MPM sigue sin estar llena después de agregar el modo horizontal, verificar si un intra modo 2 está en la lista MPM. Si el intra modo 2 está en la lista MPM, verificar adicionalmente si un modo diagonal está en la lista MPM; si el modo diagonal no está en la lista MPM, agregar el modo diagonal a la lista MPM. Repetir iterativamente este paso hasta que la lista MPM esté llena.
En un ejemplo, después del paso seis, si la lista MPM sigue sin estar completa, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, agregar el modo de intrapredicción en una lista de modos por omisión a la lista MPM si este modo o estos modos no están en la lista MPM, repetir iterativamente este paso hasta que la lista MPM esté llena.
Paso siete: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un VER_IDX agregar un desfase -4 o un VER_IDX agregar un desfase 4 a la lista MPM.
En un ejemplo, se proporcionan modos por omisión predefinidos: concretamente, un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX), para construir la lista MPM si no está llena. Se procesan dos enfoques adicionales referentes a estos modos por omisión. Estos son el enfoque por omisión adaptable y el enfoque por omisión cambiado.
El enfoque que utiliza modos adaptables considera bloques que se localizan más-a-la-izquierda y más-superior de un cuadro.
Para bloques ubicados en el límite izquierdo de un cuadro, el modo horizontal tiene pocas probabilidades de ser utilizado debido a que no existen muestras de predicción fuente que se localicen en el bloque izquierdo del bloque actual. También, los modos que en general utilizan modos horizontales (es decir DIA_IDX, modo 2) tienen una menor oportunidad.
Para bloques utilizados en el límite superior de un cuadro, el modo vertical tiene pocas probabilidades de ser utilizado debido a que no existen muestras de predicción fuente que se localicen en el bloque de encima del bloque actual. También, los modos que en general utilizan modos verticales (es decir, VDIA_iDX, DIA_IDX) tienen una menor oportunidad.
Por lo tanto, se utiliza el siguiente enfoque de conocimiento de límite:
Si el bloque izquierdo del bloque de codificación actual no existe, entonces utilizar los siguientes modos en orden como los modos candidatos por omisión: VER_IDX, VDIA_IDX, DIA_IDX, modo 2.
De otra manera (existe el bloque izquierdo):
Si el bloque de encima del bloque de codificación actual no existe, entonces utilizar los siguientes modos en orden como los modos candidatos por omisión: HOR_IDX, modo 2, DIA_IDX, VDIA_IDX.
De otra manera (existe el bloque de encima), utilizar los modos por omisión normales: VER_IDX, HOR_IDX, un intra modo 2 (2), VDIA_IDX o DIA_IDX
El enfoque por omisión cambiado agrega los siguientes modos candidatos a la lista MPM: VER, HOR, VER-4, VER+4. El orden de VER-4 y VER+4 se puede cambiar.
Una combinación de estos dos métodos puede ser:
Si el bloque izquierdo del bloque de codificación actual no existe, entonces utilizar los siguientes modos en orden como los modos candidatos por omisión: VER_IDX, VDIA_IDX, DIA_IDX, modo 2.
De otra manera (existe el bloque izquierdo):
Si el bloque de encima del bloque de codificación actual no existe, entonces utilizar los siguientes modos en orden como los modos candidatos por omisión: HOR_IDX, modo 2, DIA_IDX, VDIA_IDX.
De otra manera (existe el modo de encima), utilizar los modos por omisión cambiados: VER_IDX, HOR_IDX, VER, HOR, VER-4, VER+4.
En un aspecto de la presente divulgación, se propone un método simplificado para construir la lista MPM de 6 entradas, comprendiendo: verificar la disponibilidad del bloque izquierdo de las unidades de codificación actuales. La posición del bloque izquierdo se ilustra en la figura 5, en donde el bloque izquierdo es etiquetado por “L”.
El bloque izquierdo no está disponible si no se puede derivar información de intrapredicción (es decir modo de intrapredicción) del bloque izquierdo. Este incluye los siguientes caso:
El bloque izquierdo no es un bloque intra-predicho; el bloque izquierdo no existe, por ejemplo, el bloque actual es un bloque de codificación ubicado en el lado más a la izquierda de un cuadro; Si el codificador o decodificador soportan procesamiento paralelo, el bloque izquierdo pudiera ser considerado como no existente (o no disponible) cuando está ubicado en diferentes Mosaicos de o con el bloque actual, es decir el bloque de codificación actual se localiza o está ubicado en el lado más a la izquierda de un Mosaico.
En otro ejemplo, si el procesamiento paralelo no es soportado en un codificador o decodificador, el bloque izquierdo pudiera ser considerado como disponible cuando está ubicado en diferentes Mosaicos del bloque actual, es decir el bloque de codificación actual se localiza en el lado más a la izquierda de un Mosaico.
Si el procesamiento paralelo es soportado en el codificador o decodificador, el bloque izquierdo pudiera ser considerado como no existente cuando está ubicado en los diferentes Segmentos con el bloque actual, es decir el bloque de codificación actual se localiza en el lado más a la izquierda de un segmento.
En otro ejemplo, si el procesamiento paralelo no es soportado en el codificador o decodificador, el bloque izquierdo pudiera ser considerado como disponible cuando está ubicado en los diferentes Segmentos con el bloque actual, es decir el bloque de codificación actual se localiza en el lado más a la izquierda de un segmento.
De otra manera (es decir, el bloque izquierdo está disponible), incluye el modo de intrapredicción del bloque izquierdo en la lista MPM de 6 entradas.
Verificar la disponibilidad del bloque de encima de las unidades de codificación actuales. La posición del bloque de encima se ilustra en la figura 5, en donde el bloque de encima es etiquetado por “A”.
El bloque de encima no está disponible si ninguna información de intrapredicción (es decir modo de intrapredicción) puede ser derivada del bloque de encima. Este incluye los siguientes casos:
El bloque de encima no es un bloque intra-predicho.
El bloque de encima no existe. Por ejemplo, el bloque actual es un bloque de codificación ubicado en el lado más superior de un cuadro.
Si el procesamiento paralelo es soportado en el codificador o decodificador, el bloque superior pudiera ser considerado como no existente si está ubicado en los diferentes Mosaicos con el bloque actual, es decir el bloque de codificación actual se localiza en el lado más superior de un Mosaico.
En otro ejemplo, si el procesamiento paralelo no es soportado en el codificador o decodificador, el bloque superior pudiera ser considerado como disponible si está ubicado en los diferentes Mosaicos con el bloque actual, es decir el bloque de codificación actual se localiza en el lado más superior de un Mosaico.
Si el procesamiento paralelo es soportado en el codificador o decodificador, el bloque superior pudiera ser considerado como no existente si está ubicado en los diferentes Segmentos con el bloque actual, es decir el bloque de codificación actual se localiza en el lado más superior de un segmento.
En otro ejemplo, si el procesamiento paralelo no es soportado en el codificador o decodificador, el bloque superior pudiera ser considerado como disponible si está ubicado en los diferentes Segmentos con el bloque actual, es decir el bloque de codificación actual se localiza en el lado más superior de un segmento.
Si se necesita restringir el tamaño de memoria tampón de línea en el codificador o decodificador, el bloque superior pudiera ser considerado como no existente si está ubicado en la CTU diferente con el bloque actual, es decir el bloque de codificación actual se localiza en el lado más superior de la CTU actual.
En un ejemplo, si el lado del decodificador o el lado del codificador soportan la restricción de memoria tampón de línea, entonces un bloque de encima ubicado en una CTU diferente con el bloque actual CTU es considerado como no existente. Si no se soporta la restricción de memoria tampón de línea, entonces considerar que sí existe.
De otra manera (es decir, el bloque izquierdo está disponible), incluir el modo de intrapredicción del bloque superior en la lista MPM de 6 entradas.
Verificar si el modo plano (PLANO_IDX=0) ha sido insertado en la lista MPM, (es decir verificar si el intra modo de la izquierda y el bloque superior son modo plano), solamente si el modo plano no ha sido insertado en la lista MPM, entonces insertar el modo plano en la lista MPM. Verificar si el modo DC (DC_IDX=1) ha sido insertado en la lista MPM, (es decir verificar si cualquiera de los intra modos de la izquierda y el bloque superior son modo DC), solamente si el modo DC no ha sido insertado en la lista MPM, entonces insertar el modo DC en la lista MPM.
Si el bloque izquierdo está disponible y si su modo de intrapredicción es un modo angular, es decir (modo > DC_IDX, y por decir el modo es angularIzquierdo), obtener sus dos modos angulares más cercanos ejecutando angularIzquierdo-1, angularIzquierdo+1. Observar que cuando se ejecuta -1 o 1 esto puede involucrar una operación de cierre ascendente y un cierre descendente, por ejemplo,
Si angularIzquierdo es 2, entonces angularIzquierdo-1 sería 66 (caso de cierre ascendente), o si angularIzquierdo es 66, entonces angularIzquierdo+1 sería 2 (caso de cierre descendente).
Si el modo de predicción de angularIzquierdo-1 no ha sido insertado en la lista MPM, insertarlo en la lista MPM. Si el modo de predicción de angularIzquierdo+1 no ha sido insertado en la lista MPM, insertarlo en la lista MPM. Si la lista MPM no está llena y si el bloque de encima está disponible y si su modo de intrapredicción es un modo angular, es decir (modo > DC_IDX, y, por mencionarlo, el modo es angularEncima), obtener sus dos modos angulares más cercanos ejecutando angularEncima-1, angularEncima+1. Observar que cuando se ejecuta -1 o 1 esto pudiera involucrar una operación de cierre ascendente y cierre descendente, en un ejemplo, si angularIzquierdo es 2, entonces angularIzquierdo-1 sería 66 (caso de cierre ascendente), o si angularIzquierdo es 66, entonces angularIzquierdo+1 sería 2 (caso de cierre descendente).
Si el modo de predicción de angularEncima-1 no ha sido insertado en la lista MPM, insertarlo en la lista MPM.
Si la lista MPM no está llena (por ejemplo, una cantidad de modos de predicción en la lista MPM es menor que 6) y si el modo de predicción de angularEncima+1 no ha sido insertado en la lista MPM, insertarlo en la lista MPM.
Si la lista MPM no está llena, insertar los siguientes modos en la lista MPM hasta que está llena (por ejemplo, una cantidad de modos de predicción en la lista MPM es igual a 6):
un modo vertical (VER_IDX),
un modo horizontal (HOR_IDX),
un intra modo 2 (2),
un modo vertical diagonal (VDIA_IDX) o un modo diagonal (DIA_IDX).
Recapitulación de variaciones del método propuesto:
La disponibilidad del bloque izquierdo debiera considerar ambos, soportar o no soportar procesamiento paralelo. La disponibilidad del bloque de encima debiera considerar ambos, soportar o no soportar procesamiento paralelo. El orden para derivar los dos modos más cercanos del bloque izquierdo y de encima también puede ser 1 primero y después -1.
El último candidato de la lista MPM puede ser VIDA_IDX o DIA_IDX.
El orden de inserción también puede ser modos Izquierdo, encima, Plano, DC, y por omisión (VER_IDX, HOR_IDX, 2, VDIA_IDX o DIA_IDX).
Para la señalización de mpm_idx, se utiliza la binarización unaria truncada. Los primeros tres depósitos del mpm_idx tienen permitido utilizar tres contextos independientes diferentes o todos los depósitos del mpm_idx son CABAC por paso codificado.
La presente divulgación tiene por objetivo la mejora en el esquema de señalización de intra modo. En la presente divulgación, se procesa un método de decodificación de vídeo y un decodificador de vídeo.
La figura 7 muestra un ejemplo de 67 modos de intrapredicción, por ejemplo, como se propone para VVC, la pluralidad de modos de intrapredicción de 67 modos de intrapredicción comprendiendo: modo plano (índice 0), modo dc (índice 1), y modos angulares con los índices 2 a 66, en donde el modo angular inferior izquierdo en la figura 7 se refiere al índice 2 y la numeración de los índices siendo incrementada hasta que el índice 66 es el modo más angular superior derecho de la figura 7.
En otro aspecto de la presente solicitud, se divulga un decodificador que comprende circuitos de procesamiento el cual está configurado para llevar a cabo los métodos de decodificación anteriores.
En otro aspecto de la presente solicitud, se divulga un producto de programa de computadora que comprende un código de programa para ejecutar los métodos de decodificación anteriores.
En otro aspecto de la presente solicitud, se divulga un decodificador para decodificar datos de vídeo, el decodificador comprendiendo: uno o más procesadores; y un medio de almacenamiento legible por computadora no transitorio acoplado a los procesadores y almacenando programación para ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el decodificador para llevar a cabo los métodos de decodificación anteriores.
Los circuitos de procesamiento pueden ser implementados en hardware, o en una combinación de hardware y software, por ejemplo por un procesador programable de software o similar.
En otro aspecto de la presente solicitud, se divulga un método de codificación, el cual comprende:
obtener un modo de intrapredicción de un bloque de imagen de entre una pluralidad de modos de intrapredicción, la pluralidad de modos de intrapredicción para el bloque de imagen comprende un conjunto de Modos Más Probables, MPMs, y un conjunto de no-MPMs, en donde el conjunto de no-MPMs comprende un primer conjunto de modos de intrapredicción y un segundo conjunto de modos de intrapredicción;
si el modo de intrapredicción del bloque de imagen está en el conjunto de no-MPMs, generar una relación de mapeo entre al menos un modo de intrapredicción en el primer conjunto de modos de intrapredicción y al menos un modo de intrapredicción en el conjunto de no-MPMs;
codificar el modo de intrapredicción del bloque de imagen para obtener un palabra código de modo de intrapredicción de acuerdo con la relación de mapeo.
En una forma de implementación de la presente solicitud, el proceso de obtener un modo de intrapredicción de un bloque de imagen se puede referir a la divulgación relativa en la siguiente descripción detallada de parte de las realizaciones, o la divulgación relativa en el campo de la tecnología de codificación de vídeo, tal como en la ITU-T H.264, ITU-T H.265.
En una forma de implementación de la presente solicitud, el método de codificación además comprende: generar un conjunto de MPMs, determinar si el modo de intrapredicción del bloque de imagen está en el conjunto de MPMs. Por lo tanto, si el modo de intrapredicción del bloque de imagen no está en el conjunto de MPMs, entonces el modo de intrapredicción del bloque de imagen está en el conjunto de no-MPMs.
El proceso de generar un conjunto de MPMs se puede referir a la divulgación relativa en la parte de descripción, o la divulgación relativa en el campo de la tecnología de codificación de vídeo, tal como en la ITU-T H.264, ITU-T H.265. En una forma de implementación de la presente solicitud, el proceso de generar una relación de mapeo entre al menos un modo de intrapredicción en el primer conjunto de modos de intrapredicción y al menos un modo de intrapredicción en el conjunto de no-MPMs se puede referir a la divulgación relativa en el lado de decodificación. En una forma de implementación de la presente solicitud, un primer conjunto de modos de intrapredicción es codificado utilizando 5 bits y un segundo conjunto de modos de intrapredicción es codificado utilizando 6 bits.
En otro aspecto de la presente solicitud, se divulga un codificador que comprende circuitos de procesamiento el cual está configurado para llevar a cabo los métodos de codificación anteriores.
En otro aspecto de la presente solicitud, se divulga un producto de programa de computadora el cual comprende un código de programa para ejecutar los métodos de codificación anteriores.
En otro aspecto de la presente solicitud, se divulga un codificador para codificar datos de vídeo, el codificador comprendiendo: uno o más procesadores; y un medio de almacenamiento legible por computadora no transitorio acoplado a los procesadores y almacenando programación para ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el codificador para llevar a cabo los métodos de codificación anteriores.
Los circuitos de procesamiento pueden ser implementados en hardware, o en una combinación de hardware y software, por ejemplo por un procesador programable de software o similar.
En una forma de implementación de la presente solicitud, de acuerdo con la figura 8, la presente solicitud divulga un método de decodificación de vídeo, el cual comprende:
S801: decodificar datos codificados de un bloque de imagen para obtener un modo de intrapredicción de entre una pluralidad de modos de intrapredicción para el bloque de imagen;
la pluralidad de modos de intrapredicción para el bloque de imagen comprende un conjunto de Modos Más Probables, MPMs, y un conjunto de no-MPMs, en donde el conjunto de no-MPMs comprende un primer conjunto de modos de intrapredicción y un segundo conjunto de modos de intrapredicción, en donde un modo en el primer conjunto de modos de intrapredicción es codificado utilizando N bits, y un modo en el segundo conjunto de modos de intrapredicción es codificado utilizando M bits, N y M son enteros positivos, N es menor que M,
en donde la decodificación de los datos codificados del bloque de imagen para obtener el modo de intrapredicción de entre una pluralidad de modos de intrapredicción para el bloque de imagen (S801) comprende:
S802: decodificar los datos codificados para obtener una indicación que indica si el modo de intrapredicción para el bloque de imagen está en el conjunto de MPMs o no; si la indicación indica que el modo de intrapredicción para el bloque de imagen no está en el conjunto de MPMs,
S803: generar una relación de mapeo entre al menos un modo de intrapredicción en el primer conjunto de modos de intrapredicción y al menos un modo de intrapredicción en el conjunto de no-MPMs;
S804: decodificar los datos codificados para obtener una palabra código de modo de intrapredicción para el bloque de imagen;
S805: obtener el modo de intrapredicción para el bloque de imagen de acuerdo con la relación de mapeo y la palabra código de modo de intrapredicción.
De acuerdo con el método de decodificación de vídeo de la presente solicitud, se utiliza un esquema de binarización truncado para codificar modos de predicción en el conjunto de no-MPMs, y se genera una relación de mapeo, por lo tanto el modo de predicción para el bloque actual tiene una posibilidad superior de ser codificado, utilizar menos bits y se reduce la complejidad computacional en el lado del decodificador.
En una forma de implementación de la presente solicitud, de acuerdo con la figura 9, la presente solicitud divulga un método de decodificación de vídeo, que comprende:
S901: recibir datos codificados de un bloque de imagen;
El lado del decodificador puede ser configurado para recibir los datos de imagen codificados a través de un enlace de comunicación directo entre el lado del codificador y el lado del decodificador, por ejemplo una conexión cableada o inalámbrica directa, o a través de cualquier tipo de red, por ejemplo una red cableada o inalámbrica o cualquier combinación de las mismas, o cualquier tipo de red privada y pública, o cualquier tipo de combinación de las mismas.
S902: decodificar los datos codificados para obtener una indicación que indica si el modo de intrapredicción para el bloque de imagen está en el conjunto de MPMs o no.
La indicación que indica si el modo de intrapredicción para el bloque de imagen está en el conjunto de MPM o no puede ser un indicador, cuando el valor del indicador es 1 puede indicar que el modo de intrapredicción para el bloque de imagen está en el conjunto de MPMs, cuando el valor del indicador es 0 puede indicar que el modo de intrapredicción para el bloque de imagen no está en el conjunto de MPMs. Por ejemplo, en el lado del codificador, si una lista MPM (un conjunto de MPMs) es un conjunto de intra modos, por decir, [25, 42, 63] y el valor de intra modo de bloques actuales es 42, entonces el indicador MPM se establece en 1 debido a que el intra modo para el bloque actual se encuentra en la segunda entrada de la lista MPM. Si, por ejemplo, el intra modo de bloques actuales es 41 en lugar de 42, entonces el indicador MPM se establece en 0, el indicador MPM es enviado al lado del decodificador en los datos codificados.
Si la indicación indica que el modo de intrapredicción para el bloque de imagen está en el conjunto de MPMs, ejecutar el paso S903;
Si la indicación indica que el modo de intrapredicción para el bloque de imagen está en el conjunto de MPMs, ejecutar el paso S904;
S903: decodificar los datos codificados para obtener el modo de intrapredicción para el bloque de imagen de acuerdo con el conjunto de MPMs;
En un ejemplo, si la indicación que indica el modo de intrapredicción para el bloque de imagen está en el conjunto de MPMs. El proceso de derivación para el modo de intrapredicción para el bloque de imagen (IntraPredModoY[ xPb ][ yPb ]) es definido de la siguiente manera:
IntraPredModoY[ xPb ][ yPb ] es derivado aplicando el siguiente procedimiento:
Si intra_luma_mpm_indicador[ xPb ][ yPb ] es igual a 1 (el cual indica que el modo de intrapredicción para el bloque de imagen está en el conjunto de MPM), el IntraPredModoY[ xPb ][ yPb ] es establecido igual a candModoLista[ intra_luma_mpm_idx[ xPb ][ yPb ] ], donde ( xPb , yPb ) especifica la muestra superior-izquierda del bloque de predicción de luminancia actual con relación a la muestra de luminancia superior-izquierda de la imagen actual, y candModoLista es la lista MPM real, decodificando los datos codificados para obtener un índice MPM, obteniendo el modo de intrapredicción del bloque de imagen de acuerdo con el índice MPM y la lista MPM.
En un ejemplo específico, el conjunto de MPMs es (15, 0, 20), el valor del índice MPM es 2, de manera que el modo de intrapredicción del bloque de imagen es modo plano (valor 0). En otro ejemplo específico, el conjunto de MPMs es (15, 36, 0, 1, 21, 19), el valor del índice MPM es 5, de manera que el modo de intrapredicción del bloque de imagen es modo angular 21.
S904: generar una relación de mapeo entre al menos un modo de intrapredicción en el primer conjunto de modos de intrapredicción y al menos un modo de intrapredicción en el conjunto de no-MPMs;
En un ejemplo, si la indicación indica que el modo de intrapredicción para el bloque de imagen no está en el conjunto de MPMs, se construyen dos listas: concretamente, lista de palabras código y lista de modo derivado.
La primera lista de palabras código es construida de la siguiente manera:
1. encontrar el modo más pequeño en la lista MPM, asumir que el modo más pequeño es Ms.
2. establecer una variable de incremento inicial Inc=1.
3. establecer modo candidato Mc como (Ms+Inc), verificar si el modo Mc también está en la lista MPM.
si Mc no está en la lista MPM, agregar Mc a la lista de palabras código
de otra manera, avanzar al paso 4
4. verificar si las entradas insertadas en la lista de palabras código están llenas (longitud insertada iguala la longitud de la lista de palabras código):
Si está lleno, terminar;
De otra manera, establecer Inc=Inc+1, y avanzar al paso 3.
Para abreviar, la lista de palabras código contendrá los modos más pequeños excepto aquellos que han estado presentes en la lista MPM. Debido a que la longitud de la lista MPM es L, la longitud de la lista de palabras código es 64-(67-L) = L-3. Un ejemplo, si la lista MPM es (15, 36, 0, 1,21, 19), entonces la palabra código construida es (2, 3, 4).
La segunda lista de modos derivada es construida de la siguiente manera:
1. encontrar los primeros dos modos angulares en la lista MPM, asumiendo que aquellos que se encontraron son angularO y angularl.
2. establecer una variable de incremento inicial Inc=1.
3. derivar un nuevo modo MO<menos>= angularO - Inc. Observar que MO<menos>debiera ser garantizado también un modo angular (es decir 66>=M0<menos>>=2). Por lo tanto, si angularO iguala 2, Inc es 1; entonces el MO<menos>derivado sería 66; Si Inc es 2, entonces MO<menos>sería 65, etc. La operación menos se cerraría hacia arriba al modo angular máximo.
4. verificar si M0<menos>en la lista MPM, en caso de no estar y si la lista de modos derivada no está llena, insertar M0<menos>a lista de modos derivada. De otra manera,
Si la lista de modos derivada está llena, terminar.
De otra manera, avanzar al paso 5.
5. derivar un nuevo modo MO<más>= angularO Inc. Observar que MO<más>debiera ser garantizado también un modo angular (es decir 66>=MO<más>>=2). Por lo tanto, si angularO iguala 66, Inc es 1, entonces el MO<más>derivado sería 2, Si Inc es 2, entonces MO<más>sería 3, etc. La operación más se cerraría hacia abajo al modo angular mínimo.
6. verificar si MO<más>en la lista MPM, en caso de no estar y si la lista de modos derivada no está llena, insertar MO<más>a la lista de modos derivada. De otra manera,
Si la lista de modos derivada está llena, terminar.
De otra manera, avanzar al paso 7.
7. repetir los pasos 3-6 reemplazando angularO con angular1
8. establecer Inc=Inc+1, y repetir los pasos 3-7
Para abreviar, la lista de modos derivada obtiene modos vecinos de los primeros dos modos angulares en la lista MPM. Si estos modos vecinos ya están incluidos en la lista MPM, entonces son excluidos de la lista de modos derivada. Debido a que la longitud de la lista MPM es L, la longitud de la lista de modos derivada es 64-(67-L) = L-3. Un ejemplo, si la lista MPM es (15, 36, 0, 1,21, 19), entonces la lista de modos derivada construida es (14, 16, 35). Cuando la lista de palabras código y la lista de modos derivada son construidas, se crea una relación de mapeo bidireccional entre ellas. Concretamente, dadas las listas ejemplares anteriores con la lista de palabras código (2, 3, 4) y la lista de modos derivada (14, 16, 35), 2 ^ ^ 14 , 3 ^ ^ 16 , y 3 ^ ^ 35 , donde representa mapeo bidireccional.
Se permiten dos opciones para construir la relación de mapeo bidireccional entre la lista de palabras código y la lista de modos derivada. La primera opción es que se permite que la lista de modos derivada sea construida en una forma de manera que pudiera haber elementos en la lista de modos derivada y la lista de palabras código. La otra opción es que la lista de modos derivada no puede traslaparse con los modos en la lista de palabras código.
En otro ejemplo, en una forma de implementación de la presente solicitud, en donde la generación de la relación de mapeo entre al menos un modo de intrapredicción en el primer conjunto de modos de intrapredicción y al menos un modo de intrapredicción en el conjunto de no-MPMs, comprende: clasificar una pluralidad de categorías de modo de intrapredicción de acuerdo con el número y/o la dirección de modos de intrapredicción en el conjunto de MPM que caen dentro de cada categoría de modo de intrapredicción; generar la relación de mapeo de acuerdo con la categoría de modo de intrapredicción clasificada más alta.
En un ejemplo, 5 categorías de modo de intrapredicción angular, concretamente modo dc (DC_IDX), modo vertical (VER_IDX), modo horizontal (HOR_IDX), intra modo 2 (2), modo vertical diagonal (VDIA_IDX) y modo diagonal DIA_IDX, en donde un modo de intrapredicción angular de la lista de modos más probables que caen dentro de cada categoría de modo de intrapredicción angular, por ejemplo, corresponde a la asociación de los modos de intrapredicción angular de la lista de modos más probables con la categoría de modo de intrapredicción angular que está más cerca del modo de intrapredicción angular correspondiente de la lista de modos más probables. En otro ejemplo, la repetición de este paso con la segunda categoría de modo de intrapredicción angular clasificada más alta.
En un ejemplo, la generación de la relación de mapeo entre al menos un modo de intrapredicción en el primer conjunto de modos de intrapredicción y al menos un modo de intrapredicción en el conjunto de no-MPMs comprende: generar un conjunto inicial de modos de intrapredicción de acuerdo con la adición de un desfase a una pluralidad de valores correspondientes al conjunto de MPMs; clasificar el conjunto de MPMs para obtener una categoría de modo de intrapredicción clasificada más alta; generar la relación de mapeo de acuerdo con la categoría de modo de intrapredicción clasificada más alta y el conjunto inicial de modos de intrapredicción.
En un ejemplo, el conjunto inicial de modos de intrapredicción es generado de acuerdo con agregar un desfase de -1 ,+1, 2, -2, 3, -3, 4 o -4 a una pluralidad de valores correspondiente al conjunto de MPMs.
En un ejemplo, la relación de mapeo es generada de acuerdo con una lista de modos por omisión predeterminada que comprende o consiste de un modo plano (PLANO_IDX), un modo dc (DC_IDX), un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX), y un modo diagonal (DIA_IDX).
S905: decodificar los datos codificados para obtener una palabra código de modo de intrapredicción para el bloque de imagen;
La palabra código es codificada utilizando N bits o M bits en el lado codificado. En un ejemplo, debido a que se trata de una relación de mapeo bidireccional, entonces el modo de intrapredicción correspondiente a la palabra código puede ser mapeado a otro modo de intrapredicción en el conjunto de no-MPMs.
S906: obtener el modo de intrapredicción para el bloque de imagen de acuerdo con la relación de mapeo y la palabra código de modo de intrapredicción.
En un ejemplo, después que se construye una relación de mapeo bidireccional, verificar si el modo de intrapredicción correspondiente a la palabra código de modo de intrapredicción está en la lista de palabras código o la lista de modos derivada:
Si el modo de intrapredicción analizado no está en la lista de palabras código y tampoco en la lista de modos derivada, establecer el modo de predicción final como el modo de intrapredicción analizado.
Si el modo de intrapredicción analizado solamente está en la lista de palabras código o solamente en la lista de modos derivada, entonces establecer el modo de predicción final como su modo de intrapredicción mapeado correspondiente.
Si el modo de intrapredicción analizado está en ambas la lista de palabras código y la lista de modos derivada, se introduce un mecanismo en la construcción de esta dos listas, de manera que la relación de mapeo bidireccional es ajustada y todos los modos traslapados se mapean a sí mismos en otra lista. Un ejemplo: lista MPM (01235066), lista de palabras código es (456), lista de modos derivada (4655). Cuando se construye la lista de modos derivada o lista de palabras código, se garantiza que 4 ^ ^ 4 , 5 ^ ^ 5 , y 6 ^ ^ 65.
Un decodificador que comprende circuitos de procesamiento configurados para llevar a cabo los métodos anteriores. En la presente divulgación, se divulga un producto de programa de computadora que comprende un código de programa para ejecutar los métodos anteriores.
En la presente divulgación, se divulga un decodificador para decodificar datos de vídeo, el decodificador comprendiendo: uno o más procesadores; y un medio de almacenamiento legible por computadora no transitorio acoplado a los procesadores y almacenando programación para ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el decodificador para llevar a cabo los métodos anteriores.
La figura 7 muestra un ejemplo de 67 modos de intrapredicción, por ejemplo, como se propone para VVC, en donde la pluralidad de modos de intrapredicción de 67 modos de intrapredicción comprende: modo plano (índice 0), modo dc (índice 1), y modos angulares con índices 2 a 66, en donde el modo angular inferior izquierdo en la figura 7 se refiere al índice 2 y la numeración de los índices es incrementada hasta que el índice 66 es el modo más angular superior derecho de la figura 7.
La figura 10 es un diagrama esquemático de un dispositivo de red 1300 de acuerdo con una realización de la divulgación. El dispositivo de red 1300 es adecuado para implementar las realizaciones divulgadas como aquí se describe. El dispositivo de red 1300 comprende puertos de entrada 1310 y unidades receptoras (Rx) 1320 para recibir datos; un procesador, unidad lógica o unidad de procesamiento central (CPU) 1330 para procesar los datos; unidades transmisoras (Tx) 1340 y puertos de salida 1350 para transmitir los datos; y una memoria 1360 para almacenar los datos. El dispositivo de red 1300 también puede comprender componentes óptico-a-eléctrico (OE) y componentes eléctrico-a-óptico (EO) acoplados a los puertos de entrada 1310, las unidades receptoras 1320, las unidades transmisoras 1340, y los puertos de salida 1350 para salida o entrada de señales ópticas o eléctricas. El procesador 1330 es implementado por hardware y software. El procesador 1330 puede ser implementado como uno o más chips CPU, núcleos (por ejemplo, como un procesador multi-núcleo), arreglos de puerta programable en campo (FPGAs), circuitos integrados de aplicación específica (ASICs), y procesadores de señal digital (DSPs). El procesador 1330 está en comunicación con los puertos de entrada 1310, unidades receptoras 1320, unidades transmisoras 1340, puertos de salida 1350, y memoria 1360. El procesador 1330 comprende un módulo de codificación 1370. El módulo de codificación 1370 implementa las realizaciones divulgadas antes descritas. Por ejemplo, el módulo de codificación 1370 implementa, procesa, prepara, o proporciona las diversas funciones de conexión en red. La inclusión del módulo de codificación 1370 entonces proporciona una mejora sustancial a la funcionalidad del dispositivo de red 1300 y efectúa una transformación del dispositivo de red 1300 a un estado diferente. Alternativamente, el módulo de codificación 1370 es implementado como instrucciones almacenadas en la memoria 1360 y ejecutadas por el procesador 1330.
La memoria 1360 comprende uno o más discos, unidades de cinta, y unidades en estado sólido y puede ser utilizada como un dispositivo de almacenamiento de datos de sobreflujo, para almacenar programas cuando dichos programas son seleccionados para ejecución, y para almacenar instrucciones y datos que son leídos durante la ejecución del programa. La memoria 1360 puede ser volátil y/o no volátil, y puede ser memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), memoria de contenido direccionable ternaria (TCAM), y/o memoria de acceso aleatorio estática (SRAM).
La figura 10 es un diagrama de bloques de un aparato 1100 que puede ser utilizado para implementar varias realizaciones. El aparato 1100 puede ser el dispositivo fuente 102 como se muestra en la figura 1, o el codificador de vídeo 200 como se muestra en la figura 2, o el dispositivo destino 104 como se muestra en la figura 1, o el decodificador de vídeo 300 como se muestra en la figura 3. Adicionalmente, el aparato 1100 puede alojar uno o más de los elementos descritos. En algunas realizaciones, el aparato 1100 está equipado con uno o más dispositivos de entrada/salida, tal como un altavoz, micrófono, ratón, pantalla táctil, teclado numérico, teclado, impresora, pantalla y similar. El aparato 1100 puede incluir una o más unidades de procesamiento central (CPUs) 1510, una memoria 1520, un almacenamiento en masa 1530, un adaptador de vídeo 1540, y una interfaz I/O 1560 conectada a un bus. El bus es uno o más de cualquier tipo de varias arquitecturas de bus incluyendo un bus de memoria o controlador de memoria, un bus periférico, un bus de vídeo o similar.
El CPU 1510 puede tener cualquier tipo de procesador de datos electrónicos. La memoria 1520 puede tener, o puede ser, cualquier tipo de memoria de sistema tal como memoria de acceso aleatorio estática (SRAM), memoria de acceso aleatorio dinámica (DRAM), DRAM sincronizada (SDRAM), memoria de solo lectura (ROM), una combinación de las mismas, o similares. En una realización, la memoria 1520 puede incluir ROM para uso en el arranque, y DRAM para almacenamiento de programas y datos para uso mientras se ejecutan los programas. En realizaciones, la memoria 1520 es no transitoria. El almacenamiento en masa 1530 incluye cualquier tipo de dispositivo de almacenamiento que almacene datos, programas y otra información
Realización 15. El método de cualquiera de las realizaciones 1 a 14, el método además comprende:
si el bloque izquierdo del bloque de codificación actual está disponible y el modo de intrapredicción del bloque izquierdo es un modo angular, agregar un desfase al modo de predicción del bloque izquierdo para obtener un nuevo modo de predicción, si el nuevo modo de predicción no está en la lista MPM, agregar el nuevo modo de predicción a la lista MPM.
Realización 16. El método de la realización 15, en donde el desfase es -1.
Realización 17. El método de la realización 15, en donde el desfase es 1.
Realización 18. El método de cualquiera de las realizaciones 1 a 17, el método además comprende:
si el bloque de encima del bloque de codificación actual está disponible y el modo de intrapredicción del bloque de encima es un modo angular, agregar un desfase al modo de predicción del bloque de encima para obtener un modo de predicción por encima del desfase, si el modo de predicción por encima del desfase no está en la lista MPM, agregar el modo de predicción por encima del desfase a la lista MPM.
Realización 19. El método de la realización 18, en donde el desfase es -1.
Realización 20. El método de la realización 18, en donde el desfase es 1.
Realización 21. El método de cualquiera de las realizaciones 1 a 20, el método además comprende:
agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) a la lista MPM.
Realización 22. El método de cualquiera de las realizaciones 1 a 20, el método además comprende una lista de candidatos de modo angular comprendiendo o consistiendo de: un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) en la lista MPM; y el método además comprende: determinar iterativamente de acuerdo con su orden en la lista, si un modo angular de la lista está en la lista MPM, y si el modo angular respectivo no está en la lista MPM agregar el modo angular respectivo a la lista MPM.
Realización 23. El método de cualquiera de las realizaciones 1 a 20, en donde la construcción de la lista MPM inicia con el paso de determinar si un bloque izquierdo de un bloque de codificación actual está disponible o no, por ejemplo con base en una lista MPM vacía.
Realización 24. El método de acuerdo con cualquiera de las realizaciones 1 a 23, el método además comprende: si el bloque izquierdo del bloque de codificación actual no está disponible y otro bloque en la dirección izquierda general está disponible (por ejemplo BL o AL en la figura 5), insertar el modo de intrapredicción del otro bloque en la lista MPM, si el bloque izquierdo está disponible, no insertar el modo de intrapredicción del otro bloque en la lista MPM.
Realización 25. El método de acuerdo con cualquiera de las realizaciones 1 a 23, el método además comprende: si el bloque de encima del bloque de codificación actual no está disponible y otro bloque en la dirección de encima general está disponible (por ejemplo AR o AL en la figura 5), insertar el modo de intrapredicción del otro bloque en la lista MPM, si el bloque de encima está disponible, no insertar el modo de intrapredicción del otro bloque en la lista MPM.
Realización 26. El método de acuerdo con cualquiera de las realizaciones 1 a 25, el método además comprende: agregar un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DiA_IDX) en la lista MPM en caso que no estén en la lista MPM.
Realización 27. El método de acuerdo con cualquiera de las realizaciones 1 a 26, el método además comprende: si ambos el bloque izquierdo y el bloque de encima del bloque de codificación actual no son angular, entonces verificar adicionalmente uno más bloques vecinos adicionales (por ejemplo BL o AL o AR en la figura 5). Si cualquiera de ellos (BL, o AL, o AR) es angular, entonces utilizar este modo angular como el modo angular de inicio para el proceso de derivación -1+1, como se describió antes.
Realización 28. Un codificador que comprende circuitos de procesamiento para llevar a cabo el método de acuerdo con cualquiera de las realizaciones 1 a 27.
Realización 29. Un decodificador que comprende circuitos de procesamiento para llevar a cabo el método de acuerdo con cualquiera de las realizaciones 1 a 27.
Realización 30. Un producto de programa de computadora que comprende un código de programa para ejecutar el método de acuerdo con cualquiera de las realizaciones 1 a 27.
Realización 31. Un decodificador para construir una lista de Modo Más Probable, MPM, comprende:
uno o más procesadores; y un medio de almacenamiento legible por computadora no transitorio acoplado a los procesadores y almacenando programación para ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el decodificador para llevar a cabo el método de acuerdo con cualquiera de las realizaciones 1 a 27.
Realización 32. Un codificador para construir una lista de Modo Más Probable, MPM, que comprende:
uno o más procesadores; y un medio de almacenamiento legible por computadora no transitorio acoplado a los procesadores y almacenando programación para ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el codificador para llevar a cabo el método de acuerdo con cualquiera de las realizaciones 1 a 27.
Realización 33. Un método para construir una lista de Modo Más Probable, MPM para intrapredicción, el método comprende: determinar si un bloque izquierdo de un bloque de codificación actual está disponible o no, si el bloque izquierdo del bloque de codificación actual está disponible, agregar un modo de intrapredicción del bloque izquierdo a la lista MPM; determinar si un bloque de encima del bloque de codificación actual está disponible o no, si el bloque de encima del bloque de codificación actual está disponible y un modo de intrapredicción del bloque de encima no está en la lista MPM, agregar el modo de intrapredicción del bloque de encima a la lista MPM; si un modo plano no está en la lista MPM, agregar el modo plano a la lista MPM; si un modo DC no está en la lista MPM, agregar el modo DC a la lista MPM.
Realización 34. El método de la realización 33, en donde cuando el bloque de codificación actual es un bloque de codificación ubicado en el lado más a la izquierda de un cuadro, el bloque izquierdo del bloque de codificación actual no está disponible.
Realización 35. El método de la realización 33 o 34, en donde cuando el bloque de codificación actual es un bloque de codificación no ubicado en el lado más a la izquierda de un cuadro, el bloque izquierdo del bloque de codificación actual está disponible.
Realización 36. El método de cualquiera de las realizaciones 33 a 35, en donde cuando el bloque de codificación actual es un bloque de codificación ubicado en el lado más superior de un cuadro, el bloque de encima del bloque de codificación actual no está disponible.
Realización 37. El método de cualquiera de las realizaciones 33 a 36, en donde cuando el bloque de codificación actual es un bloque de codificación no ubicado en el lado más superior de un cuadro, el bloque de encima del bloque de codificación actual está disponible.
Realización 38. El método de cualquiera de las realizaciones 33 a 37, en donde el método además comprende: si el bloque izquierdo del bloque de codificación actual está disponible y el modo de intrapredicción del bloque izquierdo es un modo angular, agregar un desfase al modo de predicción del bloque izquierdo para obtener un nuevo modo de predicción, si el nuevo modo de predicción no está en la lista MPM, agregar el nuevo modo de predicción a la lista MPM.
Realización 39. El método de cualquiera de las realizaciones 33 a 38, en donde el método además comprende: si el bloque de encima del bloque de codificación actual está disponible y el modo de intrapredicción del bloque de encima es un modo angular, agregar un desfase al modo de predicción del bloque de encima para obtener un modo de predicción por encima del desfase, si el modo de predicción por encima del desfase no está en la lista MPM, agregar el modo de predicción por encima del desfase a la lista MPM.
Realización 40. El método de la realización 38 o 39, en donde el desfase es -1.
Realización 41. El método de la realización 38 o 39, en donde el desfase es 1.
Realización 42. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX).
Realización 43. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
Realización 44. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2).
Realización 45. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo diagonal (DIA_IDX) o un intra modo 2 (2) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
Realización 46. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase 4.
Realización 47. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase 4 de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
Realización 48. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase -4.
Realización 49. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
Realización 50. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende uno de los siguientes conjuntos de modos de intrapredicción: un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o
un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 4; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase -1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase -1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1.
Realización 51. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si el bloque izquierdo del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral;
en donde el conjunto de modos de intrapredicción comprende uno de los siguientes conjuntos de modos de intrapredicción:
un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 4; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase -1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase -1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VER_IDX con un desfase 1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -4; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1; o un modo vertical (VER_IDX), un modo diagonal vertical (VDIA_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase 1, y un modo de intrapredicción correspondiente a VDIA_IDX con un desfase -1.
Realización 52. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX).
Realización 53. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
Realización 54. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX).
Realización 55. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal vertical (VDIA_IDX) o un modo diagonal (DIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
Realización 56. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX).
Realización 57. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque de encima del bloque de codificación actual no está disponible, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprendiendo un modo horizontal (HOR_IDX), un intra modo 2 (2), un modo diagonal (DIA_IDX) o un modo diagonal vertical (VDIA_IDX) de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
Realización 58. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase 4.
Realización 59. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende:
si una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, el bloque izquierdo del bloque de codificación actual está disponible y el bloque de encima del bloque de codificación actual está disponible, agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción comprende un modo vertical (VER_IDX), un modo horizontal (HOR_IDX), un modo de intrapredicción correspondiente a VER_IDX con un desfase -4 o un modo de intrapredicción correspondiente a VER_IDX con un desfase 4 de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral.
Realización 60. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende:
si el bloque de encima del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral, verificar si un primer modo de intrapredicción de un conjunto de modos de intrapredicción está comprendido en la lista MPM, y agregar el primer modo de intrapredicción a la lista MPM si el primer modo de intrapredicción no está comprendido en la lista MPM, en donde el conjunto de modos de intrapredicción comprende uno de los siguientes conjuntos de modos de intrapredicción:
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -4, y HOR_IDX agregar un desfase 4; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1.
Realización 61. El método de cualquiera de las realizaciones 33 a 41, en donde el método además comprende: si el bloque de encima del bloque de codificación actual no está disponible y una cantidad de modos de intrapredicción en la lista MPM es menor que un umbral,
agregar iterativamente un modo de intrapredicción de un conjunto de modos de intrapredicción de acuerdo con el orden antes mencionado a la lista MPM, cuando el modo de intrapredicción no está comprendido en la lista MPM, hasta que la cantidad de modos de predicción es igual al umbral;
en donde el conjunto de modos de intrapredicción comprende uno de los siguientes conjuntos de modos de intrapredicción:
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -4, y HOR_IDX agregar un desfase 4; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1, y un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 4; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase -1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1; o
un modo horizontal (HOR_IDX ), un intra modo 2 (2), un modo de intrapredicción correspondiente a HOR_IDX con un desfase 1, y un modo de intrapredicción correspondiente a un intra modo 2 (2) con un desfase 1.
Realización 62. Un codificador que comprende circuitos de procesamiento para llevar a cabo el método de conformidad con cualquiera de las realizaciones 33 a 61.
Realización 63. Un decodificador que comprende circuitos de procesamiento para llevar a cabo el método de acuerdo con cualquiera de las realizaciones 33 a 61.
Realización 64. Un producto de programa de computadora que comprende un código de programa para ejecutar el método de acuerdo con cualquiera de las realizaciones 33 a 61.
Realización 65. Un decodificador para construir una lista de Modo Más Probable, MPM, comprende: uno o más procesadores; y
un medio de almacenamiento legible por computadora no transitorio acoplado a los procesadores y almacenando programación para ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el decodificador para llevar a cabo el método de conformidad con cualquiera de las realizaciones 33 a 61.
Realización 66. Un codificador para construir una lista de Modo Más Probable, MPM, que comprende:
uno o más procesadores; y un medio de almacenamiento legible por computadora no transitorio acoplado a los procesadores y almacenando programación para ejecución por los procesadores, en donde la programación, cuando es ejecutada por los procesadores, configura el codificador para llevar a cabo el método de acuerdo con cualquiera de las realizaciones 33 a 61.
El adaptador de vídeo 1540 y la interfaz I/O 1560 proporcionan interfaces para acoplar dispositivos de entrada y salida externos al aparato 1100. Por ejemplo, el aparato 1100 puede proporcionar la interfaz de comandos SQL a los clientes. Tal como se ilustra, ejemplos de dispositivos de entrada y salida incluyen una pantalla 1590 acoplada al adaptador de vídeo 1540 y cualquier combinación de ratón/teclado/impresora 1570 acoplada a la interfaz I/O 1560. Otros dispositivos se pueden acoplar al aparato 1100, y se puede utilizar una cantidad menor o adicional de tarjetas de interfaz. Por ejemplo, se puede utilizar una tarjeta de interfaz serial (que no se muestra) para proporcionar una interfaz serial para una impresora.
El aparato 1100 también incluye una o más interfaces de red 1550, el cual incluye enlaces cableados, tal como un cable Ethernet o similar, y/o enlaces inalámbricos para tener acceso a nodos o una o más redes 1580. La interfaz de red 1550 permite que el aparato 1100 se comunique con unidades remotas a través de las redes 1580. Por ejemplo, la interfaz de red 1550 puede proporcionar comunicación a la base de datos. En una realización, el aparato 1100 está acoplado a una red de área local o una red de área amplia para procesamiento de datos y comunicaciones con dispositivos remotos, tal como otras unidades de procesamiento, la Internet, instalaciones de almacenamiento remoto, o similares.
La aproximación lineal a nivel de pieza se introduce para calcular los valores de coeficientes de ponderación requeridos para predecir pixeles dentro de un bloque determinado. La aproximación lineal a nivel de pieza, por un lado, reduce significativamente la complejidad computacional del mecanismo de predicción de distancia ponderada en comparación con el cálculo directo de coeficientes de ponderación y, por otra parte, ayuda a lograr una precisión superior de valores de coeficientes de ponderación en comparación con simplificaciones de la técnica anterior. Las realizaciones se pueden aplicar a otras técnicas de intrapredicción que dependen de la posición y bidireccionales (por ejemplo, diferentes modificaciones de PDPC) así como mecanismos que utilizan coeficientes de ponderación que dependen de la distancia de un pixel a otro para mezclar diferentes partes de una imagen (por ejemplo, algunos métodos de mezclado en procesamiento de imagen).
Implementaciones de la material sujeto y las operaciones descritas en esta divulgación pueden ser implementadas en circuitos electrónicos digitales, o en software, firmware, o hardware de computadora, incluyendo las estructuras divulgadas en esta divulgación y sus equivalentes estructurales, o en combinaciones de uno o más de ellos. Implementaciones de la material sujeto descritas en esta divulgación pueden ser implementadas como uno o más programas de computadora, es decir, uno o más módulos de instrucciones de programa de computadora, codificados en el medio de almacenamiento de computadora para ejecución por, o para controlar la operación del, aparato de procesamiento de datos. De manera alternativa o adicional, las instrucciones de programas pueden ser codificadas como una señal propaganda artificialmente generada, por ejemplo, una señal eléctrica, óptica o electromagnética generada por máquina que es generada para codificar información para transmisión a aparatos receptores convenientes para ejecución por un aparato de procesamiento de datos. Un medio de almacenamiento de computadora, por ejemplo, el medio legible por computadora, puede ser, o puede estar incluido en, un dispositivo de almacenamiento legible por computadora, un substrato de almacenamiento legible por computadora, un dispositivo o arreglo de memoria de acceso aleatorio o serial, o una combinación de uno o más de estos. Además, aunque un medio de almacenamiento de computadora no es una señal propagada, un medio de almacenamiento de computadora puede ser una fuente o destino de instrucciones de programa de computadora codificadas en una señal propagada artificialmente generada. El medio de almacenamiento de computadora también puede ser, o puede estar incluido en, uno o más componentes físicos y/o no transitorios separados o medios (por ejemplo, múltiples CDs, discos, u otros dispositivos de almacenamiento).
En algunas implementaciones, las operaciones descritas en esta divulgación pueden ser implementadas como un servicio alojado proporcionado en un servidor en una red de computación de nube. Por ejemplo, los medios de almacenamiento legibles por computadora pueden ser lógicamente agrupados y accesibles dentro de una red de computación de nube. Servidores dentro de la red de computación de nube pueden incluir una plataforma de computación de nube para proporcionar servicios basados en nube. Los términos “nube,” “computación de nube,” y “basado en nube” pueden ser utilizados de manera intercambiable según sea apropiado sin apartarse del alcance de esta divulgación. Servicios basados en nube pueden ser servicios alojados que son proporcionados por servidores y entregados a través de una red a una plataforma de cliente para mejorar, complementar o reemplazar aplicaciones ejecutadas localmente en una computadora de cliente. El circuito puede utilizar servicios basados en nube para recibir rápidamente actualizaciones de software, aplicaciones, y otros recursos que de otra manera requerirían un periodo de tiempo prolongado antes que los recursos puedan ser entregados al circuito.
Un programa de computadora (también conocido como un programa, software, aplicación de software, texto, o código) puede ser escrito en cualquier forma de lenguaje de programación, incluyendo lenguajes compilados o interpretados, lenguajes declarativos o de procedimiento, y se puede desplegar en cualquier forma, incluyendo como un programa autónomo o como un módulo, componente, subrutina, objeto, u otra unidad conveniente para uso en un ambiente de computación. Un programa de computadora puede, pero no necesita corresponder a un archivo en un sistema de archivos. Un programa puede ser almacenado en una porción de un archivo que mantiene otros programas o datos (por ejemplo, uno o más textos almacenados en un documento de lenguaje de marcación), en un solo archivo dedicado al programa en cuestión, o en múltiples archivos coordinados (por ejemplo, archivos que almacenan uno o más módulos, sub-programas, o porciones de código). Un programa de computadora puede ser desplegado para ser ejecutado en una computadora o en múltiples computadoras que se localizan en un sitio o que están distribuidas a través de múltiples sitios e interconectadas por una red de comunicación.
Los procesos y flujos lógicos descritos en esta divulgación pueden ser ejecutados por uno o más procesadores programables ejecutando uno o más programas de computadora para ejecutar acciones operando en datos de entrada y generando una salida. Los procesos y flujos lógicos también pueden ser ejecutados por, y el aparato también puede ser implementado como, circuitos lógicos de propósito especial, por ejemplo, un FPGA (arreglo de compuerta programable en campo) o un ASIC (circuito integrado de aplicación específica).
Procesadores adecuados para la ejecución de un programa de computadora incluyen, a manera de ejemplo, microprocesadores de propósito general y especial, y cualquiera o más procesadores de cualquier tipo de computadora digital. Generalmente, un procesador recibirá instrucciones y datos de una memoria de solo lectura o una memoria de acceso aleatorio o ambas. Los elementos esenciales de una computadora son un procesador para ejecutar acciones de acuerdo con instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. Generalmente, una computadora también incluirá, o será operativamente acoplada para recibir datos desde o transferir datos a, o ambos, uno o más dispositivos de almacenamiento en masa para almacenar datos, por ejemplo, discos magnéticos, discos magneto-ópticos, o discos ópticos. Sin embargo, una computadora no necesita tener dichos dispositivos. Además, una computadora puede ser incorporada en otro dispositivo, por ejemplo, un teléfono móvil, un asistente digital personal (PDA), un reproductor de audio o vídeo móvil, una consola de juegos, un receptor de Sistema de Posicionamiento Global (GPS), o un dispositivo de almacenamiento portátil (por ejemplo, una unidad flash de bus serial universal (USB)), por mencionar solo unos pocos. Dispositivos convenientes para almacenar instrucciones de programa de computadora y datos incluyen todas las formas de memoria no volátil, dispositivos de medios y memoria, incluyendo a manera de ejemplo, dispositivos de memoria de semiconductor, por ejemplo, EPROM, EEPROM, y dispositivos de memoria flash; discos magnéticos, por ejemplo, discos duros internos o discos removibles; discos magneto-ópticos; y discos CD-ROM y DVD-ROM. El procesador y la memoria pueden ser complementados por, o incorporados en, circuitos lógicos de propósito especial.
Algunas características que se describen en esta divulgación en el contexto de implementaciones separadas también se pueden implementar en combinación en una sola implementación. Por el contrario, varias características que se describen en el contexto de una sola implementación, varias características que se describen en el contexto de una sola implementación también se pueden implementar en múltiples implementaciones separadamente o en cualquier subcombinación adecuada. Además, aunque las características se pudieran describir como actuando en algunas combinaciones e incluso inicialmente se pudieran reclamar como tal, una o más características de una combinación reclamada en algunos casos se puede quitar de la combinación, y la combinación reclamada puede estar dirigida a una subcombinación o variación de una subcombinación.
De manera similar, aunque las operaciones se muestran en los dibujos en un orden particular, esto no se debiera entender como requiriendo que dichas operaciones sean ejecutadas en el orden particular mostrado o en orden secuencial, o que todas las operaciones ilustradas sean ejecutadas, para lograr los resultados deseables. En algunas circunstancias, la multitarea y el procesamiento paralelo pueden ser convenientes. Además, la separación de varios componentes del sistema en las implementaciones antes descritas no debiera ser entendida como requiriendo dicha separación en todas las implementaciones, y se debiera entender que los componentes de programa descritos y sistemas generalmente pueden ser integrados juntos en un solo producto de software o empacados en múltiples productos de software.
Por lo tanto, se han descrito implementaciones particulares de la material sujeto. Otras implementaciones están dentro del alcance de las siguientes reivindicaciones. En algunos casos, las acciones recitadas en las reivindicaciones pueden ser ejecutadas en un orden diferente y aun así lograr los resultados deseables. Además, los procesos mostrados en las figuras acompañantes no necesariamente requieren el orden particular mostrado, o el orden secuencia!, para lograr los resultados deseables. En algunas implementaciones, la multitarea y el procesamiento paralelo pueden ser convenientes.

Claims (8)

REIVINDICACIONES
1. Un método de decodificación para decodificar un bloque actual de un vídeo, en donde el método de decodificación comprende:
obtener un valor de un indicador de Modos Más Probables, MPM para el bloque actual de una corriente de bits; obtener un índice MPM para el bloque actual de la corriente de bits, cuando el valor del indicador MPM indica que un modo de intrapredicción para el bloque actual es un modo de intrapredicción comprendido en un conjunto MPM de modos de intrapredicción;
obtener un valor del modo de intrapredicción para el bloque actual, con base en el índice MPM y el conjunto MPM para el bloque actual, en donde se utiliza una binarización unaria truncada para señalar el índice MPM;
en donde cuando un modo de intrapredicción de un bloque vecino izquierdo del bloque actual es un modo Plano, y un modo de intrapredicción de un bloque vecino de encima del bloque actual es un modo Plano,
el conjunto MPM de modos de predicción comprende: un modo Plano, un modo DC, un modo Vertical, un modo Horizontal, un modo de intrapredicción correspondiente al modo Vertical con un primer desfase, y un modo de intrapredicción correspondiente al modo Vertical con un segundo desfase, en donde el primer desfase es -4 y el segundo desfase es 4.
2. El método de la reivindicación 1, en donde cuando el valor del indicador MPM para el bloque actual es 1 y el índice MPM para el bloque actual es 0, el modo de intrapredicción para el bloque actual es modo Plano.
3. Un método de decodificación para decodificar un bloque actual de un vídeo, en donde el método de decodificación comprende:
obtener un valor de un indicador de Modos Más Probables, MPM, para el bloque actual de una corriente de bits; obtener un índice MPM para el bloque actual de la corriente de bits, cuando el valor del indicador MPM indica que un modo de intrapredicción para el bloque actual es un modo de intrapredicción comprendido en un conjunto MPM de modos de intrapredicción;
obtener un valor del modo de intrapredicción para el bloque actual, con base en el índice MPM y el conjunto MPM para el bloque actual, en donde se utiliza una binarización unaria truncada para señalar el índice MPM;
en donde, cuando un modo de intrapredicción de un bloque vecino izquierdo del bloque actual es un modo Plano y un modo de intrapredicción de un bloque vecino de encima del bloque actual es un modo DC, el conjunto MPM de modos de predicción comprende: un modo Plano, un modo DC, un modo Vertical, un modo Horizontal, un modo de intrapredicción correspondiente al modo Vertical con un primer desfase y un modo de intrapredicción correspondiente al modo Vertical con un segundo desfase, en donde el primer desfase es -4 y el segundo desfase es 4.
4. El método de la reivindicación 3, en donde, cuando el valor del indicador MPM para el bloque actual es 1 y el índice MPM para el bloque actual es 0, el modo de intrapredicción para el bloque actual es modo Plano.
5. Un método de decodificación para decodificar un bloque actual de un vídeo, en donde el método de decodificación comprende:
obtener un valor de un indicador de Modos Más Probables, MPM para el bloque actual de una corriente de bits; obtener un índice MPM para el bloque actual de la corriente de bits, cuando el valor del indicador MPM indica que un modo de intrapredicción para el bloque actual es un modo de intrapredicción comprendido en un conjunto MPM de modos de intrapredicción;
obtener un valor del modo de intrapredicción para el bloque actual, con base en el índice MPM y el conjunto MPM para el bloque actual, en donde se utiliza una binarización unaria truncada para señalar el índice MPM;
en donde cuando un bloque vecino izquierdo del bloque actual no está disponible y un modo de intrapredicción de un bloque vecino de encima del bloque actual es un modo Plano, el conjunto MPM de modos de predicción comprende: un modo Plano, un modo DC, un modo Vertical, un modo Horizontal, un modo de intrapredicción correspondiente al modo Vertical con un primer desfase y un modo de intrapredicción correspondiente al modo Vertical con un segundo desfase;
o
en donde cuando un bloque vecino izquierdo del bloque actual no está disponible y un bloque vecino de encima del bloque actual no está disponible, el conjunto MPM de modos de predicción comprende: un modo Plano, un modo DC, un modo Vertical, un modo Horizontal, un modo de intrapredicción correspondiente al modo Vertical con un primer desfase, y un modo de intrapredicción correspondiente al modo Vertical con un segundo desfase;
o
en donde cuando un modo de intrapredicción de un bloque vecino izquierdo del bloque actual es un modo Plano y un bloque vecino de encima del bloque actual no está disponible, el conjunto MPM de modos de predicción comprende: un modo Plano, un modo DC, un modo Vertical, un modo Horizontal, un modo de intrapredicción correspondiente al modo Vertical con un primer desfase y un modo de intrapredicción correspondiente al modo Vertical con un segundo desfase, en donde el primer desfase es -4 y el segundo desfase es 4.
6. El método de conformidad con la reivindicación 5, en donde cuando el valor del indicador MPM para el bloque actual es 1 y el índice MPM para el bloque actual es 0, el modo de intrapredicción para el bloque actual es modo Plano.
7. Un decodificador que comprende circuitos de procesamiento para llevar a cabo el método de conformidad con cualquiera de las reivindicaciones 1 a 6.
8. Un producto de programa de computadora que comprende un código de programa para ejecutar el método de conformidad con cualquiera de las reivindicaciones 1 a 6.
ES19858449T 2018-09-03 2019-09-03 Método y aparato para intrapredicción Active ES2982416T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862726419P 2018-09-03 2018-09-03
PCT/CN2019/104254 WO2020048463A1 (en) 2018-09-03 2019-09-03 Method and apparatus for intra prediction

Publications (1)

Publication Number Publication Date
ES2982416T3 true ES2982416T3 (es) 2024-10-16

Family

ID=69721566

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19858449T Active ES2982416T3 (es) 2018-09-03 2019-09-03 Método y aparato para intrapredicción

Country Status (16)

Country Link
US (4) US10972725B2 (es)
EP (2) EP3818715B1 (es)
JP (4) JP7039731B2 (es)
KR (3) KR20240042127A (es)
CN (5) CN117896518A (es)
AU (3) AU2019335453B2 (es)
BR (1) BR112020027043A2 (es)
CA (1) CA3111038A1 (es)
ES (1) ES2982416T3 (es)
HU (1) HUE066408T2 (es)
MX (2) MX389396B (es)
MY (1) MY199332A (es)
PL (1) PL3818715T3 (es)
PT (1) PT3818715T (es)
SG (1) SG11202101742UA (es)
WO (1) WO2020048463A1 (es)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4351137B1 (en) 2012-09-26 2025-04-02 Sun Patent Trust Image decoding method and image decoding apparatus
US11394965B2 (en) * 2018-09-11 2022-07-19 Lg Electronics Inc. Method for processing image on basis of intra prediction mode, and device therefor
KR20200083315A (ko) * 2018-12-28 2020-07-08 한국전자통신연구원 화면 내 예측 모드 유도 방법 및 장치
KR102707059B1 (ko) * 2019-01-08 2024-09-13 엘지전자 주식회사 Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 장치
US11190758B2 (en) * 2019-04-25 2021-11-30 Qualcomm Incorporated Block-based quantized residual domain pulse code modulation assignment for intra prediction mode derivation
WO2020262988A1 (ko) * 2019-06-25 2020-12-30 엘지전자 주식회사 영상 코딩 시스템에서 무손실 코딩을 적용하는 영상 디코딩 방법 및 그 장치
CN114554195B (zh) * 2020-11-25 2024-06-25 腾讯科技(深圳)有限公司 图像处理方法、设备及存储介质
US12081742B2 (en) * 2021-06-11 2024-09-03 Tencent America LLC Intra mode coding
US12166973B2 (en) * 2021-07-07 2024-12-10 Tencent America LLC Entropy coding for intra prediction modes
US11917136B2 (en) * 2021-07-15 2024-02-27 Tencent America LLC Intra mode coding
CN118923115A (zh) * 2022-04-14 2024-11-08 联发科技股份有限公司 基于区域的隐式帧内模式推导和预测
US12432346B2 (en) * 2023-01-09 2025-09-30 Tencent America LLC Intra prediction mode derivation for coding blocks

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100348051C (zh) * 2005-03-31 2007-11-07 华中科技大学 一种增强型帧内预测模式编码方法
EP2453657A1 (en) * 2006-04-28 2012-05-16 NTT DoCoMo, Inc. Image predictive decoding device
CN104822066A (zh) * 2009-07-01 2015-08-05 汤姆森特许公司 用于视频编码器和解码器的方法和装置
CN102598667B (zh) * 2009-09-14 2015-03-18 汤姆森特许公司 帧内预测模式的高效视频编码和解码的方法和装置
US8902978B2 (en) * 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
US10171813B2 (en) 2011-02-24 2019-01-01 Qualcomm Incorporated Hierarchy of motion prediction video blocks
PT3136729T (pt) * 2011-06-28 2018-01-25 Samsung Electronics Co Ltd Aparelho para descodificar vídeo com intra previsão
US9699456B2 (en) * 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
US9699457B2 (en) * 2011-10-11 2017-07-04 Qualcomm Incorporated Most probable transform for intra prediction coding
RS61146B1 (sr) * 2011-10-24 2020-12-31 Innotive Ltd Postupak i aparat za dekodiranje slike
KR20130049522A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
KR20130049523A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
US9210438B2 (en) * 2012-01-20 2015-12-08 Sony Corporation Logical intra mode naming in HEVC video coding
EP3217663A4 (en) * 2014-11-06 2018-02-14 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus
WO2016195460A1 (ko) * 2015-06-05 2016-12-08 한양대학교 산학협력단 화면 내 예측에 대한 부호화/복호화 방법 및 장치
US10142627B2 (en) 2015-06-18 2018-11-27 Qualcomm Incorporated Intra prediction and intra mode coding
KR102434479B1 (ko) * 2016-02-16 2022-08-19 삼성전자주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
WO2017142335A1 (ko) * 2016-02-16 2017-08-24 삼성전자 주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
ES2688624R1 (es) * 2016-04-06 2018-12-04 Kt Corporation Método y aparato para procesar señales de vídeo
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
US20170374369A1 (en) * 2016-06-24 2017-12-28 Mediatek Inc. Methods and Apparatuses of Decoder Side Intra Mode Derivation
KR20180014675A (ko) * 2016-08-01 2018-02-09 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
EP3910954A1 (en) 2016-08-26 2021-11-17 SHARP Kabushiki Kaisha Image decoding apparatus, image coding apparatus
WO2018062881A1 (ko) * 2016-09-30 2018-04-05 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10506228B2 (en) * 2016-10-04 2019-12-10 Qualcomm Incorporated Variable number of intra modes for video coding
US11095893B2 (en) * 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
CN117615133A (zh) * 2016-10-14 2024-02-27 世宗大学校产学协力团 影像编码/解码方法及比特流的传送方法
EP3534607A4 (en) * 2016-12-27 2019-11-20 Samsung Electronics Co., Ltd. CODING METHOD AND DEVICE THEREFOR, AND DECODING METHOD AND DEVICE THEREFOR
KR102398612B1 (ko) 2016-12-28 2022-05-17 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
CN117119186A (zh) * 2017-01-02 2023-11-24 Lx 半导体科技有限公司 图像编码/解码设备以及发送图像数据的设备
US11102509B2 (en) * 2017-04-28 2021-08-24 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium storing bit stream
US10742975B2 (en) * 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
CN116248866B (zh) * 2017-07-03 2025-06-10 汉阳大学校产学协力团 利用包含追加区域的分割单位的影像解码方法以及装置
KR102934784B1 (ko) * 2017-07-28 2026-03-05 한국전자통신연구원 영상 처리 방법, 그를 이용한 영상 부호화/복호화 방법 및 그 장치
EP4283991A3 (en) * 2017-09-28 2024-02-28 Samsung Electronics Co., Ltd. Encoding method and device, and decoding method and device
CN119729023A (zh) 2017-10-24 2025-03-28 三星电子株式会社 视频信号处理方法和装置
CN118301336A (zh) * 2017-11-16 2024-07-05 英迪股份有限公司 图像编码/解码方法以及存储比特流的记录介质
KR20190076918A (ko) * 2017-12-22 2019-07-02 주식회사 윌러스표준기술연구소 비디오 신호 처리 방법 및 장치
CN111819845B (zh) * 2018-03-08 2024-09-03 三星电子株式会社 视频解码方法和装置以及视频编码方法和装置
US10491914B2 (en) * 2018-03-29 2019-11-26 Tencent America LLC Transform information prediction
KR20250175004A (ko) * 2018-04-01 2025-12-15 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
US11019355B2 (en) * 2018-04-03 2021-05-25 Electronics And Telecommunications Research Institute Inter-prediction method and apparatus using reference frame generated based on deep learning
EP3562158A1 (en) * 2018-04-27 2019-10-30 InterDigital VC Holdings, Inc. Method and apparatus for combined intra prediction modes
KR101956756B1 (ko) * 2018-06-12 2019-03-11 광운대학교 산학협력단 성분 간 참조 기반의 비디오 신호 처리 방법 및 장치
US10638161B2 (en) * 2018-07-13 2020-04-28 Tencent America LLC Methods and apparatus for most probable mode derivation
WO2020043092A1 (en) * 2018-08-31 2020-03-05 Mediatek Singapore Pte. Ltd. Method and apparatus of intra prediction with mpm generation in image and video processing
KR102822624B1 (ko) 2018-10-05 2025-06-18 엘지전자 주식회사 Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 그 장치

Also Published As

Publication number Publication date
US12355953B2 (en) 2025-07-08
JP7419418B2 (ja) 2024-01-22
JP2025060596A (ja) 2025-04-10
US20210203927A1 (en) 2021-07-01
JP7039731B2 (ja) 2022-03-22
MX2020014195A (es) 2022-01-14
PT3818715T (pt) 2024-06-05
AU2023229601B2 (en) 2024-07-18
AU2019335453A1 (en) 2021-03-25
BR112020027043A2 (pt) 2021-03-30
US20230319266A1 (en) 2023-10-05
US20200389644A1 (en) 2020-12-10
CN117998095A (zh) 2024-05-07
AU2024227227B2 (en) 2026-04-23
KR20240042127A (ko) 2024-04-01
KR20220107089A (ko) 2022-08-01
EP4346211A2 (en) 2024-04-03
SG11202101742UA (en) 2021-03-30
EP3818715B1 (en) 2024-04-03
HUE066408T2 (hu) 2024-07-28
JP2022091799A (ja) 2022-06-21
AU2023229601A1 (en) 2023-10-05
EP3818715A4 (en) 2021-07-21
US11647182B2 (en) 2023-05-09
AU2019335453B2 (en) 2023-06-15
CN117729327A (zh) 2024-03-19
EP4346211A3 (en) 2024-06-19
CN112640467A (zh) 2021-04-09
KR20210002663A (ko) 2021-01-08
CN112640467B (zh) 2023-10-20
PL3818715T3 (pl) 2024-08-12
JP7820036B2 (ja) 2026-02-25
CN117896518A (zh) 2024-04-16
JP2024045200A (ja) 2024-04-02
AU2024227227A1 (en) 2024-10-31
WO2020048463A1 (en) 2020-03-12
CN113612995A (zh) 2021-11-05
CA3111038A1 (en) 2020-03-12
US10972725B2 (en) 2021-04-06
MX389396B (es) 2025-03-20
CN113612995B (zh) 2022-09-09
MY199332A (en) 2023-10-24
US20250358406A1 (en) 2025-11-20
EP3818715A1 (en) 2021-05-12
MX2022000585A (es) 2022-03-04
JP7597481B2 (ja) 2024-12-10
JP2021528888A (ja) 2021-10-21

Similar Documents

Publication Publication Date Title
ES2982416T3 (es) Método y aparato para intrapredicción
AU2023202685B2 (en) Method and apparatus for intra prediction
US11297345B2 (en) Intra prediction mode derivation based on neighboring blocks
WO2020042853A1 (en) Method and apparatus for intra prediction
CA3113370C (en) Intra prediction mode derivation based on neighboring blocks
BR112021003679B1 (pt) Método para construir uma lista de modo mais provável, decodificador e meio de armazenamento legível por computador não transitório
BR122023013801B1 (pt) Método de decodificação, método de codificação, codificador, decodificador e meio de armazenamento
BR122023013795B1 (pt) Método de decodificação, método de codificação, codificador, decodificador e meio de armazenamento
BR122023013789B1 (pt) Método de decodificação, método de codificação, codificador, decodificador e meio de armazenamento