ES2608595T3 - Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC - Google Patents

Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC Download PDF

Info

Publication number
ES2608595T3
ES2608595T3 ES12806813.7T ES12806813T ES2608595T3 ES 2608595 T3 ES2608595 T3 ES 2608595T3 ES 12806813 T ES12806813 T ES 12806813T ES 2608595 T3 ES2608595 T3 ES 2608595T3
Authority
ES
Spain
Prior art keywords
indicator
transformation
coefficients
absolute value
transformation coefficients
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12806813.7T
Other languages
English (en)
Inventor
Marta Karczewicz
Jianle Chen
Wei-Jung Chien
Rajan Laxman Joshi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2608595T3 publication Critical patent/ES2608595T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un procedimiento de codificación de coeficientes de transformación generados por una transformación, basada en bloques, de datos residuales a partir de la predicción espacial o temporal en un proceso de codificación de vídeo, procedimiento que comprende: codificación de un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no; codificación de un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular; codificación de un indicador de mayor que uno para coeficientes de transformación en un orden de escaneo inverso en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no; codificación de un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no; codificación de un valor restante de nivel para coeficientes de transformación en el trozo, y señalización del indicador de signo, del indicador de correlación de significancia, del indicador de mayor que uno, del indicador de mayor que dos y del valor restante de nivel en un flujo de bits de vídeo codificado, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que dos, y en el que el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de omisión de la CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC, caracterizado porque un indicador de mayor que uno se codifica solo para unos primeros M1 coeficientes de transformación distintos a cero en el orden de escaneo inverso, en el que M1 es menor que un número máximo de coeficientes de transformación en el trozo, y porque el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en el trozo que sean distintos de cero, pero que no tengan un indicador de mayor que uno codificado.

Description

Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC
Campo técnico
Esta divulgación se refiere a la codificación de vídeo y, más en particular, a técnicas para codificar coeficientes de transformación.
Antecedentes
Las capacidades de vídeo digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de difusión directa digital, sistemas de difusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, dispositivos de videoconferencia, y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG4, Parte 10, Codificación Avanzada de Vídeo (AVC) (H.264/AVC), la norma de Codificación de Vídeo de Alta eficiencia (HEVC), actualmente en desarrollo, y las extensiones de tales normas, para transmitir, recibir y almacenar información de vídeo digital de forma más eficaz.
Las técnicas de compresión de vídeo incluyen la predicción espacial y/o la predicción temporal para reducir o eliminar la redundancia inherente en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, una trama o un fragmento de vídeo pueden dividirse en bloques. Una trama de vídeo, alternativamente, puede denominarse una imagen. Cada bloque se puede dividir adicionalmente. Los bloques en una trama o fragmento intra-codificados (I) se codifican usando la predicción espacial con respecto a muestras de referencia en bloques contiguos en la misma trama o el mismo fragmento. Los bloques de una trama o fragmento inter-codificados (P o B) pueden usar la predicción espacial con respecto a muestras de referencia en bloques contiguos en la misma trama o fragmento, o la predicción temporal con respecto a muestras de referencia en otras tramas de referencia. La predicción espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original a codificar, es decir, el bloque codificado, y el bloque predictivo.
Un bloque inter-codificado se codifica según un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado se codifica según una modalidad de intra-codificación y los datos residuales. Para una mayor compresión, los datos residuales pueden transformarse desde el dominio de píxeles a un dominio de transformación, dando como resultado coeficientes de transformación residuales, los cuales pueden cuantizarse posteriormente. Los coeficientes de transformación cuantizados, inicialmente dispuestos en una formación bidimensional, pueden escanearse en un orden particular con el fin de producir un vector unidimensional de coeficientes de transformación para la codificación por entropía.
Sumario
En general, esta divulgación describe técnicas para la codificación de datos de vídeo. En particular, esta divulgación describe técnicas para la codificación de la información relativa a coeficientes de transformación en un proceso de codificación de vídeo.
Esta divulgación propone varias técnicas para limitar el número de colectores que se codifican utilizando un modelo de contexto adaptativo con codificación aritmética binaria adaptativa de contexto (CABAC), para señalizar coeficientes de transformación en comparación con el número de colectores que están codificados mediante omisión. En particular, esta divulgación divulga técnicas para limitar el número de colectores que utilizan la CABAC para la información de nivel de codificación de coeficientes de transformación en un proceso de codificación de vídeo.
En un ejemplo de la divulgación, un procedimiento de codificación de coeficientes de transformación en un proceso de codificación de vídeo comprende la codificación de un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, la codificación de un indicador de mayor que uno para coeficientes de transformación en un trozo de coeficientes de transformación, indicado como que tiene un valor absoluto mayor que cero, por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y la codificación de un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación
particular tiene un valor absoluto mayor que dos o no.
En otro ejemplo de la divulgación, un procedimiento de codificación de coeficientes de transformación en un proceso de codificación de vídeo comprende la codificación de un indicador de correlación de significancia para coeficientes 5 de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, la codificación de un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor
10 que uno o no, y la codificación de un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no.
15 En otro ejemplo de la divulgación, un procedimiento de codificación de coeficientes de transformación en un proceso de codificación de vídeo comprende la codificación de un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, la codificación de un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo,
20 indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y la codificación de un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un
25 valor absoluto mayor que dos o no.
Esta divulgación también describe un codificador de vídeo, un decodificador de vídeo, aparatos y medios legibles por ordenador que almacenan instrucciones que pueden configurarse para llevar a cabo las técnicas de señalización de coeficientes de transformación descritos en este documento.
30 Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la siguiente descripción. Otras características, objetivos y ventajas resultarán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
35 Breve descripción de los dibujos
La FIG. 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificación y decodificación de vídeo.
La FIG. 2 es un dibujo conceptual que muestra órdenes ejemplares de escaneo inverso para la codificación de 40 coeficientes de transformación.
La FIG. 3 es un dibujo conceptual que muestra un escaneo ejemplar diagonal basado en sub-bloques.
La FIG. 4 es un dibujo conceptual que muestra un escaneo ejemplar diagonal inverso de un trozo de tamaño 4x4 de 45 coeficientes de transformación.
La FIG. 5 es un diagrama conceptual que ilustra umbrales de codificación basados en el contexto, en base a la posición de sub-bloques.
50 La FIG. 6 es un diagrama conceptual que ilustra umbrales de codificación basados en el contexto, en base a la posición de sub-bloque y la posición de un último coeficiente significativo.
La FIG. 7 es un diagrama conceptual que ilustra umbrales de codificación basados en el contexto, en base a la posición de sub-bloque y la posición de al menos un último coeficiente significativo.
55 La FIG. 8 es un diagrama conceptual que muestra una división ejemplar de un bloque de tamaño 8x8 en 4 subbloques de tamaño 4x4 y un entorno contextual.
La FIG. 9 es un diagrama de bloques que ilustra un codificador ejemplar de vídeo.
60 La FIG. 10 es un diagrama de bloques que ilustra un decodificador ejemplar de vídeo.
La FIG. 11 es un diagrama de flujo que muestra un procedimiento ejemplar según las técnicas de esta divulgación.
65 La FIG. 12 es un diagrama de flujo que muestra otro procedimiento ejemplar según las técnicas de esta divulgación.
La FIG. 13 es un diagrama de flujo que muestra otro procedimiento ejemplar según las técnicas de esta divulgación.
Descripción detallada
En general, esta divulgación describe técnicas para codificación de datos de vídeo. En particular, esta divulgación describe técnicas para la codificación de coeficientes de transformación en un proceso de codificación y/o decodificación de vídeo.
La información de nivel (por ejemplo, valor absoluto y signo) para los coeficientes de transformación está normalmente codificada por entropía de una de dos maneras. Algunos colectores de la información de nivel se codifican con un modelo de contexto adaptativo (por ejemplo, con la codificación aritmética binaria adaptativa de contexto (CABAC)). Otros colectores de la información de nivel se codifican mediante una modalidad de omisión con modelos de igual probabilidad fija (por ejemplo, con un codificador de Golomb exponencial o un codificador de Golomb-Rice). Se ha observado que la codificación adaptativa de colectores basada en el contexto, aunque fomenta la eficacia del ancho de banda, es uno de los principales obstáculos de la codificación por entropía.
En vista de este inconveniente, esta divulgación presenta técnicas para mejorar el rendimiento de la CABAC. En particular, en algunos ejemplos, esta divulgación propone técnicas para mejorar el rendimiento de la CABAC reduciendo el número de colectores codificados por contexto adaptativo, y aumentando el número de colectores codificados por omisión.
La FIG. 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificación y decodificación de vídeo 10 de ejemplo que puede configurarse para utilizar técnicas para codificar coeficientes de transformación según ejemplos de esta divulgación. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que transmite vídeo codificado a un dispositivo de destino 14 mediante un canal de comunicación 16. Los datos de vídeo codificados también se pueden almacenar en un medio de almacenamiento 34 o servidor de ficheros 36, y se puede acceder a los mismos mediante el dispositivo de destino 14, según se desee. Cuando se almacena en un medio de almacenamiento o servidor de ficheros, el codificador de vídeo 20 puede proporcionar datos de vídeo codificados a otro dispositivo, tal como un interfaz de red, una grabadora de discos compactos (CD), discos Blu-ray o discos de vídeo digital (DVD), u otros dispositivos, para almacenar los datos de vídeo codificado en el medio de almacenamiento. Del mismo modo, un dispositivo independiente del decodificador de vídeo 30, tal como un interfaz de red, lector de CD o DVD, o similares, puede recuperar los datos de vídeo codificados desde un medio de almacenamiento y proporcionar los datos recuperados al decodificador de vídeo 30.
El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, ordenadores plegables (es decir, portátiles), ordenadores de tableta, decodificadores, equipos telefónicos portátiles tales como los denominados teléfonos inteligentes, televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos o similares. En muchos casos, dichos dispositivos pueden estar equipados para la comunicación inalámbrica. Por lo tanto, el canal de comunicación 16 puede comprender un canal inalámbrico, un canal de cable, o una combinación de canales inalámbricos y por cable, adecuados para la transmisión de datos de vídeo codificado. De forma similar, puede accederse al servidor de ficheros 36 mediante el dispositivo de destino 14, a través de cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión de Wi-Fi), una conexión por cable (por ejemplo, DSL, módem de cable, etc.), o una combinación de ambos que sea adecuada para acceder a datos de vídeo codificado, almacenados en un servidor de ficheros.
Las técnicas para la codificación de coeficientes de transformación, según los ejemplos de esta divulgación, pueden aplicarse a la codificación de vídeo, en soporte de cualquiera entre una diversidad de aplicaciones de multimedios, tales como difusiones de televisión por el aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo por flujo, por ejemplo, mediante Internet, codificación de vídeo digital para su almacenamiento en un medio de almacenamiento de datos, decodificación de vídeo digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para dar soporte a la transmisión de vídeo unidireccional o bidireccional, para prestar soporte a aplicaciones tales como los flujos de transmisión de vídeo, la reproducción de vídeo, la difusión de vídeo y/o la videotelefonía.
En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye un origen de vídeo 18, un codificador de vídeo 20, un modulador/demodulador 22 y un transmisor 24. En el dispositivo de origen 12, el origen de vídeo 18 puede incluir un origen tal como un dispositivo de captura de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contiene vídeo previamente capturado, una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos de ordenador para generar datos de gráficos de ordenador como el vídeo de origen, o una combinación de tales orígenes. Como ejemplo, si el origen de vídeo 18 es una videocámara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos, que pueden proporcionarse, por ejemplo, dentro de teléfonos inteligentes u ordenadores de tableta. Sin embargo, las técnicas descritas en esta divulgación pueden aplicarse a la codificación de vídeo en general, y
pueden aplicarse a aplicaciones inalámbricas y/o por cable, o aplicaciones en las cuales los datos de vídeo codificado se almacenen en un disco local.
El vídeo capturado, pre-capturado o generado por ordenador puede ser codificado por el codificador de vídeo 20. La información de vídeo codificada pueden modularse mediante un módem 22 según una norma de comunicación, tal como un protocolo de comunicación por cable o inalámbrica, y transmitirse al dispositivo de destino 14, mediante el transmisor 24. El módem 22 puede incluir varios mezcladores, filtros, amplificadores u otros componentes diseñados para la modulación de señales. El transmisor 24 puede incluir circuitos diseñados para transmitir datos, incluyendo amplificadores, filtros y, en caso de comunicación inalámbrica, una o más antenas.
El vídeo capturado, pre-capturado, o generado por ordenador que se codifica mediante el codificador de vídeo 20 también puede almacenarse en un medio de almacenamiento de 34 o un servidor de ficheros 36 para un consumo posterior. El medio de almacenamiento 34 puede incluir discos Blu-ray, DVD, CD-ROM, memoria flash, o cualquier otro medio de almacenamiento digital adecuado para el almacenamiento de vídeo codificado. Luego se puede acceder al vídeo codificado almacenado en el medio de almacenamiento 34 mediante el dispositivo de destino 14 para la decodificación y la reproducción. Aunque no se muestra en la FIG. 1, en algunos ejemplos, el medio de almacenamiento 34 y/o el servidor de ficheros 36 puede almacenar la salida del transmisor 24.
El servidor de ficheros 36 puede ser cualquier tipo de servidor capaz de almacenar vídeo codificado y transmitir ese vídeo codificado al dispositivo de destino 14. Entre los ejemplos de servidores de ficheros se incluyen un servidor de la Red (por ejemplo, para una sede de la Red), un servidor del FTP, dispositivos de almacenamiento conectados a red (NAS), una unidad de disco local o cualquier otro tipo de dispositivo capaz de almacenar datos de vídeo codificado y transmitirlo a un dispositivo de destino. La transmisión de datos de vídeo codificado desde el servidor de ficheros 36 puede ser una transmisión por flujo, una transmisión de descarga o una combinación de ambas. Puede accederse al servidor de ficheros 36 mediante el dispositivo de destino 14, a través de cualquier conexión de datos estándar, incluida una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión de Wi-Fi), una conexión cableada (por ejemplo, DSL, módem de cable, Ethernet, USB, etc.), o una combinación de ambos que sea adecuada para acceder a datos de vídeo codificado almacenados en un servidor de ficheros.
El dispositivo de destino 14, en el ejemplo de la FIG. 1 incluye un receptor 26, un módem 28, un decodificador de vídeo 30 y un dispositivo de visualización 32. El receptor 26 del dispositivo de destino 14 recibe información a través del canal 16, y el módem 28 desmodula la información, para producir un flujo de bits desmodulado para el decodificador de vídeo 30. La información comunicada por el canal 16 puede incluir una amplia variedad de información sintáctica generada por el codificador de vídeo 20 para su uso por el decodificador de vídeo 30 en la codificación de los datos de vídeo. Tal sintaxis también puede incluirse con los datos de vídeo codificado, almacenados en el medio de almacenamiento 34 o el servidor de ficheros 36. El codificador de vídeo 20 y el decodificador de vídeo 30 pueden formar parte de un respectivo codificador-decodificador (CODEC) que es capaz de codificar o decodificar datos de vídeo.
El dispositivo de visualización 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también configurarse para mantener interfaces con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 32 exhibe los datos de vídeo decodificado a un usuario, y puede comprender cualquiera entre una diversidad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
En el ejemplo de la FIG. 1, el canal de comunicación 16 puede comprender cualquier medio de comunicación inalámbrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física, o cualquier combinación de medios inalámbricos y cableados. El canal de comunicación 16 puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área extensa o una red global tal como Internet. El canal de comunicación 16 representa generalmente cualquier medio de comunicación adecuado, o un conjunto de diferentes medios de comunicación, para transmitir datos de vídeo desde el dispositivo de origen 12 hasta el dispositivo de destino 14, incluyendo cualquier combinación adecuada de medios cableados o inalámbricos. El canal de comunicación 16 puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
El codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar según una norma de compresión de vídeo, tal como la norma de Codificación de Vídeo de Alta Eficacia (HEVC), actualmente en fase de desarrollo por parte del Equipo de Colaboración Conjunta sobre Codificación de vídeo (JCT-VC) del Grupo de Expertos de Codificación de Vídeo (VCEG) de la UIT-T y el Grupo de Expertos en Películas (MPEG) de ISO/IEC. El borrador de trabajo (WD) más reciente de la HEVC, descrito en el documento JCTVC-11003, de Bross et al., "Codificación de vídeo de alta eficacia (HEVC), borrador de texto de memoria descriptiva 9", Equipo Conjunto de Colaboración sobre Codificación de Vídeo (JCT-VC) de la UIT-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, denominado de aquí en adelante como HEVC WD7, está disponible en http://phenix.int-evry.fr/jct/doc end user/documents/9
Geneva/wg11/JCTVC-I1003-v6.zip.
Como alternativa, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar según otras normas patentadas o industriales, tales como la norma ITU-T H.264, también denominada MPEG 4, Parte 10, Codificación Avanzada de Vídeo (AVC), o extensiones de tales normas. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos incluyen MPEG-2 e ITU-T H.263.
Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden estar integrados con un codificador y decodificador de audio, y pueden incluir unidades adecuadas de multiplexado y demultiplexado, u otro hardware y software, para llevar a cabo la codificación, tanto de audio como de vídeo, en un flujo de datos común o en flujos de datos diferentes. Si procede, en algunos ejemplos, las unidades de multiplexado y demultiplexado pueden ajustarse al protocolo de multiplexado ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
El codificador de vídeo 20 y el decodificador de vídeo 30 pueden implementarse como cualquiera entre una diversidad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), formaciones de compuertas programables en el terreno (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas son implementadas parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio no transitorio adecuado, legible por ordenador, y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. El codificador de vídeo 20 y el decodificador de vídeo 30 pueden incluirse en uno o más codificadores o decodificadores, donde cualquiera de los mismos puede estar integrado como parte de un codificador/decodificador combinado (códec) en un dispositivo respectivo.
El codificador de vídeo 20 puede implementar cualquiera de, o todas, las técnicas de esta divulgación para la codificación de coeficientes de transformación en un proceso de codificación de vídeo. Del mismo modo, el decodificador de vídeo 30 puede implementar cualquiera de, o todas, estas técnicas para la codificación de coeficientes de transformación en un proceso de codificación de vídeo. Un codificador de vídeo, tal como se describe en esta divulgación, puede referirse a un codificador de vídeo o a un decodificador de vídeo. De manera similar, una unidad de codificación de vídeo puede referirse a un codificador de vídeo o a un decodificador de vídeo. Del mismo modo, la codificación de vídeo puede referirse a la codificación de vídeo o a la decodificación de vídeo.
En un ejemplo de la divulgación, el codificador de vídeo 20 puede estar configurado para codificar un indicador de correlación de significancia para cada coeficiente de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codificar un indicador de mayor que uno para coeficientes de transformación en un trozo de coeficientes de transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de posición, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y codificar un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor absoluto mayor que dos o no.
Del mismo modo, el decodificador de vídeo 30 puede estar configurado para decodificar indicadores de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, decodificar un indicador de mayor que uno para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y decodificar un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor absoluto mayor que dos o no.
En otro ejemplo de la divulgación, el codificador de vídeo 20 puede estar configurado para codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codificar un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y codificar un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no.
Del mismo modo, el decodificador de vídeo 30 puede estar configurado para decodificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, decodificar un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y decodificar un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no.
En otro ejemplo de la divulgación, el codificador de vídeo 20 puede estar configurado para codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codificar un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y codificar un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no.
Del mismo modo, el decodificador de vídeo 30 puede estar configurado para decodificar indicadores de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, decodificar un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y decodificar un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no.
Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo para codificar y decodificar de manera más eficaz la información de vídeo digital. La compresión de vídeo puede aplicar técnicas predicción espacial (intra-tramas) y/o predicción temporal (entre tramas) para reducir o eliminar la redundancia intrínseca en las secuencias de vídeo.
El JCT-VC está trabajando en el desarrollo de la norma HEVC, por ejemplo, como se describe en el HEVC WD7 expuesto anteriormente. Los esfuerzos de normalización de la HEVC se basan en un modelo en evolución de un dispositivo de codificación de vídeo denominado modelo de prueba de la HEVC (HM). El HM supone varias capacidades adicionales de los dispositivos de codificación de vídeo, con respecto a dispositivos existentes, según, por ejemplo, la ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modalidades de codificación de intra-predicción, el HM puede proporcionar hasta treinta y tres modalidades de codificación de intrapredicción. La siguiente sección expondrá ciertos aspectos del HM en más detalle.
Para la codificación de vídeo según la norma HEVC actualmente en desarrollo, una trama de vídeo puede dividirse en unidades de codificación. Una unidad de codificación (CU) generalmente se refiere a una región de la imagen que sirve como una unidad básica sobre la cual se aplican diversas herramientas de codificación para la compresión de vídeo. Una CU por lo general tiene un componente de luminancia, denominado Y, y dos componentes de crominancia, denominados U y V. Según el formato de muestreo de vídeo, el tamaño de los componentes U y V, en términos del número de muestras, puede ser el mismo o diferente al tamaño del componente Y.
Una CU es habitualmente cuadrada, y puede considerarse similar a un llamado macro-bloque, por ejemplo, en virtud de otras normas de codificación de vídeo, tales como la ITU-T H.264. La codificación, según algunos de los aspectos propuestos en la actualidad de la norma HEVC en desarrollo, se describirá en esta aplicación con fines ilustrativos. Sin embargo, las técnicas descritas en esta divulgación pueden ser útiles para otros procesos de codificación de vídeo, tales como los que se definen según la H.264 u otros procesos de codificación de vídeo, estándar o patentados.
Según el HM, una CU puede incluir una o más unidades de predicción (PU) y/o una o más unidades de transformación (TU). Los datos sintácticos dentro de un flujo de bits pueden definir una máxima unidad de codificación (LCU), que es la CU más grande en términos del número de píxeles. En general, una CU tiene un propósito similar a un macro-bloque de la H.264, excepto que una CU no tiene una distinción de tamaño. Por lo tanto, una CU puede dividirse en sub-CU. En general, las referencias de esta divulgación a una CU pueden referirse
a la unidad de codificación más grande de una imagen o a una sub-CU de una LCU. Una LCU puede dividirse en varias sub-CU y cada sub-CU puede dividirse adicionalmente en varias sub-CU. Los datos sintácticos para un flujo de bits pueden definir un número máximo de veces en que puede dividirse una LCU, lo que se denomina profundidad de CU. Por consiguiente, un flujo de bits también puede definir una mínima unidad de codificación (SCU). Esta divulgación también usa el término "bloque" o "parte" para referirse a cualquiera entre una CU, una PU
o una TU. En general, "parte" puede referirse a cualquier subconjunto de una trama de vídeo.
Una LCU puede asociarse a una estructura de datos de árbol cuádruple. En general, una estructura de datos de árbol cuádruple incluye un nodo por CU, donde un nodo raíz corresponde a la LCU. Si una CU se divide en cuatro sub-CU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las sub-CU. Cada nodo de la estructura de datos de árbol cuádruple puede proporcionar datos sintácticos para la CU correspondiente. Por ejemplo, un nodo en el árbol cuádruple puede incluir un indicador de división, que indica si la CU correspondiente al nodo está dividida o no en varias sub-CU. Los elementos sintácticos de una CU pueden definirse de manera recursiva y pueden depender de si la CU está dividida o no en varias sub-CU. Si una CU no está dividida adicionalmente, se denomina CU hoja. En esta divulgación, 4 sub-CU de una CU hoja también se denominarán CU hojas aunque no haya una división explícita de la CU hoja original. Por ejemplo, si una CU con un tamaño de 16x16 no se divide adicionalmente, las cuatro sub-CU de tamaño 8x8 también se denominarán CU hojas aunque la CU de tamaño 16x16 no se haya dividido nunca.
Una CU hoja puede incluir una o más unidades de predicción (PU). En general, una PU representa la totalidad o una parte de la CU correspondiente, y puede incluir datos para recuperar una muestra de referencia para la PU. Por ejemplo, cuando la PU está codificada en la modalidad de inter-predicción, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, precisión de un cuarto de píxel o precisión de un octavo de píxel), una trama de referencia a la que apunta el vector de movimiento y/o una lista de referencia (por ejemplo, la Lista 0 o la Lista 1) para el vector de movimiento. Los datos de la CU hoja que definen la(s) PU también pueden describir, por ejemplo, una división de la CU en una o más PU. Las modalidades de división pueden diferir en función de si la CU está sin codificar, codificada en la modalidad de intra-predicción o codificada en la modalidad de inter-predicción. Para la intra-codificación, una PU puede tratarse del mismo modo que una unidad de transformación de hoja descrita a continuación.
La norma HEVC emergente admite transformaciones según las unidades de transformación (TU), que pueden ser distintas para distintas CU. Las TU son habitualmente dimensionadas en base al tamaño de las PU dentro de una CU dada, definida para una LCU dividida, aunque esto puede no ser siempre el caso. Las TU tienen habitualmente el mismo tamaño, o un tamaño más pequeño, que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades más pequeñas usando una estructura de árbol cuádruple conocida como "árbol cuádruple residual" (RQT). Los nodos de hoja del RQT pueden denominarse unidades de transformación (TU). Los valores de diferencias de píxeles asociados a las TU pueden transformarse para producir coeficientes de transformación, que pueden cuantizarse.
En general, una PU se refiere a datos relacionados con el proceso de predicción. Por ejemplo, cuando la PU está codificada en intra-modalidad, la PU puede incluir datos que describen una modalidad de intra-predicción para la PU. Como otro ejemplo, cuando la PU está codificada en inter-modalidad, la PU puede incluir datos que definen un vector de movimiento para la PU.
En general, se usa una TU para los procesos de transformación y cuantización. Una CU dada con una o más PU también puede incluir una o más unidades de transformación (TU). Después de la predicción, el codificador de vídeo 20 puede calcular los valores residuales a partir del bloque de vídeo identificado por el nodo de codificación, según la PU. El nodo de codificación se actualiza a continuación, para hacer referencia a los valores residuales, en lugar del bloque de vídeo original. Los valores residuales comprenden valores de diferencias de píxeles que pueden transformarse en coeficientes de transformación, cuantizarse y escanearse usando las transformaciones y otra información de transformación especificada en las TU, para producir coeficientes de transformación serializados para la codificación por entropía. El nodo de codificación puede, una vez más, ser actualizado para referirse a estos coeficientes de transformación serializados. Esta divulgación usa habitualmente el término “bloque de vídeo” para referirse a un nodo de codificación de una CU. En algunos casos específicos, esta divulgación también puede usar el término “bloque de vídeo” para referirse a un bloque arbolado, es decir, una LCU, o una CU, que incluye un nodo de codificación y las PU y las TU.
Una secuencia de vídeo incluye normalmente una serie de tramas o imágenes de vídeo. Un grupo de imágenes (GOP) comprende generalmente una serie de una o más de las imágenes de vídeo. Un GOP puede incluir datos sintácticos, en una cabecera del GOP, en una cabecera de una o más de las imágenes, o en otras ubicaciones, que describen un cierto número de imágenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintácticos de fragmento que describen una modalidad de codificación para el fragmento respectivo. Un codificador de vídeo 20 actúa habitualmente sobre bloques de vídeo dentro de los fragmentos de vídeo individuales, con el fin
de codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden tener tamaños fijos o variables y pueden diferir en tamaño, según una norma de codificación especificada.
Para codificar un bloque (por ejemplo, una unidad de predicción de datos de vídeo), se obtiene primero un predictor para el bloque. El predictor, también denominado bloque predictivo, puede obtenerse, ya sea mediante la intra (I) predicción (es decir, predicción espacial) o la inter (P o B) predicción (es decir, predicción temporal). Por lo tanto, algunas unidades de predicción pueden estar intra-codificadas (I) usando predicción espacial con respecto a las muestras de referencia en bloques de referencia contiguos en la misma trama (o fragmento), y otras unidades de predicción pueden estar inter-codificadas uni-direccionalmente (P) o inter-codificadas bi-direccionalmente (B) con respecto a bloques de muestras de referencia en otras tramas (o fragmentos) previamente codificadas. En cada caso, las muestras de referencia se pueden utilizar para formar un bloque predictivo para un bloque que ha de codificarse.
Tras la identificación de un bloque predictivo, se determina la diferencia entre los píxeles en el bloque de datos de vídeo original y los píxeles en su bloque predictivo. Esta diferencia puede denominarse datos residuales de predicción, e indica las diferencias de píxeles entre los valores de píxel en el bloque que tiene que codificarse y los valores de píxel en el bloque predictivo seleccionado para representar al bloque codificado. Para lograr una mejor compresión, los datos residuales de predicción pueden transformarse, por ejemplo, usando una transformación de coseno discreta (DCT), una transformación entera, una transformación de Karhunen-Loeve (KL) u otra transformación para producir coeficientes de transformación.
Los datos residuales en un bloque de transformación, tales como una TU, pueden estar dispuestos en una matriz bidimensional (2D) de valores de diferencia de píxeles en el dominio espacial de píxeles. Una transformación convierte los valores de los píxeles residuales en una matriz bidimensional de coeficientes de transformación en un dominio de la transformación, tal como un dominio de frecuencia.
Para una mayor compresión, los coeficientes de transformación pueden cuantizarse antes de la codificación por entropía. Un codificador por entropía, a continuación, aplica codificación por entropía, tal como la codificación de longitud variable adaptativa de contexto (CAVLC), la codificación aritmética binaria adaptativa de contexto (CABAC), la codificación por entropía de división de intervalos de probabilidad (PIPE), o similares, a los coeficientes de transformación cuantizados. En algunos ejemplos, el codificador de vídeo 20 puede utilizar un orden de escaneo predefinido para escanear los coeficientes de transformación cuantizados, para producir un vector serializado que pueda ser codificado por entropía. En otros ejemplos, el codificador de vídeo 20 puede realizar un escaneo adaptativo. Después de escanear los coeficientes de transformación cuantizados para formar un vector unidimensional, el codificador de vídeo 20 puede codificar por entropía el vector unidimensional. El codificador de vídeo 20 puede también codificar por entropía elementos sintácticos asociados a los datos de vídeo codificado para su uso por el decodificador de vídeo 30 en la decodificación de los datos de vídeo.
Esta divulgación se refiere a técnicas para codificadores por entropía para la codificación aritmética binaria adaptativa de contexto (CABAC) u otros codificadores por entropía, tales como codificadores de codificación por entropía de división de intervalos de probabilidad (PIPE) o codificadores relacionados. La codificación aritmética es un tipo de codificación por entropía utilizada en muchos algoritmos de compresión que tienen alta eficacia de codificación, ya que es capaz de correlacionar símbolos con palabras de código de longitud no entera. Un ejemplo de un algoritmo de codificación aritmética es la codificación aritmética binaria basada en contexto (CABAC) utilizada en la H.264 / AVC.
En general, los símbolos de datos de codificación por entropía que utilizan la CABAC implican una o más de las siguientes etapas:
(1)
Binarización: Si un símbolo que ha de codificarse no es de valor binario, se correlaciona con una secuencia de los llamados "colectores". Cada colector puede tener un valor de "0" o "1"
(2)
Asignación de contexto: Cada colector (en modalidad normal) se asigna a un contexto. Un modelo de contexto determina cómo se calcula un contexto para un colector determinado, basándose en la información disponible para el colector, tal como los valores de símbolos codificados previamente o el número de colector.
(3)
Codificación de colectores: Los colectores se codifican con un codificador aritmético. Para codificar un colector, el codificador aritmético requiere como entrada una probabilidad del valor del colector, es decir, una probabilidad de que el valor del colector sea igual a "0", y una probabilidad de que el valor del colector sea igual a "1" La probabilidad (estimada) de cada contexto se representa por un valor entero llamado un "estado de contexto". Cada contexto tiene un estado, y por lo tanto el estado (es decir, la probabilidad estimada) es la misma para colectores asignados a un contexto, y difiere entre contextos.
(4)
Actualización de estado: La probabilidad (estado) para un contexto seleccionado se actualiza basándose en el
valor codificado real del colector (por ejemplo, si el valor del colector es "1", la probabilidad de los "1" se incrementa).
Debería tenerse en cuenta que la codificación por entropía de división de intervalos de probabilidad (PIPE) utiliza principios similares a los de la codificación aritmética, y de este modo puede también utilizar las técnicas de esta divulgación.
La CABAC en la H.264/AVC y la HEVC utiliza estados, y cada estado está implícitamente relacionado con una probabilidad. Hay variantes de la CABAC, en las que se utiliza directamente una probabilidad de un símbolo ("0" o "1"), es decir, la probabilidad (o una versión entera de la misma) es el estado. Por ejemplo, se describen tales variantes de la CABAC en el artículo "Descripción de propuesta de tecnología de codificación de vídeo de France Telecom, NTT, NTT DOCOMO, Panasonic y Technicolor", JCTVC-A114, 1.º reunión del JCT-VC, Dresde, DE, abril de 2010, denominado de aquí en adelante "JCTVC-A114", y en el artículo de A. Alshin y E. Alshina, "Actualización de probabilidades de múltiples parámetros para la CABAC", JCTVC-F254, 6 ª reunión del JCT-VC, Torino, IT, julio de 2011, denominado de aquí en adelante "JCTVC-F254".
Para codificar por entropía un bloque de coeficientes de transformación cuantizados, generalmente se realiza un proceso de escaneo de modo que se reordene la matriz bidimensional (2D) de coeficientes de transformación cuantizados en un bloque, según un orden de escaneo particular, en una matriz ordenada, unidimensional (1D), es decir, un vector, de coeficientes de transformación. A continuación se aplica la codificación por entropía al vector de coeficientes de transformación. El escaneo de los coeficientes de transformación cuantizados en una unidad de transformación serializa la matriz bidimensional de coeficientes de transformación para el codificador por entropía. Puede generarse una correlación de significancia para indicar las posiciones de los coeficientes significativos (es decir, distintos a cero). Se puede aplicar escaneo para escanear los niveles de coeficientes significativos (es decir, distintos a cero), y/o para codificar signos de los coeficientes significativos.
En la norma HEVC emergente, la información de posición de la transformación significativa (por ejemplo, la correlación de significancia) se codifica primero para una TU para indicar la ubicación del último coeficiente distinto a cero en el orden de escaneo. La correlación de significancia y la información de nivel (los valores absolutos y los signos de los coeficientes) se codifican para cada coeficiente en un orden de escaneo inverso.
Actualmente, hay 4 diferentes escaneos en la HEVC: un escaneo diagonal, un escaneo horizontal, un escaneo vertical y un escaneo diagonal basado en sub-bloques. La FIG. 2 muestra ejemplos de órdenes de escaneo inverso para un bloque de coeficientes de transformación. Téngase en cuenta que cada uno entre el patrón diagonal inverso 35, el patrón en zig-zag inverso 29, el patrón vertical inverso 31 y el patrón horizontal inverso 33 procede desde los coeficientes de frecuencia más alta en la esquina inferior derecha del bloque de transformación a los coeficientes de frecuencia más baja en el esquina superior izquierda del bloque de transformación.
El escaneo diagonal, el escaneo horizontal y el escaneo vertical se aplican para las TU de tamaños 4x4 y 8x8. El escaneo diagonal basado en sub-bloques se emplea en las TU de tamaños 16x16 y 32x32 en el modelo de prueba actual de la HEVC. En algunos ejemplos, el escaneo diagonal basado en sub-bloques también podría aplicarse a una TU de tamaño 8x8. En un escaneo basado en sub-bloques, un sub-bloque de tamaño 4x4 de una TU mayor es escaneado antes de pasar a otro sub-bloque de tamaño 4x4 en la TU mayor. En otros ejemplos, un "sub-bloque" puede consistir en un cierto número de coeficientes escaneados de forma consecutiva según el orden de escaneo usado. Por ejemplo, el "sub-bloque" puede consistir en 16 coeficientes consecutivamente escaneados lo largo de un orden de escaneo diagonal.
La FIG. 3 muestra un ejemplo de un escaneo basado en sub-bloques en una TU de tamaño 8x8. La TU de tamaño 8x8 38 consiste en cuatro sub-bloques de tamaño 4x4 (36A, 36B, 36C, 36D). Como se muestra en la FIG. 3, los coeficientes de transformación en el sub-bloque 36A se escanean antes de escanear los coeficientes de transformación en el sub-bloque 36B. A continuación, el escaneo continúa desde el sub-bloque 36B al sub-bloque 36C, y finalmente al sub-bloque 36D. La FIG. 3 muestra un orden de escaneo diagonal hacia adelante en cada subbloque; sin embargo, puede utilizarse cualquier orden de escaneo (por ejemplo, horizontal, vertical, en zigzag, etc.). En otros ejemplos, se utilizan órdenes de escaneo inverso, tales como los que se muestran en la FIG. 2, dentro de cada sub-bloque.
En la norma HEVC emergente, los coeficientes se pueden agrupar en un trozo. La correlación de significancia y la información de nivel (valor absoluto y signo) de los coeficientes de transformación son codificadas para cada trozo. En un ejemplo, un trozo consta de 16 coeficientes consecutivos a lo largo de un orden de escaneo (por ejemplo, un orden de escaneo diagonal hacia adelante o inverso, horizontal o vertical) para una TU de tamaño 4x4 y una TU de tamaño 8x8. Para las TU de tamaños 16x16 y 32x32, un sub-bloque de tamaño 4x4 de coeficientes de transformación dentro de la TU más grande es tratado como un trozo. Los siguientes símbolos se codifican y se señalizan para representar la información del nivel de coeficientes dentro de un trozo. En un ejemplo, todos los símbolos se codifican en un orden de escaneo inverso.
indicador_coef_significativo (abreviatura: indicadorCorrelaciónSig): Este indicador indica la significancia de
cada coeficiente en un trozo. Se considera que un coeficiente con un valor absoluto de uno, o mayor, es significativo. Como ejemplo, un valor de indicadorCorrelaciónSig de 0 indica que el coeficiente no es significativo, mientras que un valor de 1 indica que el coeficiente es significativo. Este indicador puede denominarse generalmente un indicador de significancia.
indicador_nivel_abs_coef_mayor1 (abreviatura: indicadorMayor1): Este indicador indica si el valor absoluto del coeficiente es o no mayor que uno para cualquier coeficiente distinto a cero (es decir, coeficientes con indicadorCorrelaciónSig como 1). Como ejemplo, un valor de indicadorMayor1 de 0 indica que el coeficiente no tiene un valor absoluto mayor que uno, mientras que un valor de 1 para el indicadorMayor1 indica que el coeficiente sí tiene un valor absoluto mayor que uno. Este indicador puede mencionarse generalmente como un indicador de mayor que uno.
indicador_nivel_abs_coef_mayor2 (abreviatura: indicadorMayor2): Este indicador indica si el valor absoluto del coeficiente es o no mayor que dos para cualquier coeficiente con un valor absoluto mayor que uno (es decir, coeficientes con indicadorMayor1 como 1). Como ejemplo, un valor de indicadorMayor2 de 0 indica que el coeficiente no tiene un valor absoluto mayor que dos, mientras que un valor de 1 para el indicadorMayor2 indica que el coeficiente sí tiene un valor absoluto mayor que dos. Este indicador puede mencionarse generalmente como un indicador de mayor que dos.
indicador_Signo_coef (abreviatura: indicadorSigno): Este indicador indica la información de signo para cualquier coeficiente distinto a cero (es decir, coeficientes con indicadorCorrelaciónSig como 1). Por ejemplo, un cero para este indicador indica un signo positivo, mientras que un 1 indica un signo negativo.
nivel_abs_coef_restantes (abreviatura: nivelRest): Este elemento sintáctico indica los valores de nivel absoluto de los coeficientes restantes. Para este indicador, se codifica el valor absoluto del coeficiente, menos tres (abs(nivel)-3), para cada coeficiente con un valor absoluto mayor que dos (es decir, coeficientes con indicadorMayor2 como 1).
La FIG. 4 muestra un ejemplo de coeficientes cuantizados en un bloque de tamaño 4x4 100. El bloque 100 puede ser una TU de tamaño 4x4 o puede ser un sub-bloque (trozo) de tamaño 4x4 en una TU de tamaños 8x8, 16x16 o 32x32. Los símbolos codificados para los coeficientes mostrados en la FIG. 4, escaneados en un orden de escaneo inverso, se resumen en la Tabla 1. En la Tabla 1, pos_escan se refiere a la posición del coeficiente a lo largo del escaneo diagonal inverso mostrado en la FIG. 4. Pos_escan 15 es el primer coeficiente escaneado y se encuentra en la esquina inferior izquierda del bloque 100. El coeficiente cuantizado en pos_escan 15 tiene un valor absoluto de
0. Pos_escan 0 es el último coeficiente escaneado y se encuentra en la esquina superior derecha del bloque 100. El coeficiente cuantizado en pos_escan 0 tiene un valor absoluto de 10. En el caso de una TU de tamaño 4x4 o el último sub-bloque de tamaño 4x4 en una TU mayor, los primeros cuatro indicadoresCorrelaciónSig no necesitan ser codificados, ya que se conoce la posición del último coeficiente distinto a cero. Es decir, la codificación del indicadorCorrelaciónSig puede comenzar en el último coeficiente distinto a cero (en este ejemplo, el coeficiente en pos_escan 11).
pos_escan 15
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Coeficientes 0
0 0 0 1 -1 0 2 0 3 2 -1 0 5 -7 10
indicadorCorrela 0
0 0 0 1 1 0 1 0 1 1 1 0 1 1 1
ciónSig
indicadorMayor
0 0 1 1 1 0 1 1 1
1
indicadorMayor
0 1 0 1 1 1
2
indicadorSigno
0 1 0 0 0 1 1 0 1 0
nivelRest
0 2 4 7
Tabla 1. Símbolos codificados para los coeficientes de una TU de tamaño 4 × 4 o un trozo de tamaño 4 × 4
Entre estos símbolos, los colectores de indicadorCorrelaciónSig, indicadorMayor1 e indicaorMayor2 están codificados con los modelos de contexto adaptativo. Los colectores indicadorSigno y los colectores binarizados de nivelRest se codifican mediante la modalidad de omisión con modelos de igual probabilidad fija (por ejemplo, un código de Golomb exponencial). En el diseño actual de la HEVC, tres colectores de indicadores se codifican con los modelos de contexto adaptativo para un coeficiente con una amplitud mayor que cero. Se ha observado que la codificación de colectores basada en el contexto es uno de los principales obstáculos de la codificación por entropía.
En vista de este inconveniente, esta divulgación presenta técnicas para mejorar el rendimiento de la CABAC. En particular, esta descripción propone técnicas para mejorar el rendimiento de la CABAC reduciendo el número de colectores codificados por contexto, y aumentando el número de colectores codificados por omisión.
En la norma HEVC emergente, la información del nivel de coeficiente se codifica en un orden de escaneo inverso. Normalmente, esto significa que los coeficientes de transformación de frecuencia más alta (coeficientes más cerca de la esquina inferior derecha del bloque) se escanean en primer lugar. En tal diseño, los coeficientes iniciales en el orden de escaneo inverso tienden a tener pequeños valores absolutos. Si tales coeficientes son significativos, tienden a tener una mayor posibilidad de tener un valor absoluto de 1 o 2. Para esos coeficientes, utilizar los símbolos explícitos indicadorMayor1 e indicadorMayor2 puede reducir la longitud de los colectores binarizados para representar el nivel de coeficiente, y los indicadorMayor1 y indicadorMayor2 se pueden codificar de manera eficaz mediante un motor de codificación aritmética con un contexto asignado según el contenido previamente codificado.
Sin embargo, en el caso de los coeficientes restantes en el orden de escaneo inverso, la utilización de los símbolos indicadorMayor1 e indicadorMayor2 tal vez no mejore el rendimiento de compresión ya que los coeficientes tienden a tener valores de nivel absolutos más grandes. La utilización del indicadorMayor1 y del indicadorMayor2 incluso puede degradar la eficacia de la codificación.
Un objetivo de esta divulgación es disminuir el número de colectores codificados por contexto mediante la conmutación adaptativa de los indicadorMayor1 e indicaodrMayor2 explícitos a la sintaxis de nivelRest,</ 383> que se codifica utilizando la modalidad de omisión con un modelo de probabilidad fija. La modalidad de omisión es gestionada por un motor de codificación de omisión que funciona de manera diferente a un motor de la CABAC. El motor de codificación por omisión puede utilizar, por ejemplo, un código de Golomb o un código de Golomb exponencial. La sintaxis de nivelRest normalmente se codifica mediante la binarización del valor de nivelRest (por ejemplo, nivel restante por encima de 2) con un código de Golomb y codificando el valor binarizado en la modalidad de omisión con un modelo de igual probabilidad. En resumen, esta divulgación propone varias técnicas ejemplares para la codificación de los indicadorCorrelaciónSig, indicadorMayor1 y/o indicadorMayor2 explícitos, para solo un subconjunto de los coeficientes de un trozo o una TU.
En un ejemplo, esta divulgación propone limitar el número de coeficientes en un trozo que se codifican de manera explícita con el indicadorMayor2. En algunas propuestas para la HEVC, el número de coeficientes codificados explícitamente con el indicadorMayor2 en un trozo puede ser de hasta 16 coeficientes (por ejemplo, todos los coeficientes del trozo en un caso en que los valores absolutos de todos los coeficientes sean mayores que uno). Esta descripción propone codificar el indicadorMayor2 explícito solo para los primeros N coeficientes en el trozo a lo largo del orden de escaneo, que tengan un valor absoluto mayor que uno (es decir, coeficientes con indicador Mayor1 como 1). El valor de N puede ser seleccionable por un codificador de vídeo y puede fijarse en cualquier valor de 0 a 16. En otro ejemplo, N se selecciona para que sea cualquier valor menor que 16, por ejemplo, de tal manera que menos de la totalidad de los coeficientes en un conjunto de 16 coeficientes se codifiquen con el elemento sintáctico indicadorMayor2. N igual a cero significa que el símbolo indicadorMayor2 no está codificado en absoluto.
Como ejemplo, la divulgación propone aplicar un valor fijo de N para todos los trozos. En un ejemplo particular, N se fija en 1. De tal modo, el indicadorMayor2 solamente se codifica para el primer coeficiente donde se realiza la codificación del indicadorMayor2 (es decir, para el primer coeficiente que tenga un valor absoluto mayor que 1 (indicadorMayor1 de 1)). El indicadorMayor2 no tiene que codificarse si el indicadorMayor1 ya ha sido codificado para indicar que el coeficiente de transformación no es mayor que 1. En este caso, ahora se sabe que el coeficiente de transformación no es mayor que 2, por lo que la codificación del indicadorMayor2 no es necesaria. El uso de 1 como el valor de N proporciona un equilibrio entre la eficacia de codificación y el número de colectores basados en el contexto. Los valores de 2 o 4 también pueden ser adecuados para N, aunque puede escogerse cualquier valor de N.
La Tabla 2 muestra los símbolos que deben codificarse para el trozo ejemplar en la FIG. 4 cuando N es igual a 1. En comparación con los símbolos codificados en la Tabla 1, se omiten cinco indicadoresMayor2 en las posiciones marcadas con una X (pos_escan 6, 5, 2, 1 0). En consecuencia, el nivelRest de los coeficientes en las posiciones de escaneo 6, 5, 2, 1 y 0 está cambiado en comparación con los que se muestran en la Tabla 1. Para estas posiciones, el valor del colector de nivelRest se calcula con (abs(nivel)-2) en lugar de (abs(nivel)-3).
pos_escan
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Coeficientes
0 0 0 0 1 -1 0 2 0 3 2 -1 0 5 -7 10
indicadorCorrela
0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1
ciónSig
indicadorMayor
0 0 1 1 1 0 1 1 1
1
indicadorMayor
0 X X X X X
2
indicadorSigno
0 1 0 0 0 1 1 0 1 0
nivelRest
1 0 3 5 8
Tabla 2. Símbolos codificados para el trozo cuando <N es iguala 1
12 10
Al limitar el número de los indicadorMayor2 explícitos a N, como se ha descrito anteriormente, los símbolos codificados para niveles de coeficientes en un trozo se pueden resumir de la forma siguiente:
indicadorCorrelaciónSig: indica si el valor absoluto del coeficiente es o no mayor que cero.
indicadorMayor1: indica si el valor absoluto del coeficiente es o no mayor que uno para los coeficientes con indicadorCorrelaciónSig de valor 1.
indicadorMayor2: indica si el valor absoluto del coeficiente es o no mayor que dos para los primeros N coeficientes con indicadorMayor1 de valor 1.
indicadorSigno: indica el signo de los coeficientes con indicadorCorrelaciónSig como 1.
nivelRest: indica el valor del nivel absoluto para los coeficientes restantes; el valor (abs(nivel)-3) se utiliza para los coeficientes con indicadorMayor2 de valor 1; el valor (abs(nivel)-2) se señaliza para los coeficientes en los que el indicadorMayor2 explícito no está codificado (indicado con una X en la Tabla 2) y el indicadorMayor1 de valor 1.
Según las técnicas descritas anteriormente, el codificador de vídeo 20 y/o el decodificador de vídeo 30 pueden configurarse para codificar indicadores de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codificar un indicador de mayor que uno para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, codificar un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor absoluto mayor que dos o no, y codificar un valor restante de nivel para coeficientes de transformación en el trozo. El valor de los coeficientes restantes representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tienen un indicador de mayor que dos codificado como 1, y el valor de los coeficientes restantes representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado como 1, pero no está codificado un indicador de mayor que dos.
En otro ejemplo, esta divulgación propone limitar el número de coeficientes en un trozo que estén codificados de manera explícita con el indicadorMayor1. En algunas propuestas para la HEVC, el número de elementos sintácticos indicadorMayor1 codificados en un trozo puede llegar a 16 en los casos en que todos los coeficientes son significativos. Como ejemplo, esta divulgación propone codificar el indicadorMayor1 explícito solo para los primeros M1 coeficientes distintos a cero a lo largo de un orden de escaneo inverso en un trozo. M1 puede seleccionarse para que sea cualquier valor de 0 a 16. En otro ejemploM1 se selecciona para que sea cualquier valor inferior a 16, por ejemplo, de tal manera que menos de la totalidad de los coeficientes en un conjunto de 16 coeficientes se codifiquen con el elemento sintáctico indicadorMayor1. M1 igual a cero significa que el símbolo indicadorMayor1 no está codificado en absoluto.
En un ejemplo, esta divulgación propone aplicar un valor de M1 fijo para todos los trozos. En un ejemplo particular M1 se fija en 8. De tal modo, el indicadorMayor1 solamente se codifica para los primeros ocho coeficientes donde se realiza la codificación del indicadorMayor1 (es decir, para los primeros ocho coeficientes que tengan un valor absoluto mayor que 0 (indicadorCorrelaciónSig de 1)). Usar 8 como el valor de M1 proporciona un equilibrio entre la eficacia de codificación y el número de colectores basados en el contexto. 2 o 4 también pueden ser valores adecuados de M1 para los coeficientes en un trozo. La Tabla 3 muestra los símbolos que deben codificarse para el trozo ejemplar en la FIG. 4 cuando M1 es igual a 4. La Tabla 4 muestra los símbolos que deben codificarse para el trozo ejemplar en la FIG. 4 cuando M1 es igual a 8. En comparación con los símbolos de la Tabla 1, cinco indicadorMayor1 y cuatro indicadorMayor2 en las posiciones marcadas con X se omiten cuando M1 es igual a 4. En comparación con los símbolos en la Tabla 1, un indicadorMayor1 y un indicadorMayor2 en las posiciones marcadas con X se omiten cuando M1 es igual a 8. Para las posiciones marcadas con una X en las Tablas 3 y 4, el valor del colector nivelRest se calcula con (abs(nivel)-l) en lugar de (abs(nivel)-3).
pos_escan
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Coeficientes
0 0 0 0 1 -1 0 2 0 3 2 -1 0 5 -7 10
indicadorCorrelaci
0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1
ónSig
indicadorMayor1
0 0 1 1 X X X X X
indicadorMayor2
0 1 X X X X
indicadorSigno
0 1 0 0 0 1 1 0 1 0
nivelRest
0 1 4 6 9
Tabla 3. Símbolos codificados para el trozo cuando M1 es igual a4
pos_escan
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Coeficientes
0 0 0 0 1 -1 0 2 0 3 2 -1 0 5 -7 10
indicadorCorrela
0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1
ciónSig
indicadorMayor1
0 0 1 1 1 0 1 1 X
indicadorMayor2
0 1 0 1 1 X
indicadorSigno
0 1 0 0 0 1 1 0 1 0
nivelRest
0 1 2 4 9
Tabla 4. Símbolos codificados para el trozo cuando M1 es igual a8
5 Al limitar el número máximo de indicadoresMayor1 a M1, los símbolos codificados de los niveles de coeficientes en un trozo se pueden resumir de la forma siguiente:
indicadorCorrelaciónSig: indica si el valor absoluto del coeficiente es o no mayor que cero.
10 indicadorMayor1: indica si el valor absoluto del coeficiente es o no mayor que uno para los primeros M1 coeficientes distintos a cero (indicadorCorrelaciónSig de valor 1).
indicadorMayor2 indica si el valor absoluto del coeficiente es o no mayor que dos para los coeficientes con 15 indicadorMayor1 de valor 1.
indicadorSigno: indica el signo de los coeficientes con indicadorCorrelaciónSig como 1.
nivelRest: indica el valor del nivel absoluto para los coeficientes restantes; el valor (abs(nivel)-3) se utiliza para 20 coeficientes donde indicadorMayor2 tiene un valor de 1; el valor (abs(nivel)-1) se utiliza para los coeficientes distintos a cero en los que el indicadorMayor1 explícito no está codificado.
Según las técnicas descritas anteriormente, el codificador de vídeo 20 y/o el decodificador de vídeo 30 pueden estar configurados para codificar un indicador de correlación de significancia para coeficientes de transformación en un 25 trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codificar un indicador de mayor que cero para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y codificar un indicador de 30 mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no. El codificador de vídeo 20 y/o el decodificador de vídeo 30 pueden estar configurados además para codificar un valor restante de nivel para coeficientes de transformación en el trozo. El valor de los coeficientes restantes representa el valor absoluto de un
35 coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado como 1, y el valor de los coeficientes restantes representa el valor absoluto de un coeficiente correspondiente, menos uno, para los coeficientes de transformación en el trozo que tengan un indicador de correlación de significancia codificado, pero un indicador de mayor que uno que no está codificado.
40 Los procedimientos descritos anteriormente, de limitación del número de los indicadoresMayor1 y los indicadoresMayo2 codificados de forma explícita, se pueden combinar. En este ejemplo, los símbolos codificados para niveles de coeficientes en un trozo se pueden resumir de la forma siguiente (en principio, N deberá ser igual a o menor que M1):
45 indicadorCorrelaciónSig: indica si el valor absoluto del coeficiente es o no mayor que cero.
indicadorMayor1: indica si el valor absoluto del coeficiente es o no mayor que uno para los primeros M1 coeficientes distintos a cero (indicadorCorrelaciónSig de valor 1).
50 indicadorMayor2: indica si el valor absoluto del coeficiente es o no mayor que dos para los primeros N coeficientes con indicadorMayor1 de valor 1.
indicadorSigno: indica el signo de los coeficientes con indicadorCorrelaciónSig como 1.
55 nivelRest: indica el valor del nivel absoluto de los coeficientes restantes; el valor (abs(nivel)-3) se utiliza para los coeficientes donde indicadorMayor2 tiene un valor de 1; el valor (abs(nivel)-2) se utiliza para los coeficientes donde no está codificado el indicadorMayor2 explícito y el indicadorMayor1 tiene un valor de 1; el valor (abs(nivel)-1) se
utiliza para los coeficientes distintos a cero donde no está codificado el indicadorMayor1 explícito.
La tabla 5 siguiente muestra los símbolos a codificar para el trozo ejemplar en la FIG. 4 cuando tanto el indicadorMayor2 explícito (N es igual a 1) como los indicadoresMayor1 explícitos (M1 es igual a 8) están limitados. En comparación con los símbolos en la Tabla 1, un indicadorMayor1 y cinco indicadoresMayor2 en las posiciones marcadas con X se omiten cuando M1 es igual a8 y N es igual a1.
pos_escan
15 14 13 12 11 10 9 8 ,7 6 5 4 3 2 1 0
Coeficientes
0 0 0 0 1 -1 0 2 0 3 2 -1 0 5 -7 10
indicadorCorrela
0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1
ciónSig
indicadorMayor1
0 0 1 1 1 0 1 1 X
indicadorMayor2
0 X X X X X
indicadorSigno
0 1 0 0 0 1 1 0 1 0
nivelRest
1 0 3 5 9
Tabla 5. Símbolos codificados para el trozo cuando M1 es igual a8 yN es igual a1
Según las técnicas descritas anteriormente, el codificador de vídeo 20 y/o el decodificador de vídeo 30 pueden estar configurados para codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codificar un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y codificar un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor absoluto mayor que dos o no. En este ejemplo, el codificador de vídeo 20 y/o el decodificador de vídeo 30 están configurados para codificar el indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo que son distintos de cero.
El codificador de vídeo 20 y/o el decodificador de vídeo 30 pueden estar configurados además para codificar un valor restante de nivel para coeficientes de transformación en el trozo. El valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para el coeficiente de transformación en el trozo que tenga un indicador de mayor que dos codificado como 1, el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado como 1, pero donde un indicador de mayor que dos no esté codificado, y el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en un trozo que sean distintos de cero, pero que no tengan codificado un indicador de mayor que uno.
Como otro ejemplo, esta divulgación se propone desactivar la codificación de un indicadorMayor1 explícito para los coeficientes restantes en un trozo cuando un cierto número de coeficientes anteriores en el trozo, con un valor absoluto mayor que uno (por ejemplo, indicadorMayor1 codificado como 1), se acumula hasta una cierta cantidad M2. M2 se puede fijar en cualquier valor de 0 a 16.
En un ejemplo, esta divulgación se propone aplicar un valor M2 fijo para todos los trozos. Un valor de M2 de 1 ha demostrado proporcionar un buen compromiso entre la eficacia de codificación y el número de colectores basados en el contexto. 2 o 4 son también valores ejemplares de M2 para los coeficientes en un trozo. La Tabla 6 muestra los símbolos a codificar para el trozo ejemplar en la FIG. 4 cuando M2 es igual a 1. En comparación con los símbolos codificados en la Tabla 1, no se codifican seis indicadorMayor1 en las posiciones marcadas con una X. Para estas posiciones, se utiliza la codificación de nivelRest. NivelRest se calcula con (abs(nivel)-1) en lugar de (abs(nivel)-3), como en la Tabla 1.
pos_escan
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Coeficientes
0 0 0 0 1 -1 0 2 0 3 2 -1 0 5 -7 10
indicadorCorrela
0 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1
ciónSig
indicadorMayor1
0 0 1 X X X X X X
indicadorMayor2
0 X X X X X
indicadorSigno
0 1 0 0 0 1 1 0 1 0
nivelRest
2 1 4 6 9
Tabla 6. Símbolos codificados para un trozo cuando M2 es igual a1
Cuando se utiliza el procedimiento de desactivación de codificación explícita del indicadorMayor1 para los coeficientes restantes cuando el número de indicadoresMayor1, previamente codificados con un valor de 1 en orden de escaneo inverso, se acumula hasta M2, los símbolos codificados para niveles de coeficiente en un trozo se pueden resumir de la siguiente manera:
5 indicadorCorrelaciónSig: indica si el valor absoluto del coeficiente es o no mayor que cero.
indicadorMayor1: indica si el valor absoluto del coeficiente es o no mayor que uno para los coeficientes distintos a cero cuando la cantidad acumulada de los indicadoresMayor1 previamente codificados con un valor igual a 1 es
10 menor que M2.
indicadorMayor2: indica si el valor absoluto del coeficiente es o no mayor que dos para los coeficientes con el indicadorMayor1 codificado como 1.
15 indicadorSigno: indica el signo de los coeficientes con indicadorCorrelaciónSig como 1.
nivelRest: indica el valor del nivel absoluto para los coeficientes restantes; el valor (abs(nivel)-3) se codifica para los coeficientes donde indicadorMayor2 se codifica como 1; el valor (abs(nivel)-1) se codifica para los coeficientes distintos a cero donde no está codificado el indicadorMayor1 explícito.
20 Como se ha descrito anteriormente, el número de colectores codificados para el indicadorMayor1 depende del valor de los indicadoresMayor1 previamente codificados en el trozo. Esto puede dificultar el rendimiento de codificación de colectores, ya que un codificador de vídeo debe llevar un registro de los indicadoresMayor1 codificados previamente en el trozo. Para reducir el impacto de esta dependencia, un codificador de vídeo puede configurarse para codificar
25 un grupo de indicadoresMayor1 juntos, y luego determinar si se desactiva o no la codificación de un indicadorMayor1 explícito para los coeficientes restantes después de la codificación de todos los indicadorMayor1 en un grupo. Un grupo de indicadoresMayor1 puede consistir en un número fijo de indicadoresMayor1. Un tamaño ejemplar de grupo puedeserde2, 3o 4 indicadorsMayor1.
30 Otro ejemplo, que puede aliviar el impacto de esta dependencia, implica la codificación de un grupo adicional de indicadoresMayor1 después de que el número de coeficientes codificados previamente con una amplitud mayor que uno (es decir,indicadorMayor1 codificado como 1) se acumule hasta una cierta cantidad M2. Después de que este grupo adicional está codificado, se desactiva la codificación de indicadoresMayor1 explícitos (es decir, el indicadorMayor1 no está codificado, pero en cambio se codifica un valor de nivelRest en modalidad de omisión). Los
35 tamaños ejemplares del grupo adicional pueden ser de 1, 2 o 3 coeficientes.
Este procedimiento propuesto de limitación del número de indicadoresMayor1 codificados de forma explícita, cuando el número de indicadoresMayor1 previamente codificados en el trozo se acumula hasta un valor M2, puede también combinarse con el procedimiento de limitación del número máximo de indicadoresMayor2 a N. Los símbolos
40 codificados para niveles de coeficientes en un trozo se pueden resumir de la siguiente manera (en principio, N debe ser menor que M2):
indicadorCorrelaciónSig: indica si el valor absoluto del coeficiente es o no mayor que cero.
45 indicadorMayor1: indica si el valor absoluto del coeficiente es o no mayor que uno para los coeficientes cuando el número acumulado de indicadoresMayor1 codificados previamente con un valor de 1 es menor que M2.
indicadorMayor2: indica si el valor absoluto del coeficiente es o no mayor que dos para los primeros N coeficientes con indicadorMayor1 codificado como 1.
50 indicadorSigno: indica el signo de los coeficientes con indicadorCorrelaciónSig como 1.
nivelRest: indica el valor del nivel absoluto de los coeficientes restantes; el valor (abs(nivel)-3) se codifica para los coeficientes donde el indicadorMayor2 se codifica como 1; el valor (abs(nivel)-2) se codifica para los coeficientes
55 donde el indicadorMayor2 explícito no está codificado y el indicadorMayor1 se codifica como 1; y el valor (abs(nivel)1) se codifica para los coeficientes distintos a cero donde no se codifica el indicadorMayor1 explícito.
En otro ejemplo de esta divulgación, todas las técnicas descritas anteriormente pueden combinarse para reducir el número de indicadoresMayor1 e indicadoresMayor2 codificados de forma explícita. Los símbolos codificados para
60 niveles de coeficientes en un trozo en el procedimiento combinado se pueden resumir de la siguiente manera (en principio, M1 deberá ser mayor que M2):
indicadorCorrelaciónSig: indica si el valor absoluto del coeficiente es o no mayor que cero.
65 indicadorMayor1: indica si el valor absoluto del coeficiente es o no mayor que uno para los primeros M1
coeficientes distintos a cero (indicadorCorrelaciónSig de valor 1) y cuando el número acumulado de indicadoresMayor1 previamente codificados con valor de 1 es menor que M2. Si no se cumple alguna de estas condiciones, el indicadorMayor1 no se codifica.
5 indicadorMayor2: indica si el valor absoluto del coeficiente es o no mayor que dos para los primeros N coeficientes con indicadorMayor1 codificado como 1.
indicadorSigno: indica el signo de los coeficientes con indicadorCorrelaciónSig como 1.
10 nivelRest: indica el valor absoluto de los coeficientes restantes; el valor (abs(nivel)-3) se codifica para los coeficientes donde indicadorMayor2 se codifica como 1; el valor (abs(nivel)-2) se codifica para los coeficientes donde el indicadorMayor2 explícito no está codificado y el indicadorMayor1 se codifica como 1; y el valor (abs(nivel)-1) se codifica para los coeficientes distintos a cero, donde no se codifica el indicadorMayor1 explícito.
15 Esta divulgación también propone limitar el número de los indicadoresCorrelaciónSig codificados de forma explícita para los coeficientes en un trozo. En propuestas anteriores para la HEVC, el número de indicadoresCorrelaciónSig codificados en un trozo puede ser de hasta 16 indicadoresCorrelaciónSig en el caso de un trozo no último en una TU grande.
20 En otro ejemplo, esta divulgación propone codificar el indicadorCorrelaciónSig explícito para los primeros K1 coeficientes en un orden de escaneo inverso en un trozo. K1 puede ser seleccionado por un codificador de vídeo que se fije en cualquier valor de 0 a 16. En otro ejemplo, K1 se fija en cualquier valor inferior a 16. K1 igual a cero significa que el símbolo indicadorMayor1 no está codificado explícitamente en absoluto.
25 Esta divulgación propone la aplicación de un valor K1 fijo para todos los trozos. Un valor de 8 para K1</1961 ha demostrado proporcionar un compromiso aceptable entre la eficacia de codificación y el número de colectores basados en el contexto. 12 es también un valor adecuado de K1. La Tabla 7 muestra los símbolos a codificar para el trozo ejemplar en la Fig. 4 cuando K1 es igual a 8. En comparación con los símbolos en la Tabla 1, se omiten ocho indicadoresCorrelaciónSig, seis indicadoresMayor1 y cinco indicadoresMayor2 en las posiciones marcadas con una
30 X. En cambio, el símbolo nivelRest se codifica para esas posiciones. En este caso, la codificación del nivelRest utiliza un valor de amplitud directa (valor absoluto) en lugar de (abs(nivel)-3), como en la Tabla 1.
pos_escan 15
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Coeficientes 0
0 0 0 1 -1 0 2 0 3 2 -1 0 5 -7 10
indicadorCorrela 0
0 0 0 1 1 0 1 X X X X X X X X
ciónSig
indicadorMayor
0 0 1 X X X X X X
1
indicadorMayor
0 X X X X X
2
indicadorSigno
0 1 0 0 0 1 0 1 0
nivelRest
3 2 1 0 5 7 10
Tabla 7. Símbolos codificados para un trozo cuando K1 es igual a8
35 Al limitar el número máximo de los indicadorCorrelaciónSig a un número K1, los símbolos codificados de niveles de coeficientes en un trozo se pueden resumir de la forma siguiente:
indicadorCorrelaciónSig: indica la significancia de cada coeficiente para los primeros K1 coeficientes en un trozo.
40 El indicadorMayor1: indica si el valor absoluto del coeficiente es o no mayor que uno para los coeficientes con indicadorCorrelaciónSig con un valor de 1.
El indicadorMayor2: indica si el valor absoluto del coeficiente es o no mayor que dos para los coeficientes con 45 indicadorMayor1 codificado como 1.
El indicadorSigno: indica el signo de los coeficientes con indicadorCorrelaciónSig como 1.
El nivelRest: indica los valores de nivel absoluto de los coeficientes restantes; el valor (abs(nivel)-3) se codifica para 50 los coeficientes donde el indicadorMayor2 se codifica como 1; el valor (abs (nivel)) se codifica para los coeficientes en los que no se codifica el indicadorCorrelaciónSig explícito.
La técnica de limitación del número de indicadoresCorrelaciónSig codificados explícitamente también se puede combinar con los procedimientos propuestos, descritos anteriormente para la reducción del número de 55 indicadoresMayor1 e indicadoresMayor2 codificados de forma explícita. En este ejemplo, el orden de codificación del
nivelRest y del indicadorSigno puede intercambiarse. Es decir, la codificación del nivelRest se puede realizar antes de la codificación del indicadorSigno.
Como otro ejemplo, esta divulgación propone desactivar la codificación (es decir, no codificar) de los indicadoresCorrelaciónSig explícitos para los coeficientes restantes cuando el número de coeficientes distintos a cero previamente codificados (es decir, indicadorCorrelaciónSig codificado como 1) se acumula hasta una cierta cantidad K2. K2 puede ser seleccionado por un codificador de vídeo para que se fije en cualquier valor de 0 a 16. En otro ejemplo, K2 se puede fijar en cualquier valor inferior a 16. En un ejemplo, esta divulgación propone aplicar un valor K2 fijo para todos los trozos. Un valor K2 de 8 ha demostrado proporcionar un compromiso aceptable entre la eficacia de codificación y el número de colectores basados en el contexto. 4 o 12 son también valores adecuados de K2 para los coeficientes en un trozo.
Los símbolos codificados para niveles de coeficiente en un trozo, donde la codificación explícitamente del indicadorCorrelaciónSig está desactivada (es decir, no codificado) cuando el número de coeficientes distintos a cero codificados previamente se acumulan hasta una cierta cantidad K2, se pueden resumir de la siguiente manera:
indicadorCorrelaciónSig: indica la significación de cada coeficiente cuando la cantidad acumulada de indicadoresCorrelaciónSig codificados previamente con un valor igual a 1 es inferior a K2.
indicadorMayor1: indica si el valor absoluto del coeficiente es o no mayor que uno para coeficientes donde el indicadorCorrelaciónSig se codifica como 1.
indicadorMayor2: indica si el valor absoluto de la amplitud de coeficientes es o no mayor que dos para coeficientes con el indicadorMayor1 codificado como 1.
indicadorSigno: indica el signo de los coeficientes con indicadorCorrelaciónSig como 1.
nivelRest: indica el valor de nivel absoluto de los coeficientes restantes; el valor (abs(nivel)-3) se codifica para los coeficientes, donde el indicadorMayor2 se codifica como 1; el valor (abs (nivel)) se codifica para los coeficientes en los que no se codifica el indicadorCorrelaciónSig explícito.
Esta técnica propuesta se puede combinar con las otras técnicas descritas anteriormente para reducir el número de indicadoresMayor1 e indicadoresMayor2 codificados de forma explícita. En un ejemplo, el orden de codificación de nivelRest y de indicadorSigno puede intercambiarse. Es decir, la codificación del nivelRest se puede realizar antes de la codificación del indicadorSigno.
Las técnicas propuestas descritas anteriormente aplican umbrales fijos (N, M1, M2, K1, y K2) para limitar el número de indicadoresCorrelaciónSig, indicadoresMayor1 e indicadoresMayor2 codificados explícitamente. Como otro ejemplo, esta divulgación también propone señalizar los umbrales K1, K2, N, M1 y M2 en la sintaxis de alto nivel en un flujo de bits de vídeo codificado, tal como en un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de adaptación (APS) o una sintaxis de cabecera de fragmento (CabeceraFragmento). Un codificador puede seleccionar el mejor valor de dichos umbrales según las estadísticas de los coeficientes del contenido de vídeo codificado. El decodificador puede luego aplicar el umbral en un proceso de decodificación por entropía.
Los perfiles y niveles especifican restricciones sobre los flujos de bits y, por lo tanto, límites en las capacidades necesarias para decodificar los flujos de bits. Los perfiles y niveles también se pueden utilizar para indicar puntos de interoperabilidad entre implementaciones de decodificadores individuales. Cada perfil especifica un subconjunto de características algorítmicas y límites que deberán disponer de soporte por parte de todos los decodificadores conformes con ese perfil. Cada nivel especifica un conjunto de límites de los valores que pueden ser adoptados por los elementos sintácticos de la norma de compresión de vídeo. El mismo conjunto de definiciones de nivel se utiliza con todos los perfiles, pero las implementaciones individuales pueden dar soporte a un nivel diferente para cada perfil con soporte. Para cualquier perfil dado, los niveles generalmente corresponden a la carga de procesamiento del decodificador y a la capacidad de memoria. Como otro ejemplo, diferentes umbrales N, M1, M2, K1 y K2, descritos anteriormente en la sintaxis de alto nivel, pueden aplicarse a diferentes niveles y perfiles. Por ejemplo, un perfil de base puede utilizar un valor de umbral más bajo, mientras que un perfil principal puede utilizar el valor de umbral más alto.
Como otro ejemplo, los umbrales K1, K2, N, M1 y M2 pueden cambiarse de forma adaptativa según las características de codificación de vídeo relacionadas del bloque de vídeo codificado. Tales características pueden incluir el parámetro de cuantización, el tamaño de TU, la profundidad de TU, la modalidad de predicción, el tipo de componente de color, las estadísticas de los coeficientes de los trozos o bloques contiguos, etc.
Por ejemplo, los umbrales de N, M1, M2, K1 y K2 se pueden determinar según las estadísticas de los coeficientes en trozos previamente codificados. En el caso de un sub-bloque de tamaño 4x4 en una TU grande, los umbrales N, M1,
M2, K1 y K2 se pueden determinar según las estadísticas de los coeficientes de los sub-bloques circundantes, que fueron codificados previamente (por ejemplo, el sub-bloque derecho y el inferior con relación a un sub-bloque actualmente codificado). Se pueden aplicar las siguientes técnicas ejemplares.
Se aplica un valor más pequeño (incluso cero) para N, M1, M2, K1 y K2 si los coeficientes en los trozos codificados previamente (o los circundantes) tienen un valor absoluto medio mayor que cierto umbral. Y a la inversa, puede utilizarse un valor más alto para N, M1, M2, K1 y K2 cuando los coeficientes en los trozos codificados previamente tienen un valor absoluto medio menor que cierto umbral.
Un valor más pequeño (incluso cero) se aplica para N, M1, M2, K1 y K2 si los coeficientes en los trozos codificados previamente (o los circundantes) tienen un valor absoluto máximo mayor que cierto umbral. Y a la inversa, puede utilizarse un valor más alto para N, M1, M2, K1 y K2 cuando los coeficientes en los trozos codificados previamente tienen un valor absoluto máximo inferior a cierto umbral.
Un valor más pequeño (incluso cero) se aplica para N, M1, M2, K1 y K2 si el número de coeficientes con un valor absoluto, mayor que un cierto valor en trozos previamente codificados (o los circundantes), es mayor que cierto umbral. Y a la inversa, se puede utilizar un valor más alto para N, M1, M2, K1 y K2 cuando el número de coeficientes con un valor absoluto mayor que un cierto valor en los trozos previamente codificados es menor que cierto umbral.
Como ejemplo, si la cantidad de coeficientes con un valor absoluto mayor que uno es mayor que un cierto umbral X, la codificación explícita de indicadoresMayor1 e indicadoresMayor2 puede desactivarse (es decir, fijar N, M1 y M2 en cero). Valores ejemplares del umbral X son 0, 1 y 2.
Como otro ejemplo, los umbrales de N, M1, M2, K1, K2 y se pueden cambiar de forma adaptativa según las estadísticas de los elementos sintácticos ya codificados en un trozo o bloque actual. Por ejemplo, los umbrales N, M1 y M2 pueden depender de las estadísticas de codificación de la codificación del indicadorCorrelaciónSig en el trozo o bloque actual. Más específicamente, si el número de indicadoresCorrelaciónSig con un valor de 1 es más que un cierto umbral Y, entonces la codificación explícita de indicadoresMayor1 e indicadoresMayor2 se desactiva (es decir, se fijan N, M1 y M2 en cero). El umbral Y podría tener diferentes valores en diferentes perfiles y niveles.
Como otro ejemplo, los umbrales N, M1, M2, K1 y K2 se pueden determinar según las estadísticas de los coeficientes en trozos previamente codificados. En el caso de un sub-bloque de tamaño 4x4 en una TU grande, los umbrales N, M1, M2, K1 y K2 se pueden determinar según las estadísticas de los coeficientes con un modelo decadente de los sub-bloques codificados previamente.
Como otro ejemplo, el valor de los umbrales N, M1, M2, K1 y K2 puede depender del valor de un parámetro de cuantización (QP) usado para codificar el bloque actual. Como ejemplo, para el mejor equilibrio entre el rendimiento de la compresión y el rendimiento de la codificación, se pueden aplicar umbrales más grandesN, M1, M2, K1 y K2 a los coeficientes que están cuantizados con un QP alto, por ejemplo, un QP superior a un umbral, y los umbrales más pequeños N, M1, M2, K1 y K2 se pueden aplicar a los coeficientes que están cuantizados con un QP bajo, por ejemplo, un QP menor que o igual a un umbral.
Como otro ejemplo, el valor de los umbrales de N, M1, M2, K1 y K2 puede depender del tamaño de la TU. Se pueden aplicar valores de umbral más grandes para N, M1, M2, K1 y K2 a los coeficientes de una TU con un tamaño grande, y se pueden aplicar valores de umbral más pequeños para N, M1, M2, K1 y K2 a los coeficientes de una TU con un tamaño pequeño.
Como otro ejemplo, el valor de los umbrales N, M1, M2, K1 y K2 puede depender de la modalidad de predicción. Por ejemplo, se pueden aplicar los valores de umbral más grandes para N, M1, M2, K1 y K2 a los coeficientes de un bloque que se predice con la modalidad de intra-predicción, y se pueden aplicar los valores de umbral más pequeños para N, M1, M2, K1 y K2 a los coeficientes de un bloque que se predice con una modalidad de interpredicción. Como ejemplo típico, M2 se fijaen1y N se fija en 1 cuando la modalidad de predicción es la intramodalidad, y M2 se fija en 4 y N se fija en 1 cuando la modalidad de predicción es la inter-modalidad.
Como otro ejemplo, el valor de los umbrales N, Ml, M2, K1 y K2 puede depender del tipo de componente de color. Por ejemplo, se pueden aplicar valores de umbral más grandes para N, M1, M2, K1 y K2 a los coeficientes de un componente de luminancia y se pueden aplicar valores de umbral más pequeños para N, M1, M2, K1 y K2 a los coeficientes de un componente de crominancia, o viceversa.
Como otro ejemplo, el valor de los umbrales de N, M1, M2, K1 y K2 puede depender de la posición del sub-bloque en la TU. Por ejemplo, sean X e Y las posiciones horizontal y vertical del sub-bloque dentro de la TU, respectivamente. Para el ejemplo de una TU de tamaño 16x16, se puede utilizar un umbral de 7 para todos los subbloques con X + Y igual a 6, se puede utilizar un umbral de 6 para todos los sub-bloques con X + Y iguales a 5, y así sucesivamente. En resumen, el umbral es igual a X + Y + 1, en este ejemplo. Un ejemplo de umbrales basados en posición para sub-bloques de tamaño 4x4 en una TU de tamaño 16x16 se muestra en la FIG. 5. Las posiciones X, Y
de cada sub-bloque se muestran en la parte inferior del sub-bloque, mientras que el umbral utilizado se muestra en el centro del sub-bloque.
Como otro ejemplo, los valores de umbral N, M1, M2, K1 y K2 pueden depender solo de la posición del sub-bloque, pero no del tamaño de la TU. Por ejemplo, el umbral puede ser min(TH_max, TH_min+X+Y). TH_max y TH_min son dos constantes que indican el máximo y el mínimo de los umbrales admisibles, en este ejemplo.
Como otro ejemplo, el valor de los umbrales N, M1 y M2, K1 y K2 puede depender de la posición del último coeficiente significativo. Por ejemplo, para un orden de escaneo inverso, tal como se muestra en la FIG. 4, a partir de umbrales fijos para el sub-bloque del último coeficiente significativo, un codificador de vídeo puede reducir gradualmente el umbral sub-bloque a sub-bloque. Por ejemplo, los umbrales pueden reducirse en un tamaño de paso para cada sub-bloque sucesivo. Como otro ejemplo, el umbral puede reducirse gradualmente, cuando los subbloques están en diferentes líneas de sub-bloques diagonales. Por ejemplo, sean X e Y la posición horizontal y vertical de los sub-bloques. Un codificador de vídeo puede utilizar el umbral 8 para todos los sub-bloques con X + Y igual a Z, usar el umbral 7 para todos los sub-bloques con X + Y igual a Z-Δ, usar el umbral 6 para todos los subbloques con X+Y igual a Z-2 Δ, y así sucesivamente.
La FIG. 6 y a la FIG. 7 ilustran la técnica de la asignación de umbrales en una línea diagonal a partir de la posición del sub-bloque con el último coeficiente significativo. El sub-bloque con el último coeficiente significativo se indica con sombreado diagonal. El umbral para el subconjunto que tiene el último coeficiente significativo también se puede cambiar, en función de la posición del último coeficiente significativo en la TU o en el sub-bloque.
Como se ha expuesto anteriormente, las técnicas propuestas de esta descripción limitan el número de colectores basados en el contexto que se aplican a la codificación de niveles de coeficientes dentro de cada trozo (o subbloque). Esta divulgación también propone la introducción de la inter-dependencia de los trozos contiguos dentro de toda una TU (por ejemplo, una TU de tamaño mayor que 4x4).
Por ejemplo, si el indicadorMayor2 codificado explícitamente se ha desactivado para al menos un coeficiente en el trozo (o sub-bloque) actual, los indicadoresMayor2 codificados explícitamente se desactivan automáticamente para los siguientes trozos que son escaneados más adelante en el orden de escaneo. De manera similar, si el indicadorMayor1 codificado explícitamente se ha desactivado para al menos un coeficiente en el trozo (o subbloque) actual, los indicadoresMayor1 codificados explícitamente se desactivan automáticamente para todos los siguientes trozos que sean escaneados más adelante en el orden de escaneo.
Como otro ejemplo, la cantidad acumulada de coeficientes mayores que uno (es decir, los coeficientes que son mayores que uno) y de coeficientes distintos a cero de un trozo actual se propaga a un siguiente trozo con un modelo decadente. Por ejemplo, el número inicial de“indicadorMayor1 == 1” acumulados y el número de indicadoresMayor2 codificados del trozo actual se pueden calcular basándose en la cantidad de coeficientes "mayores que uno" en trozos previamente codificados. Además, el número inicial de indicadoresMayor1 codificados acumulados del trozo actual puede calcularse en base a la cantidad de coeficientes distintos a cero en trozos previamente codificados.
Como otro ejemplo, en el caso en que el trozo es un sub-bloque de tamaño 4x4 en una TU grande, se puede utilizar la información relativa a la codificación de nivel de sub-bloques a la derecha y en la parte inferior del sub-bloque actualmente codificado. Por ejemplo, el indicadorMayor2 codificado explícitamente puede desactivarse automáticamente para un sub-bloque si el indicadorMayor2 codificado explícitamente se ha desactivado alguna vez en un sub-bloque a la derecha y/o en la parte inferior del sub-bloque codificado actualmente. De manera similar, el indicadorMayor1 codificado explícitamente se puede desactivar automáticamente para un sub-bloque si el indicadorMayor1 codificado explícitamente alguna vez se ha desactivado en un sub-bloque a la derecha y/o en la parte inferior del sub-bloque codificado actualmente.
Las técnicas propuestas, descritas anteriormente, también pueden aplicarse a la codificación de niveles de coeficientes de toda una TU, en lugar de solo en trozos de tamaño 4x4. Por ejemplo, esta divulgación también propone codificar el indicadorMayor2 explícito para los primeros NTU coeficientes con valor mayor que uno (es decir, IndicadorMayor1 codificado como 1) de toda una TU en un orden de escaneo inverso. NTU es seleccionable para que sea cualquier valor desde 0 a MaxNumCoef (es decir, el número máximo de coeficientes en una TU; 16 en una TU de tamaño 4x4, 64 en una TU de tamaño 8x8, 256 en una TU de tamaño 16x16 y 1.024 en una TU de tamaño 32x32). En otro ejemplo, NTU se fija para que sea cualquier valor menor que MaxNumCoef. En un ejemplo, un valor NTU fijo puede aplicarse a la codificación de niveles de coeficientes para todos los tamaños de TU. Como compromiso entre la eficacia de codificación y el número de colectores basados en el contexto NTU puede fijarse en un valor de 4. Como otro ejemplo, diferentes valores de NTU se pueden aplicar a tamaños variables de TU, ya que presentan diferentes estadísticas. Los valores de NTU values más pequeños se pueden utilizar en el caso de las TU con tamaños más pequeños, y los valores de NTU más grandes pueden utilizarse en el caso de las TU con tamaños más grandes. Como ejemplo típico, NTU se puede fijar en 1 para una TU de tamaño 4x4, en 2 para una TU de tamaño 8x8, en 4 para una TU de tamaño 16x16 y en 8 para una TU de tamaño 32x32.
Esta divulgación también propone codificar el indicadorMayor1 explícito para los primeros M1TU coeficientes distintos a cero en orden de escaneo inverso de toda una TU. M1TU se puede fijar en cualquier valor entre 0 y MaxNumCoef de la TU. Diferentes valores de M1TU se pueden fijar para tamaños variables de TU, ya que presentan diferentes estadísticas. Es probable que los valores de M1TU más pequeños se utilicen en el caso de las TU con tamaños más pequeños, y es probable que los valores M1TU más grandes se utilicen en el caso de las TU con tamaños más grandes. Como ejemplo típico, M1TU se puede fijar en 4 para una TU de tamaño 4x4, en 8 para una TU de tamaño 8x8, en 16 para una TU de tamaño 16x16 y en 32 para una TU de tamaño 32x32.
Esta divulgación también propone desactivar la codificación del indicadorMayor1 explícito para los coeficientes restantes cuando el número de coeficientes previamente codificados con un valor absoluto mayor que uno (es decir, indicadorMayor1 codificado como 1) en orden de escaneo inverso de toda una TU se acumula hasta cierta cantidad M2 TU. M2TU se puede fijar en cualquier valor entre 0 y MaxNumCoef. Como ejemplo, puede aplicarse un <M2TU fijo a la codificación de niveles de coeficientes para todos los tamaños de TU. Como otro ejemplo, se pueden fijar diferentes valores de M2TU para tamaños variables de TU. Se pueden utilizar valores de M2TU más pequeños en el caso de las TU con tamaños más pequeños, y se pueden utilizar valores de M2TU más grandes en el caso de las TU con tamaños más grandes. Como ejemplo típico, se puede fijar M2TU en 1 para una TU de tamaño 4x4, en 2 para una TU de tamaño 8x8, en 4 para una TU de tamaño 16x16 y en 8 para una TU de tamaño 32x32.
En otro ejemplo, esta divulgación también propone codificar el indicadorCorrelaciónSig explícito para los primeros K1TU coeficientes, en un orden de escaneo inverso de toda una TU. K1TU se puede fijar en cualquier valor de 0 a MaxNumCoef (número máximo de coeficientes) de la TU. Se pueden fijar diferentes valores de K1TU para tamaños variables de TU, ya que presentan números diferentes de coeficientes máximos. Se pueden utilizar valores de K1TU más pequeños en el caso de las TU con tamaños más pequeños, y se pueden utilizar valores de K1TU más grandes en el caso de las TU con tamaños más grandes. Como ejemplo típico, se puede fijar K1TU en 8 para una TU de tamaño 4x4, en 32 para una TU de tamaño 8x8, en 128 para una TU de tamaño 16x16 y en 512 para una TU de tamaño 32x32.
En otro ejemplo, esta divulgación propone desactivar la codificación de los indicadoresCorrelaciónSig explícitos para los coeficientes restantes cuando el número de indicadoresCorrelaciónSig previamente codificados iguales a 1 en un orden de escaneo de toda una TU ascienda hasta una cierta cantidad K2TU. Se puede fijar K2TU en cualquier valor entre 0 a MaxNumCoef. Un K2TU fijo puede aplicarse a la codificación a niveles de coeficientes para todos los tamaños de TU. Como alternativa, se pueden fijar diferentes valores de K2TU para tamaños variables de TU. Se puede utilizar un valor de K2TU más pequeño en el caso de las TU con tamaños más pequeños, y se puede utilizar un valor de K2TU más grande en el caso de las TU con tamaños más grandes. Como ejemplo típico, K2 TU se puede fijar en 4 para una TU de tamaño 4x4, en 16 para una TU de tamaño 8x8, en 32 para una TU de tamaño 16x16 y en 64 para una TU de tamaño 32x32.
Se puede combinar cada una de las técnicas descritas anteriormente para la limitación de la codificación explícita de los indicadoresMayor1, indicadoresMayor2 e indicadoresCorrelaciónSig para toda una TU. Además, los esquemas de umbral adaptativo, descritos anteriormente para los umbrales N, M1, M2, K1 y K2 , también se pueden aplicar para cambiar K1TU, K2TU, NTU, M1TU y M2TU adaptativamente. En el escenario del esquema basado en TU, el bloque circundante significa la TU a la izquierda y arriba.
Según las técnicas descritas anteriormente, los indicadorMayor1, indicadorMayor2 y/o indicadorCorrelaciónSig explícitos solamente se codifican para un número limitado de coeficientes en un trozo. De tal modo, se codifican más coeficientes (incluyendo los coeficientes restantes con pequeño valor absoluto) por omisión, por ejemplo, con la codificación de Golomb, la codificación de Golomb-Rice o la codificación de Golomb exponencial en la modalidad de omisión. Según las técnicas anteriores, esta divulgación también propone modificar los parámetros de adaptación del código de Golomb-Rice para dar cabida a diferentes valores de nivelRest en comparación con los valores de nivelRest codificados en los modelos anteriores de prueba de la HEVC.
Según algunos ejemplos de esta divulgación, el procedimiento de actualización de Golomb-Rice se puede adaptar según las características de los coeficientes que se están codificando. Como ejemplo, el proceso de actualización de parámetros de Golomb-Rice depende de las características relacionadas del bloque de vídeo del trozo codificado, tales como el parámetro de cuantización, el tamaño de la TU, la profundidad de la TU, la modalidad de predicción, el tipo de componente de color (por ejemplo, Y, U o V) del bloque actual y las estadísticas de los coeficientes de trozos
o bloques contiguos, etc.
En general, las técnicas descritas en esta divulgación desactivan la codificación de uno o más de los indicadorMayor2, indicadorMayor1 y/o indicadorCorrelaciónSig en diversas condiciones dentro de un trozo o dentro de una TU, por lo que la codificación de Golomb-Rice se utiliza antes. En un ejemplo alternativo, estas decisiones pueden basarse en estadísticas o características de codificación de vídeo, tales como el número de coeficientes significativos, el número de coeficientes mayores que 1 o mayores que 2 en las TU contiguas. Por otra parte, las decisiones se pueden basar en estadísticas acumuladas desde el comienzo de un fragmento. En otro ejemplo, un
indicador en la sintaxis de mayor nivel (por ejemplo, SPS, PPS, APS o cabecera de fragmento) puede indicar que la conmutación debería producirse inmediatamente desde el principio del fragmento.
En otro ejemplo de la divulgación, la suma de los valores absolutos de los coeficientes codificados hasta ahora en un trozo, las TU, las TU contiguas, o desde el principio del fragmento, se utiliza como criterio para la desactivación de la codificación de uno o más de los indicadorMayor2, indicadorMayor1 e indicadorCorrelaciónSig.
En general, la desactivación de un elemento sintáctico particular, como los indicadorMayor2, indicadorMayor1 o indicadorCorrelaciónSig, puede depender de información ya codificada para ese elemento sintáctico en el trozo. La desactivación de un elemento sintáctico particular también puede depender de la información relacionada con la significancia y la información de nivel que fue codificada para ese trozo, así como para los trozos y TU anteriores desde el comienzo de un fragmento. Por ejemplo, la decisión de desactivar la codificación del indicadorMayor2 puede depender del número de coeficientes mayores que dos codificados previamente en el trozo actual. La decisión de desactivar la codificación del indicadorMayor2 también puede depender del número de coeficientes significativos y/o del número de coeficientes con magnitud absoluta mayor que 1 en todo el trozo.
Cabe señalar que, en una versión del Modelo de Prueba de la HEVC (HM5.0), todos los indicadoresCorrelaciónSig para todo el trozo se envían antes de enviar los indicadoresMayor1, y así sucesivamente. De tal modo, según las técnicas de esta divulgación, la información codificada de los indicadoresCorrelaciónSig en un trozo se puede usar para determinar si se desactiva o no la codificación del indicadorMayor1 o del indicadorMayor2. De una manera similar, toda la información de significancia (indicadorCorrelaciónSig) y de nivel (indicadorMayor1, indicadorMayor2, nivelRest) de los trozos anteriores también se puede usar para tomar la determinación de la activación de la codificación de indicadorCorrelaciónSig, indicadorMayor1 y/o indicadorMayor2, ya que todos los elementos sintácticos para un trozo se envían antes de proceder al siguiente trozo. Si este orden (por ejemplo, de intercalación) se cambia, la decisión de desactivación puede basarse en elementos sintácticos que corresponden a coeficientes previamente codificados / decodificados del trozo.
Si en lugar de utilizar trozos, toda la TU se codifica, ya sea coeficiente a coeficiente o utilizando planos de elementos sintácticos (tales como indicadorCorrelaciónSig, indicadorMayor1, etc.) como se hace en el HM5.0, puede definirse una región espacial de soporte para tomar la decisión de desactivación para un elemento de contexto particular. Una región de soporte puede ser un grupo de coeficientes de transformación cerca de un coeficiente de transformación codificado. Se puede utilizar la información codificada / decodificada de la región de soporte para el elemento sintáctico que tiene que desactivarse, así como los elementos sintácticos que se han codificado previamente, para tomar la decisión. Por ejemplo, una decisión para desactivar un indicadorMayor2 puede utilizar un indicadorMayor2, un indicadorMayor1 y/o un indicadorCorrelaciónSig de la región de soporte espacial. La región de soporte espacial puede contener una contigüidad causal (es decir, ya codificada junto con el orden de escaneo) de coeficientes de transformación en la TU actual. La región de soporte también puede contener coeficientes en la misma ubicación de frecuencia proveniente de otras TU. Si se usan trozos, la región de soporte puede ser no causal para elementos sintácticos que se codifican antes, por ejemplo, el indicadorMayor1 y el indicadorCorrelaciónSig en los ejemplos anteriores.
En todos los ejemplos descritos en este documento, incluidos los ejemplos en los que se desactiva la codificación del indicadorCorrelaciónSig, la posición del último coeficiente distinto a cero se codifica utilizando la CABAC (o cualquier otro codificador por entropía). Para aclarar, cuando todos los indicadoresCorrelaciónSig, indicadoresMayor1 e indicadoresMayor2 se desactivan, todavía se codifica la posición del último coeficiente distinto a cero en una TU. Esto viene seguido de información de nivel (usando codificación de Golomb-Rice), comenzando con el último coeficiente y avanzando al coeficiente de DC en el orden de escaneo inverso.
En algunas propuestas para la HEVC, se introducen procedimientos adicionales para transformar la codificación de coeficientes. En estos procedimientos, se codifican los mismos cinco elementos sintácticos expuestos anteriormente. Para obtener un contexto para la CABAC para losindicadorCorrelaciónSig, indicadorMayor1 e indicadorMayor2, se utilizan las estadísticas relativas a un entorno de los coeficientes cerca del coeficiente de codificación actual. Las estadísticas relativas a un entorno de coeficientes también se pueden utilizar para determinar el parámetro de Golomb-rice (parámetro de Golomb) para el elemento sintáctico nivelRest.
Un ejemplo de un entorno utilizado para la obtención de contexto para un coeficiente de transformación X codificado actualmente, en el caso de un escaneo diagonal hacia abajo y a la izquierda, se muestra en la FIG. 8 con un cuadrilátero de puntos. El entorno es un ejemplo para la codificación de indicadoresCorrelaciónSig, pero también pueden utilizarse otros entornos. Los coeficientes en el entorno están etiquetados como X X0, X1, X2, X3, y X4. La obtención del contexto para diferentes elementos sintácticos se basa en una función de niveles absolutos de los coeficientes en el entorno. En lugar de codificar cada subconjunto o trozo en cinco pases (un pase para cada elemento sintáctico expuesto anteriormente), los elementos sintácticos para un coeficiente de transformación pueden codificarse antes de proceder al siguiente coeficiente.
Como ejemplo, pueden definirse las siguientes cantidades usando el entorno de contexto. En este ejemplo, la suma
es sobre todos los coeficientes en el entorno de contexto.
5 Entonces, la suma_nivel_absoluto se puede utilizar para obtener el índice de contexto para el indicadorCorrelaciónSig, y suma_nivel_absoluto_Menos1 se puede utilizar para obtener los índices de contexto para el indicadorMayor1 y el indicadorMayor2.
Como se ha expuesto anteriormente, las técnicas de esta divulgación pueden mejorar el rendimiento de la CABAC
10 mediante la reducción de los colectores codificados por contexto, desactivando adaptativamente la codificación de indicadorCorrelaciónSig, indicadorMayor1 e indicadorMayor2 por contexto y conmutando a la codificación de Golomb-rice. Esta divulgación también describe técnicas para extender estos conceptos a las técnicas de determinación de un contexto a partir de coeficientes de entorno y sus variantes potenciales.
15 Como ejemplo, puede definirse una región de entorno (un ejemplo típico de una región de entorno se muestra en la FIG. 8) para un coeficiente actual, y puede utilizarse la información de nivel de coeficientes dentro de la región del entorno para tomar la decisión de desactivación para un elemento de contexto particular del coeficiente actual. Por ejemplo, una decisión para la desactivación de indicadorMayor2 para un coeficiente puede utilizar los indicadorMayor2, indicadorMayor1 y/o indicadorCorrelaciónSig dentro de la región de entorno. La decisión de
20 desactivar un indicadorMayor1 para un coeficiente puede utilizar el indicadorMayor1 y/o el indicadorCorrelaciónSig dentro de la región de entorno. Cuando los coeficientes se codifican coeficiente por coeficiente, toda la información de nivel dentro del entorno puede estar disponible y se puede utilizar para determinar si se desactiva o no un indicadorMayor2, un indicadorMayor1 y/o un indicadorCorrelaciónSig del coeficiente actual. En algunos casos, cuando los valores de la siguiente información enumerada de 1a 6 son mayores que ciertos umbrales, el
25 indicaorMayor2, el indicadorMayor1 y/o el indicadorCorrelaciónSig del coeficiente actual puede desactivarse.
1. Número de coeficientes significativos dentro de la región de entorno tal como se definen en la Ecuación (1)
2. Suma del nivel absoluto dentro de la región de entorno tal como se define en la Ecuación (2) 30
3.
Suma del nivel absoluto, menos 1, dentro de la región de entorno tal como se define en la Ecuación (3)
4.
Nivel absoluto máximo dentro de la región de entorno
35 5. Cualquier otro cálculo lineal o no lineal de la información de nivel dentro de la región de entorno
6. Cualquier otro cálculo lineal o no lineal basado en los valores en los elementos 1, 2, 3 y/o 4
Cuando los coeficientes se codifican coeficiente por coeficiente, la región de entorno antes mencionada solo incluye
40 coeficientes causales. Cuando los coeficientes se codifican con pases separados, la región de entorno antes mencionada también puede incluir coeficientes no causales. En algunos ejemplos, la región de entorno antes mencionada puede ser todo el trozo actual o incluso toda la TU actual.
Como se ha mencionado anteriormente, toda la información de nivel sobre los coeficientes dentro de la región de
45 entorno puede utilizarse para tomar la decisión de desactivar la codificación basada en el contexto de un elemento sintáctico. Sin embargo, la codificación del nivel completo puede, en algunos casos, ser una carga sobre los recursos de almacenamiento. En consecuencia, en algunos casos, el nivel de coeficientes puede limitarse a un cierto umbral (que puede ser 2, 3, 7, etc.) y a continuación utilizarse para determinar si se desactiva o no la codificación basada en el contexto para un elemento sintáctico concreto para un coeficiente de transformación.
Como se ha mencionado anteriormente, la decisión de si se desactiva o no un elemento sintáctico particular codificado por contexto para un coeficiente se puede tomar para cada coeficiente. Como alternativa, la decisión de desactivación para un elemento sintáctico particular codificado por contexto puede activarse y propagarse. Por ejemplo, una vez que un elemento sintáctico particular codificado por contexto se desactiva para el coeficiente actual, este elemento sintáctico particular codificado por contexto se puede desactivar para todos los coeficientes restantes en un trozo actual, o incluso para todos los coeficientes restantes en una TU actual.
La FIG. 9 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo 20 que puede utilizar técnicas para codificar coeficientes de transformación tal como se describe en esta divulgación. El codificador de vídeo 20 se describirá en el contexto de la codificación de HEVC con fines ilustrativos, pero sin limitación de esta divulgación en cuanto a otras normas de codificación o procedimientos que puedan requerir el escaneo de coeficientes de transformación. El codificador de vídeo 20 puede realizar intra-codificación e inter-codificación de las CU dentro de tramas de vídeo. La intra-codificación se apoya en la predicción espacial para reducir o eliminar la redundancia espacial en datos de vídeo dentro de una trama de vídeo dada. La inter-codificación se apoya en la predicción temporal para reducir o eliminar la redundancia temporal entre una trama actual y las tramas previamente codificadas de una secuencia de vídeo. La intra-modalidad (modalidad I) puede referirse a cualquiera de varias modalidades de compresión de vídeo de base espacial. Las inter-modalidades, tales como la predicción unidireccional (modalidad P) o la predicción bidireccional (modalidad B), pueden referirse a cualquiera de varias modalidades de compresión de vídeo de base temporal.
Como se muestra en la FIG. 9, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de una trama de vídeo a codificar. En el ejemplo de la FIG. 9, el codificador de vídeo 20 incluye una unidad de compensación de movimiento 44, una unidad de estimación de movimiento 42, una unidad de procesamiento de intra-predicción 46, una memoria intermedia de tramas de referencia 64, un sumador 50, una unidad de procesamiento de transformación 52, una unidad de cuantización 54 y una unidad de codificación por entropía 56. La unidad de procesamiento de transformación 52 que se ilustra en la FIG. 9 es la unidad que aplica la transformación efectiva, o combinaciones de transformaciones, a un bloque de datos residuales, y no debe confundirse con un bloque de coeficientes de transformación, que también puede denominarse una unidad de transformación (TU) de una CU. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye además una unidad de cuantización inversa 58, una unidad de procesamiento de transformación inversa 60 y un sumador 62. También puede incluirse un filtro de desbloqueo (no mostrado en la FIG. 9) para filtrar límites de bloque, para eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de desbloqueo filtrará habitualmente la salida del sumador 62.
Durante el proceso de codificación, el codificador de vídeo 20 recibe una trama o un fragmento de vídeo que va a codificarse. La trama o el fragmento pueden dividirse en múltiples bloques de vídeo, por ejemplo, máximas unidades de codificación (LCU). La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 llevan a cabo una codificación inter-predictiva del bloque de vídeo recibido con respecto a uno o más bloques en una
o más tramas de referencia, para proporcionar una compresión temporal. La unidad de procesamiento de intrapredicción 46 puede llevar a cabo una codificación intra-predictiva del bloque de vídeo recibido con respecto a uno o más bloques contiguos en la misma trama o fragmento que el bloque que va a codificarse, para proporcionar compresión espacial.
La unidad de selección de modalidad 40 puede seleccionar una de las modalidades de codificación (intra o inter), por ejemplo, en función de los resultados de error (es decir, de distorsión) para cada modalidad, y proporcionar el bloque intra-codificado o inter-codificado resultante (por ejemplo, una unidad de predicción (PU)) al sumador 50 para generar datos de bloque residuales, y al sumador 62 para reconstruir el bloque codificado para su uso en una trama de referencia. El sumador 62 combina el bloque predicho con los datos cuantizados inversos, de transformación inversa, de la unidad de procesamiento de transformación inversa 60 para el bloque, para reconstruir el bloque codificado, como se describe en mayor detalle a continuación. Algunas tramas de vídeo pueden designarse como tramas I, donde todos los bloques en una trama-I se codifican en una modalidad de intra-predicción. En algunos casos, la unidad de procesamiento de intra-predicción 46 puede llevar a cabo la codificación de intra-predicción de un bloque en una trama P o B, por ejemplo, cuando la búsqueda de movimiento realizada por la unidad de estimación de movimiento 42 no da como resultado una predicción suficiente del bloque.
La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar sumamente integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento (o búsqueda de movimiento) es el proceso de generación de vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una unidad de predicción en una trama actual, con respecto a una muestra de referencia de una trama de referencia. La unidad de estimación de movimiento 42 calcula un vector de movimiento para una unidad de predicción de una trama intercodificada mediante la comparación de la unidad de predicción con las muestras de referencia de una trama de referencia almacenada en la memoria intermedia de tramas de referencia 64. Una muestra de referencia puede ser un bloque del que se descubra que se corresponde estrechamente con la parte de la CU que incluye la PU codificada, en términos de diferencia de píxeles, que puede determinarse mediante la suma de una diferencia absoluta (SAD), una suma de diferencias al cuadrado (SSD) u otras métricas de diferencia. La muestra de referencia
puede ocurrir en cualquier lugar dentro de una trama de referencia o un segmento de referencia, y no necesariamente en un límite de bloque (por ejemplo, una unidad de codificación) del fragmento o trama de referencia. En algunos ejemplos, la muestra de referencia puede ocurrir en una posición de píxel fraccionaria.
La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44. La parte de la trama de referencia identificada por un vector de movimiento puede denominarse una muestra de referencia. La unidad de compensación de movimiento 44 puede calcular un valor de predicción para una unidad de predicción de una CU actual, por ejemplo, mediante la recuperación de la muestra de referencia identificada por un vector de movimiento para la PU.
La unidad de procesamiento de intra-predicción 46 puede intra-predecir el bloque recibido, como alternativa a la inter-predicción llevada a cabo por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44. La unidad de procesamiento de intra-predicción 46 puede predecir el bloque recibido en relación con bloques contiguos, previamente codificados, por ejemplo, bloques arriba, arriba y a la derecha, arriba y a la izquierda, o hacia la izquierda del bloque actual, suponiendo un orden de codificación de izquierda a derecha y de arriba a abajo para los bloques. La unidad de procesamiento de intra-predicción 46 puede configurarse con una amplia variedad de diferentes modalidades de intra-predicción. Por ejemplo, la unidad de procesamiento de intrapredicción 46 puede estar configurada con un cierto número de modalidades de predicción de dirección, por ejemplo, treinta y cuatro modalidades de predicción de dirección, en base al tamaño de la CU codificada.
La unidad de procesamiento de intra-predicción 46 puede seleccionar una modalidad de intra-predicción, por ejemplo, calculando valores de error para las diversas modalidades de intra-predicción y seleccionando una modalidad que produzca el valor de error más bajo. Las modalidades de predicción de dirección pueden incluir funciones para la combinación de valores de los píxeles espacialmente contiguos y la aplicación de los valores combinados a una o más posiciones de pixel en una PU. Una vez que se han calculado los valores para todas las posiciones de pixel en la PU, la unidad de procesamiento de intra-predicción 46 puede calcular un valor de error para la modalidad de predicción en base a diferencias de píxeles entre la PU y el bloque recibido para ser codificado. La unidad de procesamiento de intra-predicción 46 puede seguir probando las modalidades de intrapredicción hasta que se descubra una modalidad de intra-predicción que produzca un valor de error aceptable. La unidad de procesamiento de intra-predicción 46 puede luego enviar la PU al sumador 50.
El codificador de vídeo 20 forma un bloque residual restando los datos de predicción calculados por la unidad de compensación de movimiento 44, o la unidad de procesamiento de intra-predicción 46, del bloque de vídeo original que está codificándose. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. El bloque residual puede corresponder a una matriz bidimensional de valores de diferencia de píxeles, donde el número de valores en el bloque residual es el mismo que el número de píxeles en la PU correspondiente al bloque residual. Los valores en el bloque residual pueden corresponder a las diferencias, es decir, el error, entre los valores de los píxeles co-localizados en la PU y en el bloque original a codificar. Las diferencias pueden ser diferencias de crominancia o de luminancia, en función del tipo de bloque que se codifica.
La unidad de procesamiento de transformación 52 puede formar una o más unidades de transformación (TU) a partir del bloque residual. La unidad de procesamiento de transformación 52 selecciona una transformación entre una pluralidad de transformaciones. La transformación puede seleccionarse sobre la base de una o más características de codificación, tales como el tamaño de bloque, la modalidad de codificación, o similares. A continuación, la unidad de procesamiento de transformación 52 aplica la transformación seleccionada a la TU, produciendo un bloque de vídeo que comprende una matriz bidimensional de coeficientes de transformación.
La unidad de procesamiento de transformación 52 puede enviar los coeficientes de transformación resultantes a la unidad de cuantización 54. La unidad de cuantización 54 puede entonces cuantizar los coeficientes de transformación. La unidad de codificación por entropía 56 puede luego realizar una escaneo de los coeficientes de transformación cuantizados en la matriz, según una modalidad de escaneo. Esta divulgación describe la unidad de codificación por entropía 56 como realizando el escaneo. Sin embargo, debería entenderse que, en otros ejemplos, otras unidades de procesamiento, tales como la unidad de cuantización 54, podrían llevar a cabo el escaneo.
Una vez que los coeficientes de transformación se escanean en la matriz unidimensional, la unidad de codificación por entropía 56 puede aplicar una codificación por entropía, tal como la CABAC, la codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), la entropía por división de intervalos de probabilidad (PIPE), u otra metodología de codificación por entropía, a los coeficientes.
Para realizar la CABAC, la unidad de codificación por entropía 56 puede seleccionar un modelo de contexto para aplicar a un cierto contexto, para codificar los símbolos a transmitir. El contexto puede referirse, por ejemplo, a si los valores contiguos son distintos a cero o no. La unidad de codificación por entropía 56 puede también codificar por entropía elementos sintácticos, como la señal representativa de la transformación seleccionada. Según las técnicas de esta divulgación, la unidad de codificación por entropía 56 puede seleccionar el modelo de contexto utilizado para codificar estos elementos sintácticos en base, por ejemplo, a una dirección de intra-predicción para las modalidades
de intra-predicción, una posición de escaneo del coeficiente correspondiente a los elementos sintácticos, tipo de bloque, y/o tipo de transformación, entre otros factores utilizados para la selección del modelo de contexto.
Tras la codificación por entropía realizada por la unidad de codificación por entropía 56, el vídeo codificado resultante puede transmitirse a otro dispositivo, como el decodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación.
En algunos casos, la unidad de codificación por entropía 56 u otra unidad del codificador de vídeo 20 pueden estar configuradas para realizar otras funciones de codificación, además de la codificación por entropía. Por ejemplo, la unidad de codificación por entropía 56 puede configurarse para determinar los valores de patrón de bloque codificado (CBP) para las CU y las PU. Además, en algunos casos, la unidad de codificación por entropía 56 puede realizar la codificación de duración de ejecución de los coeficientes.
La unidad de cuantización inversa 58 y la unidad de procesamiento de transformación inversa 60 aplican la cuantización inversa y la transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para su uso posterior como un bloque de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las tramas de la memoria intermedia de tramas de referencia 64. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de fracciones de píxel para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque predictivo compensado por movimiento, generado por la unidad de compensación de movimiento 44 para generar un bloque de vídeo reconstruido para su almacenamiento en la memoria intermedia de tramas de referencia 64. El bloque de vídeo reconstruido puede ser usado por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para inter-codificar un bloque en una trama de vídeo posterior.
La FIG. 10 es un diagrama de bloques que ilustra un ejemplo de un decodificador de vídeo 30, que decodifica una secuencia de vídeo codificado. En el ejemplo de la FIG. 10, el decodificador de vídeo 30 incluye una unidad de decodificación por entropía 70, una unidad de compensación de movimiento 72, una unidad de procesamiento de intra-predicción 74, una unidad de cuantización inversa 76, una unidad de transformación inversa 78, una memoria intermedia de tramas de referencia 82 y un sumador 80. En algunos ejemplos, el decodificador de vídeo 30 puede realizar una pasada de decodificación, generalmente recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 (véase la FIG. 9).
La unidad de decodificación por entropía 70 lleva a cabo un proceso de decodificación por entropía en el flujo de bits codificado para recuperar una matriz unidimensional de coeficientes de transformación. El proceso de decodificación por entropía utilizado depende de la codificación por entropía utilizada por el codificador de vídeo 20 (por ejemplo, la CABAC). El proceso de codificación por entropía utilizado por el codificador se puede señalizar en el flujo de bits codificado o puede ser un proceso predeterminado.
En algunos ejemplos, la unidad de decodificación por entropía 70 (o la unidad de cuantización inversa 76) pueden escanear los valores recibidos utilizando un escaneo que refleja la modalidad de escaneo utilizada por la unidad de codificación por entropía 56 (o la unidad de cuantización 54) del codificador de vídeo 20. Aunque el escaneo de coeficientes se puede realizar en la unidad de cuantización inversa 76, el escaneo se describirá, con fines ilustrativos, como realizado por la unidad de decodificación por entropía 70. Además, aunque se muestran como unidades funcionales individuales para facilitar la ilustración, la estructura y la funcionalidad de la unidad de decodificación por entropía 70, la unidad de cuantización inversa 76 y otras unidades del decodificador de vídeo 30 pueden estar muy integradas entre sí.
La unidad de cuantización inversa 76 cuantiza de manera inversa, es decir, descuantiza, los coeficientes de transformación cuantizados, proporcionados en el flujo de bits y decodificados por la unidad de decodificación por entropía 70. El proceso de cuantización inversa puede incluir un proceso convencional, por ejemplo, similar a los procesos propuestos para la HEVC, o definido por la norma de decodificación H.264. El proceso de cuantización inversa también puede incluir el uso de un parámetro de cuantización, QP, calculado por un codificador de vídeo 20 para la CU, para determinar un grado de cuantización y, asimismo, el grado de cuantización inversa que debería aplicarse. La unidad de cuantización inversa 76 puede cuantizar de forma inversa los coeficientes de transformación, antes o después de que los coeficientes se conviertan, desde una matriz unidimensional, a una matriz bidimensional.
La unidad de procesamiento de transformación inversa 78 aplica una transformación inversa a los coeficientes de transformación cuantizada inversa. En algunos ejemplos, la unidad de procesamiento de transformación inversa 78 puede determinar una transformación inversa basada en la señalización desde el codificador de vídeo 20, o por inferencia de la transformación desde una o más características de codificación tales como tamaño de bloque, la modalidad de codificación o similares. En algunos ejemplos, la unidad de procesamiento de transformación inversa 78 puede determinar una transformación a aplicar al bloque actual en base a una transformada señalizada en el nodo raíz de un árbol cuádruple para una LCU que incluye el bloque actual. Como alternativa, la transformación
puede señalizarse en la raíz de un árbol cuádruple de TU para una CU de nodo hoja en el árbol cuádruple LCU. En algunos ejemplos, la unidad de procesamiento de transformación inversa 78 puede aplicar una transformación inversa en cascada, en la que la unidad de procesamiento de transformación inversa 78 aplica dos o más transformaciones inversas a los coeficientes de transformación del bloque actual que está siendo decodificado.
La unidad de procesamiento de intra-predicción 74 puede generar datos de predicción para un bloque actual de una trama actual en base a una modalidad de intra-predicción señalizada, y a datos de bloques previamente decodificados de la trama actual.
La unidad de compensación de movimiento 72 puede recuperar el vector de movimiento, la dirección de predicción de movimiento y el índice de referencia a partir del flujo de bits codificado. La predicción de referencia indica si la modalidad de inter-predicción es unidireccional (por ejemplo, una trama P) o bidireccional (una trama B). El índice de referencia indica en qué trama de referencia se basa el vector de movimiento candidato.
Sobre la base de la dirección de predicción de movimiento recuperada, el índice de trama de referencia y el vector de movimiento, la unidad de compensación de movimiento produce un bloque de movimiento compensado para la parte actual. Estos bloques compensados en movimiento esencialmente recrean el bloque predictivo utilizado para producir los datos residuales.
La unidad de compensación de movimiento 72 puede generar los bloques compensados por movimiento, posiblemente llevando a cabo una interpolación basada en filtros de interpolación. Los identificadores de los filtros de interpolación que van a usarse para la estimación de movimiento con una precisión de fracción de píxel pueden incluirse en los elementos sintácticos. La unidad de compensación de movimiento 72 puede usar filtros de interpolación como los usados por el codificador de vídeo 20 durante la codificación del bloque de vídeo, para calcular valores interpolados para fracciones de píxeles de un bloque de referencia. La unidad de compensación de movimiento 72 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 según la información sintáctica recibida y usar los filtros de interpolación para generar bloques predictivos.
Además, la unidad de compensación de movimiento 72 y la unidad de procesamiento de intra-predicción 74, en un ejemplo de la HEVC, pueden utilizar parte de la información sintáctica (por ejemplo, proporcionada por un árbol cuádruple) para determinar tamaños de las LCU utilizadas para codificar tramas de la secuencia de vídeo codificado. La unidad de compensación de movimiento 72 y la unidad de procesamiento intra-predicción 74 también pueden utilizar la información sintáctica para determinar la información de división que describe cómo se divide cada CU de una trama de la secuencia de vídeo codificado (y, del mismo modo, cómo se dividen las sub-CU). La información sintáctica también puede incluir modalidades que indican cómo se codifica cada división (por ejemplo, intrapredicción o inter-predicción, y para modalidad de codificación de intra-predicción e intra-predicción), una o más tramas de referencia (y/o listas de referencias que contienen identificadores para las tramas de referencia) para cada PU inter-codificada, y otra información para decodificar la secuencia de vídeo codificado.
El sumador 80 combina los bloques residuales con los bloques de predicción correspondientes generados por la unidad de compensación de movimiento 72 o por la unidad de procesamiento de intra-predicción 74 para generar bloques decodificados. Si se desea, también puede aplicarse un filtro de desbloqueo para filtrar los bloques decodificados, con el fin de eliminar distorsiones de efecto pixelado. Los bloques de vídeo decodificado se almacenan luego en la memoria intermedia de tramas de referencia 82, que proporciona bloques de referencia para la compensación de movimiento posterior y también produce vídeo decodificado para su presentación en un dispositivo de visualización (como el dispositivo de visualización 32 de la FIG. 1).
La FIG. 11 es un diagrama de flujo que muestra un procedimiento ejemplar según las técnicas de esta divulgación. El procedimiento de la FIG. 11 puede ejecutarse mediante un codificador de vídeo (por ejemplo, el codificador de vídeo 20 de la FIG. 9 o mediante el decodificador de vídeo 30 de la FIG. 10).
El codificador de vídeo 20 y el decodificador de vídeo 30 (es decir, un codificador de vídeo) pueden estar configurados para realizar un procedimiento de codificación de coeficientes de transformación en un proceso de codificación de vídeo. El codificador de vídeo puede estar configurado para codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene o no un valor absoluto mayor que cero (1110). El codificador de vídeo puede estar configurado además para codificar un indicador de mayor que uno para coeficientes de transformación en el trozo de coeficientes de transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene o no un valor absoluto mayor que uno (1120). El codificador de vídeo puede estar además configurado para codificar un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor absoluto mayor que dos o no, en el que N es menor que un número máximo de coeficientes de transformación en el trozo (1130). En un ejemplo, el valor de N es 1. En otro ejemplo, el valor de
N se basa en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, un tipo de componente de color, una posición del trozo en una unidad de transformación, una presencia de un último coeficiente significativo en el trozo y estadísticas de coeficientes de un trozo contiguo.
El codificador de vídeo puede estar configurado además para codificar un valor restante de nivel para coeficientes de transformación en el trozo (1140). El valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tiene un indicador de mayor que dos codificado como 1. El valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tienen un indicador de mayor que uno codificado, pero el indicador de mayor que dos no está codificado. El codificador de vídeo puede estar configurado además para codificar un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular, (1150).
En un ejemplo de la divulgación, el indicador de correlación de significancia, el indicador de mayor que uno, y el indicador de mayor que dos se codifican usando la CABAC con un modelo de contexto adaptativo. El valor restante de nivel se codifica utilizando la codificación de Golomb-Rice en la modalidad de omisión de la CABAC. El indicador de signo se codifica en la modalidad de omisión de la CABAC. En otro ejemplo de la divulgación, el valor restante de nivel se codifica utilizando la codificación de Golomb-Rice, en el que la codificación de Golomb-Rice se adapta según un parámetro de Golomb. El parámetro de Golomb se determina en base a al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, una modalidad de predicción, un tipo de componente de color y estadísticas de coeficientes de trozos contiguos.
En otro ejemplo de la divulgación, el indicador de correlación de significancia se codifica en primer lugar, el indicador de mayor que uno se codifica en segundo lugar, el indicador de mayor que dos se codifica en tercer lugar y el valor restante de nivel se codifica después del indicador de mayor que dos. Cada uno entre el indicador de correlación de significancia, el indicador de mayor que uno, el indicador de mayor que dos y el valor restante de nivel se codifica para los coeficientes de transformación en el trozo según un orden de escaneo. En un ejemplo, el orden de escaneo es un orden de escaneo diagonal inverso.
Según otros ejemplos de la divulgación, el trozo es un sub-bloque de una unidad de transformación. El trozo puede ser un sub-bloque de 16 coeficientes de transformación de una unidad de transformación. En otro ejemplo, el trozo es una unidad de transformación completa. En otro ejemplo, el trozo es un cierto número de coeficientes de transformación consecutivos a lo largo de un orden de escaneo.
En el caso de que un codificador de vídeo esté realizando el procedimiento de la FIG. 11, el procedimiento puede comprender además la codificación de datos de píxeles para producir datos de vídeo residuales, la transformación de los datos de vídeo residuales para producir el trozo de coeficientes de transformación y la señalización del indicador de correlación de significancia codificado, el indicador de mayor que uno codificado y el indicador de mayor que dos codificado, en un flujo de bits de vídeo codificado. Además, en otro ejemplo, el codificador de vídeo puede indicar el valor de N en un flujo de bits de vídeo codificado. El valor de N puede señalizarse en al menos uno entre un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, un conjunto de parámetros de adaptación y una cabecera de fragmento.
En el caso de que un decodificador de vídeo esté realizando el procedimiento de la FIG. 11, el procedimiento puede comprender además la recepción del indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos en un flujo de bits de vídeo codificado, la transformación inversa del trozo de coeficientes de transformación para producir datos de vídeo residuales y la decodificación de los datos de vídeo residuales para producir datos de píxeles.
La FIG. 12 es un diagrama de flujo que muestra otro procedimiento ejemplar según las técnicas de esta divulgación. El procedimiento de la FIG. 12 puede ejecutarse mediante un codificador de vídeo (por ejemplo, mediante el codificador de vídeo 20 de la FIG. 9 o mediante el decodificador de vídeo 30 de la FIG. 10).
El codificador de vídeo 20 y el decodificador de vídeo 30 (es decir, un codificador de vídeo) pueden estar configurados para realizar un procedimiento de codificación de coeficientes de transformación en un proceso de codificación de vídeo. El codificador de vídeo puede estar configurado para codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene o no un valor absoluto mayor que cero (1210). El codificador de vídeo puede además estar configurado para codificar un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no (1220). M1 es menor que un número máximo de coeficientes de transformación en el trozo. El codificador de vídeo puede estar configurado además para codificar un indicador de mayor que dos para coeficientes de transformación en el trozo,
indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no (1230). En un ejemplo, el valor de M1 es 8. En otro ejemplo, el valor de M1 se basa en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, un tipo de componente de color, una posición del trozo en una unidad de transformación, una presencia de un último coeficiente significativo en el trozo y estadísticas de coeficientes de un trozo contiguo.
El codificador de vídeo puede estar configurado además para codificar un valor restante de nivel para coeficientes de transformación en el trozo (1240). El valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo, que tienen un indicador de mayor que dos codificado como 1. El valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en el trozo, que tienen un indicador de correlación de significancia codificado, pero el indicador de mayor que uno no está codificado. El codificador de vídeo puede estar configurado además para codificar un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular (1250).
En un ejemplo de la divulgación, el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos se codifican usando la CABAC con un modelo de contexto adaptativo. El valor restante de nivel se codifica utilizando la codificación de Golomb-Rice en la modalidad de omisión de la CABAC. El indicador de signo se codifica en la modalidad de omisión de la CABAC. En otro ejemplo de la divulgación, el valor restante de nivel se codifica utilizando la codificación de Golomb-Rice, en el que la codificación de Golomb-Rice se adapta según un parámetro de Golomb. El parámetro de Golomb se determina en base a al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, una modalidad de predicción, un tipo de componente de color y estadísticas de coeficientes de trozos contiguos.
En otro ejemplo de la divulgación, el indicador de correlación de significancia se codifica en primer lugar, el indicador de mayor que uno se codifica en segundo lugar, el indicador de mayor que dos se codifica en tercer lugar y el valor restante de nivel se codifica después del indicador de mayor que dos. Cada uno entre el indicador de correlación de significancia, el indicador de mayor que uno, el indicador de mayor que dos y el valor restante de nivel se codifica para los coeficientes de transformación en el trozo según un orden de escaneo. En un ejemplo, el orden de escaneo es un orden de escaneo diagonal inverso.
Según otros ejemplos de la divulgación, el trozo es un sub-bloque de una unidad de transformación. El trozo puede ser un sub-bloque de 16 coeficientes de transformación de una unidad de transformación. En otro ejemplo, el trozo es una unidad de transformación completa. En otro ejemplo, el trozo es un cierto número de coeficientes de transformación consecutivos a lo largo de un orden de escaneo.
En el caso de que un codificador de vídeo esté realizando el procedimiento de la FIG. 12, el procedimiento puede comprender además la codificación de datos de píxeles para producir datos de vídeo residuales, la transformación de los datos de vídeo residuales para producir el trozo de coeficientes de transformación y la señalización del indicador de correlación de significancia codificado, el indicador de mayor que uno codificado y el indicador de mayor que dos codificado, en un flujo de bits de vídeo codificado. Además, en otro ejemplo, el codificador de vídeo puede señalizar el valor de M1 en un flujo de bits de vídeo codificado. El valor de M1 se puede señalizar en al menos uno entre un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, un conjunto de parámetros de adaptación y una cabecera de fragmento.
En el caso de que un decodificador de vídeo esté realizando el procedimiento de la FIG. 12, el procedimiento puede comprender además la recepción del indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos en un flujo de bits de vídeo codificado, la transformación inversa del trozo de coeficientes de transformación para producir datos de vídeo residuales y la decodificación de los datos de vídeo residuales para producir datos de píxeles.
La FIG. 13 es un diagrama de flujo que muestra otro procedimiento ejemplar según las técnicas de esta divulgación. El procedimiento de la FIG. 13 puede ejecutarse mediante un codificador de vídeo (por ejemplo, mediante el codificador de vídeo 20 de la FIG. 9 o mediante el decodificador de vídeo 30 de la FIG. 10).
El codificador de vídeo 20 y el decodificador de vídeo 30 (es decir, un codificador de vídeo) pueden estar configurados para realizar un procedimiento de codificación de coeficientes de transformación en un proceso de codificación de vídeo. El codificador de vídeo puede estar configurado para codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene o no un valor absoluto mayor que cero (1310). El codificador de vídeo puede estar además configurado para codificar un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene o no un valor absoluto mayor que uno (1320). M1 es
menor que un número máximo de coeficientes de transformación en el trozo. El codificador de vídeo puede estar además configurado para codificar un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor absoluto mayor que dos o no, en el que N es menor que un número máximo de coeficientes de transformación en el trozo (1330). En un ejemplo, el valor de N es 1. En otro ejemplo, el valor de N se basa en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, un tipo de componente de color, una posición del trozo en una unidad de transformación, una presencia de un último coeficiente significativo en el trozo y estadísticas de coeficientes de un trozo contiguo. En un ejemplo, el valor de M1 es 8. En otro ejemplo, el valor de M1 se basa en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, un tipo de componente de color, una posición del trozo en una unidad de transformación, una presencia de un último coeficiente significativo en el trozo y estadísticas de coeficientes de un trozo contiguo.
El codificador de vídeo puede estar configurado además para codificar un valor restante de nivel para coeficientes de transformación en el trozo (1340). El valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tengan un código de mayor que dos codificado como 1. El valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado como 1, pero el indicador de mayor que dos no esté codificado. El valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en un trozo que son distintos de cero, pero que no tienen un indicador de mayor que uno codificado. El codificador de vídeo puede estar configurado además para codificar un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular (1350).
En un ejemplo de la divulgación, un procedimiento de codificación de coeficientes de transformación en un proceso de codificación de vídeo comprende la codificación de un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, la codificación de un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, en el que M1 es menor que un número máximo de coeficientes de transformación en el trozo, y la codificación de un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no.
En otro ejemplo de la divulgación, el procedimiento puede comprender además la codificación de un valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tienen un indicador de mayor que dos codificado como 1, y en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en el trozo que tengan un indicador de correlación de significancia codificado, pero que el indicador de mayor que uno no esté codificado.
En otro ejemplo de la divulgación, el procedimiento puede comprender además la codificación de un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular.
En otro ejemplo de la divulgación, el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos se codifican utilizando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo de contexto adaptativo, y el valor restante de nivel se codifica en la modalidad de omisión de la CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC.
En otro ejemplo de la divulgación, el procedimiento puede comprender además la codificación del valor restante de nivel usando un parámetro de Golomb, en el que el parámetro de Golomb se determina basándose en al menos uno entre un parámetro de cuantización, un tamaño de la unidad de transformación, una profundidad de unidad de transformación, una modalidad de predicción, un tipo de componente de color y las estadísticas de coeficientes de trozos contiguos.
En otro ejemplo de la divulgación, el indicador de correlación de significancia se codifica primero, el indicador de mayor que uno se codifica en segundo lugar, el indicador de mayor que dos se codifica en tercer lugar, y en el que el valor restante de nivel se codifica después del indicador de mayor que dos.
En otro ejemplo de la invención, cada uno entre el indicador de correlación de significancia, el indicador de mayor que uno, el indicador de mayor que dos y el valor restante de nivel se codifica para los coeficientes de transformación en el trozo según un orden de escaneo.
En otro ejemplo de la divulgación, el orden de escaneo es un orden de escaneo diagonal inverso. En otro ejemplo de la divulgación, el trozo es un sub-bloque de una unidad de transformación. En otro ejemplo de la divulgación, el trozo es un sub-bloque de 16 coeficientes de transformación de una unidad de transformación. En otro ejemplo de la divulgación, el trozo es una unidad de transformación. En otro ejemplo de la divulgación, el trozo es un número de coeficientes de transformación consecutivos a lo largo de un orden de escaneo. En otro ejemplo de la divulgación, el orden de escaneo es una orden de escaneo inverso.
En otro ejemplo de la divulgación, el valor de M1 es 8. En otro ejemplo de la divulgación, el valor de M1 se basa en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, un tipo de componente de color, una posición del trozo en una unidad de transformación, una presencia de un último coeficiente significativo en el trozo y estadísticas de coeficientes de un bloque contiguo.
En otro ejemplo de la divulgación, el proceso de codificación de vídeo es un proceso de codificación de vídeo, procedimiento que comprende además la codificación de datos de píxeles para producir datos de vídeo residuales, la transformación de los datos de vídeo residuales para producir el trozo de coeficientes de transformación y la señalización del indicador de correlación de significancia codificado, el indicador de mayor que uno codificado y el indicador de mayor que dos codificado, en un flujo de bits de vídeo codificado.
En otro ejemplo de la divulgación, el procedimiento comprende además la señalización del valor de M1 en un flujo de bits de vídeo codificado. En otro ejemplo de la divulgación, el valor de M1 se señaliza en al menos uno entre un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, un conjunto de parámetros de adaptación y una cabecera de fragmento.
En otro ejemplo de la divulgación, el proceso de codificación de vídeo es un proceso de decodificación de vídeo, comprendiendo además el procedimiento la recepción del indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos en un flujo de bits de vídeo codificado, la transformación inversa del trozo de coeficientes de transformación para producir datos de vídeo residuales y la decodificación de los datos de vídeo residuales para producir datos de píxeles. En otro ejemplo de la divulgación, la codificación del indicador de mayor que dos comprende la codificación del indicador de mayor que uno para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que N es menor que un número máximo de coeficientes de transformación en el trozo, y en el que el procedimiento comprende además la codificación de un valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para los coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado como 1, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado como 1, pero que el indicador de mayor que dos no esté codificado, y en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en un trozo que sean distintos de cero, pero que no tengan un indicador de mayor que uno codificado.
En otro ejemplo de la divulgación, el valor de M1 es 8.
En otro ejemplo de la divulgación, un aparato configurado para codificar coeficientes de transformación en un proceso de codificación de vídeo comprende un codificador de vídeo configurado para codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codificar un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, en el que M1 es menor que un número máximo de coeficientes de transformación en el trozo, y codificar un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen o no un valor absoluto mayor que dos.
En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para codificar un valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado como 1, y en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en el trozo que tengan un indicador de correlación de significancia codificado, pero que el indicador de mayor que uno no esté codificado.
En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para codificar un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular.
En otro ejemplo de la divulgación, el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de omisión de la CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC.
En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para codificar el valor restante de nivel usando un parámetro de Golomb, y en el que el parámetro de Golomb se determina basándose en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, una modalidad de predicción, un tipo de componente de color y estadísticas de coeficientes de trozos contiguos.
En otro ejemplo de la divulgación, el indicador de correlación de significancia se codifica primero, el indicador de mayor que uno se codifica en segundo lugar, el indicador de mayor que dos se codifica en tercer lugar, y en el que el valor restante de nivel se codifica después del indicador de mayor que dos. En otro ejemplo de la divulgación, el indicador de correlación de significancia, el indicador de mayor que uno, el indicador de mayor que dos y el valor restante de nivel se codifican para los coeficientes de transformación en el trozo según un orden de escaneo.
En otro ejemplo de la divulgación, el orden de escaneo es un orden de escaneo diagonal inverso. En otro ejemplo de la divulgación, el trozo es un sub-bloque de una unidad de transformación. En otro ejemplo de la divulgación, el trozo es un sub-bloque de 16 coeficientes de transformación de una unidad de transformación. En otro ejemplo de la divulgación, el trozo es una unidad de transformación. En otro ejemplo de la divulgación, el trozo es un cierto número de coeficientes de transformación consecutivos a lo largo de un orden de escaneo. En otro ejemplo de la divulgación, el orden de escaneo es un orden de escaneo inverso.
En otro ejemplo de la divulgación, el valor de M1 es 8. En otro ejemplo de la divulgación, el valor de M1 se basa en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, un tipo de componente de color, una posición del trozo en una unidad de transformación, una presencia de un último coeficiente significativo en el trozo y estadísticas de coeficientes de un bloque contiguo.
En otro ejemplo de la divulgación, el codificador de video es un codificador de vídeo, y el codificador de vídeo está configurado además para codificar datos de píxeles para producir datos de vídeo residuales, transformar los datos de vídeo residuales para producir el trozo de coeficientes de transformación y señalizar el indicador de correlación de significancia codificado, el indicador de mayor que uno codificado y el indicador de mayor que dos codificado, en un flujo de bits de vídeo codificado. En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para indicar el valor de M1 en un flujo de bits de vídeo codificado. En otro ejemplo de la divulgación, el valor de M1 se señaliza en al menos uno entre un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, un conjunto de parámetros de adaptación y una cabecera de fragmento.
En otro ejemplo de la divulgación, el codificador de video es un decodificador de vídeo y el decodificador de vídeo está configurado además para recibir el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos en un flujo de bits de vídeo codificado, transformar de forma inversa el trozo de coeficientes de transformación para producir datos de vídeo residuales y decodificar los datos de vídeo residuales para producir datos de píxeles.
En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para codificar el indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que N es menor que un número máximo de coeficientes de transformación en el trozo, en el que el procedimiento comprende además la codificación de un valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado como 1, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado como 1, pero que el indicador de mayor que dos no esté codificado, y en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en un trozo que sean distintos de cero, pero que no tengan un indicador de mayor que uno codificado. En otro ejemplo de la divulgación, el valor de N es 1.
En otro ejemplo de la divulgación, un aparato configurado para codificar coeficientes de transformación en un proceso de codificación de vídeo comprende medios para la codificación de un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el
indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, medios para la codificación de un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, en el que M1 es menor que un número máximo de coeficientes de transformación en el trozo, y medios para la codificación de un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no.
En otro ejemplo de la divulgación, un medio de almacenamiento legible por ordenador que almacena instrucciones que, cuando se ejecutan, hacen que uno o más procesadores de un dispositivo configurado para codificar datos de vídeo codifiquen un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codifiquen un indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, en el que M1 es menor que un número máximo de coeficientes de transformación en el trozo, y codifiquen un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no.
En otro ejemplo de la divulgación, un procedimiento de codificación de coeficientes de transformación en un proceso de codificación de vídeo comprende la codificación de un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, la codificación de un indicador de mayor que uno para coeficientes de transformación en el trozo de coeficientes de transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y la codificación de un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor absoluto mayor que dos o no, en el que N es menor que un número máximo de coeficientes de transformación en el trozo.
En otro ejemplo de la divulgación, el procedimiento comprende además la codificación de un valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado como 1, y en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado como 1, pero que el indicador de mayor que dos no esté codificado..
En otro ejemplo de la divulgación, el procedimiento comprende además la codificación de un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular.
En otro ejemplo de la divulgación, el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos están codificados usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo de contexto adaptativo, en el que el valor restante de nivel está codificado en la modalidad de omisión de la CABAC, y en el que el indicador de signo está codificado en la modalidad de omisión de la CABAC.
En otro ejemplo de la divulgación, el procedimiento comprende además la codificación del valor restante de nivel usando un parámetro de Golomb, y en el que el parámetro de Golomb se determina basándose en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, una modalidad de predicción, un tipo de componente de color y estadísticas de coeficientes de trozos contiguos.
En otro ejemplo de la divulgación, el indicador de correlación de significancia se codifica en primer lugar, el indicador de mayor que uno se codifica en segundo lugar, el indicador de mayor que dos se codifica en tercer lugar y el valor restante de nivel se codifica después del indicador de mayor que dos.
En otro ejemplo de la invención, cada uno entre el indicador de correlación de significancia, el indicador de mayor que uno, el indicador de mayor que dos y el valor restante de nivel se codifica para los coeficientes de transformación en el trozo según un orden de escaneo. En otro ejemplo de la divulgación, el orden de escaneo es un
orden de escaneo diagonal inverso. En otro ejemplo de la divulgación, el trozo es un sub-bloque de una unidad de transformación.
En otro ejemplo de la divulgación, el trozo es un sub-bloque de 16 coeficientes de transformación de una unidad de transformación. En otro ejemplo de la divulgación, el trozo es una unidad de transformación. En otro ejemplo de la divulgación, el trozo es un cierto número de coeficientes de transformación consecutivos a lo largo de un orden de escaneo. En otro ejemplo de la divulgación, el orden de escaneo es un orden de escaneo inverso.
En otro ejemplo de la divulgación, el valor de N es 1. En otro ejemplo de la divulgación, el valor de N se basa en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, un tipo de componente de color, una posición del trozo en una unidad de transformación, una presencia de un último coeficiente significativo en el trozo y estadísticas de coeficientes de un bloque contiguo.
En otro ejemplo de la divulgación, el proceso de codificación de vídeo es un proceso de codificación de vídeo, comprendiendo además el procedimiento la codificación de datos de píxeles para producir datos de vídeo residuales, la transformación de los datos de vídeo residuales para producir el trozo de coeficientes de transformación y la señalización del indicador de correlación de significancia codificado, del indicador de mayor que uno codificado y del indicador de mayor que dos codificado, en un flujo de bits de vídeo codificado. En otro ejemplo de la divulgación, el procedimiento comprende además la señalización del valor de N en un flujo de bits de vídeo codificado. En otro ejemplo de la divulgación, el valor de N se indica en al menos uno entre un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, un conjunto de parámetros de adaptación y una cabecera de fragmento.
En otro ejemplo de la divulgación, el proceso de codificación de vídeo es un proceso de decodificación de vídeo, comprendiendo además el procedimiento la recepción del indicador de correlación de significancia, del indicador de mayor que uno y del indicador de mayor que dos en un flujo de bits de vídeo codificado, la transformación inversa del trozo de coeficientes de transformación para producir datos de vídeo residuales y la decodificación de los datos de vídeo residuales para producir datos de píxeles.
En otro ejemplo de la divulgación, la codificación del indicador de mayor que uno comprende la codificación del indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo que son distintos de cero, en el que M1 es menor que un número máximo de coeficientes de transformación en el trozo, y en el que el procedimiento comprende además la codificación de un valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficiente de transformación en el trozo que tengan un indicador de mayor que dos codificado como 1, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado como 1, pero que el indicador de mayor que dos no esté codificado, y en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en un trozo que sean distintos de cero, pero que no tengan un indicador de mayor que uno codificado. En otro ejemplo de la divulgación, el valor de M1 es 8.
En otro ejemplo de la divulgación, un aparato configurado para codificar coeficientes de transformación en un proceso de codificación de vídeo comprende un codificador de vídeo configurado para codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codificar un indicador de mayor que uno para coeficientes de transformación en el trozo de coeficientes de transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y codificar un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor absoluto mayor que dos o no, en el que N es menor que un número máximo de coeficientes de transformación en el trozo.
En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para codificar un valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado como 1, y en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado como 1, pero que el indicador de mayor que dos no esté codificado.
En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para codificar un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular.
En otro ejemplo de la divulgación, el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos son codificados usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo de contexto adaptativo, en el que el valor restante de nivel se codifica en la modalidad de omisión de la CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC.
En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para codificar el valor restante de nivel usando un parámetro de Golomb, y en el que el parámetro de Golomb se determina basándose en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, una modalidad de predicción, un tipo de componente de color y estadísticas de coeficientes de trozos contiguos.
En otro ejemplo de la divulgación, el indicador de correlación de significancia se codifica primero, el indicador de mayor que uno se codifica en segundo lugar, el indicador de mayor que dos se codifica en tercer lugar, y en el que el valor restante de nivel se codifica después del indicador de mayor que dos.
En otro ejemplo de la invención, cada uno entre el indicador de correlación de significancia, el indicador de mayor que uno, el indicador de mayor que dos y el valor restante de nivel se codifica para los coeficientes de transformación en el trozo según un orden de escaneo. En otro ejemplo de la divulgación, el orden de escaneo es un orden de escaneo diagonal inverso.
En otro ejemplo de la divulgación, el trozo es un sub-bloque de una unidad de transformación.
En otro ejemplo de la divulgación, el trozo es un sub-bloque de 16 coeficientes de transformación de una unidad de transformación. En otro ejemplo de la divulgación, el trozo es una unidad de transformación. En otro ejemplo de la divulgación, el trozo es un cierto número de coeficientes de transformación consecutivos a lo largo de un orden de escaneo.
En otro ejemplo de la divulgación, el orden de escaneo es un orden de escaneo inverso. En otro ejemplo de la divulgación, el valor de N es 1. En otro ejemplo de la divulgación, el valor de N se basa en al menos uno entre un parámetro de cuantización, un tamaño de unidad de transformación, una profundidad de unidad de transformación, un tipo de componente de color, una posición del trozo en una unidad de transformación, una presencia de un último coeficiente significativo en el trozo y estadísticas de coeficientes de un trozo contiguo.
En otro ejemplo de la divulgación, el codificador de video es un codificador de vídeo, y el codificador de vídeo está configurado además para codificar datos de los píxeles para producir datos de vídeo residuales, transformar los datos de vídeo residuales para producir el trozo de coeficientes de transformación y señalizar el indicador de correlación de significancia codificado, el indicador de mayor que uno codificado y el indicador de mayor que dos codificado, en un flujo de bits de vídeo codificado. En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para indicar el valor de N en un flujo de bits de vídeo codificado. En otro ejemplo de la divulgación, el valor de N se señaliza en al menos uno entre un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen, un conjunto de parámetros de adaptación y una cabecera de fragmento.
En otro ejemplo de la divulgación, el codificador de video es un decodificador de vídeo y el decodificador de vídeo está configurado además para recibir el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos en un flujo de bits de vídeo codificado, transformar de forma inversa el trozo de coeficientes de transformación para producir datos de vídeo residuales y decodificar los datos de vídeo residuales para producir datos de píxeles.
En otro ejemplo de la divulgación, el codificador de vídeo está configurado además para codificar el indicador de mayor que uno para unos primeros M1 coeficientes de transformación en el trozo que sean distintos de cero, en el que M1 es menor que un número máximo de coeficientes de transformación en el trozo, y en el que el codificador de vídeo está configurado además para codificar un valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado como 1, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado como 1, pero que el indicador de mayor que dos no esté codificado, y en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en un trozo que sean distintos de cero, pero que no tengan un indicador de mayor que uno codificado. En otro ejemplo de la divulgación, el valor de M1 es 8.
En otro ejemplo de la divulgación, un aparato configurado para codificar coeficientes de transformación en un proceso de codificación de vídeo comprende medios para la codificación de un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el
indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, medios para la codificación de un indicador de mayor que uno para coeficientes de transformación en el trozo de coeficientes de transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y medios para la codificación de un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene o no un valor absoluto mayor que dos, en el que N es menor que un número máximo de coeficientes de transformación en el trozo.
En otro ejemplo de la divulgación, un medio de almacenamiento legible por ordenador que almacena instrucciones que, cuando se ejecutan, hacen que uno o más procesadores, configurados para codificar coeficientes de transformación en un proceso de codificación de vídeo, codifiquen un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación , en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no, codifiquen un indicador de mayor que uno para coeficientes de transformación en el trozo de coeficientes de transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación de significancia, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular tiene un valor absoluto mayor que uno o no, y codifiquen un indicador de mayor que dos para unos primeros N coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor absoluto mayor que dos o no, en el que N es menor que un número máximo de coeficientes de transformación en el trozo.
En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones, como una o más instrucciones o código, pueden almacenarse en, o transmitirse por, un medio legible por ordenador, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como medios de almacenamiento de datos o medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, según un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, generalmente, a (1) medios de almacenamiento tangibles y legibles por ordenador, que sean no transitorios, o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera, a los que se pueda acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
A modo de ejemplo, y no de manera limitativa, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda usarse para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión puede denominarse adecuadamente un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una sede de la Red, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debería entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco de láser, el disco óptico, el disco versátil digital (DVD), el disco flexible y el disco Blu-ray, donde algunos discos normalmente reproducen datos de manera magnética, mientras que otros discos reproducen los datos de manera óptica con láser. Las combinaciones de lo anterior también deberían incluirse dentro del alcance de los medios legibles por ordenador.
Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), formaciones lógicas programables en el terreno (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. Por consiguiente, el término "procesador", como se usa en el presente documento, puede referirse a cualquier estructura anterior o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de hardware especializado y/o módulos de software configurados para la codificación y la decodificación, o incorporarse en un códec combinado. Además, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación se pueden implementar en una gran variedad de dispositivos o aparatos, incluyendo un equipo de mano inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). Varios componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente la realización mediante diferentes unidades de hardware. Más bien, como se ha descrito anteriormente, pueden combinarse diversas unidades en una unidad de hardware de códec o ser proporcionadas por una colección de unidades de hardware inter-operativas, incluyendo uno o más procesadores, como se ha descrito anteriormente, junto con el software y/o firmware adecuado.

Claims (11)

  1. REIVINDICACIONES
    1.
    Un procedimiento de codificación de coeficientes de transformación generados por una transformación,
    basada en bloques, de datos residuales a partir de la predicción espacial o temporal en un proceso de
    5
    codificación de vídeo, procedimiento que comprende:
    codificación de un indicador de correlación de significancia para coeficientes de transformación en un trozo de
    coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente
    de transformación particular tiene un valor absoluto mayor que cero o no;
    10
    codificación de un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador
    de signo indica el signo del coeficiente de transformación particular;
    codificación de un indicador de mayor que uno para coeficientes de transformación en un orden de escaneo
    15
    inverso en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de
    correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación
    particular tiene un valor absoluto mayor que uno o no;
    codificación de un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados
    20
    como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador
    de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que
    dos o no;
    codificación de un valor restante de nivel para coeficientes de transformación en el trozo, y señalización del
    25
    indicador de signo, del indicador de correlación de significancia, del indicador de mayor que uno, del indicador
    de mayor que dos y del valor restante de nivel en un flujo de bits de vídeo codificado,
    en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos
    tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado
    30
    que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que dos,
    y
    en el que el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor
    35
    que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo
    de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de omisión de la
    CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC,
    caracterizado porque un indicador de mayor que uno se codifica solo para unos primeros M1 coeficientes de
    40
    transformación distintos a cero en el orden de escaneo inverso, en el que M1 es menor que un número
    máximo de coeficientes de transformación en el trozo,
    y porque el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno,
    para coeficientes de transformación en el trozo que sean distintos de cero, pero que no tengan un indicador
    45
    de mayor que uno codificado.
  2. 2.
    Un procedimiento de decodificación de coeficientes de transformación generados por una transformación,
    basada en bloques, de datos residuales a partir de la predicción espacial o temporal en un proceso de
    codificación de vídeo, procedimiento que comprende:
    50
    recepción de un indicador de signo, un indicador de correlación de significancia, un indicador de mayor que
    uno, un indicador de mayor que dos y un valor restante de nivel en un flujo de bits de vídeo codificado;
    decodificación del indicador de correlación de significancia para coeficientes de transformación en un trozo de
    55
    coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente
    de transformación particular tiene un valor absoluto mayor que cero o no;
    decodificación del indicador de signo para coeficientes de transformación en el trozo, en el que el indicador
    de signo indica el signo del coeficiente de transformación particular;
    60
    decodificación del indicador de mayor que uno para coeficientes de transformación en un orden de escaneo
    inverso en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de
    correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación
    particular tiene un valor absoluto mayor que uno o no;
    65
    decodificación del indicador de mayor que dos para coeficientes de transformación en un orden de escaneo inverso en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no; y
    5 decodificación del valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que dos, y
    10 en el que el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de omisión de la CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC,
    15 caracterizado porque un indicador de mayor que uno se codifica solo para unos primeros N coeficientes de transformación en el orden de escaneo inverso, en el que N es menor que un número máximo de coeficientes de transformación en el trozo,
    20 y porque el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en el trozo que sean distintos de cero, pero que no tengan un indicador de mayor que uno codificado.
  3. 3. El procedimiento de la reivindicación 1 o la reivindicación 2, en el que un indicador de mayor que dos se
    25 codifica para los primeros N coeficientes de transformación en el orden de escaneo inverso, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, y en el que el número de indicadores de mayor que dos, N, es igual o menor que el número de indicadores de mayor que uno, M1, y
    en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos
    30 dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado, que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que uno, pero que el indicador de mayor que dos no esté codificado.
  4. 4. El procedimiento de la reivindicación 1 o la reivindicación 2, que comprende además la codificación o la
    35 decodificación del indicador de correlación de significancia primero, el indicador de mayor que uno en segundo lugar, el indicador de mayor que dos en tercer lugar y el valor restante de nivel después del indicador de mayor que dos.
  5. 5. El procedimiento de la reivindicación 1 o la reivindicación 2, en el que el fragmento es uno entre:
    40 un sub-bloque de un bloque de coeficientes de transformación;
    un sub-bloque de 16 coeficientes de transformación de un bloque de coeficientes de transformación;
    45 una unidad de transformación; y,
    una serie de coeficientes de transformación consecutivos a lo largo del orden de escaneo inverso dentro de un bloque de coeficientes de transformación.
    50 6. El procedimiento de la reivindicación 1 o la reivindicación 2, en el que el valor de M1 es 8.
  6. 7. Un procedimiento de codificación de coeficientes de transformación generados por una transformación, basada en bloques, de datos residuales a partir de la predicción espacial o temporal en un proceso de codificación de vídeo, procedimiento que comprende:
    55 codificación de un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no;
    60 codificación de un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular;
    codificación de un indicador de mayor que uno para coeficientes de transformación en el trozo de coeficientes de transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de
    correlación de significancia, en el que el indicador de mayor que uno indica si un coeficiente de
    transformación particular tiene un valor absoluto mayor que uno o no;
    codificación de un indicador de mayor que dos para coeficientes de transformación en un orden de escaneo
    5
    inverso en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor
    que uno, en el que indicador de mayor que dos indica si el coeficiente de transformación particular tiene un
    valor absoluto mayor que dos o no;
    codificación de un valor restante de nivel para coeficientes de transformación en el trozo, y
    10
    señalización del indicador de signo, del indicador de correlación de significancia, del indicador de mayor que
    uno, del indicador de mayor que dos y del valor restante de nivel en un flujo de bits de vídeo codificado,
    en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos
    15
    tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado,
    que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que dos, y
    en el que el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor
    que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo
    20
    de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de omisión de la
    CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC,
    caracterizado porque un indicador de mayor que dos se codifica para los primeros N coeficientes de
    transformación en el orden de escaneo inverso, en el que N es menor que un número máximo de coeficientes
    25
    de transformación en el trozo, y porque el valor restante de nivel representa el valor absoluto de un
    coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un
    indicador de mayor que uno codificado, que indica que el coeficiente de transformación particular tiene un
    valor absoluto mayor que uno, pero que el indicador de mayor que dos no esté codificado.
    30
    8. Un procedimiento de decodificación de coeficientes de transformación generados por una transformación,
    basada en bloques, de datos residuales a partir de la predicción espacial o temporal en un proceso de
    codificación de vídeo, procedimiento que comprende:
    recepción de un indicador de signo, un indicador de correlación de significancia, un indicador de mayor que
    35
    uno, un indicador de mayor que dos y un valor restante de nivel en un flujo de bits de vídeo codificado;
    decodificación del indicador de correlación de significancia para coeficientes de transformación en un trozo de
    coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente
    de transformación particular tiene un valor absoluto mayor que cero o no;
    40
    decodificación del indicador de signo para coeficientes de transformación en el trozo, en el que el indicador
    de signo indica el signo del coeficiente de transformación particular;
    decodificación del indicador de mayor que uno para coeficientes de transformación en el trozo de coeficientes
    45
    de transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de
    correlación de significancia, en el que el indicador de mayor que uno indica si un coeficiente de
    transformación particular tiene un valor absoluto mayor que uno o no;
    decodificación del indicador de mayor que dos para coeficientes de transformación en un orden de escaneo
    50
    inverso en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor
    que uno, en el que indicador de mayor que dos indica si el coeficiente de transformación particular tiene un
    valor absoluto mayor que dos o no; y
    decodificación del valor restante de nivel para coeficientes de transformación en el trozo,
    55
    en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos
    tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado,
    que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que dos, y
    60
    en el que el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor
    que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo
    de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de omisión de la
    CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC,
    caracterizado porque un indicador de mayor que dos se codifica para los primeros N coeficientes de transformación en el orden de escaneo inverso, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que N es menor que un número máximo de coeficientes de transformación en el trozo, y porque el valor restante de nivel representa el valor absoluto de un coeficiente
    5 correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de mayor que uno codificado, que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que uno, pero que el indicador de mayor que dos no esté codificado.
  7. 9. El procedimiento de la reivindicación 7 o la reivindicación 8, en el que el valor de N es 1. 10
  8. 10. Un medio de almacenamiento legible por ordenador que tiene instrucciones almacenadas en el mismo que, cuando se ejecutan, hacen que uno o más procesadores de un dispositivo configurado para codificar datos de vídeo lleven a cabo el procedimiento según una cualquiera de las reivindicaciones anteriores.
    15 indicado como que tiene un valor absoluto mayor que uno por el indicador de mayor que uno
  9. 11. Un aparato configurado para codificar coeficientes de transformación generados por una transformación, basada en bloques, de datos residuales a partir de la predicción espacial o temporal en un proceso de codificación de vídeo, comprendiendo el aparato:
    20 medios para codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente de transformación particular tiene un valor absoluto mayor que cero o no;
    25 medios para codificar un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo indica el signo del coeficiente de transformación particular;
    medios para codificar un indicador de mayor que uno para coeficientes de transformación en un orden de escaneo inverso en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de
    30 correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación particular tiene un valor absoluto mayor que uno o no;
    medios para codificar un indicador de mayor que dos para coeficientes de transformación en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el
    35 indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto mayor que dos o no;
    medios para codificar un valor restante de nivel para coeficientes de transformación en el trozo, y
    40 medios para la señalización del indicador de signo, del indicador de correlación de significancia, del indicador de mayor que uno, del indicador de mayor que dos y del valor restante de nivel en un flujo de bits de vídeo codificado,
    en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos
    45 tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado, que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que dos, y
    en el que el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo
    50 de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de omisión de la CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC,
    caracterizado porque un indicador de mayor que uno se codifica solo para unos primeros M1 coeficientes de transformación distintos a cero en el orden de escaneo inverso, en el que M1 es menor que un número
    55 máximo de coeficientes de transformación en el trozo,
    y porque el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno, para coeficientes de transformación en el trozo que sean distintos de cero, pero que no tengan un indicador de mayor que uno codificado.
  10. 12. Un aparato configurado para codificar coeficientes de transformación generados por una transformación, basada en bloques, de datos residuales a partir de la predicción espacial o temporal en un proceso de codificación de vídeo, comprendiendo el aparato:
    65 un codificador de vídeo configurado para:
    codificar un indicador de correlación de significancia para coeficientes de transformación en un trozo de
    coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente
    de transformación particular tiene un valor absoluto mayor que cero o no;
    5
    codificar un indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de signo
    indica el signo del coeficiente de transformación particular;
    codificar un indicador de mayor que uno para coeficientes de transformación en el trozo de coeficientes de
    10
    transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación
    de significancia, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular
    tiene un valor absoluto mayor que uno o no;
    codificar un indicador de mayor que dos para coeficientes de transformación en un orden de escaneo inverso
    15
    en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno,
    en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un valor
    absoluto mayor que dos o no;
    codificar un valor restante de nivel para coeficientes de transformación en el trozo, y
    20
    señalizar el indicador de signo, el indicador de correlación de significancia, el indicador de mayor que uno, el
    indicador de mayor que dos y el valor restante de nivel en un flujo de bits de vídeo codificado,
    en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos
    25
    tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado,
    que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que dos,
    y en el que el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor
    que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo
    30
    de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de omisión de la
    CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC,
    caracterizado porque un indicador de mayor que dos se codifica para los primeros N coeficientes de
    transformación en el orden de escaneo inverso, indicados como que tienen un valor absoluto mayor que uno
    35
    por el indicador de mayor que uno, en el que N es menor que un número máximo de coeficientes de
    transformación en el trozo, y porque el valor restante de nivel representa el valor absoluto de un coeficiente
    correspondiente, menos dos, para coeficientes de transformación en el trozo que tengan un indicador de
    mayor que uno codificado, que indica que el coeficiente de transformación particular tiene un valor absoluto
    mayor que uno, pero que el indicador de mayor que dos no esté codificado.
    40
  11. 13.
    Un aparato configurado para decodificar coeficientes de transformación generados por una transformación,
    basada en bloques, de datos residuales a partir de la predicción espacial o temporal en un proceso de
    codificación de vídeo, aparato que comprende:
    45
    medios para recibir un indicador de signo, un indicador de correlación de significancia, un indicador de mayor
    que uno, un indicador de mayor que dos y un valor restante de nivel en un flujo de bits de vídeo codificado;
    medios para decodificar el indicador de correlación de significancia para coeficientes de transformación en un
    trozo de coeficientes de transformación, en el que el indicador de correlación de significancia indica si un
    50
    coeficiente de transformación particular tiene un valor absoluto mayor que cero o no;
    medios para decodificar el indicador de signo para coeficientes de transformación en el trozo, en el que el
    indicador de signo indica el signo del coeficiente de transformación particular;
    55
    medios para codificar un indicador de mayor que uno para coeficientes de transformación en un orden de
    escaneo inverso en el trozo, indicados como que tienen un valor absoluto mayor que cero por el indicador de
    correlación de significancia, en el que el indicador de mayor que uno indica si el coeficiente de transformación
    particular tiene un valor absoluto mayor que uno o no;
    60
    medios para decodificar el indicador de mayor que dos para coeficientes de transformación en el trozo,
    indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno, en el que el
    indicador de mayor que dos indica si los coeficientes de transformación particulares tienen un valor absoluto
    mayor que dos o no; y
    65
    medios para decodificar el valor restante de nivel para coeficientes de transformación en el trozo,
    en el que el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos
    tres, para coeficientes de transformación en el trozo que tengan un indicador de mayor que dos codificado,
    que indica que el coeficiente de transformación particular tiene un valor absoluto mayor que dos, y
    5
    en el que el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor
    que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC), con
    coeficientes indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor que uno,
    con un modelo de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de
    10
    omisión de la CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC,
    caracterizado porque un indicador de mayor que uno se codifica solo para unos primeros M1 coeficientes de
    transformación distintos a cero en el orden de escaneo inverso, en el que M1 es menor que un número
    máximo de coeficientes de transformación en el trozo,
    15
    y porque el valor restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos uno,
    para coeficientes de transformación en el trozo que sean distintos de cero, pero que no tengan un indicador
    de mayor que uno codificado.
    20
    14. Un aparato configurado para decodificar coeficientes de transformación generados por una transformación,
    basada en bloques, de datos residuales a partir de la predicción espacial o temporal en un proceso de
    codificación de vídeo, aparato que comprende:
    un codificador de vídeo configurado para:
    25
    recibir un indicador de signo, un indicador de correlación de significancia, un indicador de mayor que uno, un
    indicador de mayor que dos y un valor restante de nivel en un flujo de bits de vídeo codificado;
    decodificar el indicador de correlación de significancia para coeficientes de transformación en un trozo de
    30
    coeficientes de transformación, en el que el indicador de correlación de significancia indica si un coeficiente
    de transformación particular tiene un valor absoluto mayor que cero o no;
    decodificar el indicador de signo para coeficientes de transformación en el trozo, en el que el indicador de
    signo indica el signo del coeficiente de transformación particular;
    35
    codificar un indicador de mayor que uno para coeficientes de transformación en el trozo de coeficientes de
    transformación, indicados como que tienen un valor absoluto mayor que cero por el indicador de correlación
    de significancia, en el que el indicador de mayor que uno indica si un coeficiente de transformación particular
    tiene un valor absoluto mayor que uno o no;
    40
    decodificar el indicador de mayor que dos para coeficientes de transformación en un orden de escaneo
    inverso en el trozo, indicados como que tienen un valor absoluto mayor que uno por el indicador de mayor
    que uno, en el que el indicador de mayor que dos indica si el coeficiente de transformación particular tiene un
    valor absoluto mayor que dos o no; y
    45
    decodificar el valor restante de nivel para coeficientes de transformación en el trozo, en el que el valor
    restante de nivel representa el valor absoluto de un coeficiente correspondiente, menos tres, para
    coeficientes de transformación en el trozo, que tengan un indicador de mayor que dos codificado, que indica
    que el coeficiente de transformación particular tiene un valor absoluto mayor que dos,
    50
    y en el que el indicador de correlación de significancia, el indicador de mayor que uno y el indicador de mayor
    que dos se codifican usando la codificación aritmética binaria adaptativa de contexto (CABAC) con un modelo
    de contexto adaptativo, y en el que el valor restante de nivel se codifica en la modalidad de omisión de la
    CABAC, y en el que el indicador de signo se codifica en la modalidad de omisión de la CABAC,
    55
    caracterizado porque un indicador de mayor que dos se codifica para los primeros N coeficientes de
    transformación en el orden de escaneo inverso, indicados como que tienen un valor absoluto mayor que uno
    por el indicador de mayor que uno, y porque el valor restante de nivel representa el valor absoluto de un
    coeficiente correspondiente, menos dos, para coeficientes de transformación en el trozo, que tengan un
    60
    indicador de mayor que uno codificado, que indica que el coeficiente de transformación particular tiene un
    valor absoluto mayor que uno, pero que el indicador de mayor que dos no esté codificado, en el que N es
    menor que un número máximo de coeficientes de transformación en el trozo.
ES12806813.7T 2012-01-17 2012-12-11 Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC Active ES2608595T3 (es)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201261587624P 2012-01-17 2012-01-17
US201261587624P 2012-01-17
US201261589290P 2012-01-20 2012-01-20
US201261589290P 2012-01-20
US201261591772P 2012-01-27 2012-01-27
US201261591772P 2012-01-27
US201261606347P 2012-03-02 2012-03-02
US201261606347P 2012-03-02
US201261622785P 2012-04-11 2012-04-11
US201261622785P 2012-04-11
US13/710,212 US9191670B2 (en) 2012-01-17 2012-12-10 Throughput improvement for CABAC coefficient level coding
US201213710212 2012-12-10
PCT/US2012/068997 WO2013109357A1 (en) 2012-01-17 2012-12-11 Throughput improvement for cabac coefficient level coding

Publications (1)

Publication Number Publication Date
ES2608595T3 true ES2608595T3 (es) 2017-04-12

Family

ID=48779948

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12806813.7T Active ES2608595T3 (es) 2012-01-17 2012-12-11 Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC

Country Status (25)

Country Link
US (1) US9191670B2 (es)
EP (1) EP2805487B1 (es)
JP (1) JP6113752B2 (es)
KR (1) KR101772740B1 (es)
CN (1) CN104054341B (es)
AR (1) AR092787A1 (es)
AU (1) AU2012366197B2 (es)
BR (1) BR112014017364B1 (es)
CA (1) CA2860804C (es)
DK (1) DK2805487T3 (es)
ES (1) ES2608595T3 (es)
HK (1) HK1198233A1 (es)
HU (1) HUE031071T2 (es)
IL (1) IL233262B (es)
MX (1) MX2014008625A (es)
MY (1) MY168364A (es)
PH (1) PH12014501478A1 (es)
PL (1) PL2805487T3 (es)
PT (1) PT2805487T (es)
RU (1) RU2611992C2 (es)
SG (1) SG11201403382VA (es)
SI (1) SI2805487T1 (es)
TW (1) TWI561061B (es)
WO (1) WO2013109357A1 (es)
ZA (1) ZA201406024B (es)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0846131A (ja) * 1994-08-02 1996-02-16 Sony Corp リードフレーム及びワイヤボンディング装置
KR20120035096A (ko) * 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
KR101215152B1 (ko) * 2011-04-21 2012-12-24 한양대학교 산학협력단 인루프 필터링을 적용한 예측 방법을 이용한 영상 부호화/복호화 방법 및 장치
CN109120930B (zh) 2011-11-04 2021-03-26 夏普株式会社 图像解码装置、图像编码装置及其方法
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block 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
US9036710B2 (en) * 2012-03-08 2015-05-19 Blackberry Limited Unified transform coefficient encoding and decoding
US8891888B2 (en) * 2012-09-05 2014-11-18 Google Inc. Entropy coding for recompression of images
US9955163B2 (en) * 2013-06-17 2018-04-24 Google Llc Two pass quantization of video data
US9648350B2 (en) 2013-07-22 2017-05-09 Texas Instruments Incorporated Method and apparatus for decoding a progressive JPEG image
KR102250088B1 (ko) * 2013-10-24 2021-05-10 삼성전자주식회사 비디오 스트림을 복호화하는 방법 및 장치
GB201321851D0 (en) 2013-12-10 2014-01-22 Canon Kk Run length parameters coding for palette mode
US10142636B2 (en) * 2014-06-09 2018-11-27 Sony Corporation Communication system with coding mechanism and method of operation thereof
US10574993B2 (en) * 2015-05-29 2020-02-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
CN112272298B (zh) 2015-06-23 2023-07-18 联发科技(新加坡)私人有限公司 转换系数编解码的方法及装置
WO2017041271A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
EP3306930A4 (en) * 2015-09-10 2018-05-02 Samsung Electronics Co., Ltd. Encoding device, decoding device, and encoding and decoding method thereof
KR102558015B1 (ko) * 2017-04-13 2023-07-21 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
TWI692939B (zh) * 2018-08-14 2020-05-01 鈺創科技股份有限公司 過濾訊號的數位濾波器
US11483575B2 (en) * 2018-08-24 2022-10-25 Hfi Innovation Inc. Coding transform coefficients with throughput constraints
BR122021008882B1 (pt) * 2018-09-11 2021-12-21 Lg Electronics Inc Método de codificação residual e dispositivo para o mesmo
BR112021005152A2 (pt) * 2018-09-20 2021-06-15 Lg Electronics Inc. método de codificação de nível de fator de conversão e dispositivo para o mesmo
US11006150B2 (en) * 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
KR102613155B1 (ko) * 2018-09-24 2023-12-13 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 종속 스칼라 양자화를 사용하거나 이와 조합하는 데에적합한 변환 계수의 효율적인 코딩
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
KR20240064730A (ko) 2018-10-05 2024-05-13 티씨엘 킹 일렉트리컬 어플라이언시스 (후이저우) 컴퍼니 리미티드 영상 디코딩 및 인코딩 방법과 저장 매체
WO2020073884A1 (en) * 2018-10-08 2020-04-16 Mediatek Singapore Pte. Ltd. Method and apparatus of last significant coefficient coding in image and video coding
US11470329B2 (en) * 2018-12-26 2022-10-11 Tencent America LLC Method and apparatus for video coding
US10798397B2 (en) * 2019-01-02 2020-10-06 Tencent America LLC Method and apparatus for video coding
CN113412626B (zh) * 2019-01-12 2024-01-23 Lg 电子株式会社 在图像编译系统中使用残差信息的图像解码方法及其装置
US11595656B2 (en) * 2019-01-25 2023-02-28 Hfi Innovation Inc. Method and apparatus of transform coefficient coding with TB-level constraint
CN113330749B (zh) * 2019-02-24 2024-05-10 腾讯美国有限责任公司 视频编解码的方法和装置
SG11202108108TA (en) * 2019-03-12 2021-09-29 Interdigital Vc Holdings Inc Flexible allocation of regular bins in residual coding for video coding
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
US11418790B2 (en) * 2019-06-28 2022-08-16 Qualcomm Incorporated Arithmetic coding with selective adaptation for video coding
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11398833B2 (en) 2019-10-02 2022-07-26 Apple Inc. Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
WO2021118310A1 (ko) * 2019-12-13 2021-06-17 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11625866B2 (en) 2020-01-09 2023-04-11 Apple Inc. Geometry encoding using octrees and predictive trees
US11468601B2 (en) 2020-01-13 2022-10-11 Samsung Display Co., Ltd. Systems and methods for scalable throughput entropy coder
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
WO2022232061A1 (en) * 2021-04-26 2022-11-03 Innopeak Technology, Inc. Bypass alignment in video coding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2005184232A (ja) 2003-12-17 2005-07-07 Sony Corp 符号化装置、プログラム、およびデータ処理方法
KR100612015B1 (ko) 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
US7525456B2 (en) 2005-04-15 2009-04-28 Qpixel Technology, Inc. Methods for adaptively selecting entropy encoding modes
US7061410B1 (en) 2005-07-18 2006-06-13 Lsi Logic Corporation Method and/or apparatus for transcoding between H.264 CABAC and CAVLC entropy coding modes
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
JP5278827B2 (ja) 2007-09-06 2013-09-04 日本電気株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、映像符号化あるいは復号プログラム
US8891615B2 (en) * 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
US8189776B2 (en) 2008-09-18 2012-05-29 The Hong Kong University Of Science And Technology Method and system for encoding multimedia content based on secure coding schemes using stream cipher
EP2182732A1 (en) 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
EP2559166B1 (en) * 2010-04-13 2017-11-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
ES2784509T3 (es) 2010-04-13 2020-09-28 Ge Video Compression Llc Codificación de mapas de significado y bloques de coeficiente de transformada
US9154801B2 (en) 2010-09-30 2015-10-06 Texas Instruments Incorporated Method and apparatus for diagonal scan and simplified coding of transform coefficients
CN102256125B (zh) * 2011-07-14 2013-06-05 北京工业大学 面向高效视频编码hevc基于上下文的自适应算数编码方法

Also Published As

Publication number Publication date
KR20140119736A (ko) 2014-10-10
BR112014017364A8 (pt) 2017-07-04
WO2013109357A1 (en) 2013-07-25
JP6113752B2 (ja) 2017-04-12
PT2805487T (pt) 2016-12-28
SG11201403382VA (en) 2014-09-26
MX2014008625A (es) 2014-08-21
AR092787A1 (es) 2015-05-06
CN104054341A (zh) 2014-09-17
BR112014017364A2 (pt) 2017-06-13
CN104054341B (zh) 2017-08-01
TWI561061B (en) 2016-12-01
ZA201406024B (en) 2017-09-27
PH12014501478B1 (en) 2014-09-22
SI2805487T1 (sl) 2016-12-30
KR101772740B1 (ko) 2017-08-29
IL233262B (en) 2018-02-28
PH12014501478A1 (en) 2014-09-22
AU2012366197A1 (en) 2014-08-07
MY168364A (en) 2018-10-31
PL2805487T3 (pl) 2017-03-31
JP2015507424A (ja) 2015-03-05
RU2014133791A (ru) 2016-03-20
DK2805487T3 (en) 2016-12-12
US20130182757A1 (en) 2013-07-18
BR112014017364B1 (pt) 2022-07-19
TW201342925A (zh) 2013-10-16
HUE031071T2 (en) 2017-06-28
HK1198233A1 (en) 2015-03-13
US9191670B2 (en) 2015-11-17
IL233262A0 (en) 2014-08-31
AU2012366197B2 (en) 2017-04-13
EP2805487B1 (en) 2016-09-21
CA2860804A1 (en) 2013-07-25
EP2805487A1 (en) 2014-11-26
RU2611992C2 (ru) 2017-03-01
CA2860804C (en) 2019-03-26

Similar Documents

Publication Publication Date Title
ES2608595T3 (es) Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC
AU2016271140B2 (en) Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
TWI657692B (zh) 於視訊寫碼程序中用於係數層級寫碼之萊斯(rice)參數初始化
ES2611349T3 (es) Codificación de Indicador de bloque codificado (CBF) para el formato de muestra 4:2:2 en codificación de vídeo
ES2549145T3 (es) Reducción de contexto para codificación aritmética binaria adaptativa según el contexto
ES2973247T3 (es) Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo
JP5955974B2 (ja) 最後有意係数の位置をコード化するためのコンテキスト最適化
US9161046B2 (en) Determining quantization parameters for deblocking filtering for video coding
ES2637490T3 (es) Grupos de coeficientes y codificación de coeficientes para barridos de coeficientes
ES2715838T3 (es) Matrices de cuantización de señalización para la codificación de vídeo
JP6105048B2 (ja) ビデオコーディングのための変換係数のコーディングにおけるグループフラグ
WO2013155274A1 (en) Bandwidth reduction in video coding through applying the same reference index
WO2013158629A1 (en) Sign hiding techniques for quantized transform coefficients in video coding
KR20150139888A (ko) 비디오 코딩 프로세스에서의 계수 레벨 코딩을 위한 라이스 파라미터 업데이트
EP2989796A1 (en) Repositioning of prediction residual blocks in video coding
KR20200007044A (ko) 인트라-프레임 예측 방법 및 장치