ES2698552T3 - Reducción del número de contextos para codificación aritmética binaria adaptativa al contexto - Google Patents

Reducción del número de contextos para codificación aritmética binaria adaptativa al contexto Download PDF

Info

Publication number
ES2698552T3
ES2698552T3 ES12781526T ES12781526T ES2698552T3 ES 2698552 T3 ES2698552 T3 ES 2698552T3 ES 12781526 T ES12781526 T ES 12781526T ES 12781526 T ES12781526 T ES 12781526T ES 2698552 T3 ES2698552 T3 ES 2698552T3
Authority
ES
Spain
Prior art keywords
partition
bin
video
video data
syntax element
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
ES12781526T
Other languages
English (en)
Inventor
Wei-Jung Chien
Rojals Joel Sole
Marta Karczewicz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Velos Media International Ltd
Original Assignee
Velos Media International Ltd
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48223670&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2698552(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Velos Media International Ltd filed Critical Velos Media International Ltd
Application granted granted Critical
Publication of ES2698552T3 publication Critical patent/ES2698552T3/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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

Un método de codificación (804) de datos de vídeo que comprende: determinar (802) como tipo de partición una partición asimétrica para un modo de predicción para un bloque de datos de vídeo; codificar (804) un bin de tipo de partición de un elemento de sintaxis usando codificación aritmética binaria adaptativa al contexto (CABAC) con un solo contexto, indicando el elemento de sintaxis cómo se divide el bloque de datos de vídeo, en el que el elemento de sintaxis comprende una cadena binaria, en el que el bin de tipo de partición indica si el bloque de datos de vídeo se divide de manera simétrica o se divide de manera asimétrica, en el que el bin de tipo de partición es del segundo al último bin de la cadena binaria, en el que el un solo contexto es el mismo para cualquier partición asimétrica, y en el que el un solo contexto es un modelo de probabilidad; y codificar (806) un bin de tamaño de partición del elemento de sintaxis usando CABAC en modo de derivación.

Description

DESCRIPCIÓN
Reducción del número de contextos para codificación aritmética binaria adaptativa al contexto
Campo técnico
Esta divulgación se refiere a codificación de vídeo, y en particular a codificación aritmética binaria adaptativa al contexto (CABAC) usada en codificación de vídeo.
Antecedentes
Las capacidades de vídeo digital pueden incorporarse en una amplia variedad de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión directa digitales, sistemas de radiodifusión inalámbricos, asistentes digitales personales (PDA), ordenadores portátiles o de sobremesa, tabletas, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digitales, reproductores multimedia digitales, dispositivos de videojuegos, consolas de videojuegos, radioteléfonos móviles o satelitales, los denominados “teléfonos inteligentes”, dispositivos de videoteleconferencia, dispositivos de emisión de vídeo directo, y similares. Los dispositivos de vídeo digitales implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, codificación de vídeo avanzada (AVC), norma de codificación de vídeo de alta eficiencia (HEVC) actualmente en desarrollo, y extensiones de esas normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, decodificar y/o almacenar información de vídeo digital de manera más eficiente mediante la implementación de tales técnicas de compresión de vídeo.
Las técnicas de compresión de vídeo realizan predicción espacial (dentro de las imágenes, intra-picture) y/o temporal (entre imágenes, inter-picture) para reducir o eliminar la redundancia inherente en secuencias de vídeo. Para la codificación de vídeo basada en bloques, un sector de vídeo (es decir, una imagen de vídeo o una parte de una imagen de vídeo) puede dividirse en bloques de vídeo, que también pueden denominarse bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un sector intra-codificado (I) de una imagen se codifican usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un sector inter-codificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia en bloques vecinos de la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse tramas, y las imágenes de referencia pueden denominarse tramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que va a codificarse. Los datos residuales representan diferencias de píxel entre el bloque original que va a codificarse y el bloque predictivo. Un bloque inter-codificado se codifica según un vector de movimiento que señala 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 un modo de intra-codificación y los datos residuales. Para mayor compresión, los datos residuales pueden transformarse del dominio de píxel a un dominio de transformada, dando como resultado coeficientes de transformada residuales, que entonces pueden cuantificarse. Los coeficientes de transformada cuantificados, inicialmente dispuestos en una matriz bidimensional, pueden escanearse para producir un vector unidimensional de coeficientes de transformada, y puede aplicarse codificación por entropía para lograr aún más compresión.
Sumario
La invención se define en las reivindicaciones a las que se hace ahora referencia. En general, esta divulgación describe técnicas para codificación aritmética binaria adaptativa al contexto (CABAC) en un procedimiento de codificación de vídeo. Esta divulgación propone una reducción en el número de contextos CABAC usados para uno o más elementos de sintaxis, ejemplos no limitativos de los cuales incluyen pred_type, merge_idx, inter_pred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag y coeff_abs_level_greater2_flag. Las modificaciones pueden reducir hasta 56 contextos con cambios de eficiencia de codificación insignificantes. Las reducciones de contexto propuestas para los elementos de sintaxis pueden usarse de manera individual o en cualquier combinación.
Se describe un método de codificación de vídeo que puede incluir determinar un primer tipo de predicción para un bloque de datos de vídeo en un sector P (P slice), que representa el primer tipo de predicción como elemento de sintaxis de tipo de predicción de sector P, determinar un segundo tipo de predicción para un bloque de datos de vídeo en un sector B (B slice), que representa el segundo tipo de predicción como elemento de sintaxis de tipo de predicción de sector B, determinar una binarización de sector P para el elemento de sintaxis de tipo de predicción de sector P, determinar una binarización de sector B para el elemento de sintaxis de tipo de predicción de sector B, en el que el elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de tipo de predicción de sector B se determinan usando la misma lógica de binarización, y codificando los datos de vídeo basándose en las binarizaciones del elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de predicción de sector B.
Se describe un método de decodificación de vídeo que puede incluir mapear un elemento de sintaxis de tipo de predicción de sector P binarizado a un tipo de predicción usando un mapeo de binarización para un bloque de datos de vídeo en un sector P, mapear un elemento de sintaxis de tipo de predicción de sector B binarizado a un tipo de predicción usando el mismo mapeo de binarización para un bloque de datos de vídeo en un sector B, y decodificar los datos de vídeo basándose en los tipos de predicción mapeados.
Se describe un método de codificación de datos de vídeo que comprende codificar un indicador de bloque codificado de croma Cb para un bloque de datos de vídeo usando CABAC, en el que codificar el indicador de bloque codificado de croma Cb comprende usar un conjunto de contextos que incluye uno o más contextos como parte de la CABAC, y codificar un indicador de bloque codificado de croma Cr usando CABAC, en el que codificar el indicador de bloque codificado de croma Cr comprende usar el mismo conjunto de contextos que el indicador de bloque codificado de croma Cb como parte de la CABAC.
Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características, objetos y ventajas resultarán evidentes a partir de la descripción y los dibujos, y de las reivindicaciones
Breve descripción de los dibujos
La figura 1 es un diagrama de bloques que ilustra un sistema de codificación y decodificación de vídeo de ejemplo que puede utilizar las técnicas descritas en esta divulgación.
La figura 2 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo que puede implementar las técnicas descritas en esta divulgación.
La figura 3 es un diagrama de bloques que ilustra un decodificador de vídeo de ejemplo que puede implementar las técnicas descritas en esta divulgación.
La figura 4 es un dibujo conceptual que muestra tipos de partición tanto cuadrados como no cuadrados.
La figura 5 es un dibujo conceptual que muestra tipos de partición asimétricos.
La figura 6 es un diagrama de flujo que ilustra un método de codificación de vídeo de ejemplo de la divulgación. La figura 7 es un diagrama de flujo que ilustra un método de decodificación de vídeo de ejemplo de la divulgación. La figura 8 es un diagrama de flujo que ilustra un método de codificación de vídeo de ejemplo de la divulgación. La figura 9 es un diagrama de flujo que ilustra un método de decodificación de vídeo de ejemplo de la divulgación. La figura 10 es un diagrama de flujo que ilustra un método de codificación de vídeo de ejemplo de la divulgación. Descripción detallada
Esta divulgación describe técnicas para codificar datos, tal como datos de vídeo. En particular, la divulgación describe técnicas que pueden promover la codificación eficiente de datos de vídeo usando procedimientos de codificación por entropía adaptativa al contexto. Más específicamente, esta divulgación propone una reducción en el número de contextos CABAC usados para codificar elementos de sintaxis, tales como, pred_type, merge_idx, inter_pred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag y coeff_abs_level_greater2_flag. Las modificaciones reducen hasta 56 contextos con cambios de eficiencia de codificación insignificantes. Esta divulgación describe la codificación de vídeo para fines de ilustración. Sin embargo, las técnicas descritas en esta divulgación también pueden aplicarse a otros tipos de codificación de datos.
La figura 1 es un diagrama de bloques que ilustra un sistema de codificación y decodificación de vídeo de ejemplo 10 que puede configurarse para utilizar técnicas para codificación aritmética binaria adaptativa al contexto (CABAC) según ejemplos de esta divulgación. Tal como se muestra en la figura 1, el sistema 10 incluye el dispositivo fuente 12 que transmite vídeo codificado al dispositivo de destino 14 por medio del canal de comunicación 16. Los datos de vídeo codificados también pueden almacenarse en el medio de almacenamiento 34 o el servidor de archivos 36 y puede accederse a ellos mediante el dispositivo de destino 14 según se desee. Cuando se almacena en un medio de almacenamiento o servidor de archivos, el codificador de vídeo 20 puede proporcionar datos de vídeo codificados a otro dispositivo, tal como una interfaz de red, un dispositivo de instalación de grabación o registro de discos compactos (CD), Blu-ray o videodiscos digitales (DVD), u otros dispositivos, para almacenar los datos de vídeo codificados en el medio de almacenamiento. Asimismo, un dispositivo separado de codificador de vídeo 30, tal como un lector de interfaz de red, CD o DVD, o similar, puede recuperar datos de vídeo codificados de un medio de almacenamiento y proporcionar los datos recuperados al codificador de vídeo 30.
El dispositivo fuente 12 y el dispositivo de destino 14 pueden comprender cualquiera de una amplia variedad de dispositivos, incluyendo ordenadores de sobremesa, ordenadores portátiles (por ejemplo, un portátil), tabletas, cajas de conexión, aparatos telefónicos 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 por cable, o una combinación de canales inalámbricos y por cable adecuados para la transmisión de datos de vídeo codificados. De manera similar, puede accederse a un servidor de archivos 36 por el dispositivo de destino 14 a través de cualquier conexión de datos convencional, incluyendo una conexión de Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, DSL, cable módem, etc.), o una combinación de ambos, que es adecuado para el acceso a datos de vídeo codificados almacenados en un servidor de archivos.
Las técnicas para CABAC, según ejemplos de esta divulgación, pueden aplicarse a codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como radiodifusiones de televisión por el aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de emisión de vídeo, por ejemplo, a través de Internet, codificación de vídeo digital para el 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 soportar transmisión de vídeo en un solo sentido o en dos sentidos para soportar aplicaciones tales como emisión de vídeo, reproducción de vídeo, retransmisión de vídeo y/o videotelefonía.
En el ejemplo de la figura 1, el dispositivo fuente 12 incluye la fuente de vídeo 18, el codificador de vídeo 20, el modulador/demodulador 22 y el transmisor 24. En el dispositivo fuente 12, la fuente de vídeo 18 puede incluir una fuente tal como un dispositivo de captura de vídeo, una cámara de vídeo, un archivo de vídeo que contiene vídeo capturado previamente, una interfaz de alimentación de vídeo para recibir vídeo de 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 vídeo de origen o una combinación de tales fuentes. Como ejemplo, si la fuente de vídeo 18 es una cámara de vídeo, el dispositivo fuente 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, las técnicas descritas en esta divulgación pueden aplicarse a codificación de vídeo en general, y pueden aplicarse a aplicaciones inalámbricas y/o por cable, o aplicaciones en las que los datos de vídeo codificados se almacenan en un disco local.
El vídeo capturado, previamente capturado o generado por ordenador puede codificarse por el codificador de vídeo 20. La información de vídeo codificada puede modularse por el módem 22 según una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y se transmite al dispositivo de destino 14 a través del transmisor 24. El módem 22 puede incluir diversos mezcladores, filtros, amplificadores u otros componentes diseñados para la modulación de señales. El transmisor 24 puede incluir circuitos diseñados para transmitir datos, incluyendo amplificadores, filtros y una o más antenas.
El vídeo capturado, previamente capturado o generado por ordenador que se codifica por el codificador de vídeo 20 también puede almacenarse en un medio de almacenamiento 34 o en el servidor de archivos 36 para el 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. Entonces puede accederse al vídeo codificado almacenado en el medio de almacenamiento 34 por el dispositivo de destino 14 para la decodificación y la reproducción. Aunque no se muestra en la figura 1, en algunos ejemplos, el medio de almacenamiento 34 y/o el servidor de archivos 36 pueden almacenar la salida del transmisor 24.
El servidor de archivos 36 puede ser cualquier tipo de servidor que pueda almacenar vídeo codificado y transmitir ese vídeo codificado al dispositivo de destino 14. Servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectado en red (NAS), una unidad de disco local, o cualquier otro tipo de dispositivo que pueda almacenar los datos de vídeo codificados y transmitirlos a un dispositivo de destino. La transmisión de datos de vídeo codificados desde el servidor de archivos 36 puede ser una transmisión de emisión, una transmisión de descarga, o una combinación de ambas. Puede accederse al servidor de archivos 36 mediante el dispositivo de destino 14 a través de cualquier conexión de datos convencional, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, DSL, cable módem, Ethernet, USB, etc.), o una combinación de ambos que es adecuada para el acceso a los datos de vídeo codificados almacenados en un servidor de archivos.
El dispositivo de destino 14, en el ejemplo de la figura 1, incluye el receptor 26, el módem 28, el decodificador de vídeo 30 y el 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 demodula la información para producir una corriente de bits demodulada para el decodificador de vídeo 30. La información comunicada a través del canal 16 puede incluir una variedad de información de sintaxis generada por el codificador de vídeo 20 para su uso por el decodificador de vídeo 30 en la decodificación de datos de vídeo. Esta sintaxis también puede incluirse con los datos de vídeo codificados almacenados en el medio de almacenamiento 34 o el servidor de archivos 36. Cada uno del codificador de vídeo 20 y el decodificador de vídeo 30 puede formar parte de un codificador-decodificador (CODEC) respectivo que puede 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 puede estar configurado para interconectarse con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 32 muestra los datos de vídeo decodificados a un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, un diodo emisor de luz orgánico (OLED), u otro tipo de dispositivo de visualización.
En el ejemplo de la figura 1, el canal de comunicación 16 puede comprender cualquier medio de comunicación inalámbrico o por cable, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas, o cualquier combinación de medios inalámbricos y por cable. El canal de comunicación 16 puede formar parte de una red basada en paquetes, tales como una red de área local, una red de área amplia o una red global tal como Internet. El canal de comunicación 16 representa generalmente cualquier medio de comunicación adecuado o conjunto de diferentes medios de comunicación, para transmitir datos de vídeo desde el dispositivo fuente 12 hasta el dispositivo de destino 14, incluyendo cualquier combinación adecuada de medios por cable 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 fuente 12 hasta el 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 alta eficiencia (HEVC) actualmente en fase de desarrollo por el Equipo de Colaboración Conjunta de Codificación de Vídeo (JCT-VC) del Grupo de Expertos de Codificación de Vídeo ITU-T (VCEG) y el Grupo de Expertos de Imagen en Movimiento ISO/IEC (MPEG). Un proyecto reciente de la norma HEVC, denominado “Proyecto de Trabajo HEVC 6” o “WD6”, se describe en el documento JCTVC-H1003, Bross et al, “High efficiency video coding (HEVC) text specification draft 6”, Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) de ITU-T SG16 Wp3 e ISO/IEC JTC 1/SC29/WG11, octavo encuentro: San José, California, EE.UU., febrero de 2012, que, desde el 1 de junio de 2012 puede descargarse de http://phenix.intevry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11JCTVC-H1003-v22.zip.
Alternativamente, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden operar según otras normas de propiedad o industriales, tales como la norma ITU-T H.264, denominada alternativamente MPEG 4, Parte 10, codificación de vídeo avanzada (AVC), o extensiones de dichas normas. Las técnicas de esta divulgación, sin embargo, no se limitan a ninguna norma de codificación particular. Otros ejemplos incluyen MPEG-2 e ITU-T H.263.
Aunque no se muestra en la figura 1, en algunos aspectos, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden estar cada uno integrado con un codificador y decodificador de audio, y pueden incluir unidades MUX-DEMUX apropiadas u otro hardware y software, para manejar la codificación tanto de audio como de vídeo en una corriente de datos común o en corrientes de datos independientes. Si procede, en algunos ejemplos, las unidades MUX-DEMUX pueden ser conforme al protocolo de multiplexor ITU H.223, u otros protocolos tales como el protocolo de datagrama de usuario (UDP).
El codificador de vídeo 20 y el decodificador de vídeo 30, pueden implementarse cada uno como cualquiera de una variedad de conjuntos de circuitos de codificador adecuados, tal como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de aplicación (ASIC), matrices de puertas programables por campo (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio legible por ordenador adecuado, no transitorio, y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno del codificador de vídeo 20 y el decodificador de vídeo 30 pueden incluirse en uno o más codificadores o decodificadores, cualquiera de los cuales puede integrarse como parte de un codificador/decodificador (CODEC) combinado en un dispositivo respectivo.
El codificador de vídeo 20 puede implementar cualquiera o todas las técnicas de esta divulgación para CABAC en un procedimiento de codificación de vídeo. Asimismo, el decodificador de vídeo 30 puede implementar cualquiera o todas estas técnicas para CABAC en un procedimiento 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. Asimismo, la codificación de vídeo puede referirse a codificación de vídeo o a decodificación de vídeo.
En un ejemplo de la divulgación, el codificador de vídeo 20 puede estar configurado para determinar un primer tipo de predicción para un bloque de datos de vídeo en un sector P, representar el primer tipo de predicción como elemento de sintaxis de tipo de predicción de sector P, determinar un segundo tipo de predicción para un bloque de datos de vídeo en un sector B, representar el segundo tipo de predicción como elemento de sintaxis de tipo de predicción de sector B, determinar una binarización de sector P para el elemento de sintaxis de tipo de predicción de sector P, determinar una binarización de sector B para el elemento de sintaxis de tipo de predicción de sector B, en el que el elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de tipo de predicción de sector B se determinan usando la misma lógica de binarización, y codificar los datos de vídeo basándose en las binarizaciones del elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de predicción de sector B.
En otro ejemplo de la divulgación, el decodificador de vídeo 30 puede estar configurado para mapear un elemento de sintaxis de tipo de predicción de sector P binarizado a un tipo de predicción usando un mapeo de binarización para un bloque de datos de vídeo en un sector P, mapear un elemento de sintaxis de tipo de predicción de sector B binarizado a un tipo de predicción usando el mismo mapeo de binarización para un bloque de datos de vídeo en un sector B, y decodificar los datos de vídeo basándose en los tipos de predicción mapeados.
En otro ejemplo de la divulgación, el codificador de vídeo 20 puede estar configurado para determinar un tipo de partición para un modo de predicción para un bloque de datos de vídeo, codificar un bin de tipo de partición de un elemento de sintaxis de tipo de predicción para el bloque de datos de vídeo usando CABAC con un solo contexto, en el que el un solo contexto es el mismo para cualquier tipo de partición, y codificar un bin de tamaño de partición del elemento de sintaxis de tipo de predicción para el bloque de datos de vídeo usando CABAC en modo de derivación. En otro ejemplo de la divulgación, el decodificador de vídeo 30 puede estar configurado para recibir un elemento de sintaxis de tipo de predicción para un bloque de datos de vídeo que se han codificado usando CABAC, incluyendo el elemento de sintaxis de tipo de predicción un bin de tipo de partición que representa un tipo de partición y un bin de tamaño de partición que representa un tamaño de partición, decodificar el bin de tipo de partición del elemento de sintaxis de tipo de predicción usando CABAC con un solo contexto, en el que el un solo contexto es el mismo para cualquier tipo de partición, y decodificar el bin de tamaño de partición del elemento de sintaxis de tipo de predicción usando CABAC en modo de derivación.
En otro ejemplo de la divulgación, tanto el codificador de vídeo 20 como el decodificador de vídeo 30 puede estar configurado para codificar un indicador de bloque codificado de croma Cb para un bloque de datos de vídeo usando CABAC, en el que codificar el indicador de bloque codificado de croma Cb comprende usar un conjunto de contextos que incluye uno o más contextos como parte de la CABAC, y codificar un indicador de bloque codificado de croma Cr usando CABAC, en el que codificar el indicador de bloque codificado de croma Cr comprende usar el mismo conjunto de contextos que el indicador de bloque codificado de croma Cb como parte de la CABAC.
El JCT-VC está trabajando en el desarrollo de la norma HEVC. Los esfuerzos de normalización HEVC se basan en un modelo de evolución de un dispositivo de codificación de vídeo denominado el Modelo de Prueba HEVC (HM). El HM supone varias capacidades adicionales de dispositivos de codificación de vídeo en relación con los dispositivos existentes según, por ejemplo, ITU-T H.264/AVC. Por ejemplo, aunque H.264 proporciona nueve modos de codificación intra-predicción, el HM puede proporcionar hasta treinta y tres modos de codificación intra-predicción. En la siguiente sección se comentarán algunos aspectos del HM en más detalle.
En general, el modelo de trabajo del HM describe que una imagen o trama de vídeo puede dividirse en una secuencia de bloques de árbol o unidades de codificación mayores (Largest Coding Units, LCU) que incluyen tanto muestras de luma como de croma. Un bloque de árbol tiene un propósito similar que un macrobloque de la norma H.264. Un sector incluye varios bloques de árbol consecutivos en orden de codificación. Una imagen o trama de vídeo puede dividirse en uno o más sectores. Cada bloque de árbol puede dividirse en unidades de codificación (CU) según un árbol cuaternario. Por ejemplo, un bloque de árbol, como un nodo raíz del árbol cuaternario, puede dividirse en cuatro nodos hijos, y cada nodo hijo puede ser a su vez un nodo padre y dividirse en otros cuatro nodos hijos. Un nodo hijo final, no dividido, como un nodo hoja del árbol cuaternario, comprende un nodo de codificación, es decir, un bloque de vídeo codificado. Los datos de sintaxis asociados con una corriente de bits codificados puede definir un número máximo de veces en que un bloque de árbol puede dividirse, y también puede definir un tamaño mínimo de los nodos de codificación.
Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas con el nodo de codificación. Un tamaño de la CU corresponde generalmente a un tamaño del nodo de codificación y normalmente debe ser de forma cuadrada. El tamaño de la CU puede oscilar entre 8 x 8 píxeles y el tamaño del bloque de árbol con un máximo de 64 x 64 píxeles o mayor. Cada CU puede contener una o más Pu y una o más TU. Los datos de la sintaxis asociados con una CU pueden describir, por ejemplo, la partición de la Cu en una o más PU. Los modos de partición pueden ser diferentes entre sí si la CU se omite o se codifica en modo directo, se codifica en modo de intra-predicción o se codifica en modo de inter-predicción. Las PU pueden dividirse para no ser de forma cuadrada. Los datos de la sintaxis asociados con una CU también pueden describir, por ejemplo, la partición de la CU en una o más TU según un árbol cuaternario. Una TU puede ser de forma cuadrada o no cuadrada.
La norma HEVC emergente permite transformaciones según las TU, que pueden ser diferentes para diferentes CU. Las TU normalmente se dimensionan basándose en el 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 normalmente son del mismo tamaño o más pequeñas 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 cuaternario conocida como “árbol cuaternario residual” (RQT). Los nodos de hoja del RQT pueden denominarse unidades de transformada (TU). Los valores de diferencia de píxeles asociados con las TU pueden transformarse para producir coeficientes de transformada, que pueden cuantificarse.
En general, una PU se refiere a datos relacionados con el procedimiento de predicción. Por ejemplo, cuando la PU está codificada por intra-modo, la PU puede incluir datos que describen un modo de intra-predicción para la PU. Como otro ejemplo, cuando la PU está codificada por intra-modo, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, 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 imagen de referencia a la que apunta el vector de movimiento, y/o una lista de imágenes de referencia (por ejemplo, Lista 0, Lista 1 o Lista C) para el vector de movimiento.
En general, una TU se usa para los procedimientos de transformada y de cuantificación. Una CU dada que tiene una o más PU también puede incluir una o más unidades de transformada (TU). Tras la predicción, el codificador de vídeo 20 puede calcular 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 entonces para hacer referencia a los valores residuales, en lugar de al bloque de vídeo original. Los valores residuales comprenden valores de diferencia de píxeles que pueden transformarse en coeficientes de transformada, cuantificarse y escanearse usando las transformadas y otra información de unidad de transformada especificada en las TU para producir coeficientes de transformada serializados para la codificación por entropía. El nodo de codificación puede actualizarse una vez más para referirse a estos coeficientes de transformada serializados. Esta divulgación normalmente usa 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 de árbol, es decir, LCU, o una CU, que incluye un nodo de codificación y PU y TU.
Una secuencia de vídeo normalmente incluye una serie de imágenes o tramas 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 de sintaxis en un encabezado del GOP, un encabezado de una o más de las imágenes, o en otro lugar, que describe varias imágenes incluidas en el GOP. Cada sector de una imagen puede incluir datos de sintaxis de sector que describen un modo de codificación para el respectivo sector. El codificador de vídeo 20 normalmente funciona en bloques de vídeo dentro de sectores de vídeo individuales para codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden tener tamaños fijos o variables, y pueden diferir en tamaño según una norma de codificación especificada.
Como ejemplo, el HM soporta la predicción en varios tamaños de PU. Suponiendo que el tamaño de una CU particular es 2N x 2N, el HM soporta intra-predicción en tamaños de PU de 2N x 2N o N x N, y la inter-predicción en tamaños de PU simétricos de 2N x 2N, 2N x N, N x 2N o N x N. El HM también soporta la partición asimétrica para inter-predicción en tamaños de PU de 2N x nU, 2N x nD, nL x 2N y nR x 2N. En la partición asimétrica, una dirección de una CU no se divide, mientras que la otra dirección se divide en el 25% y el 75%. La parte de la CU correspondiente a la partición del 25% se indica mediante una “n”, seguido de una indicación de “arriba”, “abajo”, “izquierda” o “derecha”. Así, por ejemplo,” 2N x nU “se refiere a una CU 2N x 2N que se divide horizontalmente con una PU de 2N x 0,5N en la parte superior y una PU de 2N x 1,5N en la parte inferior.
La figura 4 es un dibujo conceptual que muestra tipos de partición tanto cuadrados como no cuadrados para intrapredicción e inter-predicción. La partición 102 es una partición 2N x 2N y puede usarse para intra-predicción e inter­ predicción. La partición 104 es una partición N x N y puede usarse para intra-predicción e inter-predicción. La partición 106 es una partición 2N x N y se usa actualmente en HEVC para inter-predicción. La partición 108 es una partición N x 2N y se usa actualmente en HEVC para inter-predicción
La figura 5 es un dibujo conceptual que muestra tipos de partición asimétricos. La partición 110 es una partición 2N x nU y se usa actualmente en HEVC para inter-predicción. La partición 112 es una partición 2N x nD y se usa actualmente en HEVC para inter-predicción. La partición 114 es una partición nL x 2n y se usa actualmente en HEVC para inter-predicción. La partición 116 es una partición nR x 2N y se usa actualmente en HEVC para inter­ predicción.
En esta divulgación, “N x N” y “N por N” pueden usarse indistintamente para referirse a las dimensiones en píxeles de un bloque de vídeo en lo que se refiere a las dimensiones verticales y horizontales, por ejemplo, 16 x 16 píxeles o 16 por 16 píxeles. En general, un bloque de 16 x 16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Asimismo, un bloque de N x N generalmente tiene N píxeles en una dirección vertical y N píxeles en dirección horizontal, donde n representa un valor de número entero no negativo. Los píxeles en un bloque pueden estar dispuestos en filas y columnas. Por otra parte, no es necesario que los bloques tengan necesariamente el mismo número de píxeles en la dirección horizontal y en la dirección vertical. Por ejemplo, los bloques pueden comprender N x M píxeles, donde M no es necesariamente igual a N.
Después de la codificación intra-predictiva o inter-predictiva usando las PU de una CU, el codificador de vídeo 20 puede calcular datos residuales a los que se aplican las transformadas especificadas por TU de la CU. Los datos residuales pueden corresponder a diferencias de píxel entre los píxeles de la imagen sin codificar y los valores de predicción correspondientes a la CU. El codificador de vídeo 20 puede formar los datos residuales para la CU, y luego transformar los datos residuales para producir coeficientes de transformada.
Después de cualquier transformada para producir coeficientes de transformada, el codificador de vídeo 20 puede realizar cuantificación de los coeficientes de transformada. La cuantificación se refiere generalmente a un procedimiento en el que los coeficientes de transformada se cuantifican para de reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando una compresión adicional. El procedimiento de cuantificación puede reducir la profundidad de bits asociados con algunos o todos de los coeficientes. Por ejemplo, un valor de n bits puede redondearse a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
En algunos ejemplos, el codificador de vídeo 20 puede utilizar un orden de escaneo predefinido para escanear los coeficientes de transformada cuantificados para producir un vector serializado que puede estar 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 transformada cuantificados para formar un vector unidimensional, el codificador de vídeo 20 puede codificar por entropía el vector unidimensional, por ejemplo, según la codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC), codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), codificación por entropía de partición de intervalos de probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador de vídeo 20 también puede codificar por entropía elementos de sintaxis asociados con los datos de vídeo codificados para su uso por el decodificador de vídeo 30 en la decodificación de los datos de vídeo.
Para realizar CABAC, el codificador de vídeo 20 puede asignar un contexto dentro de un modelo de contexto a un símbolo que va a transmitirse. El contexto puede estar relacionado con, por ejemplo, si los valores vecinos del símbolo son distintos de cero o no. Para realizar CAVLC, el codificador de vídeo 20 puede seleccionar un código de longitud variable para un símbolo que va a transmitirse. Las contraseñas en VLC pueden construirse de tal manera que códigos relativamente más cortos corresponden a símbolos más probables, mientras que códigos más largos corresponden a los símbolos menos probables. De este modo, el uso de VLC puede lograr un ahorro de bits con respecto a, por ejemplo, el uso de contraseñas de igual longitud para cada símbolo que va a transmitirse. La determinación de la probabilidad puede basarse en un contexto asignado al símbolo.
Esta divulgación se refiere a técnicas para codificadores por entropía de codificación aritmética binaria adaptativa al contexto (CABAC) u otros codificadores por entropía, tales como codificación por entropía de partición de intervalos de probabilidad (PIPE) o codificadores relacionados. La codificación aritmética es una forma de codificación por entropía usada en muchos algoritmos de compresión que tiene una alta eficiencia de codificación, ya que es capaz de mapear símbolos para contraseñas de longitud de número no entero. Un ejemplo de un algoritmo de codificación aritmética es la codificación aritmética binaria basada en contexto (CABAC) usada en H.264/AVC.
En general, la codificación de símbolos de datos usando CABAC implica una o más de las siguientes etapas:
(1) Binarización: Si un símbolo que va a codificarse no es de valor binario, se mapea a una secuencia de los denominados “bins”. Cada bin puede tener un valor de “0” o “1”.
(2) Asignación de contexto: Cada bin (en modo regular) se asigna a un contexto. Un modelo de contexto determina cómo se calcula un contexto para un bin determinado, basándose en la información disponible para el bin, tal como valores de símbolos codificados previamente o número de bin.
(3) Codificación de bin: Los bins se codifican con un codificador aritmético. Para codificar un bin, el codificador aritmético requiere como entrada una probabilidad del valor del bin, es decir, una probabilidad de que el valor del bin sea igual a “0”, y una probabilidad de que el valor del bin sea igual a “1”. La probabilidad (estimada) de cada contexto está representada por un valor de número entero denominado un “estado de contexto”. Cada contexto tiene un estado, y por lo tanto el estado (es decir, la probabilidad estimada) es el mismo para bins 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 bin (por ejemplo, si el valor del bin era “1”, se aumenta la probabilidad de “1”).
Cabe señalar que la codificación por entropía de partición de intervalos de probabilidad (PIPE) utiliza principios similares a los de la codificación aritmética, y por lo tanto puede también usar las técnicas de esta divulgación. CABAC en H.264/AVC y HEVC usa estados, y cada estado está relacionado implícitamente con una probabilidad. Hay variantes de CABAC, en las que una probabilidad de un símbolo (“0” o “1”) se usa directamente, es decir, la probabilidad (o una versión de número entero de la misma) es el estado. Por ejemplo, tales variantes de CABAC se describen en “Description of video coding technology proposal by France Telecom, NTT, NTT DOCOMO, Panasonic and Technicolor” JcTv C-A114, primer encuentro de JCT-VC, Dresde, DE, abril de 2010, denominado “JCTVC-A114” a continuación en el presente documento, y A. Alshin y E. Alshina, “Multi-parameter probability update for CABAC”, JCTVC-F254, sexto encuentro de JCT-VC, Turín, IT, julio de 2011, denominado “JCTVC-F254” a continuación en el presente documento.
En esta divulgación, se propone una reducción en el número de binarizaciones y/o contextos usados en CABAC. En particular, esta divulgación propone técnicas que pueden disminuir los contextos de números usados en CABAC en hasta 56. Con 56 menos contextos, los resultados experimentales muestran cambios de velocidad-distorsión de bits (BD) del 0,00%, el 0,01% y el -0,13% en condiciones de prueba de alta eficiencia de tipo intra únicamente, de acceso aleatorio y de poco retardo, respectivamente. Como tal, una reducción en el número de contextos necesarios reduce las necesidades de almacenamiento tanto en el codificador como en el decodificador sin afectar materialmente a la eficiencia de codificación.
En esta divulgación, se propone una reducción en el número de contextos CABAC usados para los elementos de sintaxis, pred_type, merge_idx , inter_pred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag y coeff_abs_level_greater2_flag. Las modificaciones reducen hasta 56 contextos con cambios de eficiencia de codificación insignificantes. Las reducciones de contexto propuestas para los elementos de sintaxis anteriores pueden usarse solos o en cualquier combinación.
El elemento de sintaxis pred_type incluye un modo de predicción (pred_mode_flag) y un tipo de partición (part_mode) para cada unidad de codificación. El elemento de sintaxis pred_mode_flag igual a 0 especifica que la unidad de codificación actual está codificada en modo de inter-predicción. El elemento de sintaxis pred_mode_flag igual a 1 especifica que la unidad de codificación actual está codificada en modo de intra-predicción. El elemento de sintaxis part_mode especifica el modo de partición de la unidad de codificación actual.
El elemento de sintaxis merge_idx [x0] [y0] especifica el índice candidato de fusión de la lista de candidatos de fusión, donde x0, y0 especifican la ubicación (x0, y0) de la muestra de luma superior izquierda del bloque de predicción considerado en relación con la muestra de luma superior izquierda de la imagen. Cuando merge_idx [x0] [y0] no está presente, se deduce que es igual a 0. Una lista de candidatos de fusión es una lista de unidades de codificación adyacentes a una de las unidades actuales de la que puede copiarse la información de movimiento.
El elemento de sintaxis inter_pred_flag [x0][y0] especifica si se usa uni-predicción o bi-predicción para la unidad de predicción actual. Los índices de matriz x0, y0 especifican la ubicación (x0, y0) de la muestra de luma superior izquierda del bloque de predicción considerado en relación con la muestra de luma superior izquierda de la imagen
El elemento de sintaxis ref_idx_lx se refiere a la imagen de referencia específica dentro de una lista de imágenes de referencia.
Los elementos de sintaxis cbf_cb, cbf_cr indican si el croma (Cb y Cr, respectivamente) transforman o no bloques que contienen coeficientes de transformada distintos de cero. El elemento de sintaxis cbf_cb [x0] [y0] [trafoDepth] igual a 1 especifica que el bloque de transformada de Cb contiene uno o más niveles de coeficientes de transformada que no son iguales a 0. Los índices de matriz x0, y0 especifican la ubicación (x0, y0) de la muestra de luma superior izquierda del bloque de transformada considerado en relación con la muestra de luma superior izquierda de la imagen. El índice de matriz trafoDepth especifica el nivel de subdivisión actual de una unidad de codificación en bloques para codificación de transformada. El índice de matriz trafoDepth es igual a 0 para bloques que corresponden a unidades de codificación. Cuando cbf_cb [x0] [y0] [trafoDepth] no está presente y el modo de predicción no es intra-predicción, se deduce que el valor de cbf_cb [x0] [y0] [trafoDepth] es igual a 0.
El elemento de sintaxis cbf_cr [x0][y0] [trafoDepth] igual a 1 especifica que el bloque de transformada de Cr contiene uno o más niveles de coeficientes de transformada que no son iguales a 0. Los índices de matriz x0, y0 especifican la ubicación (x0, y0) de la muestra de luma superior izquierda del bloque de transformada considerado en relación con la muestra de luma superior izquierda de la imagen. El índice de matriz trafoDepth especifica el nivel de subdivisión actual de una unidad de codificación en bloques para codificación de transformada. El índice de matriz trafoDepth es igual a 0 para los bloques que corresponden a unidades de codificación. Cuando cbf_cr [x0] [y0] [trafoDepth] no está presente y el modo de predicción no es intra-predicción, se deduce que el valor de cbf_cr [x0] [y0] [trafoDepth] es igual a 0.
El elemento de sintaxis coeff_abs_level_greater1_flag[n] especifica la posición de escaneo n si hay niveles de coeficientes de transformada mayores de 1. Cuando coeff_abs_level_greater1_flag[n] no está presente, se deduce que es igual a 0.
El elemento de sintaxis coeff_abs_level_greater2_flag[n] especifica la posición de escaneo n si hay niveles de coeficientes de transformada mayores de 2. Cuando coeff_abs_level_greater2_flag[n] no está presente, se deduce que es igual a 0.
En una propuesta para HEVC, diferentes binarizaciones en el elemento de sintaxis pred_type se usan en sectores P y B tal como se muestra en la tabla 1. Esta divulgación propone usar las mismas binarizaciones para sectores P y B. Los ejemplos se muestran en las tablas 2-4. La tabla 5 muestra el impacto en el rendimiento de codificación del sector P en condiciones de prueba comunes (por ejemplo, véase F. Bossen, “Comirion test conditions and software reference configurations” JCTVC-F900).
Figure imgf000009_0001
Figure imgf000010_0001
Tabla 1. Binarización para pred_type en una propuesta para HEVC
Tal como puede observarse en la tabla 1, sectores I (por ejemplo, sectores que sólo incluyen bloques intrapredichos), incluyen dos tipos de predicción diferentes (pred_type). Una cadena de bins (binarización) se usa para un bloque intra-predicho con un tipo de partición 2N x 2N, y otra cadena de bins se usa para un bloque intrapredicho con un tipo de partición N x N. Tal como se muestra en la tabla 1, la cadena de bins usada para los sectores I no depende del tamaño de la CU.
Para los sectores P y B, en la tabla 1, se usan diferentes cadenas de bins para cada valor de pred_type. De nuevo, el valor de pred_type depende tanto del modo de predicción (inter-predicción o intra-predicción) como del tipo de partición usada. Para los sectores P y B, la cadena de bins real usada depende además del tamaño de la CU que está codificada y de si está habilitada o no la inter-predicción para un tamaño de bloque de 4 x 4.
La primera columna bajo la cadena de bins se aplica para la situación en la que la función logarítmica del tamaño de CU de la CU que está codificándose es mayor que la función logarítmica del tamaño de CU mínimo permisible. Según un ejemplo en HEVC, la primera columna de cadenas de bins se usa si cLog2CUSize > Log2MinCUsize. La función logarítmica se usa para crear un número más pequeño, de modo que puede usarse un índice consecutivo más pequeño.
Si la función logarítmica del tamaño de CU de la CU que está codificándose es equivalente a la función logarítmica del tamaño de CU mínimo permisible (es decir, cLog2CUSize = = Log2MinCUSize), entonces una de las columnas 2 y 3 según la cadena de bins en la tabla 1 se usa para seleccionar la binarización. La columna 2 se usa cuando la función logarítmica del tamaño de CU de la CU que está codificándose es equivalente a 3 y no está habilitada la inter-predicción para una CU de 4 x 4 (es decir, cLog2CUSize = = 3 && !inter_4x4_enabled_flag). La columna 3 se usa cuando la función logarítmica del tamaño de CU de la CU que está codificándose es mayor de 3 o cuando está habilitada la inter-predicción para una CU de 4 x 4 (es decir, cLog2CUSize> 3 | | inter_4x4_enabled_flag).
La tabla 2 a continuación muestra binarizaciones de ejemplo donde los sectores P y B usan las mismas cadenas de bins, según uno o más ejemplos descritos en esta divulgación. Tal como se muestra en la tabla 2, los sectores P usan las mismas binarizaciones usadas para los sectores B en la tabla 1. De este modo, no es necesario almacenar y usar un conjunto independiente de contextos para ambos sectores P y B. Como tal, se reduce el número total de contextos necesario para codificar el elemento de sintaxis pred_type. Además, sólo es necesario almacenar un mapeo (en lugar de dos) entre la lógica de cadena de bins (mostrada en las columnas (1) -(3)) y la cadena de bins actual.
Figure imgf000010_0002
Figure imgf000011_0001
Tabla 2. Binarización para pred_type en un ejemplo de la divulgación
La tabla 3 a continuación muestra otro ejemplo de una binarización para pred_type. En este ejemplo, los sectores B usan las mismas binarizaciones que los sectores P de la tabla 1. La tabla 4 a continuación muestra un ejemplo adicional en el que los sectores P y los sectores B usan las mismas binarizaciones. Las tablas 2-4 sólo pretenden mostrar ejemplos de binarizaciones compartidas entre sectores P y B. Puede usarse cualquier binarización o regla de binarización de modo que los elementos de sintaxis pred_type para ambos sectores P y B comparten las mismas binarizaciones.
El codificador de vídeo 20 y el decodificador de vídeo 30 pueden almacenar las mismas reglas de mapeo y tablas de mapeo (por ejemplo, tal como se muestra en la tablas 2-4) para su uso con ambos sectores P y B. Puede aplicarse codificación y decodificación CABAC al elemento de sintaxis pred_type usando estos mapeos.
De este modo, el codificador de vídeo 20 puede estar configurado para determinar un primer tipo de predicción para un bloque de datos de vídeo en un sector P, representar el primer tipo de predicción como elemento de sintaxis de tipo de predicción de sector P, determinar un segundo tipo de predicción para un bloque de datos de vídeo en un sector B, representar el segundo tipo de predicción como elemento de sintaxis de tipo de predicción de sector B, determinar una binarización de sector P para el elemento de sintaxis de tipo de predicción de sector P, determinar una binarización de sector B para el elemento de sintaxis de tipo de predicción de sector B, en el que el elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de tipo de predicción de sector B se determinan usando la misma lógica de binarización, y codificar los datos de vídeo basándose en las binarizaciones del elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de predicción de sector B.
El codificador de vídeo 20 puede estar configurado adicionalmente para binarizar el elemento de sintaxis de tipo de predicción de sector P con la binarización de sector P determinada, binarizar el elemento de sintaxis de tipo de predicción de sector B con la binarización de sector B determinada, aplicar codificación aritmética binaria adaptativa al contexto (CABAC) al elemento de sintaxis de tipo de predicción de sector P binarizado, y aplicar codificación aritmética binaria adaptativa al contexto (CABAC) al elemento de sintaxis de tipo de predicción de sector B binarizado.
De manera similar, el decodificador de vídeo 30 puede estar configurado para mapear un elemento de sintaxis de tipo de predicción de sector P binarizado a un tipo de predicción usando un mapeo de binarización para un bloque de datos de vídeo en un sector P, mapear un elemento de sintaxis de tipo de predicción de sector B binarizado a un tipo de predicción usando el mismo mapeo de binarización para un bloque de datos de vídeo en un sector B, y decodificar los datos de vídeo basándose en los tipos de predicción mapeados.
El decodificador de vídeo 30 puede estar configurado adicionalmente para recibir un elemento de sintaxis de tipo de predicción de sector P sometido a codificación aritmética binaria adaptativa al contexto que indica el tipo de predicción para el bloque de datos de vídeo en un sector P, recibir un elemento de sintaxis de tipo de predicción de sector B sometido a codificación aritmética binaria adaptativa al contexto que indica el tipo de predicción para el bloque de datos de vídeo en un sector B, decodificar el elemento de sintaxis de tipo de predicción de sector P para producir el elemento de sintaxis de tipo de predicción de sector P binarizado, y decodificar el elemento de sintaxis de tipo de predicción de sector B para producir el elemento de sintaxis de tipo de predicción de sector B binarizado.
Figure imgf000011_0002
Figure imgf000012_0001
Tabla 3. Binarización para pred_type en otro ejemplo de la divulgación
Figure imgf000012_0002
Tabla 4. Binarización para pred_type en otro ejemplo de la divulgación
La tabla 5 a continuación muestra el rendimiento de codificación usando la binarización compartida para los fragmentos P y B mostrados en la tabla 2. Tal como puede observarse en la tabla 5, se pierde poca o ninguna eficacia de codificación usando las binarizaciones compartidas. P de bajo retardo, HE (alta eficiencia) es una condición de prueba común para binarizaciones de fragmento (P) predichas unidireccionalmente. Las clases A-E representan diferentes resoluciones de trama. La clase A es una resolución de 2k x 4k. La clase B es una resolución de 1920 x 1080. La clase C es una resolución WVGA. La clase D es una resolución WQVGA. La clase E es una resolución 720P. Se considera en general que un cambio de porcentaje de 0,1 a 0,2 en la condición de prueba P de bajo retardo, HE es insignificante.
Figure imgf000012_0003
Tabla 5. Rendimiento de codificación para binarización unificada en pred_type
Opcionalmente, las mismas binarizaciones (no limitadas a las tablas 2-4) para el tipo de predicción (incluye el tamaño de predicción y/o el modo de predicción) pueden compartirse en dos y más tipos diferentes de sectores de inter-predicción. Los sectores de inter-predicción pueden incluir, pero no se limitan a:
a. Sector P: El sector sólo soporta predicción de movimiento unidireccional
b. Sector B: El sector soporta predicción de movimiento unidireccional y bidireccional
c. En codificación de vídeo escalable: la capa de mejora puede compartir las mismas binarizaciones con la capa base.
d. En codificación de múltiples vistas: diferente vistas pueden compartir las mismas binarizaciones.
Cuando está habilitada la partición asimétrica, se usan cuatro contextos, divididos por igual en dos conjuntos de contextos para CABAC en los dos últimos bins para la señalización del elemento de sintaxis pred_type para particiones asimétricas (es decir, PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N). Dependiendo de si la partición se divide a lo largo de la dirección horizontal o de la dirección vertical, se aplica un conjunto de contextos.
El segundo al último bin (es decir, el bin de tipo de partición; part_mode) especifica si la CU actual tiene particiones simétricas o particiones asimétricas. El último bin (es decir, el bin de tamaño de la partición; part_mode) especifica si el tamaño de la primera partición es un cuarto o tres cuartos del tamaño de la CU. La tabla 6 muestra un ejemplo de los contextos del segundo al último (tipo de partición) y el último (tamaño de partición) para el elemento de sintaxis pred_type.
Figure imgf000013_0001
Tabla 6. Contextos para los dos últimos bins del elemento de sintaxis Pred_Type
Esta divulgación propone usar un contexto para el segundo al último bin (es decir, el bin de tipo de partición) y usar el modo de derivación en el último bin (es decir, el bin de tamaño de partición). Como resultado, se reduce el número de contextos desde 4 hasta 1. La tabla 7 muestra un ejemplo del contexto usado según este ejemplo de la divulgación. La tabla 8 muestra el rendimiento de codificación asociado con las modificaciones propuestas. El acceso aleatorio de alta eficiencia (HE) es una condición de prueba con las tramas de acceso aleatorio. B de bajo retardo HE es una condición de prueba que permite la predicción bidireccional.
Figure imgf000013_0002
Tabla 7. Contextos para los dos últimos bins del elemento de sintaxis Pred_Type según un ejemplo de esta divulgación
Figure imgf000013_0003
Tabla 8. Rendimiento de codificación del método propuesto para pred_type
De este modo, según este ejemplo, el codificador de vídeo 20 puede estar configurado para determinar un tipo de partición para un modo de predicción para un bloque de datos de vídeo, codificar un bin de tipo de partición de un elemento de sintaxis de tipo de predicción para el bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto con un solo contexto, en el que el un solo contexto es el mismo para cualquier tipo de partición, y codificar un bin de tamaño de partición de una sintaxis de tipo de predicción para el bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto en modo de derivación.
De manera similar, según este ejemplo, el decodificador de vídeo 30 puede estar configurado para recibir un elemento de sintaxis de tipo de predicción para un bloque de datos de vídeo que se han codificado usando codificación aritmética binaria adaptativa al contexto (CABAC), incluyendo el elemento de sintaxis de tipo de predicción un bin de tipo de partición que representa un tipo de partición y un bin de tamaño de partición que representa un tamaño de partición, decodificar el bin de tipo de partición del elemento de sintaxis de tipo de predicción usando codificación aritmética binaria adaptativa al contexto con un solo contexto, en el que el un solo contexto es el mismo para cualquier tipo de partición, y decodificar el bin de tamaño de partición de la sintaxis de tipo de predicción para un bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto en modo de derivación.
En otro ejemplo, cuando se codifica un tipo de partición de rectángulo, puede usarse el modo de derivación o un solo contexto para el bin que indica si el modo de partición es PART_nLx2N o PART_nRx2N, o si el modo es PART_2NxnU, PART_2NxnD. El uso del modo de derivación o un solo contexto es aplicable debido a que la probabilidad de que se use cualquiera de los modos de partición está próxima al 50%. También opcionalmente, puede usarse el modo de derivación o un único contexto para el bin que indica si el modo es una partición simétrica o una partición asimétrica.
El siguiente ejemplo de la divulgación se refiere a la señalización en un modo de “fusión” de inter-predicción. En el modo de fusión, el codificador da instrucciones a un decodificador, a través de señalización por corriente de bits de sintaxis de predicción, para copiar un vector de movimiento, índice de referencia (que identifica una imagen de referencia, en una lista de imágenes de referencia dada, a la que apunta el vector de movimiento) y la dirección de predicción de movimiento (que identifica la lista de imágenes de referencia (Lista 0 o Lista 1), es decir, en lo que se refiere a si la trama de referencia precede o sigue temporalmente a la trama actualmente) a partir de un vector de movimiento candidato seleccionado para una parte actual de la imagen que va a codificarse. Esto se logra mediante señalización en la corriente de bits de un índice en una lista de vectores de movimiento candidatos que identifica el vector de movimiento candidato seleccionado (es decir, el candidato de predicción del vector de movimiento (MVP) espacial particular o candidato de MVP temporal).
Por tanto, para el modo de fusión, la sintaxis de predicción puede incluir un indicador que identifica el modo (en este caso el modo de “fusión”) y un índice (merge_idx) que identifica el vector de movimiento candidato seleccionado. En algunos casos, el vector de movimiento candidato estará en una parte causal en referencia a la parte actual. Es decir, el vector de movimiento candidato ya se habrá decodificado por el decodificador. Como tal, el decodificador ya ha recibido y/o determinado el vector de movimiento, el índice de referencia y la dirección de predicción de movimiento para la parte causal. Como tal, el decodificador puede recuperar simplemente el vector de movimiento, el índice de referencia y la dirección de predicción de movimiento asociados con la parte causal a partir de la memoria y copiar estos valores como información de movimiento para la parte actual. Para reconstruir un bloque en el modo de fusión, el decodificador obtiene el bloque predictivo usando la información de movimiento derivada para la parte actual, y añade los datos residuales al bloque predictivo para reconstruir el bloque codificado.
En HM4.0, uno de los cinco candidatos de fusión se señaliza cuando la PU actual está en el modo de fusión. Se utiliza un código unario truncado para representar el elemento de sintaxis merge_idx. En una propuesta para HEVC, para CABAC, cada bin usa un contexto. Esta divulgación propone usar un contexto repetidamente en los cuatro bins, tal como se muestra en la tabla 9.
Figure imgf000014_0001
Tabla 9. Contextos para los dos últimos bins del elemento de sintaxis Pred_Type
La tabla 10 muestra el rendimiento de codificación asociado con este ejemplo.
Figure imgf000014_0002
Tabla 10. Rendimiento de codificación del método propuesto en merge_idx
Opcionalmente, puede usarse más de un contexto en la codificación por índice de fusión, compartiendo algunos bins el mismo contexto y usando algunos bins otros contextos. Como ejemplo, sólo los bins consecutivos comparten el mismo contexto. Por ejemplo, bin2 y bin3 pueden compartir un contexto; bin2 y bin4 no pueden compartir el mismo contexto, a menos que bin3 también esté compartiendo el contexto.
Como otro ejemplo, supongamos que el número total de bins del índice de fusión es N (el primer bin es bin0, el último es bin N-1). Se usan umbrales Y, thres, i = 1, y, para determinar la compartición de contexto en la codificación por índice de fusión. En este ejemplo, las siguientes reglas indican cómo se comparten los contextos entre bins:
1. 0<Y<N (hay menos umbrales que bins)
2. thres<thresi+i
3. 0<thresi
4. thresy=N
5. bin¡ compartirán un contexto cuando i={thresy, ... , thresi+i-1}
Basándose en estas reglas, el método anterior en el que un contexto se usa repetidamente en los cuatro bins, puede considerarse como un caso en el que N = 4, Y = 1, thresi = 4. Por tanto, de bin 0 a bin 3 están compartiendo el mismo contexto.
Otro ejemplo incluye fijar N = 4, Y = 2, thresi = 2, thres2 = 4. En este ejemplo, bin0 y bin1 comparten los mismos contextos y bin2 y bin3 comparten los mismos contextos.
El indicador de inter-predicción (inter_pred_flag) especifica si se usa uni-predicción o bi-predicción para la PU actual. En algunos ejemplos, el índice de contexto para el indicador de inter-predicción es igual a la profundidad de CU actual. Como hay cuatro posibles profundidades de CU (0 - 3), hay cuatro contextos posibles para codificar inter_pred_flag.
Esta divulgación propone que el índice de contexto usado para seleccionar un contexto para codificar inter_pred_flag es igual a la profundidad de la CU actual (por ejemplo, el nivel descomposición de árbol cuaternario para CU), pero limitado en un umbral elegido (es decir, es el menor de la profundidad de la CU actual o un umbral). El umbral puede elegirse para que sea 2 en un ejemplo. Alternativamente, el índice de contexto puede ser igual a la profundidad de CU máxima menos la profundidad de CU actual y estar limitado en un umbral elegido. Alternativamente, puede diseñarse una tabla de mapeo predefinida para seleccionar el índice de contexto mediante una profundidad de CU dada. La tabla de mapeo puede implementarse como un conjunto de lógica. Como resultado, se usan 3 contextos para codificar el elemento de sintaxis inter_pred_flag.
La tabla 11 muestra el rendimiento de codificación cuando se cambia la tabla de inicialización, pero el número de contextos no se cambia. La tabla 12 muestra el rendimiento de codificación de la técnica propuesta que reduce el número de contextos desde 4 hasta 3.
Figure imgf000015_0001
Tabla 11. Rendimiento de codificación de HM4.0 con inicialización de CABAC modificada en inter_pred_flag.
Figure imgf000015_0002
Tabla 12. Rendimiento de codificación de la técnica de reducción de contexto propuesta en inter_pred_flag.
El índice de la trama de referencia (ref_idx_lx) se señaliza usando un código unario truncado con respecto a la trama de referencia activa en la lista asociada (por ejemplo, Lista 0 o Lista 1). Se usan tres contextos para codificar el índice de trama de referencia. Un contexto para bin 0, un contexto para bin 1 y se usa un contexto en el resto de los bins. La tabla 13 muestra un ejemplo de las asignaciones de contexto para los bins del código unario para ref_idx_lx.
Figure imgf000015_0003
Tabla 13. Asignación de contexto para los bins de ref_idx_lx
Esta divulgación propone usar dos contextos para codificar el código unario para ref_idx_lx; un contexto en el bin 0 y otro contexto en el resto de bins. La tabla 14 muestra un ejemplo de asignación de contexto para los bins del código unario para ref_idx_lx según este ejemplo de la divulgación. La tabla 15 muestra el rendimiento de codificación asociado a las modificaciones propuestas.
Figure imgf000016_0001
Tabla 14. Asignación de contexto para los bins de ref_idx_lx
Figure imgf000016_0002
Tabla 15. Rendimiento de codificación del método propuesto en ref_idx_lx.
Para los elementos de sintaxis de indicador de bloque codificado de croma (cbf_cb y cbf_cr), dos conjuntos de contextos diferentes (5 contextos en cada conjunto de contextos) para CABAC. El índice del contexto real usado en cada conjunto es igual a la profundidad de transformada actual asociada con el indicador de bloque codificado de croma que está codificándose. La tabla 16 muestra los conjuntos de contextos para los indicadores de bloques codificados de croma cbf_cb y cbf_cr.
Figure imgf000016_0003
Tabla 16. Conjuntos de contextos para cbf_cb y cbf_cr
Esta divulgación propone que cbf_cb y cbf_cr compartan un conjunto de contextos. El índice del contexto real usado en cada conjunto todavía puede ser igual a la profundidad de transformada actual asociada con el indicador de bloque codificado de croma que está codificándose. La tabla 17 muestra los conjuntos de contextos para los indicadores de bloque codificado de croma cbf_cb y cbf_cr según los ejemplos de esta divulgación. La tabla 18 muestra el rendimiento de codificación asociado con las modificaciones propuestas.
Figure imgf000016_0004
Tabla 17. Conjuntos de contextos para cbf_cb y cbf_cr según ejemplos de esta divulgación
Figure imgf000016_0005
Tabla 18. Rendimiento de codificación del método propuesto en cbf_cb y cbf_cr.
De este modo, según este ejemplo, tanto el codificador de vídeo 20 como el decodificador de vídeo 30 pueden estar configurados para codificar un indicador de bloque codificado de croma Cb para un bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto (CABAC), en los que CABAC usa un conjunto de contextos que incluye uno o más contextos, y codificar un indicador de bloque codificado de croma Cr usando CABAC, en los que CABAC usa el mismo conjunto de contextos que el indicador de bloque codificado de croma Cb. El codificador de vídeo 20 y el decodificador de vídeo 30 pueden estar configurados adicionalmente para seleccionar un contexto del uno o más contextos basándose en una profundidad de transformada de una unidad de transformada asociada con el bloque de datos de vídeo.
En una propuesta para HEVC, hay doce conjuntos de contexto, tanto para coeff_abs_level_greater1_flag como para coeff_abs_level_greater2_flag. El coeff_abs_level_greater1_flag indica si un coeficiente de transformada tiene un valor absoluto mayor de 1. El coeff_abs_level_greater2_flag indica si un coeficiente de transformada tiene un valor absoluto mayor de 2. Los conjuntos de contextos se asignan por igual para el componente de luma y de croma, es decir, 6 conjuntos de contextos para luma y 6 contextos para croma. Cada conjunto de contextos consiste en 5 contextos. El índice del conjunto de contextos, ctxSet, se selecciona basándose en el coeff_abs_level_greater1_flag anterior. Para coeff_abs_level_greater1_flag, el índice del contexto dentro de un conjunto de contextos, greater1Ctx, se determina basándose en los rezagados hasta un máximo de 4. El índice de contexto puede representarse como: ctxIdx_level_greater1 = (ctxSet*5) Min(4,greater1Ctx) (1)
Para coeff_abs_level_greater2_flag, el índice del contexto dentro de un conjunto de contextos, greater2Ctx, se basa en el número de coeff_abs_level_greater1_flag que es de 1 a un máximo de 4. El índice de contexto puede representarse como:
ctxIdx_level_greater2 = (ctxSet*5) Min(4,greater2Ctx) (2)
greater1Ctx se basa en el número para los coeficientes significativos y el número de los coeficientes que son mayores de 1. Por otro lado, greater2Ctx se basa en el número de los coeficientes que son mayores de 1.
En algunos ejemplos, puede usarse un número de contextos diferente en conjuntos de contextos diferentes, incluyendo, por ejemplo:
1. Los conjuntos de contextos para el nivel mayor de 1 o para el nivel mayor de 2 pueden tener un número de contextos diferente. Por ejemplo, el conjunto de contextos 0 y 3 pueden tener 5 contextos y el resto de los conjuntos de contextos pueden tener 2 contextos.
2. Los conjuntos de contextos para el coeficiente de luma pueden tener número de contextos diferente en comparación con los conjuntos de contextos para el componente de croma. Por ejemplo, el conjunto de contextos 0 para luma puede tener 5 contextos y el conjunto de contextos 0 para croma puede tener 4 contextos.
3. El conjunto de contextos para el nivel mayor de 1 puede tener número de contextos diferentes que el conjunto de contextos para el nivel mayor de 2. Por ejemplo, el conjunto de contextos 0 para el nivel mayor de 1 puede tener 5 contextos y el conjunto de contextos 0 para el nivel mayor de 2 puede tener sólo 3 contextos.
En otros ejemplos, puede usarse un número diferente para los conjuntos de contextos para la codificación de mayor de 1 o mayor de 2, incluyendo por ejemplo:
1. Los conjuntos de contextos para el coeficiente de luma pueden tener un número de conjuntos de contextos diferente a los conjuntos de contextos usados para el componente de croma. Por ejemplo, la luma podría usar 6 contextos y la croma podría usar 4 contextos.
2. Los conjuntos de contextos para mayor de 1 pueden tener un número de conjuntos de contextos diferente a los conjuntos de contextos usados para mayor de 2. Por ejemplo, el mayor de 1 podría usar 6 contextos y el mayor de 2 podría usar 4 contextos.
Opcionalmente, se usa una métrica para determinar qué contexto está usándose en un conjunto de contextos y el intervalo de valores de la métrica es mayor que el número de los contextos en el conjunto de contextos. En uno de tales aspectos, un contexto podría estar asociado a uno o más valores de la métrica. La compartición de contexto se limita preferiblemente a valores continuos. Por ejemplo, si el valor de la métrica es y, y = 2 se asocia al contexto 3, e y = 1 e y = 4 también pueden asociarse al contexto 3. Sin embargo, si y = 3 se asocia al contexto 4, y = 4 no puede asociarse al contexto 3.
Por ejemplo, para coeff_abs_level_greater1_flag, los conjuntos de contextos 0 y 3 tienen 5 contextos y los conjuntos de contextos 1, 2, 4 y 5 tienen 2 contextos. Para coeff_abs_level_greater2_flag, los conjuntos de contextos 0, 1 y 2 tienen 5 contextos y los conjuntos de contextos 3, 4 y 5 tienen 2 contextos. Puede representarse como: ctxIdx_level_greater1 = (ctxSet*5) Min(Thres_greater1,greater1Ctx) (3)
si ctxSet=0 o ctxSet=3, Thres_greater1 = 4;
de otro modo, Thres_greater1=1.
ctxIdx_level_greater2 = (ctxSet*5) Min(Thres_greater2,greater2Ctx) (4)
si ctxSet<3, Thres_greater2 = 4;
de otro modo, Thres_greater2 = 1
Thres_greater1 y Thres_greater2 pueden elegirse de manera diferente basándose en las situaciones siguientes: 1. Componente de luma o croma
2. Conjuntos de contextos
Como otro ejemplo, para coeff_abs_level_greater1_flag, los conjuntos de contextos 0 y 3 tienen 5 contextos y los conjuntos de contextos 1, 2, 4 y 5 tienen 3 contextos. Para coeff_abs_level_greater2_flag, los conjuntos de contextos 0, 1 y 2 tienen 5 contextos y los conjuntos de contextos 3, 4 y 5 tienen 2 contextos. Puede representarse como:
ctxIdx_level_greater1 = (ctxSet*5) greater1Ctx_mapped (3)
ctxIdx_level_greater2 = (ctxSet*5) greater2Ctx_mapped (4)
En tales ejemplos, el mapa puede ser tal como se muestra en las tablas 19 y 20:
Figure imgf000018_0001
Tabla 19
Figure imgf000018_0002
Tabla 20
Las tablas de inicialización de CABAC de coeff_abs_level_greater1_flag y coeff_abs_level_greater2_flag también se modifican para los conjuntos de contextos para Thres_greater1 o Thres_greater2 igual a 1. Las modificaciones mueven la inicialización del quinto contexto hacia delante para que sea la inicialización del segundo contexto. Este método propuesto reduce el número de los contextos desde 120 hasta 78.
Figure imgf000018_0003
Tabla 21. Rendimiento de codificación del método propuesto en coeff_abs_level_greater1_flag y coeff_abs_level_greater2_flag.
La tabla 21 enumera el número de los contextos para todos los elementos de sintaxis mencionados en las secciones anteriores. La reducción total es de 56 contextos.
Figure imgf000018_0004
Tabla 22. Comparación del número de contextos en el método propuesto y HM4.0
La figura 2 es un diagrama de bloques que ilustra un codificador de vídeo 20 de ejemplo que puede implementar las técnicas descritas en esta divulgación. El codificador de vídeo 20 puede realizar intra e inter-codificación de bloques de vídeo dentro de sectores de vídeo. La intra-codificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de una trama de vídeo o imagen dada. La inter-codificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en vídeo dentro de tramas o imágenes adyacentes de una secuencia de vídeo. El intra-modo (modo I) puede referirse a cualquiera de los diversos modos de compresión basados en predicción espacial. Los inter-modos, tales como la predicción unidireccional (modo P) o bi-predicción (modo B), pueden referirse a cualquiera de los diversos modos de compresión basados en predicción temporal.
En el ejemplo de la figura 2, el codificador de vídeo 20 incluye una unidad de división 35, una unidad de predicción 41, una memoria de imágenes de referencia 64, un sumador 50, una unidad de transformada 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. La unidad de predicción 41 incluye la unidad de estimación de movimiento 42, la unidad de compensación de movimiento 44 y la unidad de intra-predicción 46. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 también incluye la unidad de cuantificación inversa 58, la unidad de transformada inversa 60 y el sumador 62. También puede incluirse un filtro de desbloqueo (no mostrado en la figura 2) para filtrar límites de bloque para eliminar artefactos de formación de bloque del vídeo reconstruido. Si se desea, el filtro de desbloqueo normalmente filtrará la salida del sumador 62. También pueden usarse filtros de bucle adicionales (en bucle o tras bucle) además del filtro de desbloqueo.
Tal como se muestra en la figura 2, el codificador de vídeo 20 recibe datos de vídeo, y la unidad de división 35 divide los datos en bloques de vídeo. Esta partición también puede incluir dividir en sectores, losas, u otras unidades más grandes, así como partición de bloques de vídeo, por ejemplo, según una estructura de árbol cuaternario de LCU y CU. El codificador de vídeo 20 generalmente ilustra los componentes que codifican los bloques de vídeo dentro de un sector de vídeo que va a codificarse. El sector puede dividirse en múltiples bloques de vídeo (y posiblemente en conjuntos de bloques de vídeo denominados losas). La unidad de predicción 41 puede seleccionar uno de una pluralidad de posibles modos de codificación, tal como uno de una pluralidad de modos de intra-codificación o una de una pluralidad de modos de inter-codificación, para el bloque de vídeo actual basándose en resultados de error (por ejemplo, velocidad de codificación y nivel de distorsión). La unidad de predicción 41 puede proporcionar el bloque intra o inter-codificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para su uso como una imagen de referencia.
La unidad de intra-predicción 46 dentro de la unidad de predicción 41 puede realizar la codificación intra-predictiva del bloque de vídeo actual en relación con uno o más bloques vecinos en la misma trama o sector que el bloque actual que va a codificarse para proporcionar compresión espacial. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 dentro de la unidad de predicción 41 realizan codificación inter-predictiva del bloque de vídeo actual en relación con uno o más bloques predictivos en una o más imágenes de referencia para proporcionar compresión temporal.
La unidad de estimación de movimiento 42 puede estar configurada para determinar el modo de inter-predicción para un sector de vídeo según un patrón predeterminado para una secuencia de vídeo. El patrón predeterminado puede designar sectores de vídeo en la secuencia como sectores P, sectores B o sectores g Pb (de manera generalizada P/B). La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar muy integradas, pero se ilustran por separado para fines conceptuales. La estimación de movimiento, realizada por la unidad de estimación de movimiento 42, es el procedimiento de generación de vectores de movimiento, que estiman el movimiento de los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una trama de vídeo o imagen actual en relación con un bloque predictivo dentro de una imagen de referencia.
Un bloque predictivo es un bloque que se encuentra que se coincide estrechamente con la PU del bloque de vídeo que va a codificarse en lo que se refiere a diferencia de píxeles, que puede determinarse por la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrada (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para las posiciones de píxeles inferiores a número entero de imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de las posiciones de un cuarto de píxel, las posiciones de un octavo de píxel, u otras posiciones de píxel fraccionarias de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento en relación con las posiciones de píxel completas y las posiciones de píxel fraccionarias y emitir un vector de movimiento con una precisión de píxel fraccionarias.
La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de vídeo en un sector inter-codificado mediante la comparación de la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44.
La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar buscar o generar el bloque predictivo basándose en el vector de movimiento determinado por la estimación de movimiento, posiblemente realizando interpolaciones con precisión de sub-píxel. Tras recibir el vector de movimiento de la PU del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El codificador de vídeo 20 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que está codificándose, formando valores de diferencia de píxel. Los valores de diferencia de píxel forman datos residuales para el bloque, y pueden incluir componentes de diferencia tanto de luma como de croma. El sumador 50 representa el componente o componentes que realizan esta operación de resta. La unidad de compensación de movimiento 44 también puede generar elementos de sintaxis asociados con los bloques de vídeo y el sector de vídeo para su uso por el decodificador de vídeo 30 en la decodificación de los bloques de vídeo del sector de vídeo.
La unidad de intra-predicción 46 puede intra-predecir un bloque actual, como una alternativa a la inter-predicción realizada por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, tal como se describió anteriormente. En particular, la unidad de intra-predicción 46 puede determinar un modo de intra-predicción que se usa para codificar un bloque actual. En algunos ejemplos, la unidad de intra-predicción 46 puede codificar un bloque actual usando varios modos de intra-predicción, por ejemplo, durante pases de codificación independientes, la unidad de intra-predicción 46 (o unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo de intra-predicción apropiado que va a usarse a partir de los modos sometidos a prueba. Por ejemplo, la unidad de intra-predicción 46 puede calcular valores de velocidad-distorsión usando un análisis de los distintos modos de intra-predicción sometidos a prueba, y seleccionar el modo de intra-predicción que tiene las mejores características de velocidad-distorsión entre los modos sometidos a prueba. El análisis de la velocidad-distorsión generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque original sin codificar, que se codificó para producir el bloque codificado, así como una velocidad de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad de intra-predicción 46 puede calcular razones a partir de las distorsiones y las velocidades de los diversos bloques codificados para determinar qué modo de intra-predicción muestra el mejor valor de velocidad-distorsión para el bloque.
En cualquier caso, después de seleccionar un modo de intra-predicción para un bloque, la unidad de intra-predicción 46 puede proporcionar información indicativa del modo de intra-predicción seleccionado para el bloque a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información indicativa del modo de intra-predicción seleccionado según las técnicas de esta divulgación. El codificador de vídeo 20 puede incluir en los datos de configuración de la corriente de bits transmitidos, que puede incluir una pluralidad de tablas de índice de modo de intra-predicción y una pluralidad de tablas de índice de modo de intra-predicción modificadas (también denominadas tablas de mapeo de contraseña), definiciones de contextos de codificación para diversos bloques e indicaciones del modo de intra-predicción más probable, una tabla de índice de modo de intra-predicción y una tabla de índice de modo de intra-predicción modificada para usarse para cada uno de los contextos.
Una vez que la unidad de predicción 41 genera el bloque predictivo para el bloque de vídeo actual a través de o bien inter-predicción o bien intra-predicción, el codificador de vídeo 20 forma un bloque de vídeo residual restando el bloque predictivo del bloque de vídeo actual. Los datos de vídeo residuales en el bloque residual pueden incluirse en una o más TU y aplicarse a la unidad de transformada 52. La unidad de transformada 52 transforma los datos de vídeo residuales en coeficientes de transformada residuales usando una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar. La unidad de transformada 52 puede convertir los datos de vídeo residuales de un dominio de píxel a un dominio de transformada, tal como un dominio de frecuencia.
La unidad de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir adicionalmente la velocidad de bits. El procedimiento de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. El grado de cuantificación puede modificarse mediante el ajuste de un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 puede realizar entonces un escaneo de la matriz incluyendo los coeficientes de transformada cuantificados. Alternativamente, la unidad de codificación por entropía 56 puede realizar el escaneo. Como ejemplo, las técnicas de codificación descritas en esta divulgación pueden realizarse total o parcialmente mediante la unidad de codificación por entropía 56. Sin embargo, los aspectos de esta divulgación no se limitan de este modo. Por ejemplo, las técnicas de codificación descritas en esta divulgación pueden realizarse por un componente del codificador de vídeo 20 no mostrado en la figura 2, tal como un procesador o cualquier otro componente. En algunos ejemplos, las técnicas de codificación de esta divulgación pueden realizarse por una de las otras unidades o módulos ilustrados en la figura 2. Aún en algunos otros ejemplos, las técnicas de codificación de esta divulgación pueden realizarse por una combinación de unidades y módulos del codificador de vídeo 20. De este modo, el codificador de vídeo 20 puede estar configurado para realizar las técnicas de ejemplo descritas en esta divulgación.
Tras la cuantificación, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede realizar codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC), codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), codificación por entropía de partición de intervalos de probabilidad (PIPE) u otra metodología o técnica de codificación por entropía. Después de la codificación por entropía mediante la unidad de codificación por entropía 56, la corriente de bits codificada puede transmitirse al decodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación por parte del decodificador de vídeo 30. La unidad de codificación por entropía 56 también puede codificar por entropía los vectores de movimiento y los demás elementos de sintaxis para el sector de vídeo actual que está codificándose.
En un ejemplo de la divulgación, la unidad de codificación por entropía 56 puede estar configurada para determinar un primer tipo de predicción para un bloque de datos de vídeo en un sector P, representar el primer tipo de predicción como elemento de sintaxis de tipo de predicción de sector P, determinar un segundo tipo de predicción para un bloque de datos de vídeo en un sector B, representar el segundo tipo de predicción como elemento de sintaxis de tipo de predicción de sector B, determinar una binarización de sector P para el elemento de sintaxis de tipo de predicción de sector P, determinar una binarización de sector B para el elemento de sintaxis de tipo de predicción de sector B, en el que el elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de tipo de predicción de sector B se determinan usando la misma lógica de binarización, y codificar los datos de vídeo basándose en las binarizaciones del elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de predicción de sector B.
En otro ejemplo de la divulgación, la unidad de codificación por entropía 56 puede estar configurada para determinar un tipo de partición para un modo de predicción para un bloque de datos de vídeo, codificar un bin de tipo de partición de un elemento de sintaxis de tipo de predicción para el bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto con un solo contexto, en el que el un solo contexto es el mismo para cualquier tipo de partición, y codificar un bin de tamaño de partición de una sintaxis de tipo de predicción para el bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto en modo de derivación.
En otro ejemplo de la divulgación, la unidad de codificación por entropía 56 puede estar configurada para codificar un indicador de bloque codificado de croma Cb para un bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto (CABAC), en la que CABAC usa un conjunto de contextos que incluye uno o más contextos, y codificar un indicador de bloque codificado de croma Cr usando CABAC, en la que CABAC usa el mismo conjunto de contextos que el indicador de bloque codificado de croma Cb. El codificador de vídeo 20 y el decodificador de vídeo 30 pueden estar configurados adicionalmente para seleccionar un contexto del uno o más contextos basándose en una profundidad de transformada de una unidad de transformada asociada con el bloque de datos de vídeo.
La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican cuantificación inversa y transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel para su uso posterior como un bloque de referencia de una imagen de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular los valores de píxel inferiores a número entero para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción con compensación de movimiento producido por unidad de compensación de movimiento 44 para producir un bloque de referencia para su almacenamiento en la memoria de imágenes de referencia 64. El bloque de referencia puede usarse por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como bloque de referencia para inter-predecir un bloque en un trama de vídeo o imagen posterior.
La figura 3 es un diagrama de bloques que ilustra un decodificador de vídeo 30 de ejemplo que puede implementar las técnicas descritas en esta divulgación. En el ejemplo de la figura 3, el decodificador de vídeo 30 incluye una unidad de decodificación por entropía 80, una unidad de predicción 81, una unidad de cuantificación inversa 86, una unidad de transformada inversa 88, un sumador 90 y una memoria de imágenes de referencia 92. La unidad de predicción 81 incluye la unidad de compensación de movimiento 82 y la unidad de intra-predicción 84. En algunos ejemplos, el decodificador de vídeo 30 puede realizar un pase de decodificación generalmente recíproco al pase de codificación descrito con respecto al codificador de vídeo 20 de la figura 2.
Durante el procedimiento de decodificación, el decodificador de vídeo 30 recibe un corriente de bits de vídeo codificado que representa los bloques de vídeo de un sector de vídeo codificado y elementos sintácticos asociados del codificador de vídeo 20. La unidad de decodificación por entropía 80 del decodificador de vídeo 30 decodifica la corriente de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de decodificación por entropía 80 envía los vectores de movimiento y otros elementos de sintaxis a la unidad de predicción 81. El decodificador de vídeo 30 puede recibir los elementos de sintaxis en el nivel de sector de vídeo y/o el nivel de bloque de vídeo.
Como ejemplo, las técnicas de codificación descritas en esta divulgación pueden realizarse total o parcialmente por la unidad de decodificación por entropía 80. Sin embargo, los aspectos de esta divulgación no se limitan de este modo. Por ejemplo, las técnicas de codificación descritas en esta divulgación pueden realizarse por un componente del decodificador de vídeo 30 no mostrado en la figura 3, tal como un procesador o cualquier otro componente. En algunos ejemplos, las técnicas de codificación de esta divulgación pueden realizarse por una de las otras unidades o módulos ilustrados en la figura 3. Aún en algunos otros ejemplos, las técnicas de codificación de esta divulgación pueden realizarse por una combinación de unidades y módulos del decodificador de vídeo 30. De este modo, el decodificador de vídeo 30 puede estar configurado para realizar las técnicas de ejemplo descritas en esta divulgación.
En un ejemplo de la divulgación, la unidad de decodificación por entropía 80 puede estar configurado para mapear un elemento de sintaxis de tipo de predicción de sector P binarizado a un tipo de predicción usando un mapeo de binarización para un bloque de datos de vídeo en un sector P, mapear un elemento de sintaxis de tipo de predicción de sector B binarizado a un tipo de predicción usando el mismo mapeo de binarización para un bloque de datos de vídeo en un sector B, y decodificar los datos de vídeo basándose en los tipos de predicción mapeados.
En un ejemplo de la divulgación, la unidad de decodificación por entropía 80 puede estar configurada para recibir un elemento de sintaxis de tipo de predicción para un bloque de datos de vídeo que se han codificado usando codificación aritmética binaria adaptativa al contexto (CABAC), incluyendo el elemento de sintaxis de tipo de predicción un bin de tipo de partición que representa un tipo de partición y un bin de tamaño de partición que representa un tamaño de partición, decodificar el bin de tipo de partición del elemento de sintaxis de tipo de predicción usando codificación aritmética binaria adaptativa al contexto con un solo contexto, en el que el un solo contexto es el mismo para cualquier tipo de partición, y decodificar el bin de tamaño de partición de la sintaxis de tipo de predicción para un bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto en modo de derivación.
En otro ejemplo de la divulgación, la unidad de decodificación por entropía 80 puede estar configurada para codificar un indicador de bloque codificado de croma Cb para un bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto (CABAC), en la que CABAC usa un conjunto de contextos que incluye uno o más contextos, y codificar un indicador de bloque codificado de croma Cr usando CABAC, en la que CABAC usa el mismo conjunto de contextos que el indicador de bloque codificado de croma Cb. El codificador de vídeo 20 y el decodificador de vídeo 30 pueden estar configurados adicionalmente para seleccionar un contexto del uno o más contextos basándose en una profundidad de transformada de una unidad de transformada asociada con el bloque de datos de vídeo.
Cuando el sector de vídeo se codifica como sector intra-codificado (I), la unidad de intra-predicción 84 de la unidad de predicción 81 puede generar datos de predicción para un bloque de vídeo del sector de vídeo actual basándose en un modo de intra-predicción señalado y los datos de los bloques decodificados previamente de la trama o imagen actual. Cuando la trama de vídeo se codifica como un sector inter-codificado (es decir, B, P o GPB), la unidad de compensación de movimiento 82 de la unidad de predicción 81 produce bloques de predicción para un bloque de vídeo del sector de vídeo actual basándose en los vectores de movimiento y otros elementos de sintaxis recibidos desde la unidad de decodificación por entropía 80. Los bloques predictivos pueden producirse a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador de vídeo 30 puede construir las listas de trama de referencia, Lista 0 y Lista 1, usando técnicas de construcción por defecto basadas en imágenes de referencia almacenadas en la memoria de imágenes de referencia 92.
La unidad de compensación de movimiento 82 determina la información de predicción para un bloque de vídeo del sector de vídeo actual analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques predictivos para el bloque de vídeo actual que está codificándose. Por ejemplo, la unidad de compensación de movimiento 82 usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra o inter-predicción) usado para codificar los bloques de vídeo del sector de vídeo, un tipo de sector de inter-predicción (por ejemplo, sector B, sector P, o un sector GPB), información de construcción para una o más de las listas de imágenes de referencia para el sector, vectores de movimiento para cada bloque de vídeo inter-codificado del sector, estado de inter-predicción para cada bloque de vídeo inter­ codificado del sector, y otra información para decodificar los bloques de vídeo en el sector de vídeo actual.
La unidad de compensación de movimiento 82 también puede realizar la interpolación basándose en filtros de interpolación. La unidad de compensación de movimiento 82 puede usar filtros de interpolación tal como se usa por el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular valores interpolados de píxeles inferiores a número entero de bloques de referencia. En este caso, la unidad de compensación de movimiento 82 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 a partir de los elementos de sintaxis recibidos y usar los filtros de interpolación para producir bloques predictivos.
La unidad de cuantificación inversa 86 cuantifica a la inversa, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en la corriente de bits y decodificados por la unidad de decodificación por entropía 80. El procedimiento de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el codificador de vídeo 20 para cada bloque de vídeo en el sector de vídeo para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa que debe aplicarse. La unidad de transformada inversa 88 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de número entero inversa o un procedimiento de transformada inversa conceptualmente similar, a los coeficientes de transformada con el fin de producir bloques residuales en el dominio de píxel.
Una vez que la unidad de compensación de movimiento 82 genera el bloque predictivo para el bloque de vídeo actual basándose en los vectores de movimiento y otros elementos de sintaxis, el decodificador de vídeo 30 forma un bloque de vídeo decodificado sumando los bloques residuales de la unidad de transformada inversa 88 con los bloques predictivos correspondientes generados por la unidad de compensación de movimiento 82. El sumador 90 representa el componente o componentes que realiza(n) esta operación de suma. Si se desea, también puede aplicarse un filtro de desbloqueo para filtrar los bloques decodificados para eliminar artefactos de formación de bloques. También pueden usarse otros filtros de bucle (o bien en el bucle de codificación o bien después del bucle de codificación) para suavizar las transiciones de píxel, o mejorar de otro modo la calidad del vídeo. Los bloques de vídeo decodificados en una trama o imagen dada se almacenan entonces en la memoria de imágenes de referencia 92, que almacena imágenes de referencia usadas para la compensación de movimiento posterior. La memoria de imágenes de referencia 92 también almacena vídeo decodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la figura 1.
La figura 6 es un diagrama de flujo que ilustra un método de codificación de vídeo de ejemplo de la divulgación. El método de la figura 6 puede implementarse por el codificador de vídeo 20. El codificador de vídeo 20 puede estar configurado para determinar un primer tipo de predicción para un bloque de datos de vídeo en un sector P (602), y para representar el primer tipo de predicción como elemento de sintaxis de tipo de predicción de sector P (604). El codificador de vídeo 20 puede estar configurado adicionalmente para determinar un segundo tipo de predicción para un bloque de datos de vídeo en un sector B (606), y para representar el segundo tipo de predicción como elemento de sintaxis de tipo de predicción de sector B (608). El elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de tipo de predicción de sector B especifican un modo de predicción y un tipo de partición. El modo de predicción puede incluir una de inter-predicción e intra-predicción. El tipo de partición puede incluir una de particiones simétricas y particiones asimétricas.
El codificador de vídeo 20 puede estar configurado adicionalmente para determinar una binarización de sector P para el elemento de sintaxis de tipo de predicción de sector P (610), y para determinar una binarización de sector B para el elemento de sintaxis de tipo de predicción de sector B, en el que el elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de tipo de predicción de sector B se determinan usando la misma lógica de binarización (612). El codificador de vídeo 20 puede codificar entonces los datos de vídeo basándose en las binarizaciones del elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de predicción de sector B (614).
La codificación de los datos de vídeo puede comprender binarizar el elemento de sintaxis de tipo de predicción de sector P con las binarizaciones de sector P determinadas, binarizar el elemento de sintaxis de tipo de predicción de sector B con las binarizaciones de sector B determinadas, aplicar codificación aritmética binaria adaptativa al contexto (CABAC) al elemento de sintaxis de tipo de predicción de sector P binarizado y aplicar codificación aritmética binaria adaptativa al contexto (CABAC) al elemento de sintaxis de tipo de predicción de sector B binarizado.
La figura 7 es un diagrama de flujo que ilustra un método de decodificación de vídeo de ejemplo de la divulgación. El método de la figura 7 puede implementarse por el decodificador de vídeo 30. El decodificador de vídeo 30 puede estar configurado para recibir un elemento de sintaxis de tipo de predicción de sector P sometido a codificación aritmética binaria adaptativa al contexto que indica el tipo de predicción para el bloque de datos de vídeo en un sector P (702), y para recibir un elemento de sintaxis de tipo de predicción de sector B sometido a codificación aritmética binaria adaptativa al contexto que indica el tipo de predicción para el bloque de datos de vídeo en un sector B (704). El elemento de sintaxis de tipo de predicción de sector P y el elemento de sintaxis de tipo de predicción de sector B especifican un modo de predicción y un tipo de partición. El modo de predicción puede incluir una de inter-predicción e intra-predicción. El tipo de partición puede incluir una de particiones simétricas y particiones asimétricas.
El decodificador de vídeo 30 puede estar configurado adicionalmente para decodificar el elemento de sintaxis de tipo de predicción de sector P para producir un elemento de sintaxis de tipo de predicción de sector P binarizado (706), y para decodificar el elemento de sintaxis de tipo de predicción de sector B para producir un elemento de sintaxis de tipo de predicción de sector B binarizado (708). El decodificador de vídeo 30 puede estar configurado adicionalmente para mapear el elemento de sintaxis de tipo de predicción de sector P binarizado a un tipo de predicción usando un mapeo de binarización para un bloque de datos de vídeo en un sector P (710), y para mapear el elemento de sintaxis de tipo de predicción de sector B binarizado a un tipo de predicción usando el mismo mapeo de binarización para un bloque de datos de vídeo en un sector B (712). El decodificador de vídeo 30 puede decodificar entonces los datos de vídeo basándose en los tipos de predicción mapeados (714).
La figura 8 es un diagrama de flujo que ilustra un método de codificación de vídeo de ejemplo de la divulgación. El método de la figura 8 puede implementarse por el codificador de vídeo 20. El codificador de vídeo 20 puede estar configurado para determinar un tipo de partición para un modo de predicción para un bloque de datos de vídeo (802) y para codificar un bin de tipo de partición de un elemento de sintaxis de tipo de predicción para el bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto (CABAC) con un solo contexto (804). El un solo contexto es el mismo para cualquier tipo de partición. En un ejemplo, el tipo de partición es una partición asimétrica y el bin de tipo de partición indica si la partición asimétrica está dividida verticalmente o está dividida horizontalmente. Por ejemplo, el bin de tamaño de partición indica si una primera partición es una cuarta parte de un tamaño del bloque de datos de vídeo o si la primera partición es tres cuartas partes del tamaño del bloque de datos de vídeo.
El codificador de vídeo 20 puede estar configurado adicionalmente para codificar un bin de tamaño de partición del elemento de sintaxis de tipo de predicción para el bloque de datos de vídeo usando CABAC en modo de derivación (806).
La figura 9 es un diagrama de flujo que ilustra un método de decodificación de vídeo de ejemplo de la divulgación. El método de la figura 9 puede implementarse por el decodificador de vídeo 30. El decodificador de vídeo 30 puede estar configurado para recibir un elemento de sintaxis de tipo de predicción para un bloque de datos de vídeo que se han codificado usando codificación aritmética binaria adaptativa al contexto (CABAC), incluyendo el elemento de sintaxis de tipo de predicción un bin de tipo de partición que representa un tipo de partición y un bin de tamaño de partición que representa un tamaño de partición (902). En un ejemplo, el tipo de partición es una partición asimétrica y el bin de tipo de partición indica si la partición asimétrica está dividida verticalmente o está dividida horizontalmente. Por ejemplo, el bin de tamaño de partición indica si una primera partición es una cuarta parte de un tamaño del bloque de datos de vídeo o si la primera partición es tres cuartas partes del tamaño del bloque de datos de vídeo.
El decodificador de vídeo 30 puede estar configurado adicionalmente para decodificar el bin de tipo de partición del elemento de sintaxis de tipo de predicción usando CABAC con un solo contexto, en el que el un solo contexto es el mismo para cualquier tipo de partición (904), y para decodificar el bin de tamaño de partición del elemento de sintaxis de tipo de predicción usando CABAC en modo de derivación (906).
La figura 10 es un diagrama de flujo que ilustra un método de codificación de vídeo de ejemplo de la divulgación. El método de la figura 10 puede implementarse por cualquier codificador de vídeo 20 o decodificador de vídeo. Para los fines de la figura 10, el codificador de vídeo 20 y el decodificador de vídeo 30 se denominarán colectivamente un elemento de codificación de vídeo. Según las técnicas de la figura 10, un elemento de codificación de vídeo puede estar configurado para codificar un indicador de bloque codificado de croma Cb para un bloque de datos de vídeo usando codificación aritmética binaria adaptativa al contexto (CABAC), en el que la codificación del indicador de bloque codificado de croma Cb comprende usar un conjunto de contextos que incluye uno o más contextos como parte de la CABAC (1002), y codificar un indicador de bloque codificado de croma Cr usando CABAC, en el que la codificación del indicador de bloque codificado de croma Cr comprende usar el mismo conjunto de contextos que el indicador de bloque codificado de croma Cb como parte de la CABAC (1004). En un ejemplo, el conjunto de contextos incluye 5 contextos.
En un ejemplo opcional de la divulgación, un elemento de codificación de vídeo puede estar configurado adicionalmente para seleccionar un contexto del uno o más contextos basándose en una profundidad de transformada de una unidad de transformada asociada con el bloque de datos de vídeo (1006).
Cuando se hace funcionar como codificador de vídeo, un elemento de codificación de vídeo puede estar configurado adicionalmente para señalizar el indicador de bloque codificado de croma Cb codificado en una corriente de bits de vídeo codificado y para señalizar el indicador de bloque codificado de croma Cr codificado en la corriente de bits de vídeo codificado. Cuando se hace funcionar como decodificador de vídeo, un elemento de codificación de vídeo puede estar configurado adicionalmente para recibir el indicador de bloque codificado de croma Cb codificado en una corriente de bits de vídeo codificado, y para recibir el indicador de bloque codificado de croma Cr codificado en la corriente de bits de vídeo codificado.
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 pueden almacenarse o transmitirse a través de un medio legible por ordenador, como una o más instrucciones o código, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponde a un medio tangible tal como un medio de almacenamiento de datos, o medios de comunicación incluyendo cualquier medio que facilite la transferencia de un programa informático de un lugar a otro, por ejemplo, según un protocolo de comunicación. De este modo, los medios legibles por ordenador generalmente pueden corresponder a (1) medios de almacenamiento legibles por ordenador tangibles que no son transitorios o (2) un medio de comunicación tal como una onda portadora o señal. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que puede accederse mediante 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 limitación, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnéticos, memoria flash, o cualquier otro medio que pueda usarse para almacenar el código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder mediante un ordenador. Además, cualquier conexión se denomina de manera adecuada un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una página web, servidor u otra fuente remota usando un cable coaxial, cable de fibra óptica, par trenzado, línea de abonado digital (DSL) o tecnologías inalámbricas como infrarrojos, radio y microondas, entonces el cable coaxial, cable de fibra óptica, par trenzado, DSL o tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, debe 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 refieren a medios de almacenamiento tangibles, no transitorios. Disquete y disco, tal como se usa en el presente documento, incluye disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disquete y disco Blu-ray, donde los disquetes habitualmente reproducen datos magnéticamente, mientras que los discos reproducen los datos ópticamente con láseres. También pueden incluirse combinaciones de los anteriores dentro del alcance de los medios legibles por ordenador.
Las instrucciones pueden ejecutarse por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de uso general, circuitos integrados específicos de aplicación (Application Specific Integrated Circuits, ASIC), matrices de puertas programables por campo (FPGA), u otros conjuntos de circuitos lógicos discretos o integrados equivalentes. Por consiguiente, el término “procesador”, tal como se usa en el presente documento puede referirse a cualquiera de la 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 este documento puede proporcionarse dentro de módulos de hardware y/o software especializados configurados para codificar y decodificar, o incorporada 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 pueden implementarse en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En esta divulgación se describen diversos componentes, módulos o unidades para hacer hincapié en los aspectos funcionales de los dispositivos configurados para realizar las técnicas descritas, pero no requieren necesariamente la realización de diferentes unidades de hardware. Más bien, tal como se describió anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse mediante un conjunto de unidades de hardware interoperativas, incluyendo uno o más procesadores tal como se describió anteriormente, conjuntamente con el software y/o el firmware adecuado.
Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las reivindicaciones siguientes.

Claims (6)

  1. REIVINDICACIONES
    i. Un método de codificación (804) de datos de vídeo que comprende:
    determinar (802) como tipo de partición una partición asimétrica para un modo de predicción para un bloque de datos de vídeo;
    codificar (804) un bin de tipo de partición de un elemento de sintaxis usando codificación aritmética binaria adaptativa al contexto (CABAC) con un solo contexto, indicando el elemento de sintaxis cómo se divide el bloque de datos de vídeo, en el que el elemento de sintaxis comprende una cadena binaria, en el que el bin de tipo de partición indica si el bloque de datos de vídeo se divide de manera simétrica o se divide de manera asimétrica, en el que el bin de tipo de partición es del segundo al último bin de la cadena binaria, en el que el un solo contexto es el mismo para cualquier partición asimétrica, y en el que el un solo contexto es un modelo de probabilidad; y
    codificar (806) un bin de tamaño de partición del elemento de sintaxis usando CABAC en modo de derivación.
  2. 2. El método según la reivindicación 1, en el que el bin de tamaño de partición es el último bin de la cadena binaria, y en el que el bin de tamaño de partición indica si una primera partición es una cuarta parte de un tamaño del bloque de datos de vídeo o si la primera partición es tres cuartas partes del tamaño del bloque de datos de vídeo.
  3. 3. Un método de decodificación de datos de vídeo que comprende:
    recibir (902) un elemento de sintaxis para un bloque de datos de vídeo que se han codificado usando codificación aritmética binaria adaptativa al contexto (CABAC), indicando el elemento de sintaxis cómo se divide el bloque de datos de vídeo, incluyendo el elemento de sintaxis un bin de tipo de partición que representa un tipo de partición y un bin de tamaño de partición que representa un tamaño de partición; decodificar (904) el bin de tipo de partición del elemento de sintaxis usando CABAC con un solo contexto, en el que el elemento de sintaxis comprende una cadena binaria, en el que el bin de tipo de partición indica si el bloque de datos de vídeo se divide de manera simétrica o se divide de manera asimétrica, en el que el bin de tipo de partición es del segundo al último bin de la cadena binaria, en el que el un solo contexto es el mismo para cualquier partición asimétrica, y en el que el un solo contexto es un modelo de probabilidad; decodificar (906) el bin de tamaño de partición del elemento de sintaxis usando CABAC en modo de derivación; y determinar (802) como tipo de partición una partición asimétrica para un modo de predicción para el bloque de datos de vídeo basándose en el bin de tipo de partición decodificado y el bin de tamaño de partición decodificado.
  4. 4. El método según la reivindicación 3, en el que el bin de tamaño de partición es el último bin de la cadena binaria, y en el que el bin de tamaño de partición indica si una primera partición es una cuarta parte del tamaño del bloque de datos de vídeo o si la primera partición es tres cuartas partes del tamaño del bloque de datos de vídeo.
  5. 5. Un aparato (20) configurado para codificar datos de vídeo, comprendiendo el aparato:
    una memoria configurada para almacenar un bloque de datos de vídeo; y un codificador de vídeo configurado para:
    determinar como tipo de partición una partición asimétrica para un modo de predicción para el bloque de datos de vídeo;
    codificar un bin de tipo de partición de un elemento de sintaxis usando codificación aritmética binaria adaptativa al contexto (CABAC) con un solo contexto, indicando el elemento de sintaxis cómo se divide el bloque de datos de vídeo, en el que el elemento de sintaxis comprende una cadena binaria, en el que el bin de tipo de partición indica si el bloque de datos de vídeo se divide de manera simétrica o se divide de manera asimétrica, en el que el bin de tipo de partición es del segundo al último bin de la cadena binaria, en el que el un solo contexto es el mismo para cualquier partición asimétrica, y en el que el un solo contexto es un modelo de probabilidad; y
    codificar un bin de tamaño de partición del elemento de sintaxis usando CABAC en modo de derivación.
  6. 6. El aparato según la reivindicación 5, en el que el bin de tamaño de partición es el último bin de la cadena binaria, y en el que el bin de tamaño de partición indica si una primera partición es una cuarta parte de un tamaño del bloque de datos de vídeo o si la primera partición es tres cuartas partes del tamaño del bloque de datos de vídeo.
    Un aparato (30) configurado para decodificar datos de vídeo, comprendiendo el aparato:
    una memoria configurada para almacenar un bloque de datos de vídeo; y un decodificador de vídeo configurado para:
    recibir un elemento de sintaxis para el bloque de datos de vídeo que se han codificado usando codificación aritmética binaria adaptativa al contexto (CABAC), indicando el elemento de sintaxis cómo se divide el bloque de datos de vídeo, incluyendo el elemento de sintaxis un bin de tipo de partición que representa un tipo de partición y un bin de tamaño de partición que representa un tamaño de partición;
    decodificar el bin de tipo de partición del elemento de sintaxis usando CABAC con un solo contexto, en el que el elemento de sintaxis comprende una cadena binaria, en el que el bin de tipo de partición indica si el bloque de datos de vídeo se divide de manera simétrica o se divide de manera asimétrica, en el que el bin de tipo de partición es del segundo al último bin de la cadena binaria, en el que el un solo contexto es el mismo para cualquier partición asimétrica, y en el que el un solo contexto es un modelo de probabilidad; decodificar el bin de tamaño de partición del elemento de sintaxis usando CABAC en modo de derivación; y determinar como tipo de partición una partición asimétrica para un modo de predicción para el bloque de datos de vídeo basándose en el bin de tipo de partición decodificado y el bin de tamaño de partición decodificado.
    El aparato según la reivindicación 7, en el que el bin de tamaño de partición es el último bin de la cadena binaria, y en el que el bin de tamaño de partición indica si una primera partición es una cuarta parte del tamaño del bloque de datos de vídeo o si la primera partición es tres cuartas partes del tamaño del bloque de datos de vídeo.
    Un medio de almacenamiento legible por ordenador que almacena instrucciones que, cuando son ejecutadas, hace que uno o más procesadores configurados para codificar datos de vídeo lleve(n) a cabo el método según cualquiera de las reivindicaciones 1 o 2.
    Un medio de almacenamiento legible por ordenador que almacena instrucciones que, cuando son ejecutadas, hace que uno o más procesadores configurados para decodificar datos de vídeo lleve(n) a cabo el método según cualquiera de las reivindicaciones 3 o 4.
ES12781526T 2011-11-08 2012-10-05 Reducción del número de contextos para codificación aritmética binaria adaptativa al contexto Active ES2698552T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161557325P 2011-11-08 2011-11-08
US201161561911P 2011-11-20 2011-11-20
US13/645,308 US9451287B2 (en) 2011-11-08 2012-10-04 Context reduction for context adaptive binary arithmetic coding
PCT/US2012/059095 WO2013070354A1 (en) 2011-11-08 2012-10-05 Number of contexts reduction for context adaptive binary arithmetic coding

Publications (1)

Publication Number Publication Date
ES2698552T3 true ES2698552T3 (es) 2019-02-05

Family

ID=48223670

Family Applications (4)

Application Number Title Priority Date Filing Date
ES12781526T Active ES2698552T3 (es) 2011-11-08 2012-10-05 Reducción del número de contextos para codificación aritmética binaria adaptativa al contexto
ES12780349.2T Active ES2550803T3 (es) 2011-11-08 2012-10-05 Reducción del número de contextos para codificación aritmética binaria adaptativa al contexto
ES12791589.0T Active ES2549145T3 (es) 2011-11-08 2012-10-05 Reducción de contexto para codificación aritmética binaria adaptativa según el contexto
ES18196419T Active ES2992040T3 (es) 2011-11-08 2012-10-05 Número de reducción de contexto para la codificación aritmética binaria adaptativa al contexto

Family Applications After (3)

Application Number Title Priority Date Filing Date
ES12780349.2T Active ES2550803T3 (es) 2011-11-08 2012-10-05 Reducción del número de contextos para codificación aritmética binaria adaptativa al contexto
ES12791589.0T Active ES2549145T3 (es) 2011-11-08 2012-10-05 Reducción de contexto para codificación aritmética binaria adaptativa según el contexto
ES18196419T Active ES2992040T3 (es) 2011-11-08 2012-10-05 Número de reducción de contexto para la codificación aritmética binaria adaptativa al contexto

Country Status (21)

Country Link
US (5) US9451287B2 (es)
EP (4) EP2777162B1 (es)
JP (3) JP5847958B2 (es)
KR (3) KR101633201B1 (es)
CN (3) CN104040900B (es)
AU (3) AU2012336324B2 (es)
BR (3) BR112014011065B1 (es)
CA (3) CA2854822C (es)
DK (2) DK2777160T5 (es)
ES (4) ES2698552T3 (es)
HU (2) HUE026070T2 (es)
IL (7) IL232287A (es)
IN (3) IN2014CN03460A (es)
MY (4) MY168697A (es)
PH (3) PH12014501006B1 (es)
PL (3) PL2777160T3 (es)
PT (2) PT2777162E (es)
RU (1) RU2602380C2 (es)
SG (3) SG11201401685UA (es)
WO (3) WO2013070353A1 (es)
ZA (2) ZA201404184B (es)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2913429B2 (ja) 1991-05-08 1999-06-28 日鐵溶接工業株式会社 低水素系被覆アーク溶接棒
US9510009B2 (en) * 2010-05-20 2016-11-29 Thomson Licensing Methods and apparatus for adaptive motion vector candidate ordering for video encoding and decoding
US11647197B2 (en) 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
US9338465B2 (en) 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
EP2740263B1 (en) * 2011-09-16 2019-02-27 HFI Innovation Inc. Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc
IN2014CN02377A (es) 2011-09-29 2015-06-19 Sharp Kk
PL3754982T3 (pl) 2011-09-29 2024-09-02 Sharp Kabushiki Kaisha Urządzenie do dekodowania obrazu, sposób dekodowania obrazu, sposób kodowania obrazu i urządzenie kodowania obrazu do realizowania konwersji bipredykcyjnej na unipredykcyjną
US9451287B2 (en) 2011-11-08 2016-09-20 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
CN108235015A (zh) * 2011-11-08 2018-06-29 三星电子株式会社 用于对视频进行解码的设备
WO2013106987A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of bypass coding and reducing contexts for some syntax elements
WO2013157791A1 (ko) * 2012-04-15 2013-10-24 삼성전자 주식회사 인터 예측의 참조영상을 결정하는 방법과 그 장치
US10721487B2 (en) 2012-04-17 2020-07-21 Texas Instruments Incorporated Converting a bi-predicted merging candidate in a merging candidate list for a prediction unit of a picture
MY181285A (en) * 2012-07-02 2020-12-21 Samsung Electronics Co Ltd Method and apparatus for entropy coding video and method and apparatus for entropy decoding video
JP6341426B2 (ja) * 2012-09-10 2018-06-13 サン パテント トラスト 画像復号化方法および画像復号化装置
AU2012232992A1 (en) * 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
WO2015006281A2 (en) * 2013-07-09 2015-01-15 Sony Corporation High level syntax improvement on inter-layer prediction for shvc/mv-hevc
US9571858B2 (en) * 2013-07-19 2017-02-14 Futurewei Technologies, Inc. Method and apparatus of derivation for a binary partition pattern
CN105594211B (zh) * 2013-11-27 2019-03-15 寰发股份有限公司 用于图片的包括帧内区块复制模式的编码模式的发送方法
US9948934B2 (en) * 2014-07-02 2018-04-17 Apple Inc. Estimating rate costs in video encoding operations using entropy encoding statistics
US9854237B2 (en) * 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
WO2016153251A1 (ko) * 2015-03-23 2016-09-29 엘지전자 주식회사 비디오 신호의 처리 방법 및 이를 위한 장치
CN106375762B (zh) * 2015-07-22 2019-05-24 杭州海康威视数字技术股份有限公司 参考帧数据压缩方法及其装置
CN109716775B (zh) * 2016-09-20 2023-08-22 株式会社Kt 用于处理视频信号的方法和装置
KR20230010060A (ko) * 2016-10-04 2023-01-17 주식회사 비원영상기술연구소 영상 데이터 부호화/복호화 방법 및 장치
US11146795B2 (en) * 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
FR3064145A1 (fr) * 2017-03-16 2018-09-21 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
US10484695B2 (en) * 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
CN111316642B (zh) * 2017-10-27 2021-10-01 华为技术有限公司 信令图像编码和解码划分信息的方法和装置
US11516513B2 (en) * 2018-03-14 2022-11-29 Mediatek Inc. Method and apparatus of optimized splitting structure for video coding
CN111937404B (zh) * 2018-03-26 2023-12-15 寰发股份有限公司 一种用于视频编码器或解码器的视频编解码方法及装置
KR102636388B1 (ko) 2018-03-29 2024-02-15 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 변환 계수 블록 코딩
EP3791582A1 (en) * 2018-05-30 2021-03-17 Huawei Technologies Co., Ltd. Method and apparatus for boundary partition
CN116527901B (zh) * 2018-06-15 2026-02-06 Lg电子株式会社 解码设备、编码设备和发送设备
CN112040247B (zh) 2018-09-10 2021-09-21 华为技术有限公司 视频解码方法、视频解码器以及计算机可读存储介质
KR102635047B1 (ko) 2018-09-19 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 움직임 벡터 해상도를 가지는 어파인 모드에 대한 구문 재사용
CN116962691A (zh) * 2018-09-21 2023-10-27 Lg电子株式会社 解码和编码设备、存储介质及发送用于图像的数据的设备
US11006150B2 (en) * 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
CN118678109A (zh) * 2018-10-09 2024-09-20 三星电子株式会社 视频编码和编码方法以及用于发送比特流的设备
CN111357294B (zh) * 2018-10-23 2022-12-30 北京字节跳动网络技术有限公司 基于子块的运动信息列表的简化熵编解码
WO2020094051A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Signaling of side information for inter prediction with geometric partitioning
GB2580084B (en) 2018-12-20 2022-12-28 Canon Kk Video coding and decoding
WO2020140862A1 (en) 2018-12-30 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Conditional application of inter prediction with geometric partitioning in video processing
WO2020156516A1 (en) * 2019-01-31 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Context for coding affine mode adaptive motion vector resolution
WO2020156517A1 (en) 2019-01-31 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Fast algorithms for symmetric motion vector difference coding mode
CN113647106B (zh) * 2019-03-05 2024-08-13 弗劳恩霍夫应用研究促进协会 混合视频编码工具的用例驱动上下文模型选择
MX2021012229A (es) 2019-04-12 2021-11-03 Beijing Bytedance Network Tech Co Ltd Determinacion de modo de codificacion de croma basada en intraprediccion basada en matriz.
CN117499656A (zh) 2019-04-16 2024-02-02 北京字节跳动网络技术有限公司 帧内编解码模式下的矩阵推导
WO2020221372A1 (en) * 2019-05-01 2020-11-05 Beijing Bytedance Network Technology Co., Ltd. Context coding for matrix-based intra prediction
KR102698314B1 (ko) 2019-05-22 2024-08-26 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 업샘플링을 이용한 행렬 기반 인트라 예측
WO2020239017A1 (en) 2019-05-31 2020-12-03 Beijing Bytedance Network Technology Co., Ltd. One-step downsampling process in matrix-based intra prediction
WO2020242260A1 (ko) * 2019-05-31 2020-12-03 한국전자통신연구원 전역적 문맥을 이용하는 기계 학습 기반의 이미지 압축을 위한 방법 및 장치
JP2022534320A (ja) 2019-06-05 2022-07-28 北京字節跳動網絡技術有限公司 マトリクスベースイントラ予測のためのコンテキスト決定
US11146823B2 (en) 2019-06-25 2021-10-12 Qualcomm Incorporated Signalling chroma quantization parameter (QP) mapping tables
US11418790B2 (en) * 2019-06-28 2022-08-16 Qualcomm Incorporated Arithmetic coding with selective adaptation for video coding
CN113632471B (zh) * 2019-08-23 2024-02-27 腾讯美国有限责任公司 视频编解码的方法和装置
CN117499625A (zh) 2019-09-01 2024-02-02 北京字节跳动网络技术有限公司 视频编解码中预测权重的对准
WO2021068923A1 (en) * 2019-10-10 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Deblocking filtering improvements
KR20260003392A (ko) 2019-10-28 2026-01-06 두인 비전 컴퍼니 리미티드 색상 성분에 기초한 신택스 시그널링 및 파싱
CN115152209B (zh) 2020-02-24 2025-06-13 字节跳动有限公司 基于子图片级别的分割计算
WO2021178501A1 (en) 2020-03-03 2021-09-10 Bytedance Inc. Controlling a scaling process using slice header signaling
US12439095B2 (en) * 2021-04-16 2025-10-07 Tencent America LLC Entropy coding of sign map for transform coefficients
MX2024010448A (es) 2022-04-05 2024-09-05 Samsung Electronics Co Ltd Dispositivo para codificacion y decodificacion por entropia y metodo para el mismo.
AU2023294050A1 (en) * 2022-06-16 2025-01-09 Mbda Uk Limited Method for image encoding
CN120530626A (zh) * 2023-01-16 2025-08-22 株式会社Kt 图像编码/解码方法和用于存储比特流的记录介质
US20240348782A1 (en) * 2023-04-13 2024-10-17 Alibaba Innovation Private Limited Methods for context-based video coding

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0735775B1 (en) 1995-03-31 2003-05-14 Canon Kabushiki Kaisha Image processing apparatus and method
US7466843B2 (en) 2000-07-07 2008-12-16 Pryor Timothy R Multi-functional control and entertainment systems
US6961055B2 (en) 2001-05-09 2005-11-01 Free Radical Design Limited Methods and apparatus for constructing virtual environments
CN1874509B (zh) * 2001-09-14 2014-01-15 诺基亚有限公司 基于上下文的自适应二进制算术编码的方法和系统
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
AU2003281133A1 (en) 2002-07-15 2004-02-02 Hitachi, Ltd. Moving picture encoding method and decoding method
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
GB2401502B (en) 2003-05-07 2007-02-14 British Broadcasting Corp Data processing
CA2524031C (en) 2003-05-20 2015-07-07 Interlego Ag Method and system for manipulating a digital representation of a three-dimensional object
US7630440B2 (en) 2003-05-28 2009-12-08 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US7769088B2 (en) 2003-05-28 2010-08-03 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
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
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US7688895B2 (en) * 2003-07-22 2010-03-30 Lsi Corporation Method and/or circuit for binary arithmetic decoding decisions before termination
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
DE102004059978B4 (de) 2004-10-15 2006-09-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen einer codierten Videosequenz und zum Decodieren einer codierten Videosequenz unter Verwendung einer Zwischen-Schicht-Restwerte-Prädiktion sowie ein Computerprogramm und ein computerlesbares Medium
KR100664936B1 (ko) 2005-04-13 2007-01-04 삼성전자주식회사 코딩 효율이 향상된 컨텍스트 기반 적응적 산술 코딩 및디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오 코딩및 디코딩 방법과 이를 위한 장치
US20070121728A1 (en) 2005-05-12 2007-05-31 Kylintv, Inc. Codec for IPTV
RU2371881C1 (ru) 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
US8320453B2 (en) 2005-07-08 2012-11-27 Lg Electronics Inc. Method for modeling coding information of a video signal to compress/decompress the information
US7894523B2 (en) 2005-09-05 2011-02-22 Lg Electronics Inc. Method for modeling coding information of a video signal for compressing/decompressing coding information
CA2710354C (en) 2005-09-20 2014-09-23 Mitsubishi Electric Corporation Image encoding method and image decoding method, image encoder and image decoder, and image encoded bit stream and recording medium
GB0524983D0 (en) * 2005-12-07 2006-01-18 Imagination Tech Ltd Recompression and decompression of a data stream for rate smoothing
JP2008193627A (ja) * 2007-01-12 2008-08-21 Mitsubishi Electric Corp 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法
US8358703B2 (en) 2007-03-23 2013-01-22 Thomson Licensing Modifying a coded bitstream
JP5156088B2 (ja) 2007-03-23 2013-03-06 エルジー エレクトロニクス インコーポレイティド ビデオ信号のデコーディング/エンコーディング方法及び装置
US8265144B2 (en) * 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
JP4513841B2 (ja) * 2007-08-28 2010-07-28 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
US9521433B2 (en) * 2007-09-06 2016-12-13 Nec Corporation Video encoding device, video decoding device, video encoding method, video decoding method, video encoding or decoding program
US7557740B1 (en) * 2008-04-18 2009-07-07 Realtek Semiconductor Corp. Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof
JP4962400B2 (ja) 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US8594366B2 (en) * 2008-08-19 2013-11-26 Thomson Licensing Context-based adaptive binary arithmetic coding (CABAC) video stream compliance
US8831087B2 (en) 2008-10-06 2014-09-09 Qualcomm Incorporated Efficient prediction mode selection
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US7982641B1 (en) 2008-11-06 2011-07-19 Marvell International Ltd. Context-based adaptive binary arithmetic coding engine
JP2010278668A (ja) 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
WO2011002914A1 (en) 2009-06-30 2011-01-06 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
US7961122B1 (en) 2010-02-03 2011-06-14 Himax Media Solutions, Inc. Multi-bin CABAC bypass bin decoder
CN102148997A (zh) * 2010-02-04 2011-08-10 成都市世嘉电子实业有限公司 高性能cabac编码器设计方法
KR101750046B1 (ko) * 2010-04-05 2017-06-22 삼성전자주식회사 트리 구조에 따른 부호화 단위에 기반한 인루프 필터링을 수반하는 비디오 부호화 방법과 그 장치 및 복호화 방법과 그 장치
US20110280314A1 (en) 2010-05-12 2011-11-17 Texas Instruments Incorporated Slice encoding and decoding processors, circuits, devices, systems and processes
CN102231830B (zh) 2010-11-23 2013-04-17 浙江大学 用于上下文算术编解码的运算单元
US9848197B2 (en) 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
EP2733941B1 (en) * 2011-07-11 2020-02-19 Sun Patent Trust Image decoding method, image decoding apparatus
EP2740263B1 (en) * 2011-09-16 2019-02-27 HFI Innovation Inc. Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc
US9451287B2 (en) 2011-11-08 2016-09-20 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding

Also Published As

Publication number Publication date
AU2012336323B2 (en) 2015-12-10
DK2777160T3 (en) 2015-12-07
EP3442126A1 (en) 2019-02-13
PL2777160T3 (pl) 2016-01-29
IL269614B (en) 2020-10-29
JP2015502075A (ja) 2015-01-19
ES2550803T9 (es) 2019-05-17
IL264122B (en) 2019-10-31
PL2777162T3 (pl) 2016-01-29
CA2854822C (en) 2017-06-13
JP2014535243A (ja) 2014-12-25
IL258565A (en) 2018-05-31
SG11201401682YA (en) 2014-06-27
CN104040900A (zh) 2014-09-10
PT2777162E (pt) 2015-10-27
US20140355669A1 (en) 2014-12-04
EP3442126C0 (en) 2024-09-18
CA2854830C (en) 2017-02-21
IL258565B (en) 2019-01-31
PH12014501005A1 (en) 2014-06-16
BR112014011060A2 (pt) 2017-06-13
JP5847958B2 (ja) 2016-01-27
IL264122A (en) 2019-02-28
EP2777162B1 (en) 2015-08-19
WO2013070354A1 (en) 2013-05-16
KR20140098118A (ko) 2014-08-07
DK2777160T5 (da) 2019-05-20
CN103988437A (zh) 2014-08-13
IN2014CN03388A (es) 2015-07-03
BR112014011063B1 (pt) 2021-07-20
IL232287A0 (en) 2014-06-30
RU2014123373A (ru) 2015-12-20
BR112014011065A2 (pt) 2017-06-13
US9288508B2 (en) 2016-03-15
AU2012336324B2 (en) 2016-03-31
CA2854822A1 (en) 2013-05-16
ES2992040T3 (es) 2024-12-05
MY167205A (en) 2018-08-13
CA2854814C (en) 2017-06-13
PH12014501006B1 (en) 2017-11-10
US20130114673A1 (en) 2013-05-09
EP2777161A1 (en) 2014-09-17
US9451287B2 (en) 2016-09-20
US20140355681A1 (en) 2014-12-04
RU2014123366A (ru) 2015-12-20
CN104040900B (zh) 2017-05-24
SG11201401685UA (en) 2014-08-28
IN2014CN03460A (es) 2015-07-03
IL232288A0 (en) 2014-06-30
CN103988437B (zh) 2017-03-01
KR20140098117A (ko) 2014-08-07
JP2015502076A (ja) 2015-01-19
EP3442126B1 (en) 2024-09-18
HUE027592T2 (en) 2016-11-28
PH12014501006A1 (en) 2017-06-16
SG11201401687XA (en) 2014-06-27
HK1199152A1 (en) 2015-06-19
KR20140098116A (ko) 2014-08-07
KR101633200B1 (ko) 2016-06-23
US9237358B2 (en) 2016-01-12
WO2013070353A1 (en) 2013-05-16
CN103999367B (zh) 2017-03-29
EP2777160A1 (en) 2014-09-17
JP5847957B2 (ja) 2016-01-27
RU2014122998A (ru) 2015-12-20
IL255321A0 (en) 2017-12-31
CA2854830A1 (en) 2013-05-16
DK2777162T3 (en) 2015-11-30
BR112014011060B1 (pt) 2021-07-13
WO2013070355A1 (en) 2013-05-16
KR101633201B1 (ko) 2016-06-23
IL232288A (en) 2017-05-29
HK1198401A1 (en) 2015-04-17
HUE026070T2 (en) 2016-05-30
US9277241B2 (en) 2016-03-01
IL232286A0 (en) 2014-06-30
AU2012336324A1 (en) 2014-05-29
MY168697A (en) 2018-11-29
BR112014011065A8 (pt) 2021-05-18
JP5964448B2 (ja) 2016-08-03
KR101633199B1 (ko) 2016-06-23
EP2777162A1 (en) 2014-09-17
EP2777161B1 (en) 2018-10-03
PL3442126T3 (pl) 2024-11-18
US20130114671A1 (en) 2013-05-09
EP2777160B9 (en) 2019-03-27
AU2012336323A1 (en) 2014-05-29
EP2777160B1 (en) 2015-08-26
US20130114672A1 (en) 2013-05-09
BR112014011065B1 (pt) 2021-10-05
AU2012336234A1 (en) 2014-05-29
ZA201404184B (en) 2022-11-30
IL232286B (en) 2018-02-28
BR112014011060A8 (pt) 2017-06-20
CN103999367A (zh) 2014-08-20
US9172976B2 (en) 2015-10-27
BR112014011063A2 (pt) 2017-06-13
BR112014011063A8 (pt) 2017-06-20
PH12014501005B1 (en) 2017-11-10
MY166487A (en) 2018-06-27
PT2777160E (pt) 2015-12-07
IL232287A (en) 2017-11-30
CA2854814A1 (en) 2013-05-16
IN2014CN03430A (es) 2015-07-03
AU2012336234B2 (en) 2015-12-10
IL269614A (en) 2019-11-28
ZA201404182B (en) 2016-07-27
PH12014501035A1 (en) 2014-06-23
RU2602380C2 (ru) 2016-11-20
ES2549145T3 (es) 2015-10-23
MY189724A (en) 2022-02-28
IL255321B (en) 2018-04-30
ES2550803T3 (es) 2015-11-12

Similar Documents

Publication Publication Date Title
ES2698552T3 (es) Reducción del número de contextos para codificación aritmética binaria adaptativa al contexto
ES2700523T3 (es) Optimización de contexto para la codificación de la posición del último coeficiente significativo
EP3005698B1 (en) Residual differential pulse code modulation (dpcm) extensions and harmonization with transform skip, rotation, and scans
ES2864623T3 (es) Codificación de parámetros de cuantificación (QP) en codificación de video
ES2608595T3 (es) Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC
RU2575398C2 (ru) Сокращение количества контекстов для контекстно-адаптивного бинарного арифметического кодирования