ES2550803T9 - 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 PDFInfo
- Publication number
- ES2550803T9 ES2550803T9 ES12780349T ES12780349T ES2550803T9 ES 2550803 T9 ES2550803 T9 ES 2550803T9 ES 12780349 T ES12780349 T ES 12780349T ES 12780349 T ES12780349 T ES 12780349T ES 2550803 T9 ES2550803 T9 ES 2550803T9
- Authority
- ES
- Spain
- Prior art keywords
- video
- prediction
- contexts
- context
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
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)
Description
DESCRIPCION
Reduccion del numero de contextos para codificacion aritmetica binaria adaptativa al contexto
Campo tecnico
La presente divulgacion se refiere a codificacion de video, y en particular a codificacion aritmetica binaria adaptativa segun el contexto (CABAC) utilizado en la codificacion de video.
Antecedentes
Las capacidades de video digital se pueden incorporar en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusion directa digitales, sistemas de transmision inalambricos, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores de tableta, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digitales, reproductores multimedia digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o satelitales de radio, los llamados "telefonos inteligentes", dispositivos de teleconferencia de video, dispositivos de video de transmision en vivo, y similares. Los dispositivos de video digitales implementan tecnicas de compresion de video, tales como las descritas en los estandares definidos por MPEG-2, MPEG-4, UIT-T H.263, u It-T H.264/MPEG-4, Parte 10, codificacion de video avanzada (AVC), estandar de codificacion de video de alta eficiencia (HEVC) actualmente en fase de desarrollo, y extensiones de esas normas. Los dispositivos de video pueden transmitir, recibir, codificar, decodificar, y/o almacenar informacion de video digital de manera mas eficiente mediante la implementacion de este tipo de tecnicas de compresion de video.
Las tecnicas de compresion de video realizan prediccion espacial (dentro de las imagenes) y/o una prediccion temporal (entre imagenes) para reducir o eliminar la redundancia inherente a las secuencias de video. Para la codificacion de video basado en bloques, una porcion de video (es decir, una imagen de video o una porcion de una imagen de video) puede dividirse en bloques de video, que tambien pueden denominarse como bloques de arbol, unidades de codificacion (CUS) y/o nodos de codificacion. Los bloques de videos en una porcion intra-codificada (I) de una imagen se codifican utilizando prediccion espacial con respecto a las muestras de referencia en bloques vecinos de la misma imagen. Los bloques de videos en una porcion inter-codificada (P o B) de una imagen pueden usar prediccion espacial con respecto a las muestras de referencia en bloques vecinos de la misma imagen o prediccion temporal con respecto a las muestras de referencia en otras imagenes de referencia. Las imagenes pueden indicarse como marcos, imagenes de referencia y pueden indicarse como marcos de referencia.
La prediccion espacial o temporal resulta en un bloque de prediccion para un bloque a codificar. Los datos residuales representan diferencias de pfxeles entre el bloque original a codificar y el bloque de prediccion. Un bloque inter-codificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque de prediccion, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado se codifica de acuerdo con un modo de intra-codificacion y los datos residuales. Para mayor compresion, los datos residuales pueden ser transformados desde el dominio de pfxeles a un dominio de transformacion, dando como resultado coeficientes de transformacion residuales, que luego pueden ser cuantificados. Los coeficientes de transformacion cuantificados, inicialmente dispuestos en una matriz de dos dimensiones, pueden ser escaneados para producir un vector unidimensional de coeficientes de transformacion, y la codificacion de entropfa se puede aplicar para lograr aun mas compresion. Los siguientes artfculos se refieren a reduccion de sitio de contexto para CABAC.
“BoG report on context reduction for CABAC”, 6 JCT-VC Meeting; 97. MPEG Meeting, 14-22 de julio de 2011, Turn;
"Modified binarization and coding of MVD for PIPE/CABAC" de Nguyen et al, en 6. JCT-VC Meeting; 97. MPEG Meeting; 14-22 de Julio de 2011, Turin; y
"CE11: Context size reduction for the significance map" de Hisao Sasai et al, en 96. MPEG Meeting; 21-25 de marzo de 2011, Ginebra.
Sumario
La invencion se define en las reivindicaciones a las que se hace ahora referencia. En general, esta divulgacion describe tecnicas para la codificacion aritmetica binaria (CABAC) adaptativa segun contexto en un proceso de codificacion de video. En particular, esta divulgacion propone una reduccion en el numero de contextos CABAC usados para uno o mas elementos de sintaxis, ejemplos no limitativos de los cuales incluyen pred_type, merge_idx, inter_pred_flag, ref_idxjx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag, y coeff_abs_level_greater2_flag. Las modificaciones pueden reducir hasta 56 contextos con insignificantes cambios de eficiencia de codificacion. Las reducciones de contexto propuestas para los elementos de sintaxis pueden ser utilizadas en solitario o en cualquier fusion.
La codificacion de video puede incluir la determinacion de un primer tipo de prediccion para un bloque de datos de video en una porcion P, que representa el primer tipo de prediccion como un elemento de sintaxis de tipo de prediccion de porcion P, la determinacion de un segundo tipo de prediccion para un bloque de datos de video en una
porcion B, la representacion del segundo tipo de prediccion como un elemento de sintaxis de tipo de prediccion de porcion B, la determinacion de una binarizacion de porcion P para el elemento de sintaxis de tipo de prediccion de porcion P, la determinacion una binarizacion de porcion B para el elemento de sintaxis de tipo de prediccion de porcion B, en el que el elemento de sintaxis de tipo de prediccion de porcion P y el elemento de sintaxis de tipo de prediccion de porcion B se determinan usando la misma logica de binarizacion, y la codificacion de los datos de video basados en las binarizaciones del elemento de sintaxis del tipo de prediccion de porcion P y el elemento de sintaxis de tipo de prediccion de porcion B.
La decodificacion de video puede incluir la asignacion de un elemento de sintaxis de tipo de prediccion de porcion P binarizada a un tipo de prediccion usando una asignacion de binarizacion para un bloque de datos de video en una porcion P, la asignacion de un elemento de sintaxis tipo de prediccion de porcion B binarizada a un tipo de prediccion utilizando la misma asignacion de binarizacion para un bloque de datos de video en una porcion B, y la decodificacion de los datos de video en base a los tipos de prediccion asignados.
La codificacion de datos de video puede comprender la determinacion de un tipo de particion para un modo de prediccion para un bloque de datos de video, que codifica una particion de tipo bin de un elemento de sintaxis de tipo de prediccion para un bloque de datos de video utilizando CABAC con un solo contexto, en el que el contexto individual es el mismo para cualquier tipo de particion, y que codifica una particion de tamano bin del elemento de sintaxis de tipo de prediccion para el bloque de datos de video utilizando CABAC en el modo de derivacion.
La decodificacion de datos de video puede comprender la recepcion de un elemento de sintaxis de tipo de prediccion para un bloque de datos de video que ha sido codificado usando CABAC, incluyendo el elemento de sintaxis de tipo de prediccion un tipo de particion bin que representa un tipo de particion y un tamano de particion bin que representa un tamano de particion, decodificando el tipo de particion bin del elemento de sintaxis del tipo de prediccion usando el contexto de codificacion aritmetica binaria adaptativa con un solo contexto, en el que el contexto individual es el mismo para cualquier tipo de particion, y decodificando el tamano de particion bin del elemento de sintaxis de tipo de prediccion utilizando CABAC en modo de derivacion.
Los detalles de uno o mas ejemplos se indican en los dibujos adjuntos y en la descripcion siguiente. Otras caracteristicas, objetos y ventajas seran evidentes a partir de la descripcion y dibujos, y de las reivindicaciones.
Breve descripcion de los dibujos
La figura 1 es un diagrama de bloques que ilustra un ejemplo de un sistema de codificacion y decodificacion de video que puede utilizar las tecnicas descritas en esta divulgacion.
La figura 2 es un diagrama de bloques que ilustra un ejemplo de codificador de video que puede poner en practica las tecnicas descritas en esta divulgacion.
La figura 3 es un diagrama de bloques que ilustra un ejemplo de decodificador de video que puede poner en practica las tecnicas descritas en esta divulgacion.
La figura 4 es un dibujo conceptual que muestra tipos de particiones cuadradas y no cuadradas.
La figura 5 es un dibujo conceptual que muestra los tipos de particion asimetricos.
La figura 6 es un diagrama de flujo que ilustra un procedimiento de codificacion de video de ejemplo de la divulgacion.
La figura 7 es un diagrama de flujo que ilustra un procedimiento de decodificacion video de ejemplo de la divulgacion.
La figura 8 es un diagrama de flujo que ilustra un procedimiento de codificacion de video de ejemplo de la divulgacion.
La figura 9 es un diagrama de flujo que ilustra un procedimiento de decodificacion de video de ejemplo de la divulgacion.
La figura 10 es un diagrama de flujo que ilustra un procedimiento de codificacion de video de ejemplo de la divulgacion.
Descripcion detallada
Esta divulgacion describe tecnicas de codificacion de datos, tal como datos de video. En particular, la divulgacion describe tecnicas que pueden promover la codificacion eficiente de datos de video utilizando procesos de codificacion de entropia de contexto adaptativo. Mas especificamente, esta divulgacion propone una reduccion en el numero de contextos CABAC utilizados para elementos de sintaxis de codificacion, 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 insignificantes cambios de eficiencia de codificacion. Esta divulgacion describe la codificacion de video para fines de ilustracion. Sin embargo, las tecnicas descritas en esta divulgacion tambien pueden ser aplicables a otros tipos de codificacion de datos.
La figura 1 es un diagrama de bloques que ilustra un ejemplo de sistema 10 de codificacion y decodificacion de video que puede configurarse para utilizar tecnicas para codificacion aritmetica binaria (CABAC) adaptativa segun el contexto de acuerdo con ejemplos de esta divulgacion. Como se muestra en la figura 1, el sistema 10 incluye un dispositivo 12 fuente que transmite video codificado a un dispositivo 14 de destino a traves del canal 16 de
comunicacion. Los datos de v^deo codificados tambien se pueden almacenar en un medio 34 de almacenamiento o servidor 36 de archivos y se puede acceder mediante el dispositivo 14 de destino 14 si se desea. Cuando se almacena en un medio de almacenamiento o servidor de archivos, un codificador 20 de video puede proporcionar datos de video codificados a otro dispositivo, tal como una interfaz de red, un dispositivo de instalacion de grabacion o registro de discos compactos (CD), Blu-ray o discos de video digital (DVD), u otros dispositivos, para almacenar los datos de video codificados en el medio de almacenamiento. Del mismo modo, un dispositivo separado de decodificador 30 de video, tal como un lector de interfaz de red, CD o DVD, o similar, puede recuperar los datos codificados de video desde un medio de almacenamiento y proporcionar los datos recuperados al decodificador 30 de video.
Dispositivo 12 fuente y dispositivo 14 destino pueden comprender cualquiera de una amplia variedad de dispositivos, incluyendo ordenadores de escritorio, ordenadores portatiles (por ejemplo, portatil), ordenadores de tableta, codificadores, aparatos telefonicos, tales como los llamados telefonos inteligentes, televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, o similares. En muchos casos, dichos dispositivos pueden estar equipados para la comunicacion inalambrica. Por lo tanto, el canal 16 de comunicacion puede comprender un canal inalambrico, un canal por cable, o una fusion de canales inalambricos y cableados adecuados para la transmision de datos de video codificados. Del mismo modo, un servidor 36 de archivos puede ser accedido por el dispositivo 14 de destino a traves de cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion Wi-Fi), una conexion por cable (por ejemplo, DSL, cable modem, etc.), o una fusion de ambos, que es adecuado para el acceso a los datos de video codificados almacenados en un servidor de archivos.
Las tecnicas para CABAC, de acuerdo con los ejemplos de esta divulgacion, se pueden aplicar a la codificacion de video en apoyo de cualquiera de una variedad de aplicaciones multimedia, como emisiones de television en el aire, transmisiones de television por cable, transmisiones de television por satelite, transmision de transmisiones de video, por ejemplo, a traves de Internet, codificacion de video digital para el almacenamiento en un medio de almacenamiento de datos, decodificacion de video digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para soportar transmision de video en un solo sentido o en dos sentidos para soportar aplicaciones tales como transmision de video, reproduccion de video, retransmision de video y/o videotelefoma.
En el ejemplo de la figura 1, el dispositivo 12 fuente incluye una fuente 18 de video, un codificador 20 de video, un modulador/demodulador 22 y un transmisor 24. En el dispositivo 12 fuente, la fuente 18 de video puede incluir una fuente tal como un dispositivo de captura de video, una camara de video, un archivo de video que contiene video previamente capturado, una interfaz de alimentacion de video para recibir video de un proveedor de contenido de video, y/o un sistema de graficos de ordenador para generar datos de graficos de ordenador como video de origen, o una fusion de tales fuentes. Como un ejemplo, si la fuente 18 de video es una camara de video, el dispositivo 12 fuente y el dispositivo 14 de destino pueden formar los llamados telefonos con camara o video telefonos. Sin embargo, las tecnicas descritas en esta divulgacion pueden ser aplicables a la codificacion de video en general, y pueden aplicarse a aplicaciones inalambricas y/o cableadas, o aplicaciones en las que los datos de video codificados se almacenan en un disco local.
El video capturado, pre-capturado, o generado por ordenador puede ser codificado por el codificador de video 20. La informacion de video codificada puede ser modulada por modem 22 de acuerdo con un estandar de comunicacion, tal como un protocolo de comunicacion inalambrica, y se transmite al dispositivo 14 de destino a traves del transmisor 24. El modem 22 puede incluir varios mezcladores, filtros, amplificadores u otros componentes disenados para la modulacion de la senal. El transmisor 24 puede incluir circuitos disenados para la transmision de datos, incluyendo amplificadores, filtros, y una o mas antenas.
El video capturado, pre-capturado, o generado por ordenador que esta codificado por el codificador 20 de video tambien puede almacenarse en un medio 34 de almacenamiento o en el servidor 36 de archivos para el consumo posterior. El medio 34 de almacenamiento puede incluir discos Blu-ray, DVD, CD-ROM, memoria flash, o cualquier otro medio de almacenamiento digital adecuado para el almacenamiento de video codificado. El video codificado almacenado en el medio 34 de almacenamiento puede entonces ser accedido por el dispositivo 14 de destino para la decodificacion y la reproduccion. Aunque no se muestra en la figura 1, en algunos ejemplos, el medio 34 de almacenamiento y/o el servidor 36 de archivos pueden almacenar la salida del transmisor 24.
El servidor 36 de archivos puede ser cualquier tipo de servidor capaz de almacenar video codificado y transmitir ese video codificado al dispositivo 14 de destino. Servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, un almacenamiento conectado a la red (NAS), una unidad de disco local, o cualquier otro tipo de dispositivo capaz de almacenar los datos de video codificados y transmitirlos a un dispositivo de destino. La transmision de datos de video codificados de servidor de archivos 36 puede ser una transmision en directo, una transmision de descarga, o una fusion de ambos. El servidor de archivos 36 se puede acceder mediante el dispositivo 14 de destino a traves de cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion Wi-Fi), una conexion por cable (por ejemplo, DSL, cable modem, Ethernet, USB, etc.), o una fusion de ambos que es adecuada para el acceso a los datos de video codificados almacenados en un servidor de archivos.
El dispositivo 14 de destino, en el ejemplo de la figura 1, incluye el receptor 26, el modem 28, el decodificador 30 de video, y el dispositivo 32 de visualizacion. El receptor 26 del dispositivo 14 de destino recibe informacion a traves del canal 16, y el modem 28 demodula la informacion para producir un flujo de bits demodulado para el decodificador 30 de video. La informacion comunicada sobre el canal 16 puede incluir una variedad de informacion de sintaxis generada por el codificador 20 de video para su uso por el decodificador 30 de video en la decodificacion de datos de video. Esta sintaxis tambien puede incluirse con los datos de video codificados almacenados en el medio 34 de almacenamiento o el servidor 36 de archivos. Cada uno del codificador 20 de video y el decodificador 30 de video puede formar parte de un respectivo codificador-decodificador (CODEC) que es capaz de codificar o decodificar datos de video.
El dispositivo 32 de visualizacion puede estar integrado con, o en su exterior, el dispositivo 14 de destino. En algunos ejemplos, el dispositivo 14 de destino puede incluir un dispositivo de visualizacion integrado y tambien estar configurado para interconectarse con un dispositivo de visualizacion externo. En otros ejemplos, el dispositivo 14 de destino puede ser un dispositivo de visualizacion. En general, el dispositivo 32 de visualizacion muestra los datos de video decodificados a un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualizacion, tales como una pantalla de cristal lfquido (LCD), una pantalla de plasma, un diodo organico emisor de luz (OLED), u otro tipo de dispositivo de visualizacion.
En el ejemplo de la figura 1, el canal 16 de comunicacion puede comprender cualquier medio de comunicacion inalambrico o por cable, tal como un espectro de radiofrecuencia (RF) o una o mas lmeas de transmision ffsicas, o cualquier fusion de medios inalambricos y por cable. El canal 16 de comunicacion puede formar parte de una red basada en paquetes, tales como una red de area local, una red de area amplia, o una red global como Internet. El canal 16 de comunicacion representa generalmente cualquier medio adecuado de comunicacion o coleccion de diferentes medios de comunicacion, para transmitir datos de video desde el dispositivo 12 fuente al dispositivo 14 de destino, incluyendo cualquier fusion adecuada de medios alambricos o inalambricos. El canal 16 de comunicacion puede incluir enrutadores, conmutadores, estaciones base, o cualquier otro equipo que pueda ser util para facilitar la comunicacion desde el dispositivo 12 fuente al dispositivo 14 de destino.
El codificador 20 de video y el decodificador 30 de video pueden funcionar de acuerdo con un estandar de compresion de video, tal como el estandar de alta eficiencia de codificacion de video (HEVC) actualmente en fase de desarrollo por el Equipo de Colaboracion Conjunta de Codificacion de Video (JCT-VC) del Grupo de Expertos de Codificacion de Video UiT-T (VCEG) y el Grupo de Expertos de Imagen en Movimiento ISO/IEC (MPEG). Un proyecto reciente del estandar HEVC, denominado "Proyecto de Trabajo HEVC 6" o "WD6", se describe en el documento JCTVC-H1003, Bross y otros, "Proyecto de la especificacion del texto de codificacion de video de alta eficiencia (HEVC) 6", Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de UIT-T SG16 WP3 e ISO/IEC jTc 1/SC29/WG11, octava Reunion: San Jose, California, EE.UU., febrero de 2012, que, a partir del 1 de junio de 2012 se puede descargar desde http://phenix.intevry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003- v22.zip.
Alternativamente, el codificador 20 de video y el decodificador 30 de video pueden operar de acuerdo con otros estandares de propiedad o de la industria, tales como el estandar ITU-T H.264, denominado alternativamente como MPEG 4, Parte 10, Codificacion Avanzada de Video (AVC), o extensiones de dichos estandares. Las tecnicas de esta divulgacion, sin embargo, no se limitan a ningun estandar de codificacion particular. Otros ejemplos incluyen MPEG-2 y UIT-T H.263.
Aunque no se muestra en la figura 1, en algunos aspectos, el codificador 20 de video y el decodificador 30 de video pueden estar cada uno integrado con un codificador y decodificador de audio, y pueden incluir unidades apropiadas MUX-DEMUX u otro hardware y software, para manejar la codificacion de audio y video en un flujo de datos comun o flujos de datos independientes. Si procede, en algunos ejemplos, las unidades MUX-DEMUX pueden ser conforme el protocolo de multiplexor ITU H.223, u otros protocolos tales como el protocolo de datagrama de usuario (UDP).
El codificador 20 de video y el decodificador 30 de video, cada uno, puede ser implementado como cualquiera de una variedad de circuitos de codificador adecuados, tal como uno o mas microprocesadores, procesadores de senales digitales (DSPs), aplicacion de circuitos integrados espedficos (ASICs), matrices de puertas programables (FPGAs), logica discreta, software, hardware, firmware o cualquier fusion de los mismos. Cuando las tecnicas 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 mas procesadores para llevar a cabo las tecnicas de esta divulgacion. Cada uno del codificador 20 de video y el decodificador 30 de video pueden incluirse en uno o mas codificadores o decodificadores, cualquiera de los cuales puede integrarse como parte de un codificador/decodificador combinado (CODEC) en un dispositivo respectivo.
El codificador 20 de video puede implementar cualquiera o todas las tecnicas de esta divulgacion para CABAC en un proceso de codificacion de video. Del mismo modo, el decodificador 30 de video puede implementar cualquiera o todas estas tecnicas para CABAC en un proceso de codificacion de video. Un codificador de video, tal como se describe en esta divulgacion, puede referirse a un codificador de video o a un decodificador de video. Del mismo modo, una unidad de codificacion de video puede referirse a un codificador de video o a un decodificador de video. Del mismo modo, la codificacion de video puede referirse a la codificacion de video o a la decodificacion de video.
En un ejemplo de la divulgacion, el codificador 20 de video puede estar configurado para determinar un primer tipo de prediccion para un bloque de datos de video en una porcion P, que representa el primer tipo de prediccion como un elemento de sintaxis de tipo de prediccion porcion P, determinar un segundo tipo de prediccion para un bloque de datos de video en una porcion B, representar el segundo tipo de prediccion como un elemento de sintaxis de tipo de prediccion porcion B, determinar una binarizacion porcion P para el elemento de sintaxis de tipo de prediccion porcion P, determinar una binarizacion de porcion B para el elemento de sintaxis de tipo prediccion de porcion B, en el que el tipo de prediccion del elemento de sintaxis de porcion P y el elemento de sintaxis del tipo de prediccion de porcion B se determinan usando la misma logica de binarizacion y codificando los datos de video basados en las binarizaciones del elemento de sintaxis de tipo de prediccion de porcion P y el elemento de sintaxis de prediccion de porcion B.
En otro ejemplo de la divulgacion, el decodificador 30 de video puede estar configurado para asignar un elemento de sintaxis de tipo de prediccion de porcion P binarizada a un tipo de prediccion usando una asignacion de binarizacion para un bloque de datos de video en una porcion P, asignar un elemento de sintaxis de tipo de prediccion de porcion B binarizada para un tipo de prediccion utilizando la mismo asignacion de binarizacion para un bloque de datos de video en una porcion B, y decodificar los datos de video en base a los tipos de prediccion asignados.
En otro ejemplo de la divulgacion, el codificador 20 de video puede estar configurado para determinar un tipo de particion para un modo de prediccion para un bloque de datos de video, codificar una particion de tipo bin de un elemento de sintaxis de tipo de prediccion para el bloque de datos de video usando CABAC con un contexto unico, en el que el contexto individual es el mismo para cualquier tipo de particion, y codificar un tamano de particion bin del elemento de sintaxis de tipo de prediccion para el bloque de datos de video utilizando CABAC en el modo de derivacion.
En otro ejemplo de la divulgacion, el decodificador 30 de video puede estar configurado para recibir un elemento de sintaxis de tipo de prediccion para un bloque de datos de video que ha sido codificado usando CABAC, incluyendo el elemento de sintaxis de tipo de prediccion una particion de tipo bin que representa un tipo de particion y un tamano de particion bin que representa un tamano de particion, decodificar el tipo de particion bin del elemento de sintaxis de tipo de prediccion utilizando CABAC con un solo contexto, en el que el contexto individual es el mismo para cualquier tipo de particion, y decodificar el tamano de particion bin del elemento de sintaxis de tipo de prediccion utilizando CABAC en modo de derivacion.
En otro ejemplo de la divulgacion, el codificador 20 de video y el decodificador 30 de video pueden estar configurados para codificar un indicador de bloque codificado croma Cb de un bloque de datos de video utilizando CABAC, en el que la codificacion del indicador de bloque codificado croma Cb comprende el uso de un conjunto de contextos que incluye uno o mas contextos como parte de la CABAC, y el codigo de un indicador de bloque codificado croma Cr utilizando CABAC, en el que la codificacion del indicador de bloque codificado croma Cr comprende utilizar el mismo contexto establecido como el indicador de bloque codificado croma Cb como parte de la CABAC.
El JCT-VC esta trabajando en la elaboracion del estandar HEVC. Los esfuerzos de normalizacion HEVC se basan en un modelo de evolucion de un dispositivo de codificacion de video indicado como el Modelo de Prueba HEVC (HM). El HM presume varias capacidades adicionales de dispositivos de codificacion de video en relacion con los dispositivos existentes de acuerdo con, por ejemplo, UIT-T H.264/AVC. Por ejemplo, aunque H.264 ofrece nueve modos de codificacion intra-prediccion, el HM puede proporcionar un maximo de treinta y tres modos de codificacion intra-prediccion. En la siguiente seccion se describiran algunos aspectos del HM en mas detalle.
En general, el modelo de trabajo del HM describe que un fotograma de video o imagen se puede dividir en una secuencia de bloques de arbol o unidades mas grandes de codificacion (LCU) que incluyen ambas muestras luminancia y croma. Un bloque de arbol tiene un proposito similar a un macrobloque de la norma H.264. Una porcion incluye un numero de bloques de arbol consecutivos en orden de codificacion. Un fotograma de video o imagen se puede dividir en uno o mas sectores. Cada bloque de arbol puede dividirse en unidades de codificacion (CUS) de acuerdo con un arbol cuadruple. Por ejemplo, un bloque de arbol, como un nodo rafz del arbol de cuatro ramas, se puede dividir en cuatro nodos hijos, y cada nodo hijo puede a su vez ser un nodo padre y ser dividido en otros cuatro nodos hijos. Un nodo hijo final, de una sola pieza, como un nodo de hoja del arbol de cuatro ramas, comprende un nodo de codificacion, es decir, un bloque de video codificado. La sintaxis de los datos asociados con un flujo de bits codificados puede definir un numero maximo de veces que un bloque de arbol puede dividirse, y tambien puede definir un tamano mmimo de los nodos de codificacion.
La CU incluye unas unidades de codificacion de nodo y de prediccion (PUs) y unidades de transformacion (TUs) asociadas con el nodo de codificacion. Un tamano de la CU corresponde generalmente a un tamano del nodo de codificacion y normalmente debe ser de forma cuadrada. El tamano de la CU puede variar de 8 x 8 pfxeles hasta el tamano del bloque de arbol con un maximo de 64 x 64 pfxeles o mayores. Cada CU puede contener uno o mas PUs y una o mas unidades de formacion. Los datos de la sintaxis asociada con una CU pueden describir, por ejemplo, la particion de la CU en una o mas PUs. Los modos de particiones pueden ser diferentes entre sf si la CU se omite o se codifica en modo directo, se codifica en modo de intra-prediccion, o se codifica en modo de inter-prediccion. Las PUs pueden dividirse para no ser de forma cuadrada. Los datos de la sintaxis asociada con una CU tambien pueden
describir, por ejemplo, la particion de la CU en una o mas unidades de formacion de acuerdo con un arbol cuadruple. Una TU puede ser cuadrada o ser de forma no cuadrada.
El estandar HEVC emergente permite las transformaciones de acuerdo a TUs, que puede ser diferentes para diferentes CUs. Las TUs estan dimensionadas tipicamente en funcion del tamano de las PUs dentro de una CU determinada definida para un LCU particionada, aunque esto puede no ser siempre el caso. Las TUs suelen ser del mismo tamano o mas pequeno que las PUs. En algunos ejemplos, las muestras residuales correspondientes a una CU se pueden subdividir en unidades mas pequenas utilizando una estructura de arbol cuadruple conocida como "arbol cuadruple residual" (RQT). Los nodos de hoja del RQT pueden ser referidos como unidades de transformacion (TUs). Los valores de diferencia de pfxeles asociados con las TUs pueden ser transformados para producir coeficientes de transformacion, que pueden ser cuantificados.
En general, una PU se refiere a datos relacionados con el proceso de prediccion. Por ejemplo, cuando la PU esta intra-codificada, la PU puede incluir datos que describen un modo de intra-prediccion para la PU. Como otro ejemplo, cuando la PU esta inter-codificada, 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 resolucion para el vector de movimiento (por ejemplo, precision de un cuarto de pixel o precision de un octavo de pixel), una imagen de referencia a la que apunta el vector de movimiento, y/o una lista de imagenes de referencia (por ejemplo, Lista 0, Lista 1 o Lista C) para el vector de movimiento.
En general, una TU se utiliza para los procesos de transformacion y de cuantificacion. Una CU dada que tiene una o mas unidades PU tambien puede incluir una o mas unidades de transformacion (TUs). Despues de la prediccion, el codificador 20 de video puede calcular los valores residuales del bloque de video identificado por el nodo de codificacion de acuerdo con la PU. El nodo de codificacion se actualiza para hacer referencia a los valores residuales, mas que el bloque de video original. Los valores residuales comprenden valores de diferencia de pfxeles que pueden ser transformados en coeficientes de transformacion cuantificados, y escaneados utilizando las transformadas y otra informacion de transformacion especificada en las TUs para producir coeficientes de transformacion serializados para la codificacion de entropfa. El nodo de codificacion puede ser actualizado una vez mas para referirse a estos coeficientes de transformacion serializados. Esta divulgacion suele utilizar el termino "bloque de video" para referirse a un nodo de codificacion de una CU. En algunos casos espedficos, esta divulgacion tambien puede usar el termino "bloque de video" para referirse a un bloque de arbol, es decir, LCU, o una CU, que incluye un nodo de codificacion y PUs y TUs.
Una secuencia de video incluye tfpicamente una serie de fotogramas de video o imagenes. Un grupo de imagenes (GOP) comprende generalmente una serie de una o mas de las imagenes de video. Un GOP puede incluir datos de sintaxis en una cabecera del GOP, una cabecera de una o mas de las imagenes, o en otro lugar, que describe un numero de imagenes incluidas en el GOP. Cada porcion de una imagen puede incluir datos de sintaxis de porciones que describen un modo de codificacion para el respectivo segmento. El codificador 20 de video normalmente funciona en bloques de video dentro de porciones de video individuales para codificar los datos de video. Un bloque de video puede corresponder a un nodo de codificacion dentro de una CU. Los bloques de video pueden tener tamanos fijos o variables, y pueden diferir en tamano de acuerdo con un estandar de codificacion especificado. Como ejemplo, el HM soporta la prediccion en varios tamanos de PU. Suponiendo que el tamano de una CU particular es 2N x 2N, el HM soporta la intra-prediccion en tamanos PU de 2N x 2N o N x N, y la inter-prediccion en tamanos simetricos de la PU de 2N x 2N, 2N x N, N x 2N o N x N. El HM tambien admite la particion asimetrica para inter-prediccion en tamanos PU de 2N x nU, 2N x nD, nL x 2N y nRx 2N. En la particion asimetrica, una direccion de una CU no esta dividida, mientras que la otra direccion se divide en 25% y 75%. La porcion de la CU correspondiente a la particion del 25% se indica con una "n", seguido de una indicacion de "Arriba", "Abajo", "Izquierda" o "Derecha". Asf, por ejemplo," 2N x nU "se refiere a una CU 2N x 2N que esta dividida 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 los dos tipos de particiones cuadradas y no cuadradas de intraprediccion e inter-prediccion. La particion 102 es una particion 2N x 2N y puede ser utilizada para la intra-prediccion y la inter-prediccion. La particion 104 es una particion de N x N y puede ser utilizada para la intra-prediccion y la inter-prediccion. La particion 106 es una particion 2N x N y se utiliza actualmente en HEVC para inter-prediccion. La particion 108 es una particion N x 2N y se utiliza actualmente en HEVC para inter-prediccion.
La figura 5 un dibujo conceptual que muestra los tipos de particion asimetricos. La particion 110 es una particion 2N x nU y se utiliza actualmente en HEVC para inter-prediccion. La particion 112 es una particion 2N x nD y se utiliza actualmente en HEVC para inter-prediccion. La particion 114 es una particion nL x 2N y se utiliza actualmente en HEVC para inter-prediccion. La particion 116 es una particion nR x 2N y se utiliza actualmente en HEVC para interprediccion.
En esta divulgacion, "N x N" y "N por N" pueden utilizarse indistintamente para referirse a las dimensiones en pfxeles de un bloque de video en terminos de dimensiones verticales y horizontales, por ejemplo, 16 x 16 pfxeles o 16 por 16 pfxeles. En general, un bloque 16 x 16 tendra 16 pfxeles en una direccion vertical (Y = 16) y 16 pfxeles en una
direccion horizontal (x = 16). Del mismo modo, un bloque de N x N generalmente tiene N pfxeles en una direccion vertical y N pfxeles en direccion horizontal, donde n representa un valor entero no negativo. Los pfxeles de un bloque pueden estar dispuestos en filas y columnas. Por otra parte, los bloques no necesitan necesariamente tener el mismo numero de p^xeles en la direccion horizontal como en la direccion vertical. Por ejemplo, los bloques pueden comprender N x M pfxeles, donde M no es necesariamente igual a N.
Despues de la codificacion intra-predictiva o inter-predictiva utilizando las PUs de una CU, el codificador 20 de video puede calcular datos residuales a los que se aplican las transformaciones especificadas por unidades de formacion de la CU. Los datos residuales pueden corresponder a diferencias de pixel entre los pfxeles de la imagen sin codificar y los valores de prediccion correspondientes a la CU. El codificador 20 de video puede formar los datos residuales para la CU, y luego transformar los datos residuales para producir coeficientes de transformacion.
Despues de cualquier transformacion para producir coeficientes de transformacion, el codificador 20 de video puede llevar a cabo la cuantificacion de los coeficientes de transformacion. La cuantificacion se refiere generalmente a un proceso en el que se transforman los coeficientes que se cuantifican a la posibilidad de reducir la cantidad de datos utilizados para representar los coeficientes, proporcionando una compresion adicional. El proceso de cuantificacion 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 a un valor de m bits durante la cuantizacion, donde n es mayor que m.
En algunos ejemplos, el codificador 20 de video puede utilizar un orden de exploracion predefinida para escanear los coeficientes de transformacion cuantificados para producir un vector serializado que puede ser entropfa codificada. En otros ejemplos, el codificador 20 de video puede realizar una exploracion adaptativa. Despues de escanear los coeficientes de transformacion cuantificados para formar un vector unidimensional, el codificador 20 de video puede codificar la entropfa del vector unidimensional, por ejemplo, de acuerdo con la codificacion de longitud variable adaptativa segun el contexto (CAVLC), el contexto de codificacion aritmetica binaria adaptativa (CABAC), mediante codificacion aritmetica binaria adaptativa segun el contexto basada en la sintaxis (SBAC), codificacion de entropfa de particion de intervalos de probabilidades (PIPE) u otra metodologfa de codificacion de entropfa. El codificador 20 de video puede tambien codificar la entropfa de elementos de sintaxis asociados con los datos de video codificados para su uso mediante el decodificador 30 de video en la decodificacion de los datos de video.
Para realizar CABAC, el codificador 20 de video puede asignar un contexto dentro de un modelo de contexto a un sfmbolo a transmitir. El contexto puede relacionarse con, por ejemplo, si los valores vecinos del sfmbolo son cero o no. Para realizar CAVLC, el codificador 20 de video puede seleccionar un codigo de longitud variable para un sfmbolo a transmitir. Las palabras de codigo en VLC pueden construirse de tal manera que los codigos mas cortos corresponden relativamente a los sfmbolos mas probables, mientras que los codigos mas largos corresponden a los sfmbolos menos probables. De esta manera, el uso de VLC puede lograr un ahorro de bits sobre, por ejemplo, el uso de palabras de codigo de igual longitud para cada sfmbolo a transmitir. La determinacion de la probabilidad se puede basar en un contexto asignado al sfmbolo.
Esta divulgacion se refiere a tecnicas para codificadores de entropfa de codificacion aritmetica binaria adaptativa segun el contexto (CABAC) u otros codificadores de entropfa, tal como codificacion de entropfa de particion de intervalos de probabilidad (PIPE) o codificadores relacionados. La codificacion aritmetica es una forma de codificacion de entropfa utilizada en muchos algoritmos de compresion que tiene una alta eficiencia de codificacion, ya que es capaz de asignar sfmbolos a palabras de codigo de longitud no enteros. Un ejemplo de un algoritmo de codificacion aritmetica es la codificacion aritmetica binaria adaptativa segun el contexto (CABAC) utilizada en H.264/AVC.
En general, la codificacion de sfmbolos de datos usando CABAC implica una o mas de las siguientes etapas:
(1) Binarizacion: Si un sfmbolo que ha de codificarse no es de valor binario, se asigna a una secuencia de los llamados "bins". Cada bin puede tener un valor de "0" o "1".
(2) Asignacion de contexto: Cada bin (en modo regular) se asigna a un contexto. Un modelo de contexto determina como se calcula un contexto para un contenedor determinado, basandose en la informacion disponible para el bin, tal como los valores de los sfmbolos previamente codificados o numero de bin.
(3) Codificacion bin: Los bins estan codificados con un codificador aritmetico. Para codificar un bin, el codificador aritmetico 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 esta representada por un valor entero llamado un "estado de contexto". Cada contexto tiene un estado, y por lo tanto el estado (es decir, la probabilidad estimada) es el mismo para bins asignados a un contexto, y difiere entre contextos.
(4) Actualizacion de estado: La probabilidad (estado) para un contexto seleccionado se actualiza basandose en el valor real codificado del bin (por ejemplo, si el valor bin era "1", la probabilidad de “1s” se incrementa).
Cabe senalar que la codificacion de entropfa de particion de intervalos de probabilidad (PIPE) utiliza principios similares a los de la codificacion aritmetica, y por lo tanto puede tambien utilizar las tecnicas de esta divulgacion.
CABAC en H.264/AVC y HEVC utiliza estados, y cada estado esta implfcitamente relacionado con una probabilidad. Hay variantes de CABAC, en las que una probabilidad de un simbolo ("0" o "1") se utiliza directamente, es decir, la probabilidad (o una version de numero entero de la misma) es el estado. Por ejemplo, tales variantes de CABAC se describen en "Descripcion de la propuesta de codificacion de tecnologia por parte de France Telecom, NTT, NTT DoCoMo, Panasonic y Technicolor" JCTVC-A114, primera Reunion JCT-VC, Dresden, DE, Abril 2010, denominada "JCTVC-A114" en lo sucesivo, y A. Alshin y E. Alshina, "Multi-parameter probability update for CABAC", JCTVC-F254, sexta Reunion JCT-VC, Torino, IT, julio 2011, denominado "JCTVC-F254" en lo sucesivo.
En esta divulgacion, se propone una reduccion en el numero de binarizaciones y/o contextos utilizados en CABAC. En particular, esta divulgacion propone tecnicas que pueden disminuir los contextos de numeros utilizados en CABAC hasta 56. Con 56 menos contextos, los resultados experimentales demuestran 0,00%, 0,01% y -0,13% cambios en las tasas de distorsion de bits (BD) en condiciones de prueba de alta eficiencia intra- solamente, de acceso aleatorio y de bajo retardo, respectivamente. Como tal, una reduccion en el numero de contextos necesarios reduce las necesidades de almacenamiento en el codificador y en el decodificador sin afectar materialmente a la eficiencia de codificacion.
En esta divulgacion, se propone una reduccion en el numero de contextos CABAC utilizados 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 insignificantes cambios de eficiencia de codificacion. Las reducciones de contexto propuestas para los elementos de sintaxis anteriores se pueden utilizar solos o en cualquier fusion.
El elemento de sintaxis pred_type incluye un modo de prediccion (pred_mode_flag) y un tipo de particion (part_mode) para cada unidad de codificacion. El elemento de sintaxis pred_mode_flag igual a 0 especifica que la unidad de codificacion actual esta codificada en modo inter-prediccion. El elemento de sintaxis pred_mode_flag igual a 1 especifica que la unidad de codificacion actual se codifica en el modo de intra-prediccion. El elemento de sintaxis part_mode especifica el modo de particion de la unidad de codificacion actual.
El elemento de sintaxis merge_idx [x0] [y0] especifica el indice candidato de fusion de la lista de candidatos de fusion, donde x0, y0 especifican la ubicacion (x0, y0) de la muestra luminancia superior izquierda del bloque de prediccion considerado en relacion con la muestra luminancia superior izquierda de la imagen. Cuando merge_idx[x0] [y0] no esta presente, se considera que es igual a 0. Una lista de candidatos de fusion es una lista de las unidades de codificacion adyacente a una de las unidades actuales, de la cual se puede copiar la informacion de movimiento.
El elemento de sintaxis inter_pred_flag[x0] [y0] especifica si se utiliza uni-prediccion, o bi-prediccion para la unidad de prediccion actual. Los indices de matriz x0, y0 especifican la ubicacion (x0, y0) de la muestra luminancia superior izquierda del bloque de prediccion considerado en relacion con la muestra luminancia superior izquierda de la imagen.
El elemento de sintaxis red_idx_lx se refiere a la imagen de referencia especifica dentro de una lista de imagenes de referencia.
Los elementos de sintaxis cbf_cb, cbf_cr indican si o no el croma (Cb y Cr, respectivamente) transforman bloques que contienen coeficientes de transformacion distintos de cero. El elemento de sintaxis cbf_cb[x0] [y0] [trafoDepth] igual a 1 especifica que el bloque de transformacion Cb contiene uno o mas niveles de coeficientes de la transformada que no son iguales a 0. El indice de matriz x0, y0 especifica la ubicacion (x0, y0) de la muestra luminancia superior izquierda del bloque de transformacion considerado en relacion con la muestra luminancia superior izquierda de la imagen. El indice de matriz trafoDepth especifica el nivel de subdivision actual de una unidad de codificacion en bloques para transformar la codificacion. El indice de matriz trafoDepth es igual a 0 para los bloques que corresponden a las unidades de codificacion. Cuando cbf_cb[x0] [y0] [trafoDepth] no esta presente y el modo de prediccion no es intra-prediccion, el valor de cbf_cb[x0] [y0] [trafoDepth] se considera que es igual a 0.
El elemento de sintaxis cbf_cr[x0] [y0] [trafoDepth] igual a 1 especifica que el bloque de transformacion Cr contiene uno o mas niveles de coeficientes de la transformada que no son iguales a 0. El indice de matriz x0, y0 especifica la ubicacion (x0, y0) de la muestra luminancia superior izquierda del bloque de transformacion considerado en relacion con la muestra luminancia superior izquierda de la imagen. El indice de matriz trafoDepth especifica el nivel de subdivision actual de una unidad de codificacion en bloques con el fin de transformar la codificacion. El indice de matriz trafoDepth es igual a 0 para los bloques que corresponden a las unidades de codificacion. Cuando cbf_cr [x0] [y0] [trafoDepth] no esta presente y el modo de prediccion no es intra-prediccion, el valor de cbf_cr [x0] [y0] [trafodepth] se considera que es igual a 0.
El elemento de sintaxis coeff_abs_level_greater1_flag especifica la posicion de exploracion n si hay que transformar los niveles de coeficiente superior a 1. Cuando coeff_abs_level_greater1_flag[n] no esta presente, se considera que es igual a 0.
El elemento de sintaxis coeff_abs_level_greater2_flag especifica para la posicion de exploracion n si hay transformar niveles de coeficiente mayor que 2. Cuando coeff_abs_level_greater2_flag[n] no esta presente, se considera que es
igual a 0.
En una propuesta de HEVC, diferentes binarizaciones en el elemento de sintaxis pred_type se utilizan en porciones P y B como se muestra en la Tabla 1. Esta divulgacion propone el uso de las mismas binarizaciones para porciones P y B. Los ejemplos se muestran en las Tablas 2-4. La Tabla 5 muestra el impacto en el rendimiento de codificacion de la porcion P en condiciones de ensayo comunes (por ejemplo, vease F. Bossen, "Common test conditions and software reference configurations" JCTVC-F900).
Como puede verse en la Tabla 1, LAS porciones I (por ejemplo, porciones que solo incluyen bloques intrapredichos), incluyen dos tipos de prediccion diferentes (pred_type). Una cadena de bin (binarizacion) se utiliza para un bloque intra-predicho con un tipo de particion 2N x 2N, y otra cadena bin se utiliza para un bloque intra-predicho con un tipo de particion N x N. Como se muestra en la Tabla 1, la cadena bin utilizada para las porciones I no depende del tamano de la CU.
Para las porciones P y B, en la Tabla 1, diferentes cadenas bin se utilizan para cada valor de pred_type. Una vez mas, el valor de pred_type depende del modo de prediccion (inter-prediccion o intra-prediccion) y del tipo de particion utilizada. Para porciones P y B, la cadena bin real utilizada depende tambien del tamano de la CU que esta codificada y si esta habilitada o no la inter-prediccion para un tamano de bloque 4x4.
La primera columna bajo la cadena bin se aplica para la situacion en la que la funcion logantmica de tamano de CU de la CU que se esta codificando es mayor que la funcion logantmica del tamano mmimo permisible de la CU. Segun un ejemplo en HEVC, la primera columna de cadenas bin se utiliza si cLog2CUSize > Log2MinCUsize. La funcion logantmica se utiliza para crear un numero mas pequeno, de manera que puede ser utilizado un mdice consecutivo mas pequeno.
Si la funcion logantmica del tamano de CU de la CU se esta codificando es equivalente a la funcion logantmica del tamano mmimo CU permisible (es decir, cLog2CUSize = = Log2MinCUSize), entonces una de las columnas 2 y 3 en virtud de la cadena bin en la Tabla 1 se utiliza para seleccionar la binarizacion. La columna 2 se utiliza cuando la funcion logantmica del de tamano CU de la CU que se esta codificando es equivalente a 3 y la inter-prediccion para una CU 4 x 4 no esta habilitada (es decir, cLog2CUSize = = 3 &&!inter_4x4_enabled_flag). La columna 3 se utiliza cuando la funcion logantmica del tamano de CU de la CU se esta codificando es mayor que 3 o cuando la interprediccion para una CU 4 x 4 esta activada (es decir, cLog2CUSize> 3 | | inter_4x4_enabled_flag).
La tabla 2 a continuacion muestra un ejemplo de binarizaciones donde las porciones P y B utilizan las mismas cadenas bin, de acuerdo con uno o mas ejemplos descritos en esta divulgacion. Como se muestra en la Tabla 2, las porciones P utilizan las mismas binarizaciones utilizadas para los segmentos B en la Tabla 1. De esta manera, no es necesario almacenar y utilizar un conjunto separado de contextos para ambas porciones P y B. Como tal, el numero total de contextos necesario para codificar el pred_type se reduce al elemento de sintaxis. Por otra parte, solo una asignacion (en lugar de dos) entre la logica de cadena bin (que se muestra en las columnas (1) - (3)) y la cadena bin actual necesita almacenarse.
Tabla 2 Binarizacion ara red t e en un eem lo de la divul acion
La Tabla 3 a continuacion muestra otro ejemplo de una binarizacion para pred_type. En este ejemplo, las porciones B utilizan las mismos binarizaciones que las porciones P en la Tabla 1. La Tabla 4 a continuacion muestra un ejemplo adicional de porciones P y porciones B utilizando las mismos binarizaciones. Las Tablas 2-4 solo estan hechas para mostrar ejemplos de binarizaciones compartidas entre porciones P y B. Cualquier binarizacion o regla de binarizacion puede utilizarse, de manera que los elementos de sintaxis pred_type para ambas porciones P y B comparten las mismas binarizaciones.
El codificador 20 de video y el decodificador 30 de video pueden almacenar las mismas reglas de asignacion y tablas de asignacion (por ejemplo, como se muestra en las Tablas 2-4) para su uso con porciones P y B. La codificacion y decodificacion CABAC puede aplicarse al elemento de sintaxis pred_type utilizando estas asignaciones.
De esta manera, el codificador de video 20 puede estar configurado para determinar un primera tipo de prediccion para un bloque de datos de video en una porcion P, que representa el primer tipo de prediccion como un elemento de sintaxis de tipo de prediccion de porcion P, determinar un segundo tipo de prediccion para un bloque de los datos de video en una porcion B, representar el segundo tipo de prediccion como un elemento de sintaxis de tipo de prediccion de porcion B, determinar una binarizacion de porcion P para el elemento de sintaxis de tipo de prediccion de porcion P, determinar una binarizacion de porcion B para el elemento de sintaxis de tipo de prediccion de porcion B, en el que el elemento de sintaxis de tipo de prediccion de porcion P y el elemento de sintaxis de tipo de prediccion de porcion B se determinan usando la misma logica de binarizacion y codificar los datos de video basado en las binarizaciones del elemento de sintaxis de tipo de prediccion de porcion P y el elemento de sintaxis de prediccion de porcion B.
El codificador 20 de video puede estar configurado ademas para binarizar el elemento de sintaxis de tipo de prediccion de porcion P con la binarizacion de porcion P decidida, binarizar el elemento de sintaxis de tipo de prediccion de porcion B con la binarizacion de porcion B decidida, aplicar una codificacion aritmetica binaria adaptativa segun el contexto (CABAC) al elemento de sintaxis tipo de prediccion binarizada de porcion P, y aplicar codificacion aritmetica binaria adaptativa segun el contexto (CABAC) al elemento de sintaxis de tipo de prediccion binarizada de porcion B.
Del mismo modo, el decodificador 30 de video puede estar configurado para asignar un elemento de sintaxis de tipo de prediccion binarizada de porcion Pa un tipo de prediccion usando una asignacion de binarizacion para un bloque de datos de video en una porcion P, asignar un elemento de sintaxis de tipo de prediccion binarizada de porcion B a una tipo de prediccion utilizando la misma asignacion de binarizacion para un bloque de datos de video en una porcion B, y decodificar los datos de video en base a los tipos de prediccion asignados.
El decodificador de video 30 puede estar configurado ademas para recibir un elemento de sintaxis de tipo de prediccion de porcion P codificado aritmetico binario adaptativo segun el contexto que indica el tipo de prediccion para el bloque de datos de video en una porcion P, recibir un elemento de sintaxis de tipo de prediccion de porcion B codificado aritmetico binario adaptativo segun el contexto que indica el tipo de prediccion para el bloque de datos de video en una porcion B, decodificar el elemento de sintaxis de tipo de prediccion de porcion P para producir el elemento de sintaxis de tipo de prediccion porcion P binarizado, y decodificar el elemento de sintaxis tipo de prediccion de porcion B para producir el elemento de sintaxis de tipo de prediccion de porcion B binarizado.
T l . Bin riz i n r r n r m l l iv l i n
T l 4.Bin riz i n r r n r m l l iv l i n
La Tabla 5 a continuacion muestra el rendimiento de codificacion utilizando la binarizacion compartida para las porciones P y B que se muestran en la Tabla 2. Como puede verse en la Tabla 5, poca o ninguna eficacia de la codificacion se pierde usando las binarizaciones compartidos. P HE (alta eficiencia) de bajo retardo es una condicion de prueba comun para binarizaciones de porciones predichas (P) unidireccionalmente. Las clases A-E representan diferentes resoluciones de marco. La clase A es una resolucion de 2k x 4k. La clase B es una resolucion de 1920 x 1080. La clase C es una resolucion WVGA. La clase D es una resolucion WQVGA. La clase E es una resolucion 720p. Un cambio de porcentaje de 0,1 a 0.2 en la condicion de prueba P HE de bajo retardo se considera generalmente que es insignificante.
Tabla 5. Rendimiento de codificacion para binarizacion unificada en pred_type
Opcionalmente, las mismas binarizaciones (no limitadas a las Tablas 2-4) para el tipo de prediccion (incluye el tamano de prediccion y/o el modo de prediccion) se pueden compartir en dos y mas tipos diferentes de porciones de inter-prediccion. Las porciones de inter-prediccion pueden incluir, pero no estan limitadas a:
a. Porcion P: porcion que solo soporta prediccion de movimiento unidireccional
b. Porcion B: porcion que soporta prediccion de movimiento unidireccional y bidireccional
c. En codificacion de video escalable: la capa de mejora puede compartir las mismas binarizaciones con la capa base.
d. En la codificacion de multiples vistas: vistas diferentes pueden compartir las mismas binarizaciones.
Cuando la particion asimetrica esta habilitada, cuatro contextos, igualmente divididos en dos conjuntos de contexto, se utilizan para CABAC en los dos ultimos bins para la senalizacion del elemento de sintaxis pred_type para particiones asimetricas (es decir, PART_2NxnU, PART_2NxnD, PART_nLx2N, PART_nRx2N). Dependiendo de si la particion se divide a lo largo de la direccion horizontal o de la direccion vertical, se aplica un conjunto de contextos. El segundo al ultimo bin (es decir, el bin de tipo de particion; part_mode) especifica si la CU actual tiene particiones simetricas o particiones asimetricas. El ultimo bin (es decir, el de tamano de la particion bin; part_mode) especifica si
el tamano de la primera particion es un cuarto o tres cuartos del tamano de la CU. La Tabla 6 muestra un ejemplo de los contextos del segundo al ultimo (tipo de particion) y el ultimo (tamano de particion) para el elemento de sintaxis pred_type.
Tabla 6. Contextos de los Ultimos Dos compartimientos del Pred_TypeSintaxis Elemento
Esta divulgacion se propone utilizar un contexto para el segundo bin al ultimo (es decir, el tipo de particion bin) y utilizar el modo de derivacion en el ultimo bin (es decir, el tamano de particion bin). Como resultado, el numero de contextos se redujo de 4 a 1. La Tabla 7 muestra un ejemplo de contexto utilizado de acuerdo con este ejemplo de la divulgacion. La Tabla 8 muestra el rendimiento de codificacion asociado con las modificaciones propuestas. El acceso aleatorio de alta eficiencia (HE) es una condicion de prueba con los marcos de acceso aleatorio. B HE de bajo retardo es una condicion de prueba que permite la prediccion bidireccional.
Tabla 7. Contextos de los ultimos dos bins del elemento de sintaxis Pred_Type de acuerdo con un ejemplo de esta divulgacion.
[ ]
Tabla 8. Rendimiento de codificacion del procedimiento propuesto para pred_type
De esta manera, de acuerdo con este ejemplo, el codificador 20 de video puede estar configurado para determinar un tipo de particion para un modo de prediccion para un bloque de datos de video, codificar un tipo de particion bin de un elemento de sintaxis de tipo de prediccion para el bloque de datos de video usando la codificacion aritmetica binaria adaptativa segun el contexto con un solo contexto, en el que el contexto individual es el mismo para cualquier tipo de particion, y codificar un tamano de particion bin de una sintaxis de tipo de prediccion para el bloque de datos de video usando la codificacion aritmetica binaria adaptativa segun el contexto en el modo de derivacion.
Del mismo modo, segun este ejemplo, el decodificador 30 de video puede estar configurado para recibir un elemento de sintaxis de tipo de prediccion para un bloque de datos de video que ha sido codificado usando la codificacion aritmetica binaria adaptativa segun el contexto (CABAC), incluyendo el elemento de sintaxis de tipo de prediccion un tipo de particion bin que representa un tipo de particion y un tamano de particion bin que representa un tamano de particion, decodificar el tipo de particion bin del elemento de sintaxis de tipo de prediccion usando la codificacion aritmetica binaria adaptativa segun el contexto con un solo contexto, en el que el contexto individual es el mismo para cualquier tipo de particion, y la decodificacion del tamano de la particion bin de la sintaxis de tipo de prediccion para un bloque de datos de video utilizando la codificacion aritmetica binaria adaptativa segun el contexto en modo de derivacion.
En otro ejemplo, cuando la codificacion de un tipo de particion de rectangulo, el modo de derivacion o un unico contexto se puede utilizar para el bin que indica si el modo de particion es PART_nLx2N o PART_nRx2N, o si el modo es PART_2NxnU, PART_2NxnD. El uso del modo de derivacion o un solo contexto es aplicable debido a que la probabilidad de cualquiera de los modos de particion que se utiliza es cercana al 50%. Tambien opcionalmente, el modo de derivacion o un unico contexto se pueden utilizar para el bin que indica si el modo es una particion simetrica o una particion asimetrica.
El siguiente ejemplo de la divulgacion se refiere a la senalizacion en un modo de "fusion" de inter-prediccion. En el modo de fusion, el codificador indica a un decodificador, a traves de flujo de bits de senalizacion de la sintaxis de prediccion, copiar un vector de movimiento, el mdice de referencia (la identificacion de una imagen de referencia, en
una lista de imagenes de referencia dado, al que apunta el vector de movimiento) y la direccion de prediccion de movimiento (que identifica la lista de imagenes de referencia (Lista 0 o Lista 1), es decir, en terminos de si el marco de referencia temporal precede o sigue al marco actualmente) a partir de un vector de movimiento candidato seleccionado para una porcion circulante de la imagen que se va a codificar. Esto se logra mediante la senalizacion en la corriente de bits de un mdice en una lista de vectores de movimiento candidato que identifica el vector de movimiento candidato seleccionado (es decir, el predictor del vector de movimiento espacial en particular (MVP) candidato o candidato MVP temporal).
Por lo tanto, para el modo de fusion, la sintaxis de prediccion puede incluir una senal que identifica el modo (en este caso modo "fusion") y un mdice (merge_idx) que identifica el vector de movimiento candidato seleccionado. En algunos casos, el vector de movimiento candidato estara en una parte causal en referencia a la parte actual. Es decir, el vector de movimiento candidato ya habra sido decodificado por el decodificador. Como tal, el decodificador ya ha recibido y/o determinado el vector de movimiento, el mdice de referencia, y la direccion de prediccion de movimiento para la parte causal. Como tal, el decodificador puede simplemente recuperar el vector de movimiento, el mdice de referencia, y la direccion de prediccion de movimiento asociada con la parte causal de la memoria y copiar estos valores como la informacion de movimiento para la porcion actual. Para reconstruir un bloque en el modo de fusion, el decodificador obtiene el bloque predictivo utilizando la informacion de movimiento derivada de la porcion actual, y anade los datos residuales al bloque predictivo para reconstruir el bloque codificado.
En HM4.0, uno de los cinco candidatos de fusion se senaliza cuando la corriente de la PU esta en el modo de fusion. Se utiliza un codigo unario truncado para representar el elemento de sintaxis merge_idx. En una propuesta de HEVC, para CABAC, cada bin utiliza un contexto. Esta divulgacion propone el uso de un contexto repetidamente en los cuatro bins, como se muestra en la Tabla 9.
Tabla 9. Contextos para los ultimos dos bins del elemento de sintaxis Pred_Type
La Tabla 10 muestra el rendimiento de codificacion asociado con este ejemplo.
Tabla 10. Rendimiento de codificacion del procedimiento propuesto para merg_idx
Opcionalmente, mas de un contexto puede ser utilizado en la codificacion de mdice de fusion, con algunos bins que comparten el mismo contexto y algunos bins utilizando otros contextos. Como un ejemplo, solo 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 tambien este compartiendo el contexto.
Como otro ejemplo, supongamos que el numero total de bins del mdice de fusion es N (el primer bin es bin0, el ultimo es bin bin N-1). Y umbrales thresi, u = 1, ..., y, se utilizan para determinar el contexto de comparticion en la codificacion del mdice de fusion. En este ejemplo, las siguientes reglas indican como se comparten los contextos entre bins:
1. 0 < Y < N (hay menos umbrales que bins)
2. thresi <thres+i
3. 0 < thresi
4. thresi = N
5. binjcompartira un contexto donde i = {thresy,..., thresi+i-1}
Sobre la base de estas reglas, el procedimiento anterior en el que un contexto se utiliza repetidamente en los cuatro bins, se puede ver como un caso en que N = 4, Y = 1, thresi = 4.Por lo tanto, bin 0 a bin 3 estan compartiendo el mismo contexto.
Otro ejemplo incluye el establecimiento de 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.
La senal inter-prediccion (inter_pred_flag) especifica si uni-prediccion, o bi-prediccion se utiliza para la PU actual. En algunos ejemplos, el mdice de contexto para la senal inter-prediccion es igual a la profundidad de CU actual. Como hay cuatro posibles profundidades de CU (0 a 3), hay cuatro contextos posibles para la codificacion de inter_pred_flag.
Esta divulgacion propone que el mdice de contexto utilizado para seleccionar un contexto para la codificacion de la inter_pred_flag sea igual a la profundidad de la CU actual (por ejemplo, la descomposicion del nivel del arbol cuadruple para CUs), pero tiene un tope de 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 mdice de contexto puede ser igual a la profundidad maxima de la CU menos la profundidad de la CU actual y un tope de un umbral elegido. Alternativamente, una tabla de asignacion predefinida se puede disenar para seleccionar el mdice de contexto por una profundidad de CU dada. La tabla de asignacion se puede implementar como un conjunto de logica. Como resultado, 3 contextos se usan para codificar el elemento de sintaxis inter_pred_flag.
La Tabla 11 muestra el rendimiento de codificacion cuando se cambia la tabla de inicializacion, pero el numero de contextos no se cambia. La Tabla 12 muestra el rendimiento de codificacion de la tecnica propuesta que reduce el numero de contextos de 4 a 3.
Tabla 11. Rendimiento de codificacion de HM4.0 con inicializacion CABAC en inter_pred_flag.
Tabla 12. Rendimiento de codificacion de la tecnica de reduccion de contexto propuesta en inter_pred_flag. El mdice del marco de referencia (re fjd x jx ) se senaliza mediante el uso de un codigo unario truncado con respecto al marco de referencia activo en la lista asociada (por ejemplo, Lista 0 o Lista 1). Tres contextos se utilizan para codificar el mdice de marco de referencia. Un contexto para bin 0, un contexto para bin 1, y un contexto se utiliza en el resto de los bins. La Tabla 13 muestra un ejemplo de las asignaciones de contexto para los bins del codigo unario para ref_idx_lx.
Tabla 13. Asignacion de contexto para contenedores de ref_idx_lx
Esta divulgacion propone utilizar dos contextos para codificar el codigo unario para re fjd x jx ; un contexto en el bin 0 y otro contexto en el resto de bins. La Tabla 14 muestra un ejemplo de asignacion de contexto para los bins del codigo unario para ref_idx_lx segun este ejemplo de la divulgacion. La Tabla 15 muestra el rendimiento de codificacion asociado a las modificaciones propuestas.
Tabla 14. Asignacion de contexto para contenedores de ref_idx_lx
Tabla 15. Rendimiento de codificacion del metodo propuesto en ref_idx_lx.
Para los elementos de sintaxis de indicador de bloque croma codificado (cbf_cby cbf_cr), dos conjuntos de contexto diferentes (5 contextos en cada conjunto de contextos) se utilizan para CABAC. El mdice del contexto real utilizado en cada conjunto es igual a la profundidad de transformacion actual asociada con el indicador de bloque croma codificada que esta siendo codificada. La Tabla 16 muestra los conjuntos de contexto para los indicadores de bloque codificados croma cbf_cb y cbf_cr.
Tabla 16. Conjuntos de contexto para cbf_cb y cbf_cr
Esta divulgacion propone que cbf_cb y cbf_cr compartan un conjunto de contextos. El mdice del contexto real utilizado en cada conjunto todavfa puede ser igual a la profundidad de transformacion actual asociada con el indicador de bloque croma codificado que esta siendo codificada. La Tabla 17 muestra los conjuntos de contexto para los indicadores de bloques codificados croma cbf_cb y cbf_cr de acuerdo con los ejemplos de esta divulgacion. La Tabla 18 muestra el rendimiento de codificacion asociado de las modificaciones propuestas.
Tabla 17. Conjuntos de contexto para cbf_cb y cbf_cr segun ejemplos de esta divulgacion
Tabla 18. Rendimiento de codificacion del metodo propuesto en cbf_cb y cbf_cr.
De esta manera, de acuerdo con este ejemplo, el codificador 20 de video y el decodificador 30 de video pueden configurarse para codificar un indicador de bloque croma codificado de Cb para un bloque de datos de video usando la codificacion aritmetica binaria adaptativa segun el contexto (CABAC), en el que CABAC utiliza un conjunto de contextos que incluye uno o mas contextos, y el codigo del indicador de bloque croma codificado Cr utiliza CABAC,
en el que CABAC utiliza el mismo conjunto de contextos que el indicador de bloque Cb croma codificado. El codificador 20 de video y el decodificador 30 de video pueden estar configurados ademas para seleccionar un contexto a partir de los uno o mas contextos basados en una profundidad de transformacion de una unidad de transformacion asociada con el bloque de datos de video.
En una propuesta de HEVC, hay doce conjuntos de contexto, para coeff_abs_level_greater1_flag y coeff_abs_level_greater2_flag. El coeff_abs_level_greater1_flag indica si un coeficiente de transformacion tiene un valor absoluto mayor que 1. El coeff_abs_level_greater2_flag indica si un coeficiente de transformacion tiene un valor absoluto mayor que 2. Los conjuntos de contexto son igualmente asignados para la luminancia y el componente croma, es decir, 6 conjuntos de contexto para luminancia y 6 contextos de croma. Cada conjunto de contextos consta de 5 contextos. El mdice del conjunto de contextos, ctxSet, se selecciona basandose en el coeff_abs_level_greater1_flag anterior. Para coeff_abs_level_greater1_flag, el mdice del contexto dentro de un contexto establecido, greaterICtx, se determina con base a los que se arrastran en un maximo de 4. El mdice de contexto se puede representarse como:
ctxldx level greater 1 = (ctxSet * 5 ) Min( 4, greaterICtx ) (1)
Para coeff_abs_level_greater2_flag, el mdice del contexto dentro de un contexto establecido, greater2Ctx, se basa en el numero de coeff_abs_level_greater1_flag sea de 1 a un maximo de 4. El mdice de contexto se puede representar como:
ctxldx level greater2 = ( ctxSet * 5 ) Min( 4, greater2Ctx ) (2)
greaterICtx basado en el numero de los coeficientes significativos y el numero de los coeficientes que son mayores que 1. Por otro lado, greater2Ctx basado en el numero de los coeficientes que son mayores que 1.
En algunos ejemplos, un numero diferente de contextos puede ser utilizado en diferentes conjuntos de contexto, incluyendo, por ejemplo:
1. Los conjuntos de contexto para el nivel superior a 1 o para el nivel superior a 2 podrian tener diferente numero de contextos. Por ejemplo, el conjunto de contextos 0 y 3 podrian tener 5 contextos y el resto de los conjuntos de contexto podrian tener 2 contextos.
2. Los conjuntos de contexto para el coeficiente de luminancia pueden tener diferente numero de contextos en comparacion con el conjunto de contextos para el componente croma. Por ejemplo, el conjunto de contextos 0 para luminancia puede tener 5 contextos y el conjunto de contextos 0 para croma podria tener 4 contextos. 3. El conjunto de contextos para el nivel superior a 1 puede tener diferente numero de contextos que el conjunto de contextos para el nivel superior a 2. Por ejemplo, el conjunto de contextos 0 para el nivel mayor que 1 podria tener 5 contextos y el conjunto de contextos 0 para el nivel superior a 2 solo puede tener 3 contextos.
En otros ejemplos, un numero diferente para los conjuntos de contexto puede ser utilizado para la codification mayor que 1 o mayor que 2, incluyendo, por ejemplo:
1. Los conjuntos de contexto para el coeficiente de luminancia pueden tener diferente numero de conjuntos de contexto que los conjuntos de contexto utilizados para el componente croman. Por ejemplo, la luminancia podria utilizar 6 contextos y el croma podria utilizar 4 contextos.
2. Los conjuntos de contexto mayores que 1 pueden tener diferente numero de conjuntos de contexto que los conjuntos de contexto utilizados superiores a 2. Por ejemplo, el mayor que 1 podria utilizar 6 contextos y el mayor que 2 podria utilizar 4 contextos.
Opcionalmente, una metrica se utiliza para determinar que contexto se utiliza en un conjunto de contextos y el rango de valor de la metrica es mayor que el numero de los contextos en el conjunto de contextos. En uno de tales aspectos, un contexto podria estar asociado a uno o mas valores de la metrica. El intercambio de contextos se limita preferiblemente a valores continuos. Por ejemplo, si el valor de la metrica es y. y = 2 se asocia al contexto 3, e y = 1 e y = 4 tambien pueden asociarse con el contexto 3. Sin embargo, si y = 3 esta asociada con el contexto 4, y = 4 no se puede asociar al contexto 3.
Por ejemplo, para coeff_abs_level_greater1_flag, los conjuntos de contexto 0 y 3 tienen 5 contextos y los conjuntos de contexto 1, 2, 4 y 5 tienen 2 contextos. Para coeff_abs_level_greater2_flag, los conjuntos de contexto 0, 1 y 2 tienen 5 contextos y los conjuntos de contexto 3, 4 y 5 con 2 contextos. Se puede representar como:
ctx ld x leve lgrea ter l = (ctxSet * 5 ) Min( Thres_ greater 1 , greaterICtx) (3)
Si ctxSet = 0 o ctxSet = 3, Thres_greater1 = 4;
de lo contrario, Thres_greater1 = 1.
ctxldx_level_greater2 = ( ctxSet * 5 ) Min(Thres_ greater2, greater2Ctx ) (4)
si ctxSet < 3, Thres_greater2 = 4;
de lo contrario, Thres_ greater2 = 1
Thres_greater1 y Thres_greater2 pueden elegirse de manera diferente en funcion de las siguientes situaciones:
1. Componente de luminancia o croma
2. Los conjuntos de contexto
Como otro ejemplo, para coeff_abs_level_greater1_flag, los conjuntos de contexto 0 y 3 tienen 5 contextos y los conjuntos de contexto 1, 2, 4 y 5 tienen 3 contextos. Para coeff_abs_level_greater2_flag, los conjuntos de contexto 0,1 y 2 tienen 5 contextos y los conjuntos de contexto 3, 4 y 5 tienen 2 contextos. Se puede representar como:
ctxldx level greaterl = (ctxSet * 5 ) greaterlCtx_mapped (3) ctxldx_level_greater2 = ( ctxSet * 5 ) greater2Ctx_mapped (4) En estos ejemplos, el mapa puede ser como se muestra en las Tablas 19 y 20:
Tabla 19
Tabla 20
Las tablas de inicializacion CABAC de coeff_abs_level_greater_flag y coeff_abs_level_greater2_flag tambien se modifican para los conjuntos de contexto para Thres_greater1 o Thres_greater2 igual a 1. Las modificaciones mueven la inicializacion del quinto contexto con antelacion para la inicializacion del segundo contexto. Este procedimiento propuesto reduce el numero de los contextos de 120 a 78.
Tabla 21. Rendimiento de codification del metodo propuesto en coeff_abs_level_greater1_flag y coeff_abs_level_greater2_flag.
La Tabla 21 muestra el numero de los contextos para todos los elementos de sintaxis mencionados en los apartados anteriores. La reduction total es de 56 contextos.
La figura 2 es un diagrama de bloques que ilustra un codificador 20 de video de ejemplo que puede aplicar las tecnicas descritas en esta divulgacion. El codificador 20 de video puede realizar intra e inter-codificacion de bloques de video dentro de porciones de video. La intra-codificacion se basa en la prediccion espacial para reducir o eliminar la redundancia espacial en el video dentro de un marco de video o imagen dado. La inter-codificacion se basa en la prediccion temporal para reducir o eliminar la redundancia temporal en video dentro de los marcos adyacentes o imagenes de una secuencia de video. El intra-modo (modo I) puede referirse a cualquiera de los diversos modos de compresion basados espaciales. Los inter-modos, tales como la prediccion unidireccional (modo P) o bi-prediccion (modo B), pueden referirse a cualquiera de los diversos modos de compresion basados temporales.
En el ejemplo de la figura. 2, el codificador 20 de video incluye una unidad de particion 35, una unidad de prediccion 41, una memoria de imagenes de referencia 64, un sumador 50, una unidad de transformacion 52, una unidad de cuantificacion 54, y una unidad de codificacion de entropfa 56. La unidad de prediccion 41 incluye una unidad de estimacion de movimiento 42, una unidad de compensacion de movimiento 44, y la unidad de prediccion intra 46. Para bloquear la reconstruccion de video, el codificador 20 de video tambien incluye una unidad de cuantificacion inversa 58, una unidad transformada inversa 60, y un sumador 62. Un filtro de desbloqueo (que no se muestra en la figura 2) puede incluirse tambien para filtrar lfmites de bloque para eliminar artefactos de formacion de bloques de video reconstruido. Si se desea, el filtro de desbloqueo sena tipicamente un filtrado del salida del sumador 62. Filtros de bucle adicionales (en lazo o bucle de mensaje) tambien se pueden usar ademas del filtro de desbloqueo.
Como se muestra en la figura 2, el codificador 20 de video recibe datos de video, y la unidad de particion 35 parte los datos en bloques de video. Esta particion puede incluir particion en porciones, segmentos, u otras unidades mas grandes, como tambien particiones de bloques de video, por ejemplo, de acuerdo con una estructura de arbol cuadruple de LCUs y CUs. El codificador 20 de video ilustra en general los componentes que codifican los bloques de video dentro de una porcion video a codificar. La porcion puede dividirse en multiples bloques de video (y posiblemente en conjuntos de bloques de video que se hace referencia como segmentos). La unidad de prediccion 41 puede seleccionar uno de una pluralidad de posibles modos de codificacion, tal como uno de una pluralidad de modos de codificacion intra o una de una pluralidad de modos de codificacion inter, para el bloque de video actual basandose en los resultados de errores (por ejemplo, velocidad de codificacion y nivel de distorsion). La unidad de prediccion 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 prediccion intra 46 dentro de la unidad de prediccion 41 puede llevar a cabo la codificacion intrapredictiva del bloque de video actual en relacion con uno o mas bloques vecinos en el mismo marco o porcion como el bloque actual a codificar para proporcionar una compresion espacial. La unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 dentro de la unidad de prediccion 41 realizan codificacion interpredictiva del bloque de video actual en relacion con uno o mas bloques de prediccion en una o mas imagenes de referencia para proporcionar una compresion temporal.
La unidad de estimacion de movimiento 42 puede estar configurada para determinar el modo de inter-prediccion para una porcion de video de acuerdo con un patron predeterminado para una secuencia de video. El patron predeterminado puede designar porciones de video en la secuencia como porciones P, porciones B o porciones GPB (generalizada P/B). La unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 pueden estar muy integradas, pero se ilustran por separado para fines conceptuales. La estimacion de movimiento, realizada por la unidad de estimacion de movimiento 42, es el proceso de generacion de vectores de movimiento, que estiman el movimiento de los bloques de video. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de video dentro de un marco actual de video o una imagen con relacion a un bloque de prediccion dentro de una imagen de referencia.
Un bloque de prediccion es un bloque que se encuentra que se asemeja mucho a la PU del bloque de video a codificar en terminos de diferencia de pfxeles, que puede determinarse por la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrada (SSD), u otras metricas de diferencia. En algunos ejemplos, el codificador 20 de video puede calcular los valores de las posiciones de pfxeles sub-enteros de imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. Por ejemplo, el codificador 20 de video puede interpolar valores de las posiciones de un cuarto de pixel, las posiciones de un octavo de pixel, u otras posiciones de pixel fraccionarias de la imagen de referencia. Por lo tanto, la unidad de estimacion de movimiento 42 puede realizar una busqueda de
movimiento en relacion con las posiciones de pixel completas y las posiciones de p^ xel fraccionadas y emitir un vector de movimiento con una precision de pixel fraccionario.
La unidad de estimacion de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video en una porcion inter-codificada mediante la comparacion de la posicion de la PU con la posicion de un bloque de prediccion de una imagen de referencia. La imagen de referencia se puede seleccionar de una primera lista de imagenes de referencia (Lista 0) o una segunda lista de imagenes de referencia (Lista 1), cada una de las cuales identifica una o mas imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. La unidad de estimacion de movimiento 42 envfa el vector de movimiento calculado a la unidad de codificacion de entropfa 56 y a la unidad de compensacion de movimiento 44.
La compensacion de movimiento, realizada por la unidad de compensacion de movimiento 44, puede implicar ir a buscar o generar el bloque de prediccion basado en el vector de movimiento determinado por la estimacion de movimiento, posiblemente realizando interpolaciones con precision de sub-pfxel. Al recibir el vector de movimiento de la PU del bloque de video actual, la unidad de compensacion de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imagenes de referencia. El codificador 20 de video forma un bloque de video residual restando los valores de pixel del bloque de prediccion de los valores de pixel del bloque de video actual que se esta codificando, formando valores de diferencia de pixel. Los valores de diferencia de pixel forman datos residuales para el bloque, y pueden incluir componentes de diferencia de luminancia y croma. El sumador 50 representa el componente o componentes que realizan esta operacion de resta. La unidad de compensacion de movimiento 44 tambien puede generar elementos sintacticos asociados con los bloques de video y la porcion de video para su uso por parte del decodificador 30 de video en la decodificacion de los bloques de video de la porcion de video.
La unidad de intra-prediccion 46 puede intra-predecir un bloque actual, como una alternativa a la inter-prediccion realizada por la unidad de compensacion de movimiento 42 y la unidad de estimacion de movimiento 44, tal como se describe anteriormente. En particular, la unidad de intra-prediccion 46 puede determinar un modo de intra-prediccion que se usar para codificar un bloque actual. En algunos ejemplos, la unidad de intra-prediccion 46 puede codificar un bloque actual usando varios modos de intra-prediccion, por ejemplo, durante pasadas de codificacion separadas, la unidad de intra-prediccion 46 (o unidad de seleccion de modo 40, en algunos ejemplos) puede seleccionar un modo de intra-prediccion apropiado a utilizar a partir de los modos probados. Por ejemplo, la unidad de intra-prediccion 46 puede calcular los valores de tasa de distorsion utilizando un analisis de tasa de distorsion para los distintos modos de intra-prediccion probados, y seleccionar el modo de intra-prediccion que tiene las mejores caractensticas de la tasa de distorsion entre los modos probados. El analisis de la tasa de distorsion generalmente determina una cantidad de distorsion (o errores) entre un bloque codificado y un bloque original sin codificar, que fue codificado para producir el bloque codificado, asf como una tasa de bits (es decir, un numero de bits) utilizado para producir el bloque codificado. La unidad de intra-prediccion 46 puede calcular los coeficientes de las distorsiones y las tasas de los distintos bloques codificados para determinar que modo de intra-prediccion exhibe el mejor valor de tasa de distorsion para el bloque.
En cualquier caso, despues de seleccionar un modo de intra-prediccion para un bloque, la unidad de intra-prediccion 46 puede proporcionar informacion indicativa del modo de intra-prediccion seleccionado para el bloque a la unidad de codificacion de entropfa 56. La unidad de codificacion de entropfa 56 puede codificar la informacion que indica el modo de intra-prediccion seleccionado de acuerdo con las tecnicas de esta divulgacion. El codificador 20 de video puede incluir en los datos de configuracion el flujo de bits de transmision, que puede incluir una pluralidad de tablas de mdice del modo de intra-prediccion y una pluralidad de tablas de mdice de modo modificadas de intra-prediccion (tambien denominadas tablas de asignacion de palabras de codigo), definiciones de contextos de codificacion para varios bloques, e indicaciones de un modo mas probable de intra-prediccion, una tabla de mdice de modo intraprediccion, y una tabla de mdice de modo intra-prediccion modificada a utilizar para cada uno de los contextos.
Despues la unidad de prediccion 41 genera el bloque de prediccion para el bloque de video actual, ya sea a traves de inter-prediccion o intra-prediccion, el codificador 20 de video forma un bloque de video residual restando el bloque de prediccion del bloque de video actual. Los datos de video residuales en el bloque residual se pueden incluir en una o mas unidades de formacion y se aplican a la unidad de transformacion 52. La unidad de transformacion 52 transforma los datos de video residuales en coeficientes de transformacion residuales utilizando una transformacion, tal como una transformada de coseno discreta (DCT) o una transformacion conceptualmente similar. La unidad de transformacion 52 puede convertir los datos de video residuales de un dominio de pixel a un dominio de la transformada, tal como un dominio de frecuencia.
La unidad de transformacion 52 podra enviar los coeficientes resultantes de transformacion a la unidad de cuantificacion 54. La unidad de cuantificacion 54 cuantifica los coeficientes de transformacion para reducir aun mas la velocidad de bits. El proceso de cuantificacion puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. El grado de cuantificacion puede modificarse mediante el ajuste de un parametro de cuantificacion. En algunos ejemplos, la unidad de cuantificacion 54 puede entonces realizar una exploracion de la matriz incluyendo los coeficientes de transformacion cuantificados. Alternativamente, la unidad de codificacion de entropfa 56 puede realizar la exploracion. Como un ejemplo, las tecnicas de codificacion descritas en esta divulgacion se pueden llevar a cabo total o parcialmente mediante la unidad de codificacion de entropfa 56. Sin embargo, los aspectos de esta
divulgacion no son tan limitados. Por ejemplo, las tecnicas de codificacion descritas en esta divulgacion pueden realizarse mediante un componente del codificador 20 de v^deo que no se muestra en la figura 2, tal como un procesador o cualquier otro componente. En algunos ejemplos, las tecnicas de codificacion de esta divulgacion pueden realizarse mediante una de las otras unidades o modulos ilustrados en la figura 2. En todavfa otros ejemplos, las tecnicas de codificacion de esta divulgacion pueden realizarse mediante una fusion de unidades y modulos del codificador 20 de video. De esta manera, el codificador 20 de video puede estar configurado para realizar las tecnicas de ejemplo descritas en esta divulgacion.
Despues de la cuantificacion, la entropfa en la unidad de codificacion de entropfa 56 codifica los coeficientes de transformacion cuantificados. Por ejemplo, la unidad de codificacion de entropfa 56 puede llevar a cabo la codificacion de longitud variable adaptativa segun el contexto (CAVLC), la codificacion aritmetica binaria adaptativa segun el contexto (CABAC), basada codificacion aritmetica binaria adaptativa segun el contexto basada en la sintaxis (SBAC), la codificacion entropfa de particion del intervalo de probabilidad (PIPE) u otra metodologfa o tecnica de codificacion de entropfa. Despues de la codificacion de entropfa mediante la unidad de codificacion de entropfa 56, el flujo de bits codificado puede ser transmitido al decodificador 30 de video, o archivarse para su posterior transmision o recuperacion por parte del decodificador de video 30. La unidad de codificacion de entropfa 56 tambien puede codificar la entropfa de los vectores de movimiento y los demas elementos de sintaxis para la porcion de video actual que se esta codificando.
En un ejemplo de la divulgacion, la unidad de codificacion de entropfa 56 puede estar configurada para determinar un primera tipo de prediccion para un bloque de datos de video en una porcion P, que representa el primer tipo de prediccion como un elemento de sintaxis del tipo de prediccion de porcion P, determinar una segunda prediccion escribir para un bloque de datos de video en una porcion B, representar el segundo tipo de prediccion como un elemento de sintaxis de tipo de prediccion de porcion B, determinar una binarizacion de porcion P para el elemento de sintaxis del tipo de prediccion de porcion P, determinar una binarizacion de porcion B para el elemento de sintaxis del tipo de prediccion de porcion B, en el que el elemento de sintaxis del tipo de prediccion de porcion P y el elemento de sintaxis del tipo de prediccion de porcion B se determinan usando la misma logica de binarizacion y codificar los datos de video en base a los binarizaciones del elemento de sintaxis del tipo de prediccion de porcion P y el elemento de sintaxis de prediccion de porcion B.
En otro ejemplo de la divulgacion, la unidad de codificacion de entropfa 56 puede estar configurada para determinar un tipo de particion para un modo de prediccion para un bloque de datos de video, codificar un bin de tipo de particion de un elemento de sintaxis del tipo de prediccion para el bloque de datos de video usando codificacion aritmetica binaria adaptativa segun el contexto con un solo contexto, en el que el contexto individual es el mismo para cualquier tipo de particion, y codifican un bin de tamano de la particion de un elemento de sintaxis del tipo de prediccion para el bloque de datos de video usando la codificacion aritmetica binaria adaptativa al contexto en el modo de derivacion.
En otro ejemplo de la divulgacion, la unidad de codificacion de entropfa 56 puede estar configurada para codificar un indicador de bloque codificado Cb croma para un bloque de datos de video usando la codificacion aritmetica binaria adaptativa segun el contexto (CABAC), en la que CABAC utiliza un conjunto de contextos que incluye uno o mas contextos, y el codigo de una senal bloque croma codificada Cr utilizando CABAC, en CABAC utiliza el mismo conjunto de contextos que el indicador de bloque Cb croma codificado. El codificador 20 de video y el decodificador 30 de video pueden estar configurados ademas para seleccionar un contexto a partir de los uno o mas contextos basados en una profundidad de transformacion de una unidad de transformacion asociada con el bloque de datos de video.
La unidad de cuantificacion inversa 58 y la unidad transformacion inversa 60 aplican cuantificacion inversa y transformacion inversa, respectivamente, para reconstruir el bloque residual en el dominio de pixel para su uso posterior como un bloque de referencia de una imagen de referencia. La unidad de compensacion de movimiento 44 puede calcular un bloque de referencia anadiendo el bloque residual a un bloque de prediccion de una de las imagenes de referencia dentro de una de las listas de imagenes de referencia. La unidad de compensacion de movimiento 44 tambien puede aplicar uno o mas filtros de interpolacion al bloque residual reconstruido para calcular los valores de pixel sub-enteros para su uso en la estimacion de movimiento. El sumador 62 anade al bloque residual reconstruido el bloque de prediccion con compensacion de movimiento producido por unidad de compensacion de movimiento 44 para producir un bloque de referencia para su almacenamiento en la memoria de imagenes de referencia 64. El bloque de referencia puede ser utilizado por la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 como un bloque de referencia para inter-predecir un bloque en un marco de video o imagen posterior.
La figura 3 es un diagrama de bloques que ilustra un decodificador 30 de video de ejemplo que pueden aplicar las tecnicas descritas en esta divulgacion. En el ejemplo de la figura 3, el decodificador 30 de video incluye una unidad de decodificacion de entropfa 80, una unidad de prediccion 81, una unidad de cuantificacion inversa 86, una unidad de transformacion inversa 88, un sumador 90, y una memoria de imagenes de referencia 92. La unidad de prediccion 81 incluye la unidad de compensacion de movimiento 82 y la unidad de intra-prediccion 84. El decodificador 30 de video puede, en algunos ejemplos, llevar a cabo una pasada de decodificacion generalmente redproca a la pasada de codificacion descrita con respecto al codificador 20 de video de la figura 2.
Durante el proceso de decodificacion, el decodificador 30 de v^deo recibe un flujo de bits de v^deo codificado que representa los bloques de video de una seccion de video codificada y elementos sintacticos asociados del codificador 20 de video. La unidad de decodificacion de entropfa 80 del decodificador 30 de video decodifica el flujo de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de decodificacion de entropfa 80 envfa los vectores de movimiento y otros elementos de sintaxis a la unidad de prediccion 81. El decodificador de video 30 puede recibir los elementos de sintaxis en el nivel de porcion de video y/o el nivel de bloque de video.
Como un ejemplo, las tecnicas de codificacion descritas en esta divulgacion se pueden llevar a cabo total o parcialmente por la unidad de decodificacion de entropfa 80. Sin embargo, los aspectos de esta divulgacion no son tan limitados. Por ejemplo, las tecnicas de codificacion descritas en esta divulgacion pueden realizarse mediante un componente del decodificador 30 de video que no se muestra en la figura 3, tal como un procesador o cualquier otro componente. En algunos ejemplos, las tecnicas de codificacion de esta divulgacion pueden realizarse mediante una de las otras unidades o modulos ilustrados en la figura 3. En todavfa otros ejemplos, las tecnicas de codificacion de esta divulgacion pueden realizarse mediante una fusion de unidades y modulos del decodificador 30 de video. De esta manera, el decodificador 30 de video puede estar configurado para realizar las tecnicas de ejemplo descritas en esta divulgacion.
En un ejemplo de la divulgacion, la unidad de decodificacion de entropfa 80 puede estar configurada para asignar un elemento de sintaxis de tipo de prediccion de porcion P binarizado a un tipo de prediccion usando una asignacion de binarizacion para un bloque de datos de video en una porcion P, asignar una elemento de sintaxis de tipo de prediccion de porcion B binarizado a un tipo de prediccion utilizando la misma asignacion de binarizacion para un bloque de datos de video en una porcion B, y decodificar los datos de video en base a los tipos de prediccion asignados.
En un ejemplo de la divulgacion, la unidad de decodificacion de entropfa 80 puede estar configurada para recibir un elemento de sintaxis de tipo de prediccion para un bloque de datos de video que ha sido codificado usando la codificacion aritmetica binaria adaptativa segun el contexto (CABAC), el elemento de sintaxis de tipo de prediccion que incluye un tipo de particion bin que representa un tipo de particion y un bin de tamano de la particion que representa un tamano de particion, decodificar el bin de tipo de particion del elemento de sintaxis de tipo de prediccion usando el contexto de la aritmetica binaria adaptativa de codificacion con un solo contexto, en el que el contexto individual es el mismo para cualquier tipo de particion, y decodificar el tamano de particion bin de la sintaxis de tipo de prediccion para un bloque de datos de video utilizando codificacion aritmetica binaria adaptativa segun el contexto en el modo de derivacion.
En otro ejemplo de la divulgacion, la unidad de decodificacion de entropfa 80 puede estar configurada para codificar un indicador de bloque codificado Cb croma para un bloque de datos de video usando la codificacion aritmetica binaria adaptativa segun el contexto (CABAC), en el que CABAC utiliza un conjunto de contextos que incluye uno o mas contextos, y el codigo de una senal bloque croma codificada Cr utiliza CABAC, en el que CABAC utiliza el mismo conjunto de contextos como el indicador de bloque Cb croma codificado. El codificador 20 de video y el decodificador 30 de video pueden estar configurados ademas para seleccionar un contexto a partir de los uno o mas contextos basados en una profundidad de transformacion de una unidad de transformacion asociada con el bloque de datos de video.
Cuando la porcion de video se codifica como porcion intra-codificada (I), la unidad de intra-prediccion 84 de la unidad de prediccion 81 puede generar datos de prediccion para un bloque de video de la porcion de video actual, basado en un modo de intra-prediccion senalado y los datos de los bloques previamente decodificados del marco o imagen actual. Cuando el marco de video se codifica como una porcion inter-codificada, la unidad de compensacion de movimiento 82 de la unidad de prediccion 81 produce bloques de prediccion para un bloque de video de la porcion de video actual basado en los vectores de movimiento y otros elementos de sintaxis (es decir, B, P o GPB) recibidos desde la unidad de decodificacion de entropfa 80. Los bloques de prediccion se pueden producir a partir de una de las imagenes de referencia dentro de una de las listas de imagenes de referencia. El decodificador 30 de video puede construir las listas de marco de referencia, la lista 0 y la lista 1, utilizando tecnicas de construccion predeterminadas basadas en imagenes de referencia almacenadas en la memoria de imagenes de referencia 92.
La unidad de compensacion de movimiento 82 determina la informacion de prediccion para un bloque de video de la seccion de video actual analizando los vectores de movimiento y otros elementos de sintaxis, y utiliza la informacion de prediccion para producir los bloques de prediccion para el bloque de video actual que esta siendo decodificado. Por ejemplo, la unidad de compensacion de movimiento 82 utiliza algunos de los elementos de sintaxis recibidos para determinar un modo de prediccion (por ejemplo, intra o inter-prediccion) utilizado para codificar los bloques de video de la seccion de video, un tipo de sector de inter-prediccion (por ejemplo, porcion B, porcion P, o una porcion GPB), la informacion de construccion de una o mas de las listas de imagenes de referencia para la division, los vectores de movimiento para cada bloque de video inter-codificada de la condicion de la porcion, inter-prediccion para cada bloque de video inter-codificada de la porcion, y otra informacion para decodificar los bloques de video en la seccion de video actual.
La unidad de compensacion de movimiento 82 tambien puede realizar la interpolacion basada en filtros de
interpolacion. La unidad de compensacion de movimiento 82 puede utilizar filtros de interpolacion y usarlos mediante el codificador de v^deo 20 durante la codificacion de los bloques de video para calcular los valores interpolados de sub-pfxeles enteros de bloques de referencia. En este caso, la unidad de compensacion de movimiento 82 puede determinar los filtros de interpolacion utilizados por el codificador de video 20 a partir de los elementos de sintaxis recibidos y utilizar los filtros de interpolacion para producir bloques de prediccion.
La unidad de cuantificacion inversa 86 cuantifica inversas, es decir, de-cuantifica, los coeficientes de transformacion cuantificados previstos en el flujo de bits y decodificados por la unidad de decodificacion de entropfa 80. El proceso de cuantificacion inversa puede incluir el uso de un parametro de cuantificacion calculado por el codificador de video 20 para cada bloque de video en la porcion de video para determinar un grado de cuantificacion y, asimismo, un grado de cuantificacion inversa que se debe aplicar. La unidad de transformacion inversa 88 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada inversa de numero entero, o una inversa conceptualmente similar al proceso de transformacion, los coeficientes de transformacion para producir bloques residuales en el dominio de pfxeles.
Despues de que la unidad de compensacion de movimiento 82 genera el bloque de prediccion para el bloque de video actual basado en los vectores de movimiento y otros elementos de sintaxis, el decodificador 30 de video forma un bloque de video decodificado sumando los bloques residuales de la unidad de transformacion inversa 88 con los bloques de prediccion correspondientes generados por la unidad de compensacion de movimiento 82. El sumador 90 representa el componente o componentes que realizan esta operacion de suma. Si se desea, un filtro de desbloqueo tambien puede aplicarse para filtrar los bloques decodificados para eliminar artefactos de formacion de los bloques. Otros filtros de bucle (ya sea en el bucle de codificacion o despues del bucle de codificacion) tambien pueden ser utilizados para suavizar las transiciones de pfxeles, o mejorar de otra manera la calidad del video. Los bloques de video decodificados en un marco o cuadro dado se almacenan en la memoria de imagenes de referencia 92, que almacena imagenes de referencia utilizadas para la compensacion de movimiento posterior. La memoria de imagenes de referencia 92 tambien almacena video decodificado para su presentacion posterior en un dispositivo de visualizacion, como el dispositivo de visualizacion 32 de la figura 1.
La figura 6 es un diagrama de flujo que ilustra un procedimiento de codificacion de video de ejemplo de la divulgacion. El procedimiento de la figura 6 puede implementarse mediante el codificador 20 de video. El codificador 20 de video puede estar configurado para determinar un primer tipo de prediccion para un bloque de datos de video en una porcion P (602), y para representar el primer tipo de prediccion como un elemento de sintaxis de tipo de prediccion de porcion P (604). El codificador 20 de video puede estar configurado ademas para determinar un segundo tipo de prediccion para un bloque de datos de video en una porcion B (606), y para representar el segundo tipo de prediccion como un elemento de sintaxis de tipo de prediccion de porcion B (608). El elemento de sintaxis de tipo de prediccion de porcion P y el elemento de sintaxis de tipo de prediccion de porcion B especifican un modo de prediccion y un tipo de particion. El modo de prediccion puede incluir uno de entre la prediccion y la intra-prediccion. El tipo de particion puede incluir una de las particiones simetricas y particiones asimetricas.
El codificador 20 de video puede estar configurado ademas para determinar una binarizacion de porcion P para el elemento de sintaxis de tipo de prediccion de porcion P (610), y para determinar una binarizacion de porcion B para el elemento de sintaxis de tipo prediccion de porcion B, en el que el elemento de sintaxis de tipo de prediccion de porcion P y el elemento de sintaxis de tipo de prediccion de porcion B se determinan usando la misma logica de binarizacion (612). El codificador de video 20 puede entonces codificar los datos de video basado en las binarizaciones del elemento de sintaxis de tipo de prediccion de porcion P y el elemento de sintaxis de tipo de prediccion de porcion B (614).
La codificacion de los datos de video puede comprender binarizar el elemento de sintaxis de tipo de prediccion de porcion P con las binarizaciones de porcion P determinadas, binarizar el elemento de sintaxis de tipo de prediccion de porcion B con las binarizaciones de porcion B decididas, aplicar la codificacion aritmetica binaria adaptativa segun el contexto (CABAC) al elemento de sintaxis de tipo de prediccion de porcion P binarizado, y la codificacion aritmetica binaria adaptativa segun el contexto (CABAC) solicitada al elemento de sintaxis de tipo de prediccion de porcion B binarizado.
La figura 7 es un diagrama de flujo que ilustra un procedimiento de decodificacion de video de ejemplo de la divulgacion. El procedimiento de la figura 7 puede implementarse mediante el decodificador 30 de video. El decodificador 30 de video puede estar configurado para recibir un elemento de sintaxis de tipo de prediccion de porcion P de la codificacion aritmetica binaria adaptativa segun el contexto que indica el tipo de prediccion para el bloque de datos de video en una porcion P (702), y para recibir un elemento de sintaxis de tipo de prediccion de porcion B de codificacion aritmetica binaria adaptativa segun el contexto que indica el tipo de prediccion para el bloque de datos de video en una porcion B (704). El elemento de sintaxis de tipo de prediccion de porcion P y el elemento de sintaxis de tipo de prediccion de porcion B especifican un modo de prediccion y un tipo de particion. El modo de prediccion puede incluir una de entre la prediccion y la intra-prediccion. El tipo de particion puede incluir una de las particiones simetricas y particiones asimetricas.
El decodificador de video 30 puede estar configurado ademas para decodificar el elemento sintaxis de tipo de prediccion de porcion P para producir un elemento de sintaxis de tipo de prediccion de porcion P binarizado (706), y
para decodificar el elemento de sintaxis de tipo de prediccion de porcion B para producir un elemento de sintaxis de tipo de prediccion de porcion B (708) binarizado. El decodificador 30 de video puede estar configurado ademas para asignar el elemento de sintaxis de tipo de prediccion de porcion P binarizado a un tipo de prediccion usando una asignacion de binarizacion para un bloque de datos de video en una porcion P (710), y para asignar el elemento de sintaxis de tipo de prediccion de porcion B binarizado a un tipo de prediccion utilizando la misma asignacion de binarizacion para un bloque de datos de video en una porcion B (712). El decodificador 30 de video puede entonces descifrar los datos de video en base a los tipos de prediccion asignados (714).
La figura 8 es un diagrama de flujo que ilustra un procedimiento de codificacion de video de ejemplo de la divulgacion. El procedimiento de la figura 8 puede implementarse mediante el codificador de video 20. El codificador 20 de video puede estar configurado para determinar un tipo de particion para un modo de prediccion para un bloque de datos de video (802) y para codificar un marco de un elemento de sintaxis de tipo de particion del tipo de prediccion para el bloque de datos de video utilizando codificacion aritmetica binaria adaptativa segun el contexto (CABAC) con un solo contexto (804). El unico contexto es el mismo para cualquier tipo de particion. En un ejemplo, el tipo de particion es una particion asimetrica y el bin de tipo de particion indica si la particion asimetrica se divide verticalmente o se divide horizontalmente. Por ejemplo, el tamano de la particion bin indica si una primera particion es una cuarta parte de un tamano del bloque de datos de video o si la primera particion es tres cuartas partes de la dimension del bloque de datos de video.
El codificador 20 de video puede estar configurado ademas para codificar un bin de tamano de la particion del elemento de sintaxis de tipo de prediccion para el bloque de datos de video utilizando CABAC en el modo de derivacion (806).
La figura 9 es un diagrama de flujo que ilustra un procedimiento de decodificacion video de ejemplo de la divulgacion. El procedimiento de la figura 9 puede implementarse mediante el decodificador 30 de video. El decodificador 30 de video puede estar configurado para recibir un elemento de sintaxis de tipo de prediccion para un bloque de datos de video que se ha codificado utilizando codificacion aritmetica binaria adaptativa segun el contexto (CABAC), incluyendo el elemento de sintaxis de tipo de prediccion una particion de tipo bin que representa un tipo de particion y un bin de tamano de la particion que representa un tamano de la particion (902). En un ejemplo, el tipo de particion es una particion asimetrica y el bin de tipo de particion indica si la particion asimetrica se divide verticalmente o se divide horizontalmente. Por ejemplo, el tamano de la particion bin indica si una primera particion es una cuarta parte de un tamano del bloque de datos de video o si la primera particion es tres cuartas partes de la dimension del bloque de datos de video.
El decodificador 30 de video puede estar configurado ademas para decodificar el bin de tipo de particion del elemento de sintaxis de tipo de prediccion utilizando CABAC con un solo contexto, en el que el contexto individual es el mismo para cualquier tipo de particion (904), y para decodificar el tamano de particion bin del elemento de sintaxis tipo de prediccion usando CABAC en el modo de derivacion (906).
La figura 10 es un diagrama de flujo que ilustra un procedimiento de codificacion video de ejemplo de la divulgacion. El procedimiento de la figura 10 puede implementarse mediante cualquiera del codificador 20 de video o el decodificador de video. Para los fines de la figura 10, al codificador 20 de video y al decodificador 30 de video se hara referencia a, colectivamente, como un codificador de video. De acuerdo con las tecnicas de la figura 10, un codificador de video puede configurarse para codificar un indicador de bloque croma codificado Cb para un bloque de datos de video usando la codificacion aritmetica binaria adaptativa segun el contexto (CABAC), en el que la codificacion del indicador de bloque croma codificado Cb comprende la utilizacion de un conjunto de contextos que incluye uno o mas contextos como parte de la CABAC (1002), y para codificar un indicador de bloque croma codificado Cr usando CABAC, en el que la codificacion del indicador de bloque croma codificado Cr comprende utilizar el mismo conjunto de contextos que el indicador de bloque croma codificado Cb como parte de la CABAC (1004). En un ejemplo, el conjunto de contextos incluye 5 contextos.
En un ejemplo opcional de la divulgacion, un codificador de video puede estar configurado ademas para seleccionar un contexto a partir de los uno o mas contextos basados en una profundidad de transformacion de una unidad de transformacion asociada con el bloque de datos de video (1006).
Cuando funciona como un codificador de video, un codificador de video puede estar configurado ademas para indicar el indicador de bloque croma Cb codificado que se codifica en un flujo de bits de video codificado, y para senalar el indicador de bloque croma codificado Cr que se codifica en el flujo de bits de video codificado. Cuando funciona como un decodificador de video, un codificador de video puede estar configurado ademas para recibir el indicador de bloque croma codificado Cb que se codifica en un flujo de bits de video codificado, y para recibir el indicador de bloque croma codificado Cr que se codifica en el flujo de bits de video codificado.
En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware, o cualquier combinacion de los mismos. Si se implementan en software, las funciones pueden almacenarse o transmitirse a traves de un medio legible por ordenador, como una o mas instrucciones o codigo, y ejecutarse mediante una unidad de procesamiento basado en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legible por ordenador, lo que corresponde a un medio tangible tal como un medio de
almacenamiento de datos, o medios de comunicacion incluyendo cualquier medio que facilite la transferencia de un programa informatico de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicacion. De esta manera, los medios legibles por ordenador generalmente pueden corresponder a (1) medios de almacenamiento tangibles legibles por ordenador que no son transitorios o (2) un medio de comunicacion tal como una onda portadora o senal. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se puede acceder mediante uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para la aplicacion de las tecnicas descritas en esta divulgacion. Un producto de programa de ordenador puede incluir un medio legible por ordenador.
A modo de ejemplo, y no de limitacion, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco optico, almacenamiento en disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash, o cualquier otro medio que se pueda utilizar para almacenar el codigo del programa deseado en forma de instrucciones o estructuras de datos y que se puede acceder mediante un ordenador. Ademas, cualquier conexion se denomina correctamente un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten de una pagina web, servidor u otra fuente remota mediante un cable coaxial, cable de fibra optica, par trenzado, lmea de abonado digital (DSL), o tecnologfas inalambricas como infrarrojos, radio y microondas, entonces el cable coaxial, cable de fibra optica, par trenzado, DSL o tecnologfas inalambricas como infrarrojos, radio y microondas estan incluidos en la definicion de los medios. Debe entenderse, sin embargo, que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales, u otros medios transitorios, sino que se dirigen a medios de almacenamiento tangibles no transitorios. Disco, como se usa aqrn, incluye disco compacto (CD), discos laser, discos opticos, discos versatiles digitales (DVD), y discos Blu-ray, donde los discos generalmente reproducen datos magneticamente, mientras que los discos reproducen los datos opticamente con laser. Combinaciones de los anteriores tambien deben incluirse dentro del alcance de medios legibles por ordenador. Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores digitales de senal (DSP), microprocesadores de proposito general, circuitos integrados de aplicacion espedfica (ASIC), matrices de campo logicas programables (FPGA), u otra circuitena equivalente integrada o logica discreta. Por consiguiente, el termino "procesador", como se usa en el presente documento puede referirse a cualquiera de la estructura anterior o cualquier otra estructura adecuada para la aplicacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en este documento puede proporcionarse dentro de modulos de hardware y/o software dedicados configurados para codificar y decodificar, o incorporada en un codec combinado. Ademas, las tecnicas podnan aplicarse plenamente en uno o mas circuitos o elementos logicos.
Las tecnicas de esta divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un telefono inalambrico, un circuito integrado (IC) o un conjunto de circuitos integrados (por ejemplo, un conjunto de chips). Varios componentes, modulos o unidades se describen en esta divulgacion para enfatizar los aspectos funcionales de los dispositivos configurados para realizar las tecnicas descritas, pero no necesariamente requieren la realizacion de diferentes unidades de hardware. Mas bien, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de codificacion de hardware o proporcionarse mediante una coleccion de unidades de hardware interoperativas, incluyendo uno o mas procesadores, como se describio anteriormente, en conjuncion con el software y/o firmware adecuado.
Se han descrito Varios ejemplos. Estos y otros ejemplos estan dentro del alcance de las siguientes reivindicaciones.
Claims (11)
1. Un procedimiento de codificacion de datos de v^deo que comprende:
seleccionar (1006) un contexto de uno o mas contextos basados en una profundidad de transformacion de una unidad de transformacion asociada con un bloque de datos de video a codificar, en el que la profundidad de transformacion especifica el nivel de subdivision actual de una unidad de codificacion en bloques con el proposito de codificacion de transformacion;
codificar (1002) un indicador de bloque codificado croma Cb para el bloque de datos de video usando la codificacion aritmetica binaria adaptativa al contexto, CABAC y el contexto seleccionado, en el que la codificacion del indicador de bloque codificado croma Cb comprende el uso de un conjunto de contextos que incluye uno o mas contextos; y
codificar (1004) un indicador de bloque codificado croma Cr usando CABAC, en el que la codificacion del indicador de bloque codificado croma Cr comprende utilizar el mismo conjunto de contextos como el indicador de bloque codificado croma Cb.
2. Un procedimiento de decodificacion de datos de video que comprende:
seleccionar (1006) un contexto de uno o mas contextos basados en una profundidad de transformacion de una unidad de transformacion asociada con un bloque de datos de video a decodificar, en el que la profundidad de transformacion especifica el nivel de subdivision actual de una unidad de codificacion en bloques con el proposito de codificacion de transformacion;
decodificar (1002) un indicador de bloque codificado croma Cb para el bloque de datos de video usando la codificacion aritmetica binaria adaptativa al contexto, CABAC y el contexto seleccionado, en el que la decodificacion del indicador de bloque codificado croma Cb comprende el uso de un conjunto de contextos que incluye el uno o mas contextos; y
decodificar (1004) un indicador de bloque codificado croma Cr usando CABAC, en el que la decodificacion del indicador de bloque codificado croma Cr comprende utilizar el mismo conjunto de contextos que el indicador de bloque codificado croma Cb.
3. El procedimiento de la reivindicacion 1 o 2, en el que el conjunto de contextos incluye 5 contextos.
4. El procedimiento de la reivindicacion 1, que comprende ademas:
senalizar el indicador de bloque codificado croma Cb en un flujo de bits de video codificado; y
senalizar el indicador de bloque codificado croma Cr en el flujo de bits de video codificado.
5. El procedimiento de la reivindicacion 2, que comprende ademas:
recibir el indicador de bloque codificado croma Cb en un flujo de bits de video codificado; y
recibir el indicador de bloque codificado croma Cr en el flujo de bits de video codificado.
6. Un aparato (20) configurado para codificar datos de video que comprende:
medios (56) para seleccionar un contexto de uno o mas contextos basados en una profundidad de transformacion de una unidad de transformacion asociada con un bloque de datos de video a codificar, en el que la profundidad de transformacion especifica el nivel de subdivision actual de una unidad de codificacion en bloques con el proposito de codificacion de transformacion;
medios (56) para la codificacion de un indicador de bloque codificado croma Cb para el bloque de datos de video usando la codificacion aritmetica binaria adaptativa al contexto, CABAC, y el contexto seleccionado, en el que la codificacion del indicador de bloque codificado croma Cb comprende el uso de un conjunto contextos que incluye uno o mas contextos; y
medios (56) para la codificacion de un indicador de bloque codificado croma Cr usando CABAC, en el que la codificacion del indicador de bloque codificado croma Cr comprende utilizar el mismo conjunto de contextos que el indicador de bloque codificado croma Cb.
7. Un aparato (30) configurado para decodificar datos de video que comprende:
medios (80) para seleccionar un contexto de uno o mas contextos basados en una profundidad de transformacion de una unidad de transformacion asociada con un bloque de datos de video a decodificar, en el que la profundidad de transformacion especifica el nivel de subdivision actual de una unidad de codificacion en bloques con el proposito de codificacion de transformacion;
medios (80) para decodificar un indicador de bloque codificado croma Cb para el bloque de datos de video usando la codificacion aritmetica binaria adaptativa al contexto, CABAC, y el contexto seleccionado, en el que la decodificacion del indicador de bloque codificado croma Cb comprende el uso de un conjunto de contextos que incluye uno o mas contextos; y
medios (80) para decodificar un indicador de bloque codificado croma Cr usando CABAC, en el que la decodificacion del indicador de bloque codificado croma Cr comprende utilizar el mismo conjunto de contextos
que el indicador de bloque codificado croma Cb.
8. El aparato de la reivindicacion 6 o 7, en el que el conjunto de contextos incluye 5 contextos.
9. El aparato de la reivindicacion 6, que comprende ademas:
medios para la senalizacion del indicador de bloque codificado croma Cb en un flujo de bits de video codificado; y
medios para la senalizacion del indicador de bloque codificado croma Cr en el flujo de bits de video codificado.
10. El aparato de la reivindicacion 7, que comprende ademas:
medios para recibir el indicador de bloque codificado croma Cb en un flujo de bits de video codificado; y medios para recibir el indicador de bloque codificado croma Cr en el flujo de bits de video codificado.
11. Un medio de almacenamiento legible por ordenador que almacena instrucciones que, al ejecutarse, originan que uno o mas procesadores configurados para codificar o decodificar datos de video efectuen el procedimiento de cualquiera de las reivindicaciones 1 a 5.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161557325P | 2011-11-08 | 2011-11-08 | |
US201161557325P | 2011-11-08 | ||
US201161561911P | 2011-11-20 | 2011-11-20 | |
US201161561911P | 2011-11-20 | ||
US13/645,330 US9288508B2 (en) | 2011-11-08 | 2012-10-04 | Context reduction for context adaptive binary arithmetic coding |
US201213645330 | 2012-10-04 | ||
PCT/US2012/059100 WO2013070355A1 (en) | 2011-11-08 | 2012-10-05 | Number of context reduction for context adaptive binary arithmetic coding |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2550803T3 ES2550803T3 (es) | 2015-11-12 |
ES2550803T9 true ES2550803T9 (es) | 2019-05-17 |
Family
ID=48223670
Family Applications (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 |
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 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
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 |
Country Status (21)
Country | Link |
---|---|
US (5) | US9288508B2 (es) |
EP (4) | EP2777160B9 (es) |
JP (3) | JP5847957B2 (es) |
KR (3) | KR101633200B1 (es) |
CN (3) | CN103988437B (es) |
AU (3) | AU2012336323B2 (es) |
BR (3) | BR112014011065B1 (es) |
CA (3) | CA2854814C (es) |
DK (2) | DK2777160T5 (es) |
ES (3) | ES2550803T3 (es) |
HK (2) | HK1198401A1 (es) |
HU (2) | HUE026070T2 (es) |
IL (7) | IL232288A (es) |
IN (3) | IN2014CN03388A (es) |
MY (4) | MY168697A (es) |
PL (2) | PL2777160T3 (es) |
PT (2) | PT2777162E (es) |
RU (1) | RU2602380C2 (es) |
SG (3) | SG11201401687XA (es) |
WO (3) | WO2013070354A1 (es) |
ZA (2) | ZA201404182B (es) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020084511A1 (en) * | 2018-10-23 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Simplified entropy coding for sub-block based motion information list |
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 |
WO2013039692A1 (en) * | 2011-09-16 | 2013-03-21 | Mediatek Singapore Pte. Ltd. | Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc |
MY164898A (en) | 2011-09-29 | 2018-01-30 | Sharp Kk | Image decoding device, image decoding method, and image encoding device |
CN103858430B (zh) | 2011-09-29 | 2017-05-03 | 夏普株式会社 | 图像解码装置、图像解码方法及图像编码装置 |
US9288508B2 (en) | 2011-11-08 | 2016-03-15 | Qualcomm Incorporated | Context reduction for context adaptive binary arithmetic coding |
KR20130050904A (ko) * | 2011-11-08 | 2013-05-16 | 삼성전자주식회사 | 비디오의 산술 부호화 방법 및 그 장치, 비디오의 산술 복호화 방법 및 그 장치 |
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 |
CA2870529C (en) * | 2012-04-15 | 2018-09-18 | Tammy Lee | Method and apparatus for determining reference images for inter prediction |
RS57336B1 (sr) * | 2012-07-02 | 2018-08-31 | Samsung Electronics Co Ltd | Postupak za entropijsko dekodiranje video zapisa |
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 |
CN110087089B (zh) * | 2013-11-27 | 2023-03-10 | 寰发股份有限公司 | 用于颜色视频数据的视频编解码方法 |
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 | 杭州海康威视数字技术股份有限公司 | 参考帧数据压缩方法及其装置 |
CN116866618A (zh) * | 2016-09-20 | 2023-10-10 | 株式会社Kt | 对视频进行解码和编码的方法和传输视频数据的方法 |
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 | 华为技术有限公司 | 信令图像编码和解码划分信息的方法和装置 |
WO2019174594A1 (en) * | 2018-03-14 | 2019-09-19 | Mediatek Inc. | Method and apparatus of optimized splitting structure for video coding |
WO2019184852A1 (en) * | 2018-03-26 | 2019-10-03 | Mediatek Inc. | Methods and apparatus for signalling coding unit partitioning of video data |
CN117119195A (zh) | 2018-03-29 | 2023-11-24 | 弗劳恩霍夫应用研究促进协会 | 变换系数块编码 |
EP3791582A1 (en) * | 2018-05-30 | 2021-03-17 | Huawei Technologies Co., Ltd. | Method and apparatus for boundary partition |
KR20240014595A (ko) | 2018-06-15 | 2024-02-01 | 엘지전자 주식회사 | Cabac에 기반한 엔트로피 코딩 방법 및 그 장치 |
CN112040247B (zh) * | 2018-09-10 | 2021-09-21 | 华为技术有限公司 | 视频解码方法、视频解码器以及计算机可读存储介质 |
US11006150B2 (en) * | 2018-09-24 | 2021-05-11 | Tencent America LLC | Method and apparatus for video coding |
KR20240049658A (ko) * | 2018-10-09 | 2024-04-16 | 삼성전자주식회사 | 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치 |
CN112997489B (zh) | 2018-11-06 | 2024-02-06 | 北京字节跳动网络技术有限公司 | 具有几何分割的帧间预测的边信息信令 |
GB2580084B (en) * | 2018-12-20 | 2022-12-28 | Canon Kk | Video coding and decoding |
CN113170166B (zh) | 2018-12-30 | 2023-06-09 | 北京字节跳动网络技术有限公司 | 具有几何分割的帧间预测在视频处理中有条件的应用 |
CN118118659A (zh) * | 2019-01-31 | 2024-05-31 | 北京字节跳动网络技术有限公司 | 记录仿射模式自适应运动矢量分辨率的上下文 |
CN113366851A (zh) | 2019-01-31 | 2021-09-07 | 北京字节跳动网络技术有限公司 | 对称运动矢量差编解码模式的快速算法 |
CN113647106B (zh) * | 2019-03-05 | 2024-08-13 | 弗劳恩霍夫应用研究促进协会 | 混合视频编码工具的用例驱动上下文模型选择 |
WO2020207502A1 (en) | 2019-04-12 | 2020-10-15 | Beijing Bytedance Network Technology Co., Ltd. | Most probable mode list construction for matrix-based intra prediction |
CN117097912A (zh) * | 2019-05-01 | 2023-11-21 | 北京字节跳动网络技术有限公司 | 基于矩阵的帧内预测的上下文编码 |
CN113924775B (zh) | 2019-05-31 | 2023-11-14 | 北京字节跳动网络技术有限公司 | 基于矩阵的帧内预测中的限制的上采样 |
US20220277491A1 (en) * | 2019-05-31 | 2022-09-01 | Electronics And Telecommunications Research Institute | Method and device for machine learning-based image compression using global context |
WO2020244610A1 (en) | 2019-06-05 | 2020-12-10 | Beijing Bytedance Network Technology Co., Ltd. | Context determination for matrix-based intra prediction |
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 | 腾讯美国有限责任公司 | 视频编解码的方法和装置 |
WO2021068923A1 (en) * | 2019-10-10 | 2021-04-15 | Beijing Bytedance Network Technology Co., Ltd. | Deblocking filtering improvements |
KR20220143857A (ko) | 2020-03-03 | 2022-10-25 | 바이트댄스 아이엔씨 | 비디오 코딩에서의 저 주파수 비-분리가능 변환 시그널링 |
US20220353547A1 (en) * | 2021-04-16 | 2022-11-03 | Tencent America LLC | Entropy coding of sign map for transform coefficients |
KR20240114281A (ko) * | 2023-01-16 | 2024-07-23 | 주식회사 케이티 | 영상 부호화/복호화 방법 및 비트스트림을 저장하는 기록 매체 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917943A (en) * | 1995-03-31 | 1999-06-29 | 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 |
CN100454339C (zh) * | 2001-09-14 | 2009-01-21 | 诺基亚有限公司 | 基于上下文的自适应二进制算术编码的方法和系统 |
JP2003319391A (ja) * | 2002-04-26 | 2003-11-07 | Sony Corp | 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム |
CN100553339C (zh) | 2002-07-15 | 2009-10-21 | 株式会社日立制作所 | 动态图像解码方法 |
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 |
DE102004059993B4 (de) | 2004-10-15 | 2006-08-31 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Erzeugen einer codierten Videosequenz unter Verwendung einer Zwischen-Schicht-Bewegungsdaten-Prädiktion sowie Computerprogramm und computerlesbares Medium |
KR100664936B1 (ko) | 2005-04-13 | 2007-01-04 | 삼성전자주식회사 | 코딩 효율이 향상된 컨텍스트 기반 적응적 산술 코딩 및디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오 코딩및 디코딩 방법과 이를 위한 장치 |
WO2006124885A2 (en) | 2005-05-12 | 2006-11-23 | Kylintv, Inc. | Codec for iptv |
KR100878827B1 (ko) | 2005-07-08 | 2009-01-14 | 엘지전자 주식회사 | 영상 신호의 코딩정보를 압축/해제하기 위해 모델링하는방법 |
RU2371881C1 (ru) | 2005-07-08 | 2009-10-27 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации |
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 |
CA2623297C (en) | 2005-09-20 | 2011-11-01 | 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 | 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法 |
WO2008118146A1 (en) | 2007-03-23 | 2008-10-02 | Thomson Licensing | Modifying a coded bitstream |
CN101641954B (zh) | 2007-03-23 | 2011-09-14 | Lg电子株式会社 | 用于解码/编码视频信号的方法和装置 |
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 | ソニー株式会社 | 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体 |
JP5278827B2 (ja) | 2007-09-06 | 2013-09-04 | 日本電気株式会社 | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、映像符号化あるいは復号プログラム |
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 | ソニー株式会社 | 算術復号装置 |
CN102187583B (zh) | 2008-08-19 | 2013-09-11 | 汤姆森特许公司 | 基于上下文的自适应二进制算术编码(cabac)的视频流兼容性 |
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 | 符号化装置及び符号化方法、並びに復号装置及び復号方法 |
US8294603B2 (en) | 2009-06-30 | 2012-10-23 | 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 |
CN103765885B (zh) * | 2011-07-11 | 2017-04-12 | 太阳专利托管公司 | 图像解码方法、图像编码方法、图像解码装置、图像编码装置及图像编解码装置 |
WO2013039692A1 (en) * | 2011-09-16 | 2013-03-21 | Mediatek Singapore Pte. Ltd. | Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc |
US9288508B2 (en) | 2011-11-08 | 2016-03-15 | Qualcomm Incorporated | Context reduction for context adaptive binary arithmetic coding |
-
2012
- 2012-10-04 US US13/645,330 patent/US9288508B2/en active Active
- 2012-10-04 US US13/645,308 patent/US9451287B2/en active Active
- 2012-10-04 US US13/645,296 patent/US9237358B2/en active Active
- 2012-10-05 PL PL12780349T patent/PL2777160T3/pl unknown
- 2012-10-05 WO PCT/US2012/059095 patent/WO2013070354A1/en active Application Filing
- 2012-10-05 MY MYPI2014701145A patent/MY168697A/en unknown
- 2012-10-05 CA CA2854814A patent/CA2854814C/en active Active
- 2012-10-05 JP JP2014541069A patent/JP5847957B2/ja active Active
- 2012-10-05 SG SG11201401687XA patent/SG11201401687XA/en unknown
- 2012-10-05 DK DK12780349.2T patent/DK2777160T5/da active
- 2012-10-05 ES ES12780349.2T patent/ES2550803T3/es active Active
- 2012-10-05 CA CA2854822A patent/CA2854822C/en active Active
- 2012-10-05 RU RU2014123373/08A patent/RU2602380C2/ru active
- 2012-10-05 SG SG11201401682YA patent/SG11201401682YA/en unknown
- 2012-10-05 MY MYPI2014701144A patent/MY166487A/en unknown
- 2012-10-05 AU AU2012336323A patent/AU2012336323B2/en active Active
- 2012-10-05 EP EP12780349.2A patent/EP2777160B9/en active Active
- 2012-10-05 ES ES12791589.0T patent/ES2549145T3/es active Active
- 2012-10-05 IN IN3388CHN2014 patent/IN2014CN03388A/en unknown
- 2012-10-05 KR KR1020147015241A patent/KR101633200B1/ko active IP Right Grant
- 2012-10-05 KR KR1020147015246A patent/KR101633201B1/ko active IP Right Grant
- 2012-10-05 CN CN201280054835.4A patent/CN103988437B/zh active Active
- 2012-10-05 MY MYPI2018700138A patent/MY189724A/en unknown
- 2012-10-05 ES ES12781526T patent/ES2698552T3/es active Active
- 2012-10-05 PT PT127915890T patent/PT2777162E/pt unknown
- 2012-10-05 DK DK12791589.0T patent/DK2777162T3/en active
- 2012-10-05 IN IN3460CHN2014 patent/IN2014CN03460A/en unknown
- 2012-10-05 AU AU2012336234A patent/AU2012336234B2/en active Active
- 2012-10-05 AU AU2012336324A patent/AU2012336324B2/en active Active
- 2012-10-05 CA CA2854830A patent/CA2854830C/en active Active
- 2012-10-05 PL PL12791589T patent/PL2777162T3/pl unknown
- 2012-10-05 WO PCT/US2012/059100 patent/WO2013070355A1/en active Application Filing
- 2012-10-05 BR BR112014011065-4A patent/BR112014011065B1/pt active IP Right Grant
- 2012-10-05 WO PCT/US2012/059092 patent/WO2013070353A1/en active Application Filing
- 2012-10-05 JP JP2014541071A patent/JP5964448B2/ja active Active
- 2012-10-05 EP EP12781526.4A patent/EP2777161B1/en active Active
- 2012-10-05 KR KR1020147015240A patent/KR101633199B1/ko active IP Right Grant
- 2012-10-05 IN IN3430CHN2014 patent/IN2014CN03430A/en unknown
- 2012-10-05 EP EP12791589.0A patent/EP2777162B1/en active Active
- 2012-10-05 CN CN201280054988.9A patent/CN104040900B/zh active Active
- 2012-10-05 BR BR112014011060-3A patent/BR112014011060B1/pt active IP Right Grant
- 2012-10-05 EP EP18196419.8A patent/EP3442126B1/en active Active
- 2012-10-05 CN CN201280054895.6A patent/CN103999367B/zh active Active
- 2012-10-05 BR BR112014011063-8A patent/BR112014011063B1/pt active IP Right Grant
- 2012-10-05 HU HUE12780349A patent/HUE026070T2/en unknown
- 2012-10-05 JP JP2014541070A patent/JP5847958B2/ja active Active
- 2012-10-05 MY MYPI2014701146A patent/MY167205A/en unknown
- 2012-10-05 SG SG11201401685UA patent/SG11201401685UA/en unknown
- 2012-10-05 PT PT127803492T patent/PT2777160E/pt unknown
- 2012-10-05 HU HUE12791589A patent/HUE027592T2/en unknown
-
2014
- 2014-04-28 IL IL232288A patent/IL232288A/en active IP Right Grant
- 2014-04-28 IL IL232286A patent/IL232286B/en active IP Right Grant
- 2014-04-28 IL IL232287A patent/IL232287A/en active IP Right Grant
- 2014-06-06 ZA ZA2014/04182A patent/ZA201404182B/en unknown
- 2014-06-06 ZA ZA2014/04184A patent/ZA201404184B/en unknown
- 2014-08-19 US US14/463,297 patent/US9172976B2/en active Active
- 2014-08-19 US US14/463,366 patent/US9277241B2/en active Active
- 2014-11-24 HK HK14111884A patent/HK1198401A1/xx unknown
- 2014-12-17 HK HK14112658.2A patent/HK1199152A1/xx unknown
-
2017
- 2017-10-30 IL IL255321A patent/IL255321B/en active IP Right Grant
-
2018
- 2018-04-09 IL IL258565A patent/IL258565B/en active IP Right Grant
-
2019
- 2019-01-07 IL IL26412219A patent/IL264122B/en active IP Right Grant
- 2019-09-24 IL IL269614A patent/IL269614B/en active IP Right Grant
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2550803T3 (es) | Reducción del número de contextos para codificación aritmética binaria adaptativa al contexto | |
ES2717679T3 (es) | Codificación progresiva de una posición de último coeficiente significativo | |
ES2700523T3 (es) | Optimización de contexto para la codificación de la posición del último coeficiente significativo | |
ES2637490T3 (es) | Grupos de coeficientes y codificación de coeficientes para barridos de coeficientes | |
ES2742027T3 (es) | Omitir binarios para la codificación de índices de referencia en la codificación de vídeo | |
ES2750957T3 (es) | Señalización de predictores de paleta con código de longitud de ejecución para codificación de vídeo | |
EP3005698B1 (en) | Residual differential pulse code modulation (dpcm) extensions and harmonization with transform skip, rotation, and scans | |
ES2865389T3 (es) | Actualización del parámetro de rice para la codificación de nivel de coeficiente en el procedimiento de codificación de vídeo | |
ES2874848T3 (es) | Restricción de unidades de predicción en segmentos b a interpredicción unidireccional | |
ES2973247T3 (es) | Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo | |
ES2750124T3 (es) | Elementos sintácticos de señalización para coeficientes de transformada para subconjuntos de una unidad de codificación a nivel de hoja | |
BR112014017364B1 (pt) | Aperfeiçoamento de rendimento para codificação de nível de coeficiente cabac |