ES2765807T3 - Codificación modificada para un bloque omitido de transformación para CABAC en HEVC - Google Patents
Codificación modificada para un bloque omitido de transformación para CABAC en HEVC Download PDFInfo
- Publication number
- ES2765807T3 ES2765807T3 ES17165914T ES17165914T ES2765807T3 ES 2765807 T3 ES2765807 T3 ES 2765807T3 ES 17165914 T ES17165914 T ES 17165914T ES 17165914 T ES17165914 T ES 17165914T ES 2765807 T3 ES2765807 T3 ES 2765807T3
- Authority
- ES
- Spain
- Prior art keywords
- block
- electronic device
- encoding
- decoding
- cabac
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un método para decodificar un flujo de bits asociado con Coeficientes Transformados y Cuantificados, TQC, en HEVC, el método que comprende: - obtener el flujo de bits (etapa 2611); - obtener N TQC de un bloque de flujo de bits, en donde el bloque tiene un tamaño de bloque que tiene los N TQC (etapa 2612); - determinar un número de TQC que no son iguales a cero entre los N TQC (etapa 2613); - determinar si el número de TQC que no son iguales a cero del bloque es mayor que un umbral preestablecido, en el que el umbral preestablecido es el 50% de N (etapa 2614); - si el número de TQC que no son iguales a cero del bloque es mayor que el umbral preestablecido: + decodificar los valores de nivel de los TQC no iguales a cero con una decodificación por derivación omitiendo una estimación de contexto y una actualización de probabilidad para la Codificación Aritmética Binaria Adaptativa al Contexto, CABAC (etapa 2616), - si el número de TQC que no son iguales a cero del bloque no es mayor que el umbral preestablecido: + decodificar los valores de nivel de los TQC no iguales a cero con una decodificación habitual usando la estimación de contexto y la actualización de probabilidad para la CABAC (etapa 2615).
Description
DESCRIPCIÓN
Codificación modificada para un bloque omitido de transformación para CABAC en HEVC
Campo técnico
La presente descripción se refiere de manera general a dispositivos electrónicos. Más específicamente, la presente descripción se refiere a dispositivos electrónicos que utilizan Codificación Aritmética Binaria Adaptativa al Contexto (CABAC) mejorada para codificación y/o decodificación.
Antecedentes de la técnica
Muchos decodificadores (y codificadores) reciben (y los codificadores proporcionan) datos codificados para bloques de una imagen. Típicamente, la imagen se divide en bloques y cada uno de los bloques se codifica de alguna manera, tal como usando una transformada de coseno discreta (DCT), y se proporciona al decodificador. Un bloque puede denotar una región rectangular en una imagen y consta de píxeles, por ejemplo, un bloque de 16x16 es una región de 16x píxeles de anchura y 16x píxeles de altura. El decodificador recibe los bloques codificados y decodifica cada uno de los bloques de alguna manera, tal como usando una transformada de coseno discreta inversa.
Los estándares de codificación de video, tales como MPEG-4 parte 10 (H.264), comprimen datos de video para la transmisión sobre un canal con ancho de banda de frecuencia limitado y/o capacidad de almacenamiento limitada. Estos estándares de codificación de video incluyen múltiples etapas de codificación, tales como intra predicción, transformación del dominio espacial al dominio de frecuencia, cuantificación, codificación de entropía, estimación de movimiento y compensación de movimiento, con el fin de codificar y decodificar cuadros de manera más efectiva.
El Equipo Colaborativo Conjunto sobre Codificación de Video (JCT-VC) de la Unión Internacional de Telecomunicaciones del Sector de Estandarización de Telecomunicaciones (UIT-T) Grupo de Estudio 16 (SG16) Grupo de Trabajo 3 (WP3) y Organización Internacional de Normalización/Comisión Electrotécnica Internacional (ISO/IEC) Comité Técnico Conjunto 1/Subcomité 29/Grupo de Trabajo 11 (JTC1/SC29/WG11) ha lanzado un esfuerzo de estandarización para un estándar de codificación de video llamado el estándar de Codificación de Video de Alta Eficiencia (HEVC). Similar a algunos estándares de codificación de video anteriores, HEVC es una codificación basada en bloques. Un ejemplo de un codificador HEVC conocido se muestra en la FIG. 1. Los decodificadores HEVC también son conocidos.
En HEVC, se usa Codificación Aritmética Binaria Adaptativa al Contexto (CABAC) para comprimir los Coeficientes Transformados y Cuantificados (TQC) sin pérdidas. Los TQC se determinan en el codificador procesando bloques de imágenes con una transformación directa para generar coeficientes de transformación que luego se cuantifican usando una operación que asigna múltiples valores de coeficientes de transformación a valores de TQC. Los valores de TQC entonces se comunican al decodificador como valores de Nivel de Coeficiente, o valores de nivel, y el valor de nivel para cada coeficiente entonces se asigna a un valor de coeficiente de transformación que es similar, pero no necesariamente idéntico, al valor del coeficiente de transformación calculado en el codificador. La técnica de codificación y/o decodificación basada en CABAC es generalmente adaptativa al contexto, lo que se refiere a (i) codificar de manera adaptativa símbolos en base a los valores de símbolos anteriores codificados y/o decodificados en el pasado, y (ii) contexto, que identifica el conjunto de símbolos codificados y/o decodificados en el pasado usados para adaptación. Los símbolos pasados se pueden situar en bloques adyacentes espaciales y/o temporales. En muchos casos, el contexto se basa en valores de símbolos de bloques vecinos.
Como se ha mencionado anteriormente, CABAC se puede usar para comprimir los TQC sin pérdidas. A modo de antecedentes, los TQC pueden ser de diferentes tamaños de bloque según los tamaños de transformación (por ejemplo, 4x4, 8x8, 16x16, 32x32, 16x32). Los TQC bidimensionales (2D) se pueden convertir en una agrupación unidimensional (1D) antes de la codificación de entropía. En un ejemplo, los TQC agrupados en 2D en un bloque 4x4 se pueden disponer como se ilustra en la Tabla (1).
Tabla (1)
Cuando se convierten los TQC de 2D en una agrupación 1D, el bloque se puede escanear en forma de zigzag diagonal. Continuando con el ejemplo, los TQC agrupados en 2D ilustrados en la Tabla (1) se pueden convertir en los TQC de agrupación 1D [4, 0, 3, -3, 2, 1, 0, -1, 0, ...] escaneando la primera fila y la primera columna, la primera fila y la segunda columna, la segunda fila y la primera columna, la tercera fila y la primera columna, la segunda fila y la segunda
columna, la primera fila y la tercera columna, la primera fila y la cuarta columna, la segunda fila y la tercera columna, la tercera fila y la segunda columna, la cuarta fila y la primera columna y así sucesivamente.
La agrupación 1D de los TQC se representa por una secuencia de Elementos de Sintaxis (SE) en CABAC. Un ejemplo de la secuencia de SE para el ejemplo de agrupación 1D de los TQC se muestra en la FIG. 2. Los SE representan los siguientes parámetros: Última posición X/Y, Mapa de Importancia y los atributos Mayor que 1, Mayor que 2, Información de Signo y Absoluto -3. La última posición X/Y representa la posición (X/Y) del último coeficiente distinto de cero en el bloque correspondiente. El mapa de importancia representa la importancia de cada coeficiente. Mayor que 1 indica si la amplitud del coeficiente es mayor que uno para cada coeficiente distinto de cero (es decir, con bandera de importancia como 1). Mayor que 2 indica si la amplitud del coeficiente es mayor que dos para cada coeficiente con una amplitud mayor que uno (es decir, con bandera mayor que 1 como 1).
En CABAC en HEVC, los SE representativos se codifican. La FIG. 3 muestra la estructura de CABAC usada para codificar los SE. La técnica de codificación CABAC incluye símbolos de codificación que usan etapas. En la primera etapa, la CABAC usa un “convertidor a binario” para asignar símbolos de entrada a una cadena de símbolos binarios, o “contenedores”. El símbolo de entrada puede ser un símbolo de valor no binario que se convierte a binario o de otro modo se convierte en una cadena de símbolos binarios (1 o 0) antes de ser codificado con bits. Los contenedores se pueden codificar con bits usando o bien un “motor de codificación por derivación” o bien un “motor de codificación habitual”.
Para el motor de codificación habitual en CABAC, en la segunda etapa se selecciona un modelo de probabilidad. El modelo de probabilidad se usa para codificar aritméticamente uno o más contenedores de los símbolos de entrada convertidos a binario. Este modelo se puede seleccionar de una lista de modelos de probabilidad disponibles dependiendo del contexto, que es una función de los símbolos codificados recientemente. El modelo de probabilidad almacena la probabilidad de que un contenedor sea “1” o “0”. En la tercera etapa, un codificador aritmético codifica cada contenedor según el modelo de probabilidad seleccionado. Hay dos intervalos secundarios para cada contenedor, que corresponden a un “0” y a un “1”. La cuarta etapa implica actualizar el modelo de probabilidad. El modelo de probabilidad seleccionado se actualiza en base al valor de contenedor codificado real (por ejemplo, si el valor de contenedor fuera un “1”, el recuento de frecuencia de los “1” aumenta). La técnica de decodificación para la decodificación CABAC invierte el proceso.
Para el motor de codificación por derivación en CABAC, la segunda etapa implica la conversión de contenedores a bits, omitiendo las etapas de actualización de estimación y probabilidad de contexto computacionalmente costosas. El motor de codificación por derivación supone una distribución de probabilidad fija para los contenedores de entrada. La técnica de decodificación para la decodificación CABAC invierte el proceso.
La CABAC codifica los símbolos conceptualmente usando dos etapas. En la primera etapa, la CABAC realiza una conversión a binario de los símbolos de entrada a los contenedores. En la segunda etapa, la CABAC realiza una conversión de los contenedores a bits usando o bien el motor de codificación por derivación o bien el motor de codificación habitual. Los valores de bits codificados resultantes se proporcionan en el flujo de bits a un decodificador.
La CABAC decodifica los símbolos conceptualmente usando dos etapas. En la primera etapa, la CABAC usa o bien el motor de decodificación por derivación o bien el motor de decodificación habitual para convertir los bits de entrada en valores de contenedor. En la segunda etapa, la CABAC realiza la desconversión de binario para recuperar el valor del símbolo transmitido para los valores de contenedor. El símbolo recuperado puede ser no binario en su naturaleza. El valor del símbolo recuperado se usa en los aspectos restantes del decodificador.
Como se ha descrito anteriormente, el proceso de codificación y/o decodificación de la CABAC incluye al menos dos modos diferentes de operación. En un primer modo, el modelo de probabilidad se actualiza en base al valor de contenedor codificado real, al que se hace referencia generalmente como “modo de codificación habitual”. El modo de codificación habitual requiere varias operaciones en serie secuenciales junto con su complejidad de cálculo asociada y un tiempo significativo para completarse. En un segundo modo, el modelo de probabilidad no se actualiza en base al valor de contenedor codificado real, al que se hace referencia generalmente como “modo de codificación por derivación”. En el segundo modo, no existe un modelo de probabilidad (distinto quizás una probabilidad fija) para decodificar los contenedores y, por consiguiente, no hay necesidad de actualizar el modelo de probabilidad.
Cuando se utiliza codificación CABAC en HEVC, el rendimiento de la capacidad de procesamiento puede diferir dependiendo de diferentes factores, tales como, pero no limitado a: número total de contenedores/píxeles, número de contenedores/píxeles por derivación y número de contenedores/píxeles codificados habituales (o de contexto). En términos generales, la capacidad de procesamiento para el caso de codificación de alta tasa de bits (valor del Parámetro de Cuantificación (QP) bajo) es significativamente menor que la capacidad de procesamiento en otros casos. Por lo tanto, la capacidad de procesamiento en casos de alta tasa de bits puede consumir una cantidad significativa de recursos de procesamiento y/o tardar una cantidad de tiempo significativa en codificar/decodificar. La descripción que sigue resuelve este y otros problemas.
También es sabido que CABAC se puede usar en un modo de codificación sin pérdidas para comprimir una muestra residual. En un ejemplo, una muestra residual es un valor que corresponde a una localización específica en una
imagen. Típicamente, una muestra residual corresponde a la diferencia entre un valor correspondiente a una localización específica en una imagen y un valor de predicción correspondiente a la misma localización específica en una imagen. Alternativamente, una muestra residual es un valor correspondiente a una localización específica en una imagen que no ha sido procesada con una operación de transformación, o una operación de transformación que no se usa típicamente para crear los TQC. Una muestra residual puede ser de diferentes tamaños de bloque según su tamaño de muestra (4x4, 8x8, 16x16, 32x32, 16x32, etc.) Un bloque de muestra residual de 2D se convierte primero en una agrupación 1D antes de la codificación de entropía, similar a la codificación de TQC. En un ejemplo, una muestra residual agrupada en 2D en un bloque 4x4 se puede disponer como se ilustra en la Tabla (2).
Tabla (2)
Cuando se convierte la muestra residual 2D en una agrupación 1D, el bloque se puede escanear en forma de zigzag diagonal. Continuando con el ejemplo, la muestra residual agrupada 2D ilustrada en la Tabla (2) se puede convertir en una muestra residual agrupada 1d [4, 0, 3, -3, 2, 1, 0, -1, 0, ...] escaneando la primera fila y la primera columna, la primera fila y la segunda columna, la segunda fila y la primera columna, la tercera fila y la primera columna, la segunda fila y la segunda columna, la primera fila y la tercera columna, la primera fila y la cuarta columna, la segunda fila y la tercera columna, la tercera fila y la segunda columna, la cuarta fila y la primera columna, y así sucesivamente.
La agrupación 1D de la muestra residual se representa por una secuencia de Elementos de Sintaxis (SE) en CABAC. Un ejemplo de una secuencia de SE para el ejemplo de agrupación 1D de la muestra residual se muestra en la FIG.
11. Los SE representan los siguientes parámetros: Última posición X/Y, Mapa de Importancia y los atributos Mayor que 1, Mayor que 2, Información de Signo y Absoluto -3.
En el modo de codificación sin pérdidas de CABAC en HEVC, se codifican los SE representativos. La estructura de CABAC de la FIG. 3 se puede usar para codificar los SE. La técnica de codificación CABAC incluye codificar símbolos usando etapas. En la primera etapa, la CABAC usa un “convertidor a binario” para asignar símbolos de entrada a una cadena de símbolos binarios, o “contenedores”. El símbolo de entrada puede ser un símbolo de valor no binario que se convierte a binario o se convierte de otro modo en una cadena de símbolos binarios (1 o 0) antes de ser codificado en bits. Los contenedores se pueden codificar en bits usando el “motor de codificación habitual” descrito anteriormente.
Para el motor de codificación habitual en el modo de codificación sin pérdidas de CABAC, en la segunda etapa se selecciona un modelo de probabilidad (también conocido como “modelo de contexto” en el modo de codificación sin pérdidas de CABAC). El modelo se usa para codificar aritméticamente uno o más contenedores de los símbolos de entrada convertidos a binario. Este modelo se puede seleccionar de una lista de modelos disponibles dependiendo del contexto, que es una función de símbolos codificados recientemente. El modelo almacena la probabilidad de que un contenedor sea “1” o “0”. En la tercera etapa, un codificador aritmético codifica cada contenedor según el modelo seleccionado. Hay dos intervalos secundarios para cada contenedor, que corresponden a un “0” y a un “1”. La cuarta etapa implica actualizar el modelo. El modelo seleccionado se actualiza en base al valor de contenedor codificado real (por ejemplo, si el valor de contenedor fuera un “1”, el recuento de frecuencia de los “1” aumenta). La técnica de decodificación para la decodificación CABAC invierte el proceso.
El número de modelos usados como se describe en el párrafo anterior puede ser de 184. Específicamente: 36 modelos usados para la Ultima posición X/Y (18 modelos para Última_posición_X, 18 modelos para Última_posición_Y); 48 modelos utilizados para Mapa de Importancia (bloque 4x4: 9 luma, 6 croma; bloque 8x8: 11 luma, 11 croma; bloque 16x16 o 32x32: 7 luma, 4 croma); y 100 modelos usados para los atributos Mayor que 1, Mayor que 2, Información de Signo y Absoluto -3 (bandera Mayor_que_1 de luma: 30; bandera Mayor_que_1 de croma 20, bandera Mayor_que_2 de luma: 30; y bandera Mayor_que_2 de croma 20).
Por ejemplo, Tung Nguyen et al: “Reduced-complexity entropy coding of transform coefficient levels using truncated golomb-rice codes in video compression” Procesamiento de imágenes (ICIP), 2011, 18a Conferencia Internacional del IEEE, IEEE, se refiere a una combinación de códigos simples de longitud variable y codificación binaria adaptativa al contexto, que produce la misma eficiencia de codificación que la codificación de coeficiente de transformación H.2647AVC a un nivel de complejidad más bajo y que se ha adoptado en el modelo de prueba de HEVC.
Cuando se utiliza la codificación CABAC en HEVC en el modo de codificación sin pérdidas, la codificación/decodificación es computacionalmente compleja. Una razón para la complejidad de cálculo es el uso de 184 modelos, como se ha explicado anteriormente. Debido a esta complejidad de cálculo, la codificación/decodificación puede consumir una cantidad significativa de recursos de procesamiento y/o puede tardar una cantidad de tiempo significativa en completarse. La descripción que sigue resuelve este y otros problemas.
Compendio de la invención
En un primer aspecto, se proporciona un método para decodificar un flujo de bits asociado con Coeficientes Transformados y Cuantificados, TQC, en HEVC, el método que comprende:
• obtener el flujo de bits;
• obtener N TQC de un bloque del flujo de bits, en donde el bloque tiene un tamaño de bloque que tienen los N TQC;
• determinar un número de TQC que no es igual a cero entre los N TQC;
• determinar si el número de TQC que no es igual a cero del bloque es mayor que un umbral preestablecido, en donde el umbral preestablecido es el 50% de N;
• si el número de TQC que no es igual a cero del bloque es mayor que el umbral preestablecido:
o decodificar los TQC no iguales a cero con una decodificación por derivación omitiendo una estimación de contexto y una actualización de probabilidad para la Codificación Aritmética Binaria Adaptativa al Contexto, Ca BAC
• si el número de TQC que no es igual a cero del bloque no es mayor que el umbral preestablecido:
o decodificar los TQC no iguales a cero con una decodificación habitual usando la estimación de contexto y la actualización de probabilidad para la CABAC.
Breve descripción de los dibujos
La Figura 1 es un diagrama de bloques de un codificador HEVC.
La Figura 2 es una tabla que muestra una secuencia de elementos de sintaxis según CABAC.
La Figura 3 es un diagrama de bloques de la estructura de CABAC para una secuencia de elementos de sintaxis. La Figura 4 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador.
La Figura 5 es un diagrama de flujo que ilustra una configuración de un método para el modo de conversión a binario de alta capacidad de procesamiento en un dispositivo electrónico.
La Figura 6 es un diagrama de flujo que ilustra una configuración de un procesamiento de codificador que usa el modo de conversión a binario de alta capacidad de procesamiento.
La Figura 7 es un diagrama de flujo que ilustra una configuración de un método para el modo de conversión a binario de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación.
La Figura 8 es un diagrama de flujo que ilustra una configuración de un procesamiento de decodificador que usa el modo de conversión a binario de alta capacidad de procesamiento.
La Figura 9 ilustra una tabla de asignación que se puede usar para determinar un valor de entrada en modo de conversión a binario de alta capacidad de procesamiento.
La Figura 10 ilustra una pluralidad de tablas de conversión a binario que se pueden usar para conversión a binario adaptativa en modo de conversión a binario de alta capacidad de procesamiento.
La Figura 11 es una tabla que muestra una secuencia de elementos de sintaxis según un modo de codificación sin pérdidas en CABAC.
La Figura 12 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador para una técnica de codificación sin pérdidas.
La Figura 13 es un diagrama de flujo que ilustra una configuración de un método para codificación sin pérdidas en un dispositivo electrónico.
La Figura 14 es una tabla que muestra una secuencia de elementos de sintaxis según la configuración ilustrada en la Figura 13.
La Figura 15 es un diagrama de flujo que ilustra una configuración de un método para decodificación sin pérdidas en un dispositivo electrónico en el lado de decodificación.
La Figura 16 es un diagrama de flujo que ilustra otra configuración de un método para codificación sin pérdidas en un
dispositivo electrónico.
La Figura 17 es un diagrama de flujo que ilustra otra configuración de un método para codificación sin pérdidas en un dispositivo electrónico en el lado de decodificación.
La Figura 18 es un diagrama de flujo que ilustra otra configuración más de un método para codificación sin pérdidas en un dispositivo electrónico.
La Figura 19 es un diagrama de flujo que ilustra otra configuración más de un método para codificación sin pérdidas en un dispositivo electrónico en el lado de decodificación.
La Figura 20A es un diagrama de flujo que ilustra configuraciones de ejemplo de un codificador o un decodificador para determinar si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento. La Figura 20B es un diagrama de flujo que ilustra configuraciones de ejemplo de un codificador o un decodificador para determinar si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento. La Figura 20C es un diagrama de flujo que ilustra configuraciones de ejemplo de un codificador o un decodificador para determinar si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento. La Figura 20D es un diagrama de flujo que ilustra configuraciones de ejemplo de un codificador o un decodificador para determinar si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento. La Figura 20E es un diagrama de flujo que ilustra configuraciones de ejemplo de un codificador o un decodificador para determinar si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento. La Figura 21 es un diagrama de flujo que ilustra una configuración de un método para determinar si se cumple una condición de modo de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación. La Figura 22 es un diagrama de flujo que ilustra otra configuración de un método para determinar si se cumple una condición de modo de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación. La Figura 23 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador.
La Figura 24 es un diagrama de flujo que ilustra una configuración de un método para decodificación de mapas de importancia de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación.
La Figura 25 es un diagrama de flujo que ilustra otra configuración de un método para la decodificación de mapas de importancia de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación.
La Figura 26 es un diagrama de flujo que ilustra una configuración de un método para la decodificación de mapas de importancia de alta capacidad de procesamiento con un rasgo de decodificación por derivación en un dispositivo electrónico en el lado de decodificación.
La Figura 27 es un diagrama de flujo que ilustra una configuración de un método para decodificación de mapas de importancia de alta capacidad de procesamiento con un rasgo de conmutación de método de decodificación en un dispositivo electrónico en el lado de decodificación.
La Figura 28 es una tabla usada para actualizar un parámetro de Rice según un modo de codificación sin pérdidas en CABAC.
La Figura 29 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador.
La Figura 30 es un diagrama de flujo que ilustra una configuración de un método para codificación sin pérdidas con una selección diferente de parámetros en un dispositivo electrónico.
La Figura 31 es un diagrama de flujo que ilustra una configuración de un método para codificación sin pérdidas con una selección diferente de parámetros en un dispositivo electrónico en el lado de decodificación.
La Figura 32 es un elemento de sintaxis de ejemplo generado según CABAC.
La Figura 33 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador.
La Figura 34 es un diagrama de flujo que ilustra una configuración de un método para codificación de alta capacidad de procesamiento para CABAC en HEVC en un dispositivo electrónico.
La Figura 35 es un diagrama de flujo que ilustra una configuración de un método para la codificación de alta capacidad de procesamiento para CABAC en HEVC en un dispositivo electrónico en el lado de decodificación.
La Figura 36 es un elemento de sintaxis de ejemplo generado según la configuración de la Figura 34.
La Figura 37 es una ilustración de una tabla de actualización de parámetros de Rice reducida.
La Figura 38 es un diagrama de flujo que ilustra una configuración de un método para codificación de alta capacidad de procesamiento para CABAC en HEVC en un dispositivo electrónico en el lado de decodificación.
La Figura 39 es un diagrama de flujo que ilustra una configuración de un método para codificación de alta capacidad de procesamiento para CABAC en HEVC en un dispositivo electrónico en el lado de decodificación.
La Figura 40 es un diagrama de flujo que ilustra una configuración de un método para la codificación de alta capacidad de procesamiento para CABAC en HEVC en un dispositivo electrónico en el lado de decodificación.
Descripción de realizaciones
La Figura 4 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador.
El sistema 400 incluye un codificador 411 para generar bloques codificados para ser decodificados por un decodificador 412. El codificador 411 y el decodificador 412 pueden comunicarse sobre una red.
El codificador 411 incluye un dispositivo electrónico 421 configurado para codificar usando un modo de conversión a binario de alta capacidad de procesamiento. El dispositivo electrónico 421 puede comprender un procesador y una memoria en comunicación electrónica con el procesador, donde la memoria almacena instrucciones que son ejecutables por el procesador para realizar las operaciones mostradas en las Figuras 5 y 6.
El decodificador 412 incluye un dispositivo electrónico 422 configurado para decodificar usando el modo de conversión a binario de alta capacidad de procesamiento. El dispositivo electrónico 422 puede comprender un procesador y una memoria en comunicación electrónica con el procesador, donde la memoria almacena instrucciones que son ejecutables para realizar las operaciones mostradas en las Figuras 7 y 8.
La Figura 5 es un diagrama de flujo que ilustra una configuración de un método para el modo de conversión a binario de alta capacidad de procesamiento en un dispositivo electrónico.
En el bloque 511, el dispositivo electrónico 421 obtiene un bloque de coeficientes transformados y cuantificados (TQC). En el rombo 512, el dispositivo electrónico 421 determina si se cumple una condición de modo de conversión a binario de alta capacidad de procesamiento. Si la condición no se cumple en el rombo 512, entonces en el bloque 513 el dispositivo electrónico 421 codifica el bloque usando selectivamente un modo de codificación habitual y un modo de codificación por derivación (según los esquemas de selección de CABAC convencionales).
Si la condición se cumple en el rombo 512, entonces en el bloque 514 el dispositivo electrónico 421 usa el modo de conversión a binario de alta capacidad de procesamiento y el modo de codificación por derivación para codificar el bloque. El dispositivo electrónico 421 transmite el flujo de bits generado sobre una red y/o almacena el flujo de bits generado en un dispositivo de memoria en el bloque 515.
El modo HTB usa el modo de codificación por derivación para codificar los valores de nivel. A diferencia del modo de codificación habitual, la codificación por derivación omite las etapas de estimación de contexto y de actualización de probabilidad computacionalmente costosas, debido a que el modo de codificación por derivación supone una distribución de probabilidad fija para los contenedores de entrada.
Además de usar el modo de codificación por derivación para la codificación, a modo de contraste con la CABAC convencional, el modo HTB usa una estructura de firma simplificada para la codificación. Por ejemplo, CABAC convencional requiere cuatro partes secundarias para la codificación, incluyendo Mayor_que_1, Mayor_que _2, Información de Signo, y Absoluto -3.
La Figura 6 es un diagrama de flujo que ilustra una configuración de procesamiento de codificador que usa el modo de conversión a binario de alta capacidad de procesamiento.
Los bloques 612-615 ilustran las operaciones realizadas en el bloque 514 con más detalle. En el bloque 612, el dispositivo electrónico 421 genera información de signo y nivel para cualquier valor distinto de cero a partir del bloque de TQC aplicando una función de valor absoluto menos uno a cada valor distinto de cero y comprobando el signo de cada valor distinto de cero. Por facilidad de explicación, consideremos los valores para el TQC agrupado en 1D de la sección de antecedentes de la presente solicitud [4, 0, 3, -3, 2, 1, 0, -1, 0, ...]. La aplicación de la función de valor absoluto menos uno a cada valor distinto de cero y la comprobación del signo de cada valor distinto de cero genera seis combinaciones de información de signo y nivel de la siguiente manera: 3, 2, -2, 1, 0 y -0.
En el bloque 613, el dispositivo electrónico 421 asigna un valor de entrada a cada combinación generada de información de signo y nivel usando una tabla de asignación. Un ejemplo de tabla de asignación se muestra en la FIG.
9. La FIG. 9 también muestra una ecuación para determinar un valor de entrada según los bloques 612 y 613.
En el bloque 614, el dispositivo electrónico 421 realiza una conversión a binario adaptativa de los valores de entrada usando una pluralidad de tablas de conversión a binario, por ejemplo, las tablas VLC de Codificación de Longitud
Variable Adaptativa al Contexto (CAVLC). Un ejemplo de las tablas VLC de CAVLC se muestra en la FIG. 10. La FIG.
10 también muestra una ecuación para actualizar las tablas de conversión a binario en base a la información de entrada anterior.
En un ejemplo, el bloque 614 puede incluir usar inicialmente valores de la columna Tabla VLC 0 (FIG. 10) para convertir a binario al menos el primer valor de entrada. El número de la tabla VLC se puede aumentar de forma monótona cuando un valor anterior es mayor que los valores umbral dados, por ejemplo, 3, 5, 13, 27. Por consiguiente, la conversión a binario adaptativa posterior después del primer aumento monótono puede usar valores de la columna Tabla VLC 1, la conversión a binario adaptativa posterior después del segundo aumento monótono puede usar valores de la columna Tabla VLC 2, etc.
En el bloque 615, el dispositivo electrónico 421 codifica los valores resultantes de la conversión a binario adaptativa usando el modo de codificación por derivación de CABAC.
(Condición de modo de conversión a binario de alta capacidad de procesamiento)
En un ejemplo, si una característica correspondiente a un bloque de datos de imagen es mayor que un umbral preestablecido, entonces se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento, por ejemplo, el dispositivo electrónico 421 puede establecer un indicador de modo de conversión a binario de alta capacidad de procesamiento, por ejemplo, una bandera de modo HTB, a un valor de 1 (que por supuesto puede incluir cambiar un valor por defecto de la bandera de modo HTB o dejar la bandera de modo HTB en un valor por defecto dependiendo de la preferencia de diseño).
En un ejemplo, el dispositivo electrónico 421 determina si una tasa de bits para una codificación es mayor que un umbral preestablecido. Si la tasa de bits es mayor que el umbral preestablecido, entonces se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento. En un ejemplo, el umbral de tasa de bits preestablecido corresponde a QP 16; no obstante, se puede usar un umbral preestablecido correspondiente a diferentes valores de QP.
En un ejemplo, la determinación (por el dispositivo electrónico 421 o el dispositivo electrónico 422) de si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento se basa en si el nivel de la unidad de transformación (por ejemplo, pero no limitado a los valores de nivel generados por una unidad de transformación) de un bloque correspondiente de datos de imagen es mayor que un umbral preestablecido.
En un ejemplo, la condición de modo de conversión a binario de alta capacidad de procesamiento se puede cumplir cuando el número de valores de nivel de un bloque correspondiente de datos de imagen y con magnitud mayor que cero es mayor que un umbral preestablecido, por ejemplo, 8. En otro ejemplo, la condición de modo de conversión a binario de alta capacidad de procesamiento se cumple cuando el número de valores de nivel de un bloque correspondiente de datos de imagen y con magnitud mayor que un primer umbral preestablecido es mayor que un segundo umbral preestablecido. En un ejemplo más, la condición de modo de conversión a binario de alta capacidad de procesamiento se cumple cuando un valor de nivel de un bloque correspondiente de datos de imagen es mayor que un umbral preestablecido.
Las FIG. 20A-E muestran algunos ejemplos de configuraciones que se pueden usar para un codificador o decodificador en sistemas de ejemplo que operan según al menos algunos de los principios descritos en los dos párrafos inmediatamente anteriores. La FIG. 20A ilustra los procesos 1611-1616, como se muestra. La FIG. 20B ilustra los procesos 1711-1716, como se muestra. La FIG. 20C ilustra los procesos 1801-1805 y 1814-1820. La FIG. 20D ilustra los procesos 1901-1905 y 1914-1920. En la FIG. 20E, los procesos de la FIG. 20C se realizan hasta el proceso 1816, como se muestra. Si el contador es mayor que el umbral en el proceso 1816, entonces la configuración continúa como se muestra en la FIG. 20E.
En un ejemplo, la determinación (por el dispositivo electrónico 421 o el dispositivo electrónico 422) de si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento se basa en si el nivel de segmento de un bloque correspondiente de datos de imagen es mayor que un umbral preestablecido.
(Indicador de modo de conversión a binario de alta capacidad de procesamiento)
En un ejemplo, el dispositivo electrónico 421 se configura para establecer un indicador de conversión a binario de alta capacidad de procesamiento, por ejemplo, una bandera de modo HTB, en una cabecera, por ejemplo, la cabecera de segmento. El indicador de conversión a binario de alta capacidad de procesamiento se puede usar para determinar si el proceso mostrado en la FIG. 5 se ejecuta o no para el bloque o bloques correspondientes a la cabecera de segmento.
En un ejemplo, establecer la bandera de modo HTB en “1” hace que el dispositivo electrónico 421 realice el proceso mostrado en el diagrama de flujo de la FIG. 5 para el bloque o bloques correspondientes a la cabecera de segmento en respuesta a la observación del valor de la bandera de modo h Tb de “1”. Establecer la bandera de modo HTB en “0” hace que el dispositivo electrónico 421 codifique el bloque o bloques correspondientes a la cabecera de segmento según una técnica de CABAC convencional en respuesta a la observación del valor de la bandera de modo HTB de “0”.
El valor de la bandera de modo HTB también se puede observar por el dispositivo electrónico 422 para la decodificación. En un ejemplo, el dispositivo electrónico 422 decodifica el bloque o los bloques correspondientes a una cabecera de segmento que tiene el valor de la bandera de modo HTB de “1” según el proceso mostrado en el diagrama de flujo de la FIG. 7 para el bloque o bloques correspondientes a la cabecera de segmento en respuesta a la observación del valor de la bandera de modo HTB de “1”. El dispositivo electrónico 422 decodifica el bloque o bloques correspondientes a una cabecera de segmento que tiene el valor de la bandera de modo HTB de “0” según una técnica de CABAC convencional en respuesta a la observación del valor de la bandera de modo HTB de “0”.
La Figura 7 es un diagrama de flujo que ilustra una configuración de un método para el modo de conversión a binario de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación.
En el bloque 710, el dispositivo electrónico 422 obtiene un flujo de bits. En el bloque 711, el dispositivo electrónico 422 recupera un símbolo binario del flujo de bits obtenido.
En el rombo 712, el dispositivo electrónico 422 determina si se cumple una condición de modo de conversión a binario de alta capacidad de procesamiento. En un ejemplo, la determinación puede incluir comprobar una cabecera, tal como una cabecera de segmento, correspondiente al flujo de bits recibido. Comprobar la cabecera puede comprender además comprobar una cabecera de segmento correspondiente al flujo de bits obtenido para un valor de un indicador de modo de conversión a binario de alta capacidad de procesamiento. Si la condición no se cumple en el rombo 712, entonces en el bloque 713 el dispositivo electrónico 422 decodifica el símbolo binario usando selectivamente el modo de decodificación habitual y el modo de codificación por derivación.
Si la condición se cumple en el rombo 712, entonces en el bloque 714 el dispositivo electrónico 421 usa el modo de conversión a binario de alta capacidad de procesamiento y el modo de decodificación por derivación para decodificar el símbolo binario. El dispositivo electrónico 422 puede almacenar un bloque obtenido de los TQC en un dispositivo de memoria y/o puede recuperar datos de video en el bloque 715.
La Figura 8 es un diagrama de flujo que ilustra una configuración de procesamiento de decodificador que usa el modo de conversión a binario de alta capacidad de procesamiento.
Los bloques 812-815 ilustran operaciones realizadas en el bloque 714 con más detalle. En el bloque 812, el dispositivo electrónico 422 decodifica por derivación el símbolo binario codificado. En el bloque 813, el dispositivo electrónico 422 desconvierte de binario un resultado de la decodificación por derivación. En el bloque 814, el dispositivo electrónico 422 asigna valores de entrada recuperados de la desconversión de binario a información de signo y nivel usando una tabla de asignación. En el bloque 815, el dispositivo electrónico 422 decodifica un bloque de coeficientes transformados y cuantificados (TQC) usando la información de signo y nivel.
En un ejemplo, se proporciona un dispositivo electrónico que incluye un procesador y una memoria en comunicación electrónica con el procesador. Almacenadas en la memoria están las instrucciones ejecutables por el procesador para realizar operaciones.
En un ejemplo, una operación puede incluir la obtención de un bloque de coeficientes transformados y cuantificados (TQC). Otra operación puede incluir determinar si se cumple una condición de modo de conversión a binario de alta capacidad de procesamiento. Otra operación puede incluir generar un primer flujo de bits usando el modo de conversión a binario de alta capacidad de procesamiento en respuesta a la determinación de que se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento. Otra operación puede incluir generar un segundo flujo de bits en respuesta a la determinación de que no se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento. Otra operación puede incluir transmitir el primer o segundo flujo de bits generado a un decodificador.
En un ejemplo, la generación del primer flujo de bits usando el modo de conversión a binario de alta capacidad de procesamiento puede incluir operaciones adicionales. Una operación puede incluir generar información de signo y nivel para cualquier valor distinto de cero del bloque aplicando una función valor absoluto menos uno a cada valor distinto de cero y comprobar el signo de cada valor distinto de cero. Otra operación puede incluir la asignación de un valor de entrada a cada combinación generada de información de signo y nivel usando una tabla de asignación. Otra operación puede incluir realizar una conversión a binario adaptativa de los valores de entrada asignados usando una pluralidad de tablas de conversión a binario. Otra operación puede incluir codificar un resultado de la conversión a binario adaptativa.
En un ejemplo, la pluralidad de tablas de conversión a binario incluye tablas VLC de CAVLC. La codificación del resultado de la conversión a binario adaptativa puede incluir además la operación de utilizar un modo de codificación por derivación de CABAC.
En un ejemplo, la conversión a binario adaptativa de los valores de entrada asignados usando una pluralidad de tablas de conversión a binario puede incluir operaciones adicionales. Una operación puede incluir determinar si uno de los valores de entrada asignados es mayor que un umbral preestablecido. Otra operación puede incluir realizar una actualización de la tabla en respuesta a la determinación de que dicho valor de entrada asignado es mayor que el umbral preestablecido. En un ejemplo, la selección de actualización de tabla comprende la selección de una tabla a
partir de un conjunto de tablas.
En un ejemplo, la generación del primer flujo de bits puede incluir operaciones adicionales. Una operación puede incluir la codificación del bloque utilizando selectivamente un modo de codificación habitual y un modo de codificación por derivación según CABAC. Otra operación puede incluir generar el primer flujo de bits utilizando solamente el modo de codificación por derivación.
En un ejemplo, la determinación de si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento se basa en si una característica correspondiente a un bloque de datos de imagen es mayor que un umbral preestablecido.
En un ejemplo, la determinación de si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento se basa en si el nivel de segmento de un bloque correspondiente de datos de imagen es mayor que un umbral preestablecido.
En un ejemplo, la determinación de si se cumple la condición de modo de conversión a binario de alta capacidad de procesamiento se basa en si el nivel de la unidad de transformación de un bloque correspondiente de datos de imagen es mayor que un umbral preestablecido.
(Técnica de codificación sin pérdidas para CABAC en HEVC)
La Figura 12 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador para una técnica de codificación sin pérdidas.
El sistema 1400 incluye un codificador 1411 para generar bloques codificados para ser decodificados por un decodificador 1412. El codificador 1411 y el decodificador 1412 pueden comunicarse sobre una red.
El codificador 1411 incluye un dispositivo electrónico 1421 configurado para codificar usando una técnica de codificación sin pérdidas para CABAC en HEVC. El dispositivo electrónico 1421 puede comprender un procesador y una memoria en comunicación electrónica con el procesador, donde la memoria almacena instrucciones que son ejecutables por el procesador para realizar las operaciones mostradas en las Figuras 13, 16 y 18.
El decodificador 1412 incluye un dispositivo electrónico 1422 configurado para decodificar usando una técnica de codificación sin pérdidas para CABAC en HEVC. El dispositivo electrónico 1422 puede comprender un procesador y una memoria en comunicación electrónica con el procesador, donde la memoria almacena instrucciones que son ejecutables para realizar las operaciones mostradas en las Figuras 15, 17 y 19.
La Figura 13 es un diagrama de flujo que ilustra una configuración de un método para codificación sin pérdidas en un dispositivo electrónico.
En el bloque 911, el dispositivo electrónico 1421 obtiene un bloque que representa una muestra residual. En un ejemplo, la dirección de escaneado en zigzag se puede redefinir para ajustarse a la dirección de intra predicción que se usa para eliminar las redundancias espaciales entre píxeles vecinos. Hay varios modos intra predicción disponibles en el modo intra codificación sin pérdidas. En un ejemplo, en el modo de intra predicción vertical, los píxeles superiores llegan a ser el valor de predicción del valor de píxel actual y la diferencia entre el valor actual y el valor de predicción (valor de píxel superior en modo vertical) llega a ser el valor de muestra residual. La selección del modelo de contexto también puede depender de la dirección de la intra predicción y del tamaño de bloque correspondiente.
En el bloque 912, el dispositivo electrónico 1421 genera un mapa de importancia a ser usado en una secuencia de elementos de sintaxis. En el bloque 913, el dispositivo electrónico 1421 rellena un campo de mapa de importancia que corresponde a la última posición de escaneado del bloque con un valor correspondiente al nivel de la última posición del bloque.
En el bloque 914, el dispositivo electrónico 1421 genera una secuencia de elementos de sintaxis que incluye el mapa de importancia que tiene dicho valor. La generación de la secuencia de elementos de sintaxis excluye la etapa de codificación de la última posición del modo de codificación sin pérdidas de CABAC convencional.
La Figura 14 es una tabla que muestra una secuencia de elementos de sintaxis según la configuración ilustrada en la Figura 13.
Se pueden observar varias diferencias por medio de contraste de la secuencia de elementos de sintaxis mostrados en la FIG. 14 en comparación con la secuencia de elementos de sintaxis mostrada en la FIG. 11. La secuencia de elementos de sintaxis mostrada en la FIG. 11 incluye un campo Última_posición_X y un campo Última_posición_Y debido a que el modo de codificación sin pérdidas de CABAC convencional incluye una etapa de codificación de la última posición. Por el contrario, la secuencia de elementos de sintaxis mostrada en la FIG. 14 no incluye un campo Última_posición_X y un campo Última_posición_Y debido a que la configuración de la FIG. 14 omite la etapa de codificación de última posición.
Aunque ambas de las secuencias de elementos de sintaxis incluyen mapas de importancia, hay diferencias entre los
mapas de importancia. En el mapa de importancia de la secuencia de elementos de sintaxis de la FIG. 11, un campo de mapa de importancia no está rellenado para corresponder con el campo de Última_posición_X/Última_posición_Y que se rellena. Por el contrario, en la FIG. 14 un campo de mapa de importancia que corresponde a la última posición de escaneado del bloque se rellena con un valor, es decir, “0” para el bloque de ejemplo, correspondiente al nivel de la última posición del bloque.
La Figura 15 es un diagrama de flujo que ilustra una configuración de un método para decodificación sin pérdidas en un dispositivo electrónico en el lado de decodificación.
En el bloque 1011, el dispositivo electrónico 1422 recupera, a partir de un flujo de bits, una secuencia de elementos de sintaxis que tienen un campo de mapa de importancia que contiene un número de valores que corresponden a una última posición de escaneado de un bloque. En el bloque 1012, el dispositivo electrónico 1422 decodifica los niveles del bloque usando el mapa de importancia y usando dicho valor del mapa de importancia. En el bloque 1013, el dispositivo electrónico 1422 almacena un bloque obtenido correspondiente a un valor residual en un dispositivo de memoria y/o recupera datos de video.
La Figura 16 es un diagrama de flujo que ilustra otra configuración de un método para codificación sin pérdidas en un dispositivo electrónico.
En el bloque 1111, el dispositivo electrónico 1421 obtiene una secuencia de elementos de sintaxis que representa información de nivel para un bloque de una muestra residual. En el bloque 1112, el dispositivo electrónico 1421 realiza una conversión a binario adaptativa sobre valores de la parte Absoluto -3 de la secuencia de elementos de sintaxis usando una pluralidad de tablas de conversión a binario, por ejemplo, las tablas VLC de CAVLC (FIG. 10), en el que los valores de la parte Absoluto -3 de la secuencia de elementos de sintaxis se usan como valores de entrada para la pluralidad de tablas de conversión a binario. Se muestra a continuación una ecuación para actualizar las tablas de conversión a binario en base a información de entrada anterior:
si('abs[coeficiente(i)]-3' > (Tabla[vlc])) vlc: +;
donde Tabla[vlc] = {3,5,13,27};
'i' representa la posición de escaneado y 'vlc' representa el número de la tabla vlc actual
*vlc se establece primero a cero (o uno para intra segmento) debido a que no hay disponible una Tabla vlc 'Absoluto -3' anterior actualizada se detiene cuando vlc es igual a 4
En un ejemplo, el bloque 1111 puede incluir inicialmente usar valores de la columna Tabla VLC 0 (FIG. 10) para el inter segmento y la columna Tabla VLC 1 para el intra segmento para convertir a binario al menos el primer valor de entrada. El número de la tabla VLC se puede aumentar de forma monótona cuando un valor anterior es mayor que los valores umbral dados, por ejemplo, 3, 5, 13, 27. Por consiguiente, la conversión a binario adaptativa posterior después del primer aumento monótono puede usar valores de la columna Tabla VLC 1, la conversión a binario adaptativa posterior después del segundo aumento monótono puede usar valores de la columna Tabla VLC 2, etc.
En el bloque 1113, el dispositivo electrónico 1421 codifica los valores resultantes de la conversión a binario adaptativa usando el modo de codificación por derivación de CABAC.
La Figura 17 es un diagrama de flujo que ilustra otra configuración de un método para la codificación sin pérdidas en un dispositivo electrónico en el lado de decodificación.
En el bloque 1211, el dispositivo electrónico 1422 recupera un símbolo binario a partir de un flujo de bits. En el bloque 1212, el dispositivo electrónico 1422 decodifica por derivación el símbolo binario. En el bloque 1213, el dispositivo electrónico 1422 desconvierte de binario de manera adaptativa un resultado de la decodificación por derivación. En el bloque 1214, el dispositivo electrónico 1422 recupera un bloque que representa información residual usando un resultado de la desconversión de binario adaptativa.
La Figura 18 es un diagrama de flujo que ilustra otra configuración más de un método para codificación sin pérdidas en un dispositivo electrónico.
En el bloque 1311, el dispositivo electrónico 1421 accede solamente a un subconjunto de los modelos de contexto de CABAC. El número de modelos de contexto de CABAC puede ser de 184. Para generar el subconjunto, estos modelos de contexto se pueden filtrar en base a las características asociadas de los modelos de contexto, por ejemplo, en base a qué modelos de contexto están asociados con un componente de frecuencia, en base a qué modelos de contexto están asociados con una posición de escaneado, en base a qué modelos de contexto están asociados con la etapa de codificación de última posición de CABAC, o similar, o cualquier combinación de los mismos. El filtrado se puede realizar por el dispositivo electrónico 1421 en un ejemplo, pero en otros ejemplos, el subconjunto se puede proporcionar al dispositivo electrónico 1421 de modo que el dispositivo electrónico 1421 pueda acceder al subconjunto proporcionado para el modo de codificación sin pérdidas. En un ejemplo, con el fin de generar el subconjunto, los modelos de contexto de CABAC se pueden clasificar en base a las características asociadas de los modelos de
contexto, por ejemplo, en base a qué modelos de contexto están asociados con un componente de frecuencia, en base a qué modelos de contexto están asociados con una posición de escaneado, en base a qué modelos de contexto están asociados con la etapa de codificación de última posición de CABAC, o similar, o cualquier combinación de los mismos. En un ejemplo, el componente de frecuencia y la posición de escaneado pueden ser iguales e intercambiables.
En un ejemplo, un subconjunto puede no contener modelos de contexto de CABAC con un componente de frecuencia no igual a un primer componente de frecuencia. En un ejemplo, el subconjunto resultante incluiría 26 modelos de contexto, es decir, dos modelos de contexto (uno es para un primer componente de frecuencia luma y el otro es para un primer componente de frecuencia croma) para codificar el mapa de importancia, y 6 modelos de contexto para codificar el primer componente de frecuencia luma de la bandera Mayor_que_1, codificando el primer componente de frecuencia croma de la bandera Mayor_que_1, codificando el primer componente de frecuencia luma de la bandera Mayor_que_2 de luma, y codificando el primer componente de frecuencia croma de la bandera Mayor_que_2, respectivamente. Por lo tanto, se usan un total de 24 modelos de contexto para Mayor_que_1 y Mayor_que_2. En un ejemplo, solamente se accede a dicho primer componente de frecuencia cuando se codifica el mapa de importancia en el bloque 1312.
Como se muestra en la Tabla (3), los 6 modelos de contexto para codificar la primera frecuencia luma de una bandera pueden depender del tipo de bloque secundario y del valor LargerT 1, donde el valor LargerT 1 es el número de valores de nivel de coeficiente mayores que uno en el bloque secundario anterior. En un ejemplo, el término “bloque secundario” se refiere a una partición de las muestras residuales (o bloque a los TQC). Por ejemplo, para un tamaño de bloque secundario de 4x4, la muestra residual con un tamaño de 8x8 se divide en cuatro bloques secundarios de 4x4. De manera similar, para un tamaño de bloque secundario de 8x4, las muestras residuales con un tamaño de 32x8 se dividen en ocho bloques secundarios de 8x4. Los bloques secundarios se identifican por orden de codificación, donde el bloque secundario 0 denota el primer bloque secundario codificado. En un ejemplo, el primer bloque secundario codificado es el bloque secundario situado en la parte inferior derecha del bloque. En otro ejemplo, el primer bloque secundario codificado es el bloque secundario situado en el medio del bloque.
Tabla (3)
En el bloque 1312, el dispositivo electrónico 1421 usa el subconjunto de los modelos de contexto para codificar el mapa de importancia.
Como se describe en el párrafo 0120, los modelos de contexto con un componente de frecuencia (o posición de escaneado) no igual a un primer componente de frecuencia (o posición de escaneado) no se pueden usar en un modo de codificación sin pérdidas. Esto tiene el beneficio de reducir la complejidad de cálculo y la memoria para el modo de codificación sin pérdidas. Se puede usar un primer subconjunto de modelos de contexto para el procesamiento de mapas de importancia. Se puede usar un segundo subconjunto de modelos de contexto para codificación de nivel, por ejemplo, codificación Mayor_que_1 y/o codificación Mayor_que_2. El primer subconjunto puede ser diferente del segundo subconjunto.
En un ejemplo que aplica al menos algunos de los principios descritos anteriormente, el primer subconjunto de modelos de contexto usados en el procesamiento de mapas de importancia puede comprender solamente un modelo de contexto. En otro ejemplo que aplica al menos algunos de los principios descritos anteriormente, el primer subconjunto de modelos de contexto usados en el procesamiento de mapas de importancia puede comprender más de un modelo de contexto, por ejemplo, dos o tres modelos de contexto, basados en la información de color (luma/croma). En otro ejemplo más que aplica al menos algunos de los principios descritos anteriormente, el primer subconjunto de modelos de contexto usados en el procesamiento de mapas de importancia puede comprender más de un modelo de contexto, por ejemplo, varios modelos de contexto, basados en el tipo de predicción, por ejemplo, el uso de predicción dentro de un cuadro o entre cuadros dentro de un bloque. En otro ejemplo que aplica al menos algunos de los principios descritos anteriormente, el primer subconjunto de modelos de contexto usados en el procesamiento de mapas de importancia puede comprender más de un modelo de contexto, por ejemplo, dos o tres modelos de contexto, basados en el tamaño de bloque. En otro ejemplo que aplica al menos algunos de los principios descritos anteriormente, el primer subconjunto de modelos de contexto usados en el procesamiento de mapas de importancia puede comprender más de un modelo de contexto, por ejemplo, dos o tres modelos de contexto, basados en el tipo de bloque secundario.
En un ejemplo que aplica al menos algunos de los principios descritos anteriormente, el segundo subconjunto de modelos de contexto usados en codificación de nivel puede comprender solamente un modelo de contexto. En otro ejemplo que aplica al menos algunos de los principios descritos anteriormente, el segundo subconjunto de modelos de contexto usados en codificación de nivel puede comprender más de un modelo de contexto, por ejemplo, dos o tres modelos de contexto, basados en información de color (luma/croma). En otro ejemplo más que aplica al menos algunos de los principios descritos anteriormente, el segundo subconjunto de modelos de contexto usados en codificación de nivel puede comprender más de un modelo de contexto, por ejemplo, varios modelos de contexto, basados en el tipo de predicción de bloque, por ejemplo, el uso de predicción dentro de un cuadro o entre cuadros dentro de un bloque. En otro ejemplo que aplica al menos algunos de los principios descritos anteriormente, el primer subconjunto de modelos de contexto usados en la codificación de nivel puede comprender más de un modelo de contexto, por ejemplo, dos o tres modelos de contexto, basados en el tamaño de bloque. En otro ejemplo que aplica al menos algunos de los principios descritos anteriormente, el primer subconjunto de modelos de contexto usados en procesamiento de codificación de nivel puede comprender más de un modelo de contexto, por ejemplo, dos o tres modelos de contexto, basados en el tipo de bloque secundario.
La Figura 19 es un diagrama de flujo que ilustra otra configuración más de un método para codificación sin pérdidas en un dispositivo electrónico en el lado de decodificación.
En el bloque 1511, el dispositivo electrónico 1422 accede solamente a un subconjunto de los modelos de contexto de CABAC. En el bloque 1512, el dispositivo electrónico 1422 recupera un símbolo binario a partir de un flujo de bits usando el subconjunto de modelos de contexto. En el bloque 1513, el dispositivo electrónico 1422 recupera datos de video usando un resultado de la decodificación.
En lo anterior, las configuraciones que se pueden implementar mediante el dispositivo electrónico 1421 se ilustran en las FIG. 13, 16 y 18. La configuración de un codificador con todas estas configuraciones mejora el rendimiento de la codificación en comparación con el modo de codificación sin pérdidas de CABAC conocido. Sin embargo, la configuración de un codificador con menos de todas estas configuraciones en cualquier combinación, por ejemplo, una de estas configuraciones o dos cualesquiera de estas configuraciones, también es posible y práctico, y también mejora el rendimiento de codificación en comparación con el modo de codificación sin pérdidas de CABAC conocido.
En lo anterior, las configuraciones que se pueden implementar mediante el dispositivo electrónico 1422 se ilustran en las FIG. 14, 17 y 19. La configuración de un decodificador con todas estas configuraciones mejora el rendimiento de codificación en comparación con el modo de codificación sin pérdidas de CABAC conocido. Sin embargo, la configuración de un decodificador con menos de todas estas configuraciones en cualquier combinación, por ejemplo, una de estas configuraciones o dos cualesquiera de estas configuraciones, también es posible y práctico, y también mejora el rendimiento de codificación en comparación con el modo de codificación sin pérdidas de CABAC conocido.
En un ejemplo, se proporciona un dispositivo electrónico que incluye un procesador y una memoria en comunicación electrónica con el procesador. Almacenadas en la memoria están las instrucciones ejecutables por el procesador para realizar operaciones.
En un ejemplo, una operación puede incluir la obtención de un bloque que representa una muestra residual para codificación sin pérdidas. Otra operación puede incluir generar un mapa de importancia, en donde la generación incluye rellenar un campo de mapa de importancia que corresponde a la última posición de escaneado del bloque con un valor correspondiente a un nivel de la última posición de escaneado del bloque. Otra operación puede incluir generar una secuencia de elementos de sintaxis que incluya el mapa de importancia que tiene el valor. Otra operación puede incluir transmitir un flujo de bits que representa la secuencia generada de elementos de sintaxis a un decodificador.
En un ejemplo, la secuencia de elementos de sintaxis se genera sin realizar la etapa de codificación de última posición de la Codificación Aritmética Binaria Adaptativa al Contexto (CABAC).
En un ejemplo, otra operación puede incluir realizar una conversión a binario adaptativa usando una pluralidad de tablas de conversión a binario, en donde los valores de una parte Absoluto -3 de la secuencia de elementos de sintaxis se usan como valores de entrada para la pluralidad de tablas de conversión a binario. Otra operación puede incluir codificar un resultado de la conversión a binario adaptativa. La pluralidad de tablas de conversión a binario pueden ser tablas VLC de CAVLC.
En un ejemplo, codificar el resultado de la conversión a binario adaptativa puede incluir operaciones adicionales. Una operación adicional puede incluir utilizar un modo de codificación por derivación de CABAc .
En un ejemplo, la conversión a binario adaptativa de los valores de entrada usando la pluralidad de tablas de conversión a binario puede incluir operaciones adicionales. Una operación adicional puede incluir determinar si uno de los valores de entrada es mayor que un umbral preestablecido. Una operación adicional puede incluir realizar una actualización de tabla en respuesta a determinar que dicho valor de entrada es mayor que el umbral preestablecido.
En un ejemplo, otra operación puede incluir acceder solamente a un subconjunto de los modelos de contexto de CABAC. Otra operación puede incluir usar al subconjunto de los modelos de contexto para codificar el mapa de importancia. El subconjunto puede comprender los modelos de contexto de CABAC con un componente de frecuencia
no igual a una primera frecuencia.
En un ejemplo, se proporciona un dispositivo electrónico que incluye un procesador y una memoria en comunicación electrónica con el procesador. Almacenadas en la memoria están las instrucciones ejecutables por el procesador para realizar operaciones.
En un ejemplo, una operación puede incluir obtener un bloque que representa una muestra residual para codificación sin pérdidas. Otra operación puede incluir generar una secuencia de elementos de sintaxis para representar el bloque. Otra operación puede incluir realizar una conversión a binario adaptativa usando una pluralidad de tablas de conversión a binario, en donde los valores de una parte Absoluto -3 de la secuencia de elementos de sintaxis se usan como valores de entrada para la pluralidad de tablas de conversión a binario. Otra operación puede incluir codificar un resultado de la conversión a binario adaptativa. Otra operación puede incluir la transmisión de la codificación a un decodificador.
En un ejemplo, la pluralidad de tablas de conversión a binario son tablas VLC de CAVLC.
En un ejemplo, codificar el resultado de la conversión a binario adaptativa puede incluir operaciones adicionales. Una operación adicional puede incluir utilizar un modo de codificación por derivación de Codificación Aritmética Binaria Adaptativa al Contexto (CABAC).
En un ejemplo, la conversión a binario adaptativa de los valores de entrada usando la pluralidad de tablas de conversión a binario puede incluir operaciones adicionales. Una operación adicional puede incluir determinar si uno de los valores de entrada es mayor que un umbral preestablecido. Una operación adicional puede incluir realizar una actualización de tabla en respuesta a determinar que dicho valor de entrada es mayor que el umbral preestablecido.
En un ejemplo, otra operación puede incluir generar un mapa de importancia, en donde la generación incluye rellenar un campo de mapa de importancia que corresponde a la última posición de escaneado del bloque con un valor correspondiente a un nivel de la última posición de escaneado del bloque. Otra operación puede incluir generar la secuencia de elementos de sintaxis usando el mapa de importancia generado.
En un ejemplo, la secuencia de elementos de sintaxis se genera sin realizar la etapa de codificación de última posición de CABAC.
En un ejemplo, se proporciona un método. El método se puede realizar usando un decodificador. Una operación del método puede incluir filtrar los modelos de contexto de la Codificación Aritmética Binaria Adaptativa al Contexto (CABAC) en base a qué modelos de contexto están asociados con el componente de frecuencia. Otra operación del método puede incluir obtener un flujo de bits. Otra operación del método puede incluir recuperar un símbolo binario del flujo de bits. Otra operación del método puede incluir decodificar el símbolo binario usando los modelos de contexto filtrados. Otra operación del método puede incluir recuperar datos de video usando un resultado de la decodificación.
En un ejemplo, otra operación puede incluir recuperar, a partir del flujo de bits, una secuencia de elementos de sintaxis que tienen un mapa de importancia rellenado con un valor correspondiente a una última posición de escaneado de un bloque que representa una muestra residual. Otra operación puede incluir decodificarlos niveles del bloque usando el mapa de importancia y usando dicho valor del mapa de importancia.
En un ejemplo, la decodificación de los niveles del bloque se puede realizar sin realizar la etapa de decodificación de última posición de CABAC.
En un ejemplo, otra operación puede incluir decodificar por derivación del símbolo binario recuperado. Otra operación puede incluir desconvertir de binario adaptativamente un resultado de la decodificación por derivación. Otra operación puede incluir recuperar un bloque que representa información residual usando un resultado de la desconversión de binario.
En un ejemplo, otra operación puede incluir usar una pluralidad de tablas VLC de CAVLC para la desconversión de binario adaptativa.
En un ejemplo, la decodificación por derivación puede incluir utilizar un modo de decodificación por derivación CABAC.
La Figura 21 es un diagrama de flujo que ilustra una configuración de un método para determinar si se cumple una condición de modo de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación.
En el bloque 2611, el dispositivo electrónico 422 obtiene un flujo de bits. En el bloque 2612, el dispositivo electrónico 422 obtiene un bloque de valores de nivel. En un ejemplo, el bloque comprende un bloque de TQC.
En el bloque 2613, el dispositivo electrónico 422 determina el número de valores de nivel que no son iguales a cero. En el rombo 2614, el dispositivo electrónico 422 determina si el número es mayor que un umbral preestablecido. En un ejemplo, el umbral preestablecido puede ser 8, que es la mitad del número de valores de un bloque 4x4. En ejemplos con un tamaño de bloque que tiene N valores de nivel, el umbral puede corresponder al 50% de N. En un ejemplo, el dispositivo electrónico 422 recibe señalización del dispositivo electrónico 421. La señalización transmitida por el
dispositivo electrónico 421 puede especificar el umbral preestablecido o incluir información que se puede usar por el dispositivo electrónico 421 para determinar el umbral preestablecido.
Si el número no es mayor que el umbral preestablecido en el rombo 2614, entonces en el bloque 2615 el dispositivo electrónico 422 decodifica valores de nivel no iguales a cero con un primer método de conversión a binario. Si el número es mayor que el umbral preestablecido en el rombo 2614, entonces en el bloque 2616 el dispositivo electrónico 422 decodifica valores de nivel que no son iguales a cero con un segundo método de conversión a binario que es diferente al primer método de conversión a binario. En un ejemplo, el segundo método de conversión a binario puede comprender un modo de desconversión de binario de alta capacidad de procesamiento, tal como el modo HTB descrito anteriormente. En un ejemplo, el primer método de conversión a binario puede comprender la conversión a binario de CABAC convencional.
La Figura 22 es un diagrama de flujo que ilustra otra configuración de un método para determinar si se cumple una condición de modo de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación.
En el bloque 2711, el dispositivo electrónico 422 obtiene un flujo de bits. En el bloque 2712, el dispositivo electrónico 422 obtiene un bloque de valores de nivel. En un ejemplo, el bloque comprende un bloque de TQC.
En el bloque 2713, el dispositivo electrónico 422 determina el número de valores de nivel con un valor absoluto mayor que un primer umbral preestablecido. En un ejemplo, el primer umbral preestablecido puede ser o bien 1 o bien 2, aunque se pueden usar otros primeros umbrales preestablecido en otros ejemplos. En el rombo 2714, el dispositivo electrónico 422 determina si el número es mayor que un segundo umbral preestablecido. En un ejemplo, el segundo umbral preestablecido puede ser 8, que es la mitad del número de valores de un bloque 4x4. En ejemplos con un tamaño de bloque que tiene N valores de nivel, el segundo umbral preestablecido puede corresponder al 50% de N.
En un ejemplo, el dispositivo electrónico 422 recibe señalización del dispositivo electrónico 421. La señalización transmitida por el dispositivo electrónico 421 puede especificar el primer umbral preestablecido y/o el segundo umbral preestablecido, o incluir información que se puede usar por el dispositivo electrónico 421 para determinar el primer umbral preestablecido y/o el segundo umbral preestablecido.
Si el número no es mayor que el segundo umbral preestablecido en el rombo 2714, entonces en el bloque 2715 el dispositivo electrónico 422 decodifica valores de nivel no iguales a cero con un primer método de conversión a binario. Si el número es mayor que el umbral preestablecido en el rombo 2714, entonces en el bloque 2716 el dispositivo electrónico 422 decodifica valores de nivel no iguales a cero con un segundo método de conversión a binario que es diferente del primer método de conversión a binario. En un ejemplo, el segundo método de conversión a binario puede comprender un modo de desconversión de binario de alta capacidad de procesamiento, tal como el modo HTB descrito anteriormente. En un ejemplo, el primer método de conversión a binario puede comprender la conversión a binario de la decodificación de CABAC conocida.
La Figura 23 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador.
El sistema 2400 incluye un codificador 2411 para generar bloques codificados para ser decodificados por un decodificador 2412. El codificador 2411 y el decodificador 2412 pueden comunicarse sobre una red.
El decodificador 2412 incluye un dispositivo electrónico 2422 configurado para decodificar usando el procesamiento de mapa de importancia de alta capacidad de procesamiento. El dispositivo electrónico 2422 puede comprender un procesador y una memoria en comunicación electrónica con el procesador, donde la memoria almacena instrucciones que son ejecutables para realizar las operaciones mostradas en las Figuras 24-27.
El codificador 2411 incluye un dispositivo electrónico 2421, que puede comprender un procesador y una memoria en comunicación electrónica con el procesador, donde la memoria almacena instrucciones que son ejecutables por el procesador para realizar operaciones que serán entendidas por un experto en la técnica a partir de la descripción de las configuraciones mostradas en las Figuras 24-27 y la descripción correspondiente de las mismas.
La Figura 24 es un diagrama de flujo que ilustra una configuración de un método para decodificación de mapas de importancia de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación.
En el bloque 2801, el dispositivo electrónico 2422 obtiene un flujo de bits. En el bloque 2802, el dispositivo electrónico 2422 obtiene un bloque de valores de nivel. En un ejemplo, el bloque comprende un bloque de TQC. En el bloque 2803, el dispositivo electrónico 2422 obtiene un valor de nivel del bloque, por ejemplo, el primer valor del nivel del bloque o un siguiente valor de nivel del bloque.
En el rombo 2804, el dispositivo electrónico 2422 determina si el valor de nivel obtenido es el último valor de nivel del bloque. Si el valor de nivel obtenido no es el último valor de nivel en el rombo 2804, entonces el dispositivo electrónico 2422 pasa al rombo 2814. Si el valor de nivel obtenido es el último valor de nivel en el rombo 2804, entonces en el bloque 2805 el dispositivo electrónico 2422 decodifica magnitudes de los valores de nivel (que pueden incluir determinar tanto la información de signo como la magnitud absoluta para cada valor de nivel).
Con referencia de nuevo al rombo 2814, el dispositivo electrónico 2422 determina si el valor de nivel obtenido no es cero usando un primer método de decodificación. Si el valor de nivel obtenido no es cero en el rombo 2814, el dispositivo electrónico 2422 pasa al bloque 2815; de otro modo, el dispositivo electrónico 2422 vuelve al bloque 2803. En el bloque 2815, el dispositivo electrónico 2422 aumenta un contador.
En el rombo 2816, el dispositivo electrónico 2422 determina si un recuento actual del contador es mayor que un umbral preestablecido. En un ejemplo, el umbral preestablecido puede comprender el umbral preestablecido descrito con referencia a la FIG. 21. Si el recuento actual del contador es mayor que el umbral preestablecido en el rombo 2816, el dispositivo electrónico 2422 pasa al bloque 2817; de otro modo, el dispositivo electrónico 2422 vuelve al bloque 2803.
En el bloque 2817, el dispositivo electrónico 2422 obtiene el siguiente valor de nivel del bloque. En el rombo 2818, el dispositivo electrónico 2422 determina si el valor de nivel obtenido es el último valor de nivel del bloque. Si el valor de nivel obtenido no es el último valor de nivel en el rombo 2818, entonces el dispositivo electrónico 2422 pasa al bloque 2819; de otro modo, en el bloque 2820 el dispositivo electrónico 2422 decodifica las magnitudes de los valores de nivel.
En el bloque 2819, el dispositivo electrónico 2422 determina si el valor de nivel obtenido no es cero usando un segundo método de decodificación que es diferente del primer método de decodificación. En un ejemplo, el segundo método de decodificación comprende un método de decodificación de alta capacidad de procesamiento, un método de decodificación por derivación o similar. En un ejemplo, el primer método de decodificación comprende el modo de decodificación habitual de CABAC.
Según lo anterior, un mapa de importancia se puede decodificar elemento por elemento, por ejemplo, campo de mapa de importancia por campo de mapa de importancia. Cuando se alcanza el umbral preestablecido, el dispositivo electrónico 2422 puede cambiar la decodificación de la parte de mapa de importancia restante. Se puede usar un modo de decodificación de mapa de importancia de alta capacidad de procesamiento o de derivación para la parte de mapa de importancia restante. Por lo tanto, el rendimiento de decodificación se puede mejorar sobre la decodificación de mapa de importancia de CABAC convencional.
La Figura 25 es un diagrama de flujo que ilustra otra configuración de un método para la decodificación de mapas de importancia de alta capacidad de procesamiento en un dispositivo electrónico en el lado de decodificación.
En el método mostrado en la FIG. 25, los procesos 2901-2905 se pueden realizar como se muestra, similar a los procesos 2801-2805 (FIG. 24). En el rombo 2914, el dispositivo electrónico 2422 determina si el valor absoluto del valor de nivel obtenido es mayor que un primer umbral usando un primer método de decodificación. En un ejemplo, el primer umbral puede ser 1 o 2, aunque se pueden usar otros primeros umbrales en otros ejemplos. Si el valor absoluto del valor de nivel obtenido es mayor que el primer umbral en el rombo 2914, el dispositivo electrónico 2422 pasa al bloque 2915; de otro modo, el dispositivo electrónico 2422 vuelve al bloque 2903. En el bloque 2915, el dispositivo electrónico 2422 aumenta un contador.
En el rombo 2916, el dispositivo electrónico 2422 determina si un recuento actual del contador es mayor que un segundo umbral preestablecido. En un ejemplo, el segundo umbral preestablecido puede ser 8, que es la mitad del número de valores de un bloque 4x4. En ejemplos con un tamaño de bloque que tiene N valores de nivel, el segundo umbral preestablecido puede corresponder al 50% de N. Si el recuento actual del contador es mayor que el segundo umbral en el rombo 2916, el dispositivo electrónico 2422 pasa al bloque 2917; de otro modo, el dispositivo electrónico 2422 vuelve al bloque 2903.
En el bloque 2917, el dispositivo electrónico 2422 obtiene el siguiente valor de nivel del bloque. En el rombo 2918, el dispositivo electrónico 2422 determina si el valor de nivel obtenido es el último valor de nivel del bloque. Si el valor de nivel obtenido no es el último valor de nivel en el rombo 2918, entonces el dispositivo electrónico 2422 pasa al bloque 2919; de otro modo, en el bloque 2920 el dispositivo electrónico 2422 decodifica las magnitudes de los valores de nivel.
En el bloque 2919, el dispositivo electrónico 2422 determina si el valor absoluto del valor de nivel obtenido es mayor que el primer umbral usando un segundo método de decodificación que es diferente del primer método de decodificación. En un ejemplo, el segundo método de decodificación comprende un método de decodificación de alta capacidad de procesamiento, un método de decodificación por derivación o similar. En un ejemplo, el primer método de decodificación comprende el modo de decodificación habitual de CABAC.
Según lo anterior, un mapa de importancia se puede decodificar elemento por elemento, por ejemplo, campo de mapa de importancia por campo de mapa de importancia. Cuando se alcanza el umbral preestablecido, el dispositivo electrónico 2422 puede cambiar la decodificación de la parte de mapa de importancia restante. Se puede usar un modo de decodificación de mapa de importancia de alta capacidad de procesamiento o de derivación para la parte de mapa de importancia restante. Por lo tanto, el rendimiento de decodificación se puede mejorar sobre la decodificación de mapa de importancia de CABAC convencional.
La Figura 26 es un diagrama de flujo que ilustra una configuración de un método para la decodificación de mapas de importancia de alta capacidad de procesamiento con un rasgo de decodificación por derivación en un dispositivo
electrónico en el lado de decodificación.
En el método mostrado en la FIG. 26, los procesos 3001-3004 y 3014-3016 se pueden realizar como se muestra, similar a los procesos 2801-2804 y 2814-2816 (FIG. 24). En el bloque 3005, el dispositivo electrónico 2422 recupera las magnitudes de los valores de nivel usando un tercer método de decodificación, por ejemplo, un método de conversión a binario. En el bloque 3020, el dispositivo electrónico 2422 recupera las magnitudes de una primera parte de los valores de nivel usando el tercer método de decodificación, y recupera las magnitudes de una segunda parte de los valores de nivel usando un cuarto método de decodificación, por ejemplo, un método de conversión a binario diferente.
En un ejemplo, la primera parte de los valores de nivel comprende los valores de nivel procesados con el primer método de decodificación. La segunda parte de los valores de nivel comprende los valores de nivel no procesados con el primer método de decodificación.
Debería ser evidente que otras configuraciones de un método para la decodificación de mapas de importancia de alta capacidad de procesamiento con un rasgo de de decodificación por derivación en un dispositivo electrónico en el lado de decodificación similar a la configuración mostrada en la Figura 26 pueden ser posibles y prácticas. Por ejemplo, en otra configuración, el dispositivo electrónico 2422 determina si el valor absoluto del valor de nivel obtenido es mayor que un primer umbral preestablecido usando un primer método de decodificación, similar al rombo 2914 (FIG. 25). También, el dispositivo electrónico 2422 determina si el contador es mayor que el segundo umbral preestablecido, similar al rombo 2916 (FIG. 25).
Según lo anterior, un mapa de importancia se puede decodificar elemento por elemento, por ejemplo, campo de mapa de importancia por campo de mapa de importancia. Cuando se alcanza el umbral preestablecido, el dispositivo electrónico 2422 puede parar de decodificar el mapa de importancia (los elementos restantes del mapa de importancia no se decodifican). A partir de entonces, los valores de nivel que corresponden a los elementos decodificados se procesan usando un método de conversión a binario (por ejemplo, un método de conversión a binario que puede enviar el valor cero), al tiempo que los elementos restantes se procesan usando un método de conversión a binario diferente (por ejemplo, un método de conversión a binario que no puede enviar el valor cero). Por lo tanto, el rendimiento de decodificación se puede mejorar sobre la decodificación de mapa de importancia de CABAC convencional.
La Figura 27 es un diagrama de flujo que ilustra una configuración de un método para la decodificación de mapas de importancia de alta capacidad de procesamiento con un rasgo de conmutación del método de decodificación en un dispositivo electrónico en el lado de decodificación.
En el método mostrado en la FIG. 27, los procesos 3801-3804 y 3814-3819 se pueden realizar como se muestra, similar a los procesos 2801-2804 y 2814-2819 (FIG. 24). En el bloque 3805, el dispositivo electrónico 2422 recupera las magnitudes de los valores de nivel usando el tercer método de decodificación (el tercer método de decodificación de la FIG. 26). En el bloque 3820, el dispositivo electrónico 2422 recupera magnitudes de una primera parte de los valores de nivel usando el tercer método de decodificación, y recupera magnitudes de una segunda parte de los valores de nivel usando el cuarto método de decodificación (el cuarto método de decodificación de la FIG. 26). En un ejemplo, la primera parte de los valores de nivel comprende los valores de nivel obtenidos en el bloque 3803, mientras que la segunda parte de los valores de nivel comprende los valores de nivel obtenidos en el bloque 3817.
Debería ser evidente que otras configuraciones de un método para la decodificación de mapas de importancia de alta capacidad de procesamiento con un rasgo de decodificación por derivación en un dispositivo electrónico en el lado de decodificación similar a la configuración mostrada en la Figura 27 pueden ser posibles y prácticas. Por ejemplo, en otra configuración, el dispositivo electrónico 2422 determina si el valor absoluto del valor de nivel obtenido es mayor que un primer umbral preestablecido usando un primer método de decodificación, similar al rombo 2914 (FIG. 25). También, el dispositivo electrónico 2422 determina si el contador es mayor que el segundo umbral preestablecido, similar al rombo 2916 (FIG. 25).
En un ejemplo, se proporciona un primer dispositivo electrónico que incluye un procesador y una memoria en comunicación electrónica con el procesador. Almacenadas en la memoria están las instrucciones ejecutables por el procesador para realizar operaciones.
En un ejemplo, una operación puede incluir recibir un flujo de bits. Otra operación puede incluir obtener un bloque de valores de nivel en base al flujo de bits recibido. Otra operación puede incluir identificar una parte de los valores de nivel según un umbral. Otra operación puede incluir, después de identificar la parte, procesar cualesquiera restantes de los valores de nivel usando un modo de procesamiento de mapa de importancia de alta capacidad de procesamiento. Otra operación puede incluir recuperar datos de video en base al procesamiento.
En un ejemplo, se proporciona un segundo dispositivo electrónico que incluye un procesador y una memoria en comunicación electrónica con el procesador. Almacenadas en la memoria están las instrucciones ejecutables por el procesador para realizar operaciones. Una operación puede incluir transmitir señalización al primer dispositivo electrónico, en donde la señalización identifica el umbral.
Según lo anterior, un mapa de importancia se puede decodificar elemento por elemento, por ejemplo, campo de mapa de importancia por campo de mapa de importancia. Cuando se alcanza el umbral preestablecido, el dispositivo electrónico 2422 puede parar de decodificar el mapa de importancia (los elementos restantes del mapa de importancia no se decodifican). A partir de entonces, los valores de nivel que corresponden a los elementos decodificados se procesan usando un método de conversión a binario (por ejemplo, un método de conversión a binario que puede enviar el valor cero), al tiempo que los elementos restantes se procesan usando un método de conversión a binario diferente (por ejemplo, un método de conversión a binario que no puede enviar el valor cero). Por lo tanto, el rendimiento de decodificación se puede mejorar sobre la decodificación de mapa de importancia de CABAC convencional.
(Codificación sin pérdidas con técnica de selección de parámetros diferente para CABAC en HEVC).
Cuando se utiliza la codificación CABAC en HEVC en el modo de codificación sin pérdidas, la codificación/decodificación es computacionalmente compleja. Una razón para la complejidad de cálculo es la codificación del elemento de sintaxis “Absoluto -3”. En la codificación CABAc conocida, el método de codificación Golomb-Rice exponencial se usa para codificar el elemento de sintaxis.
A modo de antecedentes, el método de codificación Golomb-Rice (G-R) exponencial utiliza la tabla de actualización de parámetros de Rice que se muestra en la FIG. 28. El método de codificación G-R se aplica al elemento de sintaxis de código “Absoluto -3” (es decir, la última línea de la tabla de la FIG. 2) en el modo de codificación sin pérdidas de CABAC conocido, como se explica con más detalle en el siguiente párrafo.
El parámetro de Rice controla la conversión de símbolos a contenedores. Para ilustrar a modo de ejemplo, consideremos usar la tabla de la FIG. 28 y la codificación G-R para convertir los símbolos 0, 11, 4 ..., donde “0” (el primer símbolo) es el símbolo inicial en un bloque secundario. El parámetro de Rice se inicializa en cero para el primer símbolo, debido a que el primer símbolo es el símbolo inicial en el bloque secundario. El primer símbolo “0” se codifica usando el parámetro de Rice actual de cero. En un ejemplo, el proceso de codificar un símbolo con un parámetro de Rice de RP consiste en calcular el valor Cociente = suelo( (símbolo-1)/RP) y generar una salida que contiene una cadena de contenedores de Cociente igual a 1 seguida de un contenedor igual a 0. En este caso, Cociente es un entero y suelo() es una operación que asigna un valor que contiene un número entero y un componente fraccional al componente entero. Para ilustrar, codificar un símbolo de “5” con el parámetro de Rice 3 daría como resultado un valor de Cociente de 1 y los contenedores de salida de “01”. De manera similar, la codificación de un símbolo de “100” con el parámetro de Rice 33 daría como resultado un valor de Cociente de 3 y los contenedores de salida de “0001”. En un ejemplo alternativo, el proceso de codificación de un símbolo con un parámetro de Rice de RP consiste en calcular el valor Cociente = suelo( (símbolo-1)/RP) y generar una salida que contiene una cadena de contenedores de Cociente igual a 0 seguido de un contenedor igual a 1. En otro ejemplo más, el proceso de codificación de un símbolo con el parámetro de Rice de RP consiste en seleccionar una tabla de búsqueda de orden RP que defina una asignación entre símbolos y una secuencia de contenedores de un conjunto de tablas de búsqueda. Dado que el resultado de la búsqueda es cero según la tabla de la FIG. 28, el parámetro de Rice no se actualiza para el siguiente símbolo. El segundo símbolo “11” se codifica por lo tanto usando el parámetro de Rice actual de cero. Dado que el resultado de la búsqueda (“2”) para el segundo símbolo “11” y el parámetro de Rice “0” es diferente del valor del parámetro de Rice actual (es decir, cero), el parámetro de Rice se actualiza de cero a dos. El tercer símbolo “4” se codifica entonces con el parámetro de Rice actual de dos. Dado que el resultado de la búsqueda no es un valor diferente del parámetro de Rice actual, el parámetro de Rice de dos se usa para el siguiente símbolo.
Debido a la complejidad de cálculo de la codificación G-R del valor “Absoluto -3” según la CABAC conocida, la codificación/decodificación puede consumir una cantidad significativa de recursos de procesamiento y/o puede tardar una cantidad de tiempo significativa en completarse. La descripción que sigue resuelve este y otros problemas.
La Figura 29 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador.
El sistema 2900 incluye un codificador 2911 para generar bloques codificados para ser decodificados por un decodificador 2912. El codificador 2911 y el decodificador 2912 pueden comunicarse sobre una red.
El codificador 2911 incluye un dispositivo electrónico 2921 configurado para codificar usando una codificación sin pérdidas con una selección de parámetros diferente para CABAC en HEVC. El dispositivo electrónico 2921 puede comprender un procesador y memoria en comunicación electrónica con el procesador, donde la memoria almacena instrucciones que son ejecutables por el procesador para realizar las operaciones mostradas en la Figura 30.
El decodificador 2912 incluye un dispositivo electrónico 2922 configurado para decodificar usando una codificación sin pérdidas con una selección de parámetros diferente para CABAC en HEVC. El dispositivo electrónico 2922 puede comprender un procesador y una memoria en comunicación electrónica con el procesador, donde la memoria almacena instrucciones que son ejecutables para realizar las operaciones mostradas en la Figura 31.
La Figura 30 es un diagrama de flujo que ilustra una configuración de un método para codificación sin pérdidas con una selección de parámetros diferente en un dispositivo electrónico.
En el bloque 3011, el dispositivo electrónico 2921 obtiene un bloque de datos para ser codificado usando un codificador
basado en aritmética, por ejemplo, un codificador basado en CABAC. En el rombo 3012, el dispositivo electrónico 2921 determina si el bloque ha de ser codificado usando codificación sin pérdidas. Si el bloque no ha de ser codificado usando codificación sin pérdidas, entonces en el bloque 3013 el dispositivo electrónico 2921 usa una primera técnica de codificación de Absoluto -3 para codificar el bloque de datos.
Si el bloque ha de ser codificado usando codificación sin pérdidas, entonces en el bloque 3014 el dispositivo electrónico 2921 se usa una segunda técnica de codificación de Absoluto -3 diferente para codificar el bloque de datos. En el bloque 3015, el dispositivo electrónico 2921 transmite el flujo de bits generado sobre una red y/o almacena el flujo de bits generado en un dispositivo de memoria.
En un ejemplo, la primera técnica de codificación de Absoluto -3 comprende una técnica de codificación R-G de codificación CABAC, es decir, el parámetro de Rice se inicializa a cero en cada etapa de codificación de bloque secundario, y se consideran los cinco parámetros de Rice de la tabla mostrada en la FIG. 28. En un ejemplo, la segunda técnica de codificación de Absoluto -3 diferente no se inicializa a cero en cada etapa de codificación de bloque secundario, es decir, se inicializa de manera diferente y/o usa una tabla de actualización de parámetros de Rice diferente, por ejemplo, una tabla de actualización de parámetros de Rice reducida.
En un ejemplo, la inicialización diferente puede comprender inicializar el parámetro de Rice a cero en cada bloque y no en cada bloque secundario. En un ejemplo, la inicialización diferente puede comprender usar el último parámetro de Rice usado en un bloque secundario anterior como el parámetro de Rice inicial de un bloque secundario actual.
En un ejemplo, la inicialización diferente puede comprender inicializar en base a estadísticas de muestras residuales. En un ejemplo, la inicialización diferente puede comprender inicializar en un valor de parámetro de Rice predefinido en base al tipo de bloque, al tamaño de bloque o a la información de color (luma/croma), o similares, o cualquier combinación de los mismos. El tipo de bloque es un valor para representar el bloque en base al tamaño del bloque, a la información de predicción (intra/inter) del bloque y a la información de color del bloque (luma/croma). En un ejemplo, la inicialización diferente puede comprender inicializar el parámetro de Rice en el valor predefinido “1” cuando el tipo de bloque actual es igual a un cierto valor o valores predefinidos, por ejemplo, “2” y/o “5”.
En un ejemplo, la tabla de actualización de parámetros de Rice diferente comprende menos parámetros de Rice que la tabla de actualización de parámetros de Rice usada para la primera técnica de codificación de Absoluto -3. En un ejemplo, la tabla de actualización de parámetros de Rice diferente incluye solamente los dos primeros casos (el parámetro de Rice es igual a “0” y “1”). Una ilustración de tal tabla de actualización de parámetros de Rice se incluye en la FIG. 37).
En un ejemplo, si se usa la segunda técnica de codificación de Absoluto -3 diferente, el dispositivo electrónico 2921 puede establecer un indicador correspondiente, por ejemplo, una bandera asociada con la segunda técnica de codificación de Absoluto -3 diferente, a un valor de 1 (que por supuesto puede incluir cambiar un valor por defecto de dicha bandera o dejar dicha bandera en un valor por defecto dependiendo de la preferencia de diseño).
La Figura 31 es un diagrama de flujo que ilustra una configuración de un método para codificación sin pérdidas con una selección de parámetros diferente en un dispositivo electrónico en el lado de decodificación.
En el bloque 3110, el dispositivo electrónico 2922 obtiene un flujo de bits. En el bloque 3111, el dispositivo electrónico 2922 recupera un símbolo binario del flujo de bits obtenido.
En el rombo 3112, el dispositivo electrónico 2922 determina si el símbolo binario ha a ser decodificado usando decodificación sin pérdidas. En un ejemplo, la determinación puede incluir comprobar una cabecera, tal como una cabecera de segmento, correspondiente al flujo de bits recibido. La comprobación de la cabecera puede comprender además comprobar una cabecera de segmento correspondiente al flujo de bits obtenido para un valor de una bandera asociada con una segunda técnica de codificación de Absoluto -3 diferente. En otro ejemplo, la determinación puede incluir comprobar un símbolo decodificado previamente asociado con un bloque, tal como el tipo de bloque o el parámetro de cuantificación que controla la conversión de niveles de coeficientes a los TQC. Si la condición no se cumple en el rombo 3112, entonces en el bloque 3113 el dispositivo electrónico 2922 usa una primera técnica de codificación de Absoluto -3 para obtener un bloque de TQC.
Si se cumple la condición en el rombo 3112, entonces en el bloque 3114 el dispositivo electrónico 2921 usa una segunda técnica de codificación de Absoluto -3 diferente para obtener una muestra residual. El dispositivo electrónico 2922 puede almacenar el bloque obtenido de los TQC o la muestra residual obtenida en un dispositivo de memoria y/o puede recuperar datos de video en el bloque 3115.
(Codificación de alta capacidad de procesamiento para CABAC en HEVC)
Cuando se utiliza la codificación CABAC en HEVC, el rendimiento de capacidad de procesamiento puede diferir dependiendo de diferentes factores, tales como, pero no limitados a: número total de contenedores/píxeles, número de contenedores/píxeles por derivación y número de contenedores/píxeles codificados habituales (o contextuales). Por lo tanto, dependiendo de estos factores, la codificación puede consumir una cantidad significativa de recursos de procesamiento y/o puede tardar una cantidad de tiempo significativa. La descripción que sigue resuelve este y otros
problemas.
A modo de antecedentes, según la CABAC conocida, se codifican por contexto hasta veinticinco banderas de código de nivel de un elemento de sintaxis. Las banderas de código de nivel restantes se codifican por derivación. Un número predefinido (y fijo) de banderas Mayor_que_1 se codifican por contexto, esto es, ocho banderas Mayor_que_1. Un número predefinido (y fijo) de banderas Mayor_que_2 se codifican por contexto, esto es, uno. Todas de las banderas de mapa de importancia se codifican por contexto, esto es, hasta dieciséis (un elemento de sintaxis puede tener menos de dieciséis banderas de mapa de importancia dependiendo de la información de última posición del bloque. Por lo tanto, se necesitan un máximo de veinticinco contenedores codificados por contexto para un bloque de subconjunto dado (25 contenedores/16 píxeles = 1,56 contenedores/pixel). El ejemplo anterior es cuando se usa un bloque secundario 4x4.
La Figura 34 es un diagrama de flujo que ilustra una configuración de un método para la codificación de alta capacidad de procesamiento para CABAC en h Ev C en un dispositivo electrónico.
En el bloque 3411, el dispositivo electrónico 3321 obtiene un bloque de datos para ser codificado usando un codificador basado en aritmética, por ejemplo, un codificador basado en CABAC. En el bloque 3412, el dispositivo electrónico 3321 codifica por contexto una primera cantidad de banderas de código de nivel de un elemento de sintaxis, por ejemplo, banderas Mayor_que_1 y Mayor_que_2 de un elemento de sintaxis de CABAC. La primera cantidad comprende un primer número predefinido, por ejemplo, nueve, esto es, ocho banderas Mayor_que_1 y una bandera Mayor_que_2.
En el bloque 3413, el dispositivo electrónico 3321 identifica un número de contenedores realmente codificados en el mapa de importancia del elemento de sintaxis. En el bloque 3414, el dispositivo electrónico 3321 determina una diferencia de un segundo número predefinido, por ejemplo, dieciséis en CABAC, y el número identificado. En el bloque 3415, el dispositivo electrónico 3321 codifica por contexto una segunda cantidad de las banderas de código de nivel, en donde la segunda cantidad comprende la diferencia determinada. En el bloque 3416, el dispositivo electrónico 3321 transmite el flujo de bits generado sobre una red y/o almacena el flujo de bits generado en un dispositivo de memoria.
En un ejemplo, si se usa la configuración mostrada en la FIG. 34, el dispositivo electrónico 3321 puede establecer un indicador correspondiente, por ejemplo, una bandera, a un valor de 1 (que por supuesto puede incluir cambiar un valor por defecto de la bandera o dejar la bandera en un valor por defecto dependiendo de la preferencia de diseño). En un ejemplo, el indicador puede identificar un número de indicadores Mayor_que_1 y/o Mayor_que_2 adicionales que se codifican por contexto.
Un ejemplo de un elemento de sintaxis generado según la configuración descrita anteriormente se muestra en la FIG.
36. En el ejemplo, un número de contenedores realmente codificados en el mapa de importancia del elemento de sintaxis del ejemplo es doce. La diferencia determinada entre dieciséis y doce es cuatro. La primera cantidad de las banderas de código de nivel que se codifican por contexto es nueve (ocho banderas Mayor_que_1 y una bandera Mayor_que_2). La segunda cantidad de banderas de código de nivel que se codifican por contexto es cuatro. En este ejemplo particular, estas cuatro son todas banderas Mayor_que_1, pero en otros ejemplos, estas cuatro pueden incluir una o más banderas Mayor_que_1 y una o más banderas Mayor_que_2, o cuatro banderas Mayor_que_2. Las banderas de código de nivel restantes se codifican por derivación.
La Figura 35 es un diagrama de flujo que ilustra una configuración de un método para codificación de alta capacidad de procesamiento para CABAC en HEVC en un dispositivo electrónico en el lado de decodificación.
En el bloque 3510, el dispositivo electrónico 3322 obtiene un flujo de bits. En el bloque 3511, el dispositivo electrónico 3322 recupera un símbolo binario del flujo de bits obtenido.
En el bloque 3512, el dispositivo electrónico 3322 decodifica por contexto una primera cantidad de banderas de código de nivel de un elemento de sintaxis, por ejemplo, banderas Mayor_que_1 y Mayor_que_2 de un elemento de sintaxis de CABAC, en donde la primera cantidad es igual a un primer número predefinido, por ejemplo, nueve, esto es, ocho banderas Mayor_que_1 y una bandera Mayor_que_2. En el rombo 3513, el dispositivo electrónico 3322 determina si las banderas de código de nivel adicionales del elemento de sintaxis se codifican por contexto. En un ejemplo, la determinación puede incluir comprobar una cabecera, tal como una cabecera de segmento, correspondiente al flujo de bits recibido. La comprobación de la cabecera puede comprender además comprobar una cabecera de segmento correspondiente al flujo de bits obtenido para un valor de un indicador, por ejemplo, una bandera. Si el dispositivo electrónico 3322 determina que las banderas de código de nivel adicionales no se codifican por contexto en el rombo 3513, entonces en el bloque 3514 el dispositivo electrónico 3322 decodifica por derivación las banderas de código de nivel restantes del elemento de sintaxis.
Si el dispositivo electrónico 3322 determina que las banderas de código de nivel adicionales se codifican por contexto en el rombo 3513, entonces en el bloque 3515 el dispositivo electrónico 3322 decodifica por contexto una segunda cantidad de las banderas de código de nivel del elemento de sintaxis. En un ejemplo, el dispositivo electrónico 3322 puede identificar un número de banderas Mayor_que_1 y/o Mayor_que_2 adicionales que se codifican por contexto en base a la información de la cabecera de segmento. En el bloque 3514, el dispositivo electrónico 3322 decodifica por derivación cualquier bandera de código de nivel restante. En el bloque 3516, el dispositivo electrónico 3322
almacena el bloque obtenido de los TQC o la muestra residual obtenida en un dispositivo de memoria y/o recupera datos de video.
La Figura 38 es un diagrama de flujo que ilustra una configuración de un método para la codificación de alta capacidad de procesamiento para CABAC en HEVC en un dispositivo electrónico en el lado de decodificación.
En el bloque 3850, el dispositivo electrónico 3322 obtiene un flujo de bits. En el bloque 3851, el dispositivo electrónico 3322 obtiene un bloque de valores de nivel a partir del flujo de bits obtenido.
En el bloque 3853, el dispositivo electrónico 3322 determina una posición de un último coeficiente significativo del bloque. En el bloque 3854, el dispositivo electrónico 3322 decodifica por contexto coeficientes significativos a partir del bloque obtenido, y determina un número máximo de símbolos para decodificar por contexto en función de la posición determinada.
En el bloque 3855, el dispositivo electrónico 3322 restablece un contador, por ejemplo, establece el contador a cero. En el rombo 3856, el dispositivo electrónico 3322 determina si una bandera de código de nivel queda para ser decodificada. Si no queda ninguna bandera de código de nivel en el rombo 3856, entonces en el bloque 3857 el dispositivo electrónico 3322 almacena el bloque obtenido de los TQC o la muestra residual obtenida en un dispositivo de memoria y/o recupera datos de video.
Si queda una bandera de código de nivel (rombo 3856), entonces en el rombo 3858 el dispositivo electrónico 3322 determina si el contador es mayor que un umbral. En un ejemplo, el umbral se puede asociar con el máximo determinado. En un ejemplo, el umbral puede corresponder a una diferencia del máximo determinado y un número de banderas de mapa de importancia del bloque. Si el contador es mayor que el umbral en el rombo 3858, entonces en el bloque 3859 el dispositivo electrónico 3322 decodifica por derivación la bandera de código de nivel. Si el contador no es mayor que el umbral en el rombo 3858, entonces en el bloque 3860 el dispositivo electrónico 3322 decodifica por contexto la bandera de código de nivel. El dispositivo electrónico 3322 aumenta el contador en el bloque 3861.
La Figura 39 es un diagrama de flujo que ilustra una configuración de un método para la codificación de alta capacidad de procesamiento para CABAC en HEVC en un dispositivo electrónico en el lado de decodificación.
En el bloque 3950, el dispositivo electrónico 3322 obtiene un flujo de bits. En el bloque 3951, el dispositivo electrónico 3322 obtiene un bloque de valores de nivel a partir del flujo de bits obtenido.
En el bloque 3953, el dispositivo electrónico 3322 determina una posición de un último coeficiente significativo. En el bloque 3954, el dispositivo electrónico 3322 decodifica por contexto coeficientes significativos del bloque obtenido, y determina un número máximo de símbolos para decodificar por contexto en función tanto de la posición determinada como de la posición del bloque secundario. Los procesos 3955-3961 pueden corresponder a los procesos 3855-3861.
La Figura 40 es un diagrama de flujo que ilustra una configuración de un método para la codificación de alta capacidad de procesamiento para CABAC en HEVC en un dispositivo electrónico en el lado de decodificación.
En el bloque 4050, el dispositivo electrónico 3322 obtiene un flujo de bits. En el bloque 4051, el dispositivo electrónico 3322 obtiene un bloque de valores de nivel a partir del flujo de bits obtenido.
En el bloque 4053, el dispositivo electrónico 3322 determina una posición de un último coeficiente significativo. En el bloque 4054, el dispositivo electrónico 3322 decodifica por contexto coeficientes significativos a partir del bloque obtenido, y determina un número máximo de símbolos para decodificar por contexto en función de una propiedad del bloque, por ejemplo, un número de coeficientes significativos del bloque. Los procesos 4055-4061 pueden corresponder a los procesos 3855-3861.
En un ejemplo, se proporciona un sistema. El sistema puede comprender un dispositivo electrónico configurado para obtener un bloque de valores de nivel a partir de un flujo de bits; decodificar por contexto una bandera de código de nivel del bloque; comprobar si hay una siguiente bandera de código de nivel del bloque; si hay una siguiente bandera de código de nivel, determinar si un recuento de banderas de código de nivel codificadas por contexto es mayor que un umbral; en respuesta a determinar que el recuento no es mayor que el umbral, decodificar por derivación la siguiente bandera de código de nivel; en respuesta a determinar que el recuento es mayor que el umbral, decodificar por contexto la siguiente bandera de código de nivel; recuperar un bloque de TQC o una muestra residual usando las banderas de código de nivel decodificadas; y almacenar el bloque recuperado en un dispositivo de memoria y/o recuperar datos de video.
El dispositivo electrónico se puede configurar para aumentar el recuento en respuesta a la codificación por contexto de la siguiente bandera de código de nivel. El dispositivo electrónico se puede configurar para repetir la comprobación, la determinación, la decodificación y el aumento hasta que se decodifiquen todas las banderas de código de nivel del bloque. El dispositivo electrónico se puede configurar para aumentar el recuento en respuesta a la codificación por contexto de la primera bandera de código de nivel.
El dispositivo electrónico se puede configurar para determinar una posición del último coeficiente significativo del
bloque; y determinar un número máximo de símbolos para decodificar por contexto en base, al menos en parte, a una propiedad del bloque. El dispositivo electrónico se puede configurar para establecer el umbral según un resultado de la determinación del número máximo.
El dispositivo electrónico se puede configurar para determinar una posición del último coeficiente significativo del bloque; y determinar un número máximo de símbolos para decodificar por contexto en base, al menos en parte, a la posición determinada. El dispositivo electrónico se puede configurar para determinar el número máximo de símbolos para decodificar por contexto en base, al menos en parte, a la posición determinada y en base, al menos en parte, a la posición del bloque secundario.
El dispositivo electrónico se puede configurar para decodificar por contexto una primera cantidad de banderas de código de nivel de un elemento de sintaxis asociado con el bloque, en donde la primera cantidad es igual a un primer número predefinido; identificar un número de contenedores realmente codificados en el mapa de importancia del elemento de sintaxis; determinar una diferencia de un segundo número predefinido y el número identificado; y decodificar por contexto una segunda cantidad de las banderas de código de nivel del elemento de sintaxis, en donde la segunda cantidad comprende la diferencia determinada. En un ejemplo, el primer número predefinido puede comprender nueve. En un ejemplo, el segundo número predefinido puede comprender dieciséis. En un ejemplo, las banderas de código de nivel correspondientes a la primera cantidad de banderas de código de nivel codificadas por contexto comprende ocho banderas “mayor que 1” y una bandera “mayor que 2”. En un ejemplo, las banderas de código de nivel correspondientes a la segunda cantidad de banderas de código de nivel codificadas por contexto comprenden solamente banderas “mayor que 1”. En un ejemplo, las banderas de código de nivel correspondientes a la segunda cantidad de banderas de código de nivel codificadas por contexto comprenden solamente banderas “mayor que 2”. En un ejemplo, las banderas de código de nivel corresponden a la segunda cantidad de banderas codificadas por contexto que comprenden un tercer número predefinido de banderas “mayor que 2” y un número dinámico de banderas “mayor que 1”, en donde el número dinámico comprende una diferencia de la segunda cantidad y del tercer número predefinido.
En un ejemplo, se proporciona un sistema. El sistema puede comprender un primer dispositivo electrónico de un codificador, el primer dispositivo electrónico configurado para: obtener un bloque de datos para ser codificado usando un codificador basado en aritmética; determinar si el bloque de datos ha de ser codificado usando codificación sin pérdidas; en respuesta a determinar que el bloque de datos no ha de ser codificado usando codificación sin pérdidas, usar una primera técnica de codificación de Absoluto -3 para codificar el bloque de datos; en respuesta a determinar que el bloque de datos ha de ser codificado usando codificación sin pérdidas, usar una segunda técnica de codificación de Absoluto -3 para codificar el bloque de datos; en donde la segunda técnica de codificación de Absoluto -3 es diferente a la primera técnica de codificación de Absoluto -3; y hacer que la codificación se almacene en un dispositivo de memoria.
El sistema puede comprender además un segundo dispositivo electrónico de un decodificador, el segundo dispositivo electrónico configurado para: determinar si un símbolo binario recibido ha de ser decodificado usando decodificación sin pérdidas; en respuesta a determinar que el símbolo binario no ha de ser decodificado usando decodificación sin pérdidas, usar la primera técnica de codificación de Absoluto -3 para obtener un bloque de TQC; y en respuesta a determinar que el símbolo binario ha de ser decodificado usando decodificación sin pérdidas, usar la segunda técnica de codificación de Absoluto -3 para obtener una muestra residual.
El primer dispositivo electrónico se puede configurar para: en respuesta a determinar que el bloque de datos no ha de ser codificado usando codificación sin pérdidas, inicializar un parámetro de Rice a cero para un valor inicial de un bloque secundario; y en respuesta a determinar que el bloque de datos ha de ser codificado usando codificación sin pérdidas, usar un parámetro de Rice de un último valor de un bloque secundario anterior para un valor inicial del bloque secundario.
El primer dispositivo electrónico se puede configurar para: en respuesta a determinar que el bloque de datos no ha de ser codificado usando codificación sin pérdidas, inicializar un parámetro de Rice a cero para un valor inicial de un bloque secundario; y en respuesta a determinar que el bloque de datos ha de ser codificado usando codificación sin pérdidas, evitar la inicialización del parámetro de Rice a cero para el valor inicial del bloque secundario.
El primer dispositivo electrónico se puede configurar para: en respuesta a determinar que el bloque de datos ha de ser codificado usando codificación sin pérdidas, inicializar el parámetro de Rice en un valor predefinido basado en al menos uno seleccionado del grupo que comprende el tipo de bloque, el tamaño del bloque y la información de color (luma/croma).
El primer dispositivo electrónico se puede configurar para: en respuesta a determinar que el bloque de datos ha de ser codificado usando codificación sin pérdidas, inicializar el parámetro de Rice a uno cuando el tipo de bloque actual sea igual a dos o a cinco.
El primer dispositivo electrónico se puede configurar para: en respuesta a determinar que el bloque de datos no ha de ser codificado usando codificación sin pérdidas, inicializar un parámetro de Rice a cero para un valor inicial de un bloque secundario; y en respuesta a determinar que el bloque de datos ha de ser codificado usando codificación sin
pérdidas, evitar la inicialización del parámetro de Rice a cero para el valor inicial del bloque secundario.
El primer dispositivo electrónico se puede configurar para: en respuesta a determinar que el símbolo binario no ha de ser decodificado usando decodificación sin pérdidas, emplear una primera tabla de actualización de parámetros de Rice; y en respuesta a determinar que el símbolo binario ha de ser decodificado usando una decodificación sin pérdidas, emplear una segunda tabla de actualización de parámetros de Rice que es diferente de la primera tabla de actualización de parámetros de Rice.
La segunda tabla de actualización de parámetros de Rice puede comprender una versión truncada de la primera tabla de actualización de parámetros de Rice. En un ejemplo, solamente la segunda tabla de actualización de parámetros de Rice se configura para evitar una actualización después de que un parámetro de Rice actual se actualice o inicialice a dos, tres o cuatro.
En un ejemplo, se proporciona un sistema. El sistema puede comprender un primer dispositivo electrónico de un codificador, el primer dispositivo electrónico configurado para: obtener un bloque de datos para ser codificado usando un codificador basado en aritmética; codificar por contexto una primera cantidad de banderas de código de nivel de un elemento de sintaxis, en donde la primera cantidad es igual a un primer número predefinido; identificar una cantidad de contenedores realmente codificados en el mapa de importancia del elemento de sintaxis; determinar una diferencia de un segundo número predefinido y el número identificado; codificar por contexto una segunda cantidad de las banderas de código de nivel del elemento de sintaxis, en donde la segunda cantidad comprende la diferencia determinada; y hacer que un flujo de bits generado por la codificación por contexto se almacene en un dispositivo de memoria.
La codificación basada en aritmética puede comprender un codificador de CABAC. El primer número predefinido puede comprender nueve. El segundo número predefinido puede comprender dieciséis. Las banderas de código de nivel correspondientes a la primera cantidad de banderas de código de nivel codificadas por contexto pueden comprender ocho banderas “mayor que 1” y una bandera “mayor que 2”. Las banderas de código de nivel correspondientes a la segunda cantidad de banderas de código de nivel codificadas por contexto pueden comprender solamente banderas “mayor que 1”. Las banderas de código de nivel correspondientes a la segunda cantidad de banderas de código de nivel codificadas por contexto pueden comprender solamente banderas “mayor que 2”. Las banderas de código de nivel correspondientes a la segunda cantidad de banderas codificadas por contexto pueden comprender un tercer número predefinido de banderas “mayor que 2” y un número dinámico de banderas “mayor que 1”, en donde el número dinámico comprende una diferencia de la segunda cantidad y del tercer número predefinido.
El sistema y el aparato descritos anteriormente pueden usar sistemas de procesamiento dedicados, microcontroladores, dispositivos lógicos programables, microprocesadores, o cualquier combinación de los mismos, para realizar algunas o todas las operaciones descritas en la presente memoria. Algunas de las operaciones descritas anteriormente se pueden implementar en software y otras operaciones se pueden implementar en hardware. Una o más de las operaciones, procesos y/o métodos descritos en la presente memoria se pueden realizar mediante un aparato, un dispositivo y/o un sistema sustancialmente similar a los descritos en la presente memoria y con referencia a las figuras ilustradas.
Un dispositivo de procesamiento puede ejecutar instrucciones o “código” almacenado en la memoria. La memoria también puede almacenar datos. El dispositivo de procesamiento puede incluir, pero no se limita a, un procesador analógico, un procesador digital, un microprocesador, un procesador de múltiples núcleos, una agrupación de procesadores, un procesador de red o similares. El dispositivo de procesamiento puede ser parte de un sistema de control integrado o gestor de sistema, o se puede proporcionar como un dispositivo electrónico portátil configurado para interactuar con un sistema en red o bien de manera local o bien de manera remota a través de transmisión inalámbrica.
La memoria del procesador se puede integrar junto con el dispositivo de procesamiento, por ejemplo, una memoria RAM o FLASH dispuesta dentro de un microprocesador de circuito integrado o similar. En otros ejemplos, la memoria puede comprender un dispositivo independiente, tal como una unidad de disco externa, una agrupación de almacenamiento, un llavero FLASH portátil o similar. La memoria y el dispositivo de procesamiento se pueden acoplar de manera operativa entre sí, o en comunicación uno con otro, por ejemplo, mediante un puerto de I/O, una conexión de red o similar, y el dispositivo de procesamiento puede leer un archivo almacenado en la memoria. La memoria asociada puede ser o no “de sólo lectura” por diseño (ROM) en virtud de la configuración de permisos. Otros ejemplos de memoria pueden incluir, pero no se limitan a, WORM, EPROM, EEPROM, FLASH o similares, que se pueden implementar en dispositivos semiconductores de estado sólido. Otras memorias pueden comprender partes móviles, tales como una unidad de disco giratoria convencional. Todas de tales memorias pueden ser “ legibles por máquina” y pueden ser legibles por un dispositivo de procesamiento.
Las instrucciones o comandos de operación se pueden implementar o incorporar en formas tangibles de software almacenado en ordenador (también conocido como “programa de ordenador” o “código”). Los programas o código se pueden almacenar en una memoria digital y se pueden leer por el dispositivo de procesamiento. El “medio de almacenamiento legible por ordenador” (o alternativamente, el “medio de almacenamiento legible por máquina”) puede incluir todos los tipos de memoria anteriores, así como nuevas tecnologías del futuro, siempre que la memoria pueda
ser capaz de almacenar información digital en la naturaleza de un programa de ordenador u otros datos, al menos temporalmente, y siempre que la información almacenada se pueda “ leer” por un dispositivo de procesamiento apropiado. El término “ legible por ordenador” no se puede limitar al uso histórico de “ordenador” para implicar un ordenador central, un miniordenador, un ordenador de sobremesa o incluso un ordenador portátil. Más bien, “ legible por ordenador” puede comprender un medio de almacenamiento que puede ser legible por un procesador, un dispositivo de procesamiento o cualquier sistema informático. Tales medios pueden ser cualquier medio disponible que pueda ser accesible de manera local y/o de manera remota por un ordenador o un procesador, y puede incluir medios volátiles y no volátiles, y medios extraíbles y no extraíbles, o cualquier combinación de los mismos.
Un programa almacenado en un medio de almacenamiento legible por ordenador puede comprender un producto de programa de ordenador. Por ejemplo, un medio de almacenamiento se puede usar como un medio conveniente para almacenar o transportar un programa de ordenador. Por bien de la conveniencia, las operaciones se pueden describir como varios bloques o diagramas funcionales interconectados o acoplados. No obstante, puede haber casos en los que estos bloques o diagramas funcionales se puedan agregar de manera equivalente en un único dispositivo lógico, programa u operación con límites confusos.
Un experto en la técnica reconocerá que los conceptos enseñados en la presente memoria se pueden adaptar a una aplicación particular de muchas otras formas. La invención se expone en la reivindicación adjunta.
Aunque la especificación puede referirse a “un”, “otro” o “algunos” ejemplos en varias ubicaciones, esto no significa necesariamente que cada referencia tal sea al mismo ejemplo o ejemplos, o que el rasgo solamente se aplique a un único ejemplo.
Claims (1)
1. Un método para decodificar un flujo de bits asociado con Coeficientes Transformados y Cuantificados, TQC, en HEVC, el método que comprende:
• obtener el flujo de bits (etapa 2611);
• obtener N TQC de un bloque de flujo de bits, en donde el bloque tiene un tamaño de bloque que tiene los N TQC (etapa 2612);
• determinar un número de TQC que no son iguales a cero entre los N TQC (etapa 2613);
• determinar si el número de TQC que no son iguales a cero del bloque es mayor que un umbral preestablecido, en el que el umbral preestablecido es el 50% de N (etapa 2614);
• si el número de TQC que no son iguales a cero del bloque es mayor que el umbral preestablecido:
o decodificar los valores de nivel de los TQC no iguales a cero con una decodificación por derivación omitiendo una estimación de contexto y una actualización de probabilidad para la Codificación Aritmética Binaria Adaptativa al Contexto, CABAC (etapa 2616),
• si el número de TQC que no son iguales a cero del bloque no es mayor que el umbral preestablecido: o decodificar los valores de nivel de los TQC no iguales a cero con una decodificación habitual usando la estimación de contexto y la actualización de probabilidad para la CABAC (etapa 2615).
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/354,272 US9654139B2 (en) | 2012-01-19 | 2012-01-19 | High throughput binarization (HTB) method for CABAC in HEVC |
| US13/360,615 US8581753B2 (en) | 2012-01-19 | 2012-01-27 | Lossless coding technique for CABAC in HEVC |
| US13/365,215 US20130188736A1 (en) | 2012-01-19 | 2012-02-02 | High throughput significance map processing for cabac in hevc |
| US13/444,710 US8552890B2 (en) | 2012-01-19 | 2012-04-11 | Lossless coding with different parameter selection technique for CABAC in HEVC |
| US13/457,272 US9743116B2 (en) | 2012-01-19 | 2012-04-26 | High throughput coding for CABAC in HEVC |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2765807T3 true ES2765807T3 (es) | 2020-06-11 |
Family
ID=48797172
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17165914T Active ES2765807T3 (es) | 2012-01-19 | 2013-01-18 | Codificación modificada para un bloque omitido de transformación para CABAC en HEVC |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US9743116B2 (es) |
| EP (3) | EP3270591B1 (es) |
| JP (1) | JP2015504256A (es) |
| CN (1) | CN104054342B (es) |
| ES (1) | ES2765807T3 (es) |
| WO (1) | WO2013108639A1 (es) |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9743116B2 (en) | 2012-01-19 | 2017-08-22 | Huawei Technologies Co., Ltd. | High throughput coding for CABAC in HEVC |
| US9860527B2 (en) | 2012-01-19 | 2018-01-02 | Huawei Technologies Co., Ltd. | High throughput residual coding for a transform skipped block for CABAC in HEVC |
| US10616581B2 (en) | 2012-01-19 | 2020-04-07 | Huawei Technologies Co., Ltd. | Modified coding for a transform skipped block for CABAC in HEVC |
| US20130188736A1 (en) | 2012-01-19 | 2013-07-25 | Sharp Laboratories Of America, Inc. | High throughput significance map processing for cabac in hevc |
| US9654139B2 (en) | 2012-01-19 | 2017-05-16 | Huawei Technologies Co., Ltd. | High throughput binarization (HTB) method for CABAC in HEVC |
| CN103460701B (zh) * | 2012-01-20 | 2017-06-09 | 索尼公司 | 有效度图编码的复杂度降低 |
| US10284851B2 (en) * | 2012-01-21 | 2019-05-07 | Google Technology Holdings LLC | Method of determining binary codewords for transform coefficients |
| US20130188729A1 (en) * | 2012-01-21 | 2013-07-25 | General Instrument Corporation | Method of determining binary codewords for transform coefficients |
| US9635358B2 (en) | 2012-01-21 | 2017-04-25 | Google Technology Holdings LLC | Method of determining binary codewords for transform coefficients |
| US9866829B2 (en) * | 2012-01-22 | 2018-01-09 | Qualcomm Incorporated | Coding of syntax elements that correspond to coefficients of a coefficient block in video coding |
| PL2837185T3 (pl) | 2012-04-13 | 2020-03-31 | Canon Kabushiki Kaisha | Sposób, aparat i system do kodowania i dekodowania podzbioru jednostek transformacji zakodowanych danych wideo |
| JP6130515B2 (ja) * | 2013-04-05 | 2017-05-17 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Hevcにおけるcabacに対する変換スキップブロックに対する高スループット残差符号化 |
| GB2513111A (en) * | 2013-04-08 | 2014-10-22 | Sony Corp | Data encoding and decoding |
| US9936200B2 (en) * | 2013-04-12 | 2018-04-03 | Qualcomm Incorporated | Rice parameter update for coefficient level coding in video coding process |
| US10021419B2 (en) | 2013-07-12 | 2018-07-10 | Qualcomm Incorported | Rice parameter initialization for coefficient level coding in video coding process |
| CN103826120B (zh) * | 2014-03-18 | 2017-04-05 | 山东大学 | 一种适用于hevc的码流解析器 |
| US9781424B2 (en) | 2015-01-19 | 2017-10-03 | Google Inc. | Efficient context handling in arithmetic coding |
| US20190020877A1 (en) * | 2016-01-21 | 2019-01-17 | Sony Corporation | Image processing apparatus and method |
| KR102442406B1 (ko) * | 2016-05-20 | 2022-09-13 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법 |
| WO2018030291A1 (ja) * | 2016-08-10 | 2018-02-15 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
| EP3499888A4 (en) * | 2016-08-10 | 2019-06-19 | Panasonic Intellectual Property Corporation of America | CODING DEVICE, DECODING DEVICE, CODING METHOD AND DECODING METHOD |
| WO2018030293A1 (ja) * | 2016-08-10 | 2018-02-15 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
| US11381822B2 (en) * | 2018-09-21 | 2022-07-05 | Interdigital Vc Holdings, Inc. | Scalar quantizer decision scheme for dependent scalar quantization |
| KR20260020207A (ko) * | 2019-01-14 | 2026-02-10 | 로즈데일 다이나믹스 엘엘씨 | 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치 |
| WO2020253874A1 (en) * | 2019-06-21 | 2020-12-24 | Beijing Bytedance Network Technology Co., Ltd. | Restriction on number of context coded bins |
| CN113875243A (zh) * | 2019-06-25 | 2021-12-31 | 英特尔公司 | 一般性旁路仓格和在熵编码中的应用 |
| GB2585041A (en) * | 2019-06-25 | 2020-12-30 | Sony Corp | Image data encoding and decoding |
| WO2021040492A1 (ko) * | 2019-08-31 | 2021-03-04 | 엘지전자 주식회사 | 비디오/영상 코딩 시스템에서 변환 계수 코딩 방법 및 장치 |
| US20210084293A1 (en) * | 2019-09-12 | 2021-03-18 | Alibaba Group Holding Limited | Method and apparatus for coding video data |
| US11468601B2 (en) | 2020-01-13 | 2022-10-11 | Samsung Display Co., Ltd. | Systems and methods for scalable throughput entropy coder |
| KR102728795B1 (ko) * | 2020-12-11 | 2024-11-11 | 삼성전자주식회사 | 부호 및 복호를 수행하는 디스플레이 구동 회로 및 이의 방법 |
Family Cites Families (62)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3016456B2 (ja) | 1992-06-15 | 2000-03-06 | 日本電信電話株式会社 | 適応的可変長符号化方法 |
| US5982437A (en) | 1992-10-26 | 1999-11-09 | Sony Corporation | Coding method and system, and decoding method and system |
| KR0155784B1 (ko) | 1993-12-16 | 1998-12-15 | 김광호 | 영상데이타의 적응형 가변장 부호화/복호화방법 |
| JP2000032393A (ja) | 1998-07-09 | 2000-01-28 | Sony Corp | 画像情報処理装置および方法、並びに提供媒体 |
| US6658167B1 (en) | 1999-01-31 | 2003-12-02 | Hewlett-Packard Development Company, L.P. | On the fly server for modifying data characteristics for client-server network applications |
| EP3099066B1 (en) | 2001-11-22 | 2019-08-14 | Godo Kaisha IP Bridge 1 | Variable length coding method and variable length decoding method |
| JP2003319391A (ja) | 2002-04-26 | 2003-11-07 | Sony Corp | 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム |
| JP2004040246A (ja) | 2002-06-28 | 2004-02-05 | Canon Inc | 情報処理装置、情報処理方法 |
| US7016547B1 (en) | 2002-06-28 | 2006-03-21 | Microsoft Corporation | Adaptive entropy encoding/decoding for screen capture content |
| KR20040031949A (ko) | 2002-10-08 | 2004-04-14 | 엘지전자 주식회사 | 동영상 인코딩 및 디코딩 방법 |
| JP4240283B2 (ja) | 2002-10-10 | 2009-03-18 | ソニー株式会社 | 復号装置及び復号方法 |
| US6646578B1 (en) | 2002-11-22 | 2003-11-11 | Ub Video Inc. | Context adaptive variable length decoding system and method |
| US6900748B2 (en) | 2003-07-17 | 2005-05-31 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Method and apparatus for binarization and arithmetic coding of a data value |
| US7286710B2 (en) | 2003-10-01 | 2007-10-23 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Coding of a syntax element contained in a pre-coded video signal |
| KR100532612B1 (ko) | 2004-06-18 | 2005-12-01 | 삼성전자주식회사 | 광디스크 판별 오류시 재생모드 변경방법 및 장치 |
| KR100612015B1 (ko) | 2004-07-22 | 2006-08-11 | 삼성전자주식회사 | 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치 |
| US7991610B2 (en) | 2005-04-13 | 2011-08-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Adaptive grouping of parameters for enhanced coding efficiency |
| US20070121728A1 (en) | 2005-05-12 | 2007-05-31 | Kylintv, Inc. | Codec for IPTV |
| KR20070006445A (ko) | 2005-07-08 | 2007-01-11 | 삼성전자주식회사 | 하이브리드 엔트로피 부호화, 복호화 방법 및 장치 |
| CN100466739C (zh) | 2005-10-12 | 2009-03-04 | 华为技术有限公司 | Cabac解码系统及方法 |
| WO2007116551A1 (ja) | 2006-03-30 | 2007-10-18 | Kabushiki Kaisha Toshiba | 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法 |
| US7508328B2 (en) | 2006-09-15 | 2009-03-24 | Nemochips, Inc. | Entropy processor for decoding |
| US7369066B1 (en) | 2006-12-21 | 2008-05-06 | Lsi Logic Corporation | Efficient 8×8 CABAC residual block transcode system |
| US8467449B2 (en) | 2007-01-08 | 2013-06-18 | Qualcomm Incorporated | CAVLC enhancements for SVC CGS enhancement layer coding |
| KR101356733B1 (ko) | 2007-03-07 | 2014-02-05 | 삼성전자주식회사 | 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치 |
| CN101658042B (zh) | 2007-03-13 | 2016-03-02 | 诺基亚技术有限公司 | 用于视频编码和解码的系统和方法 |
| US8046214B2 (en) | 2007-06-22 | 2011-10-25 | Microsoft Corporation | Low complexity decoder for complex transform coding of multi-channel sound |
| US9648325B2 (en) | 2007-06-30 | 2017-05-09 | Microsoft Technology Licensing, Llc | Video decoding implementations for a graphics processing unit |
| US7777654B2 (en) | 2007-10-16 | 2010-08-17 | Industrial Technology Research Institute | System and method for context-based adaptive binary arithematic encoding and decoding |
| US8249883B2 (en) | 2007-10-26 | 2012-08-21 | Microsoft Corporation | Channel extension coding for multi-channel source |
| JP4962476B2 (ja) | 2008-11-28 | 2012-06-27 | ソニー株式会社 | 算術復号装置 |
| GB2476271B (en) | 2009-12-17 | 2015-09-02 | Skype | Coding data streams |
| WO2011126272A2 (en) | 2010-04-05 | 2011-10-13 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation |
| US10349070B2 (en) | 2010-09-30 | 2019-07-09 | Texas Instruments Incorporated | Simplified binary arithmetic coding engine |
| US20120082230A1 (en) | 2010-10-01 | 2012-04-05 | Qualcomm Incorporated | Variable length coding of video block coefficients |
| US9641846B2 (en) | 2010-10-22 | 2017-05-02 | Qualcomm Incorporated | Adaptive scanning of transform coefficients for video coding |
| US9497472B2 (en) * | 2010-11-16 | 2016-11-15 | Qualcomm Incorporated | Parallel context calculation in video coding |
| US9042440B2 (en) | 2010-12-03 | 2015-05-26 | Qualcomm Incorporated | Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding |
| US8891617B2 (en) | 2011-01-18 | 2014-11-18 | Google Inc. | Method and system for processing video data |
| US9106913B2 (en) | 2011-03-08 | 2015-08-11 | Qualcomm Incorporated | Coding of transform coefficients for video coding |
| GB2492333B (en) | 2011-06-27 | 2018-12-12 | British Broadcasting Corp | Video encoding and decoding using transforms |
| US20130003858A1 (en) * | 2011-06-30 | 2013-01-03 | Vivienne Sze | Simplified Context Selection For Entropy Coding of Transform Coefficient Syntax Elements |
| US9756360B2 (en) | 2011-07-19 | 2017-09-05 | Qualcomm Incorporated | Coefficient scanning in video coding |
| CN109120930B (zh) | 2011-11-04 | 2021-03-26 | 夏普株式会社 | 图像解码装置、图像编码装置及其方法 |
| US20130114687A1 (en) | 2011-11-07 | 2013-05-09 | Sharp Laboratories Of America, Inc. | Fixed intra run-level mode for cavlc in hevc |
| US20130114684A1 (en) | 2011-11-07 | 2013-05-09 | Sharp Laboratories Of America, Inc. | Electronic devices for selective run-level coding and decoding |
| US9357185B2 (en) * | 2011-11-08 | 2016-05-31 | Qualcomm Incorporated | Context optimization for last significant coefficient position coding |
| US8923388B2 (en) | 2011-11-21 | 2014-12-30 | Texas Instruments Incorporated | Early stage slice cap decision in video coding |
| US9503717B2 (en) * | 2012-01-09 | 2016-11-22 | Texas Instruments Incorporated | Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency |
| US9654139B2 (en) | 2012-01-19 | 2017-05-16 | Huawei Technologies Co., Ltd. | High throughput binarization (HTB) method for CABAC in HEVC |
| US9860527B2 (en) | 2012-01-19 | 2018-01-02 | Huawei Technologies Co., Ltd. | High throughput residual coding for a transform skipped block for CABAC in HEVC |
| US20130188736A1 (en) | 2012-01-19 | 2013-07-25 | Sharp Laboratories Of America, Inc. | High throughput significance map processing for cabac in hevc |
| US8552890B2 (en) | 2012-01-19 | 2013-10-08 | Sharp Laboratories Of America, Inc. | Lossless coding with different parameter selection technique for CABAC in HEVC |
| US9743116B2 (en) | 2012-01-19 | 2017-08-22 | Huawei Technologies Co., Ltd. | High throughput coding for CABAC in HEVC |
| US10616581B2 (en) | 2012-01-19 | 2020-04-07 | Huawei Technologies Co., Ltd. | Modified coding for a transform skipped block for CABAC in HEVC |
| US8581753B2 (en) | 2012-01-19 | 2013-11-12 | Sharp Laboratories Of America, Inc. | Lossless coding technique for CABAC in HEVC |
| US20130294524A1 (en) | 2012-05-04 | 2013-11-07 | Qualcomm Incorporated | Transform skipping and lossless coding unification |
| WO2013181821A1 (en) | 2012-06-07 | 2013-12-12 | Mediatek Singapore Pte. Ltd. | Improved intra transform skip mode |
| US10257520B2 (en) | 2012-06-26 | 2019-04-09 | Velos Media, Llc | Modified coding for transform skipping |
| AU2012232992A1 (en) | 2012-09-28 | 2014-04-17 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the transform units of a coding unit |
| WO2014084903A1 (en) | 2012-11-28 | 2014-06-05 | General Instrument Corporation | Devices and methods for modifications of syntax related to transform skip for high efficiency video coding (hevc) |
| AU2013206815A1 (en) | 2013-07-11 | 2015-03-05 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding video data |
-
2012
- 2012-04-26 US US13/457,272 patent/US9743116B2/en active Active
-
2013
- 2013-01-18 EP EP17165914.7A patent/EP3270591B1/en active Active
- 2013-01-18 CN CN201380005986.5A patent/CN104054342B/zh active Active
- 2013-01-18 JP JP2014534694A patent/JP2015504256A/ja active Pending
- 2013-01-18 EP EP13738029.1A patent/EP2805505A4/en not_active Withdrawn
- 2013-01-18 EP EP19195797.6A patent/EP3598752A1/en not_active Withdrawn
- 2013-01-18 WO PCT/JP2013/000242 patent/WO2013108639A1/en not_active Ceased
- 2013-01-18 ES ES17165914T patent/ES2765807T3/es active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3270591A2 (en) | 2018-01-17 |
| EP2805505A1 (en) | 2014-11-26 |
| EP3270591A3 (en) | 2018-04-04 |
| WO2013108639A1 (en) | 2013-07-25 |
| EP2805505A4 (en) | 2015-08-05 |
| US9743116B2 (en) | 2017-08-22 |
| CN104054342A (zh) | 2014-09-17 |
| EP3598752A1 (en) | 2020-01-22 |
| US20130188683A1 (en) | 2013-07-25 |
| EP3270591B1 (en) | 2019-10-30 |
| CN104054342B (zh) | 2020-01-21 |
| JP2015504256A (ja) | 2015-02-05 |
| HK1201662A1 (en) | 2015-09-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2765807T3 (es) | Codificación modificada para un bloque omitido de transformación para CABAC en HEVC | |
| ES2823549T3 (es) | Codificación de mapas de significado y bloques de coeficiente de transformada | |
| US10785483B2 (en) | Modified coding for a transform skipped block for CABAC in HEVC | |
| CN104796712B (zh) | 视频的解码方法 | |
| ES2743227T3 (es) | Método para codificar/decodificar imagen | |
| ES2687471T3 (es) | Procedimiento de decodificación de bloque residual | |
| ES2687522T3 (es) | Procedimiento de actualización de parámetros para decodificar de entropía del nivel de coeficiente de conversión, y dispositivo de decodificación de entropía del nivel de coeficiente de conversión utilizando el mismo | |
| KR102030952B1 (ko) | 하나 이상의 코딩 유닛의 인코딩 및 디코딩하기 위한 방법, 장치 및 컴퓨터 판독가능한 저장 매체 | |
| JP6526099B2 (ja) | Hevcにおけるcabacのための変換スキップされたブロックのための修正コーディング | |
| US9712836B2 (en) | Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit | |
| US9860527B2 (en) | High throughput residual coding for a transform skipped block for CABAC in HEVC | |
| JP6426227B2 (ja) | Hevcにおけるcabacに対する変換スキップブロックに対する高スループット残差符号化 | |
| ES2728529T3 (es) | Mapas de significancia multinivel para codificación y decodificación | |
| KR101604035B1 (ko) | 영상 복호화 방법 및 장치 | |
| KR101604033B1 (ko) | 영상 복호화 방법 및 장치 | |
| BR122025013635A2 (pt) | Aparelho de decodificação de sinal de vídeo, aparelho de codificação de sinal de vídeo, meio legível por computador não transitório e método para processamento de um sinal de vídeo | |
| BR122025013636A2 (pt) | Aparelho de decodificação de sinal de vídeo, aparelho de codificação de sinal de vídeo, meio legível por computador não transitório e método para processamento de um sinal de vídeo |


