ES2761301T3 - Coeficientes de codificación por entropía usando un modelo de contexto conjunto - Google Patents

Coeficientes de codificación por entropía usando un modelo de contexto conjunto Download PDF

Info

Publication number
ES2761301T3
ES2761301T3 ES11768258T ES11768258T ES2761301T3 ES 2761301 T3 ES2761301 T3 ES 2761301T3 ES 11768258 T ES11768258 T ES 11768258T ES 11768258 T ES11768258 T ES 11768258T ES 2761301 T3 ES2761301 T3 ES 2761301T3
Authority
ES
Spain
Prior art keywords
size
transform
coefficients
context model
context
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
ES11768258T
Other languages
English (en)
Inventor
Rojals Joel Sole
Rajan L Joshi
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 ES2761301T3 publication Critical patent/ES2761301T3/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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un procedimiento de codificación de datos de vídeo residuales, comprendiendo el procedimiento: mantener una pluralidad de modelos de contexto que incluye un modelo de contexto conjunto usado para dos o más tamaños de unidad de transformada, incluyendo además la pluralidad de modelos de contexto uno o más modelos de contexto que se usan cada uno para un tamaño de unidad de transformada diferente, comprendiendo el modelo de contexto conjunto probabilidades compartidas, en el que el modelo de contexto conjunto es compartido por una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño, en el que el primer tamaño es 16x16 y el segundo tamaño es 32x32, y en el que cada una de las unidades de transformada comprende un unidad de datos de bloque de vídeo residuales; seleccionar (122) contextos para componentes de un mapa de significancia para coeficientes asociados con una de la primera unidad de transformada y la segunda unidad de transformada de acuerdo con el modelo de contexto conjunto; y codificar por entropía (124) los componentes del mapa de significancia asociados con una de las unidades de transformada en base a los contextos seleccionados usando una técnica de codificación por entropía distinta de la codificación de longitud variable adaptativa según el contexto, CAVLC.

Description

DESCRIPCIÓN
Coeficientes de codificación por entropía usando un modelo de contexto conjunto
CAMPO TÉCNICO
[0001] Esta divulgación se refiere a la codificación de vídeo y, más en particular, a la codificación por entropía para la codificación de vídeo.
ANTECEDENTES
[0002] Las capacidades del vídeo digital se pueden incorporar a una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de sobremesa, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, dispositivos de videoconferencia y similares. Los dispositivos de vídeo 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 Avanzada de Vídeo (AVC), la norma de Codificación de Vídeo de Alta Eficacia (HEVC) y las extensiones de dichas normas.
[0003] Las técnicas de compresión de vídeo realizan predicción espacial y/o predicción temporal para reducir o eliminar la redundancia inherente a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, una trama o un corte de vídeo se puede dividir en bloques de vídeo o unidades de codificación (CU). Las CU se pueden dividir en una o más unidades de predicción (PU) para determinar los datos de vídeo predictivos para la CU. Las técnicas de compresión de vídeo también pueden dividir las CU en una o más unidades de transformada (TU) de datos de bloque de vídeo residual, lo que representa la diferencia entre el bloque de vídeo que se va a codificar y los datos de vídeo predictivos. Las transformadas lineales, tal como una transformada de coseno discreta (DCT) bidimensional, se pueden aplicar a una TU para transformar los datos de bloque de vídeo residual del dominio de píxel al dominio de frecuencia para lograr una mayor compresión.
[0004] A continuación de las transformadas, los coeficientes de transformada dentro de la TU se pueden comprimir aún más mediante cuantificación. Después de la cuantificación, una unidad de codificación por entropía puede aplicar una exploración en zigzag u otro orden de exploración asociado con un tamaño de la TU para explorar la matriz bidimensional de coeficientes en la TU para producir un vector serializado que puede ser codificado por entropía. La unidad de codificación por entropía codifica el vector serializado de coeficientes. Por ejemplo, la unidad de codificación por entropía puede realizar codificación de longitud variable adaptativa según el contexto (CAVLC), codificación aritmética binaria adaptativa según el contexto (CABAC) u otra técnica de codificación por entropía. En el caso de la codificación por entropía adaptativa según el contexto, la unidad de codificación por entropía puede seleccionar contextos para cada uno de los coeficientes dentro de la TU de acuerdo con un modelo de contexto asociado con el tamaño de la TU. Los coeficientes se pueden codificar por entropía en base a los contextos seleccionados.
[0005] En el documento US 2004/0066974 A1 , se divulga un procedimiento y un sistema para codificar una imagen usando VLC adaptativa basada en el contexto donde los coeficientes de transformada se dividen en bloques que tienen una dimensión de bloque de 4nx4m (con n, m siendo un número entero positivo igual o mayor que 1). Cada bloque se explora en zigzag para producir un vector ordenado de coeficientes que tienen una longitud de 16nxm. El vector ordenado se submuestrea de manera intercalada para producir nxm secuencias submuestreadas de coeficientes de transformada antes de codificar los coeficientes de transformada usando un codificador por entropía.
[0006] En "Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard" de Detlev Marpe, Heiko Schwarz y Thomas Wiegand, IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, núm. 7, julio de 2003, se presenta la codificación aritmética binaria adaptativa basada en contexto (CABAC) como una parte normativa de la norma H.264/AVC de ITU-T/ISO/IEC para la compresión de vídeo.078
[0007] En "Suggestion for a Test Model" de Davies et al, JCTVC-A033, Equipo de colaboración conjunta sobre codificación de vídeo de ISO/IEC JTC1/SC29/WG11 y ITU-t Sg .16, publicado el 07-05-2010 , una sugerencia para un modelo de prueba inicial de un códec de vídeo se proporciona en el marco de la actividad de normalización de HEVC. El diseño prevé una extensión del bloque de codificación y los tamaños de transformada para incluir 16x16, 32x32 y 64x64. Para la codificación por entropía de los componentes del mapa de significancia, la propuesta se basa en el esquema CABAC conocido de H.264/AVC y, para los bloques de transformada más grandes, se basa en vecindades de coeficientes locales y una medida de distancia cuantificada para realizar el modelado de contexto.
SUMARIO
[0008] En general, esta divulgación describe técnicas para realizar la codificación y la descodificación por entropía de coeficientes de transformada asociados con un bloque de datos de vídeo residuales usando un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños. Por ejemplo, el modelo de contexto conjunto se puede compartir entre unidades de transformada que tienen un primer tamaño de 32x32 y unidades de transformada que tienen un segundo tamaño de 16x16. En algunos casos, más de dos tamaños de unidades de transformada pueden compartir el mismo modelo de contexto conjunto. Como un ejemplo, el modelo de contexto conjunto puede ser un modelo de contexto conjunto del mapa de significancia para la unidad de transformada. En otros ejemplos, el modelo de contexto conjunto puede estar asociado con otra información de codificación o elementos sintácticos.
[0009] En la norma emergente de codificación de vídeo de alta eficacia (HEVC), una unidad de codificación (CU) puede incluir una o más unidades de transformada (TU) que incluyen datos de vídeo residuales para la transformada. Se han propuesto tamaños de unidades de transformada adicionales, por ejemplo, 32x32 hasta 128x128, para mejorar la eficacia de la codificación de vídeo, pero también dan como resultado una mayor memoria y requisitos computacionales para mantener modelos de contexto para cada uno de los tamaños de unidades de transformada adicionales. Realizar la codificación por entropía usando un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños puede reducir la cantidad de memoria necesaria para almacenar contextos y probabilidades en dispositivos de codificación y descodificación de vídeo, y reducir los costes computacionales de mantener modelos de contexto en dispositivos de codificación y descodificación de vídeo.
[0010] En algunos ejemplos, las técnicas también pueden reducir los requisitos de almacenamiento intermedio en memoria intermedia para unidades de transformada de mayor tamaño cuando se realizan transformadas bidimensionales. En ese caso, las técnicas incluyen la puesta a cero, es decir, el establecimiento de valores a cero, de un subconjunto de coeficientes de transformada de frecuencia más alta incluido en una unidad de transformada de un primer tamaño después de aplicar cada dirección de una transformada bidimensional para generar un bloque de coeficientes retenidos. En este ejemplo, el modelo de contexto conjunto para la codificación por entropía se puede compartir entre una unidad de transformada que tiene el primer tamaño con coeficientes puestos a cero para generar el bloque de coeficientes retenidos y una unidad de transformada que originalmente tiene el segundo tamaño. En algunos casos, el bloque de coeficientes retenidos puede tener un tamaño igual al segundo tamaño. En otros ejemplos, el modelo de contexto conjunto para la codificación por entropía se puede compartir entre una unidad de transformada que tiene el primer tamaño y una unidad de transformada que tiene el segundo tamaño.
[0011] Según un primer aspecto, se proporciona un procedimiento de codificación de datos de vídeo residuales, comprendiendo el procedimiento: mantener una pluralidad de modelos de contexto que incluye un modelo de contexto conjunto usado para dos o más tamaños de unidad de transformada, incluyendo además la pluralidad de modelos de contexto uno o más modelos de contexto que se usan cada uno para un tamaño de unidad de transformada diferente, comprendiendo el modelo de contexto conjunto probabilidades compartidas, en el que el modelo de contexto conjunto es compartido por una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño, en el que el primer tamaño es 16x16 y el segundo tamaño es 32x32, y en el que cada una de las unidades de transformada comprende una unidad de datos de bloque de vídeo residuales; seleccionar contextos para componentes de un mapa de significancia para coeficientes asociados con una de la primera unidad de transformada y la segunda unidad de transformada de acuerdo con el modelo de contexto conjunto; y codificar por entropía los componentes del mapa de significancia asociados con una de las unidades de transformada en base a los contextos seleccionados.
[0012] De acuerdo con otro aspecto, se proporciona un procedimiento de descodificación de datos de vídeo residuales, comprendiendo el procedimiento: mantener una pluralidad de modelos de contexto que incluye un modelo de contexto conjunto usado para dos o más tamaños de unidades de transformada, incluyendo además la pluralidad de modelos de contexto uno o más modelos de contexto que se usan cada uno para un tamaño de unidad de transformada diferente, comprendiendo el modelo de contexto conjunto probabilidades compartidas, en el que el modelo de contexto conjunto es compartido por una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño, en el que el primer tamaño es 16x16 y el segundo tamaño es 32x32, y en el que cada una de las unidades de transformada comprende una unidad de datos de bloque de vídeo residuales; seleccionar contextos para componentes de un mapa de significancia para coeficientes asociados con una de la primera unidad de transformada y la segunda unidad de transformada de acuerdo con el modelo de contexto conjunto; y descodificar por entropía los componentes del mapa de significancia asociados con una de las unidades de transformada en base a los contextos seleccionados.
[0013] De acuerdo con otro aspecto, se proporciona un dispositivo para codificar datos de vídeo residuales, comprendiendo el dispositivo: medios para mantener una pluralidad de modelos de contexto que incluye un modelo de contexto conjunto usado para dos o más tamaños de unidad de transformada, incluyendo además la pluralidad de modelos de contexto uno o más modelos de contexto que se usan cada uno para un tamaño de unidad de transformada diferente, comprendiendo el modelo de contexto conjunto probabilidades compartidas, en el que el modelo de contexto conjunto es compartido por una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño, en el que el primer tamaño es 16x16 y el segundo tamaño es 32x32, y en el que cada una de las unidades de transformada comprende una unidad de datos de bloque de vídeo residuales; medios para seleccionar contextos para componentes de un mapa de significancia para coeficientes asociados con una de la primera unidad de transformada y la segunda unidad de transformada de acuerdo con el modelo de contexto conjunto; y medios para codificar por entropía los componentes del mapa de significancia asociados con una de las unidades de transformada en base a los contextos seleccionados.
[0014] De acuerdo con otro ejemplo, se proporciona un dispositivo para descodificar datos de vídeo residuales, comprendiendo el dispositivo: medios para mantener una pluralidad de modelos de contexto que incluye un modelo de contexto conjunto usado para dos o más tamaños de unidad de transformada, incluyendo además la pluralidad de modelos de contexto uno o más modelos de contexto que se usan cada uno para un tamaño de unidad de transformada diferente, comprendiendo el modelo de contexto conjunto probabilidades compartidas, en el que el modelo de contexto conjunto es compartido por una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño, en el que el primer tamaño es 16x16 y el segundo tamaño es 32x32, y en el que cada una de las unidades de transformada comprende una unidad de datos de bloque de vídeo residuales; medios para seleccionar contextos para componentes de un mapa de significancia para coeficientes asociados con una de la primera unidad de transformada y la segunda unidad de transformada de acuerdo con el modelo de contexto conjunto; y medios para descodificar por entropía los componentes del mapa de significancia asociados con una de las unidades de transformada en base a los contextos seleccionados.
[0015] De acuerdo con otro aspecto, se proporciona un medio legible por ordenador que comprende instrucciones para codificar datos de vídeo que, cuando se ejecutan, provocan que un procesador realice uno de los procedimientos descritos anteriormente.
[0016] La invención se define por la combinación de rasgos característicos técnicos como se especifica, respectivamente, en las reivindicaciones independientes adjuntas 1,3, 7, 9 y 13. Los modos de realización preferentes se exponen en las reivindicaciones dependientes adjuntas.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0017]
La figura 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo que puede utilizar técnicas para realizar la codificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños.
La figura 2 es un diagrama de bloques que ilustra codificador de vídeo de ejemplo que puede implementar técnicas para codificar por entropía coeficientes de vídeo usando un modelo de contexto conjunto.
Las figuras 3A y 3B son diagramas conceptuales que ilustran respectivamente áreas cuadradas y rectangulares de bloques de coeficientes retenidos que tienen un segundo tamaño de una unidad de transformada que tiene un primer tamaño.
La figura 4 es un diagrama de bloques que ilustra un descodificador de vídeo de ejemplo que puede implementar técnicas para descodificar por entropía coeficientes de vídeo usando un modelo de contexto conjunto.
La figura 5 es un diagrama de bloques que ilustra una unidad de codificación por entropía de ejemplo configurada para seleccionar contextos para coeficientes de vídeo de acuerdo con un modelo de contexto conjunto.
La figura 6 es un diagrama de bloques que ilustra una unidad de descodificación por entropía de ejemplo configurada para seleccionar contextos para coeficientes de vídeo de acuerdo con un modelo de contexto conjunto.
La figura 7 es un diagrama de flujo que ilustra un funcionamiento de ejemplo de codificación por entropía y descodificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño.
[0018] La figura 8 es un diagrama de flujo que ilustra un funcionamiento de ejemplo de codificación y descodificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre una primera unidad de transformada que tiene un primer tamaño con coeficientes puestos a cero para generar un bloque de coeficientes retenidos que tiene un segundo tamaño y una segunda unidad de transformada que tiene el segundo tamaño.
DESCRIPCIÓN DETALLADA
[0019] En general, esta divulgación describe técnicas para realizar la codificación y la descodificación por entropía de coeficientes de transformada asociados con un bloque de datos de vídeo residuales usando un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños. Por ejemplo, el modelo de contexto conjunto se puede compartir entre unidades de transformada que tienen un primer tamaño de 32x32 y unidades de transformada que tienen un segundo tamaño de 16x16. En la norma emergente de codificación de vídeo de alta eficacia (HEVC), una unidad de codificación (CU) puede incluir una o más unidades de transformada (TU) que incluyen datos de vídeo residuales. Antes de la transformada, los datos de vídeo residuales incluyen valores de píxeles residuales en el dominio espacial. Después de la transformada, los datos de vídeo residuales incluyen coeficientes de transformada residuales en un dominio de transformada. Se han propuesto tamaños de unidades de transformada adicionales, por ejemplo, 32x32 hasta 128x128, para mejorar la eficacia de la codificación de vídeo, pero también dan como resultado una mayor memoria y requisitos computacionales para mantener modelos de contexto para cada uno de los tamaños de unidades de transformada adicionales. Realizar la codificación por entropía usando el modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños puede reducir la cantidad de memoria necesaria para almacenar contextos y probabilidades en dispositivos de codificación y descodificación de vídeo, y reducir los costes computacionales de mantener modelos de contexto en dispositivos de codificación y descodificación de vídeo.
[0020] En algunos ejemplos, las técnicas también pueden reducir los requisitos de almacenamiento intermedio en memoria intermedia para unidades de transformada de mayor tamaño cuando se realizan transformadas bidimensionales. Las técnicas incluyen la puesta a cero, es decir, el establecimiento de valores a cero, de un subconjunto de coeficientes de transformada de frecuencia más alta incluidos en una unidad de transformada de un primer tamaño después de que cada dirección de una transformada bidimensional se haya aplicado para generar un bloque de coeficientes retenidos. Los dispositivos de codificación y descodificación de vídeo pueden a continuación almacenar en memoria intermedia un número reducido de coeficientes entre la aplicación de cada dirección, es decir, filas y columnas, de la transformada bidimensional. Cuando los coeficientes de frecuencia más alta se ponen a cero fuera de la unidad de transformada que tiene el primer tamaño, los coeficientes incluidos en el bloque de coeficientes retenidos tienen estadísticas de probabilidad similares a los coeficientes incluidos en una unidad de transformada originalmente del segundo tamaño. En este caso, el modelo de contexto conjunto para la codificación por entropía se puede compartir entre unidades de transformada que tienen el primer tamaño con coeficientes puestos a cero para generar el bloque de coeficientes retenidos y unidades de transformada que originalmente tienen el segundo tamaño. En algunos casos, el bloque de coeficientes retenidos puede tener un tamaño igual al segundo tamaño. En otros casos, el bloque de coeficientes retenidos puede tener un tamaño igual a un tercer tamaño, diferente del primer tamaño y del segundo tamaño.
[0021] En otros ejemplos, los coeficientes incluidos en una primera unidad de transformada que tiene un primer tamaño pueden tener estadísticas de probabilidad similares a los coeficientes incluidos en una segunda unidad de transformada de un segundo tamaño incluso sin poner a cero los coeficientes de frecuencia más alta dentro de la primera unidad de transformada. Esto es posible porque los coeficientes de frecuencia más alta pueden representar tan pocos datos residuales de vídeo que el efecto sobre las estadísticas de probabilidad de los coeficientes vecinos para la codificación por entropía es insignificante. En este caso, el modelo de contexto conjunto para la codificación por entropía se puede compartir entre unidades de transformada que tienen el primer tamaño y unidades de transformada que tienen el segundo tamaño.
[0022] La figura 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo que puede utilizar técnicas para realizar la codificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños. Como se muestra en la figura 1, el sistema 10 incluye un dispositivo de origen 12 que puede almacenar el vídeo codificado y/o transmitir el vídeo codificado a un dispositivo de destino 14 por medio de un canal de comunicación 16. El dispositivo de origen 12 y el dispositivo de destino 14 pueden no necesariamente participar en la comunicación activa en tiempo real entre sí. En algunos casos, el dispositivo de origen 12 puede almacenar los datos de vídeo codificados en un medio de almacenamiento al que el dispositivo de destino 14 puede acceder como desee por medio de acceso al disco o puede almacenar los datos de vídeo codificados en un servidor de archivos al que el dispositivo de destino 14 puede acceder como desee mediante la transmisión continua. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender uno cualquiera de una amplia gama de dispositivos. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender dispositivos de comunicación inalámbrica que pueden comunicar información de vídeo a través de un canal de comunicación 16, en cuyo caso el canal de comunicación 16 es inalámbrico.
[0023] Sin embargo, las técnicas de la presente divulgación, que se refieren a la codificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto, no están necesariamente limitadas a aplicaciones o configuraciones inalámbricas. Por ejemplo, estas técnicas se pueden aplicar a radiodifusiones televisivas inalámbricas, a transmisiones televisivas por cable, a transmisiones televisivas vía satélite, a transmisiones de vídeo por internet, a vídeo digital codificado que está codificado en un medio de almacenamiento y a otros contextos. En consecuencia, el canal de comunicación 16 puede comprender cualquier combinación de medios inalámbricos o cableados adecuados para la transmisión de datos de vídeo codificados, y los dispositivos 12, 14 pueden comprender cualquiera de una variedad de dispositivos de medios inalámbricos o cableados tales como teléfonos móviles, teléfonos inteligentes, reproductores multimedia digitales, descodificadores, televisores, pantallas de visualización, ordenadores de escritorio, ordenadores portátiles, tabletas, consolas de videojuegos, dispositivos de videojuegos portátiles o similares.
[0024] En el ejemplo de la figura 1, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20, un modulador/desmodulador (módem) 22 y un transmisor 24. El dispositivo de destino 14 incluye un receptor 26, un módem 28, un descodificador de vídeo 30 y un dispositivo de visualización 32. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen 12 puede recibir datos de vídeo desde una fuente de vídeo externa 18, tal como una cámara externa, un archivo de almacenamiento de vídeo, una fuente de gráficos informáticos, o similar. Del mismo modo, el dispositivo de destino 14 puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
[0025] El sistema 10 ilustrado de la figura 1 es simplemente un ejemplo. En otros ejemplos, cualquier dispositivo de codificación y/o descodificación de vídeo digital puede realizar las técnicas divulgadas para la codificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto. Las técnicas se pueden realizar también mediante un codificador/descodificador de vídeo, típicamente denominado "CODEC". Además, las técnicas de esta divulgación también se pueden realizar por un preprocesador de vídeo. El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de dichos dispositivos de codificación en los que el dispositivo de origen 12 genera datos de vídeo codificados para su transmisión al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de manera esencialmente simétrica, de modo que cada uno de los dispositivos 12, 14 incluya componentes de codificación y descodificación de vídeo. De ahí que el sistema 10 pueda admitir la transmisión de vídeo unidireccional o bidireccional entre los dispositivos de vídeo 12, 14, por ejemplo, para la transmisión continua de vídeo, la reproducción de vídeo, la radiodifusión de vídeo o la videotelefonía.
[0026] La fuente de vídeo 18 del dispositivo de origen 12 puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo capturado previamente y/o una transmisión de vídeo de un proveedor de contenido de vídeo. Como otra alternativa, la fuente de vídeo 18 puede generar datos basados en gráficos de ordenador como la fuente de vídeo, o una combinación de vídeo en directo, vídeo archivado y vídeo generado por ordenador. En algunos casos, si la fuente de vídeo 18 es una cámara de vídeo, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los llamados teléfonos con cámara o videoteléfonos. Sin embargo, como se menciona anteriormente, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general, y se pueden aplicar a aplicaciones inalámbricas y/o cableadas. En cada caso, el codificador de vídeo 20 puede codificar el vídeo capturado, precapturado o generado por ordenador. La información de vídeo codificada se puede modular a continuación mediante el módem 22, de acuerdo con una norma de comunicación, y transmitirse al dispositivo de destino 14 por medio del transmisor 24. El módem 22 puede incluir diversos mezcladores, filtros, amplificadores u otros componentes diseñados para la modulación de señales. El transmisor 24 puede incluir circuitos diseñados para transmitir datos, incluyendo amplificadores, filtros y una o más antenas.
[0027] De acuerdo con esta divulgación, el codificador de vídeo 20 del dispositivo origen 12 puede estar configurado para aplicar las técnicas para la codificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto. Una unidad de codificación (CU) de una trama de vídeo que se va a codificar puede incluir una o más unidades de transformada (TU) que incluyen datos de vídeo residuales. Antes de la transformada, los datos de vídeo residuales incluyen valores de píxeles residuales en el dominio espacial. Después de la transformada, los datos de vídeo residuales incluyen coeficientes de transformada residuales en un dominio de transformada. El codificador de vídeo 20 puede mantener un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños, y seleccionar contextos para coeficientes asociados con una de las unidades de transformada de acuerdo con el modelo de contexto conjunto. El codificador de vídeo 20 puede a continuación codificar por entropía los coeficientes en base a los contextos seleccionados.
[0028] Como ejemplo, el modelo de contexto conjunto se puede compartir entre unidades de transformada que tienen un primer tamaño de 32x32 y unidades de transformada que tienen un segundo tamaño de 16x16. En otros ejemplos, más de dos tamaños de unidades de transformada pueden compartir el mismo modelo de contexto conjunto. Además, los dos o más tamaños de unidades de transformada pueden compartir algunos o la totalidad de los modelos de contexto para las TU. En un caso, el modelo de contexto conjunto puede ser el modelo de contexto conjunto de un mapa de significancia para la TU. En otros casos, el modelo de contexto conjunto puede estar asociado con otra información de codificación o elementos sintácticos. Por lo tanto, las técnicas pueden reducir la cantidad de memoria necesaria para almacenar contextos y probabilidades en el codificador de vídeo 20, y reducir los costes computacionales de mantener modelos de contexto en el codificador de vídeo 20.
[0029] En un ejemplo, el codificador de vídeo 20 puede poner a cero, es decir, establecer valores iguales a cero, un subconjunto de coeficientes de transformada de frecuencia más alta incluido en una unidad de transformada de un primer tamaño después de aplicar cada dirección de una transformada bidimensional para generar un bloque de coeficientes retenidos. En este caso, las técnicas pueden reducir un número de coeficientes que se van a almacenar en memoria intermedia entre la aplicación de cada dirección, es decir, filas y columnas, de la transformada bidimensional. Cuando los coeficientes de alta frecuencia se ponen a cero fuera de la unidad de transformada, los coeficientes incluidos en el bloque de coeficientes retenidos tienen estadísticas de probabilidad similares a los coeficientes incluidos en una unidad de transformada originalmente del segundo tamaño. En este ejemplo, el codificador de vídeo 20 puede mantener un modelo de contexto conjunto compartido por unidades de transformada que tienen el primer tamaño con coeficientes que se ponen a cero para generar el bloque de coeficientes retenidos y unidades de transformada que tienen el segundo tamaño, y seleccionar contextos para los coeficientes de una unidad de transformada de uno del primer tamaño con el bloque de coeficientes retenidos y el segundo tamaño de acuerdo con el modelo de contexto conjunto. En algunos casos, el bloque de coeficientes retenidos puede tener un tamaño igual al segundo tamaño. En otros casos, el bloque de coeficientes retenidos puede tener un tamaño igual a un tercer tamaño, diferente del primer tamaño y del segundo tamaño.
[0030] En otro ejemplo, los coeficientes incluidos en una primera unidad de transformada que tiene un primer tamaño pueden tener estadísticas de probabilidad similares a los coeficientes incluidos en una segunda unidad de transformada que tiene un segundo tamaño incluso sin poner a cero los coeficientes de alta frecuencia dentro de la primera unidad de transformada. Esto es posible porque los coeficientes de alta frecuencia pueden representar tan pocos datos residuales de vídeo que el efecto sobre las estadísticas de probabilidad de los coeficientes vecinos para la codificación por entropía es insignificante. En este ejemplo, el codificador de vídeo 20 puede mantener un modelo de contexto conjunto compartido por unidades de transformada que tienen el primer tamaño y el segundo tamaño, y seleccionar contextos para los coeficientes dentro de una unidad de transformada de uno del primer y segundo tamaño de acuerdo con el modelo de contexto conjunto. En algunos casos, solo los coeficientes de alta frecuencia dentro de las unidades de transformada del primer tamaño y del segundo tamaño pueden compartir el modelo de contexto conjunto. Los coeficientes de baja frecuencia, por ejemplo, los componentes de DC y los coeficientes vecinos, dentro de la transformada del primer tamaño pueden usar un modelo de contexto diferente que los coeficientes de baja frecuencia dentro de la transformada del segundo tamaño.
[0031] El receptor 26 del dispositivo de destino 14 recibe información a través del canal 16, y el módem 28 desmodula la información. La información comunicada a través del canal 16 puede incluir información sintáctica definida por el codificador de vídeo 20, que también es usada por el descodificador de vídeo 30, que incluye elementos sintácticos que describen características y/o procesamiento de unidades de codificación (CU), unidades de predicción (PU), unidades de transformada (TU) u otras unidades de vídeo codificado, por ejemplo, cortes de vídeo, tramas de vídeo y secuencias de vídeo o grupos de imágenes (GOP). El dispositivo de visualización 32 muestra los datos de vídeo descodificados a un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0032] De acuerdo con esta divulgación, el codificador de vídeo 30 del dispositivo de destino 14 puede estar configurado para aplicar las técnicas para la codificación por entropía de coeficientes de vídeo usando el modelo de contexto conjunto. Una CU de una trama de vídeo que se va a descodificar puede incluir una o más TU que incluyen datos de vídeo residuales antes y después de la transformada. El descodificador de vídeo 30 puede mantener un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños, y seleccionar contextos para coeficientes asociados con una de las unidades de transformada de acuerdo con el modelo de contexto conjunto. El descodificador de vídeo 30 puede a continuación descodificar por entropía los coeficientes en base a los contextos seleccionados.
[0033] Como ejemplo, el modelo de contexto conjunto se puede compartir entre unidades de transformada que tienen un primer tamaño de 32x32 y unidades de transformada que tienen un segundo tamaño de 16x16. Como se describe anteriormente, en otros ejemplos, más de dos tamaños de unidades de transformada pueden compartir el mismo modelo de contexto conjunto. Además, los dos o más tamaños de unidades de transformada pueden compartir algunos o la totalidad de los modelos de contexto para las TU. En un caso, el modelo de contexto conjunto puede ser el modelo de contexto conjunto de un mapa de significancia para la TU. En otros casos, el modelo de contexto conjunto puede estar asociado con otra información de codificación o elementos sintácticos. Las técnicas, por lo tanto, pueden reducir la cantidad de memoria necesaria para almacenar contextos y probabilidades en el descodificador de vídeo 30, y reducir los costes computacionales de mantener modelos de contexto en el descodificador de vídeo 30.
[0034] En un ejemplo, el descodificador de vídeo 30 puede recibir un flujo de bits que representa coeficientes codificados asociados con un bloque de coeficientes retenidos y coeficientes puestos a cero de una unidad de transformada que tiene un primer tamaño. Cuando los coeficientes de alta frecuencia se ponen a cero fuera de la unidad de transformada, los coeficientes incluidos en el bloque de coeficientes retenidos tienen estadísticas de probabilidad similares a los coeficientes incluidos en una unidad de transformada originalmente del segundo tamaño. En este ejemplo, el descodificador de vídeo 30 puede mantener un modelo de contexto conjunto compartido por unidades de transformada que tienen el primer tamaño con coeficientes que se ponen a cero para generar el bloque de coeficientes retenidos y unidades de transformada que tienen el segundo tamaño, y seleccionar contextos para los coeficientes codificados asociados con una unidad de transformada de uno del primer tamaño con el bloque de coeficientes retenidos y el segundo tamaño de acuerdo con el modelo de contexto conjunto. En algunos casos, el bloque de coeficientes retenidos puede tener un tamaño igual al segundo tamaño. En otros casos, el bloque de coeficientes retenidos puede tener un tamaño igual a un tercer tamaño, diferente del primer tamaño y del segundo tamaño.
[0035] En otro ejemplo, el descodificador de vídeo 30 puede recibir un flujo de bits que representa coeficientes codificados asociados con una unidad de transformada que tiene uno de un primer tamaño y un segundo tamaño. Los coeficientes incluidos en una primera unidad de transformada que tiene el primer tamaño pueden tener estadísticas de probabilidad similares a los coeficientes incluidos en una segunda unidad de transformada del segundo tamaño, incluso sin poner a cero los coeficientes de alta frecuencia dentro de la primera unidad de transformada. En este ejemplo, el descodificador de vídeo 30 puede mantener un modelo de contexto conjunto compartido por unidades de transformada que tienen el primer tamaño y el segundo tamaño, y seleccionar contextos para los coeficientes codificados asociados con una unidad de transformada de uno del primer y segundo tamaño de acuerdo con el modelo de contexto conjunto. En algunos casos, solo los coeficientes de alta frecuencia dentro de las unidades de transformada del primer tamaño y del segundo tamaño pueden compartir el modelo de contexto conjunto. Los coeficientes de baja frecuencia, por ejemplo, los componentes de DC y los coeficientes vecinos, dentro de la transformada del primer tamaño pueden usar un modelo de contexto diferente que los coeficientes de baja frecuencia dentro de la transformada del segundo tamaño.
[0036] En el ejemplo de la figura 1, el canal 16 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 de transmisión físicas, o cualquier combinación de medios inalámbricos y alámbricos. El canal de comunicación 16 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 canal de comunicación 16 representa en general cualquier medio de comunicación adecuado, o un conjunto de medios de comunicación diferentes, para transmitir datos de vídeo desde el dispositivo de origen 12 hasta el dispositivo de destino 14, incluyendo cualquier combinación adecuada de medios alámbricos o inalámbricos. El canal de comunicación 16 puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 hasta el dispositivo de destino 14. Como se describe anteriormente, en algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden no participar en la comunicación activa en tiempo real a través del canal de comunicación 16. Por ejemplo, el dispositivo de origen 12 puede en su lugar almacenar los datos de vídeo codificados en un medio de almacenamiento al que el dispositivo de destino 14 puede acceder como desee por medio de acceso al disco o almacenar los datos de vídeo codificados en un servidor de archivos al que el dispositivo de destino 14 puede acceder como desee mediante la transmisión continua.
[0037] 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 Eficiencia (HVEC) o la norma ITU-T H.264, de forma alternativa denominada MPEG-4, Parte 10, Codificación de Vídeo Avanzada (AVC). Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la figura 1, en algunos aspectos, tanto el codificador de vídeo 20 como el descodificador de vídeo 30 pueden estar integrados con un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y programas informáticos, para gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si fuera aplicable, las unidades MUX-DEMUX pueden ser conformes al protocolo multiplexor ITU H.223 o a otros protocolos tales como el protocolo de datagramas de usuario (UDP).
[0038] Los trabajos de normalización de HEVC se basan en un modelo de dispositivo de codificación de vídeo denominado modelo de prueba de HEVC (HM). El HM supone varias capacidades adicionales de los dispositivos de codificación de vídeo respecto a los dispositivos existentes, de acuerdo con, por ejemplo, la norma ITU-T H.264/AVC. El HM hace referencia a un bloque de datos de vídeo como unidad de codificación (CU). Los datos sintácticos de un flujo de bits pueden definir una unidad de codificación más grande (LCU), que es una unidad de codificación más grande en lo que respecta al número de píxeles. En general, una CU tiene un propósito similar a un macrobloque de la norma H.264, excepto en que una CU no tiene una distinción de tamaño. Por tanto, una CU se puede dividir en subCU. En general, las referencias en esta divulgación a una CU se pueden referir a una unidad de codificación más grande de una imagen o a una subCU de una LCU. Una LCU se puede dividir en subCU y cada subCU se puede dividir además en subCU. Los datos sintácticos para un flujo de bits pueden definir un número máximo de veces en que se puede dividir una LCU, lo que se denomina profundidad de CU. En consecuencia, un flujo de bits también puede definir una unidad de codificación más pequeña (SCU).
[0039] Una CU que no se divide más (por ejemplo, un nodo hoja de una LCU) puede incluir una o más unidades de predicción (PU). En general, una PU representa la totalidad o una parte de la CU correspondiente e incluye datos para recuperar una muestra de referencia para la PU. Por ejemplo, cuando la PU se codifica en intramodo, la PU puede incluir datos que describen un modo de intrapredicción para la PU. Como otro ejemplo, cuando la PU se codifica en intermodo, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, una precisión de medio píxel, una precisión de un cuarto de píxel o una precisión de un octavo de píxel), una trama de referencia a la que apunta el vector de movimiento y/o una lista de referencia (por ejemplo, lista 0 o lista 1) para el vector de movimiento. Los datos para la CU que definen la(s) PU también pueden describir, por ejemplo, una división de la CU en una o más PU. Los modos de división pueden diferir entre si la CU está codificada en modo directo o de salto, codificada en modo de intrapredicción o codificada en modo de interpredicción.
[0040] Una CU que tiene una o más PU también puede incluir una o más unidades de transformada (TU). Tras la predicción usando una PU, un codificador de vídeo puede calcular valores residuales para la parte de la CU correspondiente a la PU. Los valores residuales incluidos en las TU corresponden a valores de diferencias de píxeles que se pueden transformar en coeficientes de transformada, a continuación cuantificar y explorar para producir coeficientes de transformada serializados para la codificación por entropía. Una TU no está necesariamente limitada al tamaño de una PU. Por lo tanto, las TU pueden ser más grandes o más pequeñas que las PU correspondientes para la misma CU. En algunos ejemplos, el tamaño máximo de una TU puede ser el tamaño de la CU correspondiente. Esta divulgación usa el término "bloque de vídeo" para referirse a cualquiera de una CU, una PU o una TU.
[0041] Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 se pueden implementar 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), matrices de puertas programables in situ (FPGA), lógica discreta, programas informáticos, hardware, firmware o cualquier combinación de los mismos. Tanto el codificador 20 de vídeo como el descodificador de vídeo 30 se pueden incluir en uno o más codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador combinado (códec) en una respectiva cámara, ordenador, dispositivo móvil, dispositivo de abonado, dispositivo de radiodifusión, codificador, servidor o similar.
[0042] Una secuencia de vídeo o un grupo de imágenes (GOP) incluye típicamente una serie de tramas de vídeo. Un GOP puede incluir datos sintácticos en una cabecera del GOP, una cabecera de una o más tramas del GOP, o en otras ubicaciones, que describen el número de tramas incluidas en el GOP. Cada trama puede incluir datos sintácticos de trama que describen un modo de codificación para la respectiva trama. El codificador de vídeo 20 funciona típicamente sobre bloques de vídeo de tramas de vídeo individuales a fin de codificar los datos de vídeo. Un bloque de vídeo puede corresponder a una CU o una PU de la CU. Los bloques de vídeo pueden tener tamaños fijos o variables y pueden diferir en tamaño de acuerdo con una norma de codificación especificada. Cada trama de vídeo puede incluir una pluralidad de cortes. Cada corte puede incluir una pluralidad de CU, que pueden incluir una o más PU.
[0043] En un ejemplo, el modelo de prueba HEVC (HM) soporta predicción en diversos tamaños de CU. El tamaño de una LCU se puede definir mediante información sintáctica. Suponiendo que el tamaño de una CU particular sea 2Nx2N, el HM soporta la intrapredicción en tamaños de 2Nx2N o NxN y la interpredicción en tamaños simétricos de 2Nx2N, 2NxN, Nx2N o NxN. El HM también soporta la división asimétrica para la interpredicción 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 el 25 % y el 75 %. La parte de la CU correspondiente a la división del 25 % está indicada 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 encima y una PU de 2Nx1,5N debajo.
[0044] En esta divulgación, "NxN" y "N por N" se pueden usar de manera intercambiable para hacer referencia a las dimensiones de píxel de un bloque de vídeo (por ejemplo, CU, PU o TU) en términos de dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. 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 tamaño 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 de un bloque se pueden disponer 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 áreas rectangulares con NxM píxeles, donde M no es necesariamente igual a N.
[0045] Después de la codificación interpredictiva o intrapredictiva para producir una PU para una CU, el codificador de vídeo 20 puede calcular datos residuales para producir una o más TU para la CU. Los datos residuales pueden corresponder a diferencias de píxeles entre píxeles de la imagen no codificada y valores de predicción de una PU o una CU. El codificador de vídeo 20 puede formar una o más TU incluyendo los datos residuales para la CU. El codificador de vídeo 20 puede transformar las TU. Antes de la aplicación de una transformada, tal como una transformada de coseno discreta (DCT), una transformada de entero, una transformada wavelet o una transformada conceptualmente similar, las TU de una CU pueden comprender datos de vídeo residuales que comprenden valores de diferencia de píxeles en el dominio de píxel. Después de la aplicación de la transformada, las TU pueden comprender coeficientes de transformada que representan los datos de vídeo residuales en el dominio de frecuencia.
[0046] Después de cualesquiera transformadas para producir coeficientes de transformada, se puede realizar la cuantificación de los coeficientes de transformada. La cuantificación se refiere en general a un proceso en el que los coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos, o la totalidad, de 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.
[0047] El codificador de vídeo 20 puede aplicar una exploración en zigzag, una exploración horizontal, una exploración vertical u otro orden de exploración asociado con un tamaño de la TU para explorar los coeficientes de transformada cuantificados para producir un vector serializado que se puede codificar por entropía. En algunos ejemplos, el codificador de vídeo 20 puede utilizar un orden de exploración predefinido para explorar los coeficientes de transformada cuantificados. 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 realizar la codificación por entropía del vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptativa según el contexto (CAVLC), la codificación aritmética binaria adaptativa según el contexto (CABAC), u otra metodología de codificación por entropía.
[0048] Para realizar la codificación por entropía adaptativa según el contexto, el codificador de vídeo 20 debe asignar un contexto a cada coeficiente de acuerdo con un modelo de contexto, que se puede relacionar, por ejemplo, con si los valores de los coeficientes vecinos son distintos de cero. El codificador de vídeo 20 determina a continuación un proceso de codificación para el coeficiente asociado con el contexto asignado en el modelo de contexto. Convencionalmente, el codificador de vídeo 20 debe mantener modelos de contexto separados para cada uno de los diferentes tamaños de la TU soportados por la norma de compresión de vídeo implementada. Para la norma HEVC, se han propuesto tamaños de unidades de transformada adicionales, por ejemplo, 32x32 hasta 128x128, para mejorar la eficacia de codificación de vídeo, pero los tamaños de TU adicionales también dan como resultado requisitos de memoria y computacionales incrementados para mantener los modelos de contexto para cada uno de los tamaños de unidad de transformada adicionales.
[0049] De acuerdo con las técnicas de esta divulgación, para realizar la codificación por entropía adaptativa según el contexto, el codificador de vídeo 20 puede seleccionar contextos para los coeficientes de acuerdo con un modelo de contexto conjunto compartido entre TU de diferentes tamaños. Más específicamente, el codificador de vídeo 20 puede asignar un contexto en el modelo de contexto conjunto a un coeficiente dado de una TU basado en valores de coeficientes vecinos previamente codificados de la TU. El contexto asignado se selecciona en base a los criterios definidos por el modelo de contexto conjunto compartido por la TU. El codificador de vídeo 20 puede determinar un proceso de codificación para el coeficiente asociado con el contexto asignado en el modelo de contexto conjunto. A continuación, el codificador de vídeo 20 codifica por entropía el coeficiente en base a la estimación de probabilidad determinada. Por ejemplo, en el caso de CABAC, el codificador de vídeo 20 puede determinar una estimación de probabilidad para un valor (por ejemplo, 0 o 1) del coeficiente asociado con el contexto asignado en el modelo de contexto conjunto. A continuación, el codificador de vídeo 20 actualiza la estimación de probabilidad asociada con el contexto asignado en el modelo de contexto conjunto en base al valor codificado real del coeficiente.
[0050] Como ejemplo, el codificador de vídeo 20 puede seleccionar contextos usando el mismo modelo de contexto conjunto para coeficientes asociados con un bloque de coeficientes retenidos dentro de una primera unidad de transformada que originalmente tiene un primer tamaño, o con una segunda unidad de transformada que originalmente tiene el segundo tamaño. Además, el codificador de vídeo 20 puede actualizar las estimaciones de probabilidad asociadas con los contextos seleccionados en el modelo de contexto conjunto en base a valores codificados reales de los coeficientes del bloque de coeficientes retenidos dentro de la primera unidad de transformada originalmente del primer tamaño, o de la segunda unidad de transformada originalmente del segundo tamaño. Como otro ejemplo, el codificador de vídeo 20 puede seleccionar contextos usando el mismo modelo de contexto conjunto para coeficientes asociados con una primera unidad de transformada que tiene un primer tamaño o una segunda unidad de transformada que tiene un segundo tamaño. En este caso, el codificador de vídeo 20 puede actualizar a continuación las estimaciones de probabilidad asociadas con los contextos seleccionados en el modelo de contexto conjunto basado en valores codificados reales de los coeficientes de la primera unidad de transformada del primer tamaño o la segunda unidad de transformada del segundo tamaño.
[0051] En ambos casos, compartir el modelo de contexto conjunto entre dos o más tamaños de unidades de transformada puede reducir la cantidad de memoria necesaria para almacenar contextos y probabilidades en el codificador de vídeo 20. Además, compartir un modelo de contexto conjunto también puede reducir los costes computacionales de mantener modelos de contexto en el codificador de vídeo 20, incluyendo el restablecimiento de todos los modelos de contexto al inicio de un corte de vídeo.
[0052] El codificador de vídeo 20 puede también codificar por entropía los elementos sintácticos que indican información de predicción. Por ejemplo, el codificador de vídeo 20 puede codificar por entropía elementos sintácticos que indican información de bloque de vídeo incluyendo tamaños de los CU, PU y TU, información de vector de movimiento para predicción intramodo e información de mapa de coeficientes significativos, es decir, un mapa de unos y ceros que indican la posición de coeficientes significativos, para CABAC. El descodificador de vídeo 30 puede funcionar de una manera esencialmente simétrica a la del codificador de vídeo 20.
[0053] La figura 2 es un diagrama de bloques que ilustra codificador de vídeo de ejemplo que puede implementar técnicas para codificar por entropía coeficientes de vídeo usando un modelo de contexto conjunto. El codificador de vídeo 20 puede realizar intracodificación e intercodificación de las unidades de codificación dentro de tramas de vídeo. La intracodificación se basa en la predicción espacial para reducir o retirar la redundancia espacial en el vídeo dentro de una trama de vídeo dada. La intercodificación se basa en la predicción temporal para reducir o retirar la redundancia temporal en el vídeo dentro de tramas contiguas de una secuencia de vídeo. El intramodo (modo I) se puede referir a cualquiera de varios modos de compresión espacial. Los intermodos, tales como la predicción unidireccional (modo P), la predicción bidireccional (modo B) o la predicción P/B generalizada (modo GPB) se pueden referir a cualquiera de varios modos de compresión de base temporal.
[0054] En el ejemplo de la figura 2, el codificador de vídeo 20 incluye una unidad de selección de modo 38, una unidad de predicción 40, una unidad de sumador 50, una unidad de transformada 52, una unidad de cuantificación 54, una unidad de codificación por entropía 56 y una memoria de tramas de referencia 64. La unidad de predicción 40 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 una unidad de sumador 62. También se puede incluir un filtro de eliminación de bloques u otros filtros en bucle tales como un filtro de bucle adaptativo (ALF) y un desplazamiento adaptativo de muestra (SAO) (no mostrado en la figura 2) para filtrar los delimitadores del bloque para retirar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de eliminación de bloques filtraría típicamente la salida de la unidad de sumador 62.
[0055] Como se muestra en la figura 2, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de una trama o un corte de vídeo que se va a codificar. La trama o el corte se puede dividir en múltiples bloques de vídeo o CU. La unidad de selección de modo 38 puede seleccionar uno de los modos de codificación, intra o inter, para el bloque de vídeo en base a los resultados de error. La unidad de predicción 40 a continuación proporciona el bloque predictivo intra o intercodificado resultante a la unidad de sumador 50 para generar datos de bloque residuales, y a la unidad de sumador 62 para reconstruir el bloque codificado para su uso como un bloque de referencia en una trama de referencia.
[0056] La unidad de intrapredicción 46 dentro de la unidad de predicción 40, realiza la codificación intrapredictiva del bloque de vídeo con respecto a uno o más bloques vecinos en la misma trama que el bloque de vídeo que se va a codificar. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 dentro de la unidad de predicción 40 realizan la codificación interpredictiva del bloque de vídeo con respecto a uno o más bloques de referencia en una o más tramas almacenadas en la memoria de tramas de referencia 64. 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 proceso 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 un bloque de vídeo o una PU dentro de una trama de vídeo actual con respecto a un bloque de referencia o una PU dentro de una trama de referencia. Un bloque de referencia es un bloque que resulta estrechamente coincidente con el bloque de vídeo o la PU que se va a codificar en términos de la diferencia de píxeles, que se puede determinar mediante la suma de una diferencia absoluta (SAD), la suma de una diferencia de cuadrados (SSD) u otras métricas de diferencia.
[0057] La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de compensación de movimiento 44. La compensación de movimiento, realizada mediante la unidad de compensación de movimiento 44, puede implicar recoger o generar el bloque predictivo en base al vector de movimiento determinado por la estimación de movimiento. El codificador de vídeo 20 forma un bloque de vídeo residual restando el bloque predictivo del bloque de vídeo que se esté codificando. La unidad de sumador 50 representa el componente o los componentes que realizan esta operación de resta.
[0058] La unidad de compensación de movimiento 44 puede generar elementos sintácticos definidos para representar información de predicción en uno o más de un nivel de secuencia de vídeo, un nivel de trama de vídeo, un nivel de corte de vídeo, un nivel de CU de vídeo o un nivel de PU de vídeo. Por ejemplo, la unidad de compensación de movimiento 44 puede generar elementos sintácticos que indican información de bloque de vídeo incluyendo tamaños de CU, PU y TU, e información de vector de movimiento para la predicción intramodo.
[0059] Después de que el codificador de vídeo 20 forma el bloque de vídeo residual restando el bloque predictivo del bloque de vídeo actual, la unidad de transformada 52 puede formar una o más TU del bloque residual. La unidad de transformada 52 aplica una transformada, tal como una transformada de coseno discreta (DCT), una transformada de entero, una transformada wavelet o una transformada conceptualmente similar, a la TU, para producir un bloque de vídeo que comprende coeficientes de transformada residuales. La transformada puede convertir el bloque residual, desde un dominio de píxel a un dominio de transformada, tal como un dominio de frecuencia. Más específicamente, antes de la aplicación de la transformada, la TU puede comprender datos de vídeo residuales en el dominio de píxel y, después de la aplicación de la transformada, la TU puede comprender coeficientes de transformada que representan los datos de vídeo residuales en el dominio de frecuencia.
[0060] En algunos ejemplos, la unidad de transformada 52 puede comprender una transformada separable bidimensional. La unidad de transformada 52 puede aplicar la transformada bidimensional a la TU aplicando primero una transformada unidimensional a las filas de datos de vídeo residuales dentro de la TU, es decir, en una primera dirección, y a continuación aplicando una transformada unidimensional a las columnas de datos de vídeo residuales dentro de la TU, es decir, en una segunda dirección, o viceversa. Como un ejemplo, la TU puede comprender una TU de 32x32. La unidad de transformada 52 puede aplicar primero una transformada unidimensional de 32 puntos a cada fila de los datos de píxeles en la TU para generar una TU de 32x32 de coeficientes de transformada intermedios, y en segundo lugar aplicar una transformada unidimensional de 32 puntos a cada columna de los coeficientes de transformada intermedios en la TU para generar una TU de 32x32 de coeficientes de transformada.
[0061] Después de la aplicación de la transformada unidimensional en la primera dirección a los datos de vídeo residuales en la TU, el codificador de vídeo 20 almacena en memoria intermedia los coeficientes de transformada intermedios para la aplicación de la transformada unidimensional en la segunda dirección. Como se describe anteriormente, en la norma HEVC, se han propuesto tamaños de unidad de transformada más grandes, por ejemplo, 32x32 hasta 128x128, para mejorar la eficacia de la codificación de vídeo. Sin embargo, los tamaños de la Tu más grandes también darán como resultado requisitos incrementados de almacenamiento intermedio en memoria intermedia para transformadas bidimensionales. Por ejemplo, en el caso de una TU de 32x32, el codificador de vídeo 20 tendría que almacenar en memoria intermedia 1024 coeficientes de transformada intermedios después de la transformada unidimensional en la primera dirección.
[0062] Para reducir los requisitos de almacenamiento intermedio en memoria intermedia para tamaños de TU más grandes, las técnicas descritas en esta divulgación incluyen poner a cero un subconjunto de coeficientes de transformada de alta frecuencia incluido en una TU de un primer tamaño después de que se haya aplicado cada dirección de una transformada bidimensional. De esta manera, la unidad de transformada 52 puede generar un bloque de coeficientes retenidos dentro de la TU que tiene un segundo tamaño más pequeño que el primer tamaño de la TU.
[0063] El proceso de puesta a cero comprende establecer valores de un subconjunto de coeficientes de transformada dentro de la TU iguales a cero. Los coeficientes de transformada que se ponen a cero no se calculan ni se descartan; en cambio, los coeficientes de transformada puestos a cero simplemente se establecen iguales a cero y no tienen ningún valor para almacenar o codificar. De acuerdo con esta divulgación, los coeficientes de transformada puestos a cero son típicamente los coeficientes de transformada de frecuencia más alta en relación con los coeficientes de transformada de frecuencia más baja, retenidos, en la TU. Los coeficientes de transformada de alta frecuencia representan datos de vídeo residuales que normalmente corresponden a diferencias de píxeles muy pequeñas entre el bloque de vídeo que se va a codificar y el bloque predictivo. Los coeficientes de transformada de alta frecuencia, por lo tanto, pueden contener tan pocos datos residuales de vídeo que establecer valores iguales a cero tiene un efecto insignificante en la calidad de vídeo descodificado.
[0064] Como ejemplo, la unidad de transformada 52 puede aplicar una transformada unidimensional en una primera dirección, por ejemplo, en dirección de fila, a los datos de vídeo residuales en una TU de 32x32 y poner a cero la mitad de los coeficientes de transformada intermedios que salen de la transformada. El codificador de vídeo 20 solo necesita almacenar en memoria intermedia la mitad retenida de los coeficientes de transformada intermedios. La unidad de transformada 52 puede a continuación aplicar la transformada unidimensional en una segunda dirección, por ejemplo, en dirección de columna, a los coeficientes de transformada intermedios retenidos en la TU de 32x32 y de nuevo poner a cero la mitad de los coeficientes de transformada retenidos que salen de la transformada. De esta manera, la unidad de transformada 52 puede generar un bloque de coeficientes retenidos de coeficientes significativos que tengan un tamaño de 16x16 dentro de la TU originalmente de tamaño 32x32.
[0065] En el ejemplo descrito anteriormente, la unidad de transformada 52 se configuró para generar un bloque de coeficientes retenidos de 16x16, es decir, un cuarto del tamaño original de la TU. En otros casos, la unidad de transformada 52 se puede configurar para generar un bloque de coeficientes retenidos que tenga un tamaño diferente poniendo a cero un porcentaje más grande o más pequeño de los coeficientes dependiendo de los requisitos de complejidad de codificación para el proceso de codificación. Además, en algunos casos, la unidad de transformada 52 se puede configurar para generar un bloque de coeficientes retenidos que tiene un área rectangular. En este caso, las técnicas proporcionan aún más reducción en los requisitos de almacenamiento intermedio en memoria intermedia aplicando primero la transformada unidimensional en la dirección del lado más corto (es decir, menos coeficientes de transformada retenidos) del área rectangular. De esta manera, el codificador de vídeo 20 puede almacenar en memoria intermedia menos de la mitad de los coeficientes de transformada intermedios antes de la aplicación de la transformada unidimensional en la dirección del lado más largo del área rectangular. Los procesos de puesta a cero para bloques de coeficientes retenidos de área cuadrada y rectangular se describen con más detalle con respecto a las figuras 3A y 3B.
[0066] La unidad 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 más la velocidad de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos, o la totalidad, de los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de codificación por entropía 56 o la unidad de cuantificación 54 puede realizar, a continuación, una exploración de la TU incluyendo los coeficientes de transformada cuantificados. La unidad de codificación por entropía 56 puede aplicar una exploración en zigzag u otro orden de exploración asociado con un tamaño de la TU para explorar los coeficientes de transformada cuantificados para producir un vector serializado que se puede codificar por entropía.
[0067] En un ejemplo, en el que los coeficientes de una TU originalmente de un primer tamaño se han puesto a cero para generar un bloque de coeficientes retenidos que tiene un segundo tamaño, la unidad de codificación por entropía 56 puede explorar los coeficientes retenidos usando un orden de exploración para una TU del segundo tamaño. En este caso, la unidad de codificación por entropía 56 puede aplicar un orden de exploración de 16x16 a un bloque de coeficientes retenidos que tenga un tamaño de 16x16 dentro de una TU originalmente de tamaño 32x32. En otro ejemplo, en el que los coeficientes de una TU originalmente de un primer tamaño se han puesto a cero para generar un bloque de coeficientes retenidos que tiene un segundo tamaño, la unidad de codificación por entropía 56 puede explorar los coeficientes retenidos usando un orden de exploración para una TU del primer tamaño que se ha modificado para omitir los coeficientes de la TU no incluidos en el bloque de coeficientes retenidos. En este caso, la unidad de codificación por entropía puede aplicar un orden de exploración de 32x32 a un bloque de coeficientes retenidos que tenga un tamaño de 16x16 omitiendo todos los coeficientes puestos a cero dentro de una TU originalmente de tamaño 32x32.
[0068] Después de explorar los coeficientes de transformada cuantificados para formar un vector unidimensional, la unidad de codificación por entropía 56 codifica el vector de coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede realizar una codificación por entropía adaptativa según el contexto, tal como CABAC, CAVLC u otra técnica de codificación por entropía. Tras la codificación por entropía por la unidad de codificación por entropía 56, el flujo de bits codificado se puede transmitir a un descodificador de vídeo, tal como el descodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación.
[0069] Para realizar la codificación por entropía adaptativa según el contexto, la unidad de codificación por entropía 56 asigna un contexto a cada coeficiente de acuerdo con un modelo de contexto, que se puede relacionar, por ejemplo, con si los valores de los coeficientes vecinos son distintos de cero. La unidad de codificación por entropía 56 también determina un proceso de codificación para el coeficiente asociado con el contexto asignado en el modelo de contexto. La unidad de codificación por entropía 56 a continuación codifica los coeficientes en base a los contextos asignados. Por ejemplo, en el caso de CABAC, la unidad de codificación por entropía 56 puede determinar una estimación de probabilidad para un valor (por ejemplo, 0 o 1) del coeficiente asociado con el contexto asignado en el modelo de contexto conjunto. La unidad de codificación por entropía 56 a continuación actualiza la estimación de probabilidad asociada con el contexto asignado en el modelo de contexto basado en el valor codificado real del coeficiente.
[0070] Convencionalmente, el codificador de vídeo 20 mantiene modelos de contexto separados para cada uno de los diferentes tamaños de la TU soportados por la norma de compresión de vídeo implementada. Para la norma HEVC, se han propuesto tamaños de unidades de transformada adicionales, por ejemplo, 32x32 hasta 128x128, para mejorar la eficacia de codificación de vídeo, pero los tamaños de TU adicionales también dan como resultado requisitos de memoria y computacionales incrementados para mantener los modelos de contexto para cada uno de los tamaños de unidad de transformada adicionales. En algunos casos, los tamaños de la TU más grandes pueden usar más contextos, lo que puede dar como resultado requisitos incrementados de memoria y computacionales para mantener el número incrementado de contextos para los tamaños de la TU más grandes.
[0071] De acuerdo con las técnicas de esta divulgación, la unidad de codificación por entropía 56 se puede configurar para realizar la codificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños. Las técnicas se describen principalmente con respecto a la técnica de codificación por entropía de CABAC. Sin embargo, en algunos casos, las técnicas también se pueden aplicar a otras técnicas de codificación por entropía adaptativa según el contexto. Compartir el modelo de contexto conjunto entre dos o más tamaños de unidades de transformada puede reducir la cantidad de memoria necesaria para almacenar contextos y probabilidades en el codificador de vídeo 20. Además, compartir un modelo de contexto conjunto también puede reducir los costes computacionales de mantener modelos de contexto en el codificador de vídeo 20, incluyendo el restablecimiento de todos los modelos de contexto al inicio de un corte de vídeo. En el caso de CABAC, las técnicas también pueden reducir los costes de cálculo de actualizar continuamente las estimaciones de probabilidad de los modelos de contexto basados en valores codificados reales de los coeficientes.
[0072] De acuerdo con esta divulgación, la unidad de codificación por entropía 56 puede mantener un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños, y seleccionar contextos para coeficientes asociados con una de las unidades de transformada de acuerdo con el modelo de contexto conjunto. La unidad de codificación por entropía 56 puede a continuación codificar por entropía los coeficientes significativos dentro de las unidades de transformada en base a los contextos seleccionados. Como ejemplo, el modelo de contexto conjunto se puede compartir entre unidades de transformada que tienen un primer tamaño de 32x32 y unidades de transformada que tienen un segundo tamaño de 16x16. En algunos casos, más de dos tamaños de unidades de transformada pueden compartir el mismo modelo de contexto conjunto. En un ejemplo, el modelo de contexto conjunto puede ser el modelo de contexto conjunto de mapas de significancia para las unidades de transformada. En otros ejemplos, el modelo de contexto conjunto puede estar asociado con otra información de codificación o elementos sintácticos. El proceso de codificación CABAC que usa modelos de contexto conjunto se describe con más detalle con respecto a la figura 5.
[0073] En un ejemplo, la unidad de codificación por entropía 56 puede mantener un modelo de contexto conjunto compartido por una TU que tiene el primer tamaño con coeficientes que se ponen a cero para generar un bloque de coeficientes retenidos y una TU que originalmente tiene el segundo tamaño. En algunos casos, el bloque de coeficientes retenidos puede tener un tamaño igual al segundo tamaño. Por ejemplo, cuando los coeficientes de alta frecuencia se ponen a cero fuera de la TU del primer tamaño, los coeficientes incluidos en un bloque de coeficientes retenidos del segundo tamaño tienen estadísticas de probabilidad similares a los coeficientes incluidos en la TU originalmente del segundo tamaño. En este caso, cuando se ha generado un bloque de coeficientes retenidos del segundo tamaño poniendo a cero los coeficientes de la TU originalmente del primer tamaño, la unidad de codificación por entropía 56 puede seleccionar contextos para los coeficientes del bloque de coeficientes retenidos de acuerdo con el modelo de contexto conjunto. La unidad de codificación por entropía 56 codifica a continuación los coeficientes significativos dentro del bloque de coeficientes retenidos en base a los contextos seleccionados. En el caso de CABAC, la unidad de codificación por entropía 56 también actualiza las estimaciones de probabilidad asociadas con los contextos seleccionados en el modelo de contexto conjunto en base a valores codificados reales de los coeficientes.
[0074] En otro ejemplo, la unidad de codificación por entropía 56 puede mantener un modelo de contexto conjunto compartido por una primera TU que tiene el primer tamaño y una segunda TU que tiene el segundo tamaño. En algunos casos, los coeficientes incluidos en la primera TU que tiene el primer tamaño pueden tener estadísticas de probabilidad similares a los coeficientes incluidos en la segunda TU que tiene el segundo tamaño incluso sin poner a cero los coeficientes de alta frecuencia dentro de la primera TU. Esto es posible porque los coeficientes de alta frecuencia pueden representar tan pocos datos residuales de vídeo que el efecto sobre las estadísticas de probabilidad de los coeficientes vecinos para la codificación por entropía es insignificante. En este ejemplo, la unidad de codificación por entropía 56 puede seleccionar contextos para los coeficientes dentro de la TU de uno del primer y segundo tamaño de acuerdo con el modelo de contexto conjunto. La unidad de codificación por entropía 56 codifica a continuación los coeficientes significativos dentro de la TU en base a los contextos seleccionados. En el caso de CABAC, la unidad de codificación por entropía 56 puede a continuación actualizar las estimaciones de probabilidad asociadas con los contextos seleccionados en el modelo de contexto conjunto en base a valores codificados reales de los coeficientes.
[0075] La unidad de codificación por entropía 56 también puede codificar por entropía los elementos sintácticos que indican los vectores de movimiento y la otra información de predicción para el bloque de vídeo que se está codificando. Por ejemplo, la unidad de codificación por entropía 56 puede codificar por entropía elementos sintácticos que indican un mapa de significancia, es decir, un mapa de unos y ceros que indica la posición de coeficientes significativos en una TU, usando las técnicas descritas en esta divulgación. La unidad de codificación por entropía 56 también puede construir información de cabecera que incluye los elementos sintácticos adecuados generados por la unidad de compensación de movimiento 44 para la transmisión en el flujo de bits codificado. El codificador de vídeo 20 puede codificar por entropía elementos sintácticos que indican información de bloque de vídeo incluyendo tamaños de CU, PU y TU, e información de vector de movimiento para la predicción intramodo. Para codificar por entropía los elementos sintácticos, la unidad de codificación por entropía 56 puede realizar CABAC binarizando los elementos sintácticos en uno o más bits binarios y seleccionando contextos para cada bit binario de acuerdo con un modelo de contexto.
[0076] La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican una cuantificación inversa y una transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel, para su posterior uso como un bloque de referencia de una trama de referencia. La unidad de sumador 62 añade el bloque residual reconstruido al bloque predictivo generado por la unidad de compensación de movimiento 44 para producir un bloque de referencia para su almacenamiento en la memoria de tramas de referencia 64. El bloque de referencia se puede usar por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para interpredecir un bloque en una trama de vídeo posterior.
[0077] Las figuras 3A y 3B son diagramas conceptuales que ilustran respectivamente áreas cuadradas y rectangulares de bloques de coeficientes retenidos que tienen un segundo tamaño dentro de una unidad de transformada que tiene un primer tamaño. En las ilustraciones conceptuales de las figuras 3A y 3B, los diferentes cuadros representan coeficientes de transformada dentro de una TU después de la aplicación de una transformada. Los coeficientes dentro de las áreas rayadas comprenden los coeficientes de transformada retenidos, y los coeficientes no incluidos en las áreas rayadas (es decir, cuadros blancos o sombreados) comprenden coeficientes que se han puesto a cero durante la transformada bidimensional.
[0078] Como se describe anteriormente, las técnicas de esta divulgación reducen los requisitos de almacenamiento intermedio en memoria intermedia para tamaños de TU más grandes, por ejemplo, 32x32 hasta 128x128, al poner a cero un subconjunto de coeficientes de transformada de alta frecuencia incluidos en una TU de un primer tamaño después de cada dirección de una transformada bidimensional. De esta manera, la unidad de transformada 52 de la figura 2 puede generar un bloque de coeficientes retenidos dentro de la TU que tiene un segundo tamaño más pequeño que el primer tamaño de la TU.
[0079] El proceso de puesta a cero comprende establecer valores de un subconjunto de coeficientes de transformada dentro de la TU iguales a cero. Los coeficientes de transformada que se ponen a cero no se calculan ni se descartan; en cambio, los coeficientes de transformada puestos a cero simplemente se establecen iguales a cero y no tienen ningún valor para almacenar o codificar. De acuerdo con esta divulgación, los coeficientes de transformada puestos a cero son típicamente coeficientes de transformada de alta frecuencia en relación con los coeficientes de transformada retenidos en la TU. Los coeficientes de transformada de alta frecuencia representan datos de vídeo residuales que corresponden a diferencias de píxeles muy pequeñas entre el bloque de vídeo que se va a codificar y el bloque predictivo. Los coeficientes de transformada de alta frecuencia, por lo tanto, pueden contener tan pocos datos residuales de vídeo que establecer valores iguales a cero tiene un efecto insignificante en la calidad de vídeo descodificado.
[0080] La figura 3A ilustra una TU 70 que tiene un primer tamaño de 16x16 y un bloque de coeficientes retenidos 74 que tiene un área cuadrada final del segundo tamaño 8x8 dentro de la TU 70. Se puede seleccionar un tamaño y conformación del bloque de coeficientes retenidos 74 en base a los requisitos de complejidad de codificación para el proceso de codificación. En este ejemplo, la unidad de transformada 52 de la figura 2 se puede configurar para generar el bloque de coeficientes retenidos 74 con un área cuadrada de tamaño 8x8 dentro de la TU 70 originalmente de tamaño 16x16. Para generar el bloque de coeficientes retenidos 74, la unidad de transformada 52 puede poner a cero la mitad de los coeficientes de frecuencia más alta después de aplicar cada dirección, es decir, filas y columnas, de una transformada bidimensional. En otros casos, la unidad de transformada 52 se puede configurar para poner a cero un subconjunto más grande o más pequeño de los coeficientes dependiendo de los requisitos de complejidad de codificación para el proceso de codificación.
[0081] Primero, la unidad de transformada 52 puede aplicar una transformada unidimensional a las filas de los datos de vídeo residuales en la TU 70, y poner a cero un subconjunto (en este caso la mitad) de los coeficientes de transformada intermedios que salen de la transformada. En el ejemplo ilustrado de la figura 3A, los coeficientes de transformada intermedios retenidos se incluyen en un bloque de coeficientes intermedios retenidos 73 (es decir, los bloques sombreados en la TU 70), que tiene un área rectangular de 16x8 igual a la mitad del tamaño original de 16x16 de la TU 70. El subconjunto puesto a cero (es decir, los bloques blancos en la TU 70) puede incluir coeficientes con valores de frecuencia que son más altos que los coeficientes dentro del bloque de coeficientes intermedios retenidos 73 de la TU 70. En el ejemplo ilustrado, la unidad de transformada 52 pone a cero la mitad de los coeficientes con los 8 valores de frecuencia más altos en cada fila de la TU 70. Este proceso de puesta a cero da como resultado el bloque de coeficientes intermedios retenidos 73 con un área rectangular de 16x8 dentro de la TU 70. En otros ejemplos, el área del bloque de coeficientes intermedios retenidos 73 puede comprender un tamaño o conformación diferente. La unidad de transformada 52 puede poner a cero la mitad de los coeficientes con los valores de frecuencia más altos entre todos los coeficientes en la TU 70 de 16x16 . Este proceso de puesta a cero puede dar lugar a un bloque de coeficientes intermedios retenidos con un área triangular en la esquina superior izquierda de la TU 70.
[0082] Al poner a cero la mitad de los coeficientes de transformada intermedios que salen de la transformada en la primera dirección, el codificador de vídeo 20 solo necesita almacenar en memoria intermedia los coeficientes dentro del bloque de coeficientes intermedios retenidos 73 antes de aplicar la transformada en la segunda dirección. Los coeficientes dentro del subconjunto puesto a cero (es decir, los bloques blancos en la TU 70) no tienen un valor para almacenar, transformar o codificar. De esta manera, las técnicas pueden reducir los requisitos de almacenamiento intermedio en memoria intermedia al realizar transformadas bidimensionales. Esto puede ser especialmente útil para tamaños de unidad de transformada más grandes, por ejemplo, 32x32 hasta 128x128, que se han propuesto para la norma HEVC.
[0083] Después del almacenamiento en memoria intermedia, la unidad de transformada 52 puede aplicar a continuación la transformada unidimensional a las columnas de los coeficientes de transformada intermedios retenidos en el bloque de coeficientes intermedios retenidos 73, y poner a cero un subconjunto (en este caso la mitad) de los coeficientes de transformada que salen de la transformada. En el ejemplo ilustrado de la figura 3A, los coeficientes de transformada retenidos se incluyen en el bloque de coeficientes retenidos 74 (es decir, los bloques rayados en la TU 70), que tiene un área cuadrada de tamaño 8x8 igual a un cuarto del tamaño original de la TU 70 de 16x16. El subconjunto puesto a cero (es decir, los cuadrados sin rayar en el bloque de coeficientes intermedios retenidos 73) puede incluir coeficientes con valores de frecuencia que son más altos que los coeficientes dentro del bloque de coeficientes retenidos 74 de la TU 70. En el ejemplo ilustrado, la unidad de transformada 52 pone a cero la mitad de los coeficientes con los 8 valores de frecuencia más altos en cada columna del bloque de coeficientes intermedios retenidos 73. En otros ejemplos, la unidad de transformada 52 puede poner a cero la mitad de los coeficientes con los valores de frecuencia más altos entre todos los coeficientes en el bloque de coeficientes intermedios retenidos 73 de 16x8. En ambos casos, el proceso de puesta a cero da como resultado un bloque de coeficientes retenidos 74 con un área cuadrada de 8x8 dentro de la TU 70.
[0084] La figura 3B ilustra una TU 76 que tiene un primer tamaño de 16x16 y un bloque de coeficientes retenidos 78 que tiene un área rectangular final del segundo tamaño 4x16 dentro de la TU 76. Se puede seleccionar un tamaño y conformación del bloque de coeficientes retenidos 78 en base al requisito de complejidad de codificación para el proceso de codificación. Más específicamente, el área rectangular final del bloque de coeficientes retenidos 78 se puede seleccionar en base al menos a uno de un modo de intracodificación, un patrón de exploración y una posición del último coeficiente significativo para el bloque de coeficientes retenidos 78.
[0085] En el ejemplo ilustrado de la figura 3B, la unidad de transformada 52 se puede configurar para generar el bloque de coeficientes retenidos 78 con un área rectangular de tamaño 4x16 dentro de la TU 76 originalmente de tamaño 16x16. La unidad de transformada 52 se puede aplicar primero a la TU 76 en la dirección del lado más corto (por ejemplo, columnas) del área rectangular final del bloque de coeficientes retenidos 78. Para generar el bloque de coeficientes retenidos 78, la unidad de transformada 52 puede poner a cero tres cuartas partes de los coeficientes después de aplicar la transformada bidimensional en la primera dirección (por ejemplo, columnas). En otros casos, la unidad de transformada 52 se puede configurar para poner a cero un subconjunto más grande o más pequeño de los coeficientes dependiendo de los requisitos de complejidad de codificación para el proceso de codificación.
[0086] Cuando se selecciona un área rectangular para el bloque de coeficientes retenidos, las técnicas pueden proporcionar una reducción adicional en los requisitos de almacenamiento intermedio en memoria intermedia aplicando primero una transformada unidimensional en la dirección del lado más corto (es decir, menos coeficientes de transformada retenidos) del área rectangular. De esta manera, el codificador de vídeo 20 puede almacenar en memoria intermedia menos de la mitad de los coeficientes de transformada intermedios antes de la aplicación de la transformada unidimensional en la dirección del lado más largo del área rectangular. En el ejemplo ilustrado de la figura 3B, la altura (H) del área rectangular final del bloque de coeficientes retenidos 78 es menor que el ancho (W) del área rectangular, por lo que se retendrán menos coeficientes de transformada intermedios en la dirección vertical. La unidad de transformada 52 puede, por lo tanto, aplicar primero la transformada a las columnas de la TU 76 de modo que el codificador de vídeo 20 pueda almacenar en memoria intermedia menos de la mitad (en este caso, un cuarto) de los coeficientes de transformada intermedios antes de la aplicación de la transformada a las filas de la TU 76.
[0087] Más específicamente, la unidad de transformada 52 puede aplicar una transformada unidimensional a las columnas de los datos de vídeo residuales en la TU 76, y poner a cero un subconjunto (en este caso las tres cuartas partes) de los coeficientes de transformada intermedios que salen de la transformada. En el ejemplo ilustrado de la figura 3B, los coeficientes de transformada intermedios retenidos se incluyen en un bloque de coeficientes intermedios retenidos 77 (es decir, los bloques sombreados en la TU 76), que tiene un área rectangular de 4x16 igual a un cuarto del tamaño original de 16x16 de la TU 76. El subconjunto puesto a cero (es decir, los bloques blancos en la TU 76) puede incluir coeficientes con valores de frecuencia que son más altos que los coeficientes dentro del bloque de coeficientes intermedios retenidos 77 de la TU 76. En el ejemplo ilustrado, la unidad de transformada 52 pone a cero tres cuartas partes de los coeficientes con los 12 valores de frecuencia más altos en cada columna de la TU 76. Este proceso de puesta a cero da como resultado un bloque de coeficientes intermedios retenidos 77 con un área rectangular de 4x16 dentro de la TU 76.
[0088] Al poner a cero las tres cuartas partes de los coeficientes de transformada intermedios que salen de la transformada en la primera dirección, el codificador de vídeo 20 solo necesita almacenar en memoria intermedia los coeficientes dentro del bloque de coeficientes intermedios retenidos 77 antes de aplicar la transformada en la segunda dirección. Los coeficientes dentro del subconjunto puesto a cero (es decir, los bloques blancos en la TU 76) no tienen un valor para almacenar, transformar o codificar. De esta manera, las técnicas pueden reducir los requisitos de almacenamiento intermedio en memoria intermedia al realizar transformadas bidimensionales. Esto puede ser especialmente útil para tamaños de unidad de transformada más grandes, por ejemplo, 32x32 hasta 128x128, que se han propuesto para la norma HEVC.
[0089] Después del almacenamiento en memoria intermedia, la unidad de transformada 52 puede aplicar a continuación la transformada unidimensional a las filas de los coeficientes en el bloque de coeficientes intermedios retenidos 77. En este ejemplo, la unidad de transformada 52 puede no poner a cero ninguno de los coeficientes de transformada que salen de la transformada porque la TU 76 ya se ha puesto a cero a un cuarto del tamaño original de 16x16. En el ejemplo ilustrado de la figura 3A, los coeficientes de transformada retenidos se incluyen en el bloque de coeficientes retenidos 78 (es decir, los bloques rayados en la TU 76), que tiene la misma área rectangular de 4x16 que el bloque de coeficientes intermedios retenidos 77. El proceso de puesta a cero da como resultado el bloque de coeficientes retenidos 78 con un área rectangular de 4x16 dentro de la TU 70.
[0090] La figura 4 es un diagrama de bloques que ilustra un descodificador de vídeo de ejemplo que puede implementar técnicas para descodificar por entropía coeficientes de vídeo usando un modelo de contexto conjunto. En el ejemplo de la figura 4, 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 transformada inversa 88, una unidad de sumador 90, y una memoria de tramas de referencia 92. La unidad de predicción 81 incluye la unidad de compensación de movimiento 82 y una unidad de intrapredicción 84. En algunos ejemplos, el descodificador de vídeo 30 puede realizar un pase de descodificación, en general, recíproco al pase de codificación descrito con respecto al codificador de vídeo 20 (figura 2).
[0091] Durante el proceso de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo codificado, que representa tramas o cortes de vídeo codificado y elementos sintácticos que representan la información de codificación del codificador de vídeo 20. La unidad de descodificación por entropía 80 descodifica por entropía el flujo de bits para generar coeficientes de transformada cuantificados dentro de una TU. Por ejemplo, la unidad de descodificación por entropía 80 puede realizar una descodificación por entropía adaptativa según el contexto, tal como CABAC, CAVLC u otra técnica de codificación por entropía. La unidad de descodificación por entropía 80 también descodifica elementos sintácticos que incluyen un mapa de significancia, es decir, un mapa de unos y ceros que indica la posición de coeficientes significativos en una TU, usando las técnicas descritas en esta divulgación. La unidad de descodificación por entropía 80 también puede descodificar por entropía vectores de movimiento y otros elementos sintácticos de predicción.
[0092] Para realizar la descodificación por entropía adaptativa según el contexto, la unidad de descodificación por entropía 80 asigna un contexto a cada coeficiente codificado representado en el flujo de bits de acuerdo con un modelo de contexto, que se puede relacionar, por ejemplo, con si los valores de coeficientes vecinos descodificados previamente son distintos de cero. La unidad de descodificación por entropía 80 también determina un proceso de codificación para el coeficiente codificado asociado con el contexto asignado en el modelo de contexto. La unidad de descodificación por entropía 80 a continuación descodifica los coeficientes en base a los contextos asignados. En el caso de CABAC, la unidad de descodificación por entropía 80 determina una estimación de probabilidad para un valor (por ejemplo, 0 o 1) del coeficiente codificado asociado con el contexto asignado en el modelo de contexto. La unidad de descodificación por entropía 80 a continuación actualiza la estimación de probabilidad asociada con el contexto asignado en el modelo de contexto en base al valor descodificado real del coeficiente.
[0093] Convencionalmente, el descodificador de vídeo 30 debe mantener modelos de contexto separados para cada uno de los diferentes tamaños de TU soportados por la norma de compresión de vídeo implementada. Para la norma HEVC, se han propuesto tamaños de unidades de transformada adicionales, por ejemplo, 32x32 hasta 128x128, para mejorar la eficacia de codificación de vídeo, pero los tamaños de TU adicionales también dan como resultado requisitos de memoria y computacionales incrementados para mantener los modelos de contexto para cada uno de los tamaños de unidad de transformada adicionales.
[0094] De acuerdo con las técnicas de esta divulgación, la unidad de descodificación por entropía 80 se puede configurar para realizar la descodificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños. Las técnicas se describen principalmente con respecto a la técnica de descodificación por entropía de CABAC. Sin embargo, en algunos casos, las técnicas también se pueden aplicar a otras técnicas de codificación por entropía adaptativa según el contexto. Compartir el modelo de contexto conjunto entre dos o más tamaños de unidades de transformada puede reducir la cantidad de memoria necesaria para almacenar contextos y probabilidades en el descodificador de vídeo 30. Además, compartir un modelo de contexto conjunto también puede reducir los costes computacionales de mantener modelos de contexto en el descodificador de vídeo 30, incluyendo el restablecimiento de todos los modelos de contexto al inicio de un corte de vídeo. En el caso de CABAC, las técnicas también pueden reducir los costes de cálculo de actualizar continuamente las estimaciones de probabilidad de los modelos de contexto basados en valores codificados reales de los coeficientes.
[0095] De acuerdo con esta divulgación, la unidad de descodificación por entropía 80 puede mantener un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños, y seleccionar contextos para coeficientes asociados con una de las unidades de transformada de acuerdo con el modelo de contexto conjunto. La unidad de descodificación por entropía 80 puede a continuación descodificar por entropía los coeficientes significativos asociados con las unidades de transformada en base a los contextos seleccionados. Como ejemplo, el modelo de contexto conjunto se puede compartir entre unidades de transformada que tienen un primer tamaño de 32x32 y unidades de transformada que tienen un segundo tamaño de 16x16. En algunos casos, más de dos tamaños de unidades de transformada pueden compartir el mismo modelo de contexto conjunto. En un ejemplo, el modelo de contexto conjunto puede ser el modelo de contexto conjunto de mapas de significancia para las unidades de transformada. En otros ejemplos, el modelo de contexto conjunto puede estar asociado con otra información de codificación o elementos sintácticos. El proceso de descodificación CABAC que usa un modelo de contexto conjunto se describe con más detalle con respecto a la figura 6.
[0096] En un ejemplo, la unidad de descodificación por entropía 80 puede mantener un modelo de contexto conjunto compartido por una TU que tiene el primer tamaño con coeficientes puestos a cero para generar un bloque de coeficientes retenidos y una TU que originalmente tiene el segundo tamaño. En algunos casos, el bloque de coeficientes retenidos puede tener un tamaño igual al segundo tamaño. Por ejemplo, en este caso, la unidad de descodificación por entropía 80 puede seleccionar contextos para los coeficientes del bloque de coeficientes retenidos que tiene el segundo tamaño dentro de la TU que originalmente tiene el primer tamaño de acuerdo con el modelo de contexto conjunto. La unidad de descodificación por entropía 80 a continuación descodifica aritméticamente los coeficientes significativos codificados en el bloque de coeficientes retenidos dentro de la TU que tiene el primer tamaño en base a los contextos seleccionados. En el caso de CABAC, la unidad de descodificación por entropía 80 también actualiza las estimaciones de probabilidad asociadas con los contextos seleccionados en el modelo de contexto conjunto en base a valores descodificados reales de los coeficientes.
[0097] En otro ejemplo, la unidad de descodificación por entropía 80 puede mantener un modelo de contexto conjunto compartido por una primera TU que tiene el primer tamaño y una segunda TU que tiene el segundo tamaño. En este ejemplo, la unidad de descodificación por entropía 80 puede seleccionar contextos para los coeficientes codificados asociados con la TU de uno del primer y segundo tamaño de acuerdo con el modelo de contexto conjunto. La unidad de descodificación por entropía 80 a continuación descodifica los coeficientes significativos codificados en la TU en base a los contextos seleccionados. En el caso de CABAC, la unidad de descodificación por entropía 80 puede a continuación actualizar las estimaciones de probabilidad asociadas con los contextos seleccionados en el modelo de contexto conjunto en base a valores descodificados reales de los coeficientes. En ambos caso, la unidad de descodificación por entropía 80 reenvía los coeficientes de transformada cuantificados descodificados dentro de las TU del primer tamaño o del segundo tamaño a la unidad de cuantificación inversa 86.
[0098] La unidad de cuantificación inversa 86 cuantifica inversamente, es decir, descuantifica los coeficientes de transformada cuantificados descodificados en las TU por la unidad de descodificación por entropía 80, como se describe anteriormente. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QP calculado por el codificador de vídeo 20 para cada bloque de vídeo o CU 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 entero inversa, una transformada wavelet, o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada dentro de las TU, a fin de producir datos de vídeo residuales en el dominio de píxel.
[0099] En algunos ejemplos, la unidad de transformada inversa 88 puede comprender una transformada separable bidimensional. La unidad de transformada inversa 88 puede aplicar la transformada bidimensional a la TU aplicando primero una transformada inversa unidimensional a las filas de coeficientes de transformada dentro de la TU, y a continuación aplicando una transformada inversa unidimensional a las columnas de coeficientes de transformada dentro de la TU, o viceversa. Después de la aplicación de la transformada inversa unidimensional en la primera dirección a los coeficientes de transformada en la TU, el descodificador de vídeo 30 almacena en memoria intermedia los datos residuales intermedios para la aplicación de la transformada inversa unidimensional en la segunda dirección. Como se describe anteriormente, en la norma HEVC, se han propuesto tamaños de unidad de transformada más grandes, por ejemplo, 32x32 hasta 128x128, para mejorar la eficacia de la codificación de vídeo. Sin embargo, los tamaños de la TU más grandes también darán como resultado requisitos incrementados de almacenamiento intermedio en memoria intermedia para transformadas bidimensionales.
[0100] Para reducir los requisitos de almacenamiento intermedio en memoria intermedia para tamaños de TU más grandes, las técnicas descritas en esta divulgación pueden incluir poner a cero un subconjunto de coeficientes de transformada de alta frecuencia incluidos en una TU con el codificador de vídeo 20 de la figura 2. Los coeficientes de transformada puestos a cero dentro de la TU simplemente se establecen iguales a cero y no tienen ningún valor para almacenar, transformar o codificar. La unidad de descodificación por entropía 80, por lo tanto, recibe un flujo de bits codificado que representa los coeficientes codificados asociados con un bloque de coeficientes retenidos que tiene un segundo tamaño dentro de la TU que originalmente tiene un primer tamaño. La unidad de descodificación por entropía 80 descodifica los coeficientes en el bloque de coeficientes retenidos dentro de la TU que tiene el primer tamaño. A continuación, la TU incluye los coeficientes dentro del bloque de coeficientes retenidos del segundo tamaño, y ceros que representan los coeficientes restantes dentro de la TU.
[0101] De esta manera, el proceso de puesta a cero de los coeficientes de transformada en el codificador de vídeo 20 también puede reducir los requisitos de almacenamiento intermedio en memoria intermedia para tamaños de TU más grandes cuando se realiza una transformada inversa en el descodificador de vídeo 30. Como ejemplo, la unidad de transformada inversa 88 puede aplicar una transformada inversa unidimensional en una primera dirección, por ejemplo, en dirección de fila, a los coeficientes de transformada en un bloque de coeficientes retenidos que tiene un tamaño 16x16 dentro de una TU que tiene un tamaño 32x32. Después de la transformada inversa de fila, el descodificador de vídeo 30 puede que solo necesite almacenar en memoria intermedia los datos residuales intermedios transformados a partir de los coeficientes dentro del bloque de coeficientes retenidos, que comprende solo una mitad de coeficientes de la TU, es decir, 32x16. La unidad de transformada inversa 88 puede aplicar a continuación la transformada inversa unidimensional en una segunda dirección, por ejemplo, en dirección de columna, a los datos residuales intermedios en la TU. De esta manera, la unidad de transformada inversa 88 puede generar la TU originalmente de tamaño 32x32 incluyendo los datos residuales en el bloque de coeficientes retenidos que tiene un tamaño de 16x16 y añadiendo ceros para representar los datos residuales restantes en la TU.
[0102] La unidad de descodificación por entropía 80 reenvía los vectores de movimiento descodificados y otros elementos sintácticos de predicción a la unidad de predicción 81. El descodificador de vídeo 30 puede recibir los elementos sintácticos en el nivel de unidad de predicción de vídeo, el nivel de unidad de codificación de vídeo, el nivel de corte de vídeo, el nivel de trama de vídeo y/o el nivel de secuencia de vídeo. Cuando la trama de vídeo se codifica como una trama intracodificada, la unidad de intrapredicción 84 de la unidad de predicción 81 genera datos de predicción para bloques de vídeo de la trama de vídeo actual, en base a datos de bloques previamente descodificados de la trama actual. Cuando una trama de vídeo se codifica como una trama intercodificada, la unidad de compensación de movimiento 82 de la unidad de predicción 81 produce bloques predictivos para bloques de vídeo de la trama de vídeo actual en base a los vectores de movimiento descodificados recibidos desde la unidad de descodificación por entropía 80. Los bloques predictivos se pueden generar con respecto a uno o más bloques de referencia de una trama de referencia almacenada en la memoria de tramas de referencia 92.
[0103] La unidad de compensación de movimiento 82 determina la información de predicción para un bloque de vídeo que se va a descodificar, analizando sintácticamente los vectores de movimiento y otra sintaxis de predicción, y usa la información de predicción para generar los bloques predictivos para el bloque de vídeo actual que está siendo descodificado. Por ejemplo, la unidad de compensación de movimiento 82 usa algunos de los elementos sintácticos recibidos para determinar los tamaños de las CU usadas para codificar la trama actual, información dividida que describe cómo se divide cada CU de la trama, modos que indican cómo se codifica cada división (por ejemplo, intra o interpredicción), un tipo de corte de interpredicción (por ejemplo, corte B, corte P o corte GPB), comandos de construcción de la lista de tramas de referencia, filtros de interpolación aplicados a tramas de referencia, vectores de movimiento para cada bloque de vídeo de la trama, valores de parámetros de vídeo asociados con los vectores de movimiento y otra información para descodificar la trama de vídeo actual.
[0104] El descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales de la unidad de transformada inversa 88 con los bloques predictivos correspondientes generados por la unidad de compensación de movimiento 82. La unidad de 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, a fin de retirar distorsiones de efecto pixelado. Los bloques de vídeo descodificados se almacenan a continuación en tramas de referencia in la memoria de tramas de referencia 92, que proporciona bloques de referencia de tramas de referencia para la compensación de movimiento posterior. La memoria de tramas de referencia 92 produce también vídeo descodificado para su presentación en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la figura 1.
[0105] La figura 5 es un diagrama de bloques que ilustra un ejemplo de la unidad de codificación por entropía 56 de la figura 2 configurada para seleccionar contextos para coeficientes de vídeo de acuerdo con un modelo de contexto conjunto. La unidad de codificación por entropía 56 incluye una unidad de modelado de contexto 94, una unidad de codificación aritmética 96 y un almacén de modelos de contexto conjunto 98. Como se describe anteriormente, las técnicas de esta divulgación están dirigidas a realizar codificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños. Específicamente, las técnicas se describen en el presente documento con respecto al proceso de codificación CABAC.
[0106] La unidad de codificación por entropía 56 mantiene un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños dentro del almacén de modelos de contexto conjunto 98. Como ejemplo, el almacén de modelos de contexto conjunto 98 puede almacenar un modelo de contexto conjunto compartido por una TU que tiene el primer tamaño con coeficientes que se ponen a cero para generar un bloque de coeficientes retenidos que tiene el segundo tamaño y una TU que originalmente tiene el segundo tamaño. Como otro ejemplo, el almacén de modelos de contexto conjunto 98 puede almacenar un modelo de contexto conjunto compartido por una TU que tiene el primer tamaño y una TU que tiene el segundo tamaño. En algunos casos, el primer tamaño puede comprender 32x32 y el segundo tamaño puede comprender 16x16.
[0107] La unidad de modelado de contexto 94 recibe coeficientes de transformada asociados con una TU del primer tamaño o del segundo tamaño que se han explorado en un vector para codificación por entropía. La unidad de modelado de contexto 94 a continuación asigna un contexto a cada uno de los coeficientes de la TU en base a valores de coeficientes vecinos previamente codificados de la TU de acuerdo con el modelo de contexto conjunto. Más específicamente, la unidad de modelado de contexto 94 puede asignar los contextos de acuerdo con si los valores de los coeficientes vecinos codificados previamente son distintos de cero. El contexto asignado se puede referir a un índice de contexto, por ejemplo, contexto(i), donde i=0, 1,2,..., N, en el modelo de contexto conjunto.
[0108] Después de asignar un contexto a un coeficiente, la unidad de modelado de contexto 94 puede determinar una estimación de probabilidad para un valor (por ejemplo, 0 o 1) del coeficiente asociado con el contexto asignado en el modelo de contexto conjunto. Cada índice de contexto diferente está asociado con una estimación de probabilidad para un valor de un coeficiente con ese índice de contexto. La estimación de probabilidad realizada para CABAC por la unidad de modelado de contexto 94 se puede basar en un estimador basado en tablas usando una máquina de estado finito (FSM). Para cada contexto, la FSM mantiene una estimación de probabilidad asociada rastreando valores de contexto pasado y proporcionando un estado actual como la mejor estimación de la probabilidad de que un coeficiente dado tenga un valor de 0 o 1. Por ejemplo, si los estados de probabilidad varían desde 0 hasta 127, un estado 0 puede significar que la probabilidad de que el coeficiente tenga un valor de 0 es 0,9999, y un estado 127 puede significar que la probabilidad de que el coeficiente tenga un valor de 0 es 0,0001.
[0109] La unidad de codificación aritmética 96 codifica aritméticamente el coeficiente en base a la estimación de probabilidad determinada del coeficiente asociado con el contexto asignado. De esta manera, la unidad de codificación aritmética 96 genera un flujo de bits codificado que representa coeficientes codificados aritméticamente asociados con la TU del primer tamaño o del segundo tamaño de acuerdo con el modelo de contexto conjunto.
[0110] Después de la codificación, la unidad de codificación aritmética 96 retroalimenta el valor codificado real del coeficiente a la unidad de modelado de contexto 94 para actualizar la estimación de probabilidad asociada con el contexto asignado en el modelo de contexto conjunto dentro del almacén de modelos de contexto conjunto 98. La unidad de modelado de contexto 94 realiza la actualización de probabilidad para el contexto asignado en el modelo de contexto conjunto mediante la transición entre estados de probabilidad. Por ejemplo, si el valor real codificado del coeficiente es 0, entonces la probabilidad de que el valor del coeficiente sea igual a 0 se puede incrementar mediante la transición a un estado más bajo. Al actualizar continuamente las estimaciones de probabilidad del modelo de contexto conjunto para reflejar los valores codificados reales de los coeficientes, las estimaciones de probabilidad para futuros coeficientes asignados a los mismos contextos en el modelo de contexto conjunto pueden ser más exactas y dar como resultado además una codificación de bits reducida por la unidad de codificación aritmética 96.
[0111] En un primer ejemplo, el almacén de modelos de contexto conjunto 98 puede almacenar un modelo de contexto conjunto compartido por una TU que tiene el primer tamaño con coeficientes puestos a cero para generar un bloque de coeficientes retenidos que tiene el segundo tamaño y una TU que originalmente tiene el segundo tamaño.
Por ejemplo, el almacén de modelos de contexto conjunto 98 puede almacenar un modelo de contexto conjunto compartido por bloques de coeficientes retenidos que tienen un tamaño de 16x16 dentro de las TU que tienen originalmente un tamaño de 32x32 y las TU que tienen originalmente un tamaño de 16x16.
[0112] A un primer coeficiente dentro de un bloque de coeficientes retenidos de tamaño 16x16 dentro de una primera TU de tamaño 32x32 se le puede asignar contexto (5) en un modelo de contexto conjunto compartido por la TU de tamaño 32x32 con coeficientes puestos a cero para generar el bloque de coeficientes retenidos de tamaño 16x16 y una TU de tamaño 16x16. La unidad de modelado de contexto 94 a continuación determina una estimación de probabilidad para un valor del primer coeficiente asociado con el contexto (5) asignado en el modelo de contexto conjunto, y actualiza la estimación de probabilidad asociada con el contexto (5) asignado en el modelo de contexto conjunto en base a un valor real valor codificado del primer coeficiente. A un segundo coeficiente dentro de una segunda TU de tamaño 16x16 también se le puede asignar el mismo contexto (5) en el modelo de contexto conjunto que el coeficiente en el bloque de coeficientes retenidos dentro de la primera TU. La unidad de modelado de contexto 94 a continuación determina una estimación de probabilidad para un valor del segundo coeficiente asociado con el mismo contexto (5) asignado en el modelo de contexto conjunto, y actualiza la estimación de probabilidad asociada con el mismo contexto (5) asignado en el modelo de contexto conjunto en base a un valor codificado real del segundo coeficiente.
[0113] En un segundo ejemplo, el almacén de modelos de contexto conjunto 98 puede almacenar un modelo de contexto conjunto compartido por una TU que tiene un primer tamaño y una TU que tiene un segundo tamaño. Por ejemplo, el almacén de modelos de contexto conjunto 98 puede almacenar un modelo de contexto conjunto compartido por TU que tienen tamaños de 32x32 y 16x16. A un primer coeficiente dentro de una primera TU de tamaño 32x32 se le puede asignar contexto (5) en un modelo de contexto conjunto compartido por TU de tamaño 32x32 y 16x16. La unidad de modelado de contexto 94 a continuación determina una estimación de probabilidad para un valor del primer coeficiente asociado con el contexto (5) asignado en el modelo de contexto conjunto, y actualiza la estimación de probabilidad asociada con el contexto (5) asignado en el modelo de contexto conjunto en base a un valor real valor codificado del primer coeficiente. A un segundo coeficiente dentro de una segunda TU de tamaño 16x16 también se le puede asignar el mismo contexto (5) en el modelo de contexto conjunto que el coeficiente en la primera TU. La unidad de modelado de contexto 94 a continuación determina una estimación de probabilidad para un valor del segundo coeficiente asociado con el mismo contexto (5) asignado en el modelo de contexto conjunto, y actualiza la estimación de probabilidad asociada con el mismo contexto (5) asignado en el modelo de contexto conjunto en base a un valor codificado real del segundo coeficiente.
[0114] La figura 6 es un diagrama de bloques que ilustra un ejemplo de una unidad de descodificación por entropía 80 configurada para seleccionar contextos para coeficientes de vídeo de acuerdo con un modelo de contexto conjunto. La unidad de descodificación por entropía 80 incluye una unidad de codificación aritmética 102, una unidad de modelado de contexto 104 y un almacén de modelos de contexto conjunto 106. Como se describe anteriormente, las técnicas de esta divulgación están dirigidas a realizar descodificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños. Específicamente, las técnicas se describen en el presente documento con respecto al proceso de descodificación CABAC. La unidad de descodificación por entropía 80 puede funcionar de una manera esencialmente simétrica a la de la unidad de codificación por entropía 56 de la figura 5.
[0115] La unidad de descodificación por entropía 80 mantiene un modelo de contexto conjunto compartido entre unidades de transformada que tienen diferentes tamaños dentro del almacén de modelos de contexto conjunto 106. El modelo de contexto conjunto almacenado en el almacén de modelos de contexto conjunto 106 es sustancialmente similar al modelo de contexto conjunto almacenado en el almacén de modelos de contexto conjunto 98 en la unidad de codificación por entropía 56 de la figura 5. Como ejemplo, el almacén de modelos de contexto conjunto 106 puede almacenar un modelo de contexto conjunto compartido por una TU que tiene el primer tamaño con coeficientes puestos a cero para generar un bloque de coeficientes retenidos que tiene el segundo tamaño y una TU que originalmente tiene el segundo tamaño. Como otro ejemplo, el almacén de modelos de contexto conjunto 106 puede almacenar un modelo de contexto conjunto compartido por una TU que tiene el primer tamaño y una TU que tiene el segundo tamaño. En algunos casos, el primer tamaño puede comprender 32x32 y el segundo tamaño puede comprender 16x16.
[0116] La unidad de descodificación aritmética 102 recibe un flujo de bits codificado que representa coeficientes de transformada codificados asociados con una TU del primer tamaño o del segundo tamaño. La unidad de descodificación aritmética 102 descodifica el primer coeficiente incluido en el flujo de bits. La unidad de modelado de contexto 104 a continuación asigna un contexto a un coeficiente codificado posterior incluido en el flujo de bits en base al valor del primer coeficiente descodificado. De forma similar, la unidad de modelado de contexto 104 asigna un contexto a cada uno de los coeficientes codificados incluidos en el flujo de bits en base a valores de coeficientes vecinos previamente descodificados de la TU de acuerdo con el modelo de contexto conjunto. Más específicamente, la unidad de modelado de contexto 104 puede asignar los contextos de acuerdo con si los valores de los coeficientes vecinos descodificados previamente son distintos de cero. El contexto asignado se puede referir a un índice de contexto en el modelo de contexto conjunto.
[0117] Después de asignar un contexto a un coeficiente codificado, la unidad de modelado de contexto 104 puede determinar una estimación de probabilidad para un valor (por ejemplo, 0 o 1) del coeficiente codificado asociado con el contexto asignado en el modelo de contexto conjunto. Cada índice de contexto diferente está asociado con una estimación de probabilidad. La unidad de modelado de contexto 104 retroalimenta la estimación de probabilidad determinada del coeficiente codificado a la unidad de descodificación aritmética 102. La unidad de descodificación aritmética 102 a continuación descodifica aritméticamente el coeficiente codificado en base a la estimación de probabilidad determinada del coeficiente asociado con el contexto asignado. De esta manera, la unidad de descodificación aritmética 102 genera coeficientes de transformada descodificados dentro de la TU, ya sea del primer tamaño o del segundo tamaño de acuerdo con el modelo de contexto conjunto.
[0118] Después de la descodificación, la unidad de descodificación aritmética 102 alimenta el valor descodificado real del coeficiente a la unidad de modelado de contexto 104 para actualizar la estimación de probabilidad asociada con el contexto asignado en el modelo de contexto conjunto dentro del almacén de modelos de contexto conjunto 106. Al actualizar continuamente las estimaciones de probabilidad del modelo de contexto conjunto para reflejar los valores descodificados reales de los coeficientes, las estimaciones de probabilidad para futuros coeficientes asignados a los mismos contextos en el modelo de contexto conjunto pueden ser más exactas y dar como resultado además una descodificación de bits reducida por la unidad de descodificación aritmética 102.
[0119] En un primer ejemplo, el almacén de modelos de contexto conjunto 106 puede almacenar un modelo de contexto conjunto compartido por una TU que tiene el primer tamaño con coeficientes puestos a cero para generar un bloque de coeficientes retenidos que tiene el segundo tamaño y una TU que originalmente tiene el segundo tamaño. Por ejemplo, el almacén de modelos de contexto conjunto 106 puede almacenar un modelo de contexto conjunto compartido por el bloque de coeficientes retenidos que tiene un tamaño de 16x16 dentro de la TU que tiene originalmente un tamaño de 32x32 y la TU que tiene originalmente un tamaño de 16x16.
[0120] A un primer coeficiente codificado asociado con un bloque de coeficientes retenidos de tamaño 16x16 dentro de una primera TU de tamaño 32x32 se le puede asignar contexto (5) en un modelo de contexto conjunto compartido por la TU de tamaño 32x32 con coeficientes puestos a cero para generar el bloque de coeficientes retenidos de tamaño 16x16 y la TU de tamaño 16x16. La unidad de modelado de contexto 104 a continuación determina una estimación de probabilidad para un valor del primer coeficiente codificado asociado con el contexto (5) asignado en el modelo de contexto conjunto, y actualiza la estimación de probabilidad asociada con el contexto (5) asignado en el modelo de contexto conjunto en base a un valor descodificado real del primer coeficiente. A un segundo coeficiente codificado asociado con una segunda TU de tamaño 16x16 se le puede asignar el mismo contexto (5) en el modelo de contexto conjunto que el primer coeficiente codificado asociado con el bloque de coeficientes retenidos dentro de la primera TU. La unidad de modelado de contexto 104 a continuación determina una estimación de probabilidad para un valor del segundo coeficiente codificado asociado con el mismo contexto (5) asignado en el modelo de contexto conjunto, y actualiza la estimación de probabilidad asociada con el mismo contexto (5) asignado en el modelo de contexto conjunto en base a un valor descodificado real del segundo coeficiente.
[0121] En un segundo ejemplo, el almacén de modelos de contexto conjunto 106 puede almacenar un modelo de contexto conjunto compartido por una TU que tiene un primer tamaño y una TU que tiene un segundo tamaño. Por ejemplo, el almacén de modelos de contexto conjunto 106 puede almacenar un modelo de contexto conjunto compartido por TU que tienen tamaños de 32x32 y 16x16. A un primer coeficiente codificado asociado con una primera TU de tamaño 32x32 se le puede asignar contexto (5) en un modelo de contexto conjunto compartido por la TU de tamaño 32x32 y la TU de tamaño 16x16. La unidad de modelado de contexto 104 a continuación determina una estimación de probabilidad para un valor del primer coeficiente codificado asociado con el contexto (5) asignado en el modelo de contexto conjunto, y actualiza la estimación de probabilidad asociada con el contexto (5) asignado en el modelo de contexto conjunto en base a un valor descodificado real del primer coeficiente. A un segundo coeficiente codificado asociado con la segunda TU de tamaño 16x16 se le puede asignar el mismo contexto (5) en el modelo de contexto conjunto que el primer coeficiente codificado asociado con la primera TU. La unidad de modelado de contexto 104 a continuación determina una estimación de probabilidad para un valor del segundo coeficiente codificado asociado con el mismo contexto (5) asignado en el modelo de contexto conjunto, y actualiza la estimación de probabilidad asociada con el mismo contexto (5) asignado en el modelo de contexto conjunto en base a un valor descodificado real del segundo coeficiente.
[0122] La figura 7 es un diagrama de flujo que ilustra un funcionamiento de ejemplo de codificación y descodificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño. El funcionamiento ilustrado se describe con referencia a la unidad de codificación por entropía 56 de la figura 5 dentro del codificador de vídeo 20 de la figura 2 y la unidad de descodificación por entropía 80 de la figura 6 dentro del descodificador de vídeo 30 de la figura 3, aunque otros dispositivos pueden implementar técnicas similares.
[0123] En el funcionamiento ilustrado, la unidad de codificación por entropía 56 dentro del codificador de vídeo 20 y la unidad de codificación por entropía 80 dentro del descodificador de vídeo 30 pueden mantener un modelo de contexto conjunto compartido por una TU que tiene un primer tamaño y una TU que tiene un segundo tamaño. En este caso, los coeficientes incluidos en la primera TU que tiene el primer tamaño, por ejemplo, 32x32, pueden tener estadísticas de probabilidad similares a los coeficientes incluidos en la segunda TU del segundo tamaño, por ejemplo, 16x16, incluso sin poner a cero los coeficientes de alta frecuencia dentro de la primera TU. Esto puede ser posible cuando los coeficientes de alta frecuencia representan tan pocos datos de vídeo residuales que el efecto sobre las estadísticas de probabilidad de los coeficientes vecinos para la codificación por entropía es insignificante.
[0124] En un caso, el codificador de vídeo 20 puede usar la unidad de transformada 52 para transformar datos de vídeo residuales en coeficientes de transformada dentro de la TU que tiene el primer tamaño (120). En otro caso, el codificador de vídeo 20 puede usar la unidad de transformada 52 para transformar datos de vídeo residuales en coeficientes de transformada dentro de la TU que tiene el segundo tamaño (121). Independientemente de si la TU es del primer tamaño o del segundo tamaño, las técnicas de esta divulgación permiten que la unidad de codificación por entropía 56 codifique por entropía coeficientes dentro de la TU de acuerdo con el mismo modelo de contexto conjunto.
Las técnicas, por lo tanto, reducen la cantidad de memoria necesaria para almacenar contextos y probabilidades en el codificador de vídeo 20, y reducen los costes computacionales de mantener modelos de contexto en el codificador de vídeo 20.
[0125] La unidad de modelado de contexto 94 dentro de la unidad de codificación por entropía 56 selecciona un contexto para cada coeficiente dentro de la TU de acuerdo con el modelo de contexto conjunto compartido por las TU que tienen tanto el primer tamaño como el segundo tamaño (122). Más específicamente, la unidad de modelado de contexto 94 asigna un contexto a un coeficiente dado de la TU en base a valores de coeficientes vecinos previamente codificados de la TU de acuerdo con el modelo de contexto conjunto. La unidad de modelado de contexto 94 puede a continuación determinar una estimación de probabilidad para un valor (por ejemplo, 0 o 1) del coeficiente asociado con el contexto asignado en el modelo de contexto conjunto dentro del almacén de modelos de contexto conjunto 98.
La unidad de codificación aritmética 96 a continuación codifica aritméticamente el coeficiente en base al contexto seleccionado para el coeficiente (124).
[0126] Después de la codificación, la unidad de codificación aritmética 96 retroalimenta los valores codificados reales de los coeficientes a la unidad de modelado de contexto 94. La unidad de modelo de contexto 94 puede a continuación actualizar la estimación de probabilidad del modelo de contexto conjunto en base a valores codificados reales de los coeficientes dentro de la TU del primer tamaño o del segundo tamaño (126). El codificador de vídeo 20 transmite un flujo de bits que representa los coeficientes codificados asociados con la TU del primer tamaño o del segundo tamaño al descodificador de vídeo 30 (128).
[0127] El descodificador de vídeo 30 puede recibir el flujo de bits que representa los coeficientes codificados asociados con la TU que tiene el primer tamaño o el segundo tamaño (130). Independientemente de si la TU es del primer tamaño o del segundo tamaño, las técnicas de esta divulgación permiten que la unidad de descodificación por entropía 80 descodifique por entropía los coeficientes asociados con la TU en base al mismo modelo de contexto conjunto. Las técnicas, por lo tanto, pueden reducir la cantidad de memoria necesaria para almacenar contextos y probabilidades en el descodificador de vídeo 30, y reducir los costes computacionales de mantener modelos de contexto en el descodificador de vídeo 30.
[0128] La unidad de modelado de contexto 104 dentro de la unidad de descodificación por entropía 80 selecciona un contexto para cada coeficiente codificado asociado con la TU de acuerdo con el modelo de contexto conjunto compartido por las TU que tienen tanto el primer tamaño como el segundo tamaño (132). Más específicamente, la unidad de modelado de contexto 104 puede asignar un contexto a un coeficiente codificado posterior asociado con la TU en base a valores de coeficientes vecinos descodificados previamente de la TU según el modelo de contexto conjunto. La unidad de modelado de contexto 104 puede a continuación determinar una estimación de probabilidad para un valor (por ejemplo, 0 o 1) del coeficiente codificado asociado con el contexto asignado en el modelo de contexto conjunto dentro del almacén de modelo de contexto conjunto 106. La unidad de modelado de contexto 104 retroalimenta la estimación de probabilidad determinada asociada con el contexto seleccionado para el coeficiente codificado a la unidad de codificación aritmética 102. La unidad de codificación aritmética 102 a continuación descodifica aritméticamente el coeficiente codificado en la TU del primer tamaño o del segundo tamaño en base al contexto seleccionado (134).
[0129] Después de la descodificación, la unidad de descodificación aritmética 102 alimenta los valores descodificados reales de los coeficientes a la unidad de modelado de contexto 104. La unidad de modelo de contexto 104 puede actualizar la estimación de probabilidad del modelo de contexto conjunto en base a valores descodificados reales de los coeficientes dentro de la TU ya sea del primer tamaño o del segundo tamaño (136). En un caso, el descodificador de vídeo 30 puede usar la unidad de transformada inversa 88 para transformar inversamente los coeficientes dentro de la TU que tiene el primer tamaño en datos de vídeo residuales (138). En otro caso, el descodificador de vídeo 30 puede usar la unidad de transformada inversa 88 para transformar inversamente los coeficientes dentro de la TU que tiene el segundo tamaño en datos de vídeo residuales (139).
[0130] La figura 8 es un diagrama de flujo que ilustra un funcionamiento de ejemplo de codificación y descodificación por entropía de coeficientes de vídeo usando un modelo de contexto conjunto compartido entre una primera unidad de transformada que tiene un primer tamaño con coeficientes puestos a cero para generar un bloque de coeficientes retenidos que tiene un segundo tamaño y una segunda unidad de transformada que tiene el segundo tamaño. El funcionamiento ilustrado se describe con referencia a la unidad de codificación por entropía 56 de la figura 4 dentro del codificador de vídeo 20 de la figura 2 y la unidad de descodificación por entropía 80 de la figura 5 dentro del descodificador de vídeo 30 de la figura 3, aunque otros dispositivos pueden implementar técnicas similares.
[0131] En el funcionamiento ilustrado, la unidad de codificación por entropía 56 dentro del codificador de vídeo 20 y la unidad de codificación por entropía 80 dentro del descodificador de vídeo 30 pueden mantener un modelo de contexto conjunto compartido por una TU que tiene un primer tamaño con coeficientes puestos a cero para generar el bloque de coeficientes retenidos que tiene un segundo tamaño, y una TU que tiene el segundo tamaño. En este caso, los coeficientes incluidos en el bloque de coeficientes retenidos que tiene el segundo tamaño, por ejemplo, 16x16, dentro de la primera TU que tiene el primer tamaño, por ejemplo, 32x32, pueden tener estadísticas de probabilidad similares a los coeficientes incluidos en la segunda TU del segundo tamaño por ejemplo, 16x16.
[0132] En un caso, el codificador de vídeo 20 puede usar la unidad de transformada 52 para transformar datos de vídeo residuales en coeficientes de transformada dentro de una TU que tiene el primer tamaño (140). El codificador de vídeo 20 pone a cero un subconjunto de coeficientes incluidos en la primera TU después de la transformada para generar el bloque de coeficientes retenidos que tiene el segundo tamaño dentro de la primera TU (141). El subconjunto de coeficientes de transformada puestos a cero típicamente incluye coeficientes de transformada de alta frecuencia en relación con los coeficientes dentro del bloque de coeficientes retenidos. Los coeficientes de transformada de alta frecuencia pueden contener tan pocos datos residuales de vídeo que establecer valores iguales a cero tiene un efecto insignificante en la calidad de vídeo descodificado. En otro caso, el codificador de vídeo 20 puede usar la unidad de transformada 52 para transformar datos de vídeo residuales en coeficientes de transformada dentro de una TU que tiene el segundo tamaño (142).
[0133] Independientemente de si la TU es originalmente del primer tamaño o del segundo tamaño, las técnicas de esta divulgación permiten que la unidad de codificación por entropía 56 codifique por entropía coeficientes retenidos dentro de la TU de acuerdo con el mismo modelo de contexto conjunto. Las técnicas, por lo tanto, reducen la cantidad de memoria necesaria para almacenar contextos y probabilidades en el codificador de vídeo 20, y reducen los costes computacionales de mantener modelos de contexto en el codificador de vídeo 20.
[0134] La unidad de modelado de contexto 94 dentro de la unidad de codificación por entropía 56 selecciona un contexto para cada coeficiente retenido dentro de la TU de acuerdo con el modelo de contexto conjunto compartido por una TU que tiene el primer tamaño con coeficientes puestos a cero al segundo tamaño, y una TU que tiene el segundo tamaño (144). Más específicamente, la unidad de modelado de contexto 94 asigna un contexto a un coeficiente dado dentro del bloque de coeficientes retenidos de la primera TU en base a valores de coeficientes vecinos codificados previamente del bloque de coeficientes retenidos de acuerdo con el modelo de contexto conjunto. La unidad de modelado de contexto 94 puede a continuación determinar una estimación de probabilidad para un valor (por ejemplo, 0 o 1) del coeficiente asociado con el contexto asignado en el modelo de contexto conjunto dentro del almacén de modelos de contexto conjunto 98. La unidad de codificación aritmética 96 a continuación codifica aritméticamente el coeficiente en base al contexto seleccionado para el coeficiente (146).
[0135] Después de la codificación, la unidad de codificación aritmética 96 retroalimenta los valores codificados reales de los coeficientes a la unidad de modelado de contexto 94. La unidad de modelo de contexto 94 puede actualizar la estimación de probabilidad del modelo de contexto conjunto en base a valores codificados reales de los coeficientes en el bloque de coeficientes retenidos del segundo tamaño dentro de la TU del primer tamaño, o la TU originalmente del segundo tamaño (148). El codificador de vídeo 20 transmite un flujo de bits que representa los coeficientes codificados asociados con el bloque de coeficientes retenidos dentro de la TU del primer tamaño, o la TU del segundo tamaño al descodificador de vídeo 30 (150).
[0136] El descodificador de vídeo 30 puede recibir el flujo de bits que representa los coeficientes codificados asociados con el bloque de coeficientes retenidos del segundo tamaño dentro de la TU del primer tamaño, o la TU originalmente del segundo tamaño (152). Independientemente de si la TU es del primer tamaño o del segundo tamaño, las técnicas de esta divulgación permiten que la unidad de descodificación por entropía 80 descodifique por entropía los coeficientes asociados con la TU en base al mismo modelo de contexto conjunto. Las técnicas, por lo tanto, reducen la cantidad de memoria necesaria para almacenar contextos y probabilidades en el descodificador de vídeo 30, y reducir los costes computacionales de mantener modelos de contexto en el descodificador de vídeo 30.
[0137] La unidad de modelado de contexto 104 dentro de la unidad de descodificación por entropía 80 selecciona un contexto para cada coeficiente asociado con la TU de acuerdo con el modelo de contexto conjunto compartido por la TU que tiene el primer tamaño con coeficientes puestos a cero para generar el bloque de coeficientes retenidos que tiene el segundo tamaño, y una TU que tiene el segundo tamaño (154). Más específicamente, la unidad de modelado de contexto 104 puede asignar un contexto a un coeficiente codificado posterior asociado con el bloque de coeficientes retenidos de la primera TU en base a valores de coeficientes vecinos previamente descodificados del bloque de coeficientes retenidos de acuerdo con el modelo de contexto conjunto. La unidad de modelado de contexto 104 puede a continuación determinar una estimación de probabilidad para un valor (por ejemplo, 0 o 1) del coeficiente codificado asociado con el contexto asignado en el modelo de contexto conjunto dentro del almacén de modelo de contexto conjunto 106. La unidad de modelado de contexto 104 retroalimenta la probabilidad determinada asociada con el contexto seleccionado para el coeficiente codificado a la unidad de codificación aritmética 102. La unidad de codificación aritmética 102 a continuación descodifica aritméticamente el coeficiente codificado en el bloque de coeficientes retenidos dentro de la TU del primer tamaño, o la TU del segundo tamaño en base al contexto seleccionado (156).
[0138] Después de la descodificación, la unidad de descodificación aritmética 102 alimenta los valores descodificados reales de los coeficientes a la unidad de modelado de contexto 104. La unidad de modelo de contexto 104 puede actualizar la estimación de probabilidad del modelo de contexto conjunto en base a valores descodificados reales de los coeficientes dentro del bloque de coeficientes retenidos del segundo tamaño dentro de la TU del primer tamaño, o la TU originalmente del segundo tamaño (158). En un caso, el descodificador de vídeo 30 puede usar la unidad de transformada inversa 88 para transformar inversamente los coeficientes del bloque de coeficientes retenidos que tiene el segundo tamaño dentro de la TU que tiene el primer tamaño en datos de vídeo residuales (160). De esta manera, la unidad de transformada inversa 88 puede generar la TU que tiene el primer tamaño incluyendo los datos residuales en el bloque de coeficientes retenidos que tiene el segundo tamaño, y añadiendo ceros que representan los datos residuales restantes en la TU. En otro caso, el descodificador de vídeo 30 puede usar la unidad de transformada inversa 88 para transformar inversamente los coeficientes dentro de la TU que tiene el segundo tamaño en datos de vídeo residuales (162).
[0139] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, programas informáticos, firmware o cualquier combinación de los mismos. Si se implementan en programa informático, las funciones se pueden almacenar en o transmitir a través de un medio legible por ordenador como una o más instrucciones o código, y ejecutarse mediante 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 unos 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. 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 esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0140] 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 otro origen remoto 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. Sin embargo, se debe 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 refieren a medios de almacenamiento tangibles no transitorios. El término disco, como se usa en el presente documento, incluye el disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde algunos discos normalmente reproducen datos magnéticamente, mientras que otros discos reproducen datos ópticamente con láseres. Las combinaciones de lo anterior se deben incluir también dentro del alcance de los medios legibles por ordenador.
[0141] 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 pueden ejecutar las instrucciones. En consecuencia, el término "procesador", como se usa en el presente documento, se puede referir a cualquier estructura anterior 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 en módulos de hardware y/o de programa informático dedicados configurados para la codificación y la descodificación, 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 esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En esta 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 ha descrito anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar mediante un grupo de unidades de hardware interoperativas, incluyendo uno o más procesadores, como se describe anteriormente, junto con programas informáticos y/o firmware adecuados.

Claims (13)

REIVINDICACIONES
1. Un procedimiento de codificación de datos de vídeo residuales, comprendiendo el procedimiento:
mantener una pluralidad de modelos de contexto que incluye un modelo de contexto conjunto usado para dos o más tamaños de unidad de transformada, incluyendo además la pluralidad de modelos de contexto uno o más modelos de contexto que se usan cada uno para un tamaño de unidad de transformada diferente, comprendiendo el modelo de contexto conjunto probabilidades compartidas, en el que el modelo de contexto conjunto es compartido por una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño, en el que el primer tamaño es 16x16 y el segundo tamaño es 32x32, y en el que cada una de las unidades de transformada comprende un unidad de datos de bloque de vídeo residuales;
seleccionar (122) contextos para componentes de un mapa de significancia para coeficientes asociados con una de la primera unidad de transformada y la segunda unidad de transformada de acuerdo con el modelo de contexto conjunto; y
codificar por entropía (124) los componentes del mapa de significancia asociados con una de las unidades de transformada en base a los contextos seleccionados usando una técnica de codificación por entropía distinta de la codificación de longitud variable adaptativa según el contexto, CAVLC.
2. El procedimiento de la reivindicación 1, que comprende además: transformar (120, 121) los datos de vídeo residuales en los coeficientes dentro de una de la primera unidad de transformada que tiene el primer tamaño y la segunda unidad de transformada que tiene el segundo tamaño.
3. Un procedimiento de descodificación de datos de vídeo residuales, comprendiendo el procedimiento:
mantener una pluralidad de modelos de contexto que incluye un modelo de contexto conjunto usado para dos o más tamaños de unidad de transformada, incluyendo además la pluralidad de modelos de contexto uno o más modelos de contexto que se usan cada uno para un tamaño de unidad de transformada diferente, comprendiendo el modelo de contexto conjunto probabilidades compartidas, en el que el modelo de contexto conjunto es compartido por una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño, en el que el primer tamaño es 16x16 y el segundo tamaño es 32x32, y en el que cada una de las unidades de transformada comprende un unidad de datos de bloque de vídeo residuales;
seleccionar (132) contextos para componentes de un mapa de significancia codificado para coeficientes asociados con una de la primera unidad de transformada y la segunda unidad de transformada de acuerdo con el modelo de contexto conjunto; y
descodificar por entropía (134) los componentes del mapa de significancia codificado asociados con una de las unidades de transformada en base a los contextos seleccionados usando una técnica de codificación por entropía distinta de la codificación de longitud variable adaptativa según el contexto, CAVLC.
4. El procedimiento de la reivindicación 3, que comprende además: recibir (130) un flujo de bits que representa el mapa de significancia codificado para los coeficientes asociados con una de la primera unidad de transformada que tiene el primer tamaño y la segunda unidad de transformada que tiene el segundo tamaño; y en el que la descodificación por entropía de los componentes del mapa de significancia codificado usa la codificación aritmética binaria adaptativa según el contexto en base a los contextos seleccionados.
5. El procedimiento de la reivindicación 1 o la reivindicación 3, en el que la selección de contextos para componentes del mapa de significancia para los coeficientes de acuerdo con el modelo de contexto conjunto comprende:
asignar un contexto en el modelo de contexto conjunto a un componente dado de los componentes del mapa de significancia en base a valores de coeficientes vecinos previamente codificados de la una de las unidades de transformada;
determinar una estimación de probabilidad para un valor del un componente dado de los componentes del mapa de significancia asociados con el contexto asignado en el modelo de contexto conjunto; y
actualizar la estimación de probabilidad asociada con el contexto asignado en el modelo de contexto conjunto en base a valores codificados reales de componentes del mapa de significancia para coeficientes de la primera unidad de transformada que tiene el primer tamaño y la segunda unidad de transformada que tiene el segundo tamaño.
6. El procedimiento de la reivindicación 1 o la reivindicación 3, en el que la selección de contextos de acuerdo con el modelo de contexto conjunto comprende:
asignar un contexto en el modelo de contexto conjunto a un primer componente de un primer mapa de significancia para un primer coeficiente de la primera unidad de transformada que tiene el primer tamaño en base a valores de coeficientes vecinos previamente codificados de la primera unidad de transformada;
determinar una estimación de probabilidad para un valor del primer componente del primer mapa de significancia asociado con el contexto asignado en el modelo de contexto conjunto;
actualizar la estimación de probabilidad asociada con el contexto asignado en el modelo de contexto conjunto en base a un valor codificado real del primer componente del primer mapa de significancia para el primer coeficiente de la primera unidad de transformada;
asignar el mismo contexto en el modelo de contexto conjunto a un segundo componente de un segundo mapa de significancia para un segundo coeficiente de la segunda unidad de transformada que tiene el segundo tamaño en base a valores de coeficientes vecinos previamente codificados de la segunda unidad de transformada;
determinar una estimación de probabilidad para un valor del segundo componente del segundo mapa de significancia asociado con el mismo contexto asignado en el modelo de contexto conjunto; y
actualizar la estimación de probabilidad asociada con el mismo contexto asignado en el modelo de contexto conjunto en base a un valor codificado real del segundo componente del segundo mapa de significancia para el segundo coeficiente de la segunda unidad de transformada.
7. Un dispositivo (12) para codificar datos de vídeo residuales, comprendiendo el dispositivo:
medios para mantener una pluralidad de modelos de contexto que incluye un modelo de contexto conjunto usado para dos o más tamaños de unidad de transformada, incluyendo además la pluralidad de modelos de contexto uno o más modelos de contexto que se usan cada uno para un tamaño de unidad de transformada diferente, comprendiendo el modelo de contexto conjunto probabilidades compartidas, en el que el modelo de contexto conjunto es compartido por una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño, en el que el primer tamaño es 16x16 y el segundo tamaño es 32x32, y en el que cada una de las unidades de transformada comprende un unidad de datos de bloque de vídeo residuales;
medios para seleccionar (122) contextos para componentes de un mapa de significancia para coeficientes asociados con una de la primera unidad de transformada y la segunda unidad de transformada de acuerdo con el modelo de contexto conjunto; y
medios (56) para codificar por entropía (124) los componentes del mapa de significancia asociados con una de las unidades de transformada en base a los contextos seleccionados usando una técnica de codificación por entropía distinta de la codificación de longitud variable adaptativa según el contexto, CAVLC.
8. El dispositivo de la reivindicación 7, que comprende además: medios para transformar (120, 121) los datos de vídeo residuales en los coeficientes dentro de una de la primera unidad de transformada que tiene el primer tamaño y la segunda unidad de transformada que tiene el segundo tamaño.
9. Un dispositivo (14) para descodificar datos de vídeo residuales, comprendiendo el dispositivo:
medios para mantener una pluralidad de modelos de contexto que incluye un modelo de contexto conjunto usado para dos o más tamaños de unidad de transformada, incluyendo además la pluralidad de modelos de contexto uno o más modelos de contexto que se usan cada uno para un tamaño de unidad de transformada diferente, comprendiendo el modelo de contexto conjunto probabilidades compartidas, en el que el modelo de contexto conjunto es compartido por una primera unidad de transformada que tiene un primer tamaño y una segunda unidad de transformada que tiene un segundo tamaño, en el que el primer tamaño es 16x16 y el segundo tamaño es 32x32, y en el que cada una de las unidades de transformada comprende un unidad de datos de bloque de vídeo residuales;
medios para seleccionar (132) contextos para componentes de un mapa de significancia codificado para coeficientes asociados con una de la primera unidad de transformada y la segunda unidad de transformada de acuerdo con el modelo de contexto conjunto; y
medios (80) para descodificar por entropía (134) los componentes del mapa de significancia codificado asociados con una de las unidades de transformada en base a los contextos seleccionados usando una técnica de codificación por entropía distinta de la codificación de longitud variable adaptativa según el contexto, CAVLC.
10. El dispositivo de la reivindicación 9, que comprende además: medios para recibir (130) un flujo de bits que representa el mapa de significancia codificado para los coeficientes asociados con la una de la primera unidad de transformada que tiene el primer tamaño y la segunda unidad de transformada que tiene el segundo tamaño.
11. El dispositivo de la reivindicación 7 o la reivindicación 9, que comprende además:
medios para asignar un contexto en el modelo de contexto conjunto a un componente dado de los componentes del mapa de significancia en base a valores de coeficientes vecinos previamente codificados de la una de las unidades de transformada;
medios para determinar una estimación de probabilidad para un valor del un componente dado de los componentes del mapa de significancia asociados con el contexto asignado en el modelo de contexto conjunto; y
medios para actualizar la estimación de probabilidad asociada con el contexto asignado en el modelo de contexto conjunto en base a valores codificados reales de componentes del mapa de significancia para coeficientes de la primera unidad de transformada que tiene el primer tamaño y la segunda unidad de transformada que tiene el segundo tamaño.
12. El dispositivo de la reivindicación 7 o la reivindicación 9, que comprende además:
medios para asignar un contexto en el modelo de contexto conjunto a un primer componente de un primer mapa de significancia para un primer coeficiente de la primera unidad de transformada que tiene el primer tamaño en base a valores de coeficientes vecinos previamente codificados de la primera unidad de transformada;
medios para determinar una estimación de probabilidad para un valor del primer componente del primer mapa de significancia asociado con el contexto asignado en el modelo de contexto conjunto;
medios para actualizar la estimación de probabilidad asociada con el contexto asignado en el modelo de contexto conjunto en base a un valor codificado real del primer componente del primer mapa de significancia para el primer coeficiente de la primera unidad de transformada;
medios para asignar el mismo contexto en el modelo de contexto conjunto a un segundo componente de un segundo mapa de significancia para un segundo coeficiente de una segunda unidad de transformada que tiene el segundo tamaño en base a valores de coeficientes vecinos previamente codificados de la segunda unidad de transformada;
medios para determinar una estimación de probabilidad para un valor del segundo componente del segundo mapa de significancia asociado con el mismo contexto asignado en el modelo de contexto conjunto; y
medios para actualizar la estimación de probabilidad asociada con el mismo contexto asignado en el modelo de contexto conjunto en base a un valor codificado real del segundo componente del segundo mapa de significancia para el segundo coeficiente de la segunda unidad de transformada.
13. Un medio legible por ordenador que comprende instrucciones para codificar datos de vídeo que, cuando se ejecutan por un procesador, provocan que el procesador lleve a cabo un procedimiento de acuerdo con cualquiera de las reivindicaciones 1 a 6.
ES11768258T 2010-10-01 2011-09-30 Coeficientes de codificación por entropía usando un modelo de contexto conjunto Active ES2761301T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US38917010P 2010-10-01 2010-10-01
US13/249,079 US8913666B2 (en) 2010-10-01 2011-09-29 Entropy coding coefficients using a joint context model
US13/249,020 US8902988B2 (en) 2010-10-01 2011-09-29 Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model
PCT/US2011/054425 WO2012045041A1 (en) 2010-10-01 2011-09-30 Entropy coding coefficients using a joint context model

Publications (1)

Publication Number Publication Date
ES2761301T3 true ES2761301T3 (es) 2020-05-19

Family

ID=44789642

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11768258T Active ES2761301T3 (es) 2010-10-01 2011-09-30 Coeficientes de codificación por entropía usando un modelo de contexto conjunto

Country Status (20)

Country Link
US (2) US8902988B2 (es)
EP (1) EP2622861B1 (es)
JP (1) JP5788517B2 (es)
KR (1) KR101528085B1 (es)
CN (1) CN103181169B (es)
AU (1) AU2011308538B2 (es)
BR (1) BR112013007302B1 (es)
CA (1) CA2812313C (es)
DK (1) DK2622861T3 (es)
ES (1) ES2761301T3 (es)
HU (1) HUE046649T2 (es)
IL (1) IL225401A (es)
MY (1) MY168311A (es)
PL (1) PL2622861T3 (es)
PT (1) PT2622861T (es)
RU (1) RU2556465C2 (es)
SG (1) SG189037A1 (es)
SI (1) SI2622861T1 (es)
UA (1) UA106937C2 (es)
WO (2) WO2012045037A2 (es)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9076239B2 (en) * 2009-04-30 2015-07-07 Stmicroelectronics S.R.L. Method and systems for thumbnail generation, and corresponding computer program product
US9497472B2 (en) * 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
US9049444B2 (en) 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US10992958B2 (en) 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
US8755620B2 (en) 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
US8687904B2 (en) * 2011-01-14 2014-04-01 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding
JPWO2012120908A1 (ja) * 2011-03-09 2014-07-17 パナソニック株式会社 動画像符号化装置および動画像符号化方法
JP5395307B2 (ja) * 2011-03-09 2014-01-22 パナソニック株式会社 動画像復号化装置および動画像復号化方法
CN107529706B (zh) * 2011-06-16 2020-11-17 Ge视频压缩有限责任公司 解码器、编码器、解码和编码视频的方法及存储介质
US20130003858A1 (en) * 2011-06-30 2013-01-03 Vivienne Sze Simplified Context Selection For Entropy Coding of Transform Coefficient Syntax Elements
US9392301B2 (en) * 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
JPWO2013046504A1 (ja) * 2011-09-29 2015-03-26 パナソニックIpマネジメント株式会社 算術復号装置、画像復号装置、および算術復号方法
US8891630B2 (en) 2011-10-24 2014-11-18 Blackberry Limited Significance map encoding and decoding using partition set based context assignment
BR112014011149A2 (pt) 2011-11-08 2017-05-16 Motorola Mobility Llc dispositivos e métodos para codificação e / ou de sinalização de deslocamento adaptativo de amostra
US9955153B2 (en) 2012-01-05 2018-04-24 Google Technology Holdings LLC Devices and methods for sample adaptive offset coding
WO2013103892A1 (en) 2012-01-05 2013-07-11 General Instrument Corporation Devices and methods for sample adaptive offset coding and/or selection of edge offset parameters
US20130182772A1 (en) 2012-01-13 2013-07-18 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
US9654772B2 (en) 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US9106918B2 (en) 2012-01-20 2015-08-11 Sony Corporation Coefficient coding harmonization in HEVC
CN107257462B (zh) * 2012-03-26 2020-04-28 Jvc 建伍株式会社 图像解码装置、图像解码方法、接收装置
US9549176B2 (en) * 2012-04-06 2017-01-17 Google Technology Holdings LLC Devices and methods for signaling sample adaptive offset (SAO) parameters
EP3174295B1 (en) 2012-04-13 2018-12-12 GE Video Compression, LLC Low delay picture coding
CN105187843B (zh) 2012-04-13 2018-06-12 Jvc建伍株式会社 图像解码装置、图像解码方法、接收装置及接收方法
RU2616166C2 (ru) * 2012-05-25 2017-04-12 Сан Пэтент Траст Способ кодирования изображений, способ декодирования изображений, устройство кодирования изображений, устройство декодирования изображений и устройство кодирования и декодирования изображений
JP6242385B2 (ja) 2012-05-29 2017-12-06 寰發股▲ふん▼有限公司HFI Innovation Inc. サンプルアダプティブオフセット情報(SampleAdaptiveOffsetInformation)の符号化の方法と装置
TWI606719B (zh) * 2012-05-31 2017-11-21 Jvc Kenwood Corp Video encoding device, video encoding method, and video encoding program
CN107707925B (zh) 2012-06-08 2020-08-18 太阳专利托管公司 图像编码方法和图像编码装置
WO2013187060A1 (ja) * 2012-06-12 2013-12-19 パナソニック株式会社 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置
US9307264B2 (en) * 2012-06-22 2016-04-05 Sharp Kabushiki Kaisha Arithmetic decoding device, arithmetic coding device, image decoding apparatus, and image coding apparatus
AU2013273686B2 (en) * 2012-06-27 2017-03-02 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
CN115442626A (zh) 2012-06-29 2022-12-06 Ge视频压缩有限责任公司 视频数据流、编码器、编码视频内容的方法以及解码器
US9344742B2 (en) * 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
US9794569B2 (en) 2013-01-30 2017-10-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
US9554152B2 (en) 2013-07-12 2017-01-24 Qualcomm Incorporated Concurrent processing of horizontal and vertical transforms
US9628800B2 (en) 2013-11-18 2017-04-18 Qualcomm Incorporated Adaptive control for transforms in video coding
US9432696B2 (en) * 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
US9516345B2 (en) 2014-03-17 2016-12-06 Qualcomm Incorporated Systems and methods for low complexity forward transforms using mesh-based calculations
US10063889B2 (en) * 2014-10-28 2018-08-28 Sony Corporation Image processing system with conditional coding and method of operation thereof
WO2016184399A1 (en) * 2015-05-19 2016-11-24 Mediatek Inc. Method and apparatus for multi-table based context adaptive binary arithmetic coding
WO2017041271A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
EP3306924A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to picture data
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11347764B1 (en) * 2016-12-31 2022-05-31 Teradata Us, Inc. Time series table compression
US10194147B2 (en) * 2017-01-19 2019-01-29 Google Llc DC coefficient sign coding scheme
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US10587880B2 (en) 2017-03-30 2020-03-10 Qualcomm Incorporated Zero block detection using adaptive rate model
US10469877B1 (en) * 2017-04-28 2019-11-05 Mozilla Corporation Systems and methods for reduced complexity entropy coding
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US11134272B2 (en) * 2017-06-29 2021-09-28 Qualcomm Incorporated Memory reduction for non-separable transforms
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
EP3503557A1 (en) * 2017-12-22 2019-06-26 Thomson Licensing Method and apparatus for video encoding and decoding based on context switching
US10298895B1 (en) * 2018-02-15 2019-05-21 Wipro Limited Method and system for performing context-based transformation of a video
JP7334726B2 (ja) * 2018-03-28 2023-08-29 ソニーグループ株式会社 画像処理装置及び画像処理方法
EP3562156A1 (en) * 2018-04-27 2019-10-30 InterDigital VC Holdings, Inc. Method and apparatus for adaptive context modeling in video encoding and decoding
KR20200039591A (ko) 2018-10-05 2020-04-16 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020073884A1 (en) 2018-10-08 2020-04-16 Mediatek Singapore Pte. Ltd. Method and apparatus of last significant coefficient coding in image and video coding
WO2020130514A1 (ko) * 2018-12-17 2020-06-25 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수 스캔 순서를 결정하는 방법 및 장치
US10904563B2 (en) * 2019-01-02 2021-01-26 Tencent America LLC Method and apparatus for improved zero out transform
US11677955B2 (en) * 2019-01-15 2023-06-13 Lg Electronics Inc. Image decoding method for coding residual information on basis of high frequency zeroing in image coding system, and device therefor
KR20210102468A (ko) * 2019-02-06 2021-08-19 엘지전자 주식회사 축소된 변환을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
CN109831670B (zh) * 2019-02-26 2020-04-24 北京大学深圳研究生院 一种反量化方法、系统、设备及计算机可读介质
CN114143548B (zh) * 2019-03-11 2023-02-14 北京达佳互联信息技术有限公司 视频编解码中变换系数的编解码
JP2020150340A (ja) * 2019-03-11 2020-09-17 キヤノン株式会社 画像符号化装置、画像符号化方法、及びプログラム
JP2020150338A (ja) 2019-03-11 2020-09-17 キヤノン株式会社 画像復号装置、画像復号方法、及びプログラム
US20220046246A1 (en) * 2019-03-12 2022-02-10 Lg Electronics Inc. Transform-based image coding method and device therefor
US20220277491A1 (en) * 2019-05-31 2022-09-01 Electronics And Telecommunications Research Institute Method and device for machine learning-based image compression using global context
KR20220021486A (ko) * 2019-06-19 2022-02-22 소니그룹주식회사 화상 처리 장치 및 방법
MX2022001645A (es) * 2019-08-08 2022-04-06 Lg Electronics Inc Metodo de codificacion de video con base en transformacion, y dispositivo para el mismo.
WO2021055640A1 (en) * 2019-09-17 2021-03-25 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatuses for lossless coding modes in video coding
WO2021062019A1 (en) * 2019-09-24 2021-04-01 Beijing Dajia Internet Information Technology Co., Ltd. Lossless coding modes for video coding
EP4118823A1 (en) * 2020-03-12 2023-01-18 InterDigital VC Holdings France Method and apparatus for video encoding and decoding
CN111182298B (zh) * 2020-03-18 2022-04-12 广州市百果园信息技术有限公司 一种编码模式的确定方法、装置、设备和存储介质
US20220109863A1 (en) * 2020-10-02 2022-04-07 Tencent America LLC Method and apparatus for video coding
CN113079378B (zh) * 2021-04-15 2022-08-16 杭州海康威视数字技术股份有限公司 图像处理方法、装置和电子设备
US20230100895A1 (en) * 2021-09-24 2023-03-30 Mediatek Inc. Video processing circuit for performing size-based parallel in parallel out computation with bubble cycle reduction
CN115278360B (zh) * 2022-07-18 2023-11-07 天翼云科技有限公司 一种视频数据处理方法及电子设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE468736B (sv) 1991-11-15 1993-03-08 Televerket Foerfarande och apparat foer bildkodning med oeverhoppning av bilder och/eller komponenter
CA2156889C (en) * 1994-09-30 1999-11-02 Edward L. Schwartz Method and apparatus for encoding and decoding data
US7062098B1 (en) 2000-05-12 2006-06-13 International Business Machines Corporation Method and apparatus for the scaling down of data
JP4230188B2 (ja) 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
WO2006004847A2 (en) * 2004-06-30 2006-01-12 Comet Video Technology Method of data compression including compression of video data
WO2006118288A1 (ja) * 2005-05-03 2006-11-09 Matsushita Electric Industrial Co., Ltd. 動画像符号化方法、動画像復号化方法およびその装置
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
US7535387B1 (en) * 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
EP2257072A1 (en) 2009-05-27 2010-12-01 Nxp B.V. Image and video coding
KR20120046727A (ko) * 2009-08-06 2012-05-10 파나소닉 주식회사 부호화 방법, 복호 방법, 부호화 장치 및 복호 장치
CN102884792B (zh) 2010-05-12 2016-08-17 汤姆森许可贸易公司 用于统一显著图编码的方法和设备
KR20120032457A (ko) 2010-09-28 2012-04-05 삼성전자주식회사 영상의 변환 방법 및 장치, 역변환 방법 및 장치
US9378185B2 (en) 2010-09-30 2016-06-28 Texas Instruments Incorporated Transform and quantization architecture for video coding and decoding
US20130003856A1 (en) 2011-07-01 2013-01-03 Samsung Electronics Co. Ltd. Mode-dependent transforms for residual coding with low latency
US10642921B2 (en) 2011-11-03 2020-05-05 Texas Instruments Incorporated Unified forward and inverse transform architecture
EP2777287A2 (en) 2011-11-07 2014-09-17 VID SCALE, Inc. Video and data processing using even-odd integer transforms background
US9179162B2 (en) 2011-12-02 2015-11-03 Futurewei Technologies, Inc. Image transform zero coefficient selection and zero-skip transmission for arbitrary shape transform coding

Also Published As

Publication number Publication date
AU2011308538A1 (en) 2013-05-02
IL225401A0 (en) 2013-06-27
US20120082231A1 (en) 2012-04-05
WO2012045037A3 (en) 2012-05-18
BR112013007302A2 (pt) 2016-07-05
EP2622861A1 (en) 2013-08-07
IL225401A (en) 2017-02-28
MY168311A (en) 2018-10-30
KR20130095289A (ko) 2013-08-27
BR112013007302B1 (pt) 2022-02-15
RU2556465C2 (ru) 2015-07-10
JP5788517B2 (ja) 2015-09-30
US20120082232A1 (en) 2012-04-05
AU2011308538B2 (en) 2015-06-18
SG189037A1 (en) 2013-05-31
JP2013543317A (ja) 2013-11-28
US8902988B2 (en) 2014-12-02
SI2622861T1 (sl) 2020-01-31
RU2013119914A (ru) 2014-11-20
CA2812313A1 (en) 2012-04-05
DK2622861T3 (da) 2019-11-25
PT2622861T (pt) 2019-12-17
US8913666B2 (en) 2014-12-16
CA2812313C (en) 2016-05-24
KR101528085B1 (ko) 2015-06-10
WO2012045041A1 (en) 2012-04-05
CN103181169A (zh) 2013-06-26
EP2622861B1 (en) 2019-09-11
UA106937C2 (uk) 2014-10-27
WO2012045037A2 (en) 2012-04-05
PL2622861T3 (pl) 2020-04-30
CN103181169B (zh) 2017-05-24
HUE046649T2 (hu) 2020-03-30

Similar Documents

Publication Publication Date Title
ES2761301T3 (es) Coeficientes de codificación por entropía usando un modelo de contexto conjunto
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
ES2973247T3 (es) Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo
ES2864623T3 (es) Codificación de parámetros de cuantificación (QP) en codificación de video
ES2963135T3 (es) Codificación de la posición de un último coeficiente significativo dentro de un bloque de vídeo basándose en un orden de exploración para el bloque en una codificación de vídeo
ES2897708T3 (es) Modelado de contexto eficiente en memoria
ES2611349T3 (es) Codificación de Indicador de bloque codificado (CBF) para el formato de muestra 4:2:2 en codificación de vídeo
ES2648312T3 (es) Relleno de píxeles de borde para intra-predicción en codificación de vídeo
ES2715838T3 (es) Matrices de cuantización de señalización para la codificación de vídeo
ES2693643T3 (es) Exploración dependiente de modo de coeficientes de un bloque de datos de vídeo
ES2633947T3 (es) Predicción de paletas en la codificación de vídeo basada en paleta
ES2656494T3 (es) Filtro intra-suavizante para codificación de vídeo
ES2928248T3 (es) Relleno de segmentos en unidades NAL de la porción codificada
ES2908241T3 (es) Selección de candidatos de modo de fusión unificado y modo de predicción de vector de movimiento adaptable
ES2841424T3 (es) Diseño unificado para esquemas de división de imágenes
ES2750124T3 (es) Elementos sintácticos de señalización para coeficientes de transformada para subconjuntos de una unidad de codificación a nivel de hoja
ES2736312T3 (es) Señalización de imágenes de referencia a largo plazo para codificación de vídeo
ES2886344T3 (es) Predicción residual generalizada para codificación de vídeo escalable y codificación de vídeo 3D
ES2736308T3 (es) Predicción de texturas entre capas para codificación de vídeo
WO2012006574A2 (en) Signaling selected directional transform for video coding
JP2013543317A5 (es)
ES2842082T3 (es) Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa
JP2014523710A (ja) ビデオ・コーディングにおける直交形状変換をスキャンするためのデバイスおよび方法
ES2526053T3 (es) Adaptación del conjunto de posibles transformaciones de frecuencia en base al tamaño del bloque y al modo intra