ES2763443T3 - Codificación de vídeo en modo intra - Google Patents

Codificación de vídeo en modo intra Download PDF

Info

Publication number
ES2763443T3
ES2763443T3 ES12784854T ES12784854T ES2763443T3 ES 2763443 T3 ES2763443 T3 ES 2763443T3 ES 12784854 T ES12784854 T ES 12784854T ES 12784854 T ES12784854 T ES 12784854T ES 2763443 T3 ES2763443 T3 ES 2763443T3
Authority
ES
Spain
Prior art keywords
intra
block
video
current block
mode
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
ES12784854T
Other languages
English (en)
Inventor
Vadim Seregin
Wei-Jung Chien
Marta Karczewicz
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 ES2763443T3 publication Critical patent/ES2763443T3/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/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

Un procedimiento de codificación de datos de vídeo, comprendiendo el procedimiento: determinar un modo intra para predecir un bloque actual de datos de vídeo; determinar los modos más probables, MPM, para predecir el bloque actual de datos de vídeo, siendo los modos más probables modos intra de bloques codificados previamente que son contiguos al bloque actual; comparar el modo intra del bloque actual con cada uno de los MPM en un orden de comparación; asignar valores de índice a los MPM en el orden en el que se compara el modo intra del bloque actual con los MPM; y señalar, cuando uno de los MPM para predecir el bloque actual coincide con el modo intra para predecir el bloque actual, el índice del MPM coincidente.

Description

DESCRIPCIÓN
Codificación de vídeo en modo intra
CAMPO TÉCNICO
[0001] La divulgación se refiere a la codificación de vídeo y, más en particular, a procedimientos y aparatos para codificar y descodificar datos de vídeo.
ANTECEDENTES
[0002] Las capacidades de vídeo digital se pueden incorporar en una amplia gama de dispositivos, que incluye televisores digitales, sistemas de radiodifusión digital directa, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, ordenadores de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, los denominados "teléfonos inteligentes", dispositivos de videoconferencia, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital 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, ITU-T H.264/MPEG-4, parte 10, codificación de vídeo avanzada (AVC), la norma de codificación de vídeo de alta eficacia (HEVC) actualmente en desarrollo y las ampliaciones de dichas normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente implementando dichas técnicas de compresión de vídeo.
[0003] Las técnicas de compresión de vídeo realizan predicción espacial (intraimagen) y/o predicción temporal (interimagen) para reducir o eliminar la redundancia intrínseca a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo (por ejemplo, una imagen de vídeo o una parte de una imagen de vídeo) se puede dividir en bloques de vídeo, que también se pueden denominar bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un fragmento intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen. Los bloques de vídeo en un fragmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen, o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes se pueden denominar tramas y las imágenes de referencia se pueden denominar 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 intercodificado 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 intracodificado se codifica de acuerdo con un modo de intracodificación y los datos residuales. Para una compresión adicional, los datos residuales se pueden transformar desde el dominio de píxel a un dominio de transformada, dando como resultado coeficientes de transformada residuales, que a continuación se pueden cuantificar. Los coeficientes de transformada cuantificados, organizados inicialmente en una matriz bidimensional, se pueden explorar para producir un vector unidimensional de coeficientes de transformada, y se puede aplicar codificación por entropía para lograr aún más compresión.
SUMARIO
[0005] En general, la presente divulgación se refiere a técnicas para la codificación de vídeo. Las técnicas de la presente divulgación se refieren en general a la codificación y descodificación de datos de vídeo. En algunos ejemplos, las técnicas se refieren a la clasificación de los modos de intrapredicción más probables (MPM). Es decir, determinados aspectos de la presente divulgación se refieren a evitar la clasificación de los MPM, lo que puede reducir la complejidad del codificador de vídeo. Otros aspectos de la presente divulgación se refieren a un MPM por defecto, un orden para determinar un MPM y otros conceptos que se refieren a los MPM.
[0006] En un ejemplo, la divulgación describe un procedimiento de codificación de datos de vídeo. El procedimiento incluye determinar un modo intra para predecir un bloque actual de datos de vídeo, determinar los modos más probables (MPM) para predecir el bloque actual de datos de vídeo, determinar un índice para cada uno de los MPM en base a un orden en el que el modo intra para predecir el bloque actual se compara con los MPM y señalar, cuando uno de los MPM para predecir el bloque actual coincide con el modo intra para predecir el bloque actual, el índice del MPM coincidente.
[0007] En otro ejemplo, la divulgación describe un aparato para codificar datos de vídeo que incluye uno o más procesadores configurados para determinar un modo intra para predecir un bloque actual de datos de vídeo, determinar los MPM para predecir el bloque actual de datos de vídeo, determinar un índice para cada uno de los MPM en base a un orden en el que se compara el modo intra para predecir el bloque actual con los MPM, y señalar, cuando uno de los MPM para predecir el bloque actual coincide con el modo intra para predecir el bloque actual, el índice del MPM coincidente.
[0008] En otro ejemplo, la divulgación describe un medio de almacenamiento legible por ordenador. El medio de almacenamiento legible por ordenador que ha almacenado en el mismo instrucciones que tras su ejecución hacen que uno o más procesadores de un dispositivo determinen un modo intra para predecir un bloque actual de datos de vídeo, determinen los MPM para predecir el bloque actual de datos de vídeo, determinen un índice para cada uno de los MPM en base a un orden en el que el modo intra para predecir el bloque actual se compara con los MPM, y señalen, cuando uno de los MPM para predecir el bloque actual coincide con el modo intra para predecir el bloque actual, el índice del MPM coincidente.
[0009] En otro ejemplo, la divulgación describe un aparato para codificar datos de vídeo que incluye medios para determinar un modo intra para predecir un bloque actual de datos de vídeo, medios para determinar los MPM para predecir el bloque actual de datos de vídeo, medios para determinar un índice para cada uno de los MPM en base a un orden en el que el modo intra para predecir el bloque actual se compara con los MPM, y medios para señalar, cuando uno de los MPM para predecir el bloque actual coincide con el modo intra para predecir el bloque actual, el índice del MPM coincidente.
[0010] En otro ejemplo, la divulgación describe un procedimiento de descodificación de datos de vídeo, incluyendo el procedimiento generar, cuando un modo intra para un bloque actual comprende un MPM, una lista de los MPM para un bloque actual de datos de vídeo, en el que la lista de los MPM se organiza en un orden en el que el modo intra para el bloque actual de datos de vídeo se compara con uno o más modos intra asociados a uno o más bloques de referencia de datos de vídeo, determinar un índice de MPM que identifica el modo intra para el bloque actual en la lista de los MPM, identificar el modo intra para el bloque actual usando el índice de MPM, y descodificar el bloque actual con el modo intra identificado para el bloque actual.
[0011] En otro ejemplo, la divulgación describe un aparato que incluye uno o más procesadores configurados para, cuando un modo intra para un bloque actual comprende un MPM generar una lista de los MPM para un bloque actual de datos de vídeo, en el que la lista de los MPM se organiza en un orden en el que el modo intra para el bloque actual de datos de vídeo se compara con uno o más modos intra asociados a uno o más bloques de referencia de datos de vídeo, determinar un índice de MPM que identifique el modo intra para el bloque actual en la lista de los MPM, identificar el modo intra para el bloque actual usando el índice de MPM y descodificar el bloque actual con el modo intra identificado para el bloque actual.
[0012] En otro ejemplo, la divulgación describe un medio de almacenamiento legible por ordenador. El medio de almacenamiento legible por ordenador que ha almacenado en el mismo instrucciones que tras su ejecución hacen que uno o más procesadores de un dispositivo generen, cuando un modo intra para un bloque actual comprende un MPM, una lista de los MPM para un bloque actual de datos de vídeo, en el que la lista de los MPM se organiza en un orden en el que el modo intra para el bloque actual de datos de vídeo se compara con uno o más modos intra asociados a uno o más bloques de referencia de datos de vídeo, determinen un índice de MPM que identifique el modo intra para el bloque actual en la lista de los MPM, identifiquen el modo intra para el bloque actual usando el índice de MPM, y descodifiquen el bloque actual con el modo intra identificado para el bloque actual.
[0013] En otro ejemplo, la divulgación describe un aparato para descodificar datos de vídeo, incluyendo el aparato medios para generar, cuando un modo intra para un bloque actual comprende un MPM, una lista de los MPM para un bloque actual de datos de vídeo, en el que la lista de los MPM se organiza en un orden en el que el modo intra para el bloque actual de datos de vídeo se compara con uno o más modos intra asociados a uno o más bloques de referencia de datos de vídeo, medios para determinar un índice de MPM que identifique el modo intra para el bloque actual en la lista de los MPM, medios para identificar el modo intra para el bloque actual usando el índice de MPM, y medios para descodificar el bloque actual con el modo intra identificado para el bloque actual.
[0014] Los detalles de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y en la descripción a continuación. Otros rasgos característicos, objetivos y ventajas 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 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo que puede utilizar las técnicas descritas en la presente divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo que puede implementar las técnicas descritas en la presente divulgación.
La FIG. 3 es un diagrama de bloques que ilustra un descodificador de vídeo de ejemplo que puede implementar las técnicas descritas en la presente divulgación.
La FIG. 4 es un diagrama de bloques que ilustra bloques de datos de vídeo que se pueden considerar durante la predicción del modo intra.
La FIG. 5 es un diagrama conceptual que ilustra la predicción del modo intra.
La FIG. 6 es otro diagrama conceptual que ilustra la predicción del modo intra.
La FIG. 7 es un diagrama de bloques que ilustra los candidatos de modo intra más probables, de acuerdo con los aspectos de la presente divulgación.
La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con uno o más ejemplos descritos en la presente divulgación.
La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con uno o más ejemplos descritos en la presente divulgación.
La FIG. 10 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con uno o más ejemplos descritos en la presente divulgación.
DESCRIPCIÓN DETALLADA
[0016] En un ejemplo, los aspectos de la presente divulgación están dirigidos a la clasificación de los modos de intrapredicción más probables (MPM). Por ejemplo, de acuerdo con algunas técnicas de codificación de vídeo, un codificador de vídeo (por ejemplo, un codificador de vídeo o descodificador de vídeo) puede clasificar los MPM antes de determinar y señalar un MPM para un bloque que se está codificando actualmente. Los aspectos de la presente divulgación se refieren a eliminar dicha clasificación, lo que puede reducir la complejidad del codificador de vídeo.
[0017] En un ejemplo, un codificador de vídeo puede generar una lista de los MPM que incluye los modos de intrapredicción de un conjunto de MPM en un orden en el que los MPM aparecen en una imagen o fragmento de datos de vídeo (por ejemplo, un orden de codificación). En otro ejemplo, el codificador de vídeo puede generar una lista de los MPM en un orden en el que el codificador de vídeo verifica si un modo intra de un bloque contiguo es el mismo que el bloque que se está codificando actualmente (denominado en el presente documento "orden de verificación"). El codificador de vídeo puede señalar un MPM de acuerdo con un índice en la lista generada, y sin clasificar o reordenar los MPM en la lista. Un descodificador de vídeo puede realizar el mismo procedimiento para generar la lista de los MPM, obtener un índice para la lista de un flujo de bits codificado, y seleccionar un MPM de la lista de acuerdo con el índice sin clasificar o reordenar los MPM en la lista.
[0018] En un ejemplo con propósitos ilustrativos, un codificador de vídeo puede en primer lugar verificar si un modo intra de un bloque situado a la izquierda de un bloque que se está codificando actualmente (denominado en el presente documento "bloque contiguo izquierdo") es el mismo que el modo intra del bloque actual. El codificador de vídeo puede verificar a continuación si un modo intra de un bloque situado por encima del bloque que se está codificando actualmente (denominado en el presente documento "bloque contiguo anterior") es el mismo que el modo intra del bloque actual. En este ejemplo, de acuerdo con los aspectos de la presente divulgación, el modo intra del bloque contiguo izquierdo puede tener un índice cero en una lista de los MPM mantenidos por el codificador de vídeo, y el modo intra del bloque contiguo anterior puede tener un índice de uno en la lista. En consecuencia, un codificador de vídeo puede señalar el índice del modo intra del bloque contiguo izquierdo como cero y el índice del bloque contiguo anterior como uno, independientemente de si un número del modo intra real (por ejemplo, un número de modo predefinido, como se designa por una norma de codificación de vídeo) del bloque contiguo izquierdo es mayor que el bloque contiguo anterior. De forma alternativa, si el codificador de vídeo verifica el modo intra del bloque contiguo anterior antes del bloque contiguo izquierdo, el codificador de vídeo puede señalar el índice del bloque contiguo anterior como cero y el índice del bloque contiguo izquierdo como uno. En cualquier caso, de acuerdo con estos ejemplos y aspectos de la presente divulgación, el codificador de vídeo puede señalar el índice para el modo intra sin reordenar ni clasificar los modos intra en la lista. En algunos ejemplos, la clasificación se puede aplicar para la codificación en modo intra si el modo intra no es uno de los MPM. Es decir, un codificador de vídeo puede clasificar o de otro modo modificar una lista de modos intra cuando señala un modo intra que no es un MPM. De acuerdo con los aspectos de la presente divulgación, el orden en el que un codificador de vídeo verifica el modo intra de los bloques contiguos (denominado en el presente documento "orden de verificación") puede ser un modo intra derivado implícitamente de acuerdo con las estadísticas recopiladas de los modos intra de bloques codificados previamente. En otros ejemplos, el codificador de vídeo puede derivar un orden de verificación en base a la disponibilidad de los bloques contiguos. Todavía en otros ejemplos, un codificador de vídeo puede señalar (y un descodificador de vídeo puede obtener de un flujo de bits codificado) una indicación explícita del orden de verificación.
[0019] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo 10 de ejemplo que puede utilizar las técnicas descritas en la presente divulgación. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que genera datos de vídeo codificados que se van a descodificar en un momento posterior por un dispositivo de destino 14. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de escritorio, ordenadores plegables (por ejemplo, portátiles), ordenadores de tableta, descodificadores, equipos telefónicos de mano tales como los denominados teléfonos "inteligentes", los denominados paneles "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión continua de vídeo o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicación inalámbrica.
[0020] El dispositivo de destino 14 puede recibir los datos de vídeo codificados que se van a descodificar por medio de un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo que puede desplazar los datos de vídeo codificados desde el dispositivo de origen 12 hasta el dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicación para posibilitar que el dispositivo de origen 12 transmita datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados se pueden modular de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitir al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o alámbrica tal como un espectro de radiofrecuencia (RF) o una o más líneas físicas de transmisión. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global tal como Internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar una comunicación desde el dispositivo de origen 12 hasta el dispositivo de destino 14.
[0021] De forma alternativa, los datos codificados se pueden emitir desde la interfaz de salida 22 a un dispositivo de almacenamiento 24. De forma similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento 24 mediante una interfaz de entrada. El dispositivo de almacenamiento 24 puede incluir cualquiera de una variedad de medios de almacenamiento de datos de acceso distribuido o local, tales como una unidad de disco duro, discos Blu-ray, DVD, CD-ROM, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo de almacenamiento 24 puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que puede contener el vídeo codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados en el dispositivo de almacenamiento 24 por medio de transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor que puede almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Los servidores de archivos de ejemplo incluyen un servidor de la red (por ejemplo, para un sitio de la red), un servidor de protocolo de transferencia de archivos (FTP), dispositivos de almacenamiento adjuntos a la red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión wifi), una conexión alámbrica (por ejemplo, DSL, módem de cable, etc.) o una combinación de ambas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento 24 puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas.
[0022] Las técnicas de la presente divulgación no están limitadas necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo como apoyo a cualquiera de una variedad de aplicaciones multimedia, tales como radiodifusiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones continuas de vídeo, por ejemplo, por medio de Internet, codificación de vídeo digital para almacenamiento en un medio de almacenamiento de datos, descodificación de vídeo digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 se puede configurar para admitir una transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión continua de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
[0023] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/desmodulador (módem) y/o un transmisor. En el dispositivo de origen 12, la fuente de vídeo 18 puede incluir una fuente tal como un dispositivo de captación de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contiene vídeo captado previamente, una interfaz de entrada de vídeo para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de gráficos por ordenador como el vídeo de origen, o una combinación de dichas fuentes. Como ejemplo, si la fuente 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, las técnicas descritas en la presente divulgación pueden ser aplicables a la codificación de vídeo en general, y se pueden aplicar a aplicaciones inalámbricas y/o alámbricas.
[0024] El vídeo captado, precaptado o generado por ordenador se puede codificar por el codificador de vídeo 20. Los datos de vídeo codificados se pueden transmitir directamente al dispositivo de destino 14 por medio de la interfaz de salida 22 del dispositivo de origen 12. Los datos de vídeo codificados también (o de forma alternativa) se pueden almacenar en un dispositivo de almacenamiento 24 para un posterior acceso por el dispositivo de destino 14 u otros dispositivos, para su descodificación y/o reproducción.
[0025] El dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de vídeo 30 y un dispositivo de visualización 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de vídeo codificados sobre un enlace 16. Los datos de vídeo codificados comunicados sobre el enlace 16, o proporcionados en el dispositivo de almacenamiento 24, pueden incluir una variedad de elementos sintácticos generados por el codificador de vídeo 20 para su uso por un descodificador de vídeo, tal como el descodificador de vídeo 30, al descodificar los datos de vídeo. Dichos elementos sintácticos se pueden incluir con los datos de vídeo codificados transmitidos en un medio de comunicación, almacenar en un medio de almacenamiento o almacenar en un servidor de archivos.
[0026] El dispositivo de visualización 32 se puede integrar con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también estar configurado para interconectarse con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 32 visualiza los datos de vídeo descodificados ante un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como 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.
[0027] 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 de codificación de vídeo de alta eficacia (HEVC), actualmente en desarrollo, y pueden cumplir con el modelo de prueba de HEVC (HM). De forma alternativa, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con otras normas privadas o industriales, tales como la norma ITU-T H.264, denominada de forma alternativa MPEG-4, parte 10, codificación avanzada de vídeo (AVC), o extensiones de dichas normas. Sin embargo, las técnicas de la presente divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de compresión de vídeo incluyen MPEG-2 e ITU-T H.263.
[0028] Aunque no se muestra en la FIG. 1, en algunos aspectos, tanto el codificador de vídeo 20 como el descodificador de vídeo 30 pueden estar cada uno integrados con un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para manejar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Cuando proceda, en algunos ejemplos, las unidades MUX-DEMUX pueden cumplir con el protocolo de multiplexador ITU H.223 u otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0029] El codificador de vídeo 20 y el descodificador de vídeo 30 se pueden implementar cada uno como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), arreglos de compuertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio legible por ordenador no transitorio adecuado y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de la presente divulgación. El codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar incluidos cada uno en uno o más codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
[0030] La presente divulgación se puede referir en general al codificador de vídeo 20 que "señala" determinada información a otro dispositivo, tal como el descodificador de vídeo 30. Sin embargo, se debería entender que el codificador de vídeo 20 puede señalar información asociando determinados elementos sintácticos a diversas partes codificadas de datos de vídeo. Es decir, el codificador de vídeo 20 puede "señalar" datos almacenando determinados elementos sintácticos en cabeceras de diversas partes codificadas de datos de vídeo. En algunos casos, dichos elementos sintácticos se pueden codificar y almacenar (por ejemplo, almacenarse en el medio de almacenamiento 34 o en el servidor de archivos 36) antes de recibirse y descodificarse por el descodificador de vídeo 30. Por tanto, el término "señalar" se puede referir, en general, a la comunicación de datos sintácticos u otros datos para descodificar datos de vídeo comprimidos, ya sea que dicha comunicación se produzca en tiempo real o casi real o durante un intervalo de tiempo, tal como podría ocurrir cuando se almacenan elementos sintácticos en un medio en el momento de la codificación, que a continuación se pueden recuperar por un dispositivo de descodificación en cualquier momento después de almacenarse en este medio.
[0031] El JCT-VC está trabajando en el desarrollo de la norma HEVC. Los esfuerzos de normalización de la HEVC se basan en un modelo en evolución de un dispositivo de codificación de vídeo, denominado modelo de prueba de la HEVC (HM). El último borrador de trabajo (WD) de la HEVC, y a continuación en el presente documento denominado HEVC WD7, está disponible en http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v5.zip, con una versión más reciente disponible en http://phenix.intevry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-vo.zip, los cuales se incorporan en el presente documento por referencia como si se expusieran en su totalidad en el presente documento. E1HM supone varias capacidades adicionales de los dispositivos de codificación de vídeo con respecto a los dispositivos existentes, de acuerdo, por ejemplo, con ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modos de codificación por intrapredicción, el HM puede proporcionar hasta treinta y tres modos de codificación por intrapredicción.
[0032] En general, el modelo de trabajo del HM describe que una trama o imagen de vídeo se puede dividir en una secuencia de bloques de árbol o unidades de codificación más grandes (LCU), que incluyen tanto muestras de luminancia como de crominancia. Un bloque de árbol tiene un propósito similar al de un macrobloque de la norma H.264. Un fragmento incluye un número de bloques de árbol consecutivos en orden de codificación. Una trama o imagen de vídeo se puede dividir en uno o más fragmentos. Cada bloque de árbol se puede separar en unidades de codificación (CU) de acuerdo con un árbol cuaternario. Por ejemplo, un bloque de árbol, como un nodo raíz del árbol cuaternario, se puede separar en cuatro nodos hijo, y cada nodo hijo puede, a su vez, ser un nodo padre y separarse en otros cuatro nodos hijo. Un nodo hijo no separado, final como un nodo hoja del árbol cuaternario, comprende un nodo de codificación, por ejemplo, un bloque de vídeo codificado. Los datos sintácticos asociados a un flujo de bits codificado pueden definir un número máximo de veces en que se puede separar un bloque de árbol, y también pueden definir un tamaño mínimo de los nodos de codificación.
[0033] Una unidad de codificación (CU) incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas con el nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y debe tener conformación cuadrada. El tamaño de la CU puede variar desde 8x8 píxeles hasta el tamaño del bloque de árbol, con un máximo de 64x64 píxeles o mayor. Cada CU puede contener una o más PU y una o más TU. Los datos sintácticos asociados a una CU pueden describir, por ejemplo, la división de la CU en una o más PU. Los modos de división pueden diferir entre si la CU está codificada en modo de salto o directo, codificada en modo de intrapredicción o codificada en modo de interpredicción. Las PU se pueden dividir para tener una conformación no cuadrada. Los datos sintácticos asociados a una CU también pueden describir, por ejemplo, la división de la CU en una o más TU de acuerdo con un árbol cuaternario. Una unidad de transformada (TU) puede tener una conformación cuadrada o no cuadrada.
[0034] La norma HEVC admite transformaciones de acuerdo con las TU, que pueden ser diferentes para CU diferentes. El tamaño de las TU se basa típicamente en el tamaño de las PU dentro de una CU dada definida para una LCU dividida, aunque puede que no sea siempre así. Las TU son típicamente del mismo tamaño o más pequeñas que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU se pueden subdividir en unidades más pequeñas usando una estructura de árbol cuaternario conocida como "árbol cuaternario residual" (RQT). Los nodos hoja del RQT se pueden denominar unidades de transformada (TU). Los valores de diferencias de píxeles asociados a las TU se pueden transformar para producir coeficientes de transformada, que se pueden cuantificar.
[0035] En general, una PU incluye datos relacionados con el procedimiento de predicción. Por ejemplo, cuando la PU se codifica en modo intra, la PU puede incluir datos que describen un modo de intrapredicción para la PU. Como otro ejemplo, cuando la PU se codifica en modo inter, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, una componente horizontal del vector de movimiento, una componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, precisión de un cuarto de píxel o precisión de un octavo de píxel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imágenes de referencia (por ejemplo, lista 0, lista 1 o lista C) para el vector de movimiento.
[0036] En general, se usa una TU para los procedimientos de transformada y cuantificación. Una CU dada que tiene una o más PU también puede incluir una o más unidades de transformada (TU). Seguidamente a la predicción, el codificador de vídeo 20 puede calcular valores residuales correspondientes a la PU. Los valores residuales comprenden valores de diferencias de píxeles que se pueden transformar en coeficientes de transformada, cuantificar y explorar usando las TU, para producir coeficientes de transformada en serie para la codificación por entropía. La presente divulgación usa típicamente el término "bloque de vídeo" para referirse a un nodo de codificación de una CU. En algunos casos específicos, la presente divulgación también puede usar el término "bloque de vídeo" para referirse a un bloque de árbol, es decir, una LCU o una CU, que incluye un nodo de codificación y unas PU y TU.
[0037] Una secuencia de vídeo incluye típicamente una serie de tramas o imágenes de vídeo. Un grupo de imágenes (GOP) comprende, en general, una serie de una o más de las imágenes de vídeo. Un GOP puede incluir datos sintácticos en una cabecera del GOP, una cabecera de una o más de las imágenes, o en otras ubicaciones, que describen una cantidad de imágenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintácticos de fragmento que describen un modo de codificación para el fragmento respectivo. El codificador de vídeo 20 funciona típicamente sobre bloques de vídeo dentro de fragmentos de vídeo individuales para codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden tener tamaños fijos o variados y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
[0038] En un ejemplo, el HM admite la predicción en diversos tamaños de PU. Suponiendo que el tamaño de una CU particular sea 2Nx2N, el HM admite la intrapredicción en tamaños de PU de 2Nx2N o NxN, y la interpredicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. El HM también admite la división asimétrica para la interpredicción en tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la división asimétrica, una dirección de una CU no está dividida, mientras que la otra dirección está dividida en un 25 % y un 75 %. La parte de la CU correspondiente a la división de un 25 % se indica por una "n" seguida de una indicación de "arriba", "abajo", "izquierda" o "derecha". Por tanto, por ejemplo, "2NxnU" se refiere a una CU de 2Nx2N que está dividida horizontalmente, con una PU de 2Nx0,5N en la parte superior y una PU de 2Nx1,5N en la parte inferior.
[0039] En la presente divulgación, "NxN" y "N por N" se pueden usar de manera intercambiable para hacer referencia a las dimensiones de píxeles de un bloque de vídeo en términos de dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 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 NxN tiene, 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 se pueden organizar en filas y columnas. Además, no es necesario que los bloques tengan necesariamente el mismo número de píxeles en la dirección horizontal que en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
[0040] Seguidamente a la codificación intrapredictiva o interpredictiva, usando las PU de una CU, el codificador de vídeo 20 puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos de píxeles en el dominio espacial (también denominado dominio del píxel) y las TU pueden comprender coeficientes en el dominio de la transformada seguidamente a la aplicación de una transformada, por ejemplo, una transformada discreta de coseno (DCT), una transformada de enteros, una transformada de ondículas o una transformada conceptualmente similar, a los datos de vídeo residuales. Los datos residuales pueden corresponder a las diferencias de píxeles entre píxeles de la imagen no codificada y los valores de predicción correspondientes a las PU. El codificador de vídeo 20 puede formar las TU, incluyendo los datos residuales para la CU y, a continuación, transformar las TU para producir coeficientes de transformada para la CU.
[0041] Seguidamente a cualquier transformada para producir coeficientes de transformada, el codificador de vídeo 20 puede realizar la cuantificación de los coeficientes de transformada. La cuantificación se refiere, en general, a un procedimiento en el que los coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando una compresión adicional. El procedimiento de cuantificación puede reducir la profundidad de bits asociada a algunos de, o a todos, los coeficientes. Por ejemplo, un valor de n bits se puede redondear a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
[0042] En algunos ejemplos, el codificador de vídeo 20 puede utilizar un orden de exploración predefinido para explorar los coeficientes de transformada cuantificados, para producir un vector en serie que se pueda codificar por entropía. En otros ejemplos, el codificador de vídeo 20 puede realizar una exploración adaptativa. Después de explorar los coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador de vídeo 20 puede codificar por entropía el vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC), la codificación aritmética binaria adaptativa al contexto basada en la sintaxis (SBAC), la codificación por entropía de división de intervalos de probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador de vídeo 20 también puede codificar por entropía los elementos sintácticos asociados a los datos de vídeo codificados, para su uso por el descodificador de vídeo 30 en la descodificación de los datos de vídeo.
[0043] Para realizar la CABAC, el codificador de vídeo 20 puede asignar un contexto, dentro de un modelo de contexto, a un símbolo que se va a transmitir. El contexto se puede referir, por ejemplo, a si los valores contiguos del símbolo son distintos de cero o no. Para realizar la CAVLC, el codificador de vídeo 20 puede seleccionar un código de longitud variable para un símbolo que se va a transmitir. Las palabras de código en la codificación de longitud variable (VLC) se pueden construir de modo que los códigos relativamente más cortos correspondan a los símbolos más probables, mientras que los códigos más largos correspondan a los símbolos menos probables. De esta manera, el uso de la VLC puede lograr un ahorro de bits con respecto, por ejemplo, al uso de palabras de código de igual longitud para cada símbolo que se va a transmitir. La determinación de la probabilidad se puede basar en un contexto asignado al símbolo.
[0044] En algunos ejemplos, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden identificar un denominado modo de intrapredicción "más probable" durante la codificación de intrapredicción. Es decir, por ejemplo, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden identificar un modo de intrapredicción de bloques codificados previamente que son contiguos a un bloque que se está codificando actualmente (denominados "bloques de referencia") y comparar dichos modos de intrapredicción con un modo de intrapredicción para el bloque que se está codificando actualmente (denominado "el bloque actual"). Los modos intra de dichos bloques de referencia pueden tener una probabilidad relativamente alta de ser iguales o similares al bloque actual debido a una proximidad espacial de los bloques contiguos al bloque actual. Como se describe con mayor detalle a continuación, el modo de intrapredicción de múltiples bloques de referencia se puede considerar cuando se identifica un MPM.
[0045] Además, de acuerdo con algunos ejemplos, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden señalar un índice que identifica el MPM. Es decir, cada modo intra puede tener un índice de modo intra asociado (original) que identifica el modo intra como uno de una pluralidad de modos intra posibles, como se define de acuerdo con una norma de codificación. Por ejemplo, la norma HEVC propuesta puede admitir hasta 35 modos intra, asignándose a cada modo intra un valor de índice (por ejemplo, un valor de índice en una tabla de búsqueda) que se puede usar para identificar los modos intra.
[0046] De acuerdo con algunas normas de codificación de vídeo, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden clasificar los MPM de acuerdo con los valores de índice de modo intra originales. El codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden asignar a continuación un nuevo valor de índice de "0" al modo intra que tenga el índice de modo intra original más pequeño (por ejemplo, el menor valor de índice original), un valor de índice de "1" al modo intra que tenga el siguiente valor de índice de modo intra original más grande (por ejemplo, el mayor valor de índice de modo intra original), y así sucesivamente. De esta manera, el codificador de vídeo 20 puede señalar (y el descodificador de vídeo 30 puede recuperar de un flujo de bits codificado) el MPM usando menos bits que enviando el índice de modo intra real. Sin embargo, a pesar de las ganancias logradas al indicar un modo intra usando el MPM, la clasificación de modo intra puede añadir complejidad computacional al procedimiento de codificación.
[0047] De acuerdo con los aspectos de la presente divulgación, en lugar de clasificar los MPM en base a los valores de índice de los MPM, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden generar una lista de los MPM que no requiere clasificación. Es decir, por ejemplo, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden asignar valores de índice a los MPM en un orden en el que los MPM se comparan con el modo intra del bloque actual. En otros ejemplos, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden asignar valores de índice de acuerdo con un orden en el que se codifican los MPM. De esta manera, si el modo intra que se codifica es igual a uno de los MPM, no es necesario clasificar los MPM de acuerdo con su valor de índice de modo intra original y se puede reducir la complejidad del codificador de vídeo. En algunos ejemplos, la clasificación de modo intra se puede aplicar para codificar el modo intra si el modo intra no es igual a uno de los MPM.
[0048] En algunos ejemplos, el codificador de vídeo 20 determina un modo intra para predecir un bloque actual de datos de vídeo, determina los MPM para predecir el bloque actual de datos de vídeo, compara el modo intra con cada uno de los MPM en un orden de comparación, determina un índice para cada uno de los MPM en base al orden de comparación, y señala el índice del MPM que coincide con el modo intra para predecir el bloque de datos actual en un flujo de bits.
[0049] Adicionalmente, en un ejemplo, el codificador de vídeo 20 puede señalar una lista generada de los MPM en el orden de comparación. El codificador de vídeo 20 también puede determinar un índice para cada uno de los MPM que comprende asignar valores de índice a cada uno de los MPM en la lista en orden ascendente. En otro ejemplo, el codificador de vídeo 20 puede señalar un indicador de MPM antes del índice del MPM para indicar que el índice del MPM se ha señalado.
[0050] Los MPM se pueden asociar con un bloque de vídeo contiguo izquierdo del bloque actual y un bloque de vídeo contiguo anterior del bloque actual, y el orden de comparación puede comprender comparar un modo intra asociado con el bloque de vídeo contiguo izquierdo antes de comparar el bloque contiguo anterior. Los MPM se pueden asociar con un bloque de vídeo contiguo izquierdo del bloque actual y un bloque de vídeo contiguo anterior del bloque actual, y el orden de comparación puede comprender comparar un modo intra asociado con el bloque contiguo anterior antes de comparar un modo intra asociado con el bloque de vídeo contiguo izquierdo.
[0051] En otro ejemplo, el descodificador de vídeo 30 puede generar una lista de los MPM para un bloque actual de datos de vídeo. La lista de los MPM se puede organizar a continuación en un orden de comparación. Este orden de comparación puede ser indicativo de un orden en el que se compara un modo intra para un bloque actual de datos de vídeo con uno o más modos intra asociados a uno o más bloques de referencia de datos de vídeo durante la codificación del bloque actual de datos de vídeo. El descodificador de vídeo 30 puede determinar un índice de MPM que identifica el modo intra para el bloque actual en la lista de los MPM. El descodificador de vídeo 30 puede identificar a continuación el modo intra para el bloque actual usando el índice de MPM, y descodificar el bloque actual con el modo intra identificado para el bloque actual.
[0052] En un ejemplo, más de dos bloques de referencia incluyen uno o más bloques que se sitúan por encima del bloque actual y son contiguos al bloque actual. Los más de dos bloques de referencia pueden incluir uno o más bloques que se sitúan a la izquierda del bloque de vídeo actual y son contiguos al bloque actual. En un ejemplo, la lista de los MPM se puede organizar en un orden de comparación que es indicativo de un orden en el que se compara un modo intra para un bloque actual de datos de vídeo con uno o más modos intra asociados a uno o más bloques de referencia de datos de vídeo durante la codificación del bloque actual de datos de vídeo.
[0053] En otro ejemplo, los MPM se pueden asociar con un bloque de vídeo contiguo izquierdo del bloque actual y un bloque de vídeo contiguo anterior del bloque actual, y el orden de comparación puede incluir comparar un modo intra asociado con el bloque contiguo izquierdo antes de comparar el modo intra asociado con el bloque contiguo anterior. En otro ejemplo, los MPM se pueden asociar con un bloque de vídeo contiguo izquierdo del bloque actual y un bloque de vídeo contiguo anterior del bloque actual, y el orden de comparación comprende comparar un modo intra asociado con el bloque contiguo anterior antes de comparar un modo intra asociado con el bloque de vídeo contiguo izquierdo.
[0054] Determinados aspectos de la presente divulgación se refieren a la asignación de un modo por defecto en los casos en los que el bloque A o bien el bloque B no están disponibles para la codificación en modo intra. Por ejemplo, un codificador de vídeo tal como el codificador de vídeo 20 o el descodificador de vídeo 30 puede identificar un bloque actual de datos de vídeo. El codificador puede determinar si el bloque no está disponible para usarse como bloques de referencia para determinar un MPM para el bloque actual de datos de vídeo. El codificador de vídeo puede asignar un modo intra por defecto a cualquier bloque que no esté disponible para usarse como bloque de referencia. En algunos ejemplos, el modo intra por defecto puede ser el modo plano, el modo DC, etc. El codificador puede determinar un modo intra para el bloque actual de datos de vídeo en base a los modos intra de uno o más bloques de datos de vídeo. Adicionalmente, el codificador puede codificar el bloque actual usando el modo intra determinado.
[0055] La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo 20 de ejemplo que puede implementar las técnicas descritas en la presente divulgación. El codificador de vídeo 20 puede realizar intra e intercodificación de bloques de vídeo dentro de fragmentos de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de una trama o imagen de vídeo dado. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de tramas o imágenes adyacentes de una secuencia de vídeo. El modo intra (modo I) puede hacer referencia a cualquiera de varios modos de compresión en base espacial. Los modos inter, tales como la predicción unidireccional (modo P) o la predicción bidireccional (modo B), pueden hacer referencia a cualquiera de varios modos de compresión en base temporal.
[0056] En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una unidad de división 35, una unidad de predicción 41, una memoria de imágenes de referencia 64, un sumador 50, una unidad de procesamiento de transformada 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. La unidad de predicción 41 incluye una unidad de estimación de movimiento 42, una unidad de compensación de movimiento 44 y una unidad de intrapredicción 46. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye también una unidad de cuantificación inversa 58, una unidad de transformada inversa 60 y un sumador 62. También se puede incluir un filtro de eliminación de bloques (no mostrado en la FIG. 2) para filtrar fronteras de bloques, para eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de eliminación de bloques filtrará típicamente la salida del sumador 62. También se pueden usar filtros de bucle adicionales (en el bucle o posteriores al bucle), además del filtro de eliminación de bloques.
[0057] Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe datos de vídeo, y la unidad de división 35 divide los datos en bloques de vídeo. Esta división también puede incluir la división en fragmentos, mosaicos u otras unidades mayores, así como la división en bloques de vídeo, por ejemplo, de acuerdo con una estructura de árbol cuaternario de LCU y CU. El codificador de vídeo 20 ilustra, en general, los componentes que codifican bloques de vídeo dentro de un fragmento de vídeo que se va a codificar. En general, un segmento se puede dividir en múltiples bloques de vídeo (y, posiblemente, en conjuntos de bloques de vídeo denominados mosaicos).
[0058] La unidad de predicción 41 puede seleccionar uno de una pluralidad de posibles modos de codificación, tal como uno de una pluralidad de modos de intracodificación, o uno de una pluralidad de modos de intercodificación, para el bloque de vídeo actual en base a resultados de error (por ejemplo, la velocidad de codificación y el nivel de distorsión). La unidad de predicción 41 puede proporcionar el bloque intra o intercodificado resultante al sumador 50 para generar datos de bloques residuales, y al sumador 62 para reconstruir el bloque codificado para su uso como imagen de referencia.
[0059] La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 dentro de la unidad de predicción 41 realizan la codificación interpredictiva del bloque de vídeo actual con respecto a uno o más bloques predictivos en una o más imágenes de referencia para proporcionar compresión temporal. La unidad de estimación de movimiento 42 se puede configurar para determinar el modo de interpredicción para un fragmento de vídeo de acuerdo con un patrón predeterminado para una secuencia de vídeo. El patrón predeterminado puede designar fragmentos de vídeo en la secuencia como fragmentos P, fragmentos B o fragmentos GPB. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar altamente integradas, pero se ilustran por separado con propósitos conceptuales. La estimación del movimiento, realizada por la unidad de estimación de movimiento 42, es el procedimiento de generación de vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una trama o imagen de vídeo actual con respecto a un bloque predictivo dentro de una imagen de referencia.
[0060] Un bloque predictivo es un bloque que se descubre que coincide estrechamente con la PU del bloque de vídeo que se va a codificar en términos de diferencia de píxel, que se puede determinar mediante una suma de diferencia absoluta (SAD), una suma de diferencia al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones de píxeles fraccionarios de imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones fraccionarias de píxel de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento con respecto a las posiciones de píxel completo y las posiciones de píxel fraccionario, y emitir un vector de movimiento con una precisión de píxel fraccionario.
[0061] La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de vídeo en un fragmento intercodificado, comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia se puede seleccionar de una primera lista (lista 0) de imágenes de referencia o una segunda lista (lista 1) de imágenes de referencia, cada una de las cuales identifica una o más imágenes de referencia almacenadas en una memoria de imágenes 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.
[0062] La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar extraer o generar el bloque predictivo en base al vector de movimiento determinado mediante estimación de movimiento, realizando posiblemente interpolaciones hasta una precisión de subpíxel. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El codificador de vídeo 20 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo a los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel. Los valores de diferencia de píxel forman datos residuales para el bloque, y pueden incluir componentes de diferencia tanto de luminancia como de crominancia. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de compensación de movimiento 44 también puede generar elementos sintácticos asociados a los bloques de vídeo y al fragmento de vídeo para su uso por el descodificador de vídeo 30 en la descodificación de los bloques de vídeo del fragmento de vídeo.
[0063] La unidad de intrapredicción 46 dentro de la unidad de predicción 41, puede realizar la codificación intrapredictiva del bloque de vídeo actual con respecto a uno o más bloques contiguos de la misma imagen o segmento que el bloque actual que se va a codificar para proporcionar compresión espacial. La unidad de intrapredicción 46 puede intrapredecir un bloque actual, como alternativa a la interpredicción realizada por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se describe anteriormente. En particular, la unidad de intrapredicción 46 puede determinar un modo de intrapredicción a usar para codificar un bloque actual. En algunos ejemplos, la unidad de intrapredicción 46 puede codificar un bloque actual usando diversos modos de intrapredicción, por ejemplo, durante pases de codificación separados, y la unidad de intrapredicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo de intrapredicción apropiada a usar de los modos sometidos a prueba.
[0064] Por ejemplo, la unidad de intrapredicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción sometidos a prueba, y seleccionar el modo de intrapredicción que tenga las mejores características de velocidad-distorsión entre los modos sometidos a prueba. El análisis de velocidad-distorsión determina, en general, una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado que se codificó para producir el bloque codificado, así como una tasa de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad de intrapredicción 46 puede calcular proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar qué modo de intrapredicción presenta el mejor valor de velocidad-distorsión para el bloque. De acuerdo con la norma HEVC propuesta, puede haber hasta 35 modos de intrapredicción, y cada modo de intrapredicción se puede asociar con un índice.
[0065] Los aspectos de la presente divulgación se refieren en general a la intracodificación. Como tal, determinadas técnicas de la presente divulgación se pueden realizar por la unidad de intrapredicción 46. Es decir, por ejemplo, la unidad de intrapredicción 46 puede realizar las técnicas de la presente divulgación descritas con respecto a las FIGS.
4-10 a continuación. En otros ejemplos, una o más de otras unidades de codificador de vídeo 20 pueden adicionalmente o de forma alternativa ser responsables de realizar las técnicas de la presente divulgación.
[0066] Por ejemplo, la unidad de intrapredicción 46 puede determinar un modo intra para un bloque que se está codificando actualmente (por ejemplo, de acuerdo con un análisis de velocidad-distorsión, como se describe anteriormente). La unidad de intrapredicción 46 también puede determinar un modo de intrapredicción de uno o más bloques codificados previamente (denominados los MPM) que son contiguos al bloque que se está intracodificando actualmente. La unidad de intrapredicción 46 puede indicar el modo intra determinado para el bloque actual en base a los modos intra determinados de los bloques contiguos, por ejemplo, comparando los MPM con el modo intra para el bloque actual, como se describe con mayor detalle a continuación.
[0067] De acuerdo con aspectos de la presente divulgación, la unidad de intrapredicción 46 puede generar una lista de los MPM en el orden en el que se comparan los MPM con el modo intra del bloque actual. La unidad de intrapredicción 46 puede asignar a continuación valores de índice a los MPM en un orden en el que los MPM se comparan con el modo intra del bloque actual. De esta manera, la unidad de intrapredicción 46 puede indicar un MPM particular sin clasificar los MPM de acuerdo con su valor de índice de modo intra original (por ejemplo, de acuerdo con una norma de codificación de vídeo).
[0068] Después de que la unidad de predicción 41 genera el bloque predictivo para el bloque de vídeo actual por medio de interpredicción o bien intrapredicción, el codificador de vídeo 20 forma un bloque de vídeo residual restando el bloque predictivo al bloque de vídeo actual. Los datos de vídeo residuales del bloque residual se pueden incluir en una o más TU y aplicarse a la unidad de procesamiento de transformada 52. La unidad de procesamiento de transformada 52 transforma los datos de vídeo residuales en coeficientes de transformada residuales usando una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar. La unidad de procesamiento de transformada 52 puede convertir los datos de vídeo residuales de un dominio de píxel a un dominio de transformada, tal como un dominio de frecuencia.
[0069] La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir adicionalmente la tasa de bits. El procedimiento de cuantificación puede reducir la profundidad de bits asociada a algunos de, o a todos, los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 puede realizar a continuación una exploración de la matriz que incluye los coeficientes de transformada cuantificados. De forma alternativa, la unidad de codificación por entropía 56 puede realizar la exploración.
[0070] Seguidamente a la cuantificación, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede realizar una codificación de longitud variable adaptativa al contexto (CAVLC), una codificación aritmética binaria adaptativa al contexto (CABAC), una codificación aritmética binaria adaptativa al contexto basada en la sintaxis (SBAC), una codificación por entropía por división de intervalos de probabilidad (PIPE) u otra metodología o técnica de codificación por entropía. La unidad de codificación por entropía 56 también puede codificar por entropía los vectores de movimiento y los otros elementos sintácticos para el fragmento de vídeo actual que se está codificando. Seguidamente a la codificación por entropía por la unidad de codificación por entropía 56, el flujo de bits codificado se puede transmitir al descodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación por el descodificador de vídeo 30.
[0071] La unidad de codificación por entropía 56 puede codificar la información que indica el modo de intrapredicción seleccionado de acuerdo con las técnicas de la presente divulgación. El codificador de vídeo 20 puede incluir en los datos de configuración de flujo de bits transmitidos, que pueden incluir una pluralidad de tablas de índice de modo de intrapredicción y una pluralidad de tablas de índice de modo de intrapredicción modificadas (también denominadas tablas de asignación de palabras de código), definiciones de contextos de codificación para diversos bloques e indicaciones de un MPM, una tabla de índice de modo de intrapredicción y una tabla de índice de modo de intrapredicción modificada para usar en cada uno de los contextos.
[0072] La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican una cuantificación inversa y una transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel para su posterior uso como bloque de referencia de una imagen 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 imágenes de referencia de una de las listas de imágenes de referencia. 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 fraccionarios, para su uso 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 referencia para su almacenamiento en la memoria de imágenes de referencia 64. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden usar el bloque de referencia como bloque de referencia para realizar una interpredicción de un bloque en una trama o imagen de vídeo subsiguiente.
[0073] La FIG. 3 es un diagrama de bloques que ilustra un descodificador de vídeo 30 de ejemplo que puede implementar las técnicas descritas en la presente divulgación. En el ejemplo de la FIG. 3, el descodificador de vídeo 30 incluye una unidad de descodificación por entropía 80, una unidad de predicción 81, una unidad de cuantificación inversa 86, una unidad de transformación inversa 88, un sumador 90 y una memoria de imágenes de referencia 92. La unidad de predicción 81 incluye la unidad de compensación de movimiento 82 y la unidad de intrapredicción 84. En algunos ejemplos, el descodificador de vídeo 30 puede realizar una pasada de descodificación que, en general, es recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 de la FIG. 2.
[0074] Durante el procedimiento de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo codificado, que representa bloques de vídeo de un fragmento de vídeo codificado y elementos sintácticos asociados, desde el codificador de vídeo 20. La unidad de descodificación por entropía 80 del descodificador de vídeo 30 descodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos sintácticos. La unidad de descodificación por entropía 80 reenvía los vectores de movimiento y otros elementos sintácticos a la unidad de predicción 81. El descodificador de vídeo 30 puede recibir los elementos sintácticos en el nivel de fragmento de vídeo y/o el nivel de bloque de vídeo.
[0075] Cuando el fragmento de vídeo se codifica como un fragmento intracodificado (I), la unidad de intrapredicción 84 de la unidad de predicción 81 puede generar datos de predicción para un bloque de vídeo del fragmento de vídeo actual, en base a un modo de intrapredicción señalado y datos de bloques descodificados previamente de la trama o imagen actual.
[0076] Como se indica anteriormente, los aspectos de la presente divulgación se refieren en general a la intracodificación. Como tal, determinadas técnicas de la presente divulgación se pueden realizar por la unidad de intrapredicción 84. Es decir, por ejemplo, la unidad de intrapredicción 84 puede realizar las técnicas de la presente divulgación descritas con respecto a las FIGS. 4-7 a continuación. En otros ejemplos, una o más de otras unidades de descodificador de vídeo 30 pueden adicionalmente o de forma alternativa ser responsables de realizar las técnicas de la presente divulgación.
[0077] Por ejemplo, la unidad de intrapredicción 84 puede obtener un índice para una lista de los MPM para descodificar un bloque actual de datos de vídeo de la unidad de descodificación por entropía 80. La unidad de intrapredicción 84 puede generar la lista a la que pertenece el índice incluyendo los MPM en la lista de la misma manera que el codificador de vídeo 20, por ejemplo, el orden en el que se comparan los MPM con el modo intra del bloque actual. La unidad de intrapredicción 84 puede determinar a continuación el modo intra apropiado para descodificar el bloque actual de datos de vídeo en base al índice obtenido. De esta manera, la unidad de intrapredicción 84 puede determinar el MPM apropiado para descodificar el bloque actual sin clasificar los MPM de acuerdo con su valor de índice de modo intra original (por ejemplo, de acuerdo con una norma de codificación de vídeo).
[0078] Cuando la imagen de vídeo se codifica como un fragmento intercodificado (por ejemplo, B, P o GPB), la unidad de compensación de movimiento 82 de la unidad de predicción 81 produce bloques predictivos para un bloque de vídeo del fragmento de vídeo actual en base a los vectores de movimiento y otros elementos sintácticos recibidos desde la unidad de descodificación por entropía 80. Los bloques predictivos se pueden producir a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El descodificador de vídeo 30 puede construir las listas de imágenes de referencia, la lista 0 y la lista 1, usando técnicas de construcción por defecto en base a las imágenes de referencia almacenadas en la memoria de imágenes de referencia 92.
[0079] La unidad de compensación de movimiento 82 determina la información de predicción para un bloque de vídeo del fragmento de vídeo actual, analizando sintácticamente los vectores de movimiento y otros elementos sintácticos, y usa la información de predicción para producir los bloques predictivos para el bloque de vídeo actual que se está descodificando. Por ejemplo, la unidad de compensación de movimiento 82 usa algunos de los elementos sintácticos recibidos para determinar un modo de predicción (por ejemplo, intra o interpredicción) usado para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de interpredicción (por ejemplo, un fragmento B, un fragmento P o un fragmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el fragmento, vectores de movimiento para cada bloque de vídeo intercodificado del fragmento, el estado de interpredicción para cada bloque de vídeo intercodificado del fragmento y otra información para descodificar los bloques de vídeo en el fragmento de vídeo actual.
[0080] La unidad de compensación de movimiento 82 también puede realizar la interpolación en base a filtros de interpolación. La unidad de compensación de movimiento 82 puede usar filtros de interpolación como se usan por el codificador de vídeo 20 durante la codificación de los bloques de vídeo, para calcular valores interpolados para píxeles fraccionarios de los bloques de referencia. En este caso, la unidad de compensación de movimiento 82 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 a partir de los elementos sintácticos recibidos y usar los filtros de interpolación para producir bloques predictivos.
[0081] La unidad de cuantificación inversa 86 cuantifica de manera inversa, por ejemplo, descuantifica, los coeficientes de transformada cuantificados, proporcionados en el flujo de bits y descodificados por la unidad de descodificación por entropía 80. El procedimiento de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el codificador de vídeo 20 para cada bloque de vídeo del fragmento de vídeo para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa que se debería aplicar. La unidad de transformada inversa 88 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de enteros inversa, o un procedimiento de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de píxel.
[0082] Después de que la unidad de compensación de movimiento 82 genere el bloque predictivo para el bloque de vídeo actual en base a los vectores de movimiento y otros elementos sintácticos, el descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales de la unidad de transformada inversa 88 a los bloques predictivos correspondientes generados por la unidad de compensación de movimiento 82. El sumador 90 representa el componente o los componentes que realizan esta operación de suma. Si se desea, también se puede aplicar un filtro de eliminación de bloques para filtrar los bloques descodificados para eliminar distorsiones de efecto pixelado. También se pueden usar otros filtros de bucle (en el bucle de codificación o bien después del bucle de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad del vídeo. Los bloques de vídeo descodificados en una trama o imagen dada se almacenan a continuación en la memoria de imágenes de referencia 92, que almacena imágenes de referencia usadas para una compensación de movimiento posterior. La memoria de imágenes de referencia 92 también almacena vídeo descodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 1.
[0083] Como se indica anteriormente, las técnicas de la presente divulgación se refieren en general a la intracodificación. Se debería entender que las técnicas de la presente divulgación se pueden llevar a cabo por cualquiera de los codificadores de vídeo descritos en la presente divulgación, incluyendo, por ejemplo, el codificador de vídeo 20 y el descodificador de vídeo 30 como se muestra y describe con respecto a las FIGS. 1 -3. Es decir, en un ejemplo, la unidad de intrapredicción 46 descrita con respecto a la FIG. 2 puede realizar determinadas técnicas descritas a continuación cuando se realiza una intrapredicción durante la codificación de un bloque de datos de vídeo. En otro ejemplo, la unidad de intrapredicción 84 descrita con respecto a la FIG. 3 puede realizar determinadas técnicas descritas a continuación cuando se realiza una intrapredicción durante la descodificación de un bloque de datos de vídeo. En consecuencia, las referencias a un "codificador de vídeo" genérico pueden incluir un codificador de vídeo 20, un descodificador de vídeo 30 u otra unidad de codificación o descodificación de vídeo.
[0084] En algunos ejemplos, un codificador de vídeo puede identificar un denominado modo de intrapredicción "más probable" durante la codificación de intrapredicción. Es decir, por ejemplo, un codificador de vídeo (por ejemplo, tal como el codificador de vídeo 20) puede identificar un modo de intrapredicción de bloques codificados previamente (por ejemplo, bloques de referencia) y comparar dichos modos de intrapredicción con un modo de intrapredicción para el bloque actual. Los modos intra de dichos bloques de referencia pueden tener una probabilidad relativamente alta de ser iguales o similares al bloque actual debido a una proximidad espacial de los bloques al bloque actual. Como se describe con mayor detalle a continuación, el modo de intrapredicción de múltiples bloques de referencia se puede considerar cuando se identifica un MPM.
[0085] Si el modo de intrapredicción para el bloque actual es el mismo que el MPM, el codificador de vídeo 20 puede señalar el modo de intrapredicción usando un indicador de MPM de un bit. Es decir, el codificador de vídeo 20 puede señalar que el modo de intrapredicción para un bloque actual es el mismo que el MPM, sin tener que identificar explícitamente el modo de intrapredicción para el bloque actual. El descodificador de vídeo 30 puede recibir el indicador que indica que el modo intra para el bloque actual es el mismo que el MPM, y repetir el procedimiento usado por el codificador de vídeo 20 para determinar ese MPM. Es decir, el descodificador de vídeo 30 puede identificar el MPM usando los mismos bloques considerados por el codificador de vídeo 20 durante la codificación.
[0086] La FIG. 4 muestra un ejemplo de un bloque actual, por ejemplo, la unidad de codificación ("CU actual") y dos bloques de referencia (por ejemplo, "A" y "B") que se pueden considerar durante la intracodificación. Por ejemplo, un codificador de vídeo (por ejemplo, tal como el codificador de vídeo 20), puede considerar los modos intra asociados al bloque de referencia A (situado a la izquierda del bloque actual) y al bloque de referencia B (situado por encima del bloque actual) como los MPM del bloque actual. En algunos ejemplos, si cualquiera de los candidatos de MPM (por ejemplo, el bloque A o el bloque B) no usa el modo intra, o de otro modo no está disponible (por ejemplo, el bloque aún no se ha codificado), el codificador de vídeo 20 puede asignar un modo intra por defecto al bloque, tal como el modo DC. Además, en algunos ejemplos, el número de MPM puede ser mayor que dos. Por ejemplo, el codificador de vídeo 20 puede generar MPM adicionales en base a modos intra de más de dos bloques de referencia.
[0087] Si el modo intra real para el bloque actual (por ejemplo, como se calcula, por ejemplo, por la unidad de intrapredicción 46) es el mismo que el bloque de referencia A o bien el bloque de referencia B, el codificador de vídeo 20 puede señalar un indicador de un bit que indica que se usa un MPM para codificar el bloque actual (por ejemplo, el indicador de MPM se establece igual a uno).
[0088] Además, de acuerdo con algunos ejemplos, el codificador de vídeo 20 puede señalar un índice que identifique el MPM. Es decir, cada modo intra puede tener un índice de modo intra asociado (original) que identifica el modo intra como uno de una pluralidad de modos intra posibles, como se define de acuerdo con una norma de codificación. Por ejemplo, la norma HEVC propuesta puede admitir hasta 35 modos intra, asignándosele a cada modo intra un valor de índice especificado estándar, original como se muestra en la tabla 1 a continuación:
TABLA 1: MODOS DE INTRAPREDICCIÓN Y NÚMEROS DE ÍNDICE
Figure imgf000014_0001
En el ejemplo de la tabla 1, el modo intra plano tiene un valor de índice original de 0, el modo intra DC tiene un valor de índice original de 1 y los diversos modos intra angulares tienen valores de índice originales entre 2 y 34.
[0089] Tradicionalmente, cuando se intracodifica un bloque actual en base a MPM, el codificador de vídeo 20 clasifica los MPM de acuerdo con los valores de índice de modo intra originales. En un ejemplo con dos MPM, el codificador de vídeo 20 puede asignar a continuación un nuevo valor de índice de "0" al modo intra que tiene el índice de modo intra original más pequeño (por ejemplo, el menor valor de índice original). Además, el codificador de vídeo 20 asigna un nuevo valor de índice de "1" al modo intra que tiene el valor de índice de modo intra original más grande (por ejemplo, el mayor valor de índice de modo intra original). De esta manera, el codificador de vídeo 20 puede señalar al MPM usando menos bits que al enviar el índice de modo intra real. En algunos ejemplos, si el modo intra del bloque de referencia A es el mismo que el modo intra del bloque de referencia B, el codificador de vídeo 20 no envía un valor de índice adicional. En algunos ejemplos, si el número de MPM es mayor que dos, se pueden realizar asignaciones de índice similares.
[0090] Si el modo intra del bloque actual no es igual al MPM, el codificador de vídeo 20 puede intracodificar el bloque actual, por ejemplo, usando una tabla de codificación de longitud fija u otro procedimiento.
[0091] Un descodificador de vídeo, tal como el descodificador de vídeo 30, puede recibir el indicador de MPM y el índice de MPM. El descodificador de vídeo 30 puede realizar a continuación un procedimiento similar al descrito con respecto al codificador de vídeo 20 para determinar a qué modo intra se refiere el índice de MPM. Es decir, el descodificador de vídeo 30 puede clasificar los modos intra en orden de índice original ascendente. El descodificador de vídeo 30 puede asignar un valor de índice de "0" al índice de modo intra original más pequeño y un valor de índice de "1" al índice de modo intra original más grande. El descodificador de vídeo 30 puede usar a continuación el índice de MPM señalado para seleccionar uno de los modos intra clasificados. El descodificador de vídeo 30 puede descodificar a continuación el bloque intracodificado de datos de vídeo.
[0092] De acuerdo con algunas técnicas de codificación de vídeo, un codificador de vídeo (por ejemplo, un codificador de vídeo o un descodificador de vídeo) puede clasificar los MPM antes de determinar y señalar un MPM para un bloque que se está codificando actualmente. Esto puede aumentar la complejidad del codificador de vídeo. Como se describe con mayor detalle a continuación, determinados aspectos de la presente divulgación se refieren a la eliminación de la clasificación de los MPM para reducir la complejidad del codificador de vídeo. Por ejemplo, el codificador de vídeo 20, el descodificador de vídeo 30 o ambos pueden generar una lista de los MPM que no requieren clasificación. El codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden asignar valores de índice a los MPM en un orden en el que los MPM se comparan con el modo intra del bloque actual. En otros ejemplos, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden asignar valores de índice de acuerdo con un orden en el que se codifican los MPM. De esta forma, no es necesario clasificar los MPM de acuerdo con su valor de índice de modo intra original, y se puede reducir la complejidad del codificador de vídeo.
[0093] Además, determinados aspectos de la presente divulgación también se refieren a la asignación de un modo por defecto en los casos en los que el bloque A o bien el bloque B no están disponibles para la codificación en modo intra. Por ejemplo, el codificador de vídeo 20 puede asignar un modo preseleccionado como el modo plano o el modo DC como el modo por defecto.
[0094] La FIG. 5 es un diagrama conceptual de codificación en modo intra, como se describe anteriormente con respecto a la FIG. 4. Por ejemplo, como se muestra en el ejemplo de la FIG. 5, si el modo intra del bloque actual coincide con uno de los MPM (por ejemplo, la rama "sí"), el codificador de vídeo 20 puede establecer un indicador de MPM igual a uno ("1"). Además, el codificador de vídeo 20 puede clasificar los MPM de acuerdo con su valor de índice original ("CLASIFICAR MODOS MPM"). Es decir, el codificador de vídeo 20 asigna al MPM que tiene el índice de modo intra original más pequeño un valor de cero ("MPM MÁS PEQUEÑO" "0") y asigna al MPM que tiene el índice de modo intra original más grande un valor de uno ("OTRO MPM" "1"). El codificador de vídeo 20 puede señalar a continuación el modo intra para el bloque actual en base al MPM. Es decir, el codificador de vídeo 20 puede enviar el indicador "1" para indicar que se usa un MPM, y el indicador "0" o bien el indicador "1" para identificar el MPM apropiado.
[0095] Si el modo intra del bloque actual no coincide con uno de los MPM (por ejemplo, la rama "no"), el codificador de vídeo 20 puede establecer un indicador de MPM en cero ("0"). Además, el codificador de vídeo 20 puede codificar el modo intra, por ejemplo, usando una tabla de longitud fija u otro procedimiento ("RESTO DE CODIFICACIÓN DE MODO INTRA").
[0096] La FIG. 6 es un diagrama conceptual de codificación de modo intra, de acuerdo con aspectos de la presente divulgación. Por ejemplo, como se muestra en el ejemplo de la FIG. 6, si el modo intra del bloque actual coincide con uno de los MPM (por ejemplo, la rama "sí"), el codificador de vídeo 20 puede establecer un indicador de MPM igual a uno ("1"). De acuerdo con los aspectos de la presente divulgación, en lugar de clasificar los MPM en base a los valores de índice de los MPM, el codificador de vídeo 20 puede generar una lista de los MPM que no requieren clasificación ("GENERAR LISTA DE LOS MPM"). Es decir, por ejemplo, determinadas técnicas de la presente divulgación se refieren a la asignación de valores de índice a los MPM en un orden en el que se comparan los MPM con el modo intra del bloque actual. De esta manera, no es necesario clasificar los MPM de acuerdo con su valor de índice de modo intra original. Si el modo intra del bloque actual no es uno de los MPM, el codificador de vídeo 20 puede establecer un indicador de MPM igual a cero ("0") y se puede aplicar una clasificación de los MPM adicional antes de realizar el resto de la codificación en modo intra. Es decir, por ejemplo, el codificador de vídeo 20 puede clasificar un listado de los modos intra restantes (que no incluye los MPM) antes de identificar los modos intra en la lista para el bloque actual.
[0097] En un ejemplo para propósitos explicativos, el codificador de vídeo 20 puede comparar el modo intra asociado con un bloque actual de datos de vídeo con los modos intra asociados a uno o más bloques de referencia, tales como los modos intra de uno o más bloques contiguos (por ejemplo, bloques que son contiguos espacialmente al bloque actual), para determinar uno de los MPM que coincida con el modo intra real para el bloque actual. Como se indica anteriormente con respecto a las FIGS. 4 y 5, el codificador de vídeo 20 puede comparar el modo intra del bloque actual con dos bloques contiguos, aunque se pueden considerar los modos intra de más o menos bloques de referencia (por ejemplo, uno, tres, cinco y similares), adicionalmente, se pueden generar los MPM en base a los modos intra contiguos
[0098] De acuerdo con los aspectos de la presente divulgación, el codificador de vídeo 20 puede asignar un valor de índice a los MPM en el orden en el que se comparan los MPM con el modo intra actual. En un ejemplo con dos MPM, el codificador de vídeo 20 puede comparar en primer lugar el modo intra del bloque actual con el modo intra del bloque contiguo izquierdo, seguido de comparar el modo intra del bloque actual con el modo intra del bloque contiguo anterior (véase, por ejemplo, la disposición mostrada en la FIG. 4). En consecuencia, el codificador de vídeo 20 puede asignar un valor de índice de cero al modo intra del bloque contiguo izquierdo ("PRIMERA COMPARACIÓN" "0") y un valor de índice de uno al modo intra del bloque contiguo anterior ("SEGUNDA COMPARACIÓN" "1"). Si bien el ejemplo mostrado en la FIG. 6 incluye solo dos MPM, se pueden asignar valores de índice adicionales a otros MPM si se consideran dichos MPM.
[0099] Si el modo intra del bloque actual no coincide con uno de los MPM (por ejemplo, la rama "no"), el codificador de vídeo 20 puede establecer un indicador de MPM en cero ("0"). Además, el codificador de vídeo 20 puede codificar el modo intra, por ejemplo, usando una tabla de longitud fija u otro procedimiento ("RESTO DE CODIFICACIÓN DE MODO INTRA"). Adicionalmente, en algunos ejemplos y como se indica anteriormente, el codificador de vídeo 20 puede clasificar los modos intra restantes de acuerdo con un procedimiento de clasificación de MPM.
[0100] Supóngase, para propósitos explicativos, que hay 35 modos intra disponibles para la intracodificación de un bloque de datos de vídeo. Supóngase además que los 35 modos intra se pueden identificar por un número de modo, que se puede incluir en una tabla que identifica los modos intra disponibles. En un ejemplo en el que el modo actual no es un MPM, por ejemplo, con MPM que son 15, 2 y 31 y con un modo actual que es 16, un codificador de vídeo (por ejemplo, el descodificador de vídeo 30 o el codificador de vídeo 20) puede inicialmente clasificar los MPM en orden ascendente. En consecuencia, la lista de los MPM 15, 2 y 31 se convierte en 2, 15 y 31 después de la clasificación. En segundo lugar, el codificador de vídeo puede eliminar los MPM de los modos intra restantes, porque se conoce que el modo actual no es un MPM. Los 32 modos restantes se pueden reasignar a continuación a 32 palabras de código de 5 bits. Algunos ejemplos pueden usar una tabla de los 32 modos restantes, eliminando los modos 2, 15, 31. Otros ejemplos, sin embargo, no usan una tabla.
[0101] Con respecto a la asignación, por ejemplo, debido a que el modo actual (por ejemplo, el modo 16) es mayor que o igual al primero de los MPM clasificados (modo 2), el codificador de vídeo puede restar 1 al modo actual (16-1=15). El valor después de la primera resta (15) también es mayor que o igual al segundo de los MPM clasificados (15), por lo que el codificador de vídeo resta 1 nuevamente (15-1=14). El valor después de la segunda resta (14) es menor que 31, por lo que el codificador de vídeo no realiza otra resta. En consecuencia, el modo actual se asigna a la decimocuarta entrada en la nueva tabla como se calcula al realizar las dos restas en el modo actual 16 (16-2=14). En otros ejemplos, los modos se pueden asignar de diferentes maneras.
[0102] En otro ejemplo en el que el modo actual no es un MPM, por ejemplo, con MPM que son 5, 4 y 6 y un modo actual que es 15, el codificador de vídeo puede clasificar los MPM en orden ascendente. En consecuencia, 5, 4, 6, se convierte en 4, 5, 6. El codificador de vídeo puede hacer a continuación una lista o tabla de los 32 modos restantes, eliminando los modos 4, 5 y 6. Como se analiza anteriormente, se debería entender que no todos los ejemplos usan una tabla.
[0103] En los ejemplos anteriores, se supone que el modo actual no es un MPM. Por el contrario, para un caso donde el modo actual es un MPM, por ejemplo, MPM que son 5, 4 y 6 y un modo actual que es 4, el codificador de vídeo puede establecer un indicador de MPM igual a "1". Además, el codificador de vídeo puede establecer un índice para los MPM igual a "1". Por ejemplo, el índice puede asignar los MPM en base al orden de la lista. Es decir, en el ejemplo anterior, el codificador de vídeo puede asignar 5 a un índice de 0, 4 a un índice de 1, 6 a un índice de 2.
[0104] En algunos ejemplos, como se indica anteriormente, el codificador de vídeo 20 puede generar una lista de los MPM en el orden en el que se comparan los MPM con el modo intra del bloque actual. Por tanto, el índice puede identificar el MPM coincidente en base al orden de comparación. El codificador de vídeo 20 puede asignar a continuación valores de índice a cada uno de los MPM en la lista. Por ejemplo, el codificador de vídeo 20 puede asignar valores de índice a cada uno de los MPM de la lista en orden ascendente, de modo que el primer MPM que se compara con el modo intra actual tenga el valor de índice relativo más bajo, y el último MPM que se compara al modo intra actual tenga el valor de índice relativo más alto. Por el contrario, cada modo intra puede tener un índice de modo intra asociado original que identifica el modo intra como uno de una pluralidad de posibles modos intra (tal como uno de los 35 modos intra), como se define de acuerdo con una norma de codificación. Este índice original puede ser diferente del índice señalado en el flujo de bits de acuerdo con los aspectos de la presente divulgación.
[0105] El codificador de vídeo 20 puede señalar a continuación el indicador de MPM y el índice de MPM a un descodificador de vídeo, tal como el descodificador de vídeo 30. El descodificador de vídeo 30 puede realizar un procedimiento similar al descrito con respecto al codificador de vídeo 20 para identificar el modo intra apropiado a partir del valor de índice recibido. Es decir, por ejemplo, el descodificador de vídeo 30 puede generar una lista que incluye los MPM en el orden en el que se compararon los modos intra con el modo intra actual. El descodificador de vídeo 30 puede aplicar a continuación valores de índice a cada uno de los MPM, y seleccionar el modo intra apropiado para el bloque actual usando el valor de índice recibido.
[0106] En algunos ejemplos, el orden en el que se comparan los MPM con el modo intra actual se puede derivar implícitamente de acuerdo con las estadísticas recopiladas de modos intra codificados previamente. Es decir, por ejemplo, si un modo intra asociado con un determinado bloque de referencia coincide con mayor frecuencia con el modo intra actual que otros MPM de otros bloques, el modo intra asociado con el determinado bloque de referencia se puede comparar antes que los otros MPM de los otros bloques.
[0107] En otros ejemplos, el orden de comparación se puede derivar en base a la disponibilidad, o se puede señalar explícitamente. Por ejemplo, si uno o más bloques de referencia que contienen los MPM con frecuencia no están disponibles, dichos bloques de referencia se pueden comparar con el bloque actual relativamente más tarde que los bloques de referencia más comúnmente disponibles. En otros ejemplos, el codificador de vídeo 20 puede determinar y señalar explícitamente un orden de comparación particular en un flujo de bits codificado.
[0108] Eliminar la etapa de clasificación (por ejemplo, clasificar los MPM de acuerdo con sus valores de índice) puede reducir la complejidad del procedimiento de codificación. Es decir, en lugar de tener que clasificar explícitamente los MPM, el codificador de vídeo puede generar una lista de los MPM mientras determina si el modo intra actual es el mismo que cualquiera de los MPM. De esta manera, se pueden usar determinadas técnicas de la presente divulgación para aumentar la eficacia computacional de un codificador de vídeo. Sin embargo, en algunos ejemplos, la clasificación de MPM se puede conservar para la codificación en modo intra si el modo intra no es igual a uno de los MPM. Por ejemplo, cuando un modo intra no coincide con uno de los MPM, se pueden clasificar los modos restantes.
[0109] Las técnicas de la presente divulgación también se refieren a la asignación de un modo intra por defecto a bloques de datos de vídeo que no están disponibles para que se consideren como bloques de referencia durante la codificación de MPM. Es decir, por ejemplo, un bloque de referencia se puede considerar "no disponible" si el bloque de referencia aún no se ha codificado (y, por tanto, se desconoce su modo de predicción), si el bloque de referencia se codifica usando interpredicción (descrita anteriormente), o si el bloque de referencia no existe (el bloque situado en la esquina superior izquierda de una imagen o fragmento puede no tener bloques contiguos a la izquierda y/o por encima).
[0110] De acuerdo con los aspectos de la presente divulgación, tras identificar bloques que no se pueden usar como referencia durante la intracodificación (por ejemplo, durante el procedimiento de derivación de MPM), a dichos bloques se les puede asignar un modo intra por defecto. Es decir, por ejemplo, a dichos bloques se les puede asignar un modo intra en plano, que también se puede denominar modo intra plano. El modo intra en plano puede incluir una función en plano lineal que se ajusta al bloque para propósitos de predicción. El modo intra en plano puede funcionar (proporcionar una predicción exacta) bien en áreas de luminancia que varía suavemente.
[0111] En algunos casos, el modo intra en plano se puede seleccionar con relativa frecuencia como un modo intra para codificar datos de vídeo. Es decir, puede haber una probabilidad relativamente mayor de seleccionar el modo en plano para codificar un bloque actual que otros modos de codificación. En consecuencia, establecer el modo por defecto en modo en plano puede aumentar la posibilidad de que el codificador de vídeo pueda codificar un modo actual en base al MPM cuando los bloques no están disponibles.
[0112] Las técnicas de la presente divulgación también se refieren a considerar más de dos MPM. Por ejemplo, como se muestra en el ejemplo de la FIG. 7, un codificador de vídeo puede considerar los modos intra asociados a una pluralidad de bloques contiguos como los MPM. Es decir, el codificador de vídeo puede considerar un modo intra asociado con cualquier bloque de referencia que sea contiguo a un bloque que se esté codificando actualmente como un MPM para el bloque actual. El codificador de vídeo puede generar una lista de los MPM y asignar valores de índice a cada MPM en la lista. El codificador de vídeo puede intracodificar a continuación el bloque actual en base al MPM, como se describe anteriormente.
[0113] En el ejemplo mostrado en la FIG. 7, el codificador de vídeo considera los modos intra asociados a cada bloque que sea contiguo al bloque actual, incluyendo un bloque contiguo "a la izquierda por encima" (AL), así como un bloque contiguo "primero por encima" (A1), un bloque contiguo "segundo por encima" A2 (no mostrado), un bloque contiguo "enésimo por encima" An, etc., a un bloque contiguo "a la derecha por encima" (AR) cuando se determina un MPM. Además, en el ejemplo mostrado en la FIG. 7, el codificador de vídeo puede considerar los modos intra asociados al bloque contiguo "primero a la izquierda" (LI), el bloque contiguo "segundo a la izquierda" L2 (no mostrado), el bloque contiguo "enésimo a la izquierda" Ln, etc., a un bloque contiguo "abajo a la izquierda" (BL).
[0114] De acuerdo con algunos aspectos de la presente divulgación, el codificador de vídeo solo puede considerar los bloques de referencia que se intracodifican cuando se determina un MPM. En otro ejemplo, el codificador de vídeo puede considerar todos los bloques (por ejemplo, incluyendo los bloques intercodificados y/o de otro modo los bloques no disponibles). En un ejemplo de este tipo, el codificador de vídeo puede asignar un modo intra por defecto (por ejemplo, tal como el modo plano o el modo DC) a bloques no disponibles antes de determinar un MPM, como se describe anteriormente.
[0115] En algunos ejemplos, el orden de comparación (por ejemplo, el orden en el que el modo intra actual se compara con el modo intra de los bloques de referencia) por un codificador o descodificador puede ser de izquierda a derecha, seguido de arriba a abajo. Por ejemplo, como se ilustra en la FIG. 7, el orden de comparación puede avanzar de izquierda a derecha en la dirección de AL a AR seguido de arriba a abajo en la dirección de AL a BL. En otro ejemplo, el orden de comparación puede ser de derecha a izquierda, seguido de abajo a arriba. Por ejemplo, como también se ilustra en la FIG. 7, el orden de comparación puede avanzar de derecha a izquierda en la dirección de AR a AL seguido de abajo a arriba en la dirección de BL a AL. En otros ejemplos, se puede usar cualquier otra combinación de órdenes de comparación (por ejemplo, de abajo a arriba seguido de izquierda a derecha, de derecha a izquierda seguido de arriba a abajo y similares).
[0116] Todavía en otros ejemplos, el orden de comparación se puede definir mediante una regla predeterminada. En dichos ejemplos, el codificador de vídeo 20 puede señalar, y el descodificador de vídeo 30 puede recuperar de un flujo de bits codificado, la regla con respecto al orden de comparación. Todavía en otros ejemplos, de acuerdo con los aspectos de la presente divulgación, un codificador de vídeo puede considerar un subconjunto de bloques contiguos, tales como cada dos bloques, cada tercer bloque o un subconjunto diferente de bloques cuando se compara un modo intra actual con los modos intra de bloques contiguos.
[0117] Los bloques de referencia que se consideran cuando se determina un MPM pueden ser fijos o señalados. Es decir, por ejemplo, tanto el codificador de vídeo 20 como el descodificador de vídeo 30 se pueden configurar para determinar el MPM comparando los modos intra de los mismos bloques de referencia contiguos. Además, tanto el codificador de vídeo 20 como el descodificador de vídeo 30 se pueden configurar para determinar el mismo orden de comparación (por ejemplo, el orden en el que se compara el modo intra actual con los modos intra de los bloques de referencia).
[0118] De forma alternativa, el codificador de vídeo 20 puede señalar qué bloques de referencia considerar durante la intracodificación de MPM y/o el orden de comparación. En este ejemplo, el descodificador de vídeo 30 puede realizar la codificación de MPM en base a la señal recibida proporcionada por el codificador de vídeo 20.
[0119] De acuerdo con los aspectos de la presente divulgación, el número de bloques de referencias que se consideran cuando se identifica un MPM se puede relacionar con el número de MPM diferentes posibles para su selección. Es decir, por ejemplo, cada bloque de referencia que se considera se puede asociar con un único MPM. El número de MPM puede ser fijo, derivado o señalado. Por ejemplo, un MPM puede depender de un número de factores diferentes, tales como bloques contiguos, tipo de fragmento, tamaño de bloque, etc. Esta información se puede usar para determinar el número de los MPM, por ejemplo, mediante una fórmula conocida. Esta fórmula conocida se puede usar a continuación para derivar el número de los MPM.
[0120] Se debería entender que, si bien los bloques de referencia en el ejemplo de la FIG. 7 se muestran teniendo un tamaño similar o igual, cuando se identifica un MPM se pueden considerar bloques de referencia de diferente tamaño por el codificador de vídeo. Además, se pueden considerar más o menos candidatos que los mostrados en el ejemplo de la FIG. 7.
[0121] La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con uno o más ejemplos descritos en la presente divulgación. En el procedimiento de ejemplo de codificación de datos de vídeo de la FIG. 8 el codificador de vídeo 20 determina un modo intra para predecir un bloque actual de datos de vídeo (800). Por ejemplo, el codificador de vídeo 20 puede realizar una intracodificación de bloques de vídeo dentro de segmentos de vídeo. La intracodificación se puede basar de la predicción espacial para reducir o eliminar la redundancia espacial en vídeo dentro de una trama o imagen de vídeo dado. Un modo intra se puede referir a cualquiera de varios modos de compresión espaciales.
[0122] El codificador de vídeo 20 determina los MPM candidatos para predecir el bloque actual de datos de vídeo (802). Es decir, por ejemplo, el codificador de vídeo 20 puede identificar un modo de intrapredicción de bloques codificados previamente (por ejemplo, bloques de referencia) y comparar dichos modos de intrapredicción con un modo de intrapredicción para el bloque actual (por ejemplo, un modo intra real para codificar el bloque actual como se selecciona, por ejemplo, usando un análisis de distorsión de velocidad descrito anteriormente con respecto a la FIG.
2). Los modos intra de dichos bloques de referencia pueden tener una probabilidad relativamente alta de ser iguales o similares al bloque actual debido a una proximidad espacial de los bloques al bloque actual. El modo de intrapredicción de múltiples bloques de referencia se puede considerar cuando se identifica un MPM.
[0123] En algunos ejemplos, el codificador de vídeo 20 compara el modo intra con cada uno de los MPM en un orden de comparación. Como se analiza anteriormente, el orden de comparación es, por ejemplo, el orden en el que el modo intra actual se compara con el modo intra de los bloques de referencia por el codificador de vídeo 20. El orden de comparación puede ser de izquierda a derecha, seguido de arriba a abajo. En otro ejemplo, el orden de comparación puede ser de derecha a izquierda, seguido de abajo a arriba. En otros ejemplos, se puede usar cualquier otra combinación de órdenes de comparación (por ejemplo, de abajo a arriba seguido de izquierda a derecha, de derecha a izquierda seguido de arriba a abajo y similares).
[0124] Como se analiza anteriormente, todavía en otros ejemplos, el orden de comparación se puede definir por alguna regla, y la regla se puede señalar (por ejemplo, señalar por el codificador de vídeo 20 que se va a usar por el descodificador de vídeo 30). Todavía en otros ejemplos, de acuerdo con los aspectos de la presente divulgación, el codificador de vídeo 20 puede considerar un subconjunto de bloques contiguos, tales como cada dos bloques, cada tercer bloque o un subconjunto diferente de bloques cuando se compara un modo intra actual con los modos intra de bloques contiguos.
[0125] El codificador de vídeo 20 determina un índice para cada uno de los MPM en base al orden de comparación (804). Por ejemplo, como se analiza anteriormente con respecto a la FIG. 6, el codificador de vídeo 20 puede asignar un valor de índice de cero al modo intra del bloque contiguo izquierdo ("PRIMERA COMPARACIÓN" "0") y un valor de índice de uno al modo intra del bloque contiguo anterior ("SEGUNDA COMPARACIÓN" "1"). Si bien el ejemplo mostrado en la FIG. 6 incluye solo dos MPM, se pueden asignar valores de índice adicionales a otros MPM si se consideran dichos MPM.
[0126] El codificador de vídeo 20 señala el índice del MPM que coincide con el modo intra para predecir el bloque de datos actual en un flujo de bits (806). Por ejemplo, como se indica anteriormente, el índice puede identificar el MPM coincidente en base al orden de comparación. Por el contrario, cada modo intra puede tener un índice de modo intra asociado original que identifica el modo intra como uno de una pluralidad de posibles modos intra (tal como uno de los 35 modos intra), como se define de acuerdo con una norma de codificación. Este índice original puede ser diferente del índice señalado en el flujo de bits de acuerdo con los aspectos de la presente divulgación. Por ejemplo, como se indica anteriormente, el codificador de vídeo 20 puede asignar valores de índice de MPM en base a un orden de comparación en orden ascendente, un MPM de este tipo comparado con el modo intra actual relativamente más temprano en el procedimiento de comparación puede tener un valor de índice menor que un MPM comparado con el modo intra actual relativamente más tarde en el procedimiento de comparación. En consecuencia, el MPM comparado más temprano puede tener un valor de índice menor que el MPM comparado más tarde, independientemente del índice de modo intra original del MPM comparado más temprano. Es decir, en algunos ejemplos, el MPM comparado más temprano puede tener un valor de índice original mayor que el MPM comparado más tarde.
[0127] La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de datos de vídeo de acuerdo con uno o más ejemplos descritos en la presente divulgación. En el procedimiento de ejemplo de descodificación de datos de vídeo de la FIG. 9, el descodificador de vídeo 30 genera una lista de los MPM para un bloque actual de datos de vídeo (900). Por ejemplo, el codificador de vídeo 30 puede generar una lista de los MPM y asignar valores de índice a cada MPM en la lista. La lista de los MPM se puede organizar en un orden de comparación que sea indicativo de un orden en el que se comparó un modo intra para un bloque actual de datos de vídeo con uno o más modos intra asociados a uno o más bloques de referencia de datos de vídeo durante la codificación del bloque actual de datos de vídeo.
[0128] El descodificador de vídeo 30 determina un índice de MPM que identifica el modo intra para el bloque actual en la lista de los MPM (902). El descodificador de vídeo 30 puede determinar un índice de MPM que identifica el modo intra para el bloque actual en la lista de los MPM. El descodificador de vídeo 30 puede identificar a continuación el modo intra para el bloque actual usando el índice de MPM, y descodificar el bloque actual con el modo intra identificado para el bloque actual. En un ejemplo, el descodificador de vídeo 30 puede determinar el índice de MPM en base a la señal incluida en un flujo de bits codificado. El codificador de vídeo 20 puede haber señalado el modo de intrapredicción usando un indicador de MPM de un bit. Es decir, el codificador de vídeo 20 puede señalar que el modo de intrapredicción para un bloque actual es el mismo que el MPM, sin tener que identificar explícitamente el modo de intrapredicción para el bloque actual. El descodificador de vídeo 30 puede recibir a continuación el indicador que indica que el modo intra para el bloque actual es el mismo que el MPM.
[0129] El descodificador de vídeo 30 identifica el modo intra para el bloque actual usando el índice de MPM (904). Por ejemplo, el descodificador de vídeo 30 puede identificar el MPM usando los mismos bloques considerados por el codificador de vídeo 20 durante la codificación. El descodificador de vídeo 30 puede usar a continuación el índice de MPM señalado para seleccionar uno de los modos intra clasificados. El descodificador de vídeo 30 descodifica el bloque actual con el modo intra identificado para el bloque actual (906).
[0130] Por ejemplo, como se indica anteriormente, el índice puede identificar el MPM coincidente en base al orden de comparación. Por el contrario, cada modo intra puede tener un índice de modo intra asociado original que identifica el modo intra como uno de una pluralidad de posibles modos intra (tal como uno de los 35 modos intra), como se define de acuerdo con una norma de codificación. Este índice original puede ser diferente del índice señalado en el flujo de bits de acuerdo con los aspectos de la presente divulgación. Por ejemplo, el descodificador de vídeo 30 puede determinar los valores de índice de MPM en base a un orden de comparación en orden ascendente.
[0131] La FIG. 10 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de datos de vídeo de acuerdo con uno o más ejemplos descritos en la presente divulgación. En el procedimiento de ejemplo de codificación de datos de vídeo de la FIG. 10 un codificador de vídeo tal como el codificador de vídeo 20 o el descodificador de vídeo 30 puede identificar uno o más bloques de datos de vídeo para determinar un MPM para un bloque actual de datos de vídeo (1000). El codificador de vídeo puede determinar si alguno de los uno o más bloques no está disponible para usarse como bloques de referencia para determinar un MPM para el bloque actual de datos de vídeo (1002). Por ejemplo, un bloque de referencia se puede considerar "no disponible" si el bloque de referencia aún no se ha codificado (y, por tanto, se desconoce su modo de predicción), si el bloque de referencia se codifica usando interpredicción (descrito anteriormente), o si el bloque de referencia no existe (el bloque situado en la esquina superior izquierda de una imagen o fragmento puede no tener bloques contiguos a la izquierda y/o por encima).
[0132] El codificador de vídeo asigna un modo intra por defecto a cualquiera de los uno o más bloques que no están disponibles para usarse como bloques de referencia. En un ejemplo, el modo intra por defecto puede ser el modo plano (1004). El modo intra plano (también denominado modo intra en plano) puede incluir una función en plano lineal que se ajusta al bloque para propósitos de exactitud y puede proporcionar una predicción exacta en áreas de luminancia que varía suavemente. En otros ejemplos, el modo intra por defecto puede ser el modo DC u otro modo intra.
[0133] El codificador de vídeo determina un modo intra para el bloque actual de datos de vídeo en base a los modos intra de los uno o más bloques (1006). Por ejemplo, con respecto al codificador de vídeo 20, como se describe con respecto al ejemplo de la FIG. 4 anteriormente, si el modo intra real para el bloque actual (por ejemplo, como se calcula, por ejemplo, por la unidad de intrapredicción 46) es el mismo que el bloque de referencia A o bien el bloque de referencia B, el codificador de vídeo 20 puede señalar un indicador de un bit que indica que se usa un MPM para codificar el bloque actual (por ejemplo, el indicador de MPM se establece igual a uno). De forma alternativa, con respecto al descodificador de vídeo 30, como se describe anteriormente, el descodificador de vídeo 30 puede obtener un indicador de MPM de un flujo de bits codificado, y usar el indicador de MPM para determinar el modo intra para descodificar el bloque actual.
[0134] El codificador de vídeo codifica el bloque actual usando el modo intra determinado (1008). Por ejemplo, el codificador de vídeo 20 codifica el bloque actual prediciendo el bloque actual que usa el modo intra determinado para generar un bloque de vídeo de referencia. El codificador de vídeo 20 también puede determinar un bloque residual que incluye una diferencia entre el bloque de referencia y el bloque actual e incluir el bloque residual en el flujo de bits. De forma alternativa, el descodificador de vídeo 30 decodifica el bloque actual con el MPM identificado para el bloque actual. Por ejemplo, el descodificador de vídeo 30 puede obtener, a partir de un flujo de bits codificado, un bloque de vídeo residual asociado con el bloque actual. El descodificador de vídeo 30 puede generar un bloque de referencia prediciendo el bloque actual que usa el modo intra identificado para el bloque actual. Adicionalmente, el descodificador de vídeo 30 puede determinar valores para el bloque actual a partir de una combinación del bloque de referencia y un bloque de vídeo residual recibido.
[0135] Si bien se han descrito determinados aspectos de la presente divulgación con respecto al codificador de vídeo 20 y al descodificador de vídeo 30, se debería entender que las técnicas de la presente divulgación se pueden aplicar por un número de otras unidades de codificación y/o descodificación de vídeo, procesadores, unidades de procesamiento, unidades de codificación basadas en hardware tales como codificador/descodificadores (CÓDEC) y similares. Además, se debería entender que las etapas mostradas y descritas con respecto a las FIGS. 8-10 se proporcionan simplemente como ejemplos. Es decir, no es necesario que las etapas mostradas en los ejemplos de las FIGS. 8-10 se realicen necesariamente en el orden mostrado en las FIGS. 8-10, y se pueden realizar menos etapas adicionales o alternativas.
[0136] Además, se debería entender que, dependiendo del ejemplo, determinados actos o acontecimientos de cualquiera de los procedimientos descritos en el presente documento se pueden realizar en una secuencia diferente, se pueden añadir, fundir u omitir por completo (por ejemplo, no todos los actos o acontecimientos descritos son necesarios para la práctica del procedimiento). Además, en determinados ejemplos, los actos o acontecimientos se pueden realizar simultáneamente, por ejemplo, a través de procesamiento de múltiples subprocesos, procesamiento de interrupciones o múltiples procesadores, en lugar de secuencialmente. Además, si bien se describe que determinados aspectos de la presente divulgación se realizan por un único módulo o unidad para propósitos de claridad, se debería entender que se pueden realizar las técnicas de la presente divulgación por una combinación de unidades o módulos asociados a un codificador de vídeo.
[0137] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en, o transmitir por, un medio legible por ordenador, como una o más instrucciones o código, y ejecutarse por una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como medios de almacenamiento de datos, o medios de comunicación que incluyen cualquier medio que facilita la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación.
[0138] De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) 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 cualquier medio disponible al que se pueda 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 la presente divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0139] 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 se pueda usar para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder mediante un ordenador. Además, cualquier conexión recibe apropiadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o unas 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 están incluidos en la definición de medio.
[0140] Sin embargo, se debería entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales ni otros medios transitorios, sino que, en cambio, se dirigen a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde algunos discos reproducen habitualmente los datos magnéticamente, mientras que otros discos reproducen los datos ópticamente con láseres. Las combinaciones de los anteriores se deberían incluir también dentro del alcance de los medios legibles por ordenador.
[0141] Las instrucciones se pueden ejecutar 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), matrices lógicas programables in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. En consecuencia, el término "procesador", como se usa en el presente documento, se puede referir 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 se puede proporcionar dentro de módulos de hardware y/o software dedicados configurados para codificar y descodificar, o incorporarse en un códec combinado. Además, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0142] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En la presente divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no se requiere necesariamente su realización por diferentes unidades de hardware. En su lugar, como se describe anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar por un grupo de unidades de hardware interoperativas, que incluyen uno o más procesadores, como se describe anteriormente, junto con un software y/o firmware adecuados.
[0143] Se han descrito diversos aspectos de la divulgación. Estos y otros aspectos están dentro del alcance de las siguientes reivindicaciones.

Claims (15)

REIVINDICACIONES
1. Un procedimiento de codificación de datos de vídeo, comprendiendo el procedimiento:
determinar un modo intra para predecir un bloque actual de datos de vídeo;
determinar los modos más probables, MPM, para predecir el bloque actual de datos de vídeo, siendo los modos más probables modos intra de bloques codificados previamente que son contiguos al bloque actual; comparar el modo intra del bloque actual con cada uno de los MPM en un orden de comparación; asignar valores de índice a los MPM en el orden en el que se compara el modo intra del bloque actual con los MPM; y
señalar, cuando uno de los MPM para predecir el bloque actual coincide con el modo intra para predecir el bloque actual, el índice del MPM coincidente.
2. El procedimiento de la reivindicación 1, que comprende además, cuando el modo intra del bloque actual no coincide con uno de los MPM, establecer un indicador de MPM en cero y señalar el modo intra del bloque actual en base a un procedimiento de asignación de palabras de código.
3. El procedimiento de la reivindicación 2, en el que el procedimiento de asignación de palabras de código comprende eliminar los MPM de los modos intra restantes, o
clasificar los MPM en orden ascendente.
4. El procedimiento de la reivindicación 1, que comprende además señalar, antes del índice del MPM, un indicador de MPM que indica que el índice del MPM se ha señalado.
5. Un aparato para codificar datos de vídeo que comprende:
medios para determinar un modo intra para predecir un bloque actual de datos de vídeo;
medios para determinar los modos más probables, MPM, para predecir el bloque actual de datos de vídeo, siendo los modos más probables modos intra de bloques codificados previamente que son contiguos al bloque actual;
medios para comparar el modo intra del bloque actual con cada uno de los MPM en un orden de comparación; medios para asignar valores de índice a los MPM en el orden en el que se compara el modo intra del bloque actual con los MPM; y
medios para señalar, cuando uno de los MPM para predecir el bloque actual coincide con el modo intra para predecir el bloque actual, el índice del MPM coincidente.
6. Un procedimiento de descodificación de datos de vídeo, comprendiendo el procedimiento:
generar, cuando un modo intra para un bloque actual comprende un MPM, una lista de los MPM para un bloque actual de datos de vídeo, siendo los modos más probables modos intra de bloques codificados previamente que son contiguos al bloque actual, en el que la lista de los MPM se organiza en un orden en el que el modo intra para el bloque actual de datos de vídeo se compara con cada uno de los MPM;
determinar un índice de MPM que identifica el modo intra para el bloque actual en la lista de los MPM; identificar el modo intra para el bloque actual usando el índice de MPM; y
descodificar el bloque actual con el modo intra identificado para el bloque actual.
7. El procedimiento de la reivindicación 6, que comprende además, cuando el modo intra del bloque actual no coincide con uno de los MPM, determinar un modo intra para el bloque actual en base a un índice señalado en base a un procedimiento de asignación de palabras de código.
8. El procedimiento de la reivindicación 7, en el que realizar el procedimiento de asignación de palabras de código comprende eliminar los MPM del conjunto de modos intra restantes, o clasificar los MPM en orden ascendente.
9. El procedimiento de la reivindicación 6, en el que los MPM se asocian con un bloque de vídeo contiguo izquierdo del bloque actual y un bloque de vídeo contiguo anterior del bloque actual, y en el que generar la lista comprende comparar un modo intra asociado con el bloque de vídeo contiguo izquierdo antes de comparar el bloque contiguo anterior de modo que un modo intra asociado con el bloque de vídeo contiguo izquierdo se enumere antes de un modo intra asociado con el bloque de vídeo contiguo anterior en la lista.
10. El procedimiento de la reivindicación 6, en el que los MPM se asocian con un bloque de vídeo contiguo izquierdo del bloque actual y un bloque de vídeo contiguo anterior del bloque actual, y en el que generar la lista comprende comparar un modo intra asociado con el bloque contiguo anterior antes de comparar el bloque de vídeo contiguo izquierdo de modo que un modo intra asociado con el bloque de vídeo contiguo anterior se enumere antes de un modo intra asociado con el bloque de vídeo contiguo izquierdo en la lista.
11. El procedimiento de la reivindicación 6, en el que la lista de los MPM comprende al menos un primer MPM que tiene un primer índice inicial y un segundo MPM que tiene un segundo índice inicial que es menor que el primer índice inicial, especificándose el primer y el segundo índices iniciales por una norma de codificación de vídeo, y en el que generar la lista comprende añadir el primer MPM a la lista antes de añadir el segundo MPM a la lista, de modo que un modo intra asociado con el bloque de vídeo contiguo izquierdo se enumere antes de un modo intra asociado con el bloque de vídeo contiguo anterior en la lista.
12. El procedimiento de la reivindicación 6, que comprende además ordenar la lista en base a estadísticas asociadas con una probabilidad de que un MPM coincida con el modo intra para predecir el bloque actual.
13. El procedimiento de la reivindicación 6, que determina, a partir de un flujo de bits codificado, un orden de comparación para generar la lista.
14. Un aparato para descodificar datos de vídeo, comprendiendo el aparato:
medios para generar, cuando un modo intra para un bloque actual comprende un MPM, una lista de los MPM para un bloque actual de datos de vídeo, siendo los modos más probables modos intra de bloques codificados previamente que son contiguos al bloque actual; en el que la lista de los MPM se organiza en un orden en el que se compara el modo intra para el bloque actual de datos de vídeo con cada uno de los MPM;
medios para determinar un índice de MPM que identifica el modo intra para el bloque actual en la lista de los MPM;
medios para identificar el modo intra para el bloque actual usando el índice de MPM; y
medios para descodificar el bloque actual con el modo intra identificado para el bloque actual.
15. Un medio de almacenamiento legible por ordenador que comprende instrucciones que llevan a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 4 o 6 a 13.
ES12784854T 2011-11-04 2012-11-02 Codificación de vídeo en modo intra Active ES2763443T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161556029P 2011-11-04 2011-11-04
US13/666,594 US9154796B2 (en) 2011-11-04 2012-11-01 Intra-mode video coding
PCT/US2012/063297 WO2013067334A2 (en) 2011-11-04 2012-11-02 Intra-mode video coding

Publications (1)

Publication Number Publication Date
ES2763443T3 true ES2763443T3 (es) 2020-05-28

Family

ID=47178361

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12784854T Active ES2763443T3 (es) 2011-11-04 2012-11-02 Codificación de vídeo en modo intra

Country Status (20)

Country Link
US (1) US9154796B2 (es)
EP (1) EP2774363B1 (es)
JP (1) JP5902307B2 (es)
KR (1) KR101618484B1 (es)
CN (1) CN103959775B (es)
AR (1) AR089571A1 (es)
AU (1) AU2012332242B2 (es)
BR (1) BR112014010326B1 (es)
CA (1) CA2853660C (es)
DK (1) DK2774363T3 (es)
ES (1) ES2763443T3 (es)
HU (1) HUE046831T2 (es)
IL (1) IL232238B (es)
IN (1) IN2014CN02999A (es)
MX (1) MX2014005352A (es)
MY (1) MY167847A (es)
RU (1) RU2584498C2 (es)
SG (1) SG11201401493SA (es)
TW (1) TWI532367B (es)
WO (1) WO2013067334A2 (es)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5732454B2 (ja) * 2009-07-06 2015-06-10 トムソン ライセンシングThomson Licensing 空間変化残差符号化を行う方法および装置
KR101507344B1 (ko) * 2009-08-21 2015-03-31 에스케이 텔레콤주식회사 가변 길이 부호를 이용한 인트라 예측모드 부호화 방법과 장치, 및 이를 위한기록 매체
AU2011354441B2 (en) * 2011-01-07 2014-07-17 Hfi Innovation Inc. Method and apparatus of improved intra luma prediction mode coding
CN102595118B (zh) * 2011-01-14 2015-04-08 华为技术有限公司 一种编解码中的预测方法和预测器
WO2012134046A2 (ko) 2011-04-01 2012-10-04 주식회사 아이벡스피티홀딩스 동영상의 부호화 방법
KR20130049522A (ko) 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR101827939B1 (ko) * 2011-12-13 2018-02-12 주식회사 스카이미디어테크 적응적인 인트라 예측 모드 부호화 방법 및 장치, 그리고 복호화 방법 및 장치
AU2013208472B2 (en) * 2012-01-13 2015-10-01 Sharp Kabushiki Kaisha Image decoding device, image encoding device, and data structure of encoded data
WO2013106986A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of intra mode coding
EP3723369A1 (en) * 2012-01-20 2020-10-14 Dolby Laboratories Licensing Corporation Intra prediction mode mapping device
US9955169B2 (en) 2012-01-30 2018-04-24 Electronics And Telecommunications Research Institute Intra prediction mode encoding/decoding method and apparatus
WO2013115568A1 (ko) 2012-01-30 2013-08-08 한국전자통신연구원 인트라 예측 모드 부호화/복호화 방법 및 장치
CN104247423B (zh) * 2012-03-21 2018-08-07 联发科技(新加坡)私人有限公司 可伸缩视频编码***的帧内模式编码方法和装置
US9277212B2 (en) * 2012-07-09 2016-03-01 Qualcomm Incorporated Intra mode extensions for difference domain intra prediction
US10542286B2 (en) 2012-12-19 2020-01-21 ARRIS Enterprise LLC Multi-layer video encoder/decoder with base layer intra mode used for enhancement layer intra mode prediction
US9826239B2 (en) * 2013-01-07 2017-11-21 Lg Electronics Inc. Video signal processing method and device
KR20140092198A (ko) * 2013-01-07 2014-07-23 한국전자통신연구원 계층적 비디오 부호화에서의 스케일러빌리티 정보 표현방식
KR101712110B1 (ko) * 2013-07-12 2017-03-13 삼성전자 주식회사 변이 벡터 유도를 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9497473B2 (en) * 2013-10-03 2016-11-15 Qualcomm Incorporated High precision explicit weighted prediction for video coding
US10148953B2 (en) * 2014-11-10 2018-12-04 Samsung Electronics Co., Ltd. System and method for intra prediction in video coding
US10075692B2 (en) * 2015-01-28 2018-09-11 Hfi Innovation Inc. Method of simple intra mode for video coding
US20160373782A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
US20160373742A1 (en) * 2015-06-18 2016-12-22 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
US10841593B2 (en) * 2015-06-18 2020-11-17 Qualcomm Incorporated Intra prediction and intra mode coding
WO2017008255A1 (en) * 2015-07-14 2017-01-19 Mediatek Singapore Pte. Ltd. Advanced intra prediction mode signaling in video coding
ES2677193B1 (es) 2015-08-28 2019-06-19 Kt Corp Procedimiento y dispositivo para procesar señales de vídeo
KR20180064414A (ko) 2015-10-13 2018-06-14 엘지전자 주식회사 비디오 신호의 인코딩, 디코딩 방법 및 장치
CN106878752B (zh) * 2015-12-11 2022-03-04 北京三星通信技术研究有限公司 一种视频编码模式的编解码方法和装置
KR102631308B1 (ko) * 2016-02-16 2024-01-30 삼성전자주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
CN113438478A (zh) * 2016-04-06 2021-09-24 株式会社Kt 对视频进行编码、解码的方法及存储压缩视频数据的设备
CN113810711B (zh) * 2016-04-29 2024-05-10 世宗大学校产学协力团 用于对图像信号进行编码和解码的方法和装置
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
US10694210B2 (en) 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US10223810B2 (en) 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
ES2699723B2 (es) 2016-06-24 2020-10-16 Kt Corp Metodo y aparato para tratar una senal de video
US10812795B2 (en) 2016-09-30 2020-10-20 Lg Electronic Inc. Method for processing picture based on intra-prediction mode and apparatus for same
EP3522531A4 (en) * 2016-09-30 2020-04-15 LG Electronics Inc. -1- IMAGE PROCESSING METHOD BASED ON INTRA PREDICTION MODE AND APPARATUS THEREOF
US10506228B2 (en) 2016-10-04 2019-12-10 Qualcomm Incorporated Variable number of intra modes for video coding
KR20180039324A (ko) * 2016-10-10 2018-04-18 디지털인사이트 주식회사 정방형 또는 직방형 블록의 화면 내 예측모드 정보 추출 방법 및 장치
KR20180041833A (ko) * 2016-10-17 2018-04-25 디지털인사이트 주식회사 화면 내 예측에 대한 참조 모드 리스트를 사용하는 비디오 코딩 방법 및 장치
KR20180043149A (ko) * 2016-10-19 2018-04-27 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
CN116915991A (zh) * 2016-10-19 2023-10-20 Sk电信有限公司 对视频数据进行编码或解码的方法及存储比特流的方法
CN116781899A (zh) 2016-10-28 2023-09-19 韩国电子通信研究院 视频编码/解码方法和设备以及存储比特流的记录介质
CN117119185A (zh) * 2017-01-02 2023-11-24 Lx 半导体科技有限公司 图像编码/解码设备以及发送图像数据的设备
US11146795B2 (en) * 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
US11496747B2 (en) * 2017-03-22 2022-11-08 Qualcomm Incorporated Intra-prediction mode propagation
US11102509B2 (en) * 2017-04-28 2021-08-24 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium storing bit stream
EP3399754A1 (en) 2017-05-04 2018-11-07 Thomson Licensing Method and apparatus for most probable mode (mpm) reordering for intra prediction
US10356411B2 (en) 2017-05-30 2019-07-16 Google Llc Adaptation of scan order entropy coding
US10630974B2 (en) 2017-05-30 2020-04-21 Google Llc Coding of intra-prediction modes
EP4084475B1 (en) 2017-05-31 2024-03-06 LG Electronics Inc. Method and device for performing image decoding on basis of intra prediction in image coding system
EP3422717A1 (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
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
EP3700208A4 (en) * 2017-10-18 2021-04-07 Electronics and Telecommunications Research Institute IMAGE ENCODING / DECODING METHOD AND DEVICE AND RECORDING MEDIUM WITH BITSTREAM STORED ON IT
CN111373755B (zh) * 2017-11-16 2024-04-26 英迪股份有限公司 图像编码/解码方法和装置以及存储比特流的记录介质
US10965942B2 (en) 2017-11-17 2021-03-30 FG Innovation Company Limited Device and method for coding video data based on adjusted intra mode list
US11212553B2 (en) 2017-11-28 2021-12-28 Electronics And Telecommunications Research Institute Bidirectional intra prediction method and apparatus
CN111819845A (zh) 2018-03-08 2020-10-23 三星电子株式会社 视频解码方法和装置以及视频编码方法和装置
SG11202009345QA (en) * 2018-05-10 2020-10-29 Samsung Electronics Co Ltd Video encoding method and apparatus, and video decoding method and apparatus
WO2020009375A1 (ko) * 2018-07-02 2020-01-09 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 방법 및 장치
US11277644B2 (en) 2018-07-02 2022-03-15 Qualcomm Incorporated Combining mode dependent intra smoothing (MDIS) with intra interpolation filter switching
US11523106B2 (en) * 2018-07-11 2022-12-06 Lg Electronics Inc. Method for coding intra-prediction mode candidates included in a most probable modes (MPM) and remaining intra prediction modes, and device for same
WO2020055290A1 (en) * 2018-09-13 2020-03-19 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction
KR102622452B1 (ko) * 2018-09-13 2024-01-09 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 아핀 선형 가중 인트라 예측
WO2020058896A1 (en) 2018-09-19 2020-03-26 Beijing Bytedance Network Technology Co., Ltd. Intra mode coding based on history information
US20200099927A1 (en) * 2018-09-24 2020-03-26 Qualcomm Incorporated Most probable modes (mpms) construction
EP3633857B1 (en) * 2018-10-03 2022-01-26 BlackBerry Limited Methods and devices for on-the-fly coder mapping updates in point cloud coding
US11095885B2 (en) 2018-10-05 2021-08-17 Tencent America LLC Mode list generation for multi-line intra prediction
WO2020073911A1 (en) 2018-10-09 2020-04-16 Huawei Technologies Co., Ltd. Devices and methods for image and video coding
BR112021006238A2 (pt) * 2018-10-12 2021-07-06 Guangdong Oppo Mobile Telecommunications Corp Ltd método de decodificação de vídeo e método de codificação de vídeo
US11303885B2 (en) 2018-10-25 2022-04-12 Qualcomm Incorporated Wide-angle intra prediction smoothing and interpolation
WO2020091213A1 (ko) * 2018-11-04 2020-05-07 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 방법 및 장치
CN115348443A (zh) * 2018-11-30 2022-11-15 杭州海康威视数字技术股份有限公司 一种运动信息确定方法、装置及其设备
US11032551B2 (en) 2018-12-04 2021-06-08 Tencent America LLC Simplified most probable mode list generation scheme
WO2020130477A1 (ko) * 2018-12-17 2020-06-25 세종대학교산학협력단 비디오 부호화/복호화 방법 및 장치
WO2020171647A1 (ko) * 2019-02-21 2020-08-27 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측을 사용하는 영상 디코딩 방법 및 그 장치
GB2582023A (en) * 2019-03-08 2020-09-09 British Broadcasting Corp Method of signalling in a video codec
WO2020184821A1 (ko) * 2019-03-12 2020-09-17 엘지전자 주식회사 Mpm 리스트를 구성하는 방법 및 장치
CN110166772B (zh) * 2019-03-12 2021-04-27 浙江大华技术股份有限公司 帧内预测模式的编解码方法、装置、设备和可读存储介质
CN110062227B (zh) * 2019-03-12 2021-04-27 浙江大华技术股份有限公司 帧内预测模式的编解码方法、装置、设备和可读存储介质
CN114731430A (zh) * 2019-12-05 2022-07-08 交互数字Vc控股法国有限公司 与多个变换选择、矩阵加权帧内预测或多参考线帧内预测结合的用于视频编码和解码的帧内子分区
CN113691809A (zh) * 2021-07-07 2021-11-23 浙江大华技术股份有限公司 帧内预测方法及编、解码方法、电子设备及存储介质
CN116095316B (zh) * 2023-03-17 2023-06-23 北京中星微人工智能芯片技术有限公司 视频图像处理方法及装置、电子设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1944977B1 (en) 2002-05-28 2014-12-31 Sharp Kabushiki Kaisha Method and Systems for Image intra-prediction mode estimation, communication, and organization
DE60345459C5 (de) 2002-06-11 2022-11-17 Nokia Technologies Oy Intracodierung auf der basis räumlicher prädiktion
RU2314656C2 (ru) * 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
KR101291196B1 (ko) * 2008-01-25 2013-07-31 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR101306834B1 (ko) 2008-09-22 2013-09-10 에스케이텔레콤 주식회사 인트라 예측 모드의 예측 가능성을 이용한 영상 부호화/복호화 장치 및 방법
EP2394437B1 (en) * 2009-02-06 2015-04-08 Thomson Licensing Methods and apparatus for implicit and semi-implicit intra mode signaling for video encoders and decoders
JP5746182B2 (ja) 2009-09-14 2015-07-08 トムソン ライセンシングThomson Licensing イントラ予測モードの効率的なビデオ符号化及び復号化方法及び装置
KR20110068793A (ko) * 2009-12-16 2011-06-22 한국전자통신연구원 영상 부호화 및 복호화를 위한 장치 및 방법
KR101789634B1 (ko) 2010-04-09 2017-10-25 엘지전자 주식회사 비디오 데이터 처리 방법 및 장치
KR101772459B1 (ko) 2010-05-17 2017-08-30 엘지전자 주식회사 신규한 인트라 예측 모드
US8902978B2 (en) 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
EP3125555B1 (en) * 2010-08-17 2018-04-18 M&K Holdings Inc. Method for encoding an intra prediction mode
US9025661B2 (en) 2010-10-01 2015-05-05 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding
US8913662B2 (en) 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
CN103314588B (zh) 2011-01-07 2016-05-11 联发科技(新加坡)私人有限公司 编码方法与装置以及解码方法与装置
GB2491391B (en) 2011-06-02 2014-09-03 Canon Kk Encoding mode values representing prediction modes
US9532058B2 (en) * 2011-06-03 2016-12-27 Qualcomm Incorporated Intra prediction mode coding with directional partitions
US9654785B2 (en) 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
PL2720461T3 (pl) * 2011-06-13 2024-02-05 Sun Patent Trust Sposób dekodowania obrazów, sposób kodowania obrazów, urządzenie do dekodowania obrazów, urządzenie do kodowania obrazów, oraz urządzenie do kodowania i dekodowania obrazów
CN107257466B (zh) 2011-06-17 2020-06-26 寰发股份有限公司 内部预测模式编码的方法及装置
EP2727363B1 (en) 2011-06-28 2020-11-18 HFI Innovation Inc. Method and apparatus of intra mode coding
US9699456B2 (en) 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
GB2494468B (en) 2011-09-12 2014-01-15 Canon Kk Method and device for encoding or decoding information representing prediction modes
GB2494469B (en) 2011-09-12 2015-04-01 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

Also Published As

Publication number Publication date
RU2584498C2 (ru) 2016-05-20
EP2774363A2 (en) 2014-09-10
CN103959775A (zh) 2014-07-30
MX2014005352A (es) 2014-05-28
BR112014010326A2 (pt) 2017-04-18
DK2774363T3 (da) 2020-01-20
AU2012332242A1 (en) 2014-05-22
CN103959775B (zh) 2017-11-10
RU2014122600A (ru) 2015-12-10
JP5902307B2 (ja) 2016-04-13
US9154796B2 (en) 2015-10-06
TWI532367B (zh) 2016-05-01
MY167847A (en) 2018-09-26
TW201342931A (zh) 2013-10-16
AU2012332242B2 (en) 2016-04-21
IL232238A0 (en) 2014-06-30
SG11201401493SA (en) 2014-06-27
WO2013067334A2 (en) 2013-05-10
BR112014010326B1 (pt) 2022-05-10
EP2774363B1 (en) 2019-10-02
US20130114707A1 (en) 2013-05-09
CA2853660A1 (en) 2013-05-10
IN2014CN02999A (es) 2015-07-03
JP2014535225A (ja) 2014-12-25
CA2853660C (en) 2017-03-21
IL232238B (en) 2019-09-26
KR101618484B1 (ko) 2016-05-18
HUE046831T2 (hu) 2020-03-30
KR20140098113A (ko) 2014-08-07
WO2013067334A3 (en) 2013-07-04
AR089571A1 (es) 2014-09-03

Similar Documents

Publication Publication Date Title
ES2763443T3 (es) Codificación de vídeo en modo intra
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
ES2952256T3 (es) Modelado de contexto eficiente de memoria
AU2012271835B2 (en) Border pixel padding for intra prediction in video coding
ES2611349T3 (es) Codificación de Indicador de bloque codificado (CBF) para el formato de muestra 4:2:2 en codificación de vídeo
ES2844549T3 (es) Inicialización del parámetro de Rice para la codificación de niveles de coeficiente en un proceso de codificación de vídeo
ES2608595T3 (es) Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC
ES2673069T3 (es) Procesamiento paralelo de frente de onda para codificación de vídeo
ES2856051T3 (es) Candidatos de fusión favorables a la paralelización para codificación de vídeo
ES2810253T3 (es) Reposicionamiento de bloques residuales de predicción en codificación de vídeo
CA2840598C (en) Signaling syntax elements for transform coefficients for sub-sets of a leaf-level coding unit
US20130114730A1 (en) Coding significant coefficient information in transform skip mode
JP2015507429A (ja) ビデオコード化において変換係数データをコード化するためのコンテキストの決定
CA2865616C (en) Deriving context for last position coding for video coding
BR122020003135B1 (pt) Método e dispositivo para decodificar dados de vídeo e meio de armazenamento não transitório legível por computador
ES2842082T3 (es) Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa
US20130128971A1 (en) Transforms in video coding
KR20200007044A (ko) 인트라-프레임 예측 방법 및 장치