ES2657546T3 - Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo - Google Patents

Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo Download PDF

Info

Publication number
ES2657546T3
ES2657546T3 ES12728346.3T ES12728346T ES2657546T3 ES 2657546 T3 ES2657546 T3 ES 2657546T3 ES 12728346 T ES12728346 T ES 12728346T ES 2657546 T3 ES2657546 T3 ES 2657546T3
Authority
ES
Spain
Prior art keywords
intra
mode
prediction
block
modes
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
ES12728346.3T
Other languages
English (en)
Inventor
Wei-Jung Chien
Marta Karczewicz
Xianglin Wang
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2657546T3 publication Critical patent/ES2657546T3/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/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/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/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
    • 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/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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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
    • 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

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)

Abstract

Un procedimiento de codificación de datos de vídeo, comprendiendo el procedimiento: determinar, para un bloque dentro de una imagen de datos de vídeo, un conjunto de modos de intra-predicción más probables para predecir el bloque de datos de vídeo a partir de los modos de intra-predicción disponibles para predecir el bloque de datos de vídeo, en el que el conjunto de modos de intra-predicción más probables tiene un tamaño que es igual a un número predeterminado que es mayor que o igual a dos, y en el que el tamaño se fija para todos los bloques en la imagen; proporcionar una palabra de código, en el que la palabra de código indica si el modo de intra-predicción real es uno de los modos de intra-predicción más probables, y si no proporciona una indicación del modo de intra-predicción real; y codificar el bloque usando el modo de intra-predicción real, en el que la determinación del conjunto de modos de intra-predicción más probables comprende: determinar un primer modo de intra-predicción para un bloque contiguo izquierdo del bloque; determinar un segundo modo de intra-predicción para un bloque contiguo superior del bloque; cuando el primer modo de intra-predicción es diferente del segundo modo de intra-predicción, incluir tanto el primer modo de intra-predicción como el segundo modo de intra-predicción en el conjunto de modos de intra-predicción más probables; cuando el primer modo de intra-predicción es el mismo que el segundo modo de intra-predicción, y cuando el primer y el segundo modos de intra-predicción comprenden un modo distinto de un modo planar, incluir el primer modo de intra-predicción y el modo planar en el conjunto de modos de intra-predicción más probables; y, cuando el primer modo de intra-predicción es el mismo que el segundo modo de intra-predicción, y cuando el primer y el segundo modos de intra-predicción comprenden un modo planar, incluir el modo planar y un modo DC en el conjunto de modos de intra-predicción más probables.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo CAMPO TÉCNICO
[0001] Esta divulgación se refiere a la codificación de vídeo y, de forma más particular, a la indicación de características de codificación para datos de vídeo codificados.
ANTECEDENTES
[0002] Las capacidades del vídeo digital pueden incorporarse a una amplia gama de dispositivos, incluidos televisores digitales, sistemas de difusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, dispositivos de videoconferencia y similares. Los dispositivos de vídeo digitales implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263 o ITU-T H.264/MPEG-4, parte 10, Codificación de Vídeo Avanzada (AVC) y ampliaciones de dichas normas, para transmitir y recibir información de vídeo digital de manera más eficiente.
[0003] Las técnicas de compresión de vídeo llevan a cabo la predicción espacial (intra-imagen) y/o la predicción temporal (inter-imagen) para reducir o eliminar la redundancia intrínseca en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, una trama, una imagen o un fragmento de vídeo pueden dividirse en bloques de vídeo. Cada bloque de vídeo puede dividirse adicionalmente. Los bloques de vídeo en una trama o fragmento intra-codificado (I) se codifican usando la predicción espacial con respecto a bloques de vídeo contiguos en la misma trama, imagen o fragmento. Los bloques de vídeo de una trama o fragmento inter-codificado (P o B) pueden usar predicción espacial con respecto a macrobloques contiguos de la misma trama o fragmento, o predicción temporal con respecto a otras tramas de referencia. Como se usa en el presente documento, los términos "imágenes" pueden denominarse tramas y las "tramas de referencia" pueden denominarse tramas de referencia.
[0004] La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que se va a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se va a codificar y el bloque predictivo. Un bloque inter-codificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado se codifica de acuerdo con un modo de de intra-codificación y los datos residuales. Para una mayor compresión, los datos residuales pueden transformarse desde el dominio de los píxeles al dominio de las transformaciones, dando como resultado unos coeficientes de transformación residual, que posteriormente se pueden cuantificar. Los coeficientes de transformación cuantificados, dispuestos inicialmente en una matriz bidimensional, pueden escanearse con el fin de generar un vector unidimensional de coeficientes de transformación, y puede aplicarse codificación por entropía para lograr aún más compresión.
[0005] Los documentos que reflejan la técnica anterior son:
- GISLE BJONTEGAARD ET AL: "Definición de nuevos elementos de codificación de Telenor", 10. REUNIÓN VCEG; - ; OSAKA, JP; (GRUPO DE EXPERTOS EN CODIFICACIÓN DE VÍDEO DE ITU-T SG.16), n.° q 15j28, 9 de mayo de 2000 (2000-05-09), XP030003057, ISSN: 0000-0466
- LI (SANTA CLARA UNIV) G ET AL: "Integración del modo plano en la intra-predicción unificada", 3. REUNIÓN DE JCT-VC; 94 REUNIÓN DE MPEG; - ; GUANGZHOU; (EQUIPO DE COLABORACIÓN CONJUNTA SOBRE CODIFICACIÓN DE VÍDEO DE ISO/IECJTC1/SC29/WG11 E ITU-T SG.16); URL:
HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, n.° JCTVC-C111, 2 de octubre de 2010 (2010-10-02), XP030007818, ISSN: 0000-0045
- SANDEEP KANUMURI ET AL: "Mejoras de la Intra-codificación", 4. REUNIÓN DE JCT-VC; 95 REUNIÓN DE MPEG; 20-1-2011 - 28-1-2011; DAEGU; (EQUIPO DE COLABORACIÓN CONJUNTA SOBRE CODIFICACIÓN DE VÍDEO DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16); URL:
HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, n.° JCTVC-D235, 14 de enero de 2011 (2011-01-14), XP030008275, ISSN: 0000-0013
RESUMEN
[0006] En general, esta divulgación describe técnicas para indicación de modos de intra-predicción para codificación de vídeo. Las técnicas de esta divulgación pueden mejorar la eficiencia para la indicación de un modo de codificación de intra-predicción usado para codificación de modo de intra de un bloque de datos de vídeo. Los datos de vídeo incluyen una secuencia de tramas (o imágenes) reproducidas en sucesión rápida para simular el movimiento. Cada una de las tramas puede dividirse en bloques. Las técnicas de esta divulgación incluyen fijar un
5
10
15
20
25
30
35
40
45
50
55
60
65
número de candidatos de modo de intra-predicción más probables a más de o igual a dos para cada bloque dentro de una trama. De esta manera, puede haber una mejora relativa en la eficiencia para el análisis en el procesamiento de descodificación y una reducción en el uso de memoria cuando se usan las técnicas de esta divulgación.
[0007] En un ejemplo, un procedimiento para la codificación de datos de vídeo, comprendiendo el procedimiento determinar, para un bloque de datos de vídeo, un conjunto de modos de intra-predicción más probables tales que el conjunto de modos de intra-predicción más probables tenga un tamaño que sea igual a un número predeterminado que sea mayor o igual a dos. El procedimiento también comprende codificar un valor representativo de un modo de intra-predicción real para el bloque basándose, al menos en parte, en el conjunto de modos de intra-predicción más probables y codificar el bloque usando el modo de intra-predicción real.
[0008] En otro aspecto, un dispositivo para la codificación de datos comprende un codificador de vídeo configurado para determinar, para un bloque de datos de vídeo, un conjunto de modos de intra-predicción más probables tales que el conjunto de modos de intra-predicción más probables tenga un tamaño que sea igual a un número predeterminado que sea mayor o igual a dos. El codificador de vídeo también está configurado para codificar un valor representativo de un modo de intra-predicción real para el bloque basándose al menos en parte en el conjunto de modos de intra-predicción más probables. El codificador de vídeo está además configurado y codifica el bloque usando el modo de intra-predicción real.
[0009] En otro aspecto, un medio legible por ordenador comprende un medio de almacenamiento legible por ordenador que tiene almacenado en el mismo instrucciones que, al ejecutarse, hacen que un procesador de un dispositivo de codificación de vídeo determine, para un bloque de datos de vídeo, un conjunto de modos de intra- predicción más probables tales que el conjunto de modos de intra-predicción más probables tenga un tamaño que sea igual a un número predeterminado que sea mayor que o igual a dos. Las instrucciones además hacen que el procesador codifique un valor representativo de un modo de intra-predicción real para el bloque basándose, al menos en parte, en el conjunto de modos de intra-predicción más probables y codifique el bloque usando el modo de intra-predicción real.
[0010] En otro aspecto, se proporciona un dispositivo que comprende medios para determinar, para un bloque de datos de vídeo, un conjunto de modos de intra-predicción más probables de tal manera que el conjunto de modos de intra-predicción más probables tenga un tamaño que sea igual a un número predeterminado que sea mayor o igual a dos. El aparato también comprende medios para codificar un valor representativo de un modo de intra-predicción real para el bloque basándose al menos en parte en el conjunto de modos de intra-predicción más probables y medios para codificar el bloque usando el modo de intra-predicción real.
[0011] Las técnicas descritas en esta divulgación pueden implementarse en hardware, software, firmware o cualquier combinación de estos. Si se implementa en software, el software puede ejecutarse en un procesador, que puede referirse a uno o más procesadores, tales como un microprocesador, un circuito integrado específico de la aplicación (ASIC), una matriz de puertas programables in situ (FPGA) o un procesador de señales digitales (DSP) u otro tipo de circuito lógico integrado o discreto equivalente. El software que comprende instrucciones para ejecutar las técnicas se puede almacenar inicialmente en un medio legible por ordenador y cargar y ejecutar mediante un procesador.
[0012] En consecuencia, esta divulgación también contempla medios legibles por ordenador que comprenden instrucciones para hacer que un procesador realice cualquiera de una variedad de técnicas descritas en esta divulgación. En algunos casos, el medio legible por ordenador puede formar parte de un producto de programa informático, que puede ponerse a la venta para los fabricantes y/o utilizarse en un dispositivo. El producto de programa informático puede incluir el medio legible por ordenador y, en algunos casos, también puede incluir materiales de embalaje.
[0013] Esta divulgación también se puede aplicar a señales electromagnéticas que llevan información. Por ejemplo, una señal electromagnética puede comprender información relativa al soporte de píxeles completo utilizado para interpolar un valor para un píxel sub-entero de una muestra de referencia. En algunos ejemplos, una señal puede ser generada desde o transmitida por un dispositivo que implementa las técnicas descritas en el presente documento. En otros ejemplos, esta divulgación puede aplicarse a señales que pueden recibirse en un dispositivo que implementa las técnicas descritas en el presente documento.
[0014] Los detalles de uno o más aspectos de la divulgación se exponen en los dibujos adjuntos y la descripción siguiente. Otras características, objetivos y ventajas de las técnicas descritas en esta divulgación resultarán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0015]
La FIG. 1 representa un ejemplo de tres bloques, que incluyen un bloque actual a codificar y dos bloques
5
10
15
20
25
30
35
40
45
50
55
60
65
contiguos.
La FIG. 2 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo que puede utilizar técnicas para codificar datos sintácticos representativos de modos de intra-predicción para bloques de datos de vídeo.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo que puede implementar técnicas para codificar información indicativa de un modo de intra-predicción.
La FIG. 4 es un diagrama de bloques que ilustra un ejemplo de un descodificador de vídeo, que descodifica una secuencia de vídeo codificado.
La FIG. 5 es un diagrama que ilustra un ejemplo de 35 modos de intra-predicción y sus direcciones de predicción correspondientes.
La FIG. 6 es un diagrama que ilustra otro ejemplo de 35 modos de intra-predicción y sus direcciones de predicción correspondientes.
La FIG. 7 es un diagrama de flujo que ilustra un ejemplo de un procedimiento para la indicación de modo de intra-predicción para codificación de vídeo.
La FIG. 8 es un diagrama de flujo que ilustra un ejemplo de un procedimiento para determinar los candidatos al modo de intra-predicción más probables cuando un conjunto de modos de intra-predicción más probables es igual a tres.
DESCRIPCIÓN DETALLADA
[0016] En general, esta divulgación describe técnicas para indicación de modos de intra-predicción para codificación de vídeo. Las técnicas de esta divulgación pueden mejorar la eficiencia para la indicación de un modo de codificación de intra-predicción usado para intra-codificar un bloque de datos de vídeo. Un codificador de vídeo, por ejemplo, puede incluir un conjunto de dos o más modos de intra-predicción candidatos para un bloque actual que incluye dos (o más) modos de intra-predicción más probables basándose en los modos de intra-predicción de bloques contiguos al bloque actual. El conjunto de candidatos puede incluir índices para los dos o más modos de intra-intra-predicción más probables. Como se usa en el presente documento, "modos" se puede usar en general para referirse a "modos de intra-predicción".
[0017] En algunos ejemplos, las técnicas de esta divulgación proporcionan diferentes conjuntos de candidatos de modos de intra-predicción basándose en el tipo de datos de vídeo que se está prediciendo. Por ejemplo, bajo ciertas condiciones, ciertos modos de intra-predicción pueden incluirse como un probable modo de intra-predicción cuando el conjunto de modos de intra-predicción más probables incluye 3 o más modos, tales como un modo planar o DC.
[0018] Los datos de vídeo incluyen una secuencia de tramas (o imágenes) reproducidas en rápida sucesión para simular el movimiento. Cada una de las tramas puede dividirse en bloques. Como se usan en el presente documento, los términos "trama" e "imagen" se pueden usar de forma intercambiable.
[0019] Los codificadores de vídeo codifican datos de vídeo mediante la utilización de redundancia espacial y temporal. Por ejemplo, un codificador de vídeo puede aprovechar la redundancia espacial prediciendo un bloque relativo a los bloques contiguos, codificados previamente. Del mismo modo, un codificador de vídeo puede aprovechar la redundancia temporal prediciendo un bloque en relación con los datos de las tramas codificadas previamente. En particular, el codificador de vídeo predice un bloque actual a partir de datos de un bloque contiguo espacial o de datos de una o más tramas codificadas previamente. A continuación, el codificador de vídeo calcula un valor residual para el bloque como una diferencia entre el valor real para el bloque y el valor predicho para el bloque. El codificador de vídeo usa unidades de predicción (PU) para representar datos de predicción para una unidad de codificación (CU) y unidades de transformación (TU) para representar datos residuales. Los datos residuales para un bloque incluyen valores de diferencia de píxel por píxel en el dominio de píxel (o espacial). El codificador de vídeo puede transformar aún más los datos residuales, que representan los datos en el dominio de transformación.
[0020] Un descodificador de vídeo puede recibir datos codificados para un bloque codificado. Los datos codificados pueden incluir una representación del modo de predicción utilizado para codificar el bloque, así como una indicación de partición de PU para el bloque. De esta manera, el descodificador de vídeo puede usar la misma partición de PU y aplicar el mismo modo de predicción para descodificar el bloque. Para reducir la cantidad de bits consumidos en la indicación del modo de predicción, los dispositivos de codificación de vídeo pueden determinar las probabilidades de los modos de predicción de codificación para un bloque actual basándose en los modos de codificación de los bloques contiguos. La FIG. 1 representa un ejemplo de tres bloques de vídeo: A (4), B (6) y C (8). El bloque C (8) representa un bloque actual codificado, el bloque A (4) representa un bloque contiguo izquierdo codificado previamente en relación con el bloque C (8), y el bloque B (6) representa un bloque contiguo superior codificado
5
10
15
20
25
30
35
40
45
50
55
60
65
previamente en relación con el bloque C (8).
[0021] En el ejemplo de la FIG. 1, los bloques A (4), B (6) y C (8) son bloques de una imagen, trama o fragmento intra-predicho. Un dispositivo de codificación de vídeo, tal como un codificador de vídeo o un descodificador de vídeo, puede determinar dos o más modos de intra-predicción probables para el bloque C (8) basándose en los modos de intra-predicción de los bloques A (4) y B (6). En general, es más probable que se prediga el bloque C usando un modo del bloque A (4) o del bloque B (6). Típicamente, cuando los bloques A (4) y B (6) tienen el mismo modo de intra-predicción, el modo de intra-predicción más probable para el bloque C (8) será el modo de intra- predicción de los bloques A (4) y B (6). Por otro lado, cuando los bloques A (4) y B (6) tienen diferentes modos de intra-predicción, un dispositivo de codificación de vídeo debe determinar si el modo de predicción para el bloque C (8) es más probable que sea el modo de intra-predicción de bloque A (4) o el modo de intra-predicción del bloque B (6).
[0022] Más particularmente, en Codificación de Vídeo de Alta Eficiencia (HEVC) convencional, una tabla de asignación puede usarse para asignar los modos de intra-predicción a los índices de palabras de código. Los índices de palabras en clave pueden ser asignados por otra tabla a códigos de longitud variable (para CAVLC) o valores binarios (para CABAC). Además, para cada bloque, se puede determinar un número de modos más probables, donde a los modos más probables se les pueden asignar los índices más pequeños, donde los índices más pequeños son los más probables y, por lo tanto, se codifican utilizando menos bits. En la HEVC convencional, el número de modos más probables puede variar basándose en si los bloques A (4) y B (6) tienen los mismos o diferentes modos de intra-predicción.
[0023] Esta divulgación proporciona varias técnicas para la mejora de la indicación de modos de intra-predicción para codificación de vídeo. En un ejemplo, en lugar de permitir que un número de modos más probables varíe para cada bloque, como se analizó anteriormente, siempre puede haber un número fijo de modos más probables, que sea al menos dos. Si bien el número de modos más probables puede ser mayor que dos, en estas técnicas, el número de modos más probables es fijo para todos los bloques en una imagen. En otras palabras, un dispositivo de codificación de vídeo puede configurarse para usar un número predeterminado de modos más probables para todos los bloques, y el número predeterminado puede ser mayor o igual a dos.
[0024] En este ejemplo, si los modos de intra-predicción de los bloques A (4) y B (6) son diferentes, y el número predeterminado de modos más probables para el bloque C (8) es dos, entonces los dos modos de intra-predicción más probables para el bloque C (8) pueden corresponder a los modos de intra-predicción de los bloques A (4) y B (6). Sin embargo, si los modos de intra-predicción de los bloques A (4) y B (6) son iguales, el dispositivo de codificación de vídeo puede agregar un segundo modo más probable al conjunto de modos más probables.
[0025] En algunos ejemplos, si los modos de intra-predicción de los bloques A (4) y B (6) son los mismos y el modo es un modo distinto del modo planar, a continuación, el segundo modo más probable para el bloque C (8) se selecciona como modo planar. Por otro lado, si los modos de intra-predicción de los bloques A (4) y B (6) son los mismos y el modo es un modo planar, entonces el segundo modo más probable para el bloque C (8) se selecciona como modo DC. En algunos ejemplos, el modo planar siempre se puede asignar al valor de índice 0.
[0026] Para los ejemplos en los que hay más de dos modos más probables en el número predeterminado de modos más probables, estos modos pueden corresponder a los modos de intra-predicción que son similares en dirección a las direcciones de las direcciones de intra-predicción para los bloques A (4) y B (6).
[0027] Los ejemplos analizados anteriormente se han referido a los modos de intra-predicción para los datos de luminancia. Para los datos de crominancia, esta divulgación propone fijar el número disponible de modos de intra- predicción de modo que ciertos modos de intra-predicción sean siempre modos de intra-predicción candidatos, en algunos ejemplos. Convencionalmente, hay seis modos disponibles para bloques de crominancia: modo vertical, modo horizontal, modo DC, modo planar, modo de predicción basándose en la señal de luma y herencia del modo de predicción de luma. La herencia del modo de predicción de luma permite que el modo de crominancia herede el modo del bloque de luminancia correspondiente. Debido a esto, dos símbolos, o valores de índice, se pueden asignar al mismo modo, por ejemplo, cuando el bloque de luminancia se predice utilizando el modo vertical, horizontal, DC o planar. Efectivamente, esto significa que el bloque de crominancia puede tener solo cinco modos posibles, en lugar de seis. Por lo tanto, hay una señal redundante para al menos un modo en tales situaciones.
[0028] Esta divulgación propone añadir otro modo de intra-predicción para bloques de crominancia cuando una señal redundante está disponible, en algunos ejemplos. Suponiendo que el bloque de luminancia se predice usando uno de modo horizontal, vertical, DC o planar, el modo correspondiente al valor de índice que de otra manera indicaría la herencia del modo de intra-predicción de luma se puede asignar a un modo diferente al modo utilizado para el bloque de luminancia correspondiente. Este modo adicional puede corresponder a un modo que tiene una direccionalidad similar al modo del bloque de luminancia correspondiente que de otro modo no está disponible para el bloque de crominancia.
[0029] De acuerdo con las técnicas de la presente divulgación, un proceso de obtención de ejemplo para los modos
5
10
15
20
25
30
35
40
de intra-predicción de luma puede incluir las siguientes entradas: una ubicación de luma (xB, yB) que especifica una muestra de luma superior izquierda de un bloque actual con respecto a una muestra de luma superior izquierda de una imagen actual del bloque actual; una variable, log2TrafoSize, que especifica el tamaño de la unidad de predicción actual; y, si están disponibles, matrices de variables, IntraPredMode, que se obtienen para las unidades de codificación adyacentes previamente descodificadas en orden de descodificación. La salida de este proceso de obtención se puede denotar con la variable IntraPredMode[xB][yB].
[0030] La tabla 1 especifica un ejemplo de varios modos de intra-predicción de luma, intraPredModeNum, dependiendo de log2TrafoSize, el tamaño de un bloque de predicción actual.
Tabla 1 - Especificación de intraPredModeNum
log2TrafoSize
intraPredModeNum
2
17
3
34
4
34
5
34
6
3
[0031] La variable candModeList[x] define los modos de intra-predicción que están disponibles. La variable NumMPMCand define el número de candidatos de modo más probable (MPM). De acuerdo con las técnicas descritas en el presente documento, el número de candidatos de MPM se fija para todos los bloques en una imagen o trama. Un codificador de vídeo puede configurarse para indicar un valor representativo del número de candidatos de MPM en, por ejemplo, un conjunto de parámetros de secuencia (SPS) para una secuencia de imágenes, un conjunto de parámetros de imagen (PPS) para una imagen individual u otra estructura de datos. Del mismo modo, un descodificador de vídeo puede determinar el número de candidatos de MPM interpretando dichos valores señalados.
[0032] El candModeList[x] y NumMPMCand pueden obtenerse basándose en la presencia y los valores de candIntraPredModeN. Si ninguno de los dos candIntraPredModeN está disponible, entonces el valor de índice 2 se asigna a candModeList[0] y NumMPMCand se establece igual a 1. De lo contrario, si solo está disponible un candIntraPredModeN, entonces este candIntraPredModeN se asigna a candModeList[0] y NumMPMCand se establece igual a 1. Del mismo modo, si ambos candIntraPredModeN son iguales, uno de los candIntraPredModeN se asigna a candModeList[0] y NumMPMCand se establece igual a 1. Si ambos candIntraPredModeN son diferentes, NumMPMCand se establece igual a 2 y ambos candIntraPredModeN se asignan a la lista de modos candidatos, con el menor de los dos candidatos en candModeList[0] y el más grande en candModeList[1]. La Tabla 2 resume cómo se pueden obtener candModeList[x] y NumMPMCand.
Tabla 2 - Especificación de intraPredModeNum
candIntraPredModeN
candModeList[0] NumMPMCand
Ambos no disponibles
2 1
Solo uno disponible
candIntraPredModeN 1
Ambos son lo mismo
candIntraPredModeN 1
Ambos son diferentes
El candIntraPredModeN más pequeño establecido como candModeList[0] y el candIntraPredModeN más grande establecido como candModeList[1] 2
[0033] Puede obtenerse IntraPredMode[xB][yB] aplicando el siguiente procedimiento. Si prev_intra_pred_flag [xB] [yB] es verdadero, IntraPredMode[xB][yB] se establece igual a candModeList[mpm_idx [xB] [yB]]. De lo contrario, IntraPredMode[xB][yB] se obtiene aplicando las siguientes ecuaciones:
lntraPredMode[ xB ][ yB ] = rem intra luma pred mode (1)
para (cklx 0: cklx NukiMIVMCliikI: cklx )
si ( Irtfakrcd Yloclcf xk ]f y B" - caivAlndd xM|Yklxl i. entonces
IntraPredMode[ xB ][ yB ]++
5
10
15
20
25
30
35
40
45
50
55
60
65
En estos ejemplos, la variable rem_intra_pred_mode se indica mediante una binarización de longitud fija con un contexto. La variable cIdx especifica el componente de croma del bloque actual.
[0034] Para indicación de modo de intra-predicción de croma, la HEVC actual permite seis modos incluyendo: vertical, horizontal, DC, planar, predicción de croma basándose en señal de luma, y herencia del modo de predicción de luma. Entre todos estos modos, la herencia del modo de predicción de luma significa que la dirección de predicción de croma es la misma que la dirección de predicción de luma. Debido a esto, algunos símbolos redundantes se eliminan si el modo de luma es vertical, horizontal, DC o planar. Como resultado, las tablas de códigos tienen diferentes tamaños para diferentes modos de predicción de luma.
[0035] Este proceso puede requerir un proceso de descodificación adicional en el análisis y memoria adicional. Primero, para analizar intra_pred_mode, el descodificador tiene que descodificar intra_pred_mode de los bloques contiguos A y B para determinar candIntraPredModeA y candIntraPredModeB. Además, el descodificador tiene que determinar candModeList y NumMPMC. Se requiere memoria adicional porque se necesitan seis bits en una memoria intermedia de línea de descodificador para cada bloque 4x4 para almacenar intra_pred_mode. Además, la codificación de rem_intra_pred_mode no es eficiente debido a la binarización de longitud fija y su modelado de contexto. Además, tener diferentes tamaños de tablas de códigos para el modo de predicción de croma requiere tener un conocimiento previo del modo de predicción de luma antes del análisis del modo de predicción de croma.
[0036] La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de sistema de codificación y descodificación de vídeo 10 que puede usarse para implementar las diversas técnicas descritas en el presente documento. Como se muestra en la FIG. 2, el sistema 10 incluye un dispositivo de origen 12 que transmite datos de vídeo codificados a un dispositivo de destino 14 a través de un canal de comunicación 16. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera de una amplia gama de dispositivos. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender dispositivos de comunicación inalámbrica, tales como microteléfonos inalámbricos, los denominados radioteléfonos celulares o vía satélite, o cualquier dispositivo inalámbrico que pueda comunicar información de vídeo a través de un canal de comunicación 16, donde el canal de comunicación 16 es inalámbrico en este caso.
[0037] Sin embargo, las técnicas de esta divulgación no están limitadas necesariamente limitadas a aplicaciones o configuraciones inalámbricas. Por ejemplo, estas técnicas pueden aplicarse a las radiodifusiones televisivas inalámbricas, a las transmisiones televisivas por cable, a las transmisiones televisivas vía satélite, a las transmisiones de vídeo por Internet, al vídeo digital codificado que está codificado en un medio de almacenamiento y a otros escenarios. Por consiguiente, el canal de comunicación 16 puede comprender cualquier combinación de medios inalámbricos o cableados adecuados para la transmisión de datos de vídeo codificados. Además, el canal de comunicación 16 pretende representar solo una de las muchas maneras en las que un dispositivo de codificación de vídeo puede transmitir datos a un dispositivo de descodificación de vídeo. Por ejemplo, en otras configuraciones del sistema 10, el dispositivo de origen 12 podría generar vídeo codificado para descodificación mediante el dispositivo de destino 14 y almacenar el vídeo codificado en un medio de almacenamiento o servidor de archivos, de modo que el dispositivo de destino 14 pueda acceder al vídeo codificado cuando lo desee.
[0038] En el ejemplo de la FIG. 2, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20, un modulador/desmodulador (módem) 22 y un transmisor 24. El dispositivo de destino 14 incluye un receptor 26, un módem 28, un descodificador de vídeo 30 y un dispositivo de visualización 32. De acuerdo con esta divulgación, el codificador de vídeo 20 del dispositivo de origen 12 puede estar configurado para aplicar las técnicas de codificación de datos sintácticos representativos de modos de intra-predicción para bloques de datos de vídeo. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen 12 puede recibir datos de vídeo desde un origen de vídeo externo 18, tal como una cámara externa. Asimismo, el dispositivo de destino 14 puede mantener interfaces con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
[0039] El sistema ilustrado 10 de la FIG. 2 es simplemente un ejemplo. Las técnicas para codificar datos sintácticos representativos de modos de intra-predicción para bloques de datos de vídeo pueden ser realizadas por cualquier dispositivo de codificación y/o descodificación de vídeo digital. Aunque, en general, las técnicas de esta divulgación se llevan a cabo mediante un dispositivo de codificación de vídeo, las técnicas también pueden llevarse a cabo mediante un codificador/descodificador de vídeo, denominado típicamente "CÓDEC". Además, las técnicas de esta divulgación también pueden llevarse a cabo mediante un preprocesador de vídeo. El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de tales dispositivos de codificación, donde el dispositivo de origen 12 genera datos de vídeo codificados para su transmisión al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12 y 14 pueden funcionar de manera esencialmente simétrica, de modo que cada uno de los dispositivos 12 y 14 incluye componentes de codificación y de descodificación de vídeo. Por lo tanto, el sistema 10 puede dar soporte a una transmisión de vídeo unidireccional o bidireccional entre los dispositivos de vídeo 12, 14, por ejemplo, para la transmisión por flujo de vídeo, la reproducción de vídeo, la difusión de vídeo o la videotelefonía.
[0040] La fuente de vídeo 18 del dispositivo de origen 12 puede incluir un dispositivo de captura de vídeo, tal como
5
10
15
20
25
30
35
40
45
50
55
60
65
una cámara de vídeo, un archivo de vídeo que contiene vídeo grabado previamente y/o vídeo procedente de un proveedor de contenido de vídeo. Como una alternativa adicional, el origen de vídeo 18 puede generar datos, basándose en gráficos de ordenador, como el vídeo de origen, o una combinación de vídeo en directo, vídeo archivado y vídeo generado por ordenador. En algunos casos, si el origen de vídeo 18 es una videocámara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, como se ha mencionado anteriormente, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general, y pueden aplicarse a aplicaciones inalámbricas y/o cableadas. En cada caso, el vídeo capturado, pre-capturado o generado por ordenador puede ser codificado por el codificador de vídeo 20. La información de vídeo codificado puede modularse después mediante el módem 22, de acuerdo con una norma de comunicación, y transmitirse al dispositivo de destino 14 a través del transmisor 24. El módem 22 puede incluir varios mezcladores, filtros, amplificadores u otros componentes diseñados para la modulación de señales. El transmisor 24 puede incluir circuitos diseñados para transmitir datos, incluidos amplificadores, filtros y una o más antenas.
[0041] El receptor 26 del dispositivo de destino 14 recibe información a través del canal 16, y el módem 28 desmodula la información. De nuevo, el proceso de codificación de vídeo puede implementar una o más de las técnicas descritas en el presente documento para codificar datos sintácticos representativos de modos de intra- predicción para bloques de datos de vídeo. La información comunicada a través del canal 16 puede incluir información sintáctica definida por el codificador de vídeo 20, que también es usada por el descodificador de vídeo 30, que incluye elementos sintácticos que describen características y/o el procesamiento de macrobloques y otras unidades codificadas, por ejemplo GOP. El dispositivo de visualización 32 muestra los datos de vídeo descodificados a un usuario y puede comprender cualquiera entre una variedad de dispositivos de visualización, tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0042] En el ejemplo de la FIG. 1, el canal de comunicación 16 puede comprender cualquier medio de comunicación inalámbrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física, o cualquier combinación de medios inalámbricos y cableados. El canal de comunicación 16 puede formar parte de una red basándose en paquetes, tal como una red de área local, una red de área extensa o una red global tal como Internet. El canal de comunicación 16 representa en general cualquier medio de comunicación adecuado, o un conjunto de diferentes medios de comunicación, para transmitir datos de vídeo desde el dispositivo de origen 12 hasta el dispositivo de destino 14, incluyendo cualquier combinación adecuada de medios cableados o inalámbricos. El canal de comunicación 16 puede incluir routers, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[0043] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con una norma de compresión de vídeo, tal como la norma ITU-T H.264, de forma alternativa denominada MPEG-4, Parte 10, Codificación de Vídeo Avanzada (AVC). Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar integrados, cada uno de ellos, con un codificador y un descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos diferentes. Si procede, las unidades de MUX-DEMUX pueden ajustarse al protocolo de multiplexador iTu H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0044] La norma ITU-T H.264/MPEG-4 (AVC) fue formulada por el Grupo de Expertos en Codificación de Vídeo de ITU-T (VCEG), junto al Grupo de Expertos en Imágenes en Movimiento de (MPEG) ISO/IEC, como el producto de una asociación colectiva conocida como el Equipo de Vídeo Conjunto (JVT). En algunos aspectos, las técnicas descritas en esta divulgación pueden ser aplicadas a dispositivos que se ajustan en general a la norma H.264. La norma H.264 se describe en la Recomendación ITU-T H.264, Codificación de Vídeo Avanzada, para los servicios audiovisuales genéricos, por el Grupo de Estudio de la ITU-T, y con fecha de marzo de 2005, y que se puede denominar en el presente documento norma H.264 o memoria descriptiva H.264, o la norma o memoria descriptiva H.264/AVC. El Equipo de Vídeo Conjunto (JVT) continúa trabajando en ampliaciones para la norma H.264/MPEG-4 AVC.
[0045] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden implementarse, cada uno, como cualquiera de entre una variedad de circuitería de codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables sobre el terreno (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de estos. El codificador de vídeo 20 y el descodificador de vídeo 30 pueden incluirse en uno o más codificadores o descodificadores, donde cualquiera de los mismos puede estar integrado como parte de un codificador/descodificador combinado (códec) en una cámara respectiva, ordenador, dispositivo móvil, dispositivo de abonado, dispositivo de radiodifusión, codificador, servidor o similar.
[0046] Una secuencia de vídeo incluye típicamente una serie de tramas de vídeo. Un grupo de imágenes (GOP) comprende en general una serie de una o más tramas de vídeo. Un GOP puede incluir datos sintácticos en una
5
10
15
20
25
30
35
40
45
50
55
60
65
cabecera del GOP, una cabecera de una o más tramas del GOP o en otras ubicaciones, que indican el número de tramas incluidas en el GOP. Cada trama puede incluir datos sintácticos de trama que describen un modo de codificación para la respectiva trama. El codificador de vídeo 20, por ejemplo, puede incluir un conjunto fijo de modos de intra-predicción candidatos más probables para cada bloque en una trama, o cada bloque dentro de cada trama dentro de cada GOP. El conjunto fijo de candidatos de mPm puede incluir dos (o más) modos de intra- predicción más probables basándose en los modos de intra-predicción de bloques contiguos a un bloque actual. Un codificador de vídeo 20 actúa típicamente sobre bloques de vídeo de tramas de vídeo individuales con el fin de codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un bloque, una CU, una PU o una TU. Los bloques de vídeo pueden presentar tamaños fijos o variables y pueden diferir en tamaño de acuerdo con una norma de codificación especificada. Cada trama de vídeo puede incluir una pluralidad de fragmentos. Cada fragmento puede incluir una pluralidad de macrobloques, que pueden disponerse en divisiones, también denominadas subbloques.
[0047] En un ejemplo, la norma ITU-T H.264 soporta intra-predicción en varios tamaños de bloque, tales como 16 por 16, 8 por 8 o 4 por 4 para componentes de luma, y 8x8 para componentes de croma, así como inter-predicción en varios tamaños de bloque, tales como 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 y 4x4 para componentes de luma y tamaños escalados correspondientes para componentes de croma. En esta divulgación, "NxN" y "N por N" pueden usarse de manera intercambiable para hacer referencia a las dimensiones de píxel del bloque en lo que respecta a la dimensión vertical y la dimensión horizontal, por ejemplo 16x16 píxeles o 16 por 16 píxeles. En general, un bloque 16x16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Asimismo, un bloque de tamaño NxN presenta, en general, N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles en un bloque pueden estar ordenados en filas y columnas. Además, no es necesario que los bloques presenten necesariamente el mismo número de píxeles en la dirección horizontal y en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
[0048] Los tamaños de bloque que son inferiores a 16 por 16 pueden denominarse divisiones de un macrobloque de 16 por 16. Los bloques de vídeo pueden comprender bloques de datos de píxeles en el dominio de píxeles, o bloques de coeficientes de transformación en el dominio de transformación, por ejemplo, tras la aplicación de una transformación, tal como una transformación discreta del coseno (DCT), una transformación de números enteros, una transformación de ondículas o una transformación conceptualmente similar a los datos residuales de bloques de vídeo que representan diferencias de píxeles entre bloques de vídeo codificados y bloques de vídeo predictivos. En algunos casos, un bloque de vídeo puede comprender bloques de coeficientes de transformación cuantificados en el dominio de transformación.
[0049] Los bloques de vídeo más pequeños pueden proporcionar una mejor resolución y pueden usarse en ubicaciones de una trama de vídeo que incluyen altos niveles de detalle. En general, los macrobloques y las diversas divisiones, denominadas en ocasiones sub-bloques, pueden considerarse bloques de vídeo. Además, un fragmento puede considerarse una pluralidad de bloques de vídeo, tales como macrobloques y/o sub-bloques. Cada fragmento puede ser una unidad independientemente descodificable de una trama de vídeo. De forma alternativa, las propias tramas pueden ser unidades descodificables, o pueden definirse otras partes de una trama como unidades descodificables. El término «unidad codificada» puede referirse a cualquier unidad independientemente descodificable de una trama de vídeo, tal como una trama completa, un fragmento de una trama, un grupo de imágenes (GOP), denominado también secuencia, u otra unidad independientemente descodificable definida de acuerdo con unas técnicas de codificación aplicables.
[0050] En la actualidad se están dedicando esfuerzos en la elaboración de una nueva norma de codificación de vídeo, conocida actualmente como Codificación de Vídeo de Alta Eficiencia (HEVC). La próxima norma HVEC también puede denominarse H.265. Los esfuerzos realizados en la normalización se basan en un modelo de un dispositivo de codificación de vídeo denominado Modelo de Prueba de HEVC (HM). El HM supone varias capacidades de los dispositivos de codificación de vídeo respecto a dispositivos de acuerdo con, por ejemplo, la norma ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modos de codificación de intra-predicción, el HM proporciona hasta treinta y tres modos de codificación de intra-predicción, por ejemplo, basándose en el tamaño de un bloque que se está codificando con intra-predicción.
[0051] HM hace referencia a un bloque de datos de vídeo con el término unidad de codificación (CU). Los datos sintácticos de un flujo de bits pueden definir la unidad de codificación más grande (LCU), que es la unidad de codificación de mayor tamaño en lo que respecta al número de píxeles. En general, una CU tiene un propósito similar a un macrobloque de la norma H.264, excepto en que una CU no tiene una distinción de tamaño. Por lo tanto, una CU puede dividirse en varias sub-CU. En general, las referencias de esta divulgación a una CU pueden referirse a la unidad de codificación más grande de una imagen o a una sub-CU de una LCU. Una LCU puede dividirse en varias sub-CU, y cada sub-CU puede dividirse en varias sub-CU. Los datos sintácticos para un flujo de bits pueden definir un número máximo de veces en que puede dividirse una LCU, que se denomina profundidad de CU. Por consiguiente, un flujo de bits también puede definir una unidad de codificación mínima (SCU). Esta divulgación también utiliza el término "bloque" para referirse a cualquiera de entre una CU, una unidad de predicción (PU) o una unidad de transformación (TU).
5
10
15
20
25
30
35
40
45
50
55
60
65
[0052] Una LCU puede asociarse a una estructura de datos en árbol cuaternario. En general, una estructura de datos en árbol cuaternario incluye un nodo por cada CU, donde un nodo raíz corresponde a la LCU. Si una CU se divide en cuatro sub-CU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las sub-CU. Cada nodo de la estructura de datos de árbol cuádruple puede proporcionar datos sintácticos para la CU correspondiente. Por ejemplo, un nodo en el árbol cuaternario puede incluir un indicador de división, que indica si la CU correspondiente al nodo está dividida o no en varias sub-CU. Los elementos sintácticos para una CU pueden definirse de manera recursiva y pueden depender de si la CU está dividida o no en varias subCU.
[0053] Una CU que no está dividida puede incluir una o más unidades de predicción (PU). En general, una PU representa la totalidad o una parte de la CU correspondiente, e incluye datos para recuperar una muestra de referencia para la PU. Por ejemplo, cuando la PU está codificada en modo de intra, la PU puede incluir datos que describen un modo de intra-predicción para la PU. Por ejemplo, de acuerdo con las técnicas de esta divulgación, un conjunto fijo de modos de intra-predicción candidatos más probables para cada PU en una CU. El conjunto fijo de candidatos de MPM puede incluir dos o más modos de intra-predicción candidatos basándose en los modos de intra- predicción de bloques contiguos a un bloque actual. Como otro ejemplo, cuando la PU está codificada de modo de inter, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, con una precisión de un cuarto de píxel o una precisión de un octavo de píxel), una trama de referencia a la que apunta el vector de movimiento y/o una lista de referencia (por ejemplo, lista 0 o lista 1) para el vector de movimiento. Los datos para la CU que definen la(s) PU también pueden describir, por ejemplo, una división de la CU en una o más PU. Los modos de división pueden diferir en función de si la CU está sin codificar, codificada en el modo de intra-predicción o codificada en el modo de inter-predicción.
[0054] Una CU que presenta una o más PU también puede incluir una o más unidades de transformación (TU). Tras la predicción utilizando una PU, un codificador de vídeo puede calcular un valor residual para la parte de la CU correspondiente a la PU. Un conjunto de valores residuales puede transformarse, escanearse y cuantificarse para definir un conjunto de coeficientes de transformación. La TU define una estructura de datos que incluye los coeficientes de transformación. Una TU no está necesariamente limitada al tamaño de una PU. Por lo tanto, las TU pueden ser más grandes o más pequeñas que las PU correspondientes para la misma CU. En algunos ejemplos, el tamaño máximo de una TU puede corresponder al tamaño de la CU correspondiente.
[0055] De acuerdo con las técnicas de esta divulgación, el codificador de vídeo 20 puede codificar ciertos bloques de datos de vídeo usando codificación de modo de intra-predicción, y proporcionar información que indica un modo de intra-predicción seleccionado utilizado para codificar el bloque. El codificador de vídeo 20 puede codificar mediante intra-predicción bloques de cualquier tipo de trama o fragmento utilizando un modo de intra-predicción, por ejemplo, tramas I o fragmentos I, además de tramas P o fragmentos P y tramas B o fragmentos B. Cuando el codificador de vídeo 20 determina que un bloque debe codificarse mediante modo de intra-predicción, el codificador de vídeo 20 puede realizar un análisis de distorsión de velocidad para seleccionar un modo de codificación de intra- predicción más apropiado. Por ejemplo, el codificador de vídeo 20 puede calcular valores de distorsión de velocidad para uno o más modos de codificación de intra-predicción, y seleccionar uno de los modos que tienen características de distorsión de velocidad aceptables.
[0056] El codificador de vídeo 20 también se puede configurar para determinar un contexto de codificación para el bloque. El contexto puede incluir varias características del bloque tales como, por ejemplo, un tamaño del bloque, que puede determinarse en términos de dimensiones de píxeles, tipo de unidad de predicción (PU) tal como, en el ejemplo de HEVC, 2Nx2N, Nx2N, 2NxN, NxN, tipos de intra-predicción de corta distancia (SDIP) tales como 2NxN/2, N/2x2N, 2Nx1, 1x2N, un tipo de macrobloque en el ejemplo de H.264, una profundidad de unidad de codificación (CU) para el bloque, u otras medidas de tamaño para un bloque de datos de vídeo. En algunos ejemplos, el contexto puede corresponder a cómo alguno o todos los modos de intra-predicción para un bloque contiguo superior, un bloque contiguo izquierdo, un bloque contiguo superior izquierdo, un bloque contiguo superior derecho u otros bloques contiguos. En algunos ejemplos, el contexto puede incluir tanto modos de intra-predicción para uno o más bloques como información de tamaño para el bloque actual que se está codificando.
[0057] En cualquier caso, el codificador de vídeo 20 puede incluir datos de configuración que asignan el contexto para el bloque a diversas características de codificación para el bloque actual. Por ejemplo, basándose en el contexto del bloque, los datos de configuración pueden indicar uno o más modos de intra-predicción más probables. De acuerdo con las técnicas de esta divulgación, el codificador de vídeo 20 puede determinar uno o más modos de codificación más probables para un bloque, basándose en un contexto de codificación para el bloque, así como una tabla de índices de modos de intra y una tabla de palabras codificadas basándose en el contexto de codificación para el bloque. La tabla de palabras de código puede comprender una tabla de códigos de longitud variable (VLC) para CAVCL o una tabla de binarización para codificación aritmética binaria adaptativa al contexto (CABAC). En CABAC, el codificador de vídeo 20 puede además codificar en aritmética binaria un valor binario seleccionado de la tabla. Después de seleccionar el modo de intra-predicción a usar para codificar el bloque, el codificador de vídeo 20
5
10
15
20
25
30
35
40
45
50
55
60
65
puede determinar si el modo de intra-predicción seleccionado es el modo de intra-predicción más probable para el bloque. Si el modo seleccionado es el modo más probable, el codificador de vídeo 20 puede indicar el modo de intra- predicción usando una palabra de código de un solo bit (por ejemplo, "0" o "1"). Suponiendo sin pérdida de generalidad que la palabra de código de un solo bit tiene un valor de "0" y que la tabla de palabras de código es una tabla de VLC, otras palabras de código en la tabla de VLC pueden comenzar con "1" para evitar violar los requisitos de prefijo de VLC (es decir, que ninguna palabra de código en la tabla sea un prefijo de otra palabra de código en la tabla). En ejemplos en los que el modo de intra-predicción seleccionado no es uno de los modos más probables, el codificador de vídeo 20 puede indicar el modo de intra-predicción real. En algunos ejemplos, se puede establecer un indicador que indique que el modo de intra-predicción real no se incluye en la lista de candidatos de modos de intra- predicción más probables.
[0058] El codificador de vídeo 20 puede, en algunos ejemplos, estar configurado para comenzar el análisis para la selección de un modo de codificación de intra-predicción con el modo de codificación más probable, basándose en el contexto. Cuando el modo de codificación más probable alcanza características de distorsión de velocidad adecuadas, en algunos ejemplos, el codificador de vídeo 20 puede seleccionar el modo de codificación más probable. En otros ejemplos, el codificador de vídeo 20 no necesita comenzar el proceso de selección con el modo de codificación más probable.
[0059] Tras una codificación intra-predictiva o inter-predictiva para generar datos predictivos y datos residuales, y tras cualquier transformación (tal como la transformación de número entero 4x4 u 8x8 usada en la norma H.264/AVC o una transformación discreta del coseno DCT) para generar coeficientes de transformación, puede llevarse a cabo la cuantificación de los coeficientes de transformación. La cuantificación se refiere en general a un proceso en el que los coeficientes de transformación se cuantifican para reducir posiblemente la cantidad de datos utilizados para representar los coeficientes. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos o a la totalidad de los coeficientes. Por ejemplo, un valor de n bits puede redondearse a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
[0060] Tras la cuantificación, puede llevarse a cabo la codificación por entropía de los datos cuantificados, por ejemplo de acuerdo con la codificación de longitud variable adaptativa al contenido (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC) u otra metodología de codificación por entropía. Una unidad de procesamiento configurada para la codificación por entropía, u otra unidad de procesamiento, puede desempeñar otras funciones de procesamiento, tales como la codificación de coordenada diferencial cero de coeficientes cuantificados y/o la generación de información sintáctica, tal como valores de patrón de bloque codificado (CBP), tipo de macrobloque, modo de codificación, tamaño máximo de macrobloque para una unidad codificada (tal como una trama, un fragmento, un macrobloque o una secuencia) o similar.
[0061] El descodificador de vídeo 30 puede finalmente recibir datos de vídeo codificados, por ejemplo, desde el módem 28 y el receptor 26. De acuerdo con las técnicas de esta divulgación, el descodificador de vídeo 30 puede recibir una palabra de código representativa de un modo de intra-predicción usado para codificar un bloque de datos de vídeo. El descodificador de vídeo 30 puede configurarse para determinar un contexto de codificación para el bloque de una manera sustancialmente similar al codificador de vídeo 20. Además, el descodificador de vídeo 30 puede incluir datos de configuración similares al codificador de vídeo 20, por ejemplo, indicaciones de un modo de codificación más probable, una tabla de índices de modos de intra-predicción y una tabla de VLC para cada contexto de codificación.
[0062] Cuando se utiliza un modo de intra-predicción más probable, si la palabra de código comprende una palabra de código de un solo bit, el descodificador de vídeo 30 puede determinar que el modo de intra-predicción utilizado para codificar el bloque codificado era el modo de intra-predicción más probable. Por supuesto, como se analizó anteriormente, la palabra de código de un solo bit no debería ser un prefijo de las palabras de código de la tabla de VLC. En consecuencia, si la palabra de código recibida no es la palabra de código de un solo bit, el descodificador de vídeo 30 puede determinar el modo de intra-predicción usado para codificar el bloque de datos de vídeo de una manera en general recíproca a la del codificador de vídeo 20.
[0063] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden implementarse, cada uno, como cualquiera entre una amplia variedad de circuitería de codificadores o descodificadores adecuados, según corresponda, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de compuertas programables sobre el terreno (FPGA), circuitería de lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cada uno entre el codificador de vídeo 20 y el descodificador de vídeo 30 puede estar incluido en uno o más codificadores o descodificadores, cada uno de los cuales puede estar integrado como parte de un codificador/descodificador (CÓDEC) de vídeo combinado. Un aparato que incluye un codificador de vídeo 20 y/o un descodificador de vídeo 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
[0064] La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo 20 que puede implementar técnicas para codificar información indicativa de un modo de intra-predicción, y que puede usarse para implementar las diversas técnicas descritas anteriormente. El codificador de vídeo 20 puede realizar la intra e inter
5
10
15
20
25
30
35
40
45
50
55
60
65
codificación de bloques dentro de tramas de vídeo, incluyendo macrobloques, o particiones o sub-particiones de macrobloques. La intra-codificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo en una trama de vídeo dada. La inter-codificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de tramas adyacentes de una secuencia de vídeo. El modo de intra (modo I) puede referirse a cualquiera de varios modos de compresión con base espacial, y los modos de inter tales como predicción unidireccional (modo P) o predicción bidireccional (modo B), pueden referirse a cualquiera de varios modos de compresión con base temporal. Aunque los componentes para la codificación de modo de inter se representan en la FIG. 3, se debe entender que el codificador de vídeo 20 puede incluir además componentes para la codificación de modo de intra. Sin embargo, tales componentes no se ilustran en aras de la brevedad y la claridad.
[0065] Como se muestra en la FIG. 3, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de una trama de vídeo a codificar. En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una unidad de compensación de movimiento 44, una unidad de estimación de movimiento 42, una memoria 64, un sumador 50, una unidad de procesamiento de transformación 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye además la unidad de cuantificación inversa 58, la unidad de transformación inversa 60 y el sumador 62. También puede incluirse un filtro de eliminación de pixelado para filtrar los límites de bloque a fin de eliminar distorsiones de pixelado del vídeo reconstruido. Si se desea, el filtro de eliminación de pixelado filtrará típicamente la salida del sumador 62.
[0066] Durante el proceso de codificación, el codificador de vídeo 20 recibe una trama o un fragmento de vídeo que va a codificarse. La trama o el fragmento puede estar dividido en múltiples bloques de vídeo. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 llevan a cabo una codificación de inter- predictiva del bloque de vídeo recibido con respecto a uno o más bloques de uno o más tramas de referencia para proporcionar una compresión temporal. La unidad de intra-predicción 46 puede llevar a cabo una codificación intra- predictiva del bloque de vídeo recibido con respecto a uno o más bloques contiguos de la misma trama o fragmento que el bloque que va a codificarse para proporcionar compresión espacial.
[0067] La unidad de selección de modo 40 puede seleccionar una de los modos de codificación, intra o inter, por ejemplo, basándose en los resultados de errores y basándose en un tipo de trama o fragmento para la trama o fragmento que incluye un bloque actual que va a codificarse, y proporciona el bloque intra-codificado o intercodificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para su uso como una trama de referencia. En general, la intra-predicción implica la predicción de un bloque actual con respecto a bloques contiguos codificados previamente, mientras que la inter-predicción implica la estimación de movimiento y la compensación de movimiento para predecir temporalmente el bloque actual.
[0068] La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 representan los elementos de inter-predicción del codificador de vídeo 20. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar sumamente integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento es el proceso de generar vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de un bloque predictivo de una trama de referencia predictiva (u otra unidad codificada) con respecto al bloque actual que está codificándose en la trama actual (u otra unidad codificada). Un bloque predictivo es un bloque que se revela como estrechamente coincidente con el bloque a codificar en lo que respecta a la diferencia de píxeles, que puede determinarse mediante la suma de una diferencia absoluta (SAD), una suma de diferencia de cuadrados (SSD) u otras métricas de diferencia. Un vector de movimiento también puede indicar el desplazamiento de una partición de un macrobloque. La compensación de movimiento puede implicar extraer o generar el bloque predictivo basándose en el vector de movimiento determinado por la estimación de movimiento. De nuevo, la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden integrarse funcionalmente, en algunos ejemplos.
[0069] La unidad de estimación de movimiento 42 calcula un vector de movimiento para el bloque de vídeo de una trama inter-codificada mediante la comparación del bloque de vídeo con los bloques de vídeo de una trama de referencia en la memoria de tramas de referencia 64. La unidad de compensación de movimiento 44 también puede interpolar píxeles sub-enteros de la trama de referencia, por ejemplo, una trama I o una trama P. La norma ITU H.264, por ejemplo, describe dos listas: la lista 0, que incluye las tramas de referencia que tienen un orden de visualización anterior a la trama actual que se está codificando, y la lista 1, que incluye las tramas de referencia que tienen un orden de visualización posterior a la trama actual que se está codificando. Por lo tanto, los datos almacenados en la memoria de tramas de referencia 64 pueden organizarse de acuerdo con estas dos listas.
[0070] La unidad de estimación de movimiento 42 compara bloques de una o más tramas de referencia de la memoria de tramas de referencia 64 con un bloque a codificar de una trama actual, por ejemplo, una trama P o una trama B. Cuando las tramas de referencia en la memoria de tramas de referencia 64 incluyen valores para píxeles sub-enteros, un vector de movimiento calculado por la unidad de estimación de movimiento 42 puede referirse a una ubicación de píxel sub-entero de una trama de referencia. La unidad de estimación de movimiento 42 y/o la unidad de compensación de movimiento 44 también puede configurarse para calcular valores de posiciones de píxeles subenteros de tramas de referencia almacenados en la memoria de tramas de referencia 64 si no hay valores de
5
10
15
20
25
30
35
40
45
50
55
60
65
posiciones de píxeles sub-enteros almacenados en la memoria de tramas de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44. El bloque de trama de referencia identificado por un vector de movimiento puede denominarse un bloque predictivo. La unidad de compensación de movimiento 44 puede calcular los datos de predicción basándose en el bloque inter-predictivo.
[0071] La unidad de intra-predicción 46 puede intra-predecir un bloque actual, de forma alternativa a la interpredicción llevada a cabo por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se ha descrito anteriormente. En particular, la unidad de intra-predicción 46 puede determinar un modo de intra-predicción que se va a utilizar para codificar un bloque actual. En algunos ejemplos, la unidad de intra-predicción 46 puede codificar un bloque actual usando varios modos de intra-predicción, por ejemplo, durante diferentes pases de codificación, y la unidad de intra-predicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar una modo adecuado de intra-predicción para utilizar a partir de los modos probados. Por ejemplo, la unidad de intra-predicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intra-predicción probadas, y seleccionar el modo de intra-predicción que tenga las mejores características de velocidad-distorsión entre los modos probados. El análisis de velocidad- distorsión determina, en general, una magnitud de distorsión (o error) entre un bloque codificado y un bloque original no codificado que se codificó para generar el bloque codificado, así como una velocidad de bits (es decir, un número de bits) utilizada para generar el bloque codificado. La unidad de intra-predicción 46 puede calcular razones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar qué modo de intra- predicción presenta el mejor valor de velocidad-distorsión para el bloque.
[0072] En cualquier caso, tras seleccionar un modo de intra-predicción para un bloque, la unidad de intra-predicción 46 puede proporcionar información que indica el modo de intra-predicción seleccionado para el bloque, a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información que indica el modo de intra-predicción seleccionado de acuerdo con las técnicas de esta divulgación. Como se ilustra en la FIG. 3, el codificador de vídeo 20 puede incluir datos de configuración 66, que pueden incluir una pluralidad de tablas de índices de modo de intrapredicción y una pluralidad de tablas de índices de palabras de código (también denominadas tablas de asignación de palabras de código), definiciones de contextos de codificación para varios bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índices de modos de intrapredicción y una tabla de índices palabras de código para usar en cada uno de los contextos.
[0073] En los ejemplos donde el número de modos de intra-predicción varía basándose en el tamaño de bloque, los datos de configuración 66 pueden incluir diferentes tablas para diferentes tamaños de bloques. Por consiguiente, un contexto para codificar una indicación de un modo de intra-predicción usado para codificar un bloque puede incluir un tamaño del bloque, así como modos de codificación usados para codificar bloques contiguos. La unidad de codificación por entropía 56 puede seleccionar la tabla de índices de modos y la tabla de asignación de palabras de código usada para seleccionar una palabra de código representativa del modo de intra-predicción seleccionado usado para codificar el bloque basándose en el contexto para el bloque. Además, las tablas de índices de modo para bloques de un tamaño particular pueden tener números de entradas iguales a la cantidad de modos de intra- predicción para bloques de ese tamaño. Por lo tanto, las tablas de índices de modo para bloques de tamaño 4x4 pueden tener 17 entradas, las tablas de índices de modo para bloques de tamaño 8x8, 16x16 y 32x32 pueden tener 34 entradas, y las tablas de índices de modo para bloques de tamaño 64x64 pueden tener 5 entradas. Otros tamaños de bloques, por ejemplo, 128x128, también pueden tener un número determinado de modos de intra- predicción disponibles.
[0074] Los modos de intra-predicción disponibles para bloques de tamaño 8x8, 16x16 y 32x32 pueden ser el mismo, y por lo tanto, se pueden usar las mismas tablas de índices de modo para bloques de tamaños 8x8, 16x16 y 32x32. Aunque los mismos modos pueden ser posibles para bloques de estos tamaños, la probabilidad de utilizar un modo particular para codificar un bloque puede variar basándose en el tamaño del bloque. En consecuencia, la unidad de codificación por entropía 56 puede determinar una tabla de asignación de palabras de código para una tabla de índices de modos particular basándose en el tamaño del bloque para el cual se debe indicar un modo de intra- predicción, en algunos ejemplos.
[0075] Por ejemplo, el codificador de vídeo 20 determina el conjunto de modos más probables. La unidad de intra- predicción 46 puede determinar un modo de intra-predicción real de bloques contiguos del bloque actual. El codificador de vídeo 20 también puede configurarse para determinar un primer modo de intra-predicción para un bloque contiguo izquierdo del bloque, determinar un segundo modo de intra-predicción para un bloque contiguo superior del bloque, y cuando el primer modo de intra-predicción es diferente del segundo modo de intra-predicción, incluir tanto el primer modo de intra-predicción como el segundo modo de intra-predicción en el conjunto de modos de intra-predicción más probables. Por ejemplo, con referencia a la FIG. 1, la unidad de intra-predicción 46 puede determinar modos de intra-predicción reales usados para los bloques contiguos A (4) y B (6) con respecto al bloque actual C (8). Basándose en los modos de intra-predicción usados para los bloques contiguos A (4) y B (6), la unidad de intra-predicción 46 determina los modos más probables para el bloque C (8). La unidad de intra-predicción 46 puede comparar el modo de intra-predicción real usado para el bloque contiguo A (4) con el modo de intra-predicción real usado para el bloque contiguo B (6). Basándose en esta comparación, se puede incluir un modo de intra-
5
10
15
20
25
30
35
40
45
50
55
60
65
predicción particular, como el modo planar, en el conjunto de modos más probables para el bloque C (8). La unidad de intra-predicción 46 también puede determinar un modo real a usar para intra-predecir el bloque actual C (8).
[0076] Cuando el primer modo de intra-predicción es el mismo que el segundo modo de intra-predicción, y cuando el primer y segundo modos de intra-predicción comprenden un modo que no sea un modo planar, la unidad de intra- predicción 46 incluye el modo planar en el conjunto de modos de intra-predicción más probables. En otro ejemplo, cuando el primer modo de intra-predicción es el mismo que el segundo modo de intra-predicción, y cuando el primer y segundo modos de intra-predicción comprenden un modo planar, la unidad de intra-predicción 46 incluye el modo planar y un modo DC en el conjunto de modos de intra-predicción más probables.
[0077] En otro ejemplo, cuando el bloque actual comprende un bloque de luminancia, el codificador de vídeo 20 determina, para un bloque de crominancia correspondiente al bloque de luminancia, una asignación de un conjunto de valores a un conjunto de modos de intra-predicción, con el conjunto de modos de intra-predicción que comprende modo horizontal, modo vertical, modo planar, modo DC y modo de predicción de señal de luma. Cuando el modo de intra-predicción real para el bloque de luminancia comprende un modo distinto al modo horizontal, modo vertical, modo planar y modo DC, el conjunto de modos de intra-predicción comprende además una reutilización del modo de intra-predicción de luma asignado a partir de un primer valor del conjunto de valores. Cuando el modo de intra- predicción real para el bloque de luminancia comprende uno de modo horizontal, modo vertical, modo planar y modo DC, el conjunto de modos de intra-predicción comprende además un modo distinto al modo horizontal, modo vertical, modo planar y modo DC asignados a partir del primer valor del conjunto de valores; el codificador de vídeo 20 codifica un valor representativo de un modo de intra-predicción real para el bloque de crominancia basándose en la asignación del conjunto de valores al conjunto de modos.
[0078] En otro ejemplo, la unidad de intra-predicción 46 determina una dirección de predicción del modo de intra- predicción real e incluye al menos un modo de intra-predicción que tiene una dirección de predicción cercana a la dirección de predicción del modo de intra-predicción real en el conjunto de modos de intra-predicción más probables.
[0079] En otro ejemplo, cuando el tamaño del conjunto de modos de intra-predicción más probables es igual a tres, la unidad de intra-predicción 46 determina una dirección de predicción de un primer modo de intra-predicción y compara la dirección de predicción del primer modo de intra-predicción con las direcciones de predicción de uno o más modos de intra-predicción disponibles distintos. La unidad de intra-predicción 46 incluye el primer modo de intra-predicción en el conjunto de modos de intra-predicción más probables. Además, basándose en la comparación, la unidad de intra-predicción 46 incluye un segundo y un tercer modos de intra-predicción del uno o más modos de intra-predicción disponibles en el conjunto de modos de intra-predicción más probables, en el que el segundo y el tercer modos de intra-predicción tienen direcciones de predicción que se determina que están más cerca de la dirección de predicción del primer modo de intra-predicción.
[0080] Después de la predicción de un bloque actual, por ejemplo, usando intra-predicción o inter-predicción, el codificador de vídeo 20 puede formar un bloque de vídeo residual restando los datos de predicción calculados por la unidad de compensación de movimiento 44 o la unidad de intra-predicción 46 del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de procesamiento de transformaciones 52 aplica una transformación, tal como una transformación discreta del coseno (DCT) o una transformación conceptualmente similar al bloque residual, generando un bloque de vídeo que comprende valores residuales de coeficientes de transformación. La unidad de procesamiento de transformación 52 puede llevar a cabo otras transformaciones, tales como las definidas por la norma H.264, que son conceptualmente similares a la DCT. También podrían usarse transformaciones de ondículas, transformaciones de enteros, transformaciones de sub-bandas u otros tipos de transformaciones. En cualquier caso, la unidad de procesamiento de transformaciones 52 aplica la transformación al bloque residual, generando un bloque de coeficientes de transformación residuales. La transformación puede convertir la información residual, desde un dominio de valores de píxel a un dominio de transformaciones, tal como un dominio de frecuencia. La unidad de cuantificación 54 cuantifica los coeficientes de transformación residuales para reducir todavía más la velocidad de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos o a la totalidad de los coeficientes. El grado de cuantificación puede modificarse ajustando un parámetro de cuantificación.
[0081] Tras la cuantificación, la unidad de codificación por entropía 56 realiza la codificación por entropía de los coeficientes de transformación cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede realizar codificación de longitud variable adaptativa al contenido (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC) u otra técnica de codificación por entropía. Tras la codificación por entropía realizada por la unidad de codificación por entropía 56, el vídeo codificado puede transmitirse a otro dispositivo o archivarse para su posterior transmisión o recuperación. En el caso de una codificación aritmética binaria adaptativa al contexto, el contexto puede basarse en tamaños de bloque y/o bloques contiguos.
[0082] En algunos casos, la unidad de codificación por entropía 56 u otra unidad de codificador de vídeo 20 pueden estar configuradas para realizar otras funciones de codificación, además de la codificación por entropía y la codificación del modo de intra-predicción como se ha descrito anteriormente. Por ejemplo, la unidad de codificación por entropía 56 puede estar configurada para determinar los valores de patrón de bloque codificado (CBP) para los
5
10
15
20
25
30
35
40
45
50
55
60
65
bloques y particiones. Además, en algunos casos, la unidad de codificación por entropía 56 puede realizar una codificación de longitud de ejecución de los coeficientes en un macrobloque o partición del mismo. En particular, la unidad de codificación por entropía 56 puede aplicar un escaneado en zigzag u otro patrón de escaneado para escanear los coeficientes de transformación en un macrobloque o partición y codificar secuencias de ceros para una mayor compresión. La unidad de codificación por entropía 56 también puede construir la información de cabecera con los elementos sintácticos adecuados para la transmisión en el flujo de bits de vídeo codificado.
[0083] La unidad de cuantificación inversa 58 y la unidad de transformación inversa 60 aplican la cuantificación inversa y la transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para su uso posterior como un bloque de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las tramas de la memoria de tramas de referencia 64. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles sub-enteros y usarlos en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción compensado por movimiento generado por la unidad de compensación de movimiento 44 para generar un bloque de vídeo reconstruido para su almacenamiento en la memoria de tramas de referencia 64. El bloque de vídeo reconstruido puede ser usado por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para inter-codificar un bloque en una trama de vídeo posterior.
[0084] De esta manera, el codificador de vídeo 20 representa un ejemplo de un codificador de vídeo configurado para determinar uno o más modos de codificación de intra-predicción más probables para un bloque actual de datos de vídeo basándose en un contexto de codificación para el bloque actual, seleccionar una tabla de palabras de código basándose en el contexto del bloque actual, en el que la tabla de palabras de código comprende una pluralidad de palabras de código de longitud variable correspondientes a índices de palabras de código que corresponden a modos de intra-predicción distintos del (de los) modo(s) de intra-predicción más probables basándose en el contexto, codificar el bloque actual utilizando uno de los modos de intra-predicción que no sean el modo de codificación de intra-predicción más probable, determinar uno de los índices de palabras de código que corresponda a uno de los modos de intra-predicción utilizando la tabla de palabras de código, y generar un palabra de código de la tabla seleccionada de palabras de código, en el que la palabra de código corresponda a uno de los índices de palabras de código.
[0085] La FIG. 4 es un diagrama de bloques que ilustra un ejemplo de descodificador de vídeo 30, que descodifica una secuencia de vídeo codificado, y que puede usarse para implementar las diversas técnicas descritas en el presente documento. En el ejemplo de la FIG. 3, el descodificador de vídeo 30 incluye una unidad de descodificación por entropía 70, una unidad de compensación de movimiento 72, una unidad de intra-predicción 74, una unidad de cuantificación inversa 76, una unidad de transformación inversa 78, una memoria 82 y un sumador 80. En algunos ejemplos, el descodificador de vídeo 30 puede llevar a cabo una pasada de descodificación en general recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 (FIG. 3). La unidad de compensación de movimiento 72 puede generar datos de predicción basándose en vectores de movimiento recibidos desde la unidad de descodificación por entropía 70.
[0086] La unidad de compensación de movimiento 72 puede usar vectores de movimiento recibidos en el flujo de bits para identificar un bloque de predicción en las tramas de referencia en la memoria de tramas de referencia 82. La unidad de intra-predicción 74 puede usar modos de intra-predicción recibidos en el flujo de bits para formar un bloque de predicción a partir de bloques espacialmente adyacentes. En particular, el descodificador de vídeo 30, en el ejemplo de la FIG. 4, incluye datos de configuración 84. Los datos de configuración 84 son sustancialmente similares a los datos de configuración 66 de la FIG. 3, en que los datos de configuración 84 incluyen información que describe contextos para bloques intra-predichos, así como una de una pluralidad de tablas de asignación de índice de intra-predicción a usar para cada contexto, una de una pluralidad de tablas de índices de palabras de código (o asignación de palabras de código) a usar para cada contexto, y un modo de intra-predicción más probable para cada contexto.
[0087] La unidad de descodificación por entropía 70 puede recibir un representante de palabra de código de un modo de intra-predicción a usar para descodificar un bloque codificado de datos de vídeo. En algunos ejemplos, la palabra de código puede ser una palabra de código de VLC o un valor binario codificado por entropía que se descodifica por entropía en primer lugar usando CABAC. La unidad de descodificación por entropía 70 puede determinar un contexto para el bloque codificado, por ejemplo, basándose en los modos de intra-predicción para un bloque contiguo izquierdo y un bloque contiguo superior al bloque codificado y/o un tamaño para el bloque codificado. Es decir, el contexto puede corresponder a los dos o más modos más probables. Las palabras de código proporcionan una indicación del modo de intra-predicción real para el bloque actual. Por ejemplo, la palabra de código indica si el modo de intra-predicción real es uno de los modos más probables, y si no, la unidad de intra- predicción 74 proporciona una indicación del modo de intra-predicción real. Basándose en el contexto, la unidad de descodificación por entropía 70 puede determinar uno o más modos de intra-predicción más probables a usar para descodificar el bloque, así como una tabla de índices de inter-predicción y una tabla de índices de palabras de código a usar para determinar el modo de intra-predicción real a usar para descodificar el bloque.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0088] La unidad de intra-predicción 74 puede utilizar el modo de intra-predicción, correspondiente a la indicación,
para intra-predecir el bloque codificado, por ejemplo, usando píxeles de bloques contiguos, previamente
descodificados. Para ejemplos en los que el bloque está codificado en modo de inter-predicción, la unidad de
compensación de movimiento 72 puede recibir información que define un vector de movimiento, para recuperar datos de predicción compensados por movimiento para el bloque codificado. En cualquier caso, la unidad de compensación de movimiento 72 o la unidad de intra-predicción 74 puede proporcionar información que define un bloque de predicción para el sumador 80.
[0089] La unidad de cuantificación inversa 76 cuantifica de manera inversa, es decir, descuantifica, los coeficientes de bloques cuantificados, proporcionados en el flujo de bits y descodificados por la unidad de descodificación por entropía 70. El proceso de cuantificación inversa puede incluir un proceso convencional, por ejemplo, como el definido por la norma de descodificación H.264 o el realizado por el Modelo de Prueba de HVEC. El proceso de cuantificación inversa también puede incluir el uso de un parámetro de cuantificación QPY calculado por un codificador 50 para cada macrobloque con el fin de determinar el grado de cuantificación y, asimismo, el grado de cuantificación inversa que debería aplicarse.
[0090] La unidad de transformación inversa 58 aplica una transformación inversa, por ejemplo, una DCT inversa,
una transformación de entero inversa o un proceso de transformación inversa conceptualmente similar a los
coeficientes de transformación, con el fin de generar bloques residuales en el dominio de píxeles. La unidad de
compensación de movimiento 72 genera bloques compensados por movimiento, posiblemente llevando a cabo una interpolación basándose en filtros de interpolación. Los identificadores de los filtros de interpolación que van a usarse para la estimación de movimiento con una precisión de fracción de píxel pueden incluirse en los elementos sintácticos. La unidad de compensación de movimiento 72 puede usar filtros de interpolación como los usados por el codificador de vídeo 20 durante la codificación del bloque de vídeo para calcular valores interpolados para fracciones de píxeles de un bloque de referencia. La unidad de compensación de movimiento 72 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 de acuerdo con la información sintáctica recibida y usar los filtros de interpolación para generar bloques predictivos.
[0091] La unidad de compensación de movimiento 72 usa parte de la información sintáctica para determinar tamaños de bloques usados para codificar trama(s) de la secuencia de vídeo codificado, información de división que describe cómo está dividido cada bloque de una trama o fragmento de la secuencia de vídeo codificado, modos que indican cómo está codificada cada división, una o más tramas de referencia (y listas de tramas de referencia) para cada bloque o división inter-codificado y otra información para descodificar la secuencia de vídeo codificado.
[0092] El sumador 80 suma los bloques residuales a los bloques de predicción correspondientes generados por la unidad de compensación de movimiento 72 o por la unidad de intra-predicción 74 para generar bloques descodificados. Si se desea, también puede aplicarse un filtro de eliminación de pixelado para filtrar los bloques descodificados con el fin de eliminar distorsiones de pixelado. Los bloques de vídeo descodificado se almacenan a continuación en la memoria de tramas de referencia 82, que proporciona bloques de referencia para la compensación de movimiento posterior y también produce vídeo descodificado para su presentación en un dispositivo de visualización (como el dispositivo de visualización 32 de la FIG. 2).
[0093] De esta manera, el descodificador de vídeo 30 de la FIG. 4 representa un ejemplo de un descodificador de vídeo configurado para determinar uno o más modos de intra-predicción más probables para un bloque codificado de datos de vídeo basándose en un contexto para el bloque actual, seleccionar una tabla de palabras de código basándose en el contexto para el bloque actual, en el que la tabla de palabras de código comprende una pluralidad de palabras de código de longitud variable correspondientes a índices de palabras de código que corresponden a modos de intra-predicción distintos del (de los) modo(s) de intra-predicción más probables basándose en el contexto, determinar uno de los índices de palabras de código que corresponde a una palabra de código recibida usando la tabla de palabras de código, seleccionar un modo de intra-predicción distinto del modo de intra-predicción más probable a usar para descodificar el bloque codificado, en el que el modo de intra-predicción seleccionado corresponde al índice de palabras de código determinado; y descodificar el bloque actual usando el modo de interpredicción seleccionado.
[0094] De acuerdo con las técnicas descritas en el presente documento, el descodificador de vídeo 30 determina el conjunto de modos más probables para un bloque de vídeo actual. La unidad de intra-predicción 74 puede determinar un modo de intra-predicción real de bloques contiguos del bloque actual. El descodificador de vídeo 30 también puede configurarse para determinar un primer modo de intra-predicción para un bloque contiguo izquierdo del bloque, determinar un segundo modo de intra-predicción para un bloque contiguo superior del bloque, y cuando el primer modo de intra-predicción es diferente del segundo modo de intra-predicción, incluir tanto el primer modo de intra-predicción como el segundo modo de intra-predicción en el conjunto de modos de intra-predicción más probables. Por ejemplo, con referencia a la FIG. 1, la unidad de intra-predicción 74 puede determinar modos de intra-predicción reales usados para los bloques contiguos A (4) y B (6) con respecto al bloque actual C (8). Basándose en los modos de intra-predicción usados para los bloques contiguos A (4) y B (6), la unidad de intra- predicción 74 determina los modos más probables para el bloque C (8). La unidad de intra-predicción 74 puede comparar el modo de intra-predicción real usado para el bloque contiguo A (4) con el modo de intra-predicción real
5
10
15
20
25
30
35
40
45
50
55
60
65
usado para el bloque contiguo B (6). Basándose en esta comparación, se puede incluir un modo de intra-predicción particular, como el modo planar, en el conjunto de modos más probables para el bloque C (8). La unidad de intra- predicción 74 también puede determinar un modo real a usar para intra-predecir el bloque actual C (8).
[0095] Cuando el primer modo de intra-predicción es el mismo que el segundo modo de intra-predicción, y cuando el primer y segundo modos de intra-predicción comprenden un modo que no sea un modo planar, la unidad de intra- predicción 74 incluye el modo planar en el conjunto de modos de intra-predicción más probables. En otro ejemplo, cuando el primer modo de intra-predicción es el mismo que el segundo modo de intra-predicción, y cuando el primer y segundo modos de intra-predicción comprenden un modo planar, la unidad de intra-predicción 74 incluye el modo planar y un modo DC en el conjunto de modos de intra-predicción más probables.
[0096] En otro ejemplo, cuando el bloque actual comprende un bloque de luminancia, el descodificador de vídeo 30 determina, para un bloque de crominancia correspondiente al bloque de luminancia, una asignación de un conjunto de valores a un conjunto de modos de intra-predicción, con el conjunto de modos de intra-predicción que comprenden modo horizontal, modo vertical, modo planar, modo DC y modo de predicción de señal de luma. Cuando el modo de intra-predicción real para el bloque de luminancia comprende un modo distinto al modo horizontal, modo vertical, modo planar y modo DC, el conjunto de modos de intra-predicción comprende además una reutilización del modo de intra-predicción de luma asignado a partir de un primer valor del conjunto de valores. Cuando el modo de intra-predicción real para el bloque de luminancia comprende uno de modo horizontal, modo vertical, modo planar y modo DC, el conjunto de modos de intra-predicción comprende además un modo distinto al modo horizontal, modo vertical, modo planar y modo DC asignado a partir del primer valor del conjunto de valores; el descodificador de vídeo 30 descodifica un valor representativo de un modo de intra-predicción real para el bloque de crominancia basándose en la asignación del conjunto de valores al conjunto de modos.
[0097] En otro ejemplo, la unidad de intra-predicción-74 determina una dirección de predicción del modo de intra- predicción real del bloque actual e incluye al menos un modo de intra-predicción que tiene una dirección de predicción cercana a la dirección de predicción del modo de intra-predicción real en el conjunto de modos de intra- predicción más probables.
[0098] En otro ejemplo, cuando el tamaño del conjunto de modos de intra-predicción más probables es igual a tres, la unidad de intra-predicción 74 determina una dirección de predicción de un primer modo de intra-predicción y compara la dirección de predicción del primer modo de intra-predicción con las direcciones de predicción de uno o más modos de intra-predicción disponibles distintos. La unidad de intra-predicción 74 incluye el primer modo de intra-predicción en el conjunto de modos de intra-predicción más probables. Además, basándose en la comparación, la unidad de intra-predicción 74 incluye un segundo y un tercer modos de intra-predicción del uno o más modos de intra-predicción disponibles en el conjunto de modos de intra-predicción más probables, en el que el segundo y el tercer modos de intra-predicción tienen direcciones de predicción que se determina que están más cerca de la dirección de predicción del primer modo de intra-predicción.
[0099] La FIG. 5 es un diagrama que ilustra un ejemplo de 35 modos de intra-predicción y sus direcciones de predicción correspondientes. Como se define en este ejemplo, cada uno de los 35 valores de índice se asignan de manera única a diferentes modos de intra-predicción. En este ejemplo, el valor de índice 2 se asigna al modo de intra-predicción DC, el valor de índice 34 se asigna al modo de intra-predicción planar, y el valor de índice 35 se asigna al modo de intra-predicción fromjuma. El resto de los valores de índice se asignan al conjunto disponible de diferentes modos de intra-predicción, cada uno con una dirección de predicción. Por ejemplo, la unidad de intra- predicción 46 del codificador de vídeo 20 puede proporcionar uno de los cinco valores para un elemento sintáctico que indica el modo de intra-predicción real usado para codificar un bloque de luma. De forma similar, la unidad de intra-predicción 46 del codificador de vídeo 20 puede proporcionar uno de los seis valores para un elemento sintáctico que indica el modo de intra-predicción real usado para codificar un bloque de croma. Los seis valores pueden ser uno de los cinco valores utilizados para el bloque de luma, más un valor que indique una imitación del modo de intra-predicción que se usó para codificar el bloque de luma correspondiente.
[0100] Por ejemplo, el modo de intra-predicción asignado al valor de índice 0 tiene una dirección de predicción hacia arriba con respecto al bloque actual que se está codificando. Es decir, los píxeles utilizados para predecir un bloque actual provienen de la parte superior del bloque actual cuando se selecciona el modo asignado al valor de índice 0. Para ejemplos donde el número del modo de intra-predicción es 34, los modos de intra-predicción que tienen las direcciones de predicción más cercanas al modo de intra-predicción asignado al valor de índice 0 son los modos de intra-predicción asignados a los valores de índice 21 y 22. Para ejemplos donde el número de modos de intra- predicción es 17, los modos de intra-predicción que tienen las direcciones de predicción más cercanas al modo de intra-predicción asignado al valor de índice 0 son los modos de intra-predicción asignados a los valores de índice 11 y 12, porque los valores de índice 21 y 22 no están disponibles para el conjunto de 17 modos de intra-predicción.
[0101] En un esquema de numeración alternativo, el modo intra_planar puede corresponder al modo 0, en cuyo caso el número de modo de todos los demás modos se incrementaría en 1. Algunas de las tablas utilizadas a lo largo de esta divulgación en general corresponden a este esquema de numeración alternativo. Sin embargo, debe quedar claro para un experto en la materia ordinario que las técnicas de esta divulgación no están limitadas a un
5
10
15
20
25
30
35
40
45
esquema de numeración particular.
[0102] La FIG. 6 es un diagrama que ilustra otro ejemplo de 35 modos de intra-predicción y sus direcciones de predicción correspondientes. Como se define en el ejemplo de la FIG. 6, cada uno de los 35 valores de índice se asigna de forma exclusiva a diferentes modos de intra-predicción. En este ejemplo, el valor de índice 0 se asigna al modo de intra-predicción planar, el valor de índice 1 se asigna al modo de intra-predicción DC, y el valor de índice 35 se asigna al modo de intra-predicción fromjuma. El resto de los valores de índice se asignan al conjunto disponible de diferentes modos de intra-predicción, cada uno con una dirección de predicción.
[0103] El diagrama de la FIG. 6 muestra que IntraPredMode[xB][yB] etiquetado 0, 1, 2, .., 35 representa las direcciones de las predicciones de acuerdo con la Tabla 3.1. La Tabla 3.1 especifica el valor para el modo de intra- predicción y los nombres asociados. El modo 34, por ejemplo, es un modo intra-angular que apunta a una dirección superior derecha del bloque actual a codificar. En algunos ejemplos, el modo 34 es el modo de intra-predicción en la dirección superior derecha.
Tabla 3.1 - Especificación del modo de intra-predicción y nombres asociados
Modo de intra-predicción
Nombres asociados
0
Intra_Planar
1
Intra_DC
De lo contrario (2..34)
Intra Angular
35
Intra_FromLuma (usado solo para croma)
[0104] Las entradas a un proceso de obtención de ejemplo para modos de intra-predicción de luma incluyen una ubicación de luma (xB, yB) que especifica la muestra de luma superior izquierda del bloque actual con respecto a la muestra de luma superior izquierda de la imagen actual, una variable log2PUSize que especifica el tamaño de la unidad de predicción actual, y las matrices de variables IntraPredMode (si están disponibles) que se obtienen previamente (en orden de descodificación) para las unidades de codificación adyacentes. La salida del proceso de obtención del proceso de ejemplo para los modos de intra-predicción de luma es la variable IntraPredMode[xB][yB].
[0105] IntraPredMode[xB][yB] se puede obtener como los siguientes pasos ordenados. En primer lugar, las ubicaciones contiguas (xBA, yBA) y (xBB, yBB) se establecen igual a (xB-1, yB) y (xB, yB-1), respectivamente. En segundo lugar, el bloque de codificación mínimo aborda cbAddrA y cbAddrB de los bloques de árbol de codificación que cubren las ubicaciones (xBA, yBA) y (xBB, yBB), respectivamente, donde se obtienen de la siguiente manera:
cbAddrA
=MinCbAddrZS[ xBA « Log2MinCbSizc ][ yBA « Log2MinCbSizc ] cbAddrB
=MinCbAddrZS[ xBB « Log2MinCbSize ][ yBB « Log2MinCbSize ]
[0106] En tercer lugar, se invoca un proceso de disponibilidad para una dirección de bloque de codificación mínima especificada una vez con la dirección de bloque de codificación mínima cbAddrA como la entrada y la salida asignadas a availableA y una vez con la dirección de bloque de codificación mínima cbAddrB como la entrada y la salida asignadas a availableB.
[0107] En cuarto lugar, para que N sea reemplazado A o B, las variables intraPredModeN se obtienen de la siguiente manera: Si availableN es igual a FALSE, intraPredModeN se establece igual a Intra_DC. De lo contrario, si la unidad de codificación que abarca (xBN, yBN) no está codificada como modo de intra, intraPredModeN se establece igual a Intra_DC; de lo contrario, si yB-1 es menor que yCtb, intraPredModeA se establece igual a IntraPredMode[xBA][yBA] e intraPredModeB se establece igual a Intra_DC. De lo contrario, intraPredModeN se establece igual a IntraPredMode[xBN][yBN], donde IntraPredMode es la matriz variable asignada a la unidad de codificación que cubre la ubicación de luma (xBN, yBN).
[0108] En quinto lugar, candModeList[x] con x = 0..2 se obtiene de la siguiente manera: Si candIntraPredModeB es igual a candIntraPred-ModeA, se aplica lo siguiente: Si candIntraPredModeA es menor que 2 (ya sea Intra_Planar o Intra_DC), candModeList[x] con x = 0..2 se obtiene como:
5
10
15
20
25
30
candModcList[0] = IntraPlanar candModeList[l] = IntraDC candModeList[2] = Intra_Angular (26)
De lo contrario, candModeList[x] con x = 0..2 se obtiene como:
candModeList[0] = candlntraPredModeA
candModeList[ 1 ] = 2 + ( ( candlntraPredModeA — 2 — 1 ) % 32
candModeList[2] = 2 + ( ( candlntraPredModeA — 2 + 1 ) % 32
De lo contrario (candIntraPredModeB no es igual a candIntraPredModeA), se aplica lo siguiente: candModeList[0] y candModeList[1] se obtienen de la siguiente manera:
candModeList[0] = candlntraPredModeA
candModeList[l] = candIntraPredModeB
Si ninguno de candModeList[0] y candModeList[1] es igual a Intra_Planar, candModeList[2] se establece igual a Intra_Planar. De lo contrario, si ninguno de candModeList[0] y candModeList[1] es igual a Intra_DC, candModeList[2] se establece igual a Intra_DC. De lo contrario, candModeList[2] se establece igual a Intra_Angular (26).
[0109] En sexto lugar, IntraPredMode[xB][yB] se obtiene aplicando el siguiente procedimiento. Si prev_intra_pred_flag[xB][yB] es igual a TRUE, IntraPredMode[xB][yB] se establece igual a candModeList[mpm_idx]. De lo contrario, IntraPredMode[xB][yB] se obtiene aplicando los siguientes pasos ordenados: En primer lugar, la matriz candModeList[x], x = 0..2 se modifica de la siguiente manera: Si candModeList[0] es mayor que candModeList[1], intercambie dos valores; si candModeList[0] es mayor que candModeList[2], intercambie dos valores; y si candModeList[1] es mayor que candModeList[2], intercambie dos valores. En segundo lugar, IntraPredMode[xB][yB] se obtiene como los siguientes pasos ordenados: En primer lugar, IntraPredMode[xB][yB] = rem_intra_luma_pred_mode. Cuando IntraPredMode[xB][yB] es mayor o igual que candModeList[0], el valor de IntraPredMode[xB][yB] aumenta en uno. Cuando IntraPredMode[xB][yB] es mayor o igual que candModeList[1], el valor de IntraPredMode[xB][yB] aumenta en uno. Cuando IntraPredMode[xB][yB] es mayor o igual que candModeList[2], el valor de IntraPredMode[xB][yB] aumenta en uno.
[0110] Un proceso de obtención de ejemplo para el modo de intra-predicción de croma se define de la forma siguiente. Una entrada a este proceso es una ubicación de luma (xB, yB) que especifica la muestra de luma superior izquierda del bloque actual en relación con la muestra de luma superior izquierda de la imagen actual. Una salida de este proceso es la variable IntraPredModeC. El modo de intra-predicción de croma IntraPredModeC se obtiene como se especifica en las tablas 3.2 o 3.3 con intra_chroma_pred_mode, IntraPredMode[xB][yB] y chroma_pred_from_luma_enabled_flag como entradas.
5
10
15
20
25
30
35
40
intra_chroma_pred_mode
lntraPredMode[xB][yB]
0
26 10 1 X(0<=X<35)
0
34
0
0
0
0
1
26 34 26 26 26
2
10 10 34 10 10
3
1 1 1 34 1
4
LM LM LM LM LM
5
0 26 10 1 X
Tabla 3.3 - Especificación de IntraPredModeC de acuerdo con los valores de intra_chroma_pred_mode e IntraPredMode[xB][yB] cuando chroma_pred_from_luma_enabled_flag es igual a 0
intra chroma pred mode
lntraPredMode[xB][yB]
0
26 10 1 X (0<=X<35)
0
34
0
0
0
0
1
26 34 26 26 26
2
10 10 34 10 10
3
1 1 1 34 1
4
0 26 10 1 X
[0111] Se pueden encontrar más detalles sobre los procesos de codificación para unidades de codificación
codificadas en modo de intra-predicción en el borrador 6 de la memoria descriptiva textual de Codificación de Vídeo de Alta Eficiencia (HEVC), JCT-VC de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 7.a Reunión, Ginebra, 21-30 de noviembre de 2011, cuyo contenido completo se incorpora como referencia. Se puede encontrar más información referente a los procesos de codificación para unidades de codificación codificadas en modo de intra-predicción de acuerdo con HEVC en el borrador 7 de la memoria descriptiva textual de HEVC, documento HCTVC-11003, de Bross, et al., titulado "Borrador 7 de la Memoria Descriptiva Textual de Codificación de Vídeo de Alta Eficiencia (HEVC)", Equipo de Colaboración Conjunta sobre Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JtC1/SC29/Wg11, 9.a reunión: Ginebra, Suiza, del 27 de abril de 2012 al 7 de mayo de 2012, que, a partir del 6 de junio de 2012, puede descargarse desde
http://phenix.it-
sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11JCTVC-11003-v3.zip.
[0112] La FIG. 7 es un diagrama de flujo que ilustra un ejemplo de un procedimiento 100 para la indicación de modo de intra-predicción para la codificación de vídeo. El procedimiento 100 puede realizarse mediante cualquiera del sistema 10 de la FIG. 1, el codificador de vídeo 20 de la FIG. 3, el descodificador de vídeo 30 de la FIG. 4, o cualquier otro dispositivo adecuado.
[0113] El procedimiento 100 incluye determinar, para un bloque de datos de vídeo, un conjunto de modos de intra- predicción más probables de modo que el conjunto de modos de intra-predicción más probables tenga un tamaño que sea igual a un número predeterminado que sea mayor que o igual a dos (102). El procedimiento 100 también puede incluir la codificación de un valor representativo de un modo de intra-predicción real para el bloque basándose, al menos en parte, en el conjunto de modos de intra-predicción más probables (104). Además, el procedimiento 100 incluye codificar el bloque usando el modo de intra-predicción real (106).
[0114] El procedimiento 100 puede incluir establecer NumMPMC a un número fijo para una trama o imagen, que sea mayor o igual a 2. Por ejemplo, si NumMPMC = 3, se seleccionan tres modos candidatos bajo cualquier circunstancia para una imagen dada. Con respecto a un bloque en la imagen, si ambos candIntraPredModeN son iguales, se determina la dirección de predicción para el candIntraPredModeN. De los modos de predicción disponibles para el bloque, los dos modos de predicción que tienen las direcciones de predicción más cercanas como la dirección de predicción de candIntraPredModeN se asignan para ser los dos modos candidatos adicionales, lo que hace que el total de modos más probables se fije en tres modos. Si los valores para candIntraPredModeN son diferentes, el modo candidato adicional se puede elegir para que sea en modo DC, vertical u horizontal.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0115] En otro ejemplo donde NumMPMC = 3, tres modos candidatos se seleccionan bajo todas las circunstancias para una imagen dada, en el que el conjunto de tres modos de intra-predicción más probables incluye el modo DC, el modo vertical y el modo planar.
[0116] La FIG. 8 es un diagrama de flujo que ilustra un ejemplo de un procedimiento 200 para determinar los candidatos a modo de intra-predicción más probables cuando un conjunto de modos de intra-predicción más probables es igual a tres. El procedimiento 200 puede realizarse mediante un codificador de vídeo, por ejemplo, el codificador de vídeo 20 de las FIGs. 2 y 3. En otros ejemplos, el procedimiento 200 puede ser realizado por un descodificador de vídeo, tal como el descodificador de vídeo 30 de las FIGs. 2 y 4.
[0117] Los detalles de una obtención de ejemplo del procedimiento 200 son los siguientes. En primer lugar, NumMPMC se establece igual a tres modos más probables (202). En algunos ejemplos, el codificador de vídeo 20 o el descodificador de vídeo 30 establecen NumMPMC igual a tres para un bloque actual. En otros ejemplos, el codificador de vídeo 20 o el descodificador de vídeo 30 determina NumMPMC desde un bloque codificado previamente con respecto al bloque actual, en el que el bloque codificado previamente es de la misma trama que el bloque actual.
[0118] El codificador de vídeo 20 o el descodificador de vídeo 30 determina si ambos candIntraPredModeN están disponibles en un conjunto de modos de intra-predicción disponibles (204). El conjunto de modos de intra-predicción disponibles puede basarse en intraPredModeNum, y puede ser, por ejemplo, igual a 17 o 34. Si ambos candIntraPredModeN no están disponibles, entonces el valor 2 se asigna a candModeList[0], el valor 0 se asigna a candModeList[1] y el valor 1 se asigna a candModeList[2] (206). Por ejemplo, si ambos candIntraPredModeN no están disponibles, candModeList[0] se asigna al modo DC, candModeList[1] se asigna al modo planar, y candModeList[2] se asigna al modo vertical. Por ejemplo, si ambos candIntraPredModeN no están disponibles, entonces se puede elegir candModeList para que sea DC, vertical u horizontal. De lo contrario, si ambos candIntraPred-ModeN están disponibles, el codificador de vídeo 20 o el descodificador de vídeo 30 determina si ambos candIntraPredModeN tienen el mismo valor, es decir, apuntan al mismo modo de intra-predicción (208).
[0119] Si ambos candIntraPredModeN son iguales, entonces este candIntraPredModeN se asigna a candModeList[0] (210). A continuación, candModeList[1] y candModeList[2] se obtienen, mediante la unidad de intra- predicción 46 o 74, respectivamente, aplicando el siguiente procedimiento: preModeMinus1_M[candModeList[0]] se asigna a candModeList[1] y PreModePlus1_M[candModeList[0]] se asigna a candModeList[2], donde M representa intraPredModeNum (212). Las tablas 3.3, 4.3 y 5.3 proporcionadas a continuación, se pueden usar para determinar estos valores. Por ejemplo, usando la FIG. 5, si intraPredModeNum es igual a 34, y candModeList[0] = 0 (lo cual significa que candIntraPredModeN = 0), entonces candModeList[1] = preModeMinus1_M[candModeList[0]] = 21 y candModeList[2] = PreModePlus1_M[candModeList[0 ]] = 22.
[0120] Volviendo a la FIG. 8, si ambos candIntraPredModeN son iguales (208), entonces ambos candIntraPredModeN se asignan a la lista de modos candidatos (214). Por ejemplo, el menor de los dos candidatos se asigna a candModeList[0] y el candidato más grande se asigna a candModeList[1].
[0121] El tercer candidato restante que se incluirá en el conjunto de modos más probables, CandModeList[2], se obtiene aplicando el siguiente procedimiento: El codificador de vídeo 20 o el descodificador de vídeo 30 determina si cualquier candIntraPred-ModeN es igual al valor 2 (216). Si ningún candIntraPredModeN es igual al valor 2, entonces el valor 2 se asigna a candModeList[2] (218). Esto asegura que el valor 2 no se repita en la lista del modo candidato. Si al menos uno de los caracteres candIntraPredModeN es igual al valor 2, entonces el codificador de vídeo 20 o el descodificador de vídeo 30 determina si cualquier candIntraPredModeN es igual al valor 0 (220). Si ningún candIntraPredModeN es igual al valor 0, entonces el valor 0 se asigna a candModeList[2] (222). De lo contrario, el valor 1 se asigna a candModeList[2] (224).
[0122] La Tabla 4 proporciona una asignación de modo candidato de ejemplo con la variable intraPredModeNum establecida en tres. En un ejemplo, un codificador de vídeo, como un codificador de vídeo 20 de las FIGs. 2 y 3, está configurado con los datos correspondientes a la Tabla 4.3. Igualmente, un descodificador de vídeo, como el descodificador de vídeo 30 de las FIGs. 2 y 4, está configurado con los datos correspondientes a la Tabla 4.3. La Tabla 4.3 proporciona una asignación entre un modo de intra-predicción candidato (o real) y los dos modos de intra- predicción más cercanos al modo de intra-predicción cuando intraPredModeNum es igual a tres. En algunos ejemplos, los modos de intra-predicción más cercanos al modo de intra-predicción pueden ser los más cercanos en términos de dirección de predicción. El codificador de vídeo puede usar la asignación de modo candidato de la Tabla 4.3 para determinar qué modos de intra-predicción se incluyen en una lista de candidatos de modos más probables para un bloque actual cuando intraPredModeNum es igual a tres.
5
10
15
20
25
30
35
candModeList[0]
0 1 2
PreModeMinus1_3
2 2 0
PreModePlus1_3
1 0 1
[0123] La Tabla 5.3 proporciona un ejemplo de asignación de modo candidato con la variable intraPredModeNum establecida en diecisiete. En un ejemplo, un codificador de vídeo, como un codificador de vídeo 20 de las FIGs. 2 y 3, está configurado con los datos correspondientes a la Tabla 5.3. Igualmente, un descodificador de vídeo, como el descodificador de vídeo 30 de las FIGs. 2 y 4, está configurado con los datos correspondientes a la Tabla 5.3. La Tabla 5.3 proporciona una asignación entre un modo de intra-predicción candidato (o real) y los dos modos de intra- predicción más cercanos al modo de intra-predicción cuando intraPredModeNum es igual a diecisiete. En algunos ejemplos, los modos de intra-predicción más cercanos al modo de intra-predicción pueden ser los más cercanos en términos de dirección de predicción. El codificador de vídeo puede usar la asignación de modo candidato de la Tabla 5.3 para determinar qué modos de intra-predicción se incluyen en una lista de candidatos de modos más probables para un bloque actual cuando intraPredModeNum es igual a diecisiete.
Tabla 5.3 - Asignación del modo candidato cuando intraPredModeNum es igual a 17
candModcListf
01 0 1 2 3 4 5 6 7 8 9 10 11
PreModeMinusl
17 11 16 0 14 10 12 13 15 9 6 3 4
PrcModcPlusl
17 12 15 1 10 11 13 9 14 16 8 4 0
candModeListf 0 ]
12 13 14 15 16
PreModeMinusl 17
0 5 7 1 8
PreModePlusl 17
5 6 3 7 1
[0124] La Tabla 6.3 proporciona un ejemplo de asignación de modo candidato con la variable intraPredModeNum establecida en treinta y cuatro. En un ejemplo, un codificador de vídeo, como un codificador de vídeo 20 de las FIGs. 2 y 3, está configurado con los datos correspondientes a la Tabla 6.3. Igualmente, un descodificador de vídeo, como el descodificador de vídeo 30 de las FIGs. 2 y 4, está configurado con los datos correspondientes a la Tabla 6.3. La Tabla 6.3 proporciona una asignación entre un modo de intra-predicción candidato (o real) y los dos modos de intra- predicción más cercanos al modo de intra-predicción cuando intraPredModeNum es igual a treinta y cuatro. En algunos ejemplos, los modos de intra-predicción más cercanos al modo de intra-predicción pueden ser los más cercanos en términos de dirección de predicción. El codificador de vídeo puede usar la asignación de modo candidato de la Tabla 6.3 para determinar qué modos de intra-predicción se incluyen en una lista de candidatos de modos más probables para un bloque actual cuando intraPredModeNum es igual a treinta y cuatro.
Tabla 6.3 - Asignación del modo candidato cuando intraPredModeNum es igual a 34
imagen1
[0125] En algunos ejemplos, cuando el NumMPMC es mayor que o igual a dos, uno de los modos candidatos más probables es el modo planar. Por ejemplo, si NumMPMC es igual a cuatro, tres modos candidatos pueden
5
10
15
20
25
30
35
40
determinarse como se describió anteriormente, mientras que un cuarto modo se establece en modo planar. Si uno de los tres modos candidatos ya es igual al modo planar, el cuarto modo se puede establecer igual al modo DC.
[0126] Otro parámetro, el modo de intra-predicción restante, rem_intra_pred_mode, también se puede definir. De acuerdo con las técnicas de la presente divulgación, rem_intra_pred_mode puede tener múltiples contextos. El modo más probable se puede usar para predecir el modo de intra-predicción restante. Cada bin está codificado con un contexto para representar mejor la estadística, lo cual da como resultado una mejor selección del modo más probable.
[0127] De acuerdo con otras técnicas, puede proporcionarse la agrupación de palabras de código. Por ejemplo, todas las palabras de código para los modos de intra-predicción se pueden dividir en múltiples grupos. Se puede usar una binarización de longitud fija o variable para indicar el índice del grupo. A continuación, se puede usar una binarización de longitud fija o variable para indicar el índice de palabras de código dentro del grupo.
[0128] Por ejemplo, se forman tres grupos de códigos para intraPredModeNum, siendo igual a 17 o 34. Todos los grupos menos uno tienen 2N secuencias de bins, como se muestra en la Tabla 7. En un ejemplo, un codificador de vídeo, como un codificador de vídeo 20 de las FIGs. 2 y 3, está configurado con los datos correspondientes a la Tabla 7. Igualmente, un descodificador de vídeo, como el descodificador de vídeo 30 de las FIGs. 2 y 4, está configurado con los datos correspondientes a la Tabla 7.
Tabla 7 - Número de bins para intraModeTable[rem_intra_luma_pred_mode]
Valor de intraModeTable[rem_intra_luma_pred_mode]
Número de bins, N
< 2
1
> 2 y < 10
3
> 10
2
< 8
3
> 8 y < 24
4
> 24
3
[0129] Una excepción a la Tabla 7 es cuando el rem_intra_luma_pred_mode asignado es mayor que 23 y la binarización se muestra en la Tabla 8. Se utiliza una binarización unaria para indicar el índice de grupo del rem_intra_luma_pred_mode asignado. En un ejemplo, un codificador de vídeo, como un codificador de vídeo 20 de las FIGs. 2 y 3, está configurado con los datos correspondientes a la Tabla 8. Igualmente, un descodificador de vídeo, como el descodificador de vídeo 30 de las FIGs. 2 y 4, está configurado con los datos correspondientes a la Tabla 8.
Tabla 8 - Tabla de binarización cuando intraModeTable[rem_intra_luma_pred_mode] > 24
Valor de intraModeTable[rem_intra_luma_pred_mode]
Secuencia de bins
24
00
25
010
26
011
28
100
29
101
30
110
31
111
[0130] Un índice de palabras de código se obtiene de un modo de intra-predicción, independientemente de si el codificador de vídeo está usando VLC o CABAC. El índice de palabras de código puede asignarse a un valor binario, tal como se muestra en la Tabla 8. Un valor binario es una secuencia de bits, que pueden denominarse bins. Cada bin puede codificarse secuencialmente. Por lo tanto, se proporcionan dos tablas de tal manera que para cada escenario diferente, las palabras de código ya se proporcionan en una tabla y no tienen que determinarse para cada escenario. Se proporciona una única tabla de binarización, independientemente de los modos de intra-predicción más probables que se incluyan en la lista de candidatos.
5
10
15
20
25
30
35
40
45
50
[0131] Las técnicas descritas en el presente documento también proporcionan una palabra de código fija y un tamaño de tabla de códigos para un modo de predicción de croma en diferentes modos de predicción de luma. Debido al modo de herencia, el enfoque existente elimina cualquier palabra de código redundante de las tablas de códigos. Una tabla de códigos de tamaño fijo puede ser beneficiosa para el proceso de análisis porque la descodificación del modo de luma ya no necesita hacerse de antemano.
[0132] Se pueden realizar dos enfoques diferentes para lograr una tabla de códigos de tamaño fijo. En primer lugar, uno de los modos de intra-predicción se deshabilita cuando no hay una palabra de código redundante, por lo que una palabra de código redundante se crea artificialmente. En segundo lugar, se habilita un modo diferente para reemplazar el modo redundante a fin de eliminar la palabra de código redundante. Además, una asignación de la palabra de código y el modo de intra-predicción podría ser diferente para diferentes modos de predicción de luma.
[0133] En otro ejemplo, la asignación del modo planar puede cambiarse desde la HEVC anterior. Por ejemplo, el modo planar puede asignarse al valor de índice 0. Posteriormente, el valor de índice asociado con todos los otros modos de intra-predicción puede aumentarse en 1. Este cambio aumentará la probabilidad de obtener un rem_intra_luma_pred_mode más pequeño, ya que el modo planar se elige con más frecuencia.
[0134] Las técnicas de la divulgación fijan el número de modos de intra-predicción de croma disponibles. La variable Intra_Pred_ModeC es un modo de intra-predicción de croma. Por ejemplo, se pueden indicar seis modos de intra- predicción de croma disponibles (IntraPredModeC). Para dos modos, la predicción de señal de luma y la reutilización del modo de intra-predicción de luma, permanecen sin cambios. Para los otros cuatro modos, se agregan dos opciones de modo, que incluyen los modos de intra-predicción adyacentes y los modos de intra-predicción- adyacentes perpendiculares. La Tabla 9 proporciona una asignación de índice de ejemplo para los modos de intra- predicción adyacentes. La Tabla 9 proporciona una asignación de índice de ejemplo para los modos de intra- predicción-adyacentes perpendiculares.
Tabla 9 - Asignación de modo perpendicular cuando intraPredModeNum es igual a 18
intraPredMode
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
PredMode_P_17
1 0 0 6 8 7 3 5 4 3 P 16 15 14 13 12 11
Tabla 9 - Asignación de modo perpendicular cuando intraPredModeNum es igual a 35
intraPredMode
0 1 2 3 4 5 6 7 8 9 10 I 1 12 13 14 15 16 17
PrcdModc_P _34
] 0 0 6 8 7 3 5 4 3 8 16 15 14 13 12 1 1 10
intraPredMode
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
PrcdModcP _34
33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 0
[0135] Los otros cuatro modos se obtienen de la siguiente manera: Si intra_pred_mode es igual a 2, 0 se asigna a intra_chroma_pred_mode[0], 1 se asigna a intra_chroma_pred_mode[1], 6 se asigna a intra_chroma_pred_mode[2] y 35 se asigna a intra_chroma_pred_mode[3]. Si intra_pred_mode es igual a 35, por ejemplo, 0 se asigna a intra_chroma_pred_mode[0], 1 se asigna a intra_chroma_pred_mode[1], 2 se asigna a intra_chroma_pred_mode[2] y 6 se asigna a intra_chroma_pred_mode[3].
[0136] Si, por ejemplo, intraPredModeNum es igual a 18 o 35, intra_chroma_pred_mode[0], intra_chroma_pred_mode[1] e intra_chroma_pred_mode[2] se obtienen aplicando el siguiente procedimiento, utilizando algunas de las tablas, como las Tablas 8 y 9. PredModeMinus1_M[intra_pred_mode] se asigna a intra_chroma_pred_mode[0], PredModePlus1_M[intra_pred_mode] se asigna a intra_chroma_pred_mode[1], PredMode_P_M[intra_pred_mode] se asigna a intra_chroma_pred_mode[2] y 35 se asigna a intra_chroma_pred_mode[3], donde M representa intraPredModeNum. De lo contrario, 0 se asigna a intra_chroma_pred_mode[0], 1 se asigna a intra_chroma_pred_mode[1], 2 se asigna a intra_chroma_pred_mode[2] y 35 se asigna a intra_chroma_pred_mode[3].
[0137] En otro ejemplo en el que se fija el número de modos de intra-predicción de croma disponibles, cualquier modo de intra_pred redundante en la lista de modos de intra-predicción candidatos puede ser reemplazado por un
5
10
15
20
25
30
35
40
45
50
modo de intra-predicción predefinido.
[0138] En otro ejemplo, NumMPMC puede establecerse en cuatro. Es decir, cuatro modos candidatos se seleccionan bajo cualquier circunstancia para una trama de vídeo determinada (es decir, NumMPMC = 4). Si ambos candIntraPredModeN son iguales, los dos modos de predicción disponibles que están más cerca de candIntraPredModeN en la dirección de predicción se asignan para ser dos modos candidatos adicionales. Si candIntraPredModeN es diferente, se puede elegir el modo candidato adicional para que sea el modo DC, vertical u horizontal.
[0139] Una obtención de ejemplo para las listas de modos candidatos es la siguiente para cuando NumMPMC = 4: Si ambos candIntraPredModeN no están disponibles, entonces el valor 3 se asigna a candModeList[0], el valor 0 se asigna a candModeList[1], el valor 1 se asigna a candModeList[2] y el valor 2 se asigna a candModeList[3]. De lo contrario, si ambos candIntraPredModeN son iguales, entonces este candIntraPredModeN se asigna a candModeList[0]. CandModeList[1] y candModeList[2] se obtienen aplicando el siguiente procedimiento, utilizando las tablas 3.4, 4.4 y 5.4.
[0140] Como se puede ver en las tablas 3.4, 4.4 y 5.4, si candModeList[0] no es igual a, el valor 0 se asigna a candModeList[1]. De lo contrario, el valor 2 se asigna a candModeList[1]. PreModeMinus1_M[candModeList[0]] se asigna a candModeList[2] y PreModePlus1_M[candModeList[0]] se asigna a candModeList[3], donde M representa intraPredModeNum.
[0141] De lo contrario, ambos candIntraPredModeN se asignan a la lista de modos candidatos con el menor de los dos candidatos en candModeList[0] y el más grande en candModeList[1]. Las variables candModeList[2], candModeList[3] y candModeList[4] se obtienen aplicando el siguiente procedimiento: Si candIntraPredMode[0] = 0, entonces candModeList[2] = PreModeMinus1_M[candModeList[1]] y candModeList[3] = PreModePlusl_M[candModeList[1]]. De lo contrario, si candIntraPredMode1 = 0, entonces candModeList[2] = PreModeMinus1_M[candModeList[0]] y candModeList[3] = PreModePlus1_M[candModeList[0]]. De lo contrario, candModeList[2] = 0 y las variables candModeList[3] y candModeList[4] se seleccionan entre los primeros dos elementos disponibles del siguiente conjunto:
rPreModeMinuslJVl[candíntraPredModeO]^ PreModeMinusl_M[candIntraPredModel], s PreModePlusl_M[candIntraPredModeO], - PreModePiusl_M[candIntraPredModel],
^ 3 J
Un modo se puede definir como disponible cuando el modo no ha existido anteriormente en candModeList.
[0142] Las tablas 3.4, 4.4 y 5.4 se proporcionan a continuación, y son análogas a las Tablas 3.3, 4.3 y 5.3, proporcionadas anteriormente. Las tablas 3.3, 4.3 y 5.3 se aplican a ejemplos donde intraPredModeNum es igual a 3. Por el contrario, las tablas 3.4, 4.4 y 5.4 se aplican a ejemplos donde intraPredModeNum es igual a 4. Específicamente, la Tabla 4.4 proporciona un ejemplo de asignación de modo candidato cuando intraPredModeNum es igual a 4.
Tabla 4.4 Asignación de modo candidato cuando intraPredModeNum es igual a 4
candModeList[0]
1 2 3
PreModeMinus1_4
3 3 1
PreModePlus1_4
2 1 2
[0143] La Tabla 5.4 proporciona un ejemplo de asignación de modo candidato cuando intraPredModeNum es igual a 18.
5
10
15
20
25
30
35
candModeList[0]
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
PreModeMinus1_18
1 12 17 1 15 11 13 14 16 10 7 4 5 1 6 8 2 9
PreModePlus1_18
2 13 16 2 11 12 14 10 15 17 9 5 1 6 7 4 8 2
Last_MPM_18
9 2 1 9 3 1 1 3 2 2 3 1 5 1 3 12 3 11 17 16
[0144] La Tabla 6.4 proporciona un ejemplo de asignación de modo candidato cuando intraPredModeNum es igual a 35.
Tabla 6.4 Asignación de modo candidato cuando intraPredModeNum es igual a 35
candModeL istf 0 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
PreModeMi nusl 35
1 22 31 1 27 20 24 26 29 33 34 19 21 23 25 28 30
PreModePl usl 35
2 23 30 2 19 21 25 10 28 32 7 20 22 24 26 27 29
Last MPM 35
9 2 1 9 3 1 1 3 2 2 3 15 13 12 3 11 17
candMode Listr o i
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
PrcMode Minusl 3 5
32 34 4 11 5 12 1 13 6 14 15 8 16 2 17 9 18 10
PreModeP lusl 35
31 33 11 5 12 1 13 6 14 7 4 15 8 16 2 17 9 18
Last MP
16 3 27 19 22 23 22 23 3 3 19 27 30 31 30 31 3 3
M 35
[0145] De acuerdo con otro ejemplo, NumMPMC puede ser igual a 5. Es decir, se seleccionan cinco modos candidatos en todas las circunstancias (es decir, NumMPMC = 5), excepto intraPredModeNum = 4, donde NumMPMC = 4. Si NumMPMC = 4, se omite la obtención de candModeList[4]. En este ejemplo de NumMPMC = 5, se supone que el modo planar se establece en el valor 0. Si ambos candIntraPredModeN son iguales, es decir, por ejemplo, si los modos de intra-predicción de los bloques contiguos izquierdos y contiguos superiores son iguales, los dos modos de predicción disponibles que sean más cercanos a candIntraPredModeN en la dirección de predicción se pueden asignar para ser los dos modos candidatos adicionales. Si candIntraPredModeN es diferente, se puede elegir el modo candidato adicional para que sea el modo DC, vertical u horizontal.
[0146] Los detalles de una obtención de ejemplo son los siguientes: Si ambos candIntraPredModeN no están disponibles, entonces el valor 3 se asigna a candModeList[0], el valor 0 se asigna a candModeList[1], el valor 1 se asigna a candModeList[2], el valor 2 se asigna a candModeList[3] y el valor 9 se asigna a candModeList[4]. Por ejemplo, candIntraPredMode0 puede corresponder al bloque contiguo izquierdo (bloque 6 en la FIG. 1) y candIntraPredMode1 puede corresponder al bloque contiguo superior (bloque 4 en la FIG. 1). De lo contrario, si ambos candIntraPredModeN están disponibles y son iguales, entonces el valor de la misma candIntraPredModeN se asigna a candModeList[0].
[0147] Los valores para candModeList[1] y candModeList[2] se obtienen aplicando el siguiente procedimiento, utilizando las tablas 2.4, 3.4 y 4.4. Si candModeList[0] no es igual a 0 o 2, el valor 0 se asigna a candModeList[1]. De lo contrario, el valor 2 se asigna a candModeList[1]. PreModeMinus1_M[candModeList[0]] se asigna a candModeList[2], PreModePlus1_M[candModeList[0]] se asigna a candModeList[3] y Last_MPM[candModeList[0]] se asigna a candModeList[4], donde M representa intraPredModeNum.
[0148] De lo contrario, ambos candIntraPredModeN se asignan a la lista de modos candidatos con el menor de los
5
10
15
20
25
30
35
40
45
50
dos candidatos en candModeList[0] y el más grande en candModeList[1]. Las variables candModeList[2], candModeList[3] y candModeList[4] se obtienen aplicando el siguiente procedimiento. Si candIntraPredMode0 = 0, entonces candModeList[2] = PreModeMinus1_M[candModeList[1]], candModeList[3] = PreModePlus1_M[candModeList[1]] y candModeList[4] = LastMPM_M[candModeList[1]]. De lo contrario, si candIntraPredMode1 = 0, entonces candModeList[2] = PreModeMinus1_M[candModeList[0]], candModeList[3] = PreModePlus1_M[candModeList[0]] y candModeList[4] = LastMPM_M[candModeList[0]]. De lo contrario, candModeList[2] = 0, y candModeList[3] y candModeList[4] se seleccionan de los primeros dos elementos disponibles del siguiente conjunto:
"PreModeMinusl_M[candIntraPredModeO]A
PreModeMinusl_M[candíntraPredModel],
PreModePIusl_M[candIntraPredModeO],
< PreModeP]usl_M[candIntraPredModel], ►
3,
Last_MPM_M [candlntraPredModeO], and i Last_MPM _M[candIntraPredModel] )
Un modo se puede definir como disponible cuando el modo no ha existido anteriormente en candModeList.
[0149] Con respecto a la indicación del modo de intra-predicción de croma, la HEVC actual permite 6 modos, planar, vertical, horizontal, DC, predicción de croma basándose en señal de luma, y herencia del modo de predicción de luma. Una asignación de índice para estos modos puede ser la siguiente: planar(0), vertical(1), horizontal(2), DC(3) y predicción de croma basándose en la señal de luma (35). Sin embargo, en otros ejemplos, se utilizan otras asignaciones de índice. Entre todos, la herencia del modo de predicción de luma significa que la dirección de predicción de croma es la misma que la dirección de predicción de luma.
[0150] Por ejemplo, 0 se asigna a intra_chroma_pred_mode[0], 1 se asigna a intra_chroma_pred_mode[1], 2 se asigna a intra_chroma_pred_mode[2], y 3 se asigna a intra_chroma_pred_mode[3]. Si intra_pred_mode es igual a 0, 1, 2 o 3 (es decir, modo planar, vertical, horizontal o DC), 7 se asigna a intra_chroma_pred_mode[intra_pred_mode]. La FIG. 6 ilustra otro ejemplo que tiene una asignación diferente de valores de índice a modos de intra-predicción para componentes de luma. Por ejemplo, en la FIG. 6, si intra_pred_mode es igual a 0, 10, 26 o 1 (modo planar, vertical, horizontal o DC, respectivamente), entonces 34 (superior derecho) se asigna a intra_chroma_pred_mode[intra_pred_mode]. Es decir, si intra_pred_mode es igual al modo planar, vertical, horizontal o DC, entonces intra_chroma_pred_mode[intra_pred_mode] es igual al modo direccional superior derecho.
[0151] El diseño de Last_MPM puede ser el mismo para intraPredModeNum = 18 y los primeros 18 modos cuando intraPredModeNum = 35 para tener el mismo tamaño de tabla. Además, cuando intraPredModeNum = 35, los últimos 17 modos se pueden diseñar simétricamente con respecto al modo 1, 2 y 4 para ahorrar aún más el tamaño de la tabla.
[0152] En otro ejemplo, el número de modos de intra-predicción de croma disponibles puede ser fijo. Por ejemplo, se pueden indicar seis modos de intra-predicción de croma disponibles (IntraPredModeC). Para dos modos, la predicción de señal de luma y la reutilización del modo de intra-predicción de luma, permanecen sin cambios. Para los otros cuatro modos, se agregan dos opciones, que son los modos de intra-predicción adyacentes (Tabla 4.4 y Tabla 5.4) y los modos de inter-predicción adyacentes perpendiculares (Tabla 8 y Tabla 9).
[0153] Los otros cuatro modos se obtienen de la siguiente manera. 0 se asigna a intra_chroma_pred_mode[0], 1 se
asigna a intra_chroma_pred_mode[1], 2 se asigna a intra_chroma_pred_mode[2] y 3 se asigna a intra_chroma_pred_mode[3]. Si intra_pred_mode es igual a 0 o 3, 7 se asigna a
intra_chroma_pred_mode[intra_pred_mode]. De lo contrario, PredModeMinus1_M[intra_pred_mode] se asigna a intra_chroma_pred_mode[0], PredModePlusl_M[intra_pred_mode] se asigna a intra_chroma_pred_mode[1], PredMode_P_M[intra_pred_mode] se asigna a intra_chroma_pred_mode[2].
Tabla 8 - Asignación de modo perpendicular cuando intraPredModeNum es igual a 18
intraPredMode
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
PredMode_P_18
1 2 1 1 7 9 8 4 6 5 4 9 17 16 15 14 13 12
5
10
15
20
25
30
35
40
45
50
intraPrcdMode 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
PredMode P _35
1 2 1 1 7 9 8 4 6 5 4 9 17 16 15 14 13 12
intraPrcd Mode
1 8 í 9 2 0 2 1 22 23 24 25 26 27 28 29 30 31 32 33 34
PredMod e_P _35
1 1 3 4 3 3 3 2 31 30 29 28 27 26 25 24 23 22 21 20 1 9
[0154] En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones, como una o más instrucciones o código, pueden almacenarse en, y transmitirse por, un medio legible por ordenador, y ejecutarse mediante una unidad de procesamiento basándose en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos o unos medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder en general a (1) unos medios de almacenamiento tangibles legibles por ordenador que son no transitorios, o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0155] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda utilizarse para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe adecuadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una sede de la Red, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debería entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. Los discos, tal como se utiliza en el presente documento, incluye un disco compacto (CD), un disco láser, un disco óptico, un disco versátil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos habitualmente reproducen los datos magnéticamente, mientras que otros discos reproducen los datos ópticamente con láseres. Las combinaciones de lo anterior deberían incluirse también dentro del alcance de los medios legibles por ordenador.
[0156] Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), formaciones lógicas programables in situ (FPGA) u otros circuitos lógicos equivalentes, integrados o discretos. Por consiguiente, el término "procesador", como se usa en el presente documento, puede referirse a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de módulos de hardware y/o software dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Además, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
[0157] Las técnicas de la esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un teléfono inalámbrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, que incluyen uno o más procesadores como los descritos anteriormente, conjuntamente con software y/o firmware adecuados.

Claims (12)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    Un procedimiento de codificación de datos de vídeo, comprendiendo el procedimiento:
    determinar, para un bloque dentro de una imagen de datos de vídeo, un conjunto de modos de intra- predicción más probables para predecir el bloque de datos de vídeo a partir de los modos de intra- predicción disponibles para predecir el bloque de datos de vídeo, en el que el conjunto de modos de intra- predicción más probables tiene un tamaño que es igual a un número predeterminado que es mayor que o igual a dos, y en el que el tamaño se fija para todos los bloques en la imagen;
    proporcionar una palabra de código, en el que la palabra de código indica si el modo de intra-predicción real es uno de los modos de intra-predicción más probables, y si no proporciona una indicación del modo de intra-predicción real; y
    codificar el bloque usando el modo de intra-predicción real,
    en el que la determinación del conjunto de modos de intra-predicción más probables comprende:
    determinar un primer modo de intra-predicción para un bloque contiguo izquierdo del bloque;
    determinar un segundo modo de intra-predicción para un bloque contiguo superior del bloque;
    cuando el primer modo de intra-predicción es diferente del segundo modo de intra-predicción, incluir tanto el primer modo de intra-predicción como el segundo modo de intra-predicción en el conjunto de modos de intra-predicción más probables;
    cuando el primer modo de intra-predicción es el mismo que el segundo modo de intra-predicción, y cuando el primer y el segundo modos de intra-predicción comprenden un modo distinto de un modo planar, incluir el primer modo de intra-predicción y el modo planar en el conjunto de modos de intra- predicción más probables; y,
    cuando el primer modo de intra-predicción es el mismo que el segundo modo de intra-predicción, y cuando el primer y el segundo modos de intra-predicción comprenden un modo planar, incluir el modo planar y un modo Dc en el conjunto de modos de intra-predicción más probables.
    El procedimiento según la reivindicación 1, en el que el bloque comprende un bloque de luminancia, comprendiendo además el procedimiento:
    determinar, para un bloque de crominancia correspondiente al bloque de luminancia, una asignación de un conjunto de valores a un conjunto de modos de intra-predicción, con el conjunto de modos de intra- predicción que comprende un modo horizontal, un modo vertical, un modo planar, un modo DC y un modo de predicción de señal de luma, en el que cuando el modo de intra-predicción real para el bloque de luminancia comprende un modo distinto a los modos horizontal, vertical, planar y DC, el conjunto de modos de intra-predicción comprende además una reutilización del modo de intra-predicción de luma asignado a partir de un primer valor del conjunto de valores, y en el que cuando el modo de intra- predicción real para el bloque de luminancia comprende uno de un modo horizontal, un modo vertical, un modo planar y un modo DC, el conjunto de modos de intra-predicción comprende además un modo que no sea un modo horizontal, un modo vertical, un modo planar y un modo DC asignados a partir del primer valor del conjunto de valores;
    codificar un valor representativo de un modo de intra-predicción real para el bloque de crominancia basándose en la asignación del conjunto de valores al conjunto de modos; y
    codificar el bloque de crominancia usando el modo de intra-predicción real para el bloque de crominancia.
    El procedimiento según la reivindicación 1, en el que el tamaño del conjunto de modos de intra-predicción más probables es igual a tres, comprendiendo además el procedimiento:
    determinar una dirección de predicción del primer modo de intra-predicción;
    comparar la dirección de predicción del primer modo de intra-predicción con las direcciones de predicción de uno o más modos de intra-predicción disponibles distintos; e
    incluir un segundo modo de intra-predicción y un tercer modo de intra-predicción de el uno o más modos de intra-predicción disponibles en el conjunto de modos de intra-predicción más probables, en el que el segundo modo de intra-predicción y el tercer modo de intra-predicción tienen una dirección de predicción
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    que se determina que esté la más cerca de la dirección de predicción del primer modo de intra-predicción basándose en la comparación.
  2. 4. El procedimiento según la reivindicación 1, en el que:
    el tamaño del conjunto de modos de intra-predicción más probables es igual a cuatro.
  3. 5. El procedimiento según la reivindicación 1, que comprende además:
    seleccionar el modo de intra-predicción real, y
    en el que la codificación del bloque comprende además la codificación del bloque basándose en el modo de intra-predicción real.
  4. 6. El procedimiento según la reivindicación 1, en el que:
    codificar el bloque comprende además descodificar el bloque usando el modo de intra-predicción real, y
    codificar el valor representativo del modo de intra-predicción real comprende determinar el modo de intra- predicción real a partir del valor.
  5. 7. El procedimiento según la reivindicación 1, en el que cuando el modo de intra-predicción real es el modo planar, vertical, horizontal o DC, un modo de intra-predicción de croma es un modo de intra-predicción de dirección superior derecha.
  6. 8. Un producto de programa informático que comprende un medio de almacenamiento legible por ordenador que tiene instrucciones almacenadas en el mismo que, al ejecutarse, hacen que un procesador de un dispositivo de codificación de vídeo realice el procedimiento de acuerdo con cualquiera de las reivindicaciones anteriores.
  7. 9. Un dispositivo para la codificación de vídeo, que comprende:
    medios para determinar, para un bloque dentro de una imagen de datos de vídeo, un conjunto de modos de intra-predicción más probables para predecir el bloque de datos de vídeo a partir de los modos de intra-predicción disponibles para predecir el bloque de datos de vídeo, en el que el conjunto de modos de intra-predicción más probables tienen un tamaño que es igual a un número predeterminado que es mayor que o igual a dos, y en el que el tamaño se fija para todos los bloques en la imagen;
    medios para proporcionar una palabra de código, en el que la palabra de código indica si el modo de intra- predicción real es uno de los modos de intra-predicción más probables, y si no proporciona una indicación del modo de intra-predicción real;
    medios para codificar el bloque usando el modo de intra-predicción real;
    medios para determinar un primer modo de intra-predicción para un bloque contiguo izquierdo del bloque; y,
    medios para determinar un segundo modo de intra-predicción para un bloque contiguo superior del
    bloque,
    en el que:
    cuando el primer modo de intra-predicción sea diferente del segundo modo de intra-predicción, medios para incluir tanto el primer modo de intra-predicción como el segundo modo de intra-predicción en el conjunto de modos de intra-predicción más probables;
    cuando el primer modo de intra-predicción sea el mismo que el segundo modo de intra-predicción, y cuando el primer y el segundo modos de intra-predicción comprendan un modo distinto de un modo planar, medios para incluir el primer modo de intra-predicción y el modo planar en el conjunto de modos de intra-predicción más probables; y
    cuando el primer modo de intra-predicción sea el mismo que el segundo modo de intra-predicción, y cuando el primer y segundo modos de intra-predicción comprendan un modo planar, medios para incluir el modo planar y un modo DC en el conjunto de modos de intra-predicción más probables.
  8. 10. El dispositivo según la reivindicación 9, en el que el bloque comprende un bloque de luminancia, comprendiendo además el aparato:
    5
    10
    15
    20
    25
    30
    35
    40
    medios para determinar, para un bloque de crominancia correspondiente al bloque de luminancia, una asignación de un conjunto de valores a un conjunto de modos de intra-predicción, con el conjunto de modos de intra-predicción que comprende un modo horizontal, un modo vertical, un modo planar, un modo DC, y un modo de predicción de señal de luma, en el que cuando el modo de intra-predicción real para el bloque de luminancia comprende un modo distinto a los modos horizontal, vertical, planar y DC, el conjunto de modos de intra-predicción comprende además una reutilización del modo de intra-predicción de luma asignado a partir de un primer valor del conjunto de valores, y en el que cuando el modo de intra- predicción real para el bloque de luminancia comprende uno de un modo horizontal, un modo vertical, un modo planar y un modo DC, el conjunto de modos de intra-predicción comprende además un modo distinto a un modo horizontal, un modo vertical, un modo planar y un modo DC asignado desde el primer valor del conjunto de valores;
    medios para codificar un valor representativo de un modo de intra-predicción real para el bloque de crominancia basándose en la asignación del conjunto de valores al conjunto de modos; y
    medios para codificar el bloque de crominancia usando el modo de intra-predicción real para el bloque de crominancia.
  9. 11. El dispositivo según la reivindicación 9, en el que el tamaño del conjunto de modos de intra-predicción más probables es igual a tres, comprendiendo el dispositivo además:
    medios para determinar una dirección de predicción de un primer modo de intra-predicción;
    medios para comparar la dirección de predicción del primer modo de intra-predicción con las direcciones de predicción de uno o más modos de intra-predicción disponibles distintos;
    medios para incluir un segundo modo de intra-predicción y un tercer modo de intra-predicción de el uno o más modos de intra-predicción disponibles en el conjunto de modos de intra-predicción más probables, en el que el segundo modo de intra-predicción y el tercer modo de intra-predicción tienen una dirección de predicción que se determina que está la más cerca de la dirección de predicción del primer modo de intra- predicción basándose en la comparación.
  10. 12. El dispositivo según la reivindicación 9, en el que:
    el tamaño del conjunto de modos de intra-predicción más probables es igual a cuatro.
  11. 13. El dispositivo según la reivindicación 9, en el que el aparato comprende un codificador de vídeo:
  12. 14. El dispositivo según la reivindicación 9, en el que el aparato comprende un descodificador de vídeo.
ES12728346.3T 2011-06-09 2012-06-08 Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo Active ES2657546T3 (es)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201161495332P 2011-06-09 2011-06-09
US201161495332P 2011-06-09
US201161503712P 2011-07-01 2011-07-01
US201161503712P 2011-07-01
US201161504664P 2011-07-05 2011-07-05
US201161504664P 2011-07-05
US201161533118P 2011-09-09 2011-09-09
US201161533118P 2011-09-09
US201213491076 2012-06-07
US13/491,076 US9654785B2 (en) 2011-06-09 2012-06-07 Enhanced intra-prediction mode signaling for video coding using neighboring mode
PCT/US2012/041545 WO2012170812A1 (en) 2011-06-09 2012-06-08 Enhanced intra-prediction mode signaling for video coding using neighboring mode

Publications (1)

Publication Number Publication Date
ES2657546T3 true ES2657546T3 (es) 2018-03-05

Family

ID=47293185

Family Applications (2)

Application Number Title Priority Date Filing Date
ES17193257T Active ES2973247T3 (es) 2011-06-09 2012-06-08 Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo
ES12728346.3T Active ES2657546T3 (es) 2011-06-09 2012-06-08 Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES17193257T Active ES2973247T3 (es) 2011-06-09 2012-06-08 Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo

Country Status (21)

Country Link
US (2) US9654785B2 (es)
EP (2) EP2719180B1 (es)
JP (2) JP5805861B2 (es)
KR (2) KR101825275B1 (es)
CN (1) CN103597832B (es)
AU (1) AU2012267737B2 (es)
BR (1) BR112013031197B1 (es)
CA (1) CA2837952C (es)
DK (1) DK2719180T3 (es)
ES (2) ES2973247T3 (es)
HU (1) HUE035456T2 (es)
IL (1) IL229415A (es)
MX (1) MX336905B (es)
PL (1) PL2719180T3 (es)
PT (1) PT2719180T (es)
RU (1) RU2601843C2 (es)
SG (1) SG194971A1 (es)
SI (1) SI2719180T1 (es)
UA (1) UA110649C2 (es)
WO (1) WO2012170812A1 (es)
ZA (1) ZA201400151B (es)

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101356448B1 (ko) * 2008-10-01 2014-02-06 한국전자통신연구원 예측 모드를 이용한 복호화 장치
US8867854B2 (en) 2008-10-01 2014-10-21 Electronics And Telecommunications Research Institute Image encoder and decoder using undirectional prediction
EP2452499A1 (en) * 2009-07-06 2012-05-16 Thomson Licensing Methods and apparatus for spatially varying residue coding
US10123010B2 (en) * 2010-08-17 2018-11-06 M&K Holding Inc. Apparatus for encoding an image
US11284072B2 (en) 2010-08-17 2022-03-22 M&K Holdings Inc. Apparatus for decoding an image
MX2013006339A (es) * 2011-01-07 2013-08-26 Mediatek Singapore Pte Ltd Metodo y aparato para una mejor codificacion del modo de prediccion intra-luma.
KR101824241B1 (ko) * 2011-01-11 2018-03-14 에스케이 텔레콤주식회사 인트라 부가정보 부호화/복호화 장치 및 방법
KR102064157B1 (ko) 2011-03-06 2020-01-09 엘지전자 주식회사 휘도 샘플을 이용한 색차 블록의 화면 내 예측 방법 및 이러한 방법을 사용하는 장치
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
JP5386657B2 (ja) * 2011-06-13 2014-01-15 パナソニック株式会社 画像復号方法および画像復号装置
WO2012172796A1 (ja) * 2011-06-17 2012-12-20 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号装置、画像復号方法及び画像復号プログラム
US10123008B2 (en) * 2011-06-17 2018-11-06 Hfi Innovation Inc. Method and apparatus for coding of intra prediction mode
MY192581A (en) * 2011-06-28 2022-08-29 Samsung Electronics Co Ltd Video decoding method using intra prediction
EP2745519B1 (en) * 2011-08-17 2017-09-27 MediaTek Singapore Pte Ltd. Method and apparatus for intra prediction using non-square blocks
GB2494468B (en) * 2011-09-12 2014-01-15 Canon Kk Method and device for encoding or decoding information representing prediction modes
WO2013039676A1 (en) * 2011-09-13 2013-03-21 Mediatek Singapore Pte. Ltd. Method and apparatus for intra mode coding in hevc
KR101974952B1 (ko) * 2011-10-06 2019-05-07 인텔렉추얼디스커버리 주식회사 두 개의 후보 인트라 예측 모드를 이용한 화면 내 예측 모드의 부/복호화 방법 및 이러한 방법을 사용하는 장치
CN107197309B (zh) * 2011-10-07 2020-02-18 英迪股份有限公司 对视频信号进行解码的方法
ES2874955T3 (es) * 2011-10-18 2021-11-05 Lg Electronics Inc Método y dispositivo para la codificación y descodificación de una imagen y medio legible por ordenador
US9854262B2 (en) * 2011-10-24 2017-12-26 Infobridge Pte. Ltd. Method and apparatus for image encoding with intra prediction mode
EP3783898A1 (en) * 2011-10-24 2021-02-24 Innotive Ltd Methods for image encoding and decoding using intra prediction
LT2942954T (lt) * 2011-10-24 2020-08-10 Innotive Ltd Vaizdo dekodavimo aparatas
HUE041726T2 (hu) 2011-10-24 2019-05-28 Infobridge Pte Ltd Képdekódoló eszköz
KR102005468B1 (ko) * 2011-10-24 2019-10-01 (주)대가람 복원 블록을 생성하는 방법 및 장치
US10390016B2 (en) 2011-11-04 2019-08-20 Infobridge Pte. Ltd. Apparatus of encoding an image
KR20130049525A (ko) 2011-11-04 2013-05-14 오수미 잔차 블록 복원을 위한 역변환 방법
KR20130049524A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR20130049522A (ko) 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
US9154796B2 (en) * 2011-11-04 2015-10-06 Qualcomm Incorporated Intra-mode video coding
KR20130049523A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
KR20130049526A (ko) 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
KR20130058524A (ko) 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
KR102616815B1 (ko) * 2011-12-05 2023-12-21 엘지전자 주식회사 인트라 예측 방법 및 장치
CN103220506B (zh) 2012-01-19 2015-11-25 华为技术有限公司 一种编解码方法和设备
AU2012200319B2 (en) 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9210438B2 (en) * 2012-01-20 2015-12-08 Sony Corporation Logical intra mode naming in HEVC video coding
AU2012200345B2 (en) * 2012-01-20 2014-05-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit
PT3512197T (pt) * 2012-01-20 2020-09-16 Dolby Laboratories Licensing Corp Método de mapeamento de modo de intrapredição
US9264710B2 (en) * 2012-07-06 2016-02-16 Texas Instruments Incorporated Method and system for video picture intra-prediction estimation
CN104904209B (zh) * 2013-01-07 2018-07-24 Lg 电子株式会社 视频信号处理方法
US9516306B2 (en) 2013-03-27 2016-12-06 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
US9369708B2 (en) 2013-03-27 2016-06-14 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
UA115804C2 (uk) * 2013-04-07 2017-12-26 Долбі Інтернешнл Аб Сигналізація зміни наборів рівнів виведення
RU2637480C2 (ru) * 2013-04-12 2017-12-04 Интел Корпорейшн Упрощенное кодирование глубины с модифицированным внутрикадровым кодированием для кодирования трехмерных видеоданных
WO2015006169A1 (en) 2013-07-08 2015-01-15 Sony Corporation Improvement for palette coding mode
US20150271491A1 (en) * 2014-03-24 2015-09-24 Ati Technologies Ulc Enhanced intra prediction mode selection for use in video transcoding
US9654806B2 (en) * 2014-03-26 2017-05-16 Qualcomm Incorporated Determining palette size, palette entries and filtering of palette coded blocks in video coding
CN110278437B (zh) * 2014-06-20 2022-03-08 寰发股份有限公司 一种视频数据块的编码方法
JP5983715B2 (ja) * 2014-11-28 2016-09-06 株式会社Jvcケンウッド 画像復号装置、画像復号方法、及び画像復号プログラム
US10205968B2 (en) * 2015-02-13 2019-02-12 Mediatek Inc. Method and apparatus for palette index coding in video and image compression
US9756401B2 (en) * 2015-04-07 2017-09-05 Sony Corporation Processing and providing an image in which a plurality of symbols are encoded
CN115134593B (zh) * 2015-06-05 2024-07-23 杜比实验室特许公司 用于执行帧间预测的图像编解码方法、比特流存储方法
US10841593B2 (en) 2015-06-18 2020-11-17 Qualcomm Incorporated Intra prediction and intra mode coding
US11463689B2 (en) 2015-06-18 2022-10-04 Qualcomm Incorporated Intra prediction and intra mode coding
US10142627B2 (en) 2015-06-18 2018-11-27 Qualcomm Incorporated Intra prediction and intra mode coding
WO2017090961A1 (ko) * 2015-11-24 2017-06-01 삼성전자 주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
CN108605130B (zh) * 2015-11-27 2021-05-11 联发科技股份有限公司 一种用于对与区块相关的符号进行熵编解码的方法和装置
CN113438478B (zh) * 2016-04-06 2024-08-16 株式会社Kt 对视频进行编码、解码的方法及存储压缩视频数据的设备
US10547854B2 (en) * 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
CN109479129B (zh) 2016-07-18 2023-07-11 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
WO2018062699A1 (ko) * 2016-09-30 2018-04-05 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
EP3301915A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for omnidirectional video coding with adaptive intra most probable modes
US10506228B2 (en) 2016-10-04 2019-12-10 Qualcomm Incorporated Variable number of intra modes for video coding
US10958903B2 (en) * 2016-10-04 2021-03-23 Electronics And Telecommunications Research Institute Method and apparatus for encoding/decoding image and recording medium storing bit stream
CN116916017A (zh) 2016-10-28 2023-10-20 韩国电子通信研究院 视频编码/解码方法和设备以及存储比特流的记录介质
CN110115034B (zh) 2016-12-23 2023-01-13 华为技术有限公司 一种用于扩展预定定向帧内预测模式集合的帧内预测装置
EP3552392A1 (en) 2016-12-23 2019-10-16 Huawei Technologies Co., Ltd. An intra-prediction apparatus for removing a directional intra-prediction mode from a set of predetermined directional intra-prediction modes
KR102331940B1 (ko) * 2016-12-23 2021-11-26 후아웨이 테크놀러지 컴퍼니 리미티드 지향성 인트라 예측 모드의 세트 내에서 확장 지향성 인트라 예측 모드를 시그널링하는 인코딩 장치
JP6917719B2 (ja) * 2017-01-27 2021-08-11 日本放送協会 イントラ予測器、画像符号化装置、画像復号装置およびプログラム
US11496747B2 (en) * 2017-03-22 2022-11-08 Qualcomm Incorporated Intra-prediction mode propagation
WO2018181252A1 (en) * 2017-03-28 2018-10-04 Panasonic Intellectual Property Corporation Of America Encoding apparatus, decoding apparatus, encoding method, and decoding method
EP3399754A1 (en) * 2017-05-04 2018-11-07 Thomson Licensing Method and apparatus for most probable mode (mpm) reordering for intra prediction
US10742975B2 (en) 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
US10630978B2 (en) * 2017-05-12 2020-04-21 Blackberry Limited Methods and devices for intra-coding in video compression
EP3422716A1 (en) * 2017-06-26 2019-01-02 Thomson Licensing Method and apparatus for most probable mode (mpm) sorting and signaling in video encoding and decoding
WO2019001710A1 (en) * 2017-06-29 2019-01-03 Huawei Technologies Co., Ltd. APPARATUSES AND METHODS FOR ENCODING AND DECODING A VIDEO CODING BLOCK OF A MULTIVATE VIDEO SIGNAL
US11290716B2 (en) 2017-08-03 2022-03-29 Sharp Kabushiki Kaisha Systems and methods for partitioning video blocks in an inter prediction slice of video data
WO2019107927A1 (ko) * 2017-11-28 2019-06-06 한국전자통신연구원 양방향 인트라 예측 방법 및 장치
KR20190076918A (ko) * 2017-12-22 2019-07-02 주식회사 윌러스표준기술연구소 비디오 신호 처리 방법 및 장치
WO2019129166A1 (en) * 2017-12-29 2019-07-04 Fg Innovation Ip Company Limited Device and method for coding video data based on mode list including different mode groups
CN118018722A (zh) * 2018-05-10 2024-05-10 三星电子株式会社 视频编码方法和设备以及视频解码方法和设备
BR112020026381A2 (pt) 2018-06-25 2021-03-23 Guangdong Oppo Mobile Telecommunications Corp., Ltd. método de intrapredição
US11277644B2 (en) 2018-07-02 2022-03-15 Qualcomm Incorporated Combining mode dependent intra smoothing (MDIS) with intra interpolation filter switching
US10638161B2 (en) 2018-07-13 2020-04-28 Tencent America LLC Methods and apparatus for most probable mode derivation
WO2020050697A1 (ko) * 2018-09-06 2020-03-12 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2020055159A1 (ko) * 2018-09-11 2020-03-19 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
CN112640453B (zh) * 2018-09-13 2023-03-10 华为技术有限公司 帧内预测的方法和装置
EP3850840A1 (en) 2018-09-13 2021-07-21 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Affine linear weighted intra predictions
EP3709644A1 (en) * 2019-03-12 2020-09-16 Ateme Method for image processing and apparatus for implementing the same
EP3629579A1 (en) 2018-09-27 2020-04-01 Ateme Method for image processing and apparatus for implementing the same
US11303885B2 (en) 2018-10-25 2022-04-12 Qualcomm Incorporated Wide-angle intra prediction smoothing and interpolation
KR20210087928A (ko) 2018-11-06 2021-07-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측을 위한 파라미터 유도의 복잡성 감소
US10848763B2 (en) * 2018-11-14 2020-11-24 Tencent America LLC Method and apparatus for improved context design for prediction mode and coded block flag (CBF)
US11652984B2 (en) * 2018-11-16 2023-05-16 Qualcomm Incorporated Position-dependent intra-inter prediction combination in video coding
WO2020108591A1 (en) 2018-12-01 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
GB2579824B (en) 2018-12-14 2022-05-18 British Broadcasting Corp Video encoding and video decoding
JP7311263B2 (ja) 2018-12-17 2023-07-19 ナブテスコ株式会社 ドアロック装置、およびドアロックシステム、およびドア制御装置
JP2022514870A (ja) 2018-12-20 2022-02-16 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 隣接サンプル減少を伴う線形またはアフィン変換を使用するイントラ予測
GB2580326A (en) 2018-12-28 2020-07-22 British Broadcasting Corp Video encoding and video decoding
US11595662B2 (en) * 2019-02-06 2023-02-28 Tencent America LLC Method and apparatus for neighboring block availability in video coding
WO2020162797A1 (en) * 2019-02-07 2020-08-13 Huawei Technologies Co., Ltd. Method and apparatus of intra prediction mode signaling
WO2020169102A1 (en) 2019-02-24 2020-08-27 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
GB2596394B (en) * 2019-03-08 2022-08-17 British Broadcasting Corp Method of signalling in a video codec
JP2022068379A (ja) * 2019-03-08 2022-05-10 シャープ株式会社 画像復号装置
GB2582023A (en) * 2019-03-08 2020-09-09 British Broadcasting Corp Method of signalling in a video codec
US11405638B2 (en) * 2019-03-17 2022-08-02 Tencent America LLC Method and apparatus for video coding by determining intra prediction direction based on coded information of neighboring blocks
AU2020240981A1 (en) * 2019-03-21 2021-10-28 Huawei Technologies Co., Ltd. Method and apparatus for intra-prediction
KR20210094057A (ko) 2019-03-24 2021-07-28 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서 크로마 인트라 예측을 위한 방법 및 장치
BR112021025335A2 (pt) * 2019-06-14 2022-02-01 Fraunhofer Ges Forschung Aparelho para decodificar ou codificar um bloco predeterminado de uma imagem com o uso de intraprevisão, métodos e fluxo de dados
WO2020256599A1 (en) * 2019-06-21 2020-12-24 Huawei Technologies Co., Ltd. Method and apparatus of quantizing coefficients for matrix-based intra prediction technique
EP3970365A4 (en) * 2019-06-21 2022-08-10 Huawei Technologies Co., Ltd. MATRIX-BASED INTRA PREDICTION FOR STILL IMAGE AND VIDEO CODING
US11330298B2 (en) * 2019-06-25 2022-05-10 Qualcomm Incorporated Simplified intra chroma mode coding in video coding
BR112022001411A2 (pt) 2019-08-01 2022-03-22 Huawei Tech Co Ltd Codificador, decodificador e métodos correspondentes de derivação de modo intra de croma
KR20220046683A (ko) * 2019-10-03 2022-04-14 후아웨이 테크놀러지 컴퍼니 리미티드 기하학적 파티션 모드를 위한 코딩 프로세스
GB2588406B (en) * 2019-10-22 2022-12-07 British Broadcasting Corp Video encoding and video decoding
EP4046378A4 (en) * 2019-12-16 2023-01-04 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR FILTERING BY INTERPOLATION OF REFERENCE SAMPLES FOR INTRA DIRECTIONAL PREDICTION
WO2021034231A2 (en) * 2019-12-19 2021-02-25 Huawei Technologies Co., Ltd. Method and apparatus of position dependent prediction combination for oblique directional intra prediction
EP4074048A4 (en) * 2019-12-31 2023-03-08 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR INTRAPREDICTION
US12015765B2 (en) * 2021-04-26 2024-06-18 Tencent America LLC Template matching based intra prediction
CN117356093A (zh) * 2021-06-03 2024-01-05 创峰科技 视频编码中的量化等级二值化
US11917136B2 (en) * 2021-07-15 2024-02-27 Tencent America LLC Intra mode coding
US20230069984A1 (en) * 2021-08-24 2023-03-09 Tencent America LLC Hardware friendly design for intra mode coding

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
EP1429564A4 (en) 2001-08-28 2012-07-25 Ntt Docomo Inc MOVING IMAGE AND TRANSMISSION SYSTEM, MOVE IMAGE AND TRANSMISSION METHOD, AND CODING DEVICE, DECODING DEVICE, CODING METHOD, DECODING METHOD, AND PROGRAM THEREFOR
US6983079B2 (en) 2001-09-20 2006-01-03 Seiko Epson Corporation Reducing blocking and ringing artifacts in low-bit-rate coding
US6980596B2 (en) 2001-11-27 2005-12-27 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
KR20030073120A (ko) 2002-03-08 2003-09-19 주식회사 엘지이아이 임베디드 시스템에서 동영상 인트라 예측모드 구현방법
US7170937B2 (en) 2002-05-01 2007-01-30 Texas Instruments Incorporated Complexity-scalable intra-frame prediction technique
US7386048B2 (en) * 2002-05-28 2008-06-10 Sharp Laboratories Of America, Inc. Methods and systems for image intra-prediction mode organization
ES2747368T3 (es) 2002-05-28 2020-03-10 Dolby Int Ab Método y sistemas para la estimación, comunicación y organización de modos de intra-predicción de imágenes
JP4490261B2 (ja) 2002-06-11 2010-06-23 ノキア コーポレイション イントラ符号化に基づく空間予測
US7289674B2 (en) * 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
WO2004080084A1 (en) 2003-03-03 2004-09-16 Agency For Science, Technology And Research Fast mode decision algorithm for intra prediction for advanced video coding
US7369707B2 (en) 2003-10-28 2008-05-06 Matsushita Electric Industrial Co., Ltd. Intra-picture prediction coding method
AU2004310915B2 (en) 2003-12-01 2008-05-22 Samsung Electronics Co., Ltd. Method and apparatus for scalable video encoding and decoding
EP1558039A1 (en) * 2004-01-21 2005-07-27 Deutsche Thomson-Brandt Gmbh Method and apparatus for generating/evaluating prediction information in picture signal encoding/decoding
EP1605706A2 (en) 2004-06-09 2005-12-14 Broadcom Corporation Advanced video coding (AVC) intra prediction scheme
KR100627329B1 (ko) * 2004-08-19 2006-09-25 전자부품연구원 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법
JP4501631B2 (ja) 2004-10-26 2010-07-14 日本電気株式会社 画像符号化装置及び方法、画像符号化装置のコンピュータ・プログラム、並びに携帯端末
TWI256258B (en) 2004-12-16 2006-06-01 Ind Tech Res Inst Method to speed up the mode decision of video coding
US20060153299A1 (en) 2005-01-07 2006-07-13 Kabushiki Kaisha Toshiba Coded video sequence conversion apparatus, method and program product for coded video sequence conversion
US7830960B2 (en) * 2005-01-13 2010-11-09 Qualcomm Incorporated Mode selection techniques for intra-prediction video encoding
US7751478B2 (en) 2005-01-21 2010-07-06 Seiko Epson Corporation Prediction intra-mode selection in an encoder
US7706442B2 (en) * 2005-02-15 2010-04-27 Industrial Technology Research Institute Method for coding mode selection of intra prediction in video compression
KR100678911B1 (ko) 2005-07-21 2007-02-05 삼성전자주식회사 방향적 인트라 예측의 적용을 확장하여 비디오 신호를인코딩하고 디코딩하는 방법 및 장치
US7840078B2 (en) 2006-07-10 2010-11-23 Sharp Laboratories Of America, Inc. Methods and systems for image processing control based on adjacent block characteristics
US8976870B1 (en) * 2006-08-30 2015-03-10 Geo Semiconductor Inc. Block and mode reordering to facilitate parallel intra prediction and motion vector prediction
FR2908007A1 (fr) 2006-10-31 2008-05-02 Thomson Licensing Sas Procede de codage d'une sequence d'images
CN101222641B (zh) 2007-01-11 2011-08-24 华为技术有限公司 帧内预测编解码方法及其装置
FR2916931A1 (fr) 2007-05-29 2008-12-05 Thomson Licensing Sas Procede de selection d'une donnee de codage et dispositif de codage implementant ledit procede
JP4650461B2 (ja) 2007-07-13 2011-03-16 ソニー株式会社 符号化装置、符号化方法、プログラム、及び記録媒体
KR100924048B1 (ko) 2007-07-30 2009-10-27 한국과학기술원 비디오 부호화에서 화면내 방향성 예측모드 고속 결정방법
TW200910971A (en) 2007-08-22 2009-03-01 Univ Nat Cheng Kung Direction detection algorithms for H.264 intra prediction
JP2009111691A (ja) 2007-10-30 2009-05-21 Hitachi Ltd 画像符号化装置及び符号化方法、画像復号化装置及び復号化方法
US8467451B2 (en) 2007-11-07 2013-06-18 Industrial Technology Research Institute Methods for selecting a prediction mode
EP2223527A1 (en) 2007-12-21 2010-09-01 Telefonaktiebolaget LM Ericsson (publ) Adaptive intra mode selection
JP4962400B2 (ja) * 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US8761253B2 (en) * 2008-05-28 2014-06-24 Nvidia Corporation Intra prediction mode search scheme
JP2010016454A (ja) * 2008-07-01 2010-01-21 Sony Corp 画像符号化装置および方法、画像復号装置および方法、並びにプログラム
KR101306834B1 (ko) 2008-09-22 2013-09-10 에스케이텔레콤 주식회사 인트라 예측 모드의 예측 가능성을 이용한 영상 부호화/복호화 장치 및 방법
WO2010036772A2 (en) 2008-09-26 2010-04-01 Dolby Laboratories Licensing Corporation Complexity allocation for video and image coding applications
CA2740467C (en) 2008-10-22 2013-08-20 Nippon Telegraph And Telephone Corporation Scalable video encoding method and scalable video encoding apparatus
CN102308586B (zh) 2009-02-06 2015-03-25 汤姆森特许公司 用于视频编码器和解码器隐式和半隐式帧内模式信令的方法和装置
CN101854540B (zh) 2009-04-01 2014-07-02 辉达公司 用于应用h.264视频编码标准的帧内预测方法及装置
JP5169978B2 (ja) 2009-04-24 2013-03-27 ソニー株式会社 画像処理装置および方法
KR101702553B1 (ko) 2009-07-04 2017-02-03 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
US20110002386A1 (en) 2009-07-06 2011-01-06 Mediatek Singapore Pte. Ltd. Video encoder and method for performing intra-prediction and video data compression
KR101507344B1 (ko) 2009-08-21 2015-03-31 에스케이 텔레콤주식회사 가변 길이 부호를 이용한 인트라 예측모드 부호화 방법과 장치, 및 이를 위한기록 매체
US9154798B2 (en) 2009-09-14 2015-10-06 Thomson Licensing Methods and apparatus for efficient video encoding and decoding of intra prediction mode
KR20110047310A (ko) 2009-10-30 2011-05-09 삼성전자주식회사 비디오 인코딩 장치 및 비디오 인코딩 방법
KR101545382B1 (ko) * 2010-01-08 2015-08-18 노키아 코포레이션 비디오 코딩을 위한 장치, 방법 및 컴퓨터 프로그램
CN102754442A (zh) 2010-02-10 2012-10-24 Lg电子株式会社 处理视频信号的方法和装置
KR20110113561A (ko) * 2010-04-09 2011-10-17 한국전자통신연구원 적응적인 필터를 이용한 인트라 예측 부호화/복호화 방법 및 그 장치
KR101904948B1 (ko) * 2010-04-09 2018-10-08 엘지전자 주식회사 비디오 데이터 처리 방법 및 장치
CA2798231C (en) * 2010-05-14 2022-10-04 Thomson Licensing Methods and apparatus for intra coding a block having pixels assigned to groups
CN106067973B (zh) * 2010-05-19 2019-06-18 Sk电信有限公司 视频解码设备
US8902978B2 (en) 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
CN101877792B (zh) 2010-06-17 2012-08-08 无锡中星微电子有限公司 帧内模式预测方法与装置、编码器
US8855188B2 (en) * 2010-07-15 2014-10-07 Sharp Laboratories Of America, Inc. Method of parallel video coding based on mapping
MX2013001661A (es) 2010-09-30 2013-03-21 Panasonic Corp Metodo de decodificacion de imagen, metodo de codificacion de imagen, aparato de decodificacion de imagen, aparato de codificacion de imagen, programa, y circuito integrado.
MX2013005754A (es) 2010-11-25 2013-08-01 Lg Electronics Inc Metodo para señalizar informacion de imagen, y metodo para decodificar informacion de imagen utilizando el mismo.
KR20120070479A (ko) 2010-12-21 2012-06-29 한국전자통신연구원 화면 내 예측 방향 정보 부호화/복호화 방법 및 그 장치
MY195713A (en) 2010-12-23 2023-02-07 Samsung Electronics Co Ltd Method and Device for Encoding Intra Prediction Mode for Image Prediction Unit, and Method and Device for Decoding Intra Prediction Mode for Image Prediction Unit
MX2013006339A (es) 2011-01-07 2013-08-26 Mediatek Singapore Pte Ltd Metodo y aparato para una mejor codificacion del modo de prediccion intra-luma.
WO2012092761A1 (en) 2011-01-07 2012-07-12 Mediatek Singapore Pte. Ltd. Method and apparatus for improved intra prediction mode coding
JP5781313B2 (ja) 2011-01-12 2015-09-16 株式会社Nttドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
JP2012147332A (ja) 2011-01-13 2012-08-02 Sony Corp 符号化装置および符号化方法、並びに復号装置および復号方法
CN102595121A (zh) 2011-01-15 2012-07-18 华为技术有限公司 帧内预测模式二进制化的方法、解码方法、装置和系统
CN102685474B (zh) 2011-03-10 2014-11-05 华为技术有限公司 预测模式的编解码方法、编解码设备及网络系统
AU2011201336B2 (en) 2011-03-23 2013-09-05 Canon Kabushiki Kaisha Modulo embedding of video parameters
WO2012134246A2 (ko) 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
PT2882190T (pt) 2011-04-21 2019-02-25 Hfi Innovation Inc Método e aparelho para filtragem em laço melhorada
KR101383775B1 (ko) 2011-05-20 2014-04-14 주식회사 케이티 화면 내 예측 방법 및 장치
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
WO2012164902A1 (ja) 2011-05-30 2012-12-06 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号装置、画像復号方法及び画像復号プログラム
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
US10070126B2 (en) * 2011-06-28 2018-09-04 Hfi Innovation Inc. Method and apparatus of intra mode coding
JP2013058939A (ja) 2011-09-08 2013-03-28 Sharp Corp 画像復号装置、および画像符号化装置

Also Published As

Publication number Publication date
IL229415A (en) 2016-04-21
US9654785B2 (en) 2017-05-16
BR112013031197B1 (pt) 2022-05-17
EP2719180B1 (en) 2017-11-08
PL2719180T3 (pl) 2018-04-30
EP3282702B1 (en) 2024-03-06
PT2719180T (pt) 2018-02-07
HUE035456T2 (en) 2018-05-02
UA110649C2 (uk) 2016-01-25
SG194971A1 (en) 2013-12-30
ES2973247T3 (es) 2024-06-19
CN103597832B (zh) 2017-05-24
CA2837952C (en) 2018-02-06
EP3282702C0 (en) 2024-03-06
ZA201400151B (en) 2020-05-27
BR112013031197A2 (pt) 2017-01-31
US20170214940A1 (en) 2017-07-27
DK2719180T3 (en) 2018-02-05
JP5805861B2 (ja) 2015-11-10
SI2719180T1 (en) 2018-02-28
RU2013158134A (ru) 2015-07-20
IL229415A0 (en) 2014-01-30
CA2837952A1 (en) 2012-12-13
WO2012170812A1 (en) 2012-12-13
EP2719180A1 (en) 2014-04-16
JP6250583B2 (ja) 2017-12-20
JP2014517630A (ja) 2014-07-17
MX336905B (es) 2016-02-02
US20120314766A1 (en) 2012-12-13
AU2012267737B2 (en) 2015-12-03
MX2013014484A (es) 2014-03-27
KR101825275B1 (ko) 2018-02-02
EP3282702A1 (en) 2018-02-14
JP2015164328A (ja) 2015-09-10
KR101600720B1 (ko) 2016-03-21
CN103597832A (zh) 2014-02-19
KR20150091184A (ko) 2015-08-07
KR20140022952A (ko) 2014-02-25
RU2601843C2 (ru) 2016-11-10
US10264280B2 (en) 2019-04-16

Similar Documents

Publication Publication Date Title
ES2657546T3 (es) Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo
ES2611349T3 (es) Codificación de Indicador de bloque codificado (CBF) para el formato de muestra 4:2:2 en codificación de vídeo
KR102292788B1 (ko) 비디오 코딩을 위한 다중-유형-트리 프레임워크
ES2779461T3 (es) Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo
ES2715555T3 (es) Predicción residual de componentes cruzadas adaptativa
ES2867583T3 (es) Codificación de mensajes de SEI de MCTS anidados
ES2561609T3 (es) Agrupación de elementos sintácticos codificados por circunvalación en la codificación de vídeo
ES2975180T3 (es) Modificación de las profundidades de bits en la codificación de transformación de espacio de color
ES2656494T3 (es) Filtro intra-suavizante para codificación de vídeo
ES2841424T3 (es) Diseño unificado para esquemas de división de imágenes
ES2750957T3 (es) Señalización de predictores de paleta con código de longitud de ejecución para codificación de vídeo
ES2648312T3 (es) Relleno de píxeles de borde para intra-predicción en codificación de vídeo
ES2546678T3 (es) Codificación de vídeo usando resolución adaptativa de vectores de movimiento
ES2673069T3 (es) Procesamiento paralelo de frente de onda para codificación de vídeo
ES2608595T3 (es) Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC
ES2897708T3 (es) Modelado de contexto eficiente en memoria
ES2763443T3 (es) Codificación de vídeo en modo intra
ES2673939T3 (es) Codificación de la posición de un último coeficiente significativo dentro de un bloque de vídeo en base a un orden de exploración para el bloque en codificación de vídeo
ES2761301T3 (es) Coeficientes de codificación por entropía usando un modelo de contexto conjunto
ES2692387T3 (es) Indicación de la selección del modo de predicción intra para codificación de vídeo usando CABAC
ES2649532T3 (es) Predicción ponderada explícita de alta precisión para la codificación de vídeo
ES2736312T3 (es) Señalización de imágenes de referencia a largo plazo para codificación de vídeo
ES2616486T3 (es) Obtención de contexto para la codificación de última posición para la codificación de vídeo
US9350998B2 (en) Coding of significance flags
JP2017523672A (ja) ビデオコーディングにおける成分間予測