ES2728443T3 - Inicialización de contexto basándose en memoria intermedia de imagen de decodificador - Google Patents

Inicialización de contexto basándose en memoria intermedia de imagen de decodificador Download PDF

Info

Publication number
ES2728443T3
ES2728443T3 ES12846869T ES12846869T ES2728443T3 ES 2728443 T3 ES2728443 T3 ES 2728443T3 ES 12846869 T ES12846869 T ES 12846869T ES 12846869 T ES12846869 T ES 12846869T ES 2728443 T3 ES2728443 T3 ES 2728443T3
Authority
ES
Spain
Prior art keywords
segment
entropic
bins
encoder
flag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12846869T
Other languages
English (en)
Inventor
Kiran Misra
Christopher A Segall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Velos Media International Ltd
Original Assignee
Velos Media International Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Velos Media International Ltd filed Critical Velos Media International Ltd
Application granted granted Critical
Publication of ES2728443T3 publication Critical patent/ES2728443T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Método para decodificar un fotograma de vídeo de una secuencia de vídeo, comprendiendo el método: (a) recibir un segmento; (b) recibir una bandera para determinar un método de inicialización correspondiente al segmento recibido; y (c) inicializar un contexto de codificación aritmética binaria adaptativa según el contexto asociado con el tipo de segmento del segmento recibido usando uno de un primer método de inicialización y un segundo método de inicialización basándose en al menos el tipo de segmento y el valor de la bandera, caracterizado porque en un caso en el que el tipo de segmento es el tipo B de segmento y el valor de la bandera es igual a uno, se inicializa un contexto de codificación aritmética binaria adaptativa según el contexto asociado con el tipo B de segmento mediante el segundo método de inicialización; y en un caso en el que el tipo de segmento es el tipo B de segmento y el valor de la bandera es igual a cero, se inicializa el contexto de codificación aritmética binaria adaptativa según el contexto asociado con el tipo B de segmento mediante el primer método de inicialización, en el que el primer método de inicialización se usa para inicializar un contexto de codificación aritmética binaria adaptativa según el contexto asociado con un tipo P de segmento en un caso en el que el tipo de segmento es el tipo P de segmento y el valor de la bandera es igual a uno.

Description

DESCRIPCIÓN
Inicialización de contexto basándose en memoria intermedia de imagen de decodificador
Campo de la invención
Realizaciones de la presente invención se refieren en general a codificación de vídeo y, en particular, algunas realizaciones de la presente invención se refieren a técnicas para la inicialización de contexto.
Antecedentes de la invención
Los métodos y las normas de codificación de vídeo del estado de la técnica, por ejemplo, AVC de H.264/MPEG-4 (H.264/AVC) y el Modelo de prueba en consideración (TMuC, Test Model under Consideration) de JCT-VC, pueden proporcionar una mayor eficiencia de codificación que métodos y normas más antiguos a expensas de una mayor complejidad. Los crecientes requisitos de calidad y requisitos de resolución en los métodos y las normas de codificación de vídeo también pueden aumentar su complejidad. Los decodificadores que soportan decodificación paralela pueden mejorar las velocidades de decodificación y reducir los requisitos de memoria. Adicionalmente, los avances en los procesadores multinúcleo pueden producir codificadores y decodificadores que soportan una decodificación paralela deseada.
AVC de H.264/MPEG-4 [Equipo mixto de vídeo de VCEG de ITU-T y MPEG de ISO/IEC, “H.264: Codificación de vídeo avanzada para servicios audiovisuales genéricos”, Rec. 11.264 de ITU-T y 14496-10 de ISO/TFC (MPEG4— Parte 10), noviembre de 2007], que se incorpora por la presente como referencia al presente documento en su totalidad, es una especificación de CODEC (codificador/decodificador) de vídeo que usa predicción de macrobloque seguida por codificación residual para reducir la redundancia temporal y espacial en una secuencia de vídeo para eficiencia de compresión.
El modelo de prueba en consideración (TMuC) [A205 de JCT-VC, “Test Model under Consideration”, 16 de junio de 2010], que se incorpora por la presente como referencia al presente documento en su totalidad, es el modelo de prueba inicial de JCT-VC. TMuC, que usa una unidad de codificación básica denominada bloque de árbol de codificación (CTB) que puede tener tamaños variables, puede proporcionar más flexibilidad que H.264/AVC.
El documento KIRAN MISRA ETAL: “Tiles for Parallel Decoding”, 96° ENCUENTRO MPEG; 21-3-2011 -25-3-2011; GINEBRA; (MOTION IMAGEN EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), n.° m19950, publicado el 19 de marzo de 2011, da a conocer una extensión del concepto de mosaicos en la codificación de vídeo, en la que se usan tablas de segmentos P para la inicialización de contexto en determinados segmentos B sometidos a predicción hacia delante.
La solicitud de patente europea EP 2727 361 Al (SHARP KK [JP]), publicada el 7 de mayo de 2014, da a conocer técnicas para la inicialización de codificadores y decodificadores, en las que en un ejemplo el decodificador recibe una bandera “cabac_init_P flag”, y la inicialización de codificador entrópico de segmento B usa o bien un método con segmento P o bien un método con segmento B de acuerdo con dicha bandera.
Sumario de la invención
La invención proporciona un método para decodificar un fotograma de vídeo de una secuencia de vídeo que comprende los rasgos definidos en la reivindicación independiente 1. Se halla una divulgación habilitante para la invención en la realización de la figura 46. Han de entenderse otras realizaciones como ejemplos que no describen partes de la presente invención.
Los objetivos, rasgos y ventajas anteriores y otros de la invención se entenderán más fácilmente tras la consideración de la siguiente descripción detallada de la invención tomada junto con los dibujos adjuntos.
Breve descripción de las diversas vistas de los dibujos
[FIG. 1] La figura 1 es una imagen que muestra un codificador de vídeo según H.264/AVC (técnica anterior);
[FIG. 2] la figura 2 es una imagen que muestra un decodificador de vídeo según H.264/AVC (técnica anterior);
[FIG. 3] la figura 3 es una imagen que muestra una estructura de segmento a modo de ejemplo (técnica anterior); [FIG. 4] la figura 4 es una imagen que muestra una estructura de grupo de segmentos a modo de ejemplo (técnica anterior);
[FIG. 5] la figura 5 es una imagen que muestra una división de segmento a modo de ejemplo según las realizaciones de la presente invención, en la que puede dividirse una imagen en al menos un segmento de reconstrucción y puede dividirse un segmento de reconstrucción en más de un segmento entrópico;
[FIG. 6] la figura 6 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden un segmento entrópico;
[FIG. 7] la figura 7 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la decodificación entrópica paralela de múltiples segmentos entrópicos seguida por reconstrucción de segmento;
[FIG. 8] la figura 8 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden multiplexación de datos de predicción/datos residuales a nivel de imagen para la construcción de segmento entrópico;
[FIG. 9] la figura 9 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden multiplexación en plano de color a nivel de imagen para la construcción de segmento entrópico;
[FIG. 10] la figura 10 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la transcodificación de un flujo de bits mediante decodificación entrópica, que forma segmentos entrópicos y codificación entrópica;
[FIG. 11] la figura 11 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la división de un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el número de bins asociados con cada segmento entrópico en la pluralidad de segmentos entrópicos no supera un número de bins predefinido;
[FIG. 12] la figura 12 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la división de un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que los bins pueden asociarse con un segmento entrópico hasta que el número de bins en el segmento entrópico supera un umbral basándose en un número máximo predefinido de bins;
[FIG. 13] la figura 13 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la división de un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el número de bins asociados con cada segmento entrópico en la pluralidad de segmentos entrópicos no supera un número de bins predefinido y cada segmento de reconstrucción contiene no más de un número de macrobloques predefinido;
[FIG. 14] la figura 14 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la división de un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que los bins pueden asociarse con un segmento entrópico hasta que el número de bins en el segmento entrópico supera un umbral basándose en un número máximo predefinido de bins y cada segmento de reconstrucción contiene no más de un número de macrobloques predefinido;
[FIG. 15] la figura 15 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la división de un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el número de bits asociados con cada segmento entrópico en la pluralidad de segmentos entrópicos no supera un número de bits predefinido;
[FIG. 16] la figura 16 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la división de un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que pueden asociarse bits con un segmento entrópico hasta que el número de bits en los segmentos entrópicos supera un umbral basándose en un número máximo predefinido de bits;
[FIG. 17] la figura 17 es una imagen que representa realizaciones a modo de ejemplo de la presente invención que comprenden múltiples codificadores de bins;
[FIG. 18] la figura 18 es una imagen que representa realizaciones a modo de ejemplo de la presente invención que comprenden múltiples unidades de adaptación según el contexto;
[FIG. 19] la figura 19 es una imagen que representa realizaciones a modo de ejemplo de la presente invención que comprenden múltiples codificadores de bins y múltiples unidades de adaptación según el contexto;
[FIG. 20] la figura 20 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la división de un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que se restringe el tamaño de un segmento entrópico para limitar el número de bins sobre los que se opera, en el segmento entrópico, mediante cada unidad de codificador entrópico restringida;
[FIG. 21] la figura 21 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden la división de un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que se restringe el tamaño de un segmento entrópico para limitar el número de bins sobre los que se opera, en el segmento entrópico, mediante cada unidad de codificador entrópico restringida;
[FIG. 22] la figura 22 es una imagen que representa realizaciones a modo de ejemplo de la presente invención que comprenden una pluralidad de decodificadores de bins;
[FIG. 23] la figura 23 es una imagen que representa realizaciones a modo de ejemplo de la presente invención que comprenden una pluralidad de unidades de adaptación según el contexto;
[FIG. 24] la figura 24 es una imagen que representa realizaciones a modo de ejemplo de la presente invención que comprenden múltiples decodificadores de bins y múltiples unidades de adaptación según el contexto;
[FIG. 25] la figura 25 es una imagen que muestra una división a modo de ejemplo de un bloque de reconstrucción en una pluralidad de segmentos entrópicos en la que los macrobloques dentro de un segmento entrópico son contiguos;
[FIG. 26] la figura 26 es una imagen que muestra una división a modo de ejemplo de un bloque de reconstrucción en una pluralidad de segmentos entrópicos en la que los macrobloques dentro de un segmento entrópico no son contiguos;
[FIG. 27] la figura 27 es una imagen que ilustra bloques vecinos no contiguos, usados en decodificación entrópica, para una división a modo de ejemplo de un bloque de reconstrucción en una pluralidad de segmentos entrópicos en la que los macrobloques dentro de un segmento entrópico no son contiguos;
[FIG. 28] la figura 28 es una imagen que ilustra bloques vecinos usados en decodificación entrópica y reconstrucción de un bloque dentro de un segmento entrópico para una división a modo de ejemplo de un bloque de reconstrucción en una pluralidad de segmentos entrópicos en la que los macrobloques dentro de un segmento entrópico no son contiguos;
[FIG. 29] la figura 29 es una representación pictórica de una parte a modo de ejemplo de un flujo de bits a modo de ejemplo que representa restricciones de ubicación de cabecera de segmento entrópico;
[FIG. 30] la figura 30 es una representación pictórica de una parte a modo de ejemplo de un flujo de bits a modo de ejemplo que representa restricciones de ubicación de cabecera de segmento entrópico;
[FIG. 31] la figura 31 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden un decodificador entrópico que procesa una parte restringida de un flujo de bits para identificar una cabecera de segmento entrópico;
[FIG. 32] la figura 32 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden un decodificador entrópico que procesa una parte restringida de un flujo de bits para identificar una cabecera de segmento entrópico;
[FIG. 33] la figura 33 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden un decodificador entrópico que procesa una parte restringida de un flujo de bits para identificar una cabecera de segmento entrópico;
[FIG. 34] la figura 34 es una imagen que ilustra un esquema de inicialización de tabla de contexto a modo de ejemplo dentro de segmentos entrópicos según las realizaciones de la presente invención;
[FIG. 34A] la figura 34A es una imagen que ilustra adaptación de barrido en realizaciones a modo de ejemplo de la presente invención;
[FIG. 35] la figura 35 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden un codificador entrópico con captura de contexto desacoplada del orden de barrido de coeficientes; [FIG. 36] la figura 36 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden un decodificador entrópico con captura de contexto desacoplada del orden de barrido de coeficientes;
[FIG. 37] la figura 37 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden adaptación de contexto basada en recuento de bins;
[FIG. 38] la figura 38 es una imagen que ilustra una división disjunta a modo de ejemplo de un número de bins procesados;
[FIG. 39] la figura 39 es un diagrama que muestra realizaciones a modo de ejemplo de la presente invención que comprenden adaptación de contexto basada en parámetros de cuantificación;
figura 40 ilustra una técnica de inicialización;
Figure imgf000004_0001
figura 41 ilustra otra técnica de inicialización de contexto; y
[FIG. 42] la figura 42 ilustra una técnica de inicialización de contexto.
[FIG. 43] la figura 43 ilustra una técnica de inicialización.
[FIG. 44] la figura 44 ilustra una técnica de inicialización.
[FIG. 45] la figura 45 ilustra una técnica de inicialización.
[FIG. 46] la figura 46 ilustra una técnica de inicialización.
Descripción de realizaciones
Se entenderán del mejor modo las realizaciones de la presente invención con referencia a los dibujos, en los que pares similares se designan con números de referencia similares en toda la descripción. Las figuras enumeradas anteriormente se incorporan expresamente como parte de esta descripción detallada.
Se entenderá fácilmente que los componentes de la presente invención, tal como se describen e ilustran de modo general en las figuras del presente documento, podrían disponerse y diseñarse en una amplia variedad de diferentes configuraciones. Por tanto, la siguiente descripción más detallada de las realizaciones de los métodos y sistemas de la presente invención no pretende limitar el alcance de la invención, sino que es meramente representativa de las realizaciones preferidas actualmente de la invención.
Los elementos de realizaciones de la presente invención pueden presentarse en hardware, firmware y/o software. Aunque las realizaciones a modo de ejemplo divulgadas en el presente documento pueden describir solamente una de estas formas, ha de entenderse que un experto en la técnica podrá realizar estos elementos en cualquiera de estas formas mientras permanece dentro del alcance de la presente invención.
Aunque algunas realizaciones de la presente invención pueden albergar cualquier codificador/decodificador de vídeo (CODEC) que use codificación/decodificación entrópica, muchas realizaciones a modo de ejemplo de la presente invención se ilustrarán en relación con un codificador según H.264/AVC y un decodificador según H.264/AVC. Esto se pretende que sea una ilustración de realizaciones de la presente invención y no una limitación.
Muchas realizaciones a modo de ejemplo de la presente invención pueden describirse en relación con un macrobloque como unidad elemental. Esto se pretende que sea una ilustración y no una limitación.
La solicitud de patente estadounidense con n.° de serie 12/058.301, titulada “Methods and Systems for Parallel Video Encoding and Decoding”, presentada el 28 de marzo de 2008, se incorpora por la presente como referencia al presente documento, en su totalidad. La solicitud de patente estadounidense con n.° de serie 12/579.236, titulada “Methods and Systems for Parallel Video Encoding and Decoding”, presentada el 14 de octubre de 2009, se incorpora por la presente como referencia al presente documento, en su totalidad.
Los métodos y las normas de codificación de vídeo del estado de la técnica, por ejemplo H.264/AVC y TMuC, pueden proporcionar una mayor eficiencia de codificación que métodos y normas más antiguos a expensas de una mayor complejidad. Los crecientes requisitos de calidad y requisitos de resolución en los métodos y las normas de codificación de vídeo también pueden aumentar su complejidad. Los decodificadores que soportan decodificación paralela pueden mejorar las velocidades de decodificación y reducir los requisitos de memoria. Adicionalmente, los avances en los procesadores multinúcleo pueden producir codificadores y decodificadores que soportan una decodificación paralela deseada.
H.264/AVC, y muchas otras normas y métodos de codificación de vídeo, se basan en un enfoque de codificación de vídeo híbrido, basado en bloques, en el que el algoritmo de codificación fuente es un híbrido de predicción inter­ imagen, también considerada inter-fotograma, predicción intra-imagen, también considerado intra-fotograma, y codificación por transformación de un residuo de predicción. La predicción inter-fotograma puede aprovechar redundancias temporales, y la codificación intra-fotograma y por transformación del residuo de predicción puede aprovechar redundancias espaciales.
La figura 1 muestra un diagrama de bloques de un codificador de vídeo según H.264/AVC a modo de ejemplo 2. Una imagen de entrada 4, también considerada un fotograma, puede presentarse para la codificación. Pueden producirse una señal predicha 6 y una señal residual 8, en las que la señal predicha 6 puede basarse o bien en una predicción inter-fotograma 10 o bien en una predicción intra-fotograma 12. La predicción inter-fotograma 10 puede determinarse mediante la sección de compensación de movimiento 14 usando una imagen de referencia almacenada 16, también considerada fotograma de referencia, e información de movimiento 19 determinada mediante un proceso sección de estimación de movimiento 18 entre el fotograma de entrada 4 y el fotograma de referencia 16. La predicción intrafotograma 12 puede determinarse mediante una sección de predicción intra-fotograma 20 usando una señal decodificada 22. La señal residual 8 puede determinarse mediante la sustracción de la entrada 4 de la predicción 6. La señal residual 8 se transforma, cambia de escala y cuantifica mediante una sección de transformación/cambio de escala/cuantificación 24, produciéndose de ese modo coeficientes de transformada cuantificados 26. La señal decodificada 22 puede generarse añadiendo la señal predicha 6 a una señal 28 generada mediante una sección de (transformación/cambio de escala/cuantificación) inversa 30 que usa los coeficientes de transformada cuantificados 26. La información de movimiento 19 y los coeficientes de transformada cuantificados 26 pueden someterse a codificación entrópica 32 y escribirse en el flujo de bits de vídeo comprimido 34. Una región de imagen de salida 38, por ejemplo una parte del fotograma de referencia, puede generarse en el codificador 2 mediante filtrado 36 de desbloqueo usando la señal reconstruida, filtrada previamente 22.
La figura 2 muestra un diagrama de bloques de un decodificador de vídeo según H.264/AVC a modo de ejemplo 50. Una señal de entrada 52, también considerada un flujo de bits, puede presentarse para la decodificación. Los símbolos recibidos pueden someterse a decodificación entrópica mediante una sección de decodificación entrópica 54, produciéndose de ese modo información de movimiento 56 y coeficientes de transformada cuantificados y cambiados de escala 58. La información de movimiento 56 puede combinarse mediante una sección de compensación de movimiento 60 con una parte de un fotograma de referencia 84 que puede residir en la memoria de fotogramas 64, y puede generarse una predicción inter-fotograma 68. Los coeficientes de transformada cuantificados y cambiados de escala 58 puede someterse a cuantificación inversa, cambiarse de escala y someterse a transformación inversa mediante una sección de (transformación/cambio de escala/cuantificación) inversa 62, produciéndose de ese modo una señal residual decodificada 70. La señal residual 70 puede añadirse a una señal de predicción 78: o bien la señal de predicción inter-fotograma 68 o bien una señal de predicción intra-fotograma 76. La señal de predicción intra-fotograma 76 puede predecirse mediante una sección de predicción intra-fotograma 74 a partir de información decodificada previamente en el fotograma actual 72. La señal combinada 72 puede filtrarse mediante un filtro de desbloqueo 80 y la señal filtrada 82 puede escribirse en la memoria de fotogramas 64.
En H.264/AVC, una imagen de entrada se divide en macrobloques de tamaño fijo, en la que cada macrobloque cubre un área de imagen rectangular de 16*16 muestras de la componente de luma y 8*8 muestras de cada una de las dos componentes de croma. En otros CODEC y normas, puede usarse una unidad elemental, o unidad de codificación básica, diferente de un macrobloque, por ejemplo, un bloque de árbol de codificación. El proceso de decodificación de la norma H.264/AVC se especifica para unidades de procesamiento que son macrobloques. El decodificador entrópico 54 analiza los elementos sintácticos del flujo de bits de vídeo comprimido 52 y los demultiplexa. H.264/AVC especifica dos métodos de decodificación entrópica alternativos: una técnica de baja complejidad que se basa en la utilización de conjuntos conmutados de manera adaptativa según el contexto de códigos de longitud variable, denominado CAVLC, y el algoritmo más exigente a nivel computacional de codificación aritmética binaria adaptativa según el contexto, denominada CABAC. En ambos métodos de decodificación entrópica, la decodificación de un símbolo actual puede depender de símbolos decodificados correctamente de manera previa y modelos de contexto actualizados de manera adaptativa. Además, pueden multiplexarse conjuntamente diferente información de datos, por ejemplo, información de datos de predicción, información de datos residuales y diferentes planos de color. La demultiplexación no puede realizarse hasta que los elementos se someten a decodificación entrópica.
Después de la decodificación entrópica, puede reconstruirse un macrobloque obteniéndose: la señal residual a través de cuantificación inversa y la transformada inversa, y la señal de predicción, o bien la señal de predicción intra-fotograma o bien la señal de predicción inter-fotograma. Puede reducirse la distorsión de bloqueo aplicando un filtro de desbloqueo a cada macrobloque decodificado. No puede comenzar ningún procesamiento hasta que la señal de entrada se somete a decodificación entrópica, haciendo de ese modo que la decodificación entrópica sea un posible cuello de botella en la decodificación.
De manera similar, en CODEC en los que pueden permitirse mecanismos de predicción alternativos, por ejemplo, predicción inter-capa en H.264/AVC o predicción inter-capa en otros CODEC escalables, la decodificación entrópica puede ser un requisito antes de todo el procesamiento en el decodificador, haciendo de ese modo que la decodificación entrópica sea un posible cuello de botella.
En H.264/AVC, una imagen de entrada que comprende una pluralidad de macrobloques puede dividirse en uno o varios segmentos. Los valores de las muestras en el área de la imagen que representa un segmento puede decodificarse correctamente sin el uso de datos de otros segmentos siempre que las imágenes de referencia usadas en el codificador y el decodificador sean idénticas. Por tanto, la decodificación entrópica y la reconstrucción de macrobloque para un segmento no dependen de otros segmentos. En particular, el estado de codificación entrópica se restablece al inicio de cada segmento. Los datos en otros segmentos se marcan como no disponibles cuando se define la disponibilidad de vecinos tanto para la decodificación entrópica como para la reconstrucción. En H.264/AVC, pueden someterse segmentos a decodificación entrópica y reconstruirse en paralelo. No se permiten predicción intra y predicción de vector de movimiento a través del límite de segmento. El filtrado de desbloqueo puede usar información a través de límites de segmento.
La figura 3 muestra una imagen de vídeo a modo de ejemplo 90 que comprende once macrobloques en la dirección horizontal y nueve macrobloques en la dirección vertical (nueve macrobloques a modo de ejemplo etiquetados como 91-99). La figura 3 muestra tres segmentos a modo de ejemplo: un primer segmento indicado como “SEGMENTO #0” 100, un segundo segmento indicado como “SEGMENTO #1” 101 y un tercer segmento indicado como “SEGMENTO #2” 102. Un decodificador según H.264/AVC puede decodificar y reconstruir los tres segmentos 100, 101, 102 en paralelo. Al comienzo del proceso de decodificación/reconstrucción para cada segmento, se inicializan o restablecen modelos de contexto y se marcan macrobloques en otros segmentos como no disponibles tanto para la decodificación entrópica como para la reconstrucción de macrobloque. Por tanto, para un macrobloque, por ejemplo, el macrobloque etiquetado como 93, en el “SEGMENTO #1”, no pueden usarse macrobloques (por ejemplo, macrobloques etiquetados como 91 y 92) en el “SEGMENTO #0” para la selección o reconstrucción de modelo de contexto. Mientras tanto, para un macrobloque, por ejemplo, el macrobloque etiquetado como 95, en el “SEGMENTO #1”, pueden usarse macrobloques (por ejemplo, macrobloques etiquetados como 93 y 94) en el “SEGMENTO #1” para la selección o reconstrucción de modelo de contexto. Por tanto, la decodificación entrópica y la reconstrucción de macrobloque deben proceder en serie dentro de un segmento. A menos que se definan segmentos usando ordenación flexible de macrobloques (FMO), los macrobloques dentro de un segmento se procesan en el orden de barrido por trama.
La ordenación flexible de macrobloques define un grupo de segmentos para modificar cómo se divide una imagen en segmentos. Los macrobloques en un grupo de segmentos se definen mediante un mapa de macrobloque a grupo de segmentos, que se señaliza por el contenido del conjunto de parámetros de imagen e información adicional en las cabeceras de segmento. El mapa de macrobloque a grupo de segmentos consiste en un número de identificación de grupo de segmentos para cada macrobloque en la imagen. El número de identificación de grupo de segmentos especifica a qué grupo de segmentos pertenece el macrobloque asociado. Cada grupo de segmentos puede dividirse en uno o más segmentos, en el que un segmento es una secuencia de macrobloques dentro del mismo grupo de segmentos que se procesa en el orden de un barrido por trama dentro del conjunto de macrobloques de un grupo de segmentos particular. La decodificación entrópica y la reconstrucción de macrobloque deben proceder en serie dentro de un segmento.
La figura 4 representa una asignación de macrobloques a modo de ejemplo en tres grupos de segmentos: un primer grupo de segmentos indicado como “GRUPO DE SEGMENTOS #0” 103, un segundo grupo de segmentos indicado como “GRUPO DE SEGMENTOS #1” 104 y un tercer grupo de segmentos indicado como “GRUPO DE SEGMENTOS #2” 105. Estos grupos de segmentos 103, 104, 105 pueden asociarse con dos regiones de primer plano y una región de fondo, respectivamente, en la imagen 90.
Algunas realizaciones de la presente invención pueden comprender la división de una imagen en uno o más segmentos de reconstrucción, en la que un segmento de reconstrucción puede estar autocontenido en el sentido de que los valores de las muestras en el área de la imagen que representa el segmento de reconstrucción pueden reconstruirse correctamente sin el uso de datos de otros segmentos de reconstrucción, siempre que las imágenes de referencia usadas sean idénticas en el codificador y el decodificador. Todos los macrobloques reconstruidos dentro de un segmento de reconstrucción pueden estar disponibles en la definición de vecinos para la reconstrucción. Algunas realizaciones de la presente invención pueden comprender la división de un segmento de reconstrucción en más de un segmento entrópico, en la que un segmento entrópico puede estar autocontenido en el sentido de que los valores de símbolo en el área de la imagen que representa el segmento entrópico pueden someterse a decodificación entrópica correctamente sin el uso de datos de otros segmentos entrópicos. En algunas realizaciones de la presente invención, el estado de codificación entrópica puede restablecerse al inicio de la decodificación de cada segmento entrópico. En algunas realizaciones de la presente invención, los datos en otros segmentos entrópicos pueden marcarse como no disponibles cuando se define la disponibilidad de vecinos para la decodificación entrópica. En algunas realizaciones de la presente invención, no pueden usarse macrobloques en otros segmentos entrópicos en la selección de modelo de contexto de un bloque actual. En algunas realizaciones de la presente invención, los modelos de contexto pueden actualizarse solamente dentro de un segmento entrópico. En estas realizaciones de la presente invención, cada decodificador entrópico asociado con un segmento entrópico puede mantener su propio conjunto de modelos de contexto.
La contribución 405 del Grupo de estudio 16 del Sector de Normalización de las Telecomunicaciones de la ITU titulada “Segmentos entrópicos para la decodificación entrópica paralela”, abril de 2008, se incorpora por la presente como referencia al presente documento en su totalidad.
Algunas realizaciones de la presente invención pueden comprender codificación/decodificación CABAC. El proceso de codificación CABAC incluye las siguientes cuatro etapas elementales: binarización; selección de modelo de contexto; codificación aritmética binaria; y actualización de probabilidad.
[Binarización]: un símbolo de valor no binario (por ejemplo, un coeficiente de transformada, un vector de movimiento, u otros datos de codificación) se convierte en un código binario, también denominado cadena de bins o símbolo binarizado. Cuando se facilita un elemento sintáctico de valor binario, puede sortearse la etapa de binarización inicial. Un elemento sintáctico de valor binario o un elemento de un símbolo binarizado puede denominarse un bin. Para cada bin, puede realizarse lo siguiente:
[Selección de modelo de contexto]: un modelo de contexto es un modelo de probabilidad para uno o más bins. El modelo de contexto comprende, para cada bin, la probabilidad de que el bin sea un “1” o un “0”. El modelo puede elegirse para una selección de modelos disponibles dependiendo de la estadística de símbolos de datos codificados recientemente, habitualmente basándose en símbolos vecinos a la izquierda y por encima, si están disponibles. [Codificación aritmética binaria]: un codificador aritmético codifica cada bin según el modelo de probabilidad seleccionado y se basa en subdivisión de intervalo recursiva.
[Actualización de probabilidad]: el modelo de contexto seleccionado se actualiza basándose en el valor codificado real.
La adaptación de contexto puede referirse al proceso de seleccionar, basándose en valores de símbolos vecinos, un estado de modelo de contexto, también denominado estado, asociado con un bin y actualizar una distribución de probabilidad de modelo asignada a los símbolos dados. La ubicación de los símbolos vecinos puede definirse según una plantilla de contexto.
En algunas realizaciones de la presente invención que comprenden codificación/decodificación CABAC, al inicio de la decodificación de un segmento entrópico, todos los modelos de contexto pueden inicializarse o restablecerse a modelos predefinidos.
Algunas realizaciones de la presente invención pueden entenderse en relación con la figura 5. La figura 5 muestra un fotograma de vídeo a modo de ejemplo 110 que comprende once macrobloques en la dirección horizontal y nueve macrobloques en la dirección vertical (nueve macrobloques a modo de ejemplo etiquetados como 115-123). La figura 5 muestra tres segmentos de reconstrucción a modo de ejemplo: un primer segmento de reconstrucción indicado como “Segmento R #0” 111, un segundo segmento de reconstrucción indicado como “Segmento R #1” 112 y un tercer segmento de reconstrucción indicado como “Segmento R #2” 113. La figura 5 muestra además una división del segundo segmento de reconstrucción “Segmento R #1” 112 en tres segmentos entrópicos: un primer segmento entrópico indicado como “Segmento E #0” mostrado en rayado cruzado 114, un segundo segmento entrópico indicado como “Segmento E #1” mostrado en rayado vertical 115 y un tercer segmento entrópico indicado como “Segmento E #2” mostrado en rayado oblicuo 116. Cada segmento entrópico 114, 115, 116 puede someterse a decodificación entrópica en paralelo.
En algunas realizaciones de la presente invención, pueden estar disponibles solamente datos de macrobloques dentro de un segmento entrópico para la selección de modelo de contexto durante la decodificación entrópica del segmento entrópico. Todos los demás macrobloques pueden marcarse como no disponibles. Para esta división a modo de ejemplo, los macrobloques etiquetados como 117 y 118 no están disponibles para la selección de modelo de contexto cuando los símbolos de decodificación correspondientes al área de macrobloque se etiquetan como 119 porque los macrobloques etiquetados como 117 y 118 están fuera del segmento entrópico que contiene el macrobloque 119. Sin embargo, estos macrobloques 117, 118 están disponibles cuando se reconstruye el macrobloque 119.
En algunas realizaciones de la presente invención, un proceso determina si un macrobloque pertenece al mismo segmento de reconstrucción que el macrobloque actual. Algunas realizaciones de la invención determinan si el macrobloque pertenece al mismo segmento de reconstrucción que el macrobloque actual determinando si el macrobloque y el macrobloque actual están en el mismo segmento entrópico. Algunas realizaciones de la invención determinan si el macrobloque pertenece al mismo segmento de reconstrucción que el macrobloque actual determinando si el macrobloque actual está en un segmento entrópico. Algunas realizaciones de la invención determinan si el macrobloque pertenece al mismo segmento de reconstrucción que el macrobloque actual determinando si la información que describe el segmento que contiene el macrobloque es igual a la información que describe el segmento que contiene el macrobloque actual. En algunas realizaciones de la invención, se determina que el macrobloque y el macrobloque actual están en el mismo segmento de reconstrucción cuando las tres realizaciones previas son ciertas.
En algunas realizaciones de la presente invención, un codificador puede determinar si dividir o no un segmento de reconstrucción en segmentos entrópicos, y el codificador puede señalizar la decisión en el flujo de bits. En algunas realizaciones de la presente invención, la señal puede comprender una bandera de segmento entrópico, que puede indicarse como “bandera de segmento entrópico” en algunas realizaciones de la presente invención.
Algunas realizaciones de decodificador de la presente invención pueden describirse en relación con la figura 6. En estas realizaciones, una bandera de segmento entrópico puede examinarse 130, y si la bandera de segmento entrópico indica que no hay 132 segmentos entrópicos asociados con una imagen, o un segmento de reconstrucción, entonces la cabecera puede analizarse 134 como cabecera de segmento normal. El estado del decodificador entrópico puede restablecerse 136, y la información de vecinos para la decodificación entrópica y la reconstrucción puede definirse 138. El segmento datos puede someterse entonces a decodificación entrópica 140, y el segmento puede reconstruirse 142. Si la bandera de segmento entrópico indica que hay 146 segmentos entrópicos asociados con una imagen, o un segmento de reconstrucción, entonces la cabecera puede analizarse 148 como cabecera de segmento entrópico. El estado del decodificador entrópico puede restablecerse 150, la información de vecinos para la decodificación entrópica puede definirse 152 y los datos de segmento entrópico pueden someterse a decodificación entrópica 154. La información de vecinos para la reconstrucción puede definirse entonces 156, y el segmento puede reconstruirse 142. Después de la reconstrucción de segmento 142, el segmento, o imagen, siguiente puede examinarse 158.
Algunas realizaciones de decodificador alternativas de la presente invención pueden describirse en relación con la figura 7. En estas realizaciones, el decodificador puede producir decodificación paralela y puede definir su propio grado de paralelismo, por ejemplo, considérese un decodificador que comprende la capacidad de decodificación de N segmentos entrópicos en paralelo. El decodificador puede identificar 170 N segmentos entrópicos. En algunas realizaciones de la presente invención, si están disponibles menos de N segmentos entrópicos en la actual imagen, o segmento de reconstrucción, el decodificador puede decodificar segmentos entrópicos de imágenes, o segmentos de reconstrucción, posteriores si están disponibles. En realizaciones alternativas, el decodificador puede esperar hasta que la imagen, o segmento de reconstrucción, actual se procesa por completo antes de la decodificación de porciones de una imagen, o segmento de reconstrucción posterior. Después de identificar 170 hasta N segmentos entrópicos, cada uno de los segmentos entrópicos identificados pueden someterse a decodificación entrópica independientemente. Un primer segmento entrópico puede decodificarse 172-176. La decodificación 172-176 del primer segmento entrópico puede comprender restablecer el estado del decodificador 172. En algunas realizaciones que comprenden decodificación entrópica CABAC, puede restablecerse el estado de CABAC. La información de vecinos para la decodificación entrópica del primer segmento entrópico puede definirse 174, y los datos del primer segmento entrópico pueden decodificarse 176. Para cada uno de los hasta N segmentos entrópicos, estas etapas pueden realizarse (178-182 para el segmento entrópico de orden N). En algunas realizaciones de la presente invención, el decodificador puede reconstruir 184 los segmentos entrópicos cuando todos los segmentos entrópicos se someten a decodificación entrópica. En realizaciones alternativas de la presente invención, el decodificador puede comenzar una reconstrucción 184 después de que se decodifiquen el uno o más segmentos entrópicos. En algunas realizaciones de la presente invención, cuando hay más de N segmentos entrópicos, un subproceso de decodificación puede empezar la decodificación entrópica de un segmento entrópico siguiente tras completarse la decodificación entrópica de un segmento entrópico. Por tanto, cuando un subproceso finaliza la decodificación entrópica de un segmento entrópico de baja complejidad, el subproceso puede comenzar la decodificación de segmentos entrópicos adicionales sin esperar a que otros subprocesos finalicen su decodificación.
En algunas realizaciones de la presente invención que pueden albergar una norma o un método existente, un segmento entrópico puede compartir la mayor parte de los atributos del segmento de un segmento normal según la norma o el método. Por tanto, un segmento entrópico puede requerir una pequeña cabecera. En algunas realizaciones de la presente invención, la cabecera de segmento entrópico puede permitir que un decodificador identifique el inicio de un segmento entrópico e inicie la decodificación entrópica. En algunas realizaciones, al inicio de una imagen, o un segmento de reconstrucción, la cabecera de segmento entrópico puede ser la cabecera normal, o una cabecera de segmento de reconstrucción.
En algunas realizaciones de la presente invención que comprenden un CODEC según H.264/AVC, puede señalizarse un segmento entrópico añadiendo un nuevo bit, “entropy_slice_flag” a la cabecera de segmento existente. La tabla 1 enumera la sintaxis para una cabecera de segmento entrópico según las realizaciones de la presente invención, en la que C indica Categoría y los descriptores u(l), ue(v) indican ciertos métodos de codificación de longitud fija o de longitud variable. Las realizaciones de la presente invención que comprenden un “entropy_slice_flag” pueden obtener una eficiencia de codificación mejorada.
“first_mb_in_slice” especifica la dirección del primer macrobloque en el segmento entrópico asociado con la cabecera de segmento entrópico. En algunas realizaciones, el segmento entrópico puede comprender una secuencia de macrobloques.
“cabac_init_idc” especifica el índice para determinar la tabla de inicialización usada en el proceso de inicialización para el modelo de contexto.
[Tabla 1]
Figure imgf000009_0001
Tabla 1: tabla de sintaxis a modo de ejemplo para cabecera de segmento entrópico
En algunas realizaciones de la presente invención, un segmento entrópico puede asignarse un tipo de unidad de capa de abstracción de red (NAL) diferente de los segmentos normales. En estas realizaciones, un decodificador puede distinguir entre segmentos normales y segmentos entrópicos basándose en el tipo de unidad de NAL. En estas realizaciones, no se requiere el campo de bits “entropy_slice_flag”.
En algunas realizaciones de la presente invención, el campo de bits “entropy_slice_flag” puede no transmitirse en todos los perfiles. En algunas realizaciones de la presente invención, el campo de bits “entropy_slice_flag” puede no transmitirse en un perfil de línea base, pero el campo de bits “entropy_slice_flag” puede transmitirse en perfiles superiores tales como un perfil principal, uno extendido o uno profesional. En algunas realizaciones de la presente invención, el campo de bits “entropy_slice_flag” puede transmitirse únicamente en flujos de bits asociados con características mayores que un valor de característica fijo. Las características a modo de ejemplo pueden incluir resolución espacial, velocidad de transmisión de fotogramas, profundidad de bits, velocidad de transmisión de bits y otras características del flujo de bits. En algunas realizaciones de la presente invención, el campo de bits “entropy_slice_flag” puede transmitirse únicamente en flujos de bits asociados con resoluciones espaciales mayores de 1920*1080 entrelazados. En algunas realizaciones de la presente invención, el campo de bits “entropy_slice_flag” puede transmitirse únicamente en flujos de bits asociados con resoluciones espaciales mayores de 1920*1080 progresivos. En algunas realizaciones de la presente invención, si el campo de bits “entropy_slice_flag” no se transmite, puede usarse un valor por defecto.
En algunas realizaciones de la presente invención, puede construirse un segmento entrópico alterando la multiplexación de datos. En algunas realizaciones de la presente invención, el grupo de símbolos contenidos en un segmento entrópico puede multiplexarse a nivel de macrobloque. En realizaciones alternativas de la presente invención, el grupo de símbolos contenidos en un segmento entrópico puede multiplexarse a nivel de imagen. En otras realizaciones alternativas de la presente invención, el grupo de símbolos contenidos en un segmento entrópico puede multiplexarse según el tipo de datos. Aún en realizaciones alternativas de la presente invención, el grupo de símbolos contenidos en un segmento entrópico puede multiplexarse en una combinación de los anteriores.
Algunas realizaciones de la presente invención que comprenden construcción de segmento entrópico basándose en multiplexación a nivel de imagen pueden entenderse en relación con la figura 8 y la figura 9. En algunas realizaciones de la presente invención mostradas en la figura 8, datos de predicción 190 y datos residuales 192 pueden someterse a codificación entrópica mediante un codificador de predicción 194 y un codificador residual 196 por separado y los datos de predicción codificada y los datos residuales codificados pueden multiplexarse a nivel de imagen por un multiplexador a nivel de imagen 198. En algunas realizaciones de la presente invención, los datos de predicción para una imagen 190 pueden estar asociados con un primer segmento entrópico, y los datos residuales para una imagen 192 pueden estar asociados con un segundo segmento entrópico. Los datos de predicción codificados y los datos de entropía codificados pueden decodificarse en paralelo. En algunas realizaciones de la presente invención, cada división que comprende datos de predicción o datos residuales puede dividirse en segmentos entrópicos que pueden decodificarse en paralelo.
En algunas realizaciones de la presente invención mostradas en la figura 9, el residuo de cada plano de color, por ejemplo, el residuo de luma 200 y los dos residuos de croma 202, 204, pueden someterse a codificación entrópica por un codificador Y 206, un codificador U 208, un codificador V 210 por separado y los residuos codificados entrópicos pueden multiplexarse a nivel de imagen por un multiplexador a nivel de imagen 212. En algunas realizaciones de la presente invención, el residuo de luma para una imagen 200 puede estar asociado con un primer segmento entrópico, el primer residuo de croma para una imagen 202 puede estar asociado con un segundo segmento entrópico, y el segundo residuo para una imagen 204 puede estar asociado con un tercer segmento entrópico. Los datos residuales codificados para los tres planos de color pueden decodificarse en paralelo. En algunas realizaciones de la presente invención, cada división que comprende datos residuales de plano de color puede dividirse en segmentos entrópicos que pueden decodificarse en paralelo. En algunas realizaciones de la presente invención, el residuo de luma 200 puede tener relativamente más segmentos entrópicos en comparación con los residuos de croma 202, 204.
En algunas realizaciones de la presente invención, un flujo de bits de vídeo comprimido puede someterse a transcodificación para que comprenda segmentos entrópicos, permitiendo de ese modo la decodificación entrópica paralela tal como la albergan las realizaciones de la presente invención descritas anteriormente. Algunas realizaciones de la presente invención pueden describirse en relación con la figura 10. Un flujo de bits de entrada sin segmentos entrópicos puede procesarse imagen a imagen según la figura 10. En estas realizaciones de la presente invención, una imagen del flujo de bits de entrada puede someterse a decodificación entrópica 220. Pueden obtenerse los datos que se habían codificado, por ejemplo, datos de modo, información de movimiento, información residual y otros datos. Pueden construirse 222 segmentos entrópicos uno cada vez a partir de los datos. Una cabecera de segmento entrópico correspondiente a un segmento entrópico puede insertarse 224 en un nuevo flujo de bits. El estado del codificador puede restablecerse y la información de vecinos definirse 226. El segmento entrópico puede someterse a codificación entrópica 228 y escribirse en el nuevo flujo de bits. Si hay datos de imagen que no se han consumido 232 por los segmentos entrópicos construidos, entonces puede construirse 222 otro segmento entrópico, y el proceso 224-230 puede continuar hasta que todos los datos de imagen se hayan consumido 234 por los segmentos entrópicos construidos, y entonces puede procesarse la imagen siguiente.
En algunas realizaciones de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos en los que el tamaño de cada segmento entrópico puede ser menor de, o no puede superar, un número fijo de bins. En algunas realizaciones en las que el codificador puede restringir el tamaño de cada segmento entrópico, puede señalizarse el número máximo de bins en el flujo de bits. En realizaciones alternativas en las que el codificador puede restringir el tamaño de cada segmento entrópico, puede definirse el número máximo de bins según el perfil y punto de cumplimiento de nivel del codificador. Por ejemplo, el Anexo A de la especificación de codificación de vídeo de H.264/AVC puede extenderse para que comprenda una definición del número máximo de bins permitidos en un segmento entrópico.
En algunas realizaciones de la presente invención, puede indicarse el número máximo de bins permitidos en un segmento entrópico para cada punto de cumplimiento de nivel del codificador según una tabla, por ejemplo, tal como se muestra en la tabla 2, donde
[Fórmula mat. 1]
Mm.n
indica el número máximo de bins permitidos en un segmento entrópico para un punto de cumplimiento de nivel m.n.
[Tabla 2]
Figure imgf000011_0001
Tabla 2: número máximo de bins por segmento entrópico para cada nivel
El número máximo de bins a modo de ejemplo permitido en un segmento entrópico son
[Fórmula mat. 2]
Mu = 1.000 bins,
[Fórmula mat. 3]
Mi .2 = 2.000 bins, ..., y
[Fórmula mat. 4]
M5.1 = 40.000 bins. Otros número máximo de bins a modo de ejemplo permitido en un segmento entrópico son [Fórmula mat. 5]
M1.1 = 2.500 bins,
[Fórmula mat. 6]
Mi .2 = 4.200 bins, ..., y
[Fórmula mat. 7]
M5.1 = 150.000 bins.
En algunas realizaciones, puede determinarse un conjunto de número máximo de bins permitidos en un segmento entrópico para todos los niveles basándose en la velocidad de transmisión de bits, el tamaño de imagen, número de macrobloques y otros parámetros de codificación. En algunas realizaciones de la presente invención, el número máximo de bins permitidos en un segmento entrópico puede ser el conjunto con el mismo número para todos los niveles. Los valores a modo de ejemplo son de 38.000 bins y 120.000 bins.
En algunas realizaciones de la presente invención, un codificador puede determinar un número de bins en el peor de los casos asociados con un macrobloque, y el codificador puede escribir los bins asociados con:
[Fórmula mat. 8]
ESLICE _ MaxNumberBins
BinsPerMB
macrobloques para cada segmento entrópico, donde
[Fórmula mat. 9]
ESLICE_MaxNumberBins
puede indicar el número máximo de bins permitidos en un segmento entrópico y
[Fórmula mat. 10]
BinsPerMB
puede indicar número de bins en el peor de los casos asociados con un macrobloque. En algunas realizaciones, los macrobloques pueden seleccionarse en orden de barrido por trama. En realizaciones alternativas, los macrobloques pueden seleccionarse en otro orden predefinido. En algunas realizaciones, el número de bins en el peor de los casos asociados con un macrobloque puede ser un número fijo. En realizaciones alternativas, el codificador puede actualizar el número en el peor de los casos basándose en mediciones de los tamaños de macrobloques procesados previamente.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 11. En estas realizaciones, un codificador puede dividir, para un segmento de reconstrucción, el segmento de reconstrucción en una pluralidad de segmentos entrópicos en los que ningún segmento entrópico puede ser de mayor tamaño que un número predeterminado de bins. El codificador puede inicializar 240 a cero un contador asociado con el número de bins en un segmento entrópico actual. El valor de contador puede indicarse como
[Fórmula mat. 11]
A
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 11. Los elementos sintácticos para un macrobloque siguiente pueden obtenerse 242. El macrobloque siguiente puede determinarse según un orden de procesamiento de macrobloques predefinido. En algunas realizaciones, el orden de procesamiento de macrobloques puede corresponder a una ordenación de barrido por trama. Los elementos sintácticos no binarios en el macrobloque pueden convertirse 244 en una cadena de bins. Los elementos sintácticos binarios pueden no requerir conversión. El número de bins asociados con el macrobloque puede determinarse 246. El número de bins asociados con el macrobloque puede incluir los bins en las cadenas de bins asociados con los elementos sintácticos no binarios además de los elementos sintácticos binarios, y el número de bins asociados con el macrobloque puede indicarse como
[Fórmula mat. 12]
Num
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 11.
Si el número de bins asociados con el macrobloque puede añadirse 248 al número de bins ya acumulados asociados con el segmento entrópico actual sin 249 superar el número máximo de bins permitidos para un segmento entrópico, entonces el número de bins acumulados asociados con el segmento entrópico actual puede actualizarse 250 para incluir los bins asociados con el macrobloque, y los bins asociados con el macrobloque pueden escribirse 252, por el codificador entrópico, en el flujo de bits y asociarse con el segmento entrópico actual. Los elementos sintácticos para el macrobloque siguiente pueden obtenerse 242, y el proceso de división puede continuar.
Si la suma 248 del número de bins asociados con el macrobloque y el número de bins ya acumulados asociados con el segmento entrópico actual supera 253 el número máximo de bins permitidos para un segmento entrópico, entonces el codificador puede iniciar 254 un nuevo segmento entrópico asociado con el segmento de reconstrucción actual y puede terminar el segmento entrópico actual. Entonces el contador asociado con el número de bins en el nuevo segmento entrópico, ahora actual, puede inicializarse 256 a cero. El número de bins acumulados asociados con el segmento entrópico actual puede actualizarse 250 para incluir los bins asociados con el macrobloque, y los bins asociados con el macrobloque pueden escribirse 252, por el codificador entrópico, en el flujo de bits y asociarse con el segmento entrópico actual. Los elementos sintácticos para el macrobloque siguiente pueden obtenerse 242, y el proceso de división puede continuar.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 12. En estas realizaciones, un codificador puede dividir, para un segmento de reconstrucción, el segmento de reconstrucción en una pluralidad de segmentos entrópicos en los que ningún segmento entrópico puede ser de mayor tamaño que un número máximo predeterminado de bins. En estas realizaciones, el codificador puede asociar elementos sintácticos de macrobloque con un segmento entrópico hasta que el tamaño del segmento entrópico alcanza un umbral asociado con el número máximo predeterminado de bins permitido en un segmento entrópico. En algunas realizaciones, el umbral puede ser un porcentaje del número máximo de bins permitidos en un segmento entrópico. En una realización a modo de ejemplo, el umbral puede ser el 90% del número máximo de bins permitidos en un segmento entrópico, suponiendo que el mayor número de bins esperados en un macrobloque es menor del 10% del número máximo de bins. En otra realización a modo de ejemplo, el umbral puede ser un porcentaje del número máximo de bins permitidos en un segmento entrópico en el que el porcentaje puede basarse en el mayor número de bins esperados en un macrobloque. En estas realizaciones, una vez que el tamaño de un segmento entrópico supera un tamaño de umbral, entonces puede crearse otro segmento entrópico. El tamaño de umbral puede seleccionarse para garantizar que el segmento entrópico no supera el número máximo de bins permitidos en un segmento entrópico. En algunas realizaciones, el tamaño de umbral puede ser una función del número máximo de bins permitidos en un segmento entrópico y una estimación del número máximo de bins esperados para un macrobloque.
El codificador puede inicializar 270 a cero un contador asociado con el número de bins en un segmento entrópico actual. El valor de contador puede indicarse como
[Fórmula mat. 13]
A
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 12. Los elementos sintácticos para un macrobloque siguiente pueden obtenerse 272. El macrobloque siguiente puede determinarse según un orden de procesamiento de macrobloques predefinido. En algunas realizaciones, el orden de procesamiento de macrobloques puede corresponder a una ordenación de barrido por trama. Los elementos sintácticos no binarios en el macrobloque pueden convertirse 274 en una cadena de bins. Los elementos sintácticos binarios pueden no requerir conversión. Los bins asociados con el macrobloque pueden escribirse 276, por el codificador entrópico, en el flujo de bits y asociarse con el segmento entrópico actual. El número de bins asociados con el macrobloque puede determinarse 278, y el número de bins acumulados asociados con el segmento entrópico actual pueden actualizarse 280 para incluir los bins asociados con el macrobloque. Si el número de bins acumulados asociados con el segmento entrópico actual 282 es mayor que un umbral, que puede indicarse como
[Fórmula mat. 14]
TH(MaxNumBins),
basándose en el número máximo de bins permitidos en un segmento entrópico 284, entonces el codificador puede iniciar 286 un nuevo segmento entrópico y puede terminar el segmento entrópico actual. Entonces el codificador puede inicializar 288 a cero el contador asociado con el número de bins en el nuevo segmento entrópico, ahora actual. Los elementos sintácticos para el macrobloque siguiente pueden obtenerse 272, y el proceso de división puede continuar. Si el número de bins acumulados asociados con el segmento entrópico actual no es mayor que el umbral basándose en el número máximo de bins permitidos en un segmento entrópico 283, entonces los elementos sintácticos para el macrobloque siguiente pueden obtenerse 272, y el proceso de división puede continuar.
En algunas realizaciones de la presente invención, un codificador puede terminar el segmento de reconstrucción actual e iniciar un nuevo segmento de reconstrucción cuando se ha asignado un número de macrobloques predeterminado al segmento de reconstrucción actual.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 13. En estas realizaciones, un codificador puede terminar el segmento de reconstrucción actual e iniciar un nuevo segmento de reconstrucción cuando se ha asignado un número de macrobloques predeterminado al segmento de reconstrucción actual. El codificador puede inicializar 300 a cero un contador asociado con el número de macrobloques en un segmento de reconstrucción actual. El valor de contador puede indicarse como
[Fórmula mat. 15]
AMB
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 13. El codificador puede inicializar 310 a cero un contador asociado con el número de bins en un segmento entrópico actual. El valor de contador puede indicarse como
[Fórmula mat. 16]
ABin
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 13. Si el valor de contador del contador asociado con el número de macrobloques en el segmento de reconstrucción actual 312 no es menor que un número máximo de macrobloques predeterminado permitido en un segmento de reconstrucción 331, entonces un nuevo segmento entrópico puede iniciarse 332 y un nuevo segmento de reconstrucción puede iniciarse 334, terminando el segmento de reconstrucción actual y el segmento entrópico actual. El número máximo de macrobloques permitido en un segmento de reconstrucción puede indicarse como
[Fórmula mat. 17]
MaxMBperRSIice
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 13.
Si el valor de contador del contador asociado con el número de macrobloques en el segmento de reconstrucción actual es menor que el número máximo de macrobloques predeterminado permitido en un segmento de reconstrucción 313, entonces los elementos sintácticos para un macrobloque siguiente pueden obtenerse 314. El macrobloque siguiente puede determinarse según un orden de procesamiento de macrobloques predefinido. En algunas realizaciones, el orden de procesamiento de macrobloques puede corresponder a una ordenación de barrido por trama. Los elementos sintácticos no binarios en el macrobloque pueden convertirse 316 en una cadena de bins. Los elementos sintácticos binarios pueden no requerir conversión. El número de bins asociados con el macrobloque puede determinarse 318. El número de bins asociados con el macrobloque pueden incluir los bins en las cadenas de bins asociados con los elementos sintácticos no binarios además de los elementos sintácticos binarios, y el número de bins asociados con el macrobloque puede indicarse como
[Fórmula mat. 18]
num
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 13.
Si el número de bins asociados con el macrobloque puede añadirse 320 al número de bins ya acumulados asociados con el segmento entrópico actual sin 321 superar un número máximo de bins permitidos para un segmento entrópico, entonces el número de bins acumulados asociados con el segmento entrópico actual pueden actualizarse 322 para incluir los bins asociados con el macrobloque, los bins asociados con el macrobloque pueden escribirse 324, por el codificador entrópico, en el flujo de bits y asociarse con el segmento entrópico actual, y el número de macrobloques asociados con el segmento de reconstrucción actual puede incrementarse 326. El número de macrobloques asociados con el segmento de reconstrucción actual puede compararse 312 con el número máximo de macrobloques predeterminado permitido en un segmento de reconstrucción, y el proceso de división puede continuar.
Si la suma 320 del número de bins asociados con el macrobloque y el número de bins ya acumulados asociados con el segmento entrópico actual supera 327 el número máximo de bins permitidos para un segmento entrópico, entonces el codificador puede iniciar 328 un nuevo segmento entrópico, ahora actual asociado con el segmento de reconstrucción actual, y el contador asociado con el número de bins en el segmento entrópico actual puede inicializarse 330 a cero. El número de bins acumulados asociados con el segmento entrópico actual puede actualizarse 322 para incluir los bins asociados con el macrobloque, los bins asociados con el macrobloque pueden escribirse 324, por el codificador entrópico, en el flujo de bits y asociarse con el segmento entrópico actual, y el número de macrobloques asociados con el segmento de reconstrucción actual puede incrementarse 326. El número de macrobloques asociados con el segmento de reconstrucción actual puede compararse 312 con el número máximo de macrobloques predeterminado permitido en un segmento de reconstrucción, y el proceso de división puede continuar.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 14. En estas realizaciones, un codificador puede iniciar un nuevo segmento de reconstrucción cuando se ha asignado un número de macrobloques predeterminado al segmento de reconstrucción actual. En estas realizaciones, el codificador puede asociar elementos sintácticos de macrobloque con un segmento entrópico hasta que el tamaño del segmento entrópico alcanza un umbral asociado con el número máximo predeterminado de bins permitido en un segmento entrópico. En algunas realizaciones, el umbral puede ser un porcentaje del número máximo de bins permitidos en un segmento entrópico. En una realización a modo de ejemplo, el umbral puede ser el 90% del número máximo de bins permitidos en un segmento entrópico, suponiendo que el mayor número de bins esperados en un macrobloque es menor del 10% del número máximo de bins. En otra realización a modo de ejemplo, el umbral puede ser un porcentaje del número máximo de bins permitidos en un segmento entrópico en la que el porcentaje puede basarse en el mayor número de bins esperados en un macrobloque. En estas realizaciones, una vez que el tamaño de un segmento entrópico supera un tamaño de umbral, entonces puede crearse otro segmento entrópico. El tamaño de umbral puede seleccionarse para garantizar que el segmento entrópico no supera el número máximo de bins permitidos en un segmento entrópico. En algunas realizaciones, el tamaño de umbral puede ser una función del número máximo de bins permitidos en un segmento entrópico y una estimación del número máximo de bins esperados para un macrobloque.
El codificador puede inicializar 350 a cero un contador asociado con el número de macrobloques en un segmento de reconstrucción actual. El valor de contador puede indicarse como
[Fórmula mat. 19]
AMB
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 14. El codificador puede inicializar 352 a cero un contador asociado con el número de bins en un segmento entrópico actual. El valor de contador puede indicarse como
[Fórmula mat. 20]
ABin
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 14. Si el valor de contador del contador asociado con el número de macrobloques en el segmento de reconstrucción actual 354 no es menor que un número máximo de macrobloques predeterminado permitido en un segmento de reconstrucción 373, entonces un nuevo segmento entrópico puede iniciarse 374, y un nuevo segmento de reconstrucción puede iniciarse 376. El número máximo de macrobloques permitido en un segmento de reconstrucción puede indicarse como
[Fórmula mat. 21]
MaxMBperRSIice
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 14.
Si el valor de contador del contador asociado con el número de macrobloques en el segmento de reconstrucción actual es menor que el número máximo de macrobloques predeterminado permitido en un segmento de reconstrucción 355, entonces los elementos sintácticos para un macrobloque siguiente pueden obtenerse 356. El macrobloque siguiente puede determinarse según un orden de procesamiento de macrobloques predefinido. En algunas realizaciones, el orden de procesamiento de macrobloques puede corresponder a una ordenación de barrido por trama. Los elementos sintácticos no binarios en el macrobloque pueden convertirse 358 en una cadena de bins. Los elementos sintácticos binarios pueden no requerir conversión. Los bins asociados con el macrobloque pueden escribirse 360, por el codificador entrópico, en el flujo de bits y asociarse con el segmento entrópico actual. El número de bins asociados con el macrobloque puede determinarse 362, y el número de bins acumulados asociados con el segmento entrópico actual pueden actualizarse 364 para incluir los bins asociados con el macrobloque. Si el número de bins acumulados asociados con el segmento entrópico actual es mayor que un umbral, que puede indicarse como
[Fórmula mat. 22]
TH(MaxNumBins),
basándose en el número máximo de bins permitidos en un segmento entrópico 369, entonces el codificador puede iniciar 370 un nuevo segmento entrópico, e inicializar 372 a cero el contador asociado con el número de bins en un segmento entrópico actual. El número de macrobloques asociados con el segmento de reconstrucción actual puede incrementarse 368. El número de macrobloques asociados con el segmento de reconstrucción actual puede compararse 354 con el número máximo de macrobloques predeterminado permitido en un segmento de reconstrucción, y el proceso de división puede continuar. Si el número de bins acumulados asociados con el segmento entrópico actual no es mayor que el umbral basándose en el número máximo de bins permitidos en un segmento entrópico 367, entonces el número de macrobloques asociados con el segmento de reconstrucción actual puede incrementarse 368, y el número de macrobloques asociados con el segmento de reconstrucción actual puede compararse 354 con el número máximo de macrobloques predeterminado permitido en un segmento de reconstrucción, y el proceso de división puede continuar.
En realizaciones alternativas de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que cada segmento entrópico puede estar asociado con no más de un número de bits predefinido.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 15. En estas realizaciones, un codificador puede dividir, para un segmento de reconstrucción, el segmento de reconstrucción en una pluralidad de segmentos entrópicos en los que ningún segmento entrópico puede ser de mayor tamaño que un número de bits predeterminado. El codificador puede inicializar 400 a cero un contador asociado con el número de bits en un segmento entrópico actual. El valor de contador puede indicarse como
[Fórmula mat. 23]
A
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 15. Los elementos sintácticos para un macrobloque siguiente pueden obtenerse 402. El macrobloque siguiente puede determinarse según un orden de procesamiento de macrobloques predefinido. En algunas realizaciones, el orden de procesamiento de macrobloques puede corresponder a una ordenación de barrido por trama. Los elementos sintácticos no binarios en el macrobloque pueden convertirse 404 en una cadena de bins. Los elementos sintácticos binarios pueden no requerir conversión. Los bins, elementos no binarios convertidos y elementos binarios, asociados con el macrobloque pueden presentarse al codificador entrópico, y los bins pueden someterse a codificación entrópica 406. El número de bits asociados con el macrobloque puede determinarse 408. El número de bits asociados con el macrobloque puede indicarse como
[Fórmula mat. 24]
num
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 15.
Si el número de bits asociados con el macrobloque puede añadirse 410 al número de bits ya acumulados asociados con el segmento entrópico actual sin 411 superar un número máximo de bits permitidos para un segmento entrópico, entonces el número de bits acumulados asociados con el segmento entrópico actual puede actualizarse 412 para incluir los bits asociados con el macrobloque, y los bits asociados con el macrobloque pueden escribirse 414 en el flujo de bits y asociarse con el segmento entrópico actual. Los elementos sintácticos para el macrobloque siguiente pueden obtenerse 402, y el proceso de división puede continuar.
Si la suma 410 del número de bits asociados con el macrobloque y el número de bits ya acumulados asociados con el segmento entrópico actual supera 415 el número máximo de bits permitidos para un segmento entrópico, entonces el codificador puede iniciar 416 un nuevo segmento entrópico asociado con el segmento de reconstrucción actual, y el contador asociado con el número de bits en el segmento entrópico actual puede inicializarse 418 a cero. El número de bits acumulados asociados con el segmento entrópico actual puede actualizarse 412 para incluir los bits asociados con el macrobloque, y los bits asociados con el macrobloque pueden escribirse 414 en el flujo de bits y asociarse con el segmento entrópico actual. Los elementos sintácticos para el macrobloque siguiente pueden obtenerse 402, y el proceso de división puede continuar.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 16. En estas realizaciones, un codificador puede dividir, para un segmento de reconstrucción, el segmento de reconstrucción en una pluralidad de segmentos entrópicos en los que ningún segmento entrópico puede ser de mayor tamaño que un número máximo de bits predeterminado. En estas realizaciones, el codificador puede asociar elementos sintácticos de macrobloque con un segmento entrópico hasta que el tamaño del segmento entrópico alcanza un umbral asociado con el número máximo de bits predeterminado permitidos en un segmento entrópico. En algunas realizaciones, el umbral puede ser un porcentaje del número máximo de bits permitidos en un segmento entrópico. En una realización a modo de ejemplo, el umbral puede ser el 90% del número máximo de bits permitidos en un segmento entrópico, suponiendo que el mayor número de bits esperado en un macrobloque es menor del 10% del número máximo de bits. En otra realización a modo de ejemplo, el umbral puede ser un porcentaje del número máximo de bits permitidos en un segmento entrópico en la que el porcentaje puede basarse en el mayor número de bits esperado en un macrobloque. En estas realizaciones, una vez que el tamaño de un segmento entrópico supera un tamaño de umbral, entonces puede crearse otro segmento entrópico. El tamaño de umbral puede seleccionarse para garantizar que el segmento entrópico no supera el número máximo de bits permitidos en un segmento entrópico. En algunas realizaciones, el tamaño de umbral puede ser una función del número máximo de bits permitidos en un segmento entrópico y una estimación del número máximo de bits esperado para un macrobloque. El codificador puede inicializar 440 a cero un contador asociado con el número de bits en un segmento entrópico actual. El valor de contador puede indicarse como
[Fórmula mat. 25]
A
con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 16. Los elementos sintácticos para un macrobloque siguiente pueden obtenerse 442. El macrobloque siguiente puede determinarse según un orden de procesamiento de macrobloques predefinido. En algunas realizaciones, el orden de procesamiento de macrobloques puede corresponder a una ordenación de barrido por trama. Los elementos sintácticos no binarios en el macrobloque pueden convertirse 444 en una cadena de bins. Los elementos sintácticos binarios pueden no requerir conversión. Los bins asociados con el macrobloque pueden someterse a codificación entrópica 446, y el número de bins asociados con el macrobloque puede determinarse 448. El número de bits acumulados asociados con el segmento entrópico actual puede actualizarse 450 para incluir los bins asociados con el macrobloque, y los bins sometidos a codificación entrópica asociados con el macrobloque pueden escribirse 452 en el flujo de bits. Si el número de bits acumulados asociados con el segmento entrópico actual 454 es mayor que un umbral basándose en el número máximo de bits permitidos en un segmento entrópico 456, entonces el codificador puede iniciar 458 un nuevo segmento entrópico, e inicializar 460 a cero el contador asociado con el número de bits en un segmento entrópico actual. Los elementos sintácticos para el macrobloque siguiente pueden obtenerse 442, y el proceso de división puede continuar. Si el número de bits acumulados asociados con el segmento entrópico actual no es mayor que un umbral basándose en el número máximo de bits permitidos en un segmento entrópico 455, entonces los elementos sintácticos para el macrobloque siguiente pueden obtenerse 442, y el proceso de división puede continuar.
En realizaciones alternativas de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que cada segmento entrópico puede estar asociado con no más de un número de macrobloques predefinido.
En algunas realizaciones de la presente invención, una restricción en el número máximo de macrobloques en un segmento de reconstrucción puede imponerse además de una restricción en el tamaño de un segmento entrópico. En algunas realizaciones de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse para ser menor que un número de macrobloques predefinido y menor que un número de bins predefinido.
En algunas realizaciones de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse para ser menor que un número de macrobloques predefinido y menor que un número de bits predefinido.
En algunas realizaciones de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse para ser menor que un número de macrobloques predefinido, menor que un número de bins predefinido y menor que un número de bits predefinido.
En algunas realizaciones de la presente invención, la codificación de bins dentro de un codificador entrópico puede paralelizarse permitiendo la codificación paralela de más de un bin, lo que puede reducir el tiempo de codificación. Estas realizaciones de la presente invención pueden entenderse en relación con un codificador entrópico a modo de ejemplo representado en la figura 17. En estas realizaciones, el codificador entrópico 480 puede comprender una unidad de adaptación según el contexto 482, un selector de codificador de bins, basado en estado 484 y una pluralidad de codificadores de bins, también considerados unidades de codificador de bins, (se muestran tres) 486, 488, 500 que pueden funcionar en paralelo. Pueden ponerse a disposición bins 502 en el codificador entrópico 480 desde un binarizador 504 que puede generar los bins 502 a partir de símbolos de entrada 506. Pueden ponerse a disposición los bins 502 para la unidad de adaptación según el contexto 482 y el selector de codificador de bins, basado en estado 484. La unidad de adaptación según el contexto 482 puede realizar adaptación según el contexto y generar un estado modelo, también denominado estado, 508 que puede usarse para seleccionar un codificador de bins de entre los codificadores de bins 486, 488, 500 al que puede dirigirse un bin 502. El selector de codificador de bins, basado en estado 484 puede seleccionar el codificador de bins de entre los codificadores de bins 486, 488, 500 asociado con el estado modelo generado 508 para codificar el bin 502. En algunas realizaciones (no mostradas), el estado generado 508 puede ponerse a disposición del codificador de bins seleccionado. Pueden generarse bits de salida 510, 512, 514 por los codificadores de bins 486, 488, 500, y los bits de salida 510, 512, 514 pueden incorporarse en un flujo de bits. En algunas realizaciones de la presente invención, los bits de salida 510, 512, 514 pueden almacenarse en memoria intermedia e incorporarse en el flujo de bits mediante concatenación. En realizaciones alternativas, los bits de salida 510, 512, 514 pueden almacenarse en memoria intermedia e incorporarse en el flujo de bits según un esquema de entrelazado.
Según las realizaciones de la presente invención descritas en relación con la figura 17, un primer bin puede enviarse a un primer codificador de bins en respuesta a un primer estado modelo generado en relación con el primer bin. La unidad de adaptación según el contexto 482, tras completarse el procesamiento del primer bin, puede empezar el procesamiento de un segundo bin, enviando el segundo bin a un segundo codificador de bins en respuesta a un segundo estado modelo generado en relación con el segundo bin, permitiendo de ese modo un procesamiento sustancialmente paralelo de más de un bin.
En realizaciones alternativas de la presente invención, un codificador entrópico puede comprender una pluralidad de unidades de adaptación según el contexto que pueden funcionar en paralelo y un único codificador de bins. En sistemas en los que las unidades de adaptación según el contexto requieren un tiempo de procesamiento más largo que el codificador de bins, una pluralidad de unidades de adaptación según el contexto que funcionan en paralelo pueden reducir el tiempo de codificación. Algunas de estas realizaciones de la presente invención pueden entenderse en relación con un codificador entrópico a modo de ejemplo representado en la figura 18. En estas realizaciones, el codificador entrópico 530 puede comprender una pluralidad de unidades de adaptación según el contexto (se muestran tres) 532, 534, 536, un selector de unidad de adaptación según el contexto 538, un selector de estado 540 y un codificador de bins 542. Pueden ponerse a disposición bins 544 para el codificador entrópico 530 desde un binarizador 546 que puede generar los bins 544 a partir de símbolos de entrada 548. Pueden ponerse a disposición los bins 544 para el selector de unidad de adaptación según el contexto 538, el selector de estado 540 y el codificador de bins 542. El selector de unidad de adaptación según el contexto 538 puede usarse para seleccionar, o para planificar, una unidad de adaptación según el contexto 532, 534, 536 a la que puede dirigirse un bin 544 y a partir del que puede generarse un valor de estado 550, 552, 554. En algunas realizaciones a modo de ejemplo, el selector de unidad de adaptación según el contexto 538 puede seleccionar una unidad de adaptación según el contexto entre las unidades de adaptación según el contexto 532, 534, 536 basándose en la sintaxis asociada con el bin, por ejemplo un identificador de unidad de adaptación según el contexto puede estar asociado con un bin que identifica la unidad de adaptación según el contexto a la que puede dirigirse el bin para su procesamiento. En realizaciones a modo de ejemplo alternativas, el selector de unidad de adaptación según el contexto 538 puede seleccionar una unidad de adaptación según el contexto 532, 534, 536 basándose en un protocolo de planificación o limitación de equilibrado de carga asociada con las unidades de adaptación según el contexto 532, 534, 536. En algunas realizaciones, el valor de estado generado puede seleccionarse por el selector de estado 540, según el criterio usado en el selector de unidad de adaptación según el contexto 538, en el momento apropiado para hacerse pasar al codificador de bins 542. El codificador de bins 542 puede usar el valor de estado 556 por el que ha pasado el selector de estado 540 en la codificación del bin 544. En realizaciones alternativas de la presente invención (no mostradas), el valor de estado puede no requerirse por el codificador de bins y, por tanto, no ponerse a disposición del codificador de bins. Pueden generarse bits de salida 558 por el codificador de bins 542, y los bits de salida 558 pueden incorporarse en un flujo de bits. En algunas realizaciones de la presente invención, los bits de salida 558 pueden almacenarse en memoria intermedia e incorporarse en el flujo de bits mediante concatenación. En realizaciones alternativas, los bits de salida 558 pueden almacenarse en memoria intermedia e incorporarse en el flujo de bits según un esquema de entrelazado.
Aún en realizaciones alternativas de la presente invención, un codificador entrópico puede comprender una pluralidad de unidades de adaptación según el contexto que pueden funcionar en paralelo y una pluralidad de codificadores de bins que pueden funcionar en paralelo. Estas realizaciones de la presente invención pueden entenderse en relación con un codificador entrópico a modo de ejemplo representado en la figura 19. En estas realizaciones, el codificador entrópico 570 puede comprender una pluralidad de unidades de adaptación según el contexto (se muestran tres) 572, 574, 576, un selector de unidad de adaptación según el contexto 578, un selector de estado 580, un selector de codificador de bins, basado en estado 582 y una pluralidad de codificadores de bins (se muestran tres) 584, 586, 588. Pueden ponerse a disposición bins 590 del codificador entrópico 570 desde un binarizador 592 que puede generar los bins 590 a partir de símbolos de entrada 594. Pueden ponerse a disposición los bins 590 del selector de unidad de adaptación según el contexto 578, el selector de estado 580 y el selector de codificador de bins 582. El selector de unidad de adaptación según el contexto 578 puede usarse para seleccionar, o para planificar, una unidad de adaptación según el contexto 572, 574, 576 a la que puede dirigirse un bin 590 y a partir de la que puede generarse un valor de estado 596, 598, 600. El valor de estado generado puede seleccionarse por el selector de estado 580 en el momento apropiado para hacerse pasar al selector de codificador de bins, basado en estado 582. El selector de codificador de bins, basado en estado 582 puede usar el valor de estado 602 por el que ha pasado el selector de estado 580 para seleccionar el codificador de bins 584, 586, 588 al que puede dirigirse un bin 590. En realizaciones alternativas (no mostradas), el valor de estado 602 puede ponerse a disposición del codificador de bins seleccionado. El codificador de bins seleccionado puede usar el valor de estado 602 en la codificación del bin 590. En realizaciones alternativas de la presente invención (no mostradas), el valor de estado puede no requerirse por el codificador de bins y, por tanto, no ponerse a disposición del codificador de bins. Pueden generarse bits de salida 604, 606, 608 por los codificadores de bins 584, 586, 588 y los bits de salida 604, 606, 608 pueden incorporarse en un flujo de bits. En algunas realizaciones de la presente invención, los bits de salida 604, 606, 608 pueden almacenarse en memoria intermedia e incorporarse en el flujo de bits mediante concatenación. En realizaciones alternativas, los bits de salida 604, 606, 608 pueden almacenarse en memoria intermedia e incorporarse en el flujo de bits según un esquema de entrelazado
Una realización a modo de ejemplo de la presente invención puede comprender una pluralidad de CODEC de codificación de longitud variable que pueden funcionar en paralelo.
En una realización a modo de ejemplo de la presente invención, un codificador de bins puede comprender codificación aritmética binaria. En otra realización a modo de ejemplo de la presente invención, un codificador de bins puede comprender codificación de longitud variable. Aún en otra realización a modo de ejemplo de la presente invención, un codificador de bins puede comprender codificación de longitud fija.
En general, un codificador entrópico puede comprender
[Fórmula mat. 26]
Nca
unidades de adaptación según el contexto y
[Fórmula mat. 27]
Nbc
unidades de codificador de bins, donde
[Fórmula mat. 28]
Nca
es un número entero mayor que, o igual a, uno y
[Fórmula mat. 29]
Nbc
es un número entero mayor que, o igual a, uno.
En algunas realizaciones de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse de tal manera que una, o más, de las
[Fórmula mat. 30]
Nca
unidades de adaptación según el contexto y
[Fórmula mat. 31]
Nbc
unidades de codificador de bins puede funcionar cada una en no más de un número limitado de bins durante el procesamiento del segmento entrópico. Las unidades de adaptación según el contexto y unidades de codificador de bins con tal restricción pueden denominarse unidades de codificador entrópico restringidas.
En algunas realizaciones de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse de tal manera que ninguna de las
[Fórmula mat. 32]
Nca
unidades de adaptación según el contexto puede funcionar en más de los
[Fórmula mat. 33]
Bca
bins durante el procesamiento de un segmento entrópico. En algunas realizaciones de la presente invención, el valor de
[Fórmula mat. 34]
Bca
puede señalizarse, por ejemplo, en un flujo de bits, limitación de perfil, limitación de nivel u otro mecanismo normativo.
En realizaciones alternativas de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse de tal manera que ninguna de las
[Fórmula mat. 35]
Nbc
unidades de codificador de bins puede funcionar en más de
[Fórmula mat. 36]
Bbc
bins durante el procesamiento de un segmento entrópico. En algunas realizaciones de la presente invención, el valor de
[Fórmula mat. 37]
Bbc
puede señalizarse, por ejemplo, en un flujo de bits, limitación de perfil, limitación de nivel u otro mecanismo normativo.
Aún en realizaciones alternativas de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse de tal manera que ninguna de las
[Fórmula mat. 38]
Nca
unidades de adaptación según el contexto pueden funcionaren más de
[Fórmula mat. 39]
Bca
bins y ninguna de las
[Fórmula mat. 40]
Nbc
unidades de codificador de bins puede funcionar en más de
[Fórmula mat. 41]
Bbc
bins durante el procesamiento de un segmento entrópico. En algunas realizaciones de la presente invención, el valor de
[Fórmula mat. 42]
Bbc
y el valor de
[Fórmula mat. 43]
Bca
puede señalizarse, por ejemplo, en un flujo de bits, limitación de perfil, limitación de nivel u otro mecanismo normativo.
Todavía en realizaciones alternativas de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse de tal manera que la
[Fórmula mat. 44]
Nca
unidad de adaptación según el contexto, indicada como
[Fórmula mat. 45]
Nca(i),
para
[Fórmula mat. 46]
i = 1, ..., Nca,
puede funcionar en no más de
[Fórmula mat. 47]
Bca(i)
bins y la
[Fórmula mat. 48]
Nbc unidad de codificador de bins de orden i,
[Fórmula mat. 49]
Nbc(i),
para
[Fórmula mat. 50]
i — 1, ..., Nbc,
pueden funcionar en no más de
[Fórmula mat. 51]
Bbc(i)
bins durante el procesamiento de un segmento entrópico. En algunas realizaciones de la presente invención, los valores de
[Fórmula mat. 52]
Bbc(i)
y los valores de
[Fórmula mat. 53]
Bca(i)
pueden señalizarse, por ejemplo, en un flujo de bits, limitación de perfil, limitación de nivel u otro mecanismo normativo.
Algunas realizaciones a modo de ejemplo de la presente invención pueden describirse en relación con la figura 20. En estas realizaciones, un codificador puede dividir, para un segmento de reconstrucción, el segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse de tal manera que una, o más, de
[Fórmula mat. 54]
Nca
unidades de adaptación según el contexto y
[Fórmula mat. 55]
Nbc
unidades de codificador de bins pueden funcionar en no más de un número limitado de bins. El codificador puede inicializar 650 a cero un contador, para cada unidad de codificador entrópico restringida, asociado con el número de bins procesados en un segmento entrópico actual. Con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 20, el valor de contador puede indicarse como
[Fórmula mat. 56]
A,
donde
[Fórmula mat. 57]
A
representa un vector, correspondiendo cada entrada en el vector al número acumulado de bins procesados, para el segmento entrópico actual, por una unidad de codificador entrópico restringida. Los elementos sintácticos para un macrobloque siguiente pueden obtenerse 652. El macrobloque siguiente puede determinarse según un orden de procesamiento de macrobloques predefinido. En algunas realizaciones, el orden de procesamiento de macrobloques puede corresponder a una ordenación de barrido por trama. Los elementos sintácticos no binarios en el macrobloque pueden convertirse 654 en una cadena de bins. Los elementos sintácticos binarios pueden no requerir conversión. El número de bins, asociados con el macrobloque, procesados por cada unidad de codificador entrópico restringida puede determinarse 656. El número de bins asociados con el macrobloque pueden incluir los bins en las cadenas de bins asociados con los elementos sintácticos no binarios además de los elementos sintácticos binarios. Con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 20, el número de bins, asociados con el macrobloque, procesados por cada unidad de codificador entrópico restringida puede indicarse como
[Fórmula mat. 58]
num,
donde,
[Fórmula mat. 59]
num
representa un vector, correspondiendo cada entrada en el vector al número de bins procesados, para el macrobloque actual, por una unidad de codificador entrópico restringida.
Si el número de bins asociados con el macrobloque para cada unidad de codificador entrópico restringida puede añadirse 658 al número de bins ya acumulados, asociados con el segmento entrópico actual, para cada unidad de codificador entrópico restringida, sin 659 superar un número máximo de bins permitidos para cualquier unidad de codificador entrópico restringida, entonces el número de bins acumulados asociados con el segmento entrópico actual puede actualizarse 660 para incluir los bins asociados con el macrobloque, y los bins asociados con el macrobloque pueden escribirse 662, por el codificador entrópico, en el flujo de bits y asociarse con el segmento entrópico actual. Los elementos sintácticos para el macrobloque siguiente pueden obtenerse 652, y el proceso de división puede continuar.
Si la suma 658 del número de bins asociados con el macrobloque y el número de bins ya acumulados asociados con el segmento entrópico actual supera 663 el número máximo de bins permitidos para cualquier unidad de codificador entrópico restringida, entonces el codificador puede iniciar 664 un nuevo segmento entrópico asociado con el segmento de reconstrucción actual, y el contador asociado con el número de bins en el segmento entrópico actual puede inicializarse 666 a cero. El número de bins acumulados asociados con el segmento entrópico actual puede actualizarse 660 para incluir los bins asociados con el macrobloque, y los bins asociados con el macrobloque pueden escribirse 662, por el codificador entrópico, en el flujo de bits y asociarse con el segmento entrópico actual. Los elementos sintácticos para el macrobloque siguiente pueden obtenerse 652, y el proceso de división puede continuar.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 21. En estas realizaciones, un codificador puede dividir, para un segmento de reconstrucción, el segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que el tamaño de cada segmento entrópico puede restringirse de tal manera que una, o más, de
[Fórmula mat. 60]
Nca
unidades de adaptación según el contexto y
[Fórmula mat. 61]
Nbc
unidades de codificador de bins pueden funcionar en no más de un número limitado de bins. El codificador puede inicializar 700 a cero un contador, para cada unidad de codificador entrópico restringida, asociado con el número de bins procesados en un segmento entrópico actual por la unidad de codificador entrópico restringida. Con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 21, el valor de contador puede indicarse como
[Fórmula mat. 62]
A,
donde
[Fórmula mat. 63]
A
representa un vector correspondiendo cada entrada en el vector al número acumulado de bins procesados, para el segmento entrópico actual, por una unidad de codificador entrópico restringida. En estas realizaciones, el codificador puede asociar elementos sintácticos de macrobloque con un segmento entrópico hasta que el número de bins procesados por una unidad de codificador entrópico restringida alcanza un umbral asociado con el número máximo predeterminado de bins que se permite que se procesen, en un segmento entrópico, por la unidad de codificador entrópico restringida. En algunas realizaciones, el umbral puede ser un porcentaje del número máximo de bins que se permite que se procesen, en un segmento entrópico, por la unidad de codificador entrópico restringida. En una realización a modo de ejemplo, el umbral puede ser el 90% del número máximo de bins que se permite que se procesen, en un segmento entrópico, por la unidad de codificador entrópico restringida, suponiendo que el mayor número de bins que se espera que se procesen en un macrobloque por la unidad de codificador entrópico restringida es menor del 10% del número máximo de bins que se permite que se procesen, en un segmento entrópico, por la unidad de codificador entrópico restringida. En otra realización a modo de ejemplo, el umbral puede ser un porcentaje del número máximo de bins que se permite que se procesen, en un segmento entrópico, por una unidad de codificador entrópico restringida en la que el porcentaje puede basarse en el mayor número de bins que se espera que se procesen en un macrobloque por la unidad de codificador entrópico restringida. En estas realizaciones, una vez que el tamaño de un segmento entrópico supera un tamaño de umbral, entonces puede crearse otro segmento entrópico. El tamaño de umbral puede seleccionarse para garantizar que el segmento entrópico no supera el número máximo de bins que se permite que se procesen por una unidad de codificador entrópico restringida cualquiera en un segmento entrópico. En algunas realizaciones, el tamaño de umbral puede ser una función del número máximo de bins permitidos en un segmento entrópico y una estimación del número máximo de bins esperados para un macrobloque.
Los elementos sintácticos para un macrobloque siguiente pueden obtenerse 702. El macrobloque siguiente puede determinarse según un orden de procesamiento de macrobloques predefinido. En algunas realizaciones, el orden de procesamiento de macrobloques puede corresponder a una ordenación de barrido por trama. Los elementos sintácticos no binarios en el macrobloque pueden convertirse 704 en una cadena de bins. Los elementos sintácticos binarios pueden no requerir conversión. Los bins asociados con el macrobloque pueden escribirse 706, por el codificador entrópico, en el flujo de bits y asociarse con el segmento entrópico actual. El número de bins, asociados con el macrobloque, procesados por cada unidad de codificador entrópico restringida puede determinarse 708. El número de bins asociados con el macrobloque pueden incluir los bins en las cadenas de bins asociados con los elementos sintácticos no binarios además de los elementos sintácticos binarios. Con fines ilustrativos en la parte restante de la descripción de las realizaciones de la presente invención descritas en relación con la figura 21, el número de bins, asociados con el macrobloque, procesados por cada unidad de codificador entrópico restringida puede indicarse como
[Fórmula mat. 64]
num,
donde,
[Fórmula mat. 65]
num
representa un vector correspondiendo cada entrada en el vector al número de bins procesados, para el macrobloque actual, por una unidad de codificador entrópico restringida correspondiente. El número de bins acumulados, asociados con el segmento entrópico actual, procesados por cada unidad de codificador entrópico restringida puede actualizarse 710 para incluir los bins asociados con el macrobloque. Si el número de bins acumulados 712, asociados con el segmento entrópico actual, procesados por una unidad de codificador entrópico restringida es mayor que un umbral, que puede indicarse como
[Fórmula mat. 66]
TH(MaxNumBins)(i)
para la unidad de codificador entrópico restringida i, entonces el codificador puede iniciar 716 un nuevo segmento entrópico, e inicializar 718 a cero el contador asociado con el número de bins procesados por cada unidad de codificador entrópico restringida en un segmento entrópico actual. Los elementos sintácticos para el macrobloque siguiente pueden obtenerse 702, y el proceso de división puede continuar. Si el número de bins acumulados, asociados con el segmento entrópico actual, procesados por una unidad de codificador entrópico restringida no es mayor que el umbral 713, entonces los elementos sintácticos para el macrobloque siguiente pueden obtenerse 702, y el proceso de división puede continuar.
Algunas realizaciones de la presente invención pueden comprender una combinación de los criterios descritos anteriormente para la división de segmento entrópico.
Ha de entenderse que aunque algunas realizaciones de la presente invención pueden restringir el tamaño de un segmento entrópico para que sea menor que un primer tamaño predefinido, que el tamaño del segmento entrópico puede restringirse de manera equivalente para que no supere un segundo tamaño predefinido. Las realizaciones descritas en el presente documento son realizaciones a modo de ejemplo de la presente invención, y un experto habitual en la técnica apreciará que hay realizaciones equivalentes de la presente invención para restringir el tamaño de un segmento entrópico.
En algunas realizaciones de la presente invención, iniciar un nuevo segmento entrópico puede comprender terminar el segmento actual y considerar el nuevo segmento entrópico, el segmento entrópico actual.
En algunas realizaciones de la presente invención, la decodificación de una pluralidad de bits dentro de un segmento entrópico puede paralelizarse dentro de un decodificador entrópico que comprende una pluralidad de decodificadores de bins, lo que puede reducir el tiempo de decodificación. Algunas realizaciones a modo de ejemplo de la presente invención pueden entenderse en relación con un decodificador entrópico a modo de ejemplo 750, representado en la figura 22, que comprende una pluralidad de (se muestran tres) decodificadores de bins 762, 764, 766. Pueden ponerse a disposición bits 752 dentro de un segmento entrópico y pueden ponerse a disposición símbolos decodificados previamente 754 a un decodificador entrópico 750. Pueden ponerse a disposición los bits 752 a un selector de decodificador de bins 756 que puede seleccionar, basándose en un estado de contexto 758 generado a partir de una unidad de adaptación según el contexto 760, un decodificador de bins, de entre los decodificadores de bins 762, 764, 766. La unidad de adaptación según el contexto 760 puede generar el estado de contexto 758 basándose en los símbolos decodificados previamente 754 puestos a disposición de la unidad de adaptación según el contexto 760. El selector de decodificador de bins 756 puede asignar un decodificador de bins 762, 764, 766 basándose en el estado de contexto 758. El bit que va a decodificarse 752 puede hacerse pasar por el selector de decodificador de bins 756 al decodificador de bins seleccionado. Los decodificadores de bins 762, 764, 766 pueden generar bins decodificados 768, 770, 772 que pueden multiplexarse por un multiplexador 774 y los bins multiplexados 776 pueden enviarse a un simbolizador 778 que puede generar los símbolos 754 asociados con los bins 776.
En algunas realizaciones de la presente invención, la decodificación de una pluralidad de bits dentro de un segmento entrópico puede paralelizarse dentro de un decodificador entrópico que comprende una pluralidad de unidades de adaptación según el contexto, lo que puede reducir el tiempo de decodificación. Algunas realizaciones a modo de ejemplo de la presente invención pueden entenderse en relación con un decodificador entrópico a modo de ejemplo 800, representado en la figura 23, que comprende una pluralidad de (se muestran tres) unidades de adaptación según el contexto 814, 816, 818. Pueden ponerse a disposición bits 802 dentro de un segmento entrópico y pueden ponerse a disposición símbolos decodificados previamente 810 de un decodificador entrópico 800. Pueden ponerse a disposición los bits 802 de un selector de unidad de adaptación según el contexto 812 que puede seleccionar de una pluralidad de unidades de adaptación según el contexto 814, 816, 818 una unidad de adaptación según el contexto para el proceso de decodificación de un bit de entrada. En algunas realizaciones de la presente invención, el selector de unidad de adaptación según el contexto 812 puede seleccionar la unidad de adaptación según el contexto de orden N cuando recibe cada bit de orden N. La unidad de adaptación según el contexto seleccionada puede generar un estado de contexto 820, 822, 824 basándose en los símbolos decodificados previamente 810 puestos a disposición de la unidad de adaptación según el contexto seleccionada. Un selector de estado 826, en el momento apropiado, puede seleccionar el estado de contexto generado asociado con un bit de entrada. En algunas realizaciones de la presente invención, el selector de estado 826 puede seleccionar la unidad de adaptación según el contexto de orden N cuando recibe cada bit de orden N según el mismo procedimiento que el selector de unidad de adaptación según el contexto 812. El estado seleccionado 828 puede ponerse a disposición del decodificador de bins 804. El decodificador de bins 804 puede decodificar el bit 802 y enviar el bin decodificado 806 a un simbolizador 808 que puede generar un símbolo 810 asociado con el bin decodificado 806.
En algunas realizaciones de la presente invención, la decodificación de una pluralidad de bits dentro de un segmento entrópico puede paralelizarse dentro de un decodificador entrópico que comprende una pluralidad de unidades de adaptación según el contexto y una pluralidad de decodificadores de bins, lo que puede reducir el tiempo de decodificación. Algunas realizaciones a modo de ejemplo de la presente invención pueden entenderse en relación con un decodificador entrópico a modo de ejemplo 850, representado en la figura 24, que comprende una pluralidad de (se muestran tres) unidades de adaptación según el contexto 852, 854, 856 y una pluralidad de (se muestran tres) decodificadores de bins 858, 860, 862. Pueden ponerse a disposición bits 864 dentro de un segmento entrópico y pueden ponerse a disposición símbolos decodificados previamente 866 de un decodificador entrópico 850. Pueden ponerse a disposición los bits 864 de un selector de unidad de adaptación según el contexto 868 que puede seleccionar de la pluralidad de unidades de adaptación según el contexto 852, 854, 856 una unidad de adaptación según el contexto para el proceso de decodificación de un bit de entrada. En algunas realizaciones de la presente invención, el selector de unidad de adaptación según el contexto 868 puede seleccionar la unidad de adaptación según el contexto de orden N cuando recibe cada bit de orden N. La unidad de adaptación según el contexto seleccionada puede generar un estado de contexto 870, 872, 874 basándose en los símbolos decodificados previamente 866 puestos a disposición de la unidad de adaptación según el contexto seleccionada. Un selector de estado 876, en el momento apropiado, puede seleccionar el estado de contexto generado asociado con un bit de entrada. En algunas realizaciones de la presente invención, el selector de estado 876 puede seleccionar la unidad de adaptación según el contexto de orden N cuando recibe cada bit de orden N según el mismo procedimiento que el selector de unidad de adaptación según el contexto 868. El estado seleccionado 878 puede ponerse a disposición de un selector de decodificador de bins 880, que puede seleccionar, basándose en el estado de contexto seleccionado 878, un decodificador de bins 858, 860, 862. El selector de decodificador de bins 880 puede asignar un decodificador de bins 858, 860, 862 basándose en el estado de contexto 878. El bit que va a decodificarse 864 puede hacerse pasar por el selector de decodificador de bins 880 al decodificador de bins seleccionado. Los decodificadores de bins 858, 860, 862 pueden generar bins decodificados 882, 884, 886 que puede multiplexarse por un multiplexador 888 y los bins multiplexados 890 pueden enviarse a un simbolizador 892 que puede generar los símbolos 866 asociados con los bins 890.
En algunas realizaciones de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que los macrobloques dentro de un segmento entrópico son contiguos. La figura 25 representa un segmento de reconstrucción a modo de ejemplo 950 dividido en tres segmentos entrópicos: el segmento entrópico 0 mostrado en rayado cruzado 952, el segmento entrópico 1 mostrado en color blanco 954 y el segmento entrópico 2 mostrado en sombreado de puntos 956. Los macrobloques dentro de cada segmento entrópico 952, 954, 956, en este segmento de reconstrucción a modo de ejemplo 950, son contiguos.
En realizaciones alternativas de la presente invención, un codificador puede dividir un segmento de reconstrucción en una pluralidad de segmentos entrópicos, en los que los macrobloques dentro de un segmento entrópico pueden no ser contiguos. La figura 26 representa un segmento de reconstrucción a modo de ejemplo 960 dividido en tres segmentos entrópicos: el segmento entrópico 0 mostrado en rayado cruzado 962, el segmento entrópico 1 mostrado en color blanco 964 y el segmento entrópico 2 mostrado en sombreado de puntos 966. Los macrobloques dentro de cada segmento entrópico 962, 964, 966, en este segmento de reconstrucción a modo de ejemplo 960, no son contiguos. Una división de un segmento de reconstrucción en la que los macrobloques dentro de un segmento entrópico no son contiguos puede denominarse división entrelazada.
En algunas realizaciones de la presente invención, durante la decodificación entrópica de un bloque actual dentro de un segmento entrópico, el decodificador puede usar otros bloques del mismo segmento entrópico para predecir información relacionada con la decodificación entrópica del bloque actual. En algunas realizaciones de la presente invención, durante la reconstrucción de un bloque actual dentro de un segmento de reconstrucción, pueden usarse otros bloques del mismo segmento de reconstrucción para predecir información relacionada con la reconstrucción del bloque actual.
En algunas realizaciones de la presente invención en las que un segmento de reconstrucción comprende una división entrelazada, bloques vecinos dentro de un segmento entrópico usado en la decodificación de un bloque actual dentro del segmento entrópico pueden no ser directamente vecinos, o contiguos. La figura 27 ilustra esta situación para la división entrelazada a modo de ejemplo representada en la figura 26.
En la figura 27, para un bloque actual 970 dentro de un segmento entrópico 964, el bloque vecino a la izquierda usado para la decodificación entrópica del bloque actual 970 es el bloque vecino a la izquierda, contiguo 972 dentro del segmento entrópico 964. El bloque vecino superior usado para la decodificación entrópica del bloque actual 970 es el bloque vecino superior, no contiguo 974 dentro del mismo segmento entrópico 964. Para la reconstrucción del bloque actual 970, el bloque vecino a la izquierda es el bloque vecino a la izquierda, contiguo 972 dentro del segmento de reconstrucción 960, y el bloque vecino superior es el bloque vecino superior, contiguo 976 dentro del segmento de reconstrucción 960.
En algunas realizaciones de la presente invención en las que un segmento de reconstrucción comprende una división entrelazada, puede no haber un bloque vecino apropiado dentro de un segmento entrópico que va a usarse en la decodificación de un bloque actual dentro del segmento entrópico. La figura 28 ilustra esta situación para la división entrelazada a modo de ejemplo representada en la figura 26.
En la figura 28, para un bloque actual 980 dentro de un segmento entrópico 964, no hay bloque vecino a la izquierda dentro del segmento entrópico 964 que va a usarse para la decodificación entrópica del bloque actual 980. El bloque vecino superior usado para la decodificación entrópica del bloque actual 980 es el bloque vecino superior, no contiguo 982 dentro del mismo segmento entrópico 964. Para la reconstrucción del bloque actual 980, el bloque vecino a la izquierda es el bloque vecino a la izquierda, contiguo 984 dentro del segmento de reconstrucción 960, y el bloque vecino superior es el bloque vecino superior, contiguo 986 dentro del segmento de reconstrucción 960. En algunas realizaciones de la presente invención, un decodificador puede preprocesar un flujo de bits entrante completo para identificar las ubicaciones de los segmentos entrópicos. En algunas realizaciones de la presente invención, un decodificador puede preprocesar todo un segmento de reconstrucción para identificar las ubicaciones de los segmentos entrópicos dentro del segmento de reconstrucción. En algunas realizaciones, las ubicaciones de los segmentos entrópicos pueden determinarse identificando las ubicaciones de las cabeceras de segmento entrópico. En estas realizaciones, el decodificador puede leer los bits en el flujo de bits y pueden identificarse valores de código de inicio predefinidos.
En realizaciones alternativas, pueden limitarse las cabeceras de segmento entrópico a un rango de bits ubicados en posiciones predefinidas dentro de un flujo de bits entrante. En realizaciones alternativas, pueden limitarse las cabeceras de segmento entrópico a una gama de bytes ubicados en posiciones predefinidas dentro de un flujo de bits entrante. En estas realizaciones, o bien con alineación de bits o bien con alineación de bytes, no es necesario que un decodificador preprocese partes significativamente grandes del flujo de bits entrante para ubicar los segmentos entrópicos.
En algunas realizaciones de la presente invención, un codificador puede señalizar, en el flujo de bits, información de ubicación de segmento entrópico, también denominada parámetros de ubicación de segmento entrópico, por ejemplo, información de desplazamiento y rango, lo que puede limitar las ubicaciones de las cabeceras de segmento entrópico. En realizaciones alternativas, la información de ubicación de segmento entrópico puede no señalizarse en el flujo de bits, si no que puede determinarse a partir de parámetros de segmento entrópico, por ejemplo, un número fijo de bins permitidos en cualquier segmento entrópico dado, un número fijo de bits permitidos en cualquier segmento entrópico dado y otros parámetros de segmento entrópico. Todavía en realizaciones alternativas de la presente invención, puede definirse información de ubicación de segmento entrópico mediante otros medios normativos, por ejemplo, la información puede especificarse en una limitación de perfil, una limitación de nivel, una limitación de aplicación, u otra limitación, o la información puede señalizarse como información complementaria o señalizarse mediante otros medios fuera de los límites.
En algunas realizaciones de la presente invención, un conjunto de valores de parámetro de ubicación de segmento entrópico puede usarse para todos los segmentos entrópicos dentro de un flujo de bits. En realizaciones alternativas, pueden definirse valores de parámetro de ubicación de segmento entrópico para un grupo de píxeles representados por una parte de una secuencia. En realizaciones alternativas, pueden definirse valores de parámetro de ubicación de segmento entrópico para cada imagen dentro de un flujo de bits y pueden usarse para todos los segmentos entrópicos dentro de la imagen asociada. En realizaciones alternativas, pueden definirse valores de parámetro de ubicación de segmento entrópico para cada segmento de reconstrucción dentro de un flujo de bits y pueden usarse para todos los segmentos entrópicos dentro del segmento de reconstrucción asociado. Aún en realizaciones alternativas, pueden usarse múltiples conjuntos de valores de parámetro de ubicación de segmento entrópico por el decodificador. Todavía en realizaciones alternativas, pueden asignarse valores de parámetro de ubicación de segmento entrópico a identificadores de segmento entrópico, por ejemplo, una primera cabecera de segmento entrópico puede usar un primer conjunto de valores de parámetro de ubicación de segmento entrópico, una segunda cabecera de segmento entrópico puede usar un segundo conjunto de valores de parámetro de ubicación de segmento entrópico y, en general, una cabecera de segmento entrópico de orden N puede usar un conjunto de valores de parámetro de ubicación de segmento entrópico de orden N. En algunas realizaciones de la presente invención, pueden asignarse valores de parámetro de segmento entrópico a identificadores de fotograma. En una realización a modo de ejemplo, una primera imagen puede usar un primer conjunto de valores de parámetro de segmento entrópico, una segunda imagen puede usar un segundo conjunto de valores de parámetro de segmento entrópico y, en general, una imagen de orden N puede usar un conjunto de valores de parámetro de ubicación de segmento entrópico de orden N. En otra realización a modo de ejemplo, una imagen de un primer tipo puede usar un primer conjunto de valores de parámetro de ubicación de segmento entrópico y una imagen de un segundo tipo puede usar un segundo conjunto de valores de parámetro de ubicación de segmento entrópico. Tipos de imágenes a modo de ejemplo son imágenes intra, imágenes predichas y otros tipos de imágenes.
En algunas realizaciones de la presente invención que comprenden un CODEC según H.264/AVC, pueden señalizarse un desplazamiento de segmento entrópico y un rango de segmento entrópico en un conjunto de parámetros de secuencia Raw Byte Sequence Payload (RBSP, cabida útil de secuencia de bytes en bruto) añadiendo un parámetro “entropy_slice_offset” y uno “entropy_slice_range” al conjunto de parámetros de secuencia. La tabla 3 enumera sintaxis de RBSP de conjunto de parámetros de secuencia a modo de ejemplo según las realizaciones de la presente invención.
En algunas realizaciones de la presente invención que comprenden un CODEC según H.264/AVC, pueden señalizarse un desplazamiento de segmento entrópico y un rango de segmento entrópico en un conjunto de parámetros de imagen Raw Byte Sequence Payload (RBSP, cabida útil de secuencia de bytes en bruto) añadiendo un parámetro “entropy_slice_offset” y uno “entropy_slice_range” al conjunto de parámetros de imagen. La tabla 4 enumera sintaxis de RBSP de conjunto de parámetros de imagen a modo de ejemplo según las realizaciones de la presente invención.
En algunas realizaciones de la presente invención que comprenden un CODEC según H.264/AVC, pueden señalizarse un desplazamiento de segmento entrópico y un rango de segmento entrópico en una cabecera de segmento añadiendo un parámetro “entropy_slice_offset” y uno “entropy_slice_range” a la cabecera de segmento. La tabla 5 enumera sintaxis de cabecera de segmento a modo de ejemplo según las realizaciones de la presente invención.
En algunas realizaciones de la presente invención, pueden indicarse un desplazamiento de segmento entrópico y un rango de segmento entrópico para cada punto de cumplimiento de nivel del codificador según una tabla, por ejemplo, tal como se muestra en la tabla 6, donde
[Fórmula mat. 67]
Om.n
indica el desplazamiento de segmento entrópico para un punto de cumplimiento de nivel m.n y
[Fórmula mat. 68]
Rm.n
indica el rango de segmento entrópico para un punto de cumplimiento m.n.
[Tabla 3]
Figure imgf000027_0001
Tabla 3: tabla de sintaxis de RBSP de conjunto de parámetros de secuencia a modo de ejemplo
[Tabla 4]
Figure imgf000027_0002
_______________________________________________________
Tabla 4: tabla de sintaxis de RBSP de conjunto de parámetros de imagen a modo de ejemplo
[Tabla 5]
Figure imgf000027_0003
Figure imgf000028_0001
________________________________________________________
Tabla 5: tabla de sintaxis a modo de ejemplo para cabecera de segmento
[Tabla 6]
Figure imgf000028_0002
Tabla 6: desplazamiento de segmento entrópico y rango de segmento entrópico a modo de ejemplo para cada nivel En algunas realizaciones, la información de ubicación de segmento entrópico puede comprender información que puede limitar las ubicaciones de las cabeceras de segmento entrópico. En un ejemplo, la información de ubicación de segmento entrópico puede comprender un desplazamiento, también denominado desplazamiento de base o periodo, valor y un rango, también denominado desviación o desplazamiento para un periodo, valor. Una ubicación de cabecera de segmento entrópico puede limitarse basándose en el valor de desplazamiento y el valor de rango. En algunas realizaciones de la presente invención, pueden definirse explícitamente un valor de desplazamiento y un valor de rango. En realizaciones alternativas de la presente invención, pueden definirse implícitamente un valor de desplazamiento y un valor de rango como un valor mínimo de desplazamiento y un valor máximo de desplazamiento. Todavía en realizaciones alternativas de la presente invención, pueden definirse implícitamente un valor de desplazamiento y un valor de rango como un valor máximo de desplazamiento y la diferencia entre el valor máximo de desplazamiento y un valor mínimo de desplazamiento. Aún en realizaciones alternativas de la presente invención, pueden definirse implícitamente un valor de desplazamiento y un valor de rango como un valor mínimo de desplazamiento y la diferencia entre el valor mínimo de desplazamiento y un valor máximo de desplazamiento. En realizaciones alternativas, pueden definirse implícitamente un valor de desplazamiento y un valor de rango como un tercer valor y la diferencia entre el tercer valor y un valor máximo de desplazamiento y un valor mínimo de desplazamiento. Todavía en realizaciones alternativas, pueden definirse un valor de desplazamiento y un valor de rango a través de un índice en una tabla de consulta que contiene los valores de bit mínimo y máximo correspondientes. En algunas realizaciones, pueden definirse un valor de desplazamiento y un valor de rango usando un árbol de consulta basado en desplazamiento. En algunas realizaciones, pueden definirse un valor de desplazamiento y un valor de rango usando indexación de minimización de costes. Un experto habitual en la técnica reconocerá que hay muchos métodos conocidos en la técnica para definir implícitamente un valor de rango y un valor de desplazamiento y para garantizar que un codificador y un decodificador funcionan con el mismo valor para los valores de desplazamiento y de rango predefinidos.
En algunas realizaciones de la presente invención, la señalización de un valor de rango puede ser opcional. En algunas realizaciones, cuando un valor de rango no se señaliza, entonces el valor de rango puede establecerse en un valor predefinido. En una realización a modo de ejemplo, el valor predefinido puede ser cero. En otra realización a modo de ejemplo, el valor predefinido puede ser un valor de número entero distinto de cero.
En una realización a modo de ejemplo descrita en relación con la figura 29, la cabecera de segmento entrópico asociada con un segmento entrópico, el número de segmentos
[Fórmula mat. 69]
N
dentro de un segmento de reconstrucción, puede limitarse a que se inicie después de los
[Fórmula mat. 70]
N k - p
bits desde el inicio de, u otra ubicación fija dentro de, la cabecera de segmento de reconstrucción, donde
[Fórmula mat. 71]
k
indica el valor de desplazamiento y
[Fórmula mat. 72]
p
indica el rango. La ubicación desde la que pueden medirse los
[Fórmula mat. 73]
Nk-p
bits puede denominarse la ubicación de referencia. En realizaciones alternativas, una ubicación de referencia puede no estar asociada con un segmento de reconstrucción particular y puede ser la misma ubicación fija dentro de un flujo de bits para todos los segmentos entrópicos. En realizaciones alternativas, la cabecera de segmento entrópico puede presentar alineación de bytes, y la limitación puede estar asociada con un número de bytes. Aunque el ejemplo ilustrado en relación con la figura 29 se describe en términos de bits, un experto habitual en la técnica puede apreciar las realizaciones con alineación de bytes alternativas.
La figura 29 es una representación pictórica de una parte a modo de ejemplo 1000 de un flujo de bits a modo de ejemplo. La parte de flujo de bits 1000 comprende una cabecera de segmento de reconstrucción 1002, representada por un rectángulo negro relleno, cuatro cabeceras de segmento entrópico (la cabecera de segmento entrópico correspondiente al segmento entrópico de orden cero 1003, denominada la cabecera de segmento entrópico de orden cero, la cabecera de segmento entrópico correspondiente al primer segmento entrópico 1004, denominada la primera cabecera de segmento entrópico, la cabecera de segmento entrópico correspondiente al segundo segmento entrópico 1005, denominada la segunda cabecera de segmento entrópico, la cabecera de segmento entrópico correspondiente al tercer segmento entrópico 1006, denominada la tercera cabecera de segmento entrópico), representadas por rectángulos grises rellenos, y partes restantes de los segmentos entrópicos, representadas por franjas delgadas, blancas y negras. En este ejemplo, la ubicación de referencia puede ser el inicio 1001 de la cabecera de segmento de reconstrucción 1002. En algunas realizaciones de la presente invención, la cabecera de segmento entrópico correspondiente al segmento entrópico de orden cero 1003 puede limitarse para que esté ubicada inmediatamente después de la cabecera de segmento de reconstrucción 1002. En algunas realizaciones de la presente invención, la cabecera de segmento entrópico correspondiente al segmento entrópico de orden cero puede formar parte de la cabecera de segmento de reconstrucción. Es decir, la cabecera de segmento de reconstrucción puede servir también como la cabecera de segmento entrópico correspondiente al segmento entrópico de orden cero. En estas realizaciones, la cabecera de segmento de reconstrucción puede comprender una parte de reconstrucción y una parte de entropía. En algunas realizaciones de la presente invención representadas en la figura 29, la primera cabecera de segmento entrópico 1004 puede limitarse para que esté ubicada después de los [Fórmula mat. 74]
k-p
bits 1007 desde la ubicación de referencia 1001, la segunda cabecera de segmento entrópico 1005 puede limitarse para que esté ubicada después de los
[Fórmula mat. 75]
2k-p
bits 1008 desde la ubicación de referencia 1001, la segunda cabecera de segmento entrópico 1006 puede limitarse para que esté ubicada después de los
[Fórmula mat. 76]
3k-p
bits 1009 desde la ubicación de referencia 1001. En estas realizaciones, un decodificador entrópico asignado para decodificar el segmento entrópico
[Fórmula mat. 77]
N
puede empezar a buscar la cabecera de segmento entrópico correspondiente después de los
[Fórmula mat. 78]
Nk-p
bits desde la ubicación de referencia 1001.
En realizaciones alternativas de la presente invención, la información de ubicación de segmento entrópico puede no comprender un parámetro de rango. En estas realizaciones, un decodificador entrópico puede empezar a buscar la cabecera de segmento entrópico de orden N después de los
[Fórmula mat. 79]
Nk
bits desde una ubicación de referencia.
En otra realización a modo de ejemplo descrita en relación con la figura 30, la cabecera de segmento entrópico asociada con segmento entrópico, el número de segmentos
[Fórmula mat. 80]
N
dentro de un segmento de reconstrucción, puede limitarse para que se inicie después de los
[Fórmula mat. 81]
Nk-p
bits desde el inicio de, u otra ubicación fija dentro de, la cabecera de segmento de reconstrucción, donde
[Fórmula mat. 82]
k
indica el valor de desplazamiento y
[Fórmula mat. 83]
P
indica el rango, y la cabecera de segmento entrópico puede limitarse adicionalmente para que esté dentro de un rango de bits
[Fórmula mat. 84]
2p
desde la ubicación inicial limitada. La ubicación desde la que pueden medirse los
[Fórmula mat. 85]
Nk-p
bits puede denominarse la ubicación de referencia. En realizaciones alternativas, una ubicación de referencia puede no estar asociada con un segmento de reconstrucción particular y puede ser la misma ubicación fija dentro de un flujo de bits para todos los segmentos entrópicos. En realizaciones alternativas, la cabecera de segmento entrópico puede presentar alineación de bytes, y la limitación puede estar asociada con un número de bytes. Aunque el ejemplo ilustrado en relación con la figura 30 se describe en términos de bits, un experto habitual en la técnica puede apreciar las realizaciones con alineación de bytes alternativas.
La figura 30 es una representación pictórica de una parte a modo de ejemplo 1020 de un flujo de bits a modo de ejemplo. La parte de flujo de bits 1020 comprende una cabecera de segmento de reconstrucción 1022, representada por un rectángulo negro relleno, cuatro cabeceras de segmento entrópico (la cabecera de segmento entrópico correspondiente al segmento entrópico de orden cero 1023, denominada la cabecera de segmento entrópico de orden cero, la cabecera de segmento entrópico correspondiente al primer segmento entrópico 1024, denominada la primera cabecera de segmento entrópico, la cabecera de segmento entrópico correspondiente al segundo segmento entrópico 1025, denominada la segunda cabecera de segmento entrópico, la cabecera de segmento entrópico correspondiente al tercer segmento entrópico 1026, denominada la tercera cabecera de segmento entrópico), representadas por rectángulos grises rellenos, y partes restantes de los segmentos entrópicos, representadas por franjas delgadas, blancas y negras. En este ejemplo, la ubicación de referencia puede ser el inicio 1021 de la cabecera de segmento de reconstrucción 1022. En algunas realizaciones de la presente invención, la cabecera de segmento entrópico correspondiente al segmento entrópico de orden cero 1023 puede limitarse para que esté ubicada inmediatamente después de la cabecera de segmento de reconstrucción 1022. En algunas realizaciones de la presente invención, la cabecera de segmento entrópico correspondiente al segmento entrópico de orden cero puede formar parte de la cabecera de segmento de reconstrucción. En estas realizaciones, la cabecera de segmento de reconstrucción puede comprender una parte de reconstrucción y una parte de entropía. En algunas realizaciones de la presente invención representadas en la figura 30, la primera cabecera de segmento entrópico 1024 puede limitarse para que esté ubicada dentro de
[Fórmula mat. 86]
2p
bits 1031 después de los
[Fórmula mat. 87]
k-p
bits 1027 desde la ubicación de referencia 1021, la segunda cabecera de segmento entrópico 1025 puede limitarse para que esté ubicada dentro de
[Fórmula mat. 88]
2p
bits 1032 después de los
[Fórmula mat. 89]
2k-p
bits 1028 desde la ubicación de referencia 1021, la segunda cabecera de segmento entrópico 1026 puede limitarse para que esté ubicada dentro de
[Fórmula mat. 90]
2p
bits 1033 después de los
[Fórmula mat. 91]
3k-p
bits 1029 desde la ubicación de referencia 1021. En estas realizaciones, un decodificador entrópico asignado para decodificar el segmento entrópico
[Fórmula mat. 92]
N
puede empezar a buscar la cabecera de segmento entrópico correspondiente después de los
[Fórmula mat. 93]
Nk-p
bits desde la ubicación de referencia y puede terminar la búsqueda después de la identificación de la cabecera de segmento entrópico o después de la búsqueda de
[Fórmula mat. 94]
2p
bits.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 31. En estas realizaciones, un decodificador entrópico puede recibir 1050 un número de segmento entrópico que indica el número del segmento entrópico en el bloque de reconstrucción actual para someterlo a decodificación entrópica. El decodificador entrópico puede determinar 1052 la información de ubicación de segmento entrópico. En algunas realizaciones de la presente invención, la información de ubicación de segmento entrópico, también denominada parámetros de ubicación de segmento entrópico, puede señalizarse en el flujo de bits, y el decodificador puede determinar 1052 la información de segmento entrópico examinando el flujo de bits. En realizaciones alternativas, la información de ubicación de segmento entrópico puede no señalizarse en el flujo de bits, sino que puede determinarse 1052, por el decodificador, a partir de parámetros de segmento entrópico, por ejemplo, un número fijo de bins permitidos en cualquier segmento entrópico dado, un número fijo de bits permitidos en cualquier segmento entrópico dado y otros parámetros de segmento entrópico. Todavía en realizaciones alternativas de la presente invención, la información de ubicación de segmento entrópico puede definirse y determinarse 1052 mediante otros medios normativos, por ejemplo, la información puede especificarse en una limitación de perfil, una limitación de nivel, una limitación de aplicación, u otra limitación, o la información puede señalizarse como información complementaria o señalizarse mediante otros medios fuera de los límites.
El decodificador entrópico puede calcular 1054 una ubicación de inicio de búsqueda de segmento entrópico antes de la cual, en el flujo de bits, se restringe que la cabecera de segmento entrópico se haya escrito por el codificador. En algunas realizaciones de la presente invención, la ubicación de inicio de búsqueda de segmento entrópico puede calcularse 1054 usando un valor de desplazamiento y un valor de rango determinados a partir de la información de ubicación de segmento entrópico. En realizaciones alternativas de la presente invención, la ubicación de inicio de búsqueda de segmento entrópico puede calcularse 1054 usando un valor de desplazamiento determinado a partir de la información de ubicación de segmento entrópico. El decodificador entrópico puede avanzar 1056, en el flujo de bits, hasta la ubicación de inicio de búsqueda de segmento entrópico, y puede examinar 1058 el flujo de bits para detectar una cabecera de segmento entrópico. En algunas realizaciones de la presente invención, una cabecera de segmento entrópico puede indicarse por un código de inicio.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 32. En estas realizaciones, un decodificador entrópico puede recibir 1070 un número de segmento entrópico que indica el número del segmento entrópico en el bloque de reconstrucción actual para someterlo a decodificación entrópica. El decodificador entrópico puede determinar 1072 la información de ubicación de segmento entrópico. En algunas realizaciones de la presente invención, la información de ubicación de segmento entrópico, también denominada parámetros de ubicación de segmento entrópico, puede señalizarse en el flujo de bits, y el decodificador puede determinar 1072 la información de segmento entrópico examinando el flujo de bits. En realizaciones alternativas, la información de ubicación de segmento entrópico puede no señalizarse en el flujo de bits, sino que puede determinarse 1072, por el decodificador, a partir de parámetros de segmento entrópico, por ejemplo, un número fijo de bins permitidos en cualquier segmento entrópico dado, un número fijo de bits permitidos en cualquier segmento entrópico dado y otros parámetros de segmento entrópico. Todavía en realizaciones alternativas de la presente invención, la información de ubicación de segmento entrópico puede definirse y determinarse 1072 mediante otros medios normativos, por ejemplo, la información puede especificarse en una limitación de perfil, una limitación de nivel, una limitación de aplicación, u otra limitación, o la información puede señalizarse como información complementaria o señalizarse mediante otros medios fuera de los límites.
El decodificador entrópico puede calcular 1074 una ubicación de inicio de búsqueda de segmento entrópico antes de la cual, en el flujo de bits, se restringe que la cabecera de segmento entrópico se haya escrito por el codificador. En algunas realizaciones de la presente invención, la ubicación de inicio de búsqueda de segmento entrópico puede calcularse 1074 usando un valor de desplazamiento y un valor de rango determinados a partir de la información de ubicación de segmento entrópico. En realizaciones alternativas de la presente invención, la ubicación de inicio de búsqueda de segmento entrópico puede calcularse 1074 usando un valor de desplazamiento determinado a partir de la información de ubicación de segmento entrópico. El decodificador entrópico puede avanzar 1076, en el flujo de bits, hasta la ubicación de inicio de búsqueda de segmento entrópico y puede examinar 1078 el flujo de bits para detectar una cabecera de segmento entrópico. En algunas realizaciones de la presente invención, una cabecera de segmento entrópico puede indicarse por un código de inicio.
Los bits, en el flujo de bits, pueden examinarse 1078 en secuencia iniciándose en la ubicación de inicio de búsqueda de segmento entrópico. Si 1080 una cabecera de segmento entrópico se identifica 1081, entonces el decodificador entrópico puede someter a decodificación entrópica 1082 el segmento entrópico asociado con la cabecera de segmento entrópico identificada. Si 1080 una cabecera de segmento entrópico no se identifica 1083, entonces el decodificador entrópico puede terminar 1084 la búsqueda. En algunas realizaciones, el decodificador entrópico puede indicar un error cuando ninguna cabecera de segmento entrópico se identifica 1083.
Algunas realizaciones de la presente invención pueden describirse en relación con la figura 33. En estas realizaciones, un decodificador entrópico puede recibir 1100 un número de segmento entrópico que indica el número del segmento entrópico, en el bloque de reconstrucción actual para someterlo a decodificación entrópica. El decodificador entrópico puede determinar 1102 la información de ubicación de segmento entrópico. En algunas realizaciones de la presente invención, la información de ubicación de segmento entrópico, también denominada parámetros de ubicación de segmento entrópico, puede señalizarse en el flujo de bits, y el decodificador puede determinar 1102 la información de segmento entrópico examinando el flujo de bits. En realizaciones alternativas, la información de ubicación de segmento entrópico puede no señalizarse en el flujo de bits, sino que puede determinarse 1102, por el decodificador, a partir de parámetros de segmento entrópico, por ejemplo, un número fijo de bins permitidos en cualquier segmento entrópico dado, un número fijo de bits permitidos en cualquier segmento entrópico dado y otros parámetros de segmento entrópico. Todavía en realizaciones alternativas de la presente invención, la información de ubicación de segmento entrópico puede definirse y determinarse 1102 mediante otros medios normativos, por ejemplo, la información puede especificarse en una limitación de perfil, una limitación de nivel, una limitación de aplicación, u otra limitación, o la información puede señalizarse como información complementaria o señalizarse mediante otros medios fuera de los límites.
El decodificador entrópico puede calcular 1104 una ubicación de inicio de búsqueda de segmento entrópico antes de la cual, en el flujo de bits, se restringe que la cabecera de segmento entrópico se haya escrito por el codificador. En algunas realizaciones de la presente invención, la ubicación de inicio de búsqueda de segmento entrópico puede calcularse 1104 usando un valor de desplazamiento y un valor de rango determinados a partir de la información de ubicación de segmento entrópico. En realizaciones alternativas de la presente invención, la ubicación de inicio de búsqueda de segmento entrópico puede calcularse 1104 usando un valor de desplazamiento determinado a partir de la información de ubicación de segmento entrópico. El decodificador entrópico puede avanzar 1106, en el flujo de bits, hasta la ubicación de inicio de búsqueda de segmento entrópico y puede examinar 1108 el flujo de bits para detectar una cabecera de segmento entrópico. En algunas realizaciones de la presente invención, una cabecera de segmento entrópico puede indicarse por un código de inicio.
Los bits, en el flujo de bits, pueden examinarse 1108 en secuencia iniciándose en la ubicación de inicio de búsqueda de segmento entrópico. Si 1110 una cabecera de segmento entrópico se identifica 1111, entonces el decodificador entrópico puede someter a decodificación entrópica 1112 el segmento entrópico asociado con la cabecera de segmento entrópico identificada. Si 1110 una cabecera de segmento entrópico no se identifica 1113, entonces si 1114 un criterio de búsqueda se satisface 1115, el decodificador entrópico puede terminar 1116. El criterio de búsqueda puede proporcionar una norma mediante la que puede realizarse una determinación en cuanto a si sigue habiendo o no, ubicaciones válidas para el inicio de cabecera de segmento entrópico que deben buscarse. En algunas realizaciones (no mostradas), puede satisfacerse un criterio de búsqueda si sigue habiendo ubicaciones válidas que deben examinarse. En realizaciones alternativas, puede satisfacerse un criterio de búsqueda si no sigue habiendo ubicaciones válidas que deben examinarse 1115, y la búsqueda puede terminar 1116. En algunas realizaciones, el decodificador entrópico puede indicar un error cuando ninguna cabecera de segmento entrópico se identifica 1115. Si 1114 el criterio de búsqueda no se satisface 1117, el examen 1108 del flujo de bits puede continuar después del avance 1118, en el flujo de bits hasta la ubicación de búsqueda siguiente.
En algunas realizaciones de la presente invención, el criterio de búsqueda puede estar relacionado con un valor de rango, por ejemplo, la ubicación del inicio de una cabecera de segmento entrópico puede restringirse para ser un rango de
[Fórmula mat. 95]
2p
bits centrado en
[Fórmula mat. 96]
Nk,
donde
[Fórmula mat. 97]
k
indica el valor de desplazamiento,
[Fórmula mat. 98]
p
indica el valor de rango y
[Fórmula mat. 99]
N
es el número de segmento entrópico dentro de un segmento de reconstrucción. En estas realizaciones, la ubicación del inicio de la cabecera de segmento entrópico asociada con el segmento entrópico
[Fórmula mat. 100]
N
puede restringirse al rango de
[Fórmula mat. 101]
Nk-p
a
[Fórmula mat. 102]
Nk+p.
En algunas realizaciones, el criterio de búsqueda puede estar relacionado con una restricción, o restricciones, sobre el tamaño de un segmento entrópico. En algunas realizaciones, el criterio de búsqueda puede estar relacionado con una combinación de restricciones.
En algunas realizaciones de la presente invención, un codificador puede rellenar un segmento entrópico para cumplir con una restricción sobre la ubicación de la cabecera de segmento entrópico siguiente.
En algunas realizaciones de la presente invención, un codificador puede terminar un segmento entrópico antes de cumplirse otras restricciones sobre el tamaño de segmento entrópico para cumplir con una restricción sobre la ubicación de la cabecera de segmento entrópico siguiente.
En algunas realizaciones de la presente invención, cuando el último segmento entrópico dentro de un segmento de reconstrucción no contiene el número de bits (o bytes, en una realización con alineación de bytes) necesario para satisfacer la limitación sobre la ubicación de la cabecera de segmento entrópico siguiente, un codificador puede rellenar el último segmento entrópico dentro del segmento de reconstrucción para satisfacer la limitación sobre la ubicación de la cabecera de segmento entrópico siguiente.
En realizaciones alternativas, una cabecera de segmento entrópico puede comprender una bandera de último segmento entrópico, en la que el valor de la bandera de último segmento entrópico puede indicar si el segmento entrópico asociado con la cabecera de segmento entrópico es o no el último segmento entrópico en un segmento de reconstrucción. En algunas realizaciones, un valor de cero de bandera de último segmento entrópico puede estar asociado con el último segmento entrópico. En realizaciones alternativas, un valor de uno de bandera de último segmento entrópico puede estar asociado con el último segmento entrópico. En algunas realizaciones, cuando el valor de la bandera de último segmento entrópico indica que el segmento entrópico es el último segmento entrópico en un segmento de reconstrucción, entonces la cabecera de segmento entrópico posterior puede estar ubicada inmediatamente tras el segmento entrópico actual sin relleno.
La tabla 7 muestra sintaxis y semántica a modo de ejemplo para señalizar una bandera de último segmento entrópico, denominada “next_entropy_slice_flag”. En una realización a modo de ejemplo que comprende la sintaxis y semántica a modo de ejemplo mostradas en la tabla 7, la bandera “next_entropy_slice_flag” señaliza si hay segmentos entrópicos adicionales para un segmento de reconstrucción actual. Si la bandera “next_entropy_slice_flag” indica que no hay segmentos entrópicos adicionales para el segmento de reconstrucción actual, entonces la ubicación de la cabecera de segmento entrópico siguiente en el flujo de bits puede no estar limitada por los parámetros de ubicación de segmento entrópico.
En algunas realizaciones de la presente invención, la ubicación de cabeceras de segmento entrópico puede organizarse en un formato de árbol con el nodo raíz apuntando a una ubicación de cabecera de segmento entrópico. En algunas realizaciones, la ubicación de cabecera de segmento entrópico a la que apunta el nodo raíz puede ser relativa. En realizaciones alternativas, la ubicación de cabecera de segmento entrópico a la que apunta el nodo raíz puede ser absoluta. Los nodos restantes del árbol pueden contener distancias de desplazamiento con respecto a su nodo parental. El árbol puede diseñarse según una limitación de diseño, por ejemplo, para reducir el tiempo promedio para determinar la ubicación de cabecera de segmento entrópico, para vincular el tiempo requerido en el peor de los casos para determinar la ubicación de cabecera de segmento entrópico, para señalizar un orden preferido de decodificación de segmentos entrópicos, para minimizar el coste de almacenamiento para el árbol y otras limitaciones de diseño. En algunas realizaciones, el número de hijos de cada nodo en el árbol puede controlarse basándose en el nivel de paralelismo deseado en la determinación de la ubicación de cabecera de segmento entrópico.
[Tabla 7]
Figure imgf000035_0001
____________________________________________________
Tabla 7: tabla de sintaxis a modo de ejemplo para una bandera de último segmento entrópico
En algunas realizaciones de la presente invención, los modelos de contexto puede restablecerse dentro de un segmento entrópico siempre que se cumpla una condición de restablecimiento de modelo de contexto. En algunas de estas realizaciones, los valores a los que pueden restablecerse los modelos de contexto pueden basarse en el modelo de contexto de una unidad elemental vecina dentro del segmento entrópico, y si la unidad elemental vecina no está dentro del segmento entrópico, entonces pueden usarse valores por defecto. En realizaciones alternativas, pueden restablecerse los modelos de contexto a valores por defecto. Aún en realizaciones alternativas, pueden restablecerse los modelos de contexto basándose en un modelo de contexto cuyo identificador puede señalizarse dentro del flujo de bits, indicando el identificador uno de una pluralidad de modelos de contexto predefinidos. Un modelo de contexto predefinido puede depender de uno o más parámetros en el flujo de bits. En realizaciones a modo de ejemplo, pueden restablecerse los modelos de contexto basándose en un valor señalizado “cabac_init_idc”, dentro del flujo de bits, que indica uno de una pluralidad de modelos de contexto predefinidos.
En algunas realizaciones, puede usarse una tabla de contextos para inicializar una pluralidad de modelos de contexto, en la que una tabla de contextos se refiere a un conjunto de modelos de contexto. En algunas realizaciones, el conjunto de modelos de contexto en una tabla de contextos puede someterse a adaptación basándose en uno o más parámetros en el flujo de bits, por ejemplo, un parámetro de cuantificación, un tipo de parámetro de segmento u otro parámetro.
En una realización a modo de ejemplo ilustrada en la figura 34, pueden restablecerse los modelos de contexto, dentro de un segmento entrópico, cuando un macrobloque actual es el primer macrobloque en una fila, además de restablecerse al macrobloque inicial en un segmento entrópico. La figura 34 representa un segmento de reconstrucción a modo de ejemplo 1200 que contiene 48 macrobloques 1208-1255 divididos en tres segmentos entrópicos: el segmento entrópico “0” (mostrado en rayado cruzado) 1202, el segmento entrópico “1” (mostrado en color blanco) 1204 y el segmento entrópico “2” (mostrado en sombreado de puntos) 1206. El segmento entrópico “0” 1202 contiene 15 macrobloques 1208-1222. El segmento entrópico “1” 1204 contiene 17 macrobloques 1223-1239, y el segmento entrópico “2” 1206 contiene 16 macrobloques 1240-1255. Los macrobloques a los que pueden restablecerse los modelos de contexto se indican con un borde negro grueso 1260-1266 y son aquellos macrobloques 1208, 1223, 1240 al inicio de cada segmento entrópico y el primer macrobloque en cada fila 1216, 1224, 1232, 1240, 1248.
La unidad elemental, por ejemplo, el macrobloque, al inicio de un segmento entrópico puede denominarse la unidad elemental de inicio de segmento. Por ejemplo, para los segmentos entrópicos 1202, 1204, 1206 en el segmento de reconstrucción a modo de ejemplo 1200 en la figura 34, las unidades elementales de inicio de segmento respectivas son 1208, 1223 y 1240. Una unidad elemental que es la primera unidad elemental en una fila en un segmento entrópico puede denominarse una unidad elemental de inicio de fila, por ejemplo, los macrobloques 1208, 1216, 1224, 1232, 1240 y 1248 en la figura 34.
En algunas realizaciones, pueden restablecerse los modelos de contexto basándose en los modelos de contexto de un macrobloque vecino si el macrobloque vecino está dentro del segmento entrópico y valores por defecto si el macrobloque vecino no está dentro del segmento entrópico. Por ejemplo, pueden restablecerse los modelos de contexto basándose en los modelos de contexto del macrobloque por encima del macrobloque actual si el macrobloque por encima del macrobloque actual está en el mismo segmento entrópico, pero establecerse en valores por defecto si el macrobloque por encima del macrobloque actual no está en el mismo segmento entrópico.
En otra realización a modo de ejemplo, pueden restablecerse los modelos de contexto, dentro de un segmento entrópico, cuando una unidad elemental actual es la primera unidad elemental en una fila. En realizaciones alternativas, la condición de restablecimiento de modelo de contexto puede basarse en otros criterios, por ejemplo, el número de bins procesados dentro del segmento entrópico, el número de bits procesados dentro del segmento, la ubicación espacial de la unidad elemental actual y otros criterios.
En algunas realizaciones de la presente invención, puede usarse una bandera de restablecimiento de modelo de contexto para indicar si pueden restablecerse o no los modelos de contexto dentro de un segmento entrópico siempre que se cumpla una condición de restablecimiento de modelo de contexto. En algunas realizaciones, la bandera de restablecimiento de modelo de contexto puede estar en la cabecera de segmento entrópico. En realizaciones alternativas, la bandera de restablecimiento de modelo de contexto puede estar en la cabecera de segmento de reconstrucción. En algunas realizaciones, la bandera de restablecimiento de modelo de contexto puede ser una bandera binaria, y la condición de restablecimiento de modelo de contexto puede ser una condición por defecto. En realizaciones alternativas, la bandera de restablecimiento de modelo de contexto puede ser una bandera de múltiples valores que indica además la condición de restablecimiento de modelo de contexto.
En una realización a modo de ejemplo que comprende codificación adaptativa según el contexto, por ejemplo, codificación CABAC, codificación CAV2V y otra codificación adaptativa según el contexto, una bandera “lcu_row_cabac_init_flag” puede señalizar si puede inicializarse decodificación entrópica al inicio de la fila de unidad de codificación de mayor tamaño (LCU). En algunas realizaciones, una LCU es una generalización del concepto de macrobloque usado en H.264 para la codificación de vídeo de alta eficiencia (HEVC), y una imagen se divide en segmentos, en los que un segmento se compone de una secuencia de LCU. En realizaciones alternativas, una LCU es el bloque de mayor tamaño de ubicaciones de valor de píxel, lo puede representarse con un único valor de modo transmitido. En realizaciones alternativas, una LCU es el bloque de mayor tamaño de ubicaciones de valor de píxel, lo que puede representarse con un único valor de modo de predicción transmitido. En algunas realizaciones de la presente invención, un valor de “1” de bandera “lcu_row_cabac_init_flag” puede señalizar que se restablece el contexto de codificación entrópica. Un contexto de codificación entrópica puede representar el conjunto de todos modelos de contexto asociados con un codificador entrópico. En algunas realizaciones de la presente invención, un valor de “1” de bandera “lcu_row_cabac_init_flag” puede señalizar que se restablece el contexto de codificación entrópica y se restablece el barrido adaptativo. Barrido adaptativo puede referirse a un proceso en el que un CODEC adapta una ordenación de barrido de coeficientes de transformada basándose en valores de coeficiente de transformada transmitidos previamente. La sección 7.6.1 en el documento de JCTVC, JCTVC-B205_draft005, que se incorpora por la presente como referencia al presente documento en su totalidad, expone un ejemplo en el que el barrido adaptativo elige entre dos órdenes de barrido distintos basándose en los coeficientes significativos en el vecino. En una realización, puede restablecerse el barrido adaptativo al inicio de cada fila de LCU eligiendo un orden de barrido predefinido. En una realización, la ordenación de barrido se determina generando un mapa de significación de coeficientes, y los valores de coeficiente de transformada correspondientes a valores de significación de coeficiente mayores que un valor predeterminado pueden transmitirse antes que los valores de coeficiente de transformada correspondientes a valores de significación de coeficiente menores que o iguales al valor predeterminado. En una realización, los valores de significación de coeficiente que corresponden a valores de coeficiente de transformada que son mayores que un valor predeterminado pueden aumentarse posteriormente. En una realización alternativa, los valores de significación de coeficiente que corresponden a valores de coeficiente de transformada que son menores que o iguales a un valor predeterminado pueden disminuirse posteriormente. El proceso de barrido adaptativo puede restablecerse estableciendo el mapa significativo de coeficientes en un valor predefinido. En algunas realizaciones, el valor por defecto, asumido cuando no se envía la bandera, para la bandera “lcu_row_cabacjnit_flag” puede ser “0”. Una bandera “lcu_row_cabacjnitjdc_flag” puede señalizar si se transmitirán valores de cabac_initjdc al inicio de cada fila de LCU. En algunas realizaciones, cuando el valor de la bandera “lcu_row_cabac_init_idc_flag” es “1”, se transmitirán valores al inicio de cada fila de LCU. En algunas realizaciones, el valor por defecto, asumido cuando no se envía la bandera, para la bandera “lcu_row_cabac_init_idc_flag” puede ser “0”. En algunas realizaciones, una bandera “cabac_init_idc_present_flag” puede señalizar si se transmite un valor de cabac_init_idc para la LCU. En algunas realizaciones, cuando no se transmite un valor de cabac_init_idc para la LCU entonces se restablece el contexto de codificación entrópica usando el valor precedente para cabac_init_idc en el flujo de bits. En algunas realizaciones de la presente invención, pueden señalizarse “lcu_row_cabac_init_flag” y “lcu_row_cabac_init_idc_flag” en una cabecera de segmento normal, por ejemplo, cuando el valor de “entropy_slice_flag” es “0”. La tabla 8 y la tabla 9 muestran sintaxis a modo de ejemplo para estas realizaciones. En algunas realizaciones de la presente invención, “lcu_row_cabac_init_flag” y “lcu_row_cabac_init_idc_flag” pueden señalizarse en una cabecera de segmento entrópico, por ejemplo, cuando el valor de “entropy_slice_flag” es “1”. La tabla 8 muestra sintaxis de cabecera de segmento a modo de ejemplo, y la tabla 9 muestra sintaxis de datos de segmento a modo de ejemplo (coding_unit).
[Tabla 8]
Figure imgf000037_0001
____________________________________________________
Tabla 8: tabla de sintaxis a modo de ejemplo para señalizar la inicialización de codificación entrópica al inicio de la fila de LCU
[Tabla 9]
Figure imgf000037_0002
_____________________________________________________
Tabla 9: tabla de sintaxis a modo de ejemplo para señalizar el contexto inicial para la LCU
En otra realización a modo de ejemplo que comprende codificación adaptativa según el contexto, por ejemplo, codificación CABAC, codificación CAV2V y otra codificación adaptativa según el contexto, una bandera “mb_row_cabac_init_ flag” puede señalizar si puede inicializarse decodificación entrópica en el primer macrobloque en una fila. En algunas realizaciones de la presente invención, un valor de “1” de bandera “mb_row_cabac_init_flag” puede señalizar que se restablece el contexto de codificación entrópica al inicio de cada fila de macrobloques. En realizaciones alternativas de la presente invención, un valor de “1” de bandera “mb_row_cabac_init_flag” puede señalizar que se restablece el contexto de codificación entrópica y se restablece el barrido adaptativo al inicio de cada fila de macrobloques. En algunas realizaciones, el valor por defecto, asumido cuando no se envía la bandera, para la bandera “mb_row_cabacjnit_flag” puede ser “0”. Una bandera “mb_row_cabacjnitjdc_flag” puede señalizar si se transmitirán valores de cabacjn itjdc al inicio de cada fila de macrobloques. En algunas realizaciones, cuando el valor de la bandera “mb_row_cabacjnitjdc_flag” es “1” se transmitirán valores al inicio de cada fila de macrobloques. En algunas realizaciones, el valor por defecto, asumido cuando no se envía la bandera, para la bandera “mb_row_cabac_init_idc_flag” puede ser “0”. En algunas realizaciones, una bandera “cabac_init_idc_present_flag” puede señalizar si se transmite un valor de cabac_init_idc para el macrobloque. En algunas realizaciones, cuando no se transmite un valor de cabac_init_idc para el macrobloque, entonces se restablece el contexto de codificación entrópica usando el valor precedente para cabac_init_idc en el flujo de bits. En algunas realizaciones de la presente invención, la bandera “mb_row_cabac_init_flag” y la bandera “mb_row_cabac_init_idc_flag” pueden señalizarse en una cabecera de segmento normal, por ejemplo, cuando el valor de “entropy_slice_flag” es “0”. En algunas realizaciones de la presente invención, la bandera “mb_row_cabac_init_flag” y la bandera “mb_row_cabac_init_idc_flag” pueden señalizarse en una cabecera de segmento normal, por ejemplo, cuando el valor de “entropy_slice_flag” es “1”. La tabla 10 y la tabla 11 muestran sintaxis a modo de ejemplo para estas realizaciones. La tabla 10 muestra sintaxis de cabecera de segmento a modo de ejemplo, y la tabla 11 muestra sintaxis de datos de segmento a modo de ejemplo.
[Tabla 10]
Figure imgf000038_0001
_______________________________________________________
Tabla 10: tabla de sintaxis a modo de ejemplo para señalizar la inicialización de codificación entrópica al inicio de la fila de macrobloque
[Tabla 11]
Figure imgf000038_0002
Tabla 11: tabla de sintaxis a modo de ejemplo para señalizar el contexto inicial para el macrobloque
En algunas realizaciones de la presente invención, las ubicaciones, en un flujo de bits, de los segmentos entrópicos pueden señalizarse en el flujo de bits. En algunas realizaciones, puede usarse una bandera para señalizar que las ubicaciones, en el flujo de bits, de los segmentos entrópicos van a señalizarse en el flujo de bits. Algunas realizaciones a modo de ejemplo pueden comprender una bandera “entropy_slice_locations_flag” que si es “verdadera” puede indicar que las ubicaciones, en el flujo de bits, de las cabeceras de segmento entrópico van a señalizarse en el flujo de bits. En algunas realizaciones, los datos de ubicación pueden codificarse de manera diferencial. En algunas realizaciones, los datos de ubicación pueden enviarse en cada segmento de reconstrucción. En realizaciones alternativas, los datos de ubicación pueden enviarse una vez por imagen.
En algunas realizaciones de la presente invención, las ubicaciones, en un flujo de bits, de las filas pueden señalizarse en el flujo de bits. En algunas realizaciones, puede usarse una bandera para señalizar que la ubicación, en el flujo de bits, del primer LCU en cada fila va a señalizarse en el flujo de bits. Algunas realizaciones a modo de ejemplo pueden comprender una bandera “lcu_row_location_flag” que si es “verdadera” puede indicar que la ubicación, en el flujo de bits, del primer LCU en cada fila va a señalizarse en el flujo de bits. En algunas realizaciones, los datos de ubicación pueden codificarse de manera diferencial. En algunas realizaciones, los datos de ubicación pueden enviarse en cada segmento entrópico. En realizaciones alternativas, los datos de ubicación pueden enviarse una vez por segmento de reconstrucción.
La tabla 12A-C muestra sintaxis a modo de ejemplo para señalizar las ubicaciones, en el flujo de bits, de las filas y los segmentos entrópicos. Para esta sintaxis a modo de ejemplo, la semántica es:
“entropy_slice_locations_flag” señaliza si se transmite ubicación de cabecera de segmento entrópico. Si el valor de “entropy_slice_locations_flag” se establece en “1”, entonces la ubicación de cabecera de segmento entrópico se transmite, si no, no se transmite. El valor por defecto para la “entropy_slice_locations_flag” es “0”.
* “num_of_entropy_slice_minus1” señaliza el número de segmentos entrópicos en el segmento de reconstrucción menos 1.
* “entropy_slice_offset [i]” indica el desplazamiento del segmento entrópico de orden i del segmento entrópico previo. * “lcu_row_locations_flag” señaliza si está transmitiéndose o no información de ubicación de fila de LCU. Si el valor de “lcu_row_locations_flag” es “1”, entonces se transmite la información de ubicación de fila de LCU, si no, no se transmite. El valor por defecto para “lcu_row_locations_flag” es “0”.
* “num_of_lcu_rows_minus1” señaliza el número de filas de LCU en el segmento entrópico menos 1.
* “lcu_row_offset [i]” indica el desplazamiento de la fila de LCU de orden i de la fila de LCU previa.
En algunas realizaciones de la presente invención, “lcu” en la tabla 12A-C puede reemplazarse por “macrobloque”. Por ejemplo, “first_lcu_in_slice”, “lcu_row_cabac_init_flag”, “lcu_row_cabac_init_idc_flag”, “lcu_row_locations_flag”, “lcu_row_locations ()”, “num_of_lcu_rows_minus1”, y “lcu_row_offset[i]” en la tabla 12A-C puede reemplazarse por “first_mb_in_slice”, “mb_row_cabac_init_flag”, “mb_row_locations ()”, “num_of_mb_rows_minus1”, y “mb_row_offset[i]”, respectivamente.
[Tabla 12A]
Figure imgf000039_0001
Figure imgf000040_0001
_______________________________________________________
<Tabla 12A>
[Tabla 12B]
Figure imgf000040_0002
<Tabla 12B>
[Tabla 12C]
Figure imgf000040_0003
_______________________________________________________
<Tabla 12C>
Tabla 12A-C: tabla de sintaxis a modo de ejemplo para señalizar las ubicaciones, en el flujo de bits, de la primera LCU en una fila
En algunas realizaciones de la presente invención, las ubicaciones en un flujo de bits de inicialización de codificador entrópico pueden señalizarse en el flujo de bits. En algunas realizaciones, puede usarse una bandera para señalizar que la ubicación, en el flujo de bits, de inicialización de codificador entrópico puede señalizarse en el flujo de bits. La inicialización de codificador entrópico define una ubicación en el flujo de bits donde se inicializa un codificador entrópico a un estado predefinido tanto en el codificador como en el decodificador. En algunas realizaciones, se inicializa el codificador entrópico usando un proceso de inicialización que da como resultado que cualquier salida posterior del codificador entrópico se alinee con un límite de byte. En algunas realizaciones, se inicializa el codificador entrópico usando un proceso de inicialización que da como resultado que cualquier salida posterior del codificador entrópico se alinee con un límite de bit. En este caso, bit representa un único valor binario en un flujo de bits, y byte representa una unidad que es igual a un múltiplo de bits. Por ejemplo, 8 bits normalmente son equivalentes a un byte. Algunas realizaciones a modo de ejemplo pueden comprender una “entropy_locations_flag” que si es “verdadera” puede indicar que la ubicación, en el flujo de bits, de la inicialización de codificador entrópico va a señalizarse en el flujo de bits. En algunas realizaciones, los datos de ubicación pueden codificarse de manera diferencial. En algunas realizaciones, los datos de ubicación pueden enviarse en cada segmento entrópico. En realizaciones alternativas, los datos de ubicación pueden enviarse una vez por segmento de reconstrucción. En realizaciones alternativas, los datos de ubicación pueden enviarse una vez por segmento.
Las tablas 18A-B muestran sintaxis a modo de ejemplo para señalizar las ubicaciones, en el flujo de bits, de la inicialización de codificador entrópico. Para esta sintaxis a modo de ejemplo, la semántica es:
(1) “entropy_entry_point_flag” señaliza si están presentes ubicaciones de inicialización de codificador entrópico en el flujo de bits. Si el valor de “entropy_entry_point_flag” se establece en “1”, entonces están presentes ubicaciones de inicialización de codificador entrópico en el flujo de bits. En algunas realizaciones, estas ubicaciones de inicialización de codificador entrópico corresponden al inicio de un segmento entrópico. En algunas realizaciones, estas ubicaciones de inicialización de codificador entrópico del codificador entrópico corresponden al inicio de un mosaico, que es un segmento rectangular. En algunas realizaciones, estas ubicaciones de inicialización de codificador entrópico corresponden al inicio de una fila de LCU. En algunas realizaciones, estas ubicaciones de inicialización de codificador entrópico corresponden al inicio de un subflujo, que se define como un conjunto de filas de LCU. El valor por defecto para la “entropy_entry_point_flag” es “0”.
(2) “num_of_entropy_locations_minus1” señaliza el número de ubicaciones de inicialización de codificador entrópico menos 1.
(3) “entropy_locations_offset [i]” indica el desplazamiento de la ubicación de inicialización de codificador entrópico de orden i desde la ubicación de inicialización de codificador entrópico previa.
(4) “entropy_pointjocations_flag” señaliza si está transmitiéndose o no información de ubicación de punto de entrada de codificador entrópico. Si el valor de “entropy_point_locations_flag” es “1”, entonces se transmite la información de ubicación de punto de entrada de codificador entrópico, si no, no se transmite. El valor por defecto para “entropy_point_locations_flag” es “0”.
[Tabla 18A]
Figure imgf000041_0001
_______________________________________________________
<Tabla 18A>
[Tabla 18B]
Figure imgf000041_0002
<Tabla 18B>
Tablas 18A-B: tabla de sintaxis a modo de ejemplo para señalizar las ubicaciones, en el flujo de bits
La tabla 19A-B muestra sintaxis a modo de ejemplo para señalizar las ubicaciones, en el flujo de bits, de la inicialización de codificador entrópico. Para esta sintaxis a modo de ejemplo, la semántica es:
(1) “entropy_entry_point_flag” señaliza si están presentes ubicaciones de inicialización de codificador entrópico en el flujo de bits. Si el valor de “entropy_entry_point_flag” se establece en “1”, entonces están presentes ubicaciones de inicialización de codificador entrópico en el flujo de bits. En algunas realizaciones, estas ubicaciones de inicialización de codificador entrópico corresponden al inicio de un segmento entrópico. En algunas realizaciones, estas ubicaciones de inicialización de codificador entrópico del codificador entrópico corresponden al inicio de un mosaico, que es un segmento rectangular. En algunas realizaciones, estas ubicaciones de inicialización de codificador entrópico corresponden al inicio de una fila de LCU. En algunas realizaciones, estas ubicaciones de inicialización de codificador entrópico corresponden al inicio de un subflujo, que se define como un conjunto de filas de LCU. El valor por defecto para la “entropy_entry_point_flag” es “0”.
(2) “num_of_first_entropy_locations_minus1” señaliza el número de ubicaciones de inicialización de codificador entrópico menos 1.
(3) “num_of_first_entropy_locations_minus1” señaliza el número de ubicaciones de inicialización de codificador entrópico menos 1 para un primer proceso de inicialización de codificador entrópico.
(4) “num_of_second_entropy_locations_minus1” señaliza el número de ubicaciones de inicialización de codificador entrópico menos 1 para un segundo proceso de inicialización de codificador entrópico.
(5) “entropy_locations_offset [i]” indica el desplazamiento de la ubicación de inicialización de codificador entrópico de orden i desde la ubicación de inicialización de codificador entrópico previa.
“entropy_point_locations_flag” señaliza si está transmitiéndose o no información de ubicación de punto de entrada de codificador entrópico. Si el valor de “entropy_point_locations_flag” es “1”, entonces se transmite la información de ubicación de punto de entrada de codificador entrópico, si no, no se transmite. El valor por defecto para “entropy_point_locations_flag” es “0”.
[Tabla 19A]
Figure imgf000042_0001
_______________________________________________________
<Tabla 19A>
[Tabla 19B]
Figure imgf000042_0002
<Tabla 19B>
Tablas 19A-B: tabla de sintaxis a modo de ejemplo para señalizar las ubicaciones, en el flujo de bits En una realización de la invención, se señaliza entropy_locations_offset [i] según la alineación del primer proceso de inicialización de codificador entrópico para un conjunto de valores para el índice i, y se señaliza entropy_locations_offset [i] según la alineación del segundo proceso de inicialización de codificador entrópico para un segundo conjunto de valores para el índice i. Por ejemplo, puede señalizarse entropy_locations_offset [i] según la alineación del primer proceso de inicialización de codificador entrópico cuando i es un múltiplo entero de num_of_second_entropy_locations_minus1 1. Alternativamente, puede señalizarse entropy_locations_offset [i] según la alineación del primer proceso de inicialización de codificador entrópico cuando i+N es un múltiplo entero de num_of_second_entropy_locations_minus1 1, donde N se define en esta realización y un valor entero. En una realización, cuando se señaliza entropy_slice_locations_offset[i] según la alineación del primer proceso de inicialización de codificador entrópico y se señaliza entropy_slice_locations_offset[i+1] según la alineación del segundo proceso de inicialización de codificador entrópico, la ubicación identificada por entropy_slice_locations_offset[i] se mapea a partir de la alineación del primer proceso de inicialización de codificador entrópico en la alineación del segundo proceso de inicialización de codificador entrópico antes de la derivación de la ubicación de inicialización de codificador entrópico correspondiente a entropy_slice_locations_offset[i+1]. Para el caso en que el primer proceso de inicialización presenta alineación de bytes, y el segundo proceso de inicialización presenta alineación de bits, la ubicación con alineación de bytes se convierte en una ubicación con alineación de bits. Por ejemplo, la ubicación con alineación de bytes puede multiplicarse por el número de bits en un byte. Para el caso en que el primer proceso de inicialización presenta alineación de bits, y el segundo proceso de inicialización presenta alineación de bytes, la ubicación con alineación de bits se convierte en una ubicación con alineación de bytes. Por ejemplo, la ubicación con alineación de bits puede dividirse entre el número de bits en un byte. Para este ejemplo, división puede indicar división entera. Alternativamente, para este ejemplo, división puede indicar una operación de desplazamiento a la derecha. Para el ejemplo de conversión de una ubicación con alineación de bits en una ubicación con alineación de bytes, el proceso puede incluir adicionalmente añadir un desplazamiento tras la operación de división descrita anteriormente. Para el caso en que la representación de flujo de bits de entropy_locations_offset[i] se señaliza adicionalmente en el flujo de bits, la representación de entropy_locations_offset[i] puede depender del proceso de inicialización de codificador entrópico correspondiente a la ubicación de inicialización de codificador entrópico entropy_locations_offset[i]. Por ejemplo, cuando la representación de flujo de bits se señaliza como N bits (donde N es un número entero para esta realización) para un primer proceso de inicialización de codificador entrópico que presenta alineación de bytes, una representación de flujo de bits de M bits (donde M es un número entero para esta realización) puede usarse para la representación de flujo de bits para un segundo proceso de inicialización de codificador entrópico. En este caso, la razón entre M y N puede ser igual a la razón de la alineación del primer proceso de inicialización y el segundo proceso de inicialización. Dicho de otro modo, si el primer proceso de inicialización presenta alineación de bytes y el segundo proceso de inicialización presenta alineación de bits, la razón entre M y N puede ser igual que la razón del número de bits en un byte.
La transmisión eficiente de datos residuales desde un codificador a un decodificador puede lograrse señalizando la ubicación de coeficientes de transformada de valor cero y los valores de nivel de los coeficientes de transformada distintos de cero para una unidad elemental, por ejemplo, un macrobloque. Muchos sistemas de codificación pueden intentar ubicar los coeficientes de transformada de valor cero al final de los datos residuales para la unidad elemental, permitiendo de ese modo el uso de un código de “fin de bloque” después del último coeficiente de transformada significativo para señalizar eficientemente que los valores de coeficiente de transformada restantes son cero.
Algunos sistemas de codificación pueden realizar un seguimiento de las ubicaciones de coeficientes de transformada de valor cero en los datos residuales transmitidos previamente para una unidad elemental procesada previamente, lo que puede permitir que se transmitan las ubicaciones con coeficientes de transformada de valor cero previos en último lugar en datos residuales posteriores. Alternativamente, algunos sistemas de codificación pueden realizar un seguimiento de las ubicaciones de coeficientes de transformada de valor distinto de cero en los datos residuales transmitidos previamente. Aunque esto puede mejorar la eficiencia de codificación, hace que sea necesario decodificar por completo datos residuales previos para decodificar datos residuales actuales debido al hecho de que la codificación de datos residuales usa modelos de contexto, también denominados modelos de probabilidad, que están determinados por un identificador de coeficiente de transformada que puede determinarse solamente con el conocimiento de las ubicaciones que se identifica que van a transmitirse al final de los datos residuales.
Por ejemplo, tal como se muestra en la figura 34A, si la adaptación de barrido ha generado un orden de barrido de:
[Fórmula mat. 103]
S = {coef:, coefv 0 , coefi,...}
para el proceso de codificación entrópica asociado con una unidad elemental actual, donde
[Fórmula mat. 104]
coefi
indica el coeficiente de transformada de orden i, entonces es necesario recuperar el contexto, que puede indicarse como
[Fórmula mat. 105]
ctxto ,
correspondiente a
[Fórmula mat. 106]
coef0
para codificar el coeficiente de transformada
[Fórmula mat. 107]
coef0.
A continuación, es necesario recuperar el contexto
[Fórmula mat. 108]
ctxt-10,
correspondiente a
[Fórmula mat. 109]
coef10
para codificar el coeficiente de transformada
[Fórmula mat. 110]
coef10,
etcétera. Por tanto, puede ejecutarse una ordenación temporal en la codificación de las unidades elementales debido a la necesidad de conocer el orden de barrido
[Fórmula mat. 111]
S = {coef 0 , coefv 0 , coef-\,...},
que no puede obtenerse hasta que se hayan codificado las unidades elementales previas.
En algunas realizaciones de la presente invención, para permitir la codificación paralela de segmentos entrópicos, puede restablecerse el barrido adaptativo en un orden de barrido por defecto de segmentos entrópicos en la unidad elemental de inicio de segmento de cada segmento entrópico, permitiendo de ese modo que se codifiquen en paralelo segmentos entrópicos independientes.
En algunas realizaciones de la presente invención, puede establecerse un orden de barrido de un cálculo de barrido adaptativo en un orden de barrido conocido, también denominado por defecto de fila, en la unidad elemental de inicio de fila de cada fila de LCU dentro de un segmento entrópico.
En realizaciones alternativas de la presente invención, el orden de barrido de coeficientes de transformada en bloques y el modelo de contexto correspondiente, también denominado contexto, que puede recuperarse para codificar un coeficiente de transformada puede desacoplarse, permitiendo de ese modo codificación paralela. En estas realizaciones, un coeficiente de transformada ubicado en una primera ubicación en el flujo de bits puede estar asociado, basándose en su ubicación con relación a los otros coeficientes de transformada en el flujo de bits, con un contexto ubicado de manera correspondiente en un orden de recuperación de contexto. En estas realizaciones, puede predefinirse un orden de recuperación de contexto, que puede indicarse como
[Fórmula mat. 112]
F = {ctxtA, ctxtB, ctxtc,...},
donde
[Fórmula mat. 113]
ctxt.
indica un contexto que no está asociado con una ubicación de coeficiente de transformada en el dominio de transformada, sino que está asociado más bien con la ubicación relativa del coeficiente de transformada en el flujo de bits. Por tanto, para un orden de barrido de coeficiente de transformada a modo de ejemplo
[Fórmula mat. 114]
S = {coef:, coefv 0 , coef-i,...},
el proceso de codificación puede codificar
[Fórmula mat. 115]
coef:
con
[Fórmula mat. 116]
ctxtA,
[Fórmula mat. 117]
coef1:
con
[Fórmula mat. 118]
ctxtB,
[Fórmula mat. 119]
coef1
con
[Fórmula mat. 120]
ctxtc
etcétera. En estas realizaciones, el proceso de codificación entrópica puede funcionar independientemente del orden de barrido. Algunas realizaciones de codificador pueden describirse en relación con la figura 35. Un codificador puede recuperar 1280 el coeficiente de transformada siguiente para que se codifique y puede recuperar 1282 el contexto siguiente, de una lista de recuperación predefinida de contextos. El coeficiente de transformada recuperado puede someterse a codificación entrópica 1284 usando el contexto recuperado, y puede realizarse una determinación 1286 en cuanto a si hay o no coeficientes de transformada significativos que quedan por codificar. Si hay 1287 coeficientes de transformada significativos que quedan por codificar, el coeficiente de transformada significativo siguiente puede recuperarse 1280, y el proceso puede continuar. Si no hay 1289, entonces el proceso puede terminar 1290. Algunas realizaciones de decodificador pueden describirse en relación con la figura 36. Un decodificador puede recuperar 1300 el contexto siguiente y someter a decodificación entrópica 1302 el coeficiente de transformada significativo siguiente del flujo de bits usando el contexto recuperado. El coeficiente de transformada decodificado puede almacenarse 1304, y puede realizarse una determinación 1306 en cuanto a si hay o no coeficientes de transformada significativos que quedan por decodificar. Si hay 1307, entonces el contexto siguiente puede recuperarse 1300, y el proceso puede continuar. Si no hay 1309, entonces el proceso puede finalizar 1310.
En realizaciones alternativas de la presente invención, puede restringirse el orden de barrido de coeficientes para que sea un subconjunto de todas las posibles combinaciones de barrido y puede señalizarse explícitamente. Al inicio de un segmento entrópico, el orden de barrido puede establecerse en un orden de barrido señalizado. En algunas realizaciones, el orden de barrido puede señalizarse como sintaxis normativa. En realizaciones alternativas, el orden de barrido puede señalizarse con un mensaje no normativo, por ejemplo, un mensaje SEI u otro mensaje no normativo.
En realizaciones alternativas de la presente invención, puede restringirse el orden de barrido de coeficientes para que sea un subconjunto de todas las posibles combinaciones de barrido y puede señalizarse explícitamente. Al inicio de una fila de LCU en un segmento entrópico, el orden de barrido puede establecerse en un orden de barrido señalizado. En algunas realizaciones, el orden de barrido puede señalizarse como sintaxis normativa. En realizaciones alternativas, el orden de barrido puede señalizarse con un mensaje no normativo, por ejemplo, un mensaje SEI u otro mensaje no normativo.
Aún en realizaciones alternativas de la presente invención, al comienzo de un segmento entrópico, puede establecerse el orden de barrido de coeficientes en el orden de barrido de una unidad elemental decodificada previamente. En algunas realizaciones, puede establecerse el orden de barrido en el orden de barrido usado en la unidad elemental anterior. En realizaciones alternativas, puede establecerse el orden de barrido en el orden de barrido usado en la unidad elemental anterior y a la derecha.
Aún en realizaciones alternativas de la presente invención, al comienzo de una fila de LCU en un segmento entrópico, puede establecerse el orden de barrido de coeficientes en el orden de barrido de una unidad elemental decodificada previamente. En algunas realizaciones, puede establecerse el orden de barrido en el orden de barrido usado en la unidad elemental anterior. En realizaciones alternativas, puede establecerse el orden de barrido en el orden de barrido usado en la unidad elemental anterior y a la derecha.
Haciendo referencia a la figura 42, en algunas realizaciones de la presente invención, un método de inicialización para segmentos P puede aplicarse a segmentos B sometidos a predicción hacia delante, lo que puede dar como resultado una mayor eficiencia de compresión debido a los mayores grados de libertad proporcionados a los segmentos B y la naturaleza multihipotética de las predicciones B. Los segmentos de referencia usados en un segmento B sometido a predicción hacia delante son siempre de imágenes/fotogramas anteriores temporalmente tal como se distinguen de un segmento B normal en los que puede elegirse una referencia de imágenes/fotogramas futuros y/o pasados temporalmente. Por tanto, un segmento B sometido a predicción hacia delante puede comprender datos residuales con características estadísticas que difieren de las de un segmento B normal. Tal como se ilustra en la figura 42, la técnica puede recibir segmentos B, segmentos P y segmentos I y basándose en el tipo de segmento recibido, se selecciona una técnica de inicialización de contexto. Además, en el caso de un segmento B sometido a predicción hacia delante, se usa la técnica de inicialización de contexto para el segmento P. Más específicamente, se realizan las siguientes etapas:
4301: puede decodificarse un tipo de segmento del flujo de bits:
4302: se determina si el tipo de segmento es o no el segmento B;
4303: si el tipo de segmento es el segmento B (Sí en 4302), entonces se determina si el segmento se somete a predicción hacia delante. Si el segmento se somete a predicción hacia delante, entonces se inicializa el contexto con una segunda técnica de inicialización, si no, se inicializa el contexto con una primera técnica de inicialización.
4304: si el tipo de segmento no es el segmento B (NO en 4302), entonces se determina si el tipo de segmento es o no el segmento P. Si el tipo de segmento es el segmento P, entonces se inicializa el contexto con la segunda técnica de inicialización; y
4305: si el tipo de segmento no es el segmento P (NO en 4304), entonces se determina si el tipo de segmento es o no el segmento I. Si el tipo de segmento es el segmento I, se inicializa el contexto con una tercera técnica de inicialización.
Según un aspecto de la presente invención, puede generarse una distribución de probabilidad inicial usada para inicializar un codificador entrópico mediante entrenamiento para fotogramas B sometidos a predicción hacia delante solamente. Según otro aspecto de la presente invención, puede adaptarse la inicialización del contexto basándose en el parámetro de cuantificación, que puede indicarse como
[Fórmula mat. 121]
QP,
usado para codificar los datos de vídeo.
En algunas realizaciones de la presente invención, un codificador puede aplicar alternativamente un método de inicialización de contexto para segmentos P a segmentos B sometidos a predicción hacia delante y puede señalizar la aparición de la alternancia. En algunas realizaciones de la presente invención, la señalización puede ser explícita. En realizaciones alternativas de la presente invención, la señalización puede ser implícita. En algunas realizaciones de la presente invención que comprenden señalización explícita, puede enviarse una bandera al decodificador siempre que se reemplace un segmento P por un segmento B sometido a predicción hacia delante. En algunas de estas realizaciones, puede señalizarse la bandera como una sintaxis normativa. En realizaciones alternativas, la bandera puede señalizarse dentro de un mensaje no normativo, por ejemplo, un mensaje SEI u otro mensaje no normativo.
Haciendo referencia a la figura 40, en algunas realizaciones de la presente invención, un método de inicialización de contexto para segmentos P puede aplicarse a segmentos B sometidos a predicción unidireccional, lo que puede dar como resultado una mayor eficiencia de compresión debido a los mayores grados de libertad proporcionados a los segmentos B. Los segmentos de referencia usados en un segmento B sometido a predicción unidireccional son una parte de o bien imágenes/fotogramas anteriores temporalmente o bien imágenes/fotogramas posteriores temporalmente. Por tanto, un segmento B sometido a predicción unidireccional puede comprender datos residuales con características estadísticas diferentes de las de un segmento B bidireccional. Temporalmente puede referirse al orden de visualización de las imágenes/fotogramas decodificados. Tal como se ilustra en la figura 40, la técnica puede recibir segmentos B, segmentos P y segmentos I y, basándose en el tipo de segmento recibido, se selecciona una técnica de inicialización de contexto. Además, en el caso de un segmento B sometido a predicción unidireccional, se usa la técnica de inicialización de contexto para el segmento P. Más específicamente, se realizan las siguientes etapas:
4101: puede decodificarse un tipo de segmento del flujo de bits:
4102: se determina si el tipo de segmento es o no el segmento B;
4103: si el tipo de segmento es el segmento B (Sí en 4102), entonces se determina si el segmento se somete a predicción hacia delante o hacia atrás pero no ambas. Si el segmento se somete a predicción hacia delante o hacia atrás pero no ambas, entonces se inicializa el contexto con una segunda técnica de inicialización, si no, se inicializa el contexto con una primera técnica de inicialización.
4104: si el tipo de segmento no es el segmento B (NO en 4102), entonces se determina si el tipo de segmento es o no el segmento P. Si el tipo de segmento es el segmento P, entonces se inicializa el contexto con la segunda técnica de inicialización; y
4105: si el tipo de segmento no es el segmento P (NO en 4104), se determina si el segmento es o no el segmento I. Si el segmento es el segmento I, entonces se inicializa el contexto con una tercera técnica de inicialización.
Haciendo referencia a la figura 41, en algunas realizaciones de la presente invención, puede inicializarse un segmento B sometido a predicción hacia delante de manera diferente que un segmento B sometido a predicción hacia atrás y/o un segmento B sometido a predicción bidireccional, que, lo que puede dar como resultado una mayor eficiencia de compresión debido a los diferentes grados de libertad proporcionados a los segmentos B. Los segmentos de referencia usados en un segmento B sometido a predicción hacia delante son una parte de imágenes/fotogramas anteriores temporalmente. Por tanto, un segmento B sometido a predicción hacia delante puede comprender datos residuales con características estadísticas diferentes de las de un segmento B hacia atrás y/o bidireccional. Temporalmente puede referirse al orden de visualización de las imágenes/fotogramas decodificados. Tal como se ilustra en la figura 41, la técnica puede recibir segmentos B, segmentos P y segmentos I y, basándose en el tipo de segmento recibido, se selecciona una técnica de inicialización de contexto. Además, en el caso de un segmento B sometido a predicción hacia delante, puede usarse una técnica de inicialización de contexto diferente de los segmentos B, segmentos P y segmentos I. Más específicamente, se realizan las siguientes etapas: 4201: puede decodificarse un tipo de segmento del flujo de bits:
4202: se determina si el tipo de segmento es o no el segmento B;
4203: si el tipo de segmento es el segmento B (Sí en 4202), entonces se determina si el segmento se somete o no a predicción hacia delante. Si el segmento se somete a predicción hacia delante, entonces se inicializa el contexto con una cuarta técnica de inicialización, si no, se inicializa el contexto con una quinta técnica de inicialización.
4204: si el tipo de segmento no es el segmento B (NO en 4202), entonces se determina si el segmento es o no el tipo de segmento P. Si el tipo de segmento es el segmento P, entonces se inicializa el contexto con la segunda técnica de inicialización; y
4205: si el tipo de segmento no es el segmento P (NO en 4204), entonces se determina si el tipo de segmento es o no el segmento I. Si el tipo de segmento es el segmento I, se inicializa el contexto con una tercera técnica de inicialización.
El método de inicialización de contexto puede consistir en establecer valores de un codificador entrópico que son necesarios para el funcionamiento del codificador entrópico. Por ejemplo, puede establecerse una primera estimación de probabilidad para un codificador entrópico que usa estimaciones de probabilidad para codificar datos, tal como en un codificador aritmético. El método de inicialización de contexto puede usar una técnica de inicialización para determinar los valores. En una realización, un primer método de inicialización corresponde a usar una primera tabla de valores computados previamente para establecer los valores. De manera similar, un segundo método de inicialización corresponde a usar una segunda tabla de valores computados previamente para establecer los valores. En otra realización, un primer método de inicialización usa una primera tabla de valores computados previamente que están diseñados para fotogramas que usan más de una predicción entre fotogramas para establecer los valores, donde el/los fotograma(s) usado(s) para la predicción tanto preceden como siguen temporalmente al fotograma actual cuando se ordenan en orden de visualización. Un segundo método de inicialización usa una segunda tabla de valores computados previamente que se diseñan a partir de fotogramas que usan más de una predicción entre fotogramas para establecer los valores, donde los fotogramas usados para la predicción temporalmente preceden o siguen temporalmente, pero no tanto preceden temporalmente como siguen temporalmente, al fotograma actual cuando se ordenan en orden de visualización. Un tercer método de inicialización usa una tercera tabla de valores computados previamente que están diseñados para fotogramas que usan como máximo una predicción entre fotogramas para establecer los valores. Un cuarto método de inicialización usa una cuarta tabla de valores computados previamente que se diseñan para fotogramas que no usan predicción entre fotogramas para establecer los valores.
En una realización de la invención, RefPicList0 contiene una lista de fotogramas decodificados previamente que se visualizan antes de la visualización del fotograma actual seguida por una lista de fotogramas decodificados previamente que se visualizan de manera posterior a la visualización del fotograma actual y RefPicList1 contiene una lista de fotogramas decodificados previamente que se visualizan de manera posterior a la visualización del fotograma actual seguida por una lista de fotogramas decodificados previamente que se visualizan antes de la visualización del fotograma actual. En esta realización, la condición (2) anterior es verdadera para un segmento B unidireccional puesto que el número de fotogramas decodificados previamente que se visualiza de manera posterior a la visualización del fotograma actual es cero, o el número de fotogramas decodificados que se visualizan antes de la visualización del fotograma actual es cero. En otra realización de la invención, PicOrderCnt indica el orden de visualización de los fotogramas decodificados. En esta realización, la condición (3) anterior es verdadera para un segmento B unidireccional puesto que los fotogramas decodificados se visualizan todos antes de la visualización del fotograma actual o de manera posterior a la visualización del fotograma actual.
En algunas realizaciones de la presente invención que comprenden señalización implícita, puede deducirse que se ha producido la aplicación de un método de inicialización de contexto para segmentos P a un segmento B sometido a predicción hacia delante, en un decodificador cuando los segmentos de referencia (fotogramas/imágenes) usados en la predicción son todos segmentos (fotogramas/imágenes) pasados basándose en el orden en que los segmentos van a visualizarse. En algunas realizaciones, puede deducirse la sustitución de un segmento P por un segmento B unidireccional cuando las siguientes condiciones son verdaderas: (1) la lista de imágenes de referencia RefPicList1 tiene una o más entradas, (2) las listas de imágenes de referencia RefPicList1 y RefPicList0 contienen el mismo conjunto de imágenes, y (3) todos los fotogramas en la lista de imágenes de referencia RefPicList1 y RefPiList0 tienen PicOrderCnt menor que el PicOrderCnt del fotograma actual, donde PicOrderCnt indica el orden de visualización de los fotogramas en orden ascendente. En algunas realizaciones, puede deducirse la sustitución de un segmento P por un segmento B unidireccional cuando las siguientes condiciones son verdaderas: (1) la lista de imágenes de referencia RefPicList1 tiene una o más entradas, (2) las listas de imágenes de referencia RefPicList1 y RefPicList0 contienen el mismo conjunto de imágenes, y (3) todos los fotogramas en las listas de imágenes de referencia RefPicList1 y RefPiList0 tienen PicOrderCnt mayor que el PicOrderCnt del fotograma actual, donde PicOrderCnt indica el orden de visualización de los fotogramas en orden ascendente. En algunas realizaciones, puede deducirse la sustitución de un segmento P por un segmento B unidireccional cuando las siguientes condiciones son verdaderas: (1) la lista de imágenes de referencia RefPicList1 tiene una o más entradas, y (2) el primer fotograma en la lista de imágenes de referencia RefPicList1 y el primer fotograma en RefPicList0 tienen PicOrderCnt menor (o mayor) que el PicOrderCnt del fotograma actual, donde PicOrderCnt indica el orden de visualización de los fotogramas en orden ascendente. En algunas realizaciones, puede deducirse la sustitución de un segmento P por un segmento B unidireccional cuando las siguientes condiciones son verdaderas: (1) la lista de imágenes de referencia RefPicList1 tiene más de una entrada, y (2) los fotogramas [0,N] en la lista de imágenes de referencia RefPicList1 y los fotogramas [0,N] en RefPicList0 tienen PicOrderCnt menor (o mayor) que el PicOrderCnt del fotograma actual, donde PicOrderCnt indica el orden de visualización de los fotogramas en orden ascendente. En algunas realizaciones, puede deducirse la sustitución de un segmento P por un segmento B unidireccional cuando las siguientes condiciones son verdaderas: (1) la lista de imágenes de referencia RefPicList1 tiene una o más entradas, (2) el primer fotograma en la lista de imágenes de referencia RefPicList1 es el mismo que el segundo fotograma en la lista de imágenes de referencia RefPicList0, (3) el segundo fotograma en la lista de imágenes de referencia RefPicList1 es el mismo que el primer fotograma en la lista de imágenes de referencia RefPicList0, (4) los fotogramas [0,N] en la lista de imágenes de referencia RefPicList1 y los fotogramas [0,N] en RefPicList0 tienen PicOrderCnt menor (o mayor) que el PicOrderCnt del fotograma actual, donde PicOrderCnt indica el orden de visualización de los fotogramas en orden ascendente. En algunas realizaciones, no es necesario que el orden en RefPicList0 y RefPicList1 sea idéntico para contener el mismo conjunto de imágenes. En una realización a modo de ejemplo, cuando la lista de imágenes de referencia RefPicList1 tiene más de una entrada y RefPicList1 es idéntico a la lista de imágenes de referencia RefPicLis0, entonces las primeras dos entradas RefPicList1 [0] y RefPicList1 [1] pueden cambiarse. N puede referirse a menor que el número total de fotogramas/imágenes en la lista de imágenes de referencia. PicOrderCnt puede también referirse a un orden relativo de visualización en una memoria intermedia de imagen de decodificador.
Cuando se indica la sustitución de un segmento P por un segmento B sometido a predicción hacia delante, puede inicializarse el contexto para un segmento entrópico usando un método de segmento P. En otra realización, el contexto de un segmento puede inicializarse usando un método de segmento P.
La tabla 13 muestra sintaxis a modo de ejemplo para señalizar explícitamente que va a inicializarse el contexto inicial de un segmento B usando un método de segmento P. En las realizaciones a modo de ejemplo asociadas con la tabla 13, “cabacJnit_P_flag” es una bandera que indica, para la inicialización de codificador entrópico de segmento B, si debe elegirse un método de segmento B o un método de segmento P. En algunas realizaciones, si el valor de la bandera “cabacJnit_P_flag” es “0”, entonces se elige un método de segmento B para la inicialización, y si el valor de la bandera “cabac_init_P_flag” es “1”, entonces se elige un método de segmento P para la inicialización.
[Tabla 13]
Figure imgf000049_0001
_______________________________________________________
Tabla 13: tabla de sintaxis a modo de ejemplo que muestra señalización explícita de la inicialización de segmento B usando un método de segmento P
[Tabla 17]
Figure imgf000049_0002
________ ________
Figure imgf000050_0001
_______________________________________________________
Tabla 17: tabla de sintaxis a modo de ejemplo que muestra señalización explícita de la inicialización
Haciendo referencia a la figura 43, en algunas realizaciones de la presente invención, un segmento B sometido a predicción hacia delante o un segmento B sometido a predicción hacia atrás puede inicializarse de manera diferente de un segmento B sometido a predicción bidireccional, y de manera dependiente de una bandera de inicialización. Esto puede dar como resultado mayor eficiencia de compresión debido a los diferentes grados de libertad proporcionados a los segmentos B y segmentos P. Los segmentos de referencia usados en un segmento B sometido a predicción hacia delante son una parte de imágenes/fotogramas anteriores temporalmente. Por tanto, un segmento B sometido a predicción hacia delante puede comprender datos residuales con características estadísticas diferentes de las de un segmento B hacia atrás y/o bidireccional. Temporalmente puede referirse al orden de visualización de las imágenes/fotogramas decodificados. Tal como se ilustra en la figura 43, la técnica puede recibir segmentos B, segmentos P, segmentos I, y una bandera de inicialización. Basándose en el tipo de segmento recibido y el valor de la bandera de inicialización, se selecciona una técnica de inicialización.
En una realización de la figura 43, la bandera de inicialización es la bandera cabac_init_idc en la tabla A. En las realizaciones a modo de ejemplo asociadas con la tabla 17, “cabac_initjdc” es una bandera que indica que se selecciona un método de inicialización alternativo. Cuando “cabac_init_idc” se establece igual a un valor de 0, entonces se selecciona un método de inicialización por defecto. Cuando “cabac_init_idc” se establece igual a un valor de 1, entonces se selecciona un método de inicialización alternativo. En una realización alternativa de la invención, cabac_init_idc es un conjunto de banderas binarias que controla la selección del método de inicialización. En esta realización, se usa una de las banderas en este conjunto para seleccionar entre un método de inicialización por defecto y un método de inicialización alternativo. En una realización alternativa de la invención, entropy_coding_mode_flag es una bandera que indica el codificador entrópico. Aún en una realización alternativa de la invención, entropy_coding_mode_flag es una bandera que indica si se transmite la bandera de inicialización en el flujo de bits y entropy_coding_mode_flag no indica el codificador entrópico. Se prevé que la bandera entropy_coding_mode_flag puede consistir en una primera bandera que indica el codificador entrópico y una segunda bandera que indica si se transmite la bandera de inicialización en el flujo de bits. Cuando la bandera entropy_coding_mode_flag consiste en más de una primera bandera, la bandera entropy_coding_mode_flag es verdadera cuando las banderas asociadas con la bandera entropy_coding_mode_flag son todas verdaderas. En otra realización de la invención, la bandera entropy_coding_mode_flag puede ser verdadera solamente para un primer codificador entrópico. Por ejemplo, dicho primer codificador entrópico puede ser el codificador entrópico para CABAC.
Haciendo referencia a la figura 44, en algunas realizaciones de la presente invención, puede inicializarse un segmento B sometido a predicción hacia delante de manera diferente de un segmento B sometido a predicción hacia atrás y/o un segmento B sometido a predicción bidireccional, y de manera dependiente de una bandera de inicialización. Esto puede dar como resultado mayor eficiencia de compresión debido a los diferentes grados de libertad proporcionados a los segmentos B y segmentos P. Los segmentos de referencia usados en un segmento B sometido a predicción hacia delante son una parte de imágenes/fotogramas anteriores temporalmente. Por tanto, un segmento B sometido a predicción hacia delante pueden comprender datos residuales con características estadísticas diferentes de las de un segmento B hacia atrás y/o bidireccional. Temporalmente puede referirse al orden de visualización de las imágenes/fotogramas decodificados. Tal como se ilustra en la figura 44, la técnica puede recibir segmentos B, segmentos P, segmentos I y una bandera de inicialización. Basándose en el tipo de segmento recibido y el valor de la bandera de inicialización, se selecciona una técnica de inicialización.
En una realización de la figura 44, la bandera de inicialización es la bandera cabac_init_idc en la tabla 17. En las realizaciones a modo de ejemplo asociadas con la tabla 17, “cabac_init_idc” es una bandera que indica que se selecciona un método de inicialización alternativo. Cuando “cabac_init_idc” se establece igual a un valor de 0, entonces se selecciona un método de inicialización por defecto. Cuando “cabac_init_idc” se establece igual a un valor de 1, entonces se selecciona un método de inicialización alternativo. En una realización alternativa, cabac_init_idc es un conjunto de banderas binarias que controla la selección del método de inicialización. En esta realización, una de las banderas se usa para seleccionar entre un método de inicialización por defecto y un método de inicialización alternativo. En una realización alternativa de la invención, entropy_coding_mode_flag es una bandera que indica el codificador entrópico. Aún en una realización alternativa de la invención, entropy_coding_mode_flag es una bandera que indica si se transmite la bandera de inicialización en el flujo de bits y entropy_coding_mode_flag no indica el codificador entrópico. Se prevé que la entropy_coding_mode_flag puede consistir en una primera bandera que indica el codificador entrópico y una segunda bandera que indica si se transmite la bandera de inicialización en el flujo de bits. Cuando la bandera entropy_coding_mode_flag consiste en más de una primera bandera, la bandera entropy_coding_mode_flag es verdadera cuando las banderas asociadas con la bandera entropy_coding_mode_flag son todas verdaderas. En otra realización de la invención, la entropy_coding_mode_flag puede ser verdadera solamente para un primer codificador entrópico. Por ejemplo, dicho primer codificador entrópico puede ser el codificador entrópico para CABAC.
Haciendo referencia a la figura 45, en algunas realizaciones de la presente invención, un método de inicialización para segmentos P puede aplicarse a segmentos B sometidos a predicción hacia delante, y el método de inicialización puede ser dependiente de una bandera de inicialización. Esto puede dar como resultado mayor eficiencia de compresión debido a los diferentes grados de libertad proporcionados a los segmentos B y la naturaleza multihipotética de las predicciones B. Los segmentos de referencia usados en un segmento B sometido a predicción hacia delante son siempre de imágenes/fotogramas anteriores temporalmente tal como se distinguen de un segmento B normal en el que puede elegirse una referencia de imágenes/fotogramas futuros y/o pasados temporalmente. Por tanto, un segmento B sometido a predicción hacia delante puede comprender datos residuales con características estadísticas diferentes de las de un segmento B hacia atrás y/o bidireccional. Temporalmente puede referirse al orden de visualización de las imágenes/fotogramas decodificados. Tal como se ilustra en la figura 45, la técnica puede recibir segmentos B, segmentos P, segmentos I y una bandera de inicialización. Basándose en el tipo de segmento recibido y el valor de la bandera de inicialización, se selecciona una técnica de inicialización.
En una realización de la figura 45, la bandera de inicialización es la bandera cabac_init_idc en la tabla 17. En las realizaciones a modo de ejemplo asociadas con la tabla 17, “cabac_initjdc” es una bandera que indica que se selecciona un método de inicialización alternativo. Cuando “cabac_init_idc” se establece igual a un valor de 0, entonces se selecciona un método de inicialización por defecto. Cuando “cabac_init_idc” se establece igual a un valor de 1, entonces se selecciona un método de inicialización alternativo. En una realización alternativa de la invención, cabac_init_idc es un conjunto de banderas binarias que controla la selección del método de inicialización. En esta realización, una de las banderas se usa para seleccionar entre un método de inicialización por defecto y un método de inicialización alternativo. En una realización alternativa de la invención, entropy_coding_mode_flag es una bandera que indica el codificador entrópico. Aún en una realización alternativa de la invención, entropy_coding_mode_flag es una bandera que indica si se transmite la bandera de inicialización en el flujo de bits y entropy_coding_mode_flag no indica el codificador entrópico. Se prevé que la entropy_coding_mode_flag puede consistir en una primera bandera que indica el codificador entrópico y una segunda bandera que indica si se transmite la bandera de inicialización en el flujo de bits. Cuando la entropy_coding_mode_flag consiste en más de una primera bandera, la entropy_coding_mode_flag es verdadera cuando las banderas asociadas con la entropy_coding_mode_flag son todas verdaderas. En otra realización de la invención, la entropy_coding_mode_flag puede ser verdadera solamente para un primer codificador entrópico. Por ejemplo, dicho primer codificador entrópico puede ser el codificador entrópico para CABAC.
Haciendo referencia a la figura 46, en algunas realizaciones de la presente invención, un método de inicialización para segmentos P puede aplicarse a segmentos B y un método de inicialización para segmentos B puede aplicarse a segmentos P, y el método de inicialización puede ser dependiente de una bandera de inicialización. Esto puede dar como resultado mayor eficiencia de compresión debido a los diferentes grados de libertad proporcionados por la bandera de inicialización. Tal como se ilustra en la figura 46, la técnica puede recibir segmentos B, segmentos P, segmentos I y una bandera de inicialización. Basándose en el tipo de segmento recibido y el valor de la bandera de inicialización, se selecciona una técnica de inicialización. Además, en el caso de un primer valor de la bandera de inicialización, un primer método de inicialización se usa para segmentos P y un segundo método de inicialización se usa para segmentos B. En el caso de un segundo valor de la bandera de inicialización, el primer método de inicialización se usa para segmentos B y el segundo método de inicialización se usa para segmentos P.
En una realización de la figura 46, la bandera de inicialización es la bandera cabac_init_idc en la tabla 17. En las realizaciones a modo de ejemplo asociadas con la tabla 17, “cabac_init_idc” es una bandera que indica que se selecciona un método de inicialización alternativo. Cuando “cabac_init_idc” se establece igual a un valor de 0, entonces se selecciona un método de inicialización por defecto. Cuando “cabac_init_idc” se establece igual a un valor de 1, entonces se selecciona un método de inicialización alternativo. En una realización alternativa de la invención, cabac_init_idc es un conjunto de banderas binarias que controla la selección del método de inicialización. En esta realización, una de las banderas se usa para seleccionar entre un método de inicialización por defecto y un método de inicialización alternativo. En una realización alternativa de la invención, entropy_coding_mode_flag es una bandera que indica el codificador entrópico. Aún en una realización alternativa de la invención, entropy_coding_mode_flag es una bandera que indica si se transmite la bandera de inicialización en el flujo de bits y entropy_coding_mode_flag no indica el codificador entrópico. Se prevé que la entropy_coding_mode_flag puede consistir en una primera bandera que indica el codificador entrópico y una segunda bandera que indica si se transmite la bandera de inicialización en el flujo de bits. Cuando la entropy_coding_mode_flag consiste en más de una primera bandera, la entropy_coding_mode_flag es verdadera cuando las banderas asociadas con la entropy_coding_mode_flag son todas verdaderas. En otra realización de la invención, la entropy_coding_mode_flag puede ser verdadera solamente para un primer codificador entrópico. Por ejemplo, dicho primer codificador entrópico puede ser el codificador entrópico para CABAC.
En algunas realizaciones de la presente invención, los estados de inicialización de contexto para un segmento entrópico pueden basarse en el número de bins procesados por un codificador entrópico. Un codificador entrópico puede converger más rápidamente a las estadísticas fuente cuando se inicializa correctamente. Una convergencia más rápida puede dar como resultado que se desperdicien menos bits y, por tanto, mayor eficiencia de compresión. En algunas realizaciones de la presente invención, puede estimarse el número de bins que puede transmitirse, y cuando el número estimado de bins cumple un primer criterio, entonces puede usarse un primer método de inicialización. Cuando el número estimado de bins no cumple el primer criterio, puede usarse un segundo método de inicialización.
Una realización a modo de ejemplo de la presente invención puede entenderse en relación con la figura 37. En estas realizaciones, el número de bins procesados puede estimarse 1320. El número estimado de bins procesados, indicado como Nbins, puede compararse 1322 con un valor umbral, indicado como Tbins. A medida que aumenta el número de bins procesados, puede disminuir la precisión predictiva de la inicialización de contexto basada en QP. Una mayor precisión predictiva para la inicialización de contexto puede conducir a una mejor eficiencia de compresión. Si el número estimado de bins procesados es 1324 mayor que el valor umbral, entonces un único valor de inicialización de contexto puede elegirse 1326. Si el número estimado de bins procesados no es 1328 mayor que el valor umbral, entonces el contexto puede inicializarse adaptativamente 1330 basándose en QP. El único valor de inicialización de contexto puede seleccionarse basándose en el entrenamiento y la optimización de parámetros elegidos, por ejemplo, error cuadrático, entropía relativa y otros parámetros de distancia. Una inicialización basada en QP adaptativa puede ser una adaptación afín de forma
[Fórmula mat. 122]
Ca*QP+Cb,
donde
[Fórmula mat. 123]
CA
y
[Fórmula mat. 124]
CB
son constantes. En algunas realizaciones, puede estimarse el número de bins basándose en el número de bins procesados en el segmento previo. En realizaciones alternativas, puede estimarse el número de bins basándose en el número de bins procesados en el fotograma previo.
En algunas realizaciones de la presente invención descritas en relación con la figura 38, que representa pictóricamente 1340 un rango de número de bins procesados, pueden determinarse múltiples rangos disjuntos (se muestran tres 1342, 1344, 1346) del número de bins procesados, y describirse en relación con un número de umbrales (se muestran dos 1348, 1350), y puede seleccionarse el valor de inicialización de contexto basándose en dentro de cuál de los rangos 1342, 1344, 1346 disminuye el número estimado de bins procesados, por ejemplo, para tres rangos 1342, 1344, 1346, cuando
[Fórmula mat. 125]
Nbins <Tmin
1342, el contexto puede inicializarse adaptativamente basándose en QP, cuando
[Fórmula mat. 126]
Tmin < Nbins <T i
1344, el contexto puede inicializarse en un primer valor de contexto fijo y cuando
[Fórmula mat. 127]
T < Nbins
1346, el contexto puede inicializarse en un segundo valor de contexto fijo, diferente.
Otra realización a modo de ejemplo alternativa de la presente invención puede entenderse en relación con la figura 39. En esta realización a modo de ejemplo, el valor de QP puede determinarse 1400 y examinarse 1402 en relación con un valor umbral, indicado como Tqp. En general, a medida que disminuye QP, puede aumentar el número de bins procesados. Si QP no es 1404 menor que ese valor umbral, entonces el contexto puede inicializarse adaptativamente 1406 basándose en QP. Si el valor de QP es 1408 menor que el valor umbral, entonces un único valor de inicialización de contexto puede elegirse 1410. El único valor de inicialización de contexto puede seleccionarse basándose en el entrenamiento y la optimización de parámetros elegidos, por ejemplo, error cuadrático, entropía relativa y otros parámetros de distancia.
En algunas realizaciones de la presente invención, pueden determinarse múltiples rangos disjuntos de QP, y el valor de inicialización de contexto puede seleccionarse basándose en dentro de cuál de los rangos disminuye el valor de QP.
La tabla 14 muestra una comparación del rendimiento de distorsión de velocidad de transmisión para la codificación totalmente intra. La primera comparación, mostrada en las dos subcolumnas de la columna tres, es una comparación, usando el software Joint Model (JM) de H.264/AVC, versión 13.0, entre la codificación que usa múltiples segmentos, en la que la decodificación entrópica y la reconstrucción de macrobloque para un segmento no dependen de otros segmentos, y la codificación sin usar segmentos. En promedio, para la misma velocidad de transmisión de bits, se degrada la calidad por la codificación en -0,3380 dB que usa múltiples segmentos con respecto a no usar segmentos. En promedio, para el mismo nivel de calidad, la velocidad de transmisión de bits aumenta en un 7% por la codificación que usa múltiples segmentos con respecto a no usar segmentos.
La segunda comparación, mostrada en las dos subcolumnas de la columna cuatro, es una comparación entre la codificación que usa un segmento de reconstrucción dividido, según las realizaciones de la presente invención, en múltiples segmentos entrópicos (dos filas de macrobloques por segmento entrópico) y la codificación que usa JM 13.0 sin segmentos. En promedio, para la misma velocidad de transmisión de bits, se degrada la calidad en -0,0860 dB que usa un segmento de reconstrucción con múltiples segmentos entrópicos con respecto a la codificación sin usar segmentos. En promedio, para el mismo nivel de calidad, la velocidad de transmisión de bits aumenta en un 1,83% por la codificación que usa un segmento de reconstrucción con múltiples segmentos entrópicos con respecto a la codificación sin usar segmentos.
[Tabla 14]
Figure imgf000053_0001
Tabla 14: comparación del rendimiento de distorsión de velocidad de transmisión - codificación totalmente intra La tabla 15 muestra una comparación del rendimiento de distorsión de velocidad de transmisión para codificación IBBP. La primera comparación, mostrada en las dos subcolumnas de la columna tres, es una comparación, usando el software Joint Model (JM) de H.264/AVC, versión 13.0, entre la codificación que usa múltiples segmentos, en la que la decodificación entrópica y la reconstrucción de macrobloque para un segmento no dependen de otros segmentos, y la codificación sin usar segmentos. En promedio, para la misma velocidad de transmisión de bits, se degrada la calidad por la codificación en -0,5460 dB que usa múltiples segmentos. En promedio, para el mismo nivel de calidad, la velocidad de transmisión de bits aumenta en un 21,41% por la codificación que usa múltiples segmentos con respecto a no usar segmentos.
La segunda comparación, mostrada en las dos subcolumnas de la columna cuatro, es una comparación entre la codificación que usa un segmento de reconstrucción dividido, según las realizaciones de la presente invención, en múltiples segmentos entrópicos (dos filas de macrobloques por segmento entrópico) y la codificación que usa JM 13.0 sin segmentos. En promedio, para la misma velocidad de transmisión de bits, se degrada la calidad en -0,31 dB que usa un segmento de reconstrucción con múltiples segmentos entrópicos con respecto a la codificación sin usar segmentos. En promedio, para el mismo nivel de calidad, la velocidad de transmisión de bits aumenta en un 11,45% por la codificación que usa un segmento de reconstrucción con múltiples segmentos entrópicos con respecto a la codificación sin usar segmentos.
[Tabla 15]
Figure imgf000054_0001
Tabla 15: comparación del rendimiento de distorsión de velocidad de transmisión - codificación IBBP Comparando los resultados, la codificación que usa múltiples segmentos entrópicos en un segmento de reconstrucción proporciona unos ahorros de velocidad de transmisión de bits del 5,17% y el 9,96% para la codificación totalmente intra e IBBP, respectivamente, con respecto a la codificación que usa segmentos, en la que la decodificación entrópica y la reconstrucción de macrobloque para un segmento no dependen de otros segmentos, aunque ambas permiten la decodificación paralela.
La tabla 16 muestra una comparación del rendimiento de distorsión de velocidad de transmisión para la codificación totalmente intra e IBBP. En esta tabla, la comparación es una comparación entre la codificación sin usar segmentos y la codificación que usa un segmento de reconstrucción dividido en segmentos entrópicos, según las realizaciones de la presente invención, de tamaño máximo de 26k bins por segmento entrópico. La primera comparación, mostrada en las dos subcolumnas de la columna dos, es una comparación usando codificación totalmente intra. En promedio, para la misma velocidad de transmisión de bits, se degrada la calidad por la codificación en -0,062 dB que usa un segmento de reconstrucción con múltiples segmentos entrópicos. En promedio, para el mismo nivel de calidad, la velocidad de transmisión de bits aumenta en un 1,86% por la codificación que usa un segmento de reconstrucción con múltiples segmentos entrópicos. Por tanto, para la codificación totalmente intra que usa segmentos entrópicos de tamaño máximo de 26k bins por segmento entrópico, hay unos ahorros de velocidad de transmisión de bits promedio de aproximadamente el 0,64% con respecto a los de tamaños de segmento entrópico fijos de dos filas de macrobloques.
La segunda comparación, mostrada en las dos subcolumnas de la columna tres, es una comparación usando codificación IBBP. En promedio, para la misma velocidad de transmisión de bits, se degrada la calidad en -0,022 dB que usa un segmento de reconstrucción con múltiples segmentos entrópicos con respecto a la codificación sin usar segmentos. En promedio, para el mismo nivel de calidad, la velocidad de transmisión de bits aumenta en un 0,787% por la codificación que usa un segmento de reconstrucción con múltiples segmentos entrópicos con respecto a la codificación sin usar segmentos. Por tanto, para codificación IBBP que usa segmentos entrópicos de tamaño máximo de 26k bins por segmento entrópico, hay unos ahorros de velocidad de transmisión de bits promedio de aproximadamente el 10,66% con respecto a los de tamaños de segmento entrópico fijos de dos filas de macrobloques.
[Tabla 16]
Figure imgf000054_0002
Tabla 16: comparación del rendimiento de distorsión de velocidad de transmisión - codificación totalmente intra e IBBP que usa segmentos entrópicos con menos de 26k bins por segmento entrópico
El uso de segmentos entrópicos permite la decodificación paralela, y división de codificador de un segmento de reconstrucción en segmentos entrópicos, en los que cada segmento entrópico es menor que un número máximo de bins puede proporcionar unos ahorros considerables de velocidad de transmisión de bits con respecto a segmentos entrópicos de un número fijo de macrobloques.
Aunque los esquemas y diagramas en las figuras pueden mostrar un orden de ejecución específico, se entiende que el orden de ejecución puede diferir del que se representa. Por ejemplo, el orden de ejecución de los bloques puede cambiarse en relación con el orden mostrado. Además, como ejemplo adicional, dos o más bloques mostrados en sucesión en una figura pueden ejecutarse simultáneamente, o con simultaneidad parcial. Los expertos habituales en la técnica entienden que puede crearse software, hardware y/o firmware por un experto habitual en la técnica para llevar a cabo las diversas funciones lógicas descritas en el presente documento.
Algunas realizaciones de la presente invención pueden comprender un producto de programa informático que comprende un medio de almacenamiento legible por ordenador que tiene instrucciones almacenadas en el mismo/en que puede usarse para programar un sistema de computación para realizar cualquiera de los rasgos y los métodos descritos en el presente documento. Los medios de almacenamiento legibles por ordenador a modo de ejemplo pueden incluir, pero no se limitan a, dispositivos de memoria flash, medios de almacenamiento en disco, por ejemplo, disquetes, discos ópticos, discos magneto-ópticos, discos versátiles digitales (DVD), discos compactos (CD), microdiscos duros y otros medios de almacenamiento en disco, memoria de sólo lectura (ROM), memoria de sólo lectura programable (PROM), memoria de sólo lectura programable y borrable (EPROM), memoria de sólo lectura eléctricamente programable y borrable (EEPROM), memoria de acceso aleatorio (RAM), memoria de vídeo de acceso aleatorio (VRAM), memoria dinámica de acceso aleatorio (DRAM) y cualquier tipo de medio o dispositivo adecuado para almacenar instrucciones y/o datos.
Algunas realizaciones de la presente invención comprenden métodos y sistemas para codificación entrópica paralela. Algunas realizaciones de la presente invención comprenden métodos y sistemas para decodificación entrópica paralela.
En algunas realizaciones de la presente invención, puede inicializarse un patrón de barrido al inicio de un segmento entrópico.
En algunas realizaciones de la presente invención, puede inicializarse un patrón de barrido en una unidad elemental de inicio en una fila en un segmento entrópico.
En algunas realizaciones de la presente invención, puede inicializarse un estado asociado con un cálculo de barrido adaptativo al inicio de un segmento entrópico.
En algunas realizaciones de la presente invención, puede inicializarse un estado asociado con un cálculo de barrido adaptativo en una unidad elemental de inicio en una fila en un segmento entrópico.
En algunas realizaciones de la presente invención, un orden de barrido de coeficientes puede desacoplarse de un orden de recuperación de contexto.
En algunas realizaciones de la presente invención, puede detectarse un segmento B sometido a predicción hacia delante y puede inicializarse un contexto asociado con codificación entrópica del segmento B sometido a predicción hacia delante según un método de segmento P.
En algunas realizaciones de la presente invención, puede inicializarse un contexto basándose en un recuento de bins.
En algunas realizaciones de la presente invención, puede inicializarse un contexto basándose en un valor de parámetro de cuantificación.
Un aspecto de la invención proporciona un método para decodificar un fotograma de vídeo de una secuencia de vídeo, que comprende:
(a) recibir un segmento en un decodificador de vídeo;
(b) identificar si dicho segmento es o bien un segmento B sometido a predicción hacia delante o bien un segmento B sometido a predicción hacia atrás, y no un segmento B sometido a predicción tanto hacia delante como hacia atrás; (c) inicializar, usando una técnica para segmento P, un contexto asociado con dicho segmento.
Según otro aspecto, dicha identificación comprende únicamente dicho segmento B sometido a predicción hacia atrás.
Según otro aspecto, dicha identificación se basa en: (1) una primera lista que identifica imágenes de referencia tiene al menos una entrada, (2) dicha primera lista y una segunda lista que identifican imágenes de referencia contienen el mismo conjunto de dichas imágenes, (3) todas las imágenes en dicha primera lista y dicha segunda lista van a visualizarse antes del segmento actual.
Según otro aspecto, dicha identificación se basa en: (1) una primera lista que identifica imágenes de referencia tiene al menos una entrada, (2) dicha primera lista y una segunda lista que identifican imágenes de referencia contienen el mismo conjunto de imágenes, (3) todas las imágenes en dicha primera lista y dicha segunda lista van a visualizarse después del segmento actual.
Según otro aspecto, dicha identificación se basa en: (1) una primera lista que identifica imágenes de referencia tiene al menos una entrada, (2) dicha primera lista y dicha segunda lista que identifican imágenes de referencia contienen un conjunto no coextenso de imágenes, y dicho conjunto no coextenso de imágenes van a visualizarse antes del segmento actual.
Según otro aspecto, dicha identificación se basa en: (1) una primera lista que identifica imágenes de referencia tiene al menos una entrada, (2) dicha primera lista y dicha segunda lista que identifican imágenes de referencia contienen un conjunto no coextenso de imágenes, y dicho conjunto no coextenso de imágenes van a visualizarse después del segmento actual.
Según otro aspecto, dicha identificación se basa en: (1) una primera lista que identifica imágenes de referencia tiene al menos una entrada, (2) una primera imagen de referencia en dicha primera lista es la misma que una segunda imagen de referencia en una segunda lista, (3) una primera imagen de referencia en dicha segunda lista es la misma que una segunda imagen de referencia en dicha primera lista, (4) dicha primera lista y dicha segunda lista que identifican imágenes de referencia contienen un conjunto no coextenso de imágenes, y dicho conjunto no coextenso de imágenes van a visualizarse antes del segmento actual.
Otro aspecto de la invención proporciona un método para decodificar un fotograma de vídeo en una secuencia de vídeo, que comprende:
(a) recibir un segmento en un decodificador de vídeo;
(b) identificar si dicho segmento es un segmento B sometido a predicción hacia delante;
(c) inicializar, usando una técnica diferente de la usada para cualquiera de un segmento B, un segmento P y un segmento I, un contexto asociado con dicho segmento.
Los términos y las expresiones que se han empleado en la memoria descriptiva anterior, se usan en el presente documento como términos de descripción y no de limitación, y no hay intención en el uso de tales términos y expresiones de excluir equivalentes de los rasgos mostrados y descritos o partes de los mismos, reconociéndose que el alcance de la invención está definido y limitado solamente por las siguientes reivindicaciones.

Claims (3)

  1. REIVINDICACIONES
    i. Método para decodificar un fotograma de vídeo de una secuencia de vídeo, comprendiendo el método:
    (a) recibir un segmento;
    (b) recibir una bandera para determinar un método de inicialización correspondiente al segmento recibido; y (c) inicializar un contexto de codificación aritmética binaria adaptativa según el contexto asociado con el tipo de segmento del segmento recibido usando uno de un primer método de inicialización y un segundo método de inicialización basándose en al menos el tipo de segmento y el valor de la bandera, caracterizado porque
    en un caso en el que el tipo de segmento es el tipo B de segmento y el valor de la bandera es igual a uno, se inicializa un contexto de codificación aritmética binaria adaptativa según el contexto asociado con el tipo B de segmento mediante el segundo método de inicialización; y
    en un caso en el que el tipo de segmento es el tipo B de segmento y el valor de la bandera es igual a cero, se inicializa el contexto de codificación aritmética binaria adaptativa según el contexto asociado con el tipo B de segmento mediante el primer método de inicialización, en el que el primer método de inicialización se usa para inicializar un contexto de codificación aritmética binaria adaptativa según el contexto asociado con un tipo P de segmento en un caso en el que el tipo de segmento es el tipo P de segmento y el valor de la bandera es igual a uno.
  2. 2. Método según la reivindicación 1, en el que en el caso en el que el tipo de segmento indica segmento I, inicializar un contexto de codificación aritmética binaria adaptativa según el contexto asociado con el tipo I de segmento usando un tercer método de inicialización especificado independiente de la información recibida.
  3. 3. Método según la reivindicación 2, en el que el tercer método de inicialización difiere del primer método de inicialización y el segundo método de inicialización.
ES12846869T 2011-11-10 2012-11-09 Inicialización de contexto basándose en memoria intermedia de imagen de decodificador Active ES2728443T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/294,100 US9338465B2 (en) 2011-06-30 2011-11-10 Context initialization based on decoder picture buffer
PCT/JP2012/007220 WO2013069306A1 (en) 2011-11-10 2012-11-09 Context initialization based on decoder picture buffer

Publications (1)

Publication Number Publication Date
ES2728443T3 true ES2728443T3 (es) 2019-10-24

Family

ID=48289553

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12846869T Active ES2728443T3 (es) 2011-11-10 2012-11-09 Inicialización de contexto basándose en memoria intermedia de imagen de decodificador

Country Status (8)

Country Link
US (6) US9338465B2 (es)
EP (4) EP4380157A2 (es)
JP (1) JP6162113B2 (es)
CN (1) CN103931183B (es)
BR (1) BR112014011334B1 (es)
ES (1) ES2728443T3 (es)
IN (1) IN2014CN03605A (es)
WO (1) WO2013069306A1 (es)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI457875B (zh) * 2009-02-19 2014-10-21 Prime View Int Co Ltd 顯示裝置及其製造方法
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US9338465B2 (en) 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US11647197B2 (en) 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
US20130114691A1 (en) * 2011-11-03 2013-05-09 Qualcomm Incorporated Adaptive initialization for context adaptive entropy coding
US9883185B2 (en) 2011-12-29 2018-01-30 Lg Electronics Inc. Method for encoding and decoding image based on entry point in bitstream and apparatus using same
US9241167B2 (en) * 2012-02-17 2016-01-19 Microsoft Technology Licensing, Llc Metadata assisted video decoding
KR102219089B1 (ko) * 2012-03-22 2021-02-23 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
FR2988960A1 (fr) * 2012-03-29 2013-10-04 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
CN108769692B (zh) * 2012-06-26 2022-05-24 Lg 电子株式会社 视频编码方法、视频解码方法和使用其的装置
KR102144881B1 (ko) * 2012-06-29 2020-08-14 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 비디오 처리를 위한 송신 장치 및 방법
US9485506B2 (en) * 2012-09-11 2016-11-01 Texas Instruments Incorporated Method and system for constraining slice header processing overhead in video coding
US10785482B2 (en) 2012-09-24 2020-09-22 Texas Instruments Incorporated Method and system for constraining tile processing overhead in video coding
US9992490B2 (en) * 2012-09-26 2018-06-05 Sony Corporation Video parameter set (VPS) syntax re-ordering for easy access of extension parameters
PL3122048T3 (pl) 2012-09-26 2018-07-31 Velos Media International Limited Sposób kodowania obrazów oraz urządzenie kodujące obrazy
US9319702B2 (en) * 2012-12-03 2016-04-19 Intel Corporation Dynamic slice resizing while encoding video
US9270991B2 (en) 2013-01-07 2016-02-23 Qualcomm Incorporated Inter-layer reference picture generation for HLS-only scalable video coding
US10045032B2 (en) 2013-01-24 2018-08-07 Intel Corporation Efficient region of interest detection
US9749627B2 (en) * 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
US20140362098A1 (en) * 2013-06-10 2014-12-11 Sharp Laboratories Of America, Inc. Display stream compression
US10404999B2 (en) 2013-09-27 2019-09-03 Qualcomm Incorporated Residual coding for depth intra prediction modes
CN105723712B (zh) * 2013-10-14 2019-06-28 韩国电子通信研究院 基于多层的图像编码/解码方法和设备
US20170041621A1 (en) * 2013-12-18 2017-02-09 Telefonaktiebolaget L M Ericsson (Publ) Methods, decoder and encoder for managing video sequences
US10715833B2 (en) * 2014-05-28 2020-07-14 Apple Inc. Adaptive syntax grouping and compression in video data using a default value and an exception value
JP6717562B2 (ja) * 2015-02-06 2020-07-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
US10027989B2 (en) * 2015-05-06 2018-07-17 Integrated Device Technology, Inc. Method and apparatus for parallel decoding
JP2016218721A (ja) 2015-05-20 2016-12-22 ソニー株式会社 メモリ制御回路およびメモリ制御方法
US20160360236A1 (en) * 2015-06-04 2016-12-08 Mediatek Inc. Method and Apparatus for Entropy Transcoding
US10446071B2 (en) 2016-03-31 2019-10-15 Samsung Electronics Co., Ltd. Device and method of using slice update map
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
JP7094290B2 (ja) * 2017-01-31 2022-07-01 シャープ株式会社 変換係数レベル値をスケーリングするシステム及び方法
US11109041B2 (en) * 2019-05-16 2021-08-31 Tencent America LLC Method and apparatus for video coding
US11425376B2 (en) 2019-08-23 2022-08-23 Apple Inc. Image signal encoding/decoding method and apparatus therefor
WO2021100863A1 (en) * 2019-11-22 2021-05-27 Sharp Kabushiki Kaisha Systems and methods for signaling tiles and slices in video coding
BR112022020366A2 (pt) * 2020-04-07 2022-11-29 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeo, aparelho para processamento de dados de vídeo e meios de armazenamento e de gravação não transitórios legíveis por computador
KR20220163392A (ko) 2020-04-09 2022-12-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 디블로킹 시그널링
WO2021204251A1 (en) 2020-04-10 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Use of header syntax elements and adaptation parameter set
WO2021209061A1 (en) 2020-04-17 2021-10-21 Beijing Bytedance Network Technology Co., Ltd. Presence of adaptation parameter set units
KR20230002447A (ko) 2020-04-26 2023-01-05 바이트댄스 아이엔씨 비디오 코딩 신택스 요소의 조건적 시그널링
WO2021236059A1 (en) * 2020-05-19 2021-11-25 Google Llc Dynamic parameter selection for quality-normalized video transcoding

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12579A (en) 1855-03-27 peters
US5830108A (en) 1996-01-03 1998-11-03 Alimed, Inc. Contracture means and method
US6970510B1 (en) 2000-04-25 2005-11-29 Wee Susie J Method for downstream editing of compressed video
US7369612B2 (en) 2000-12-11 2008-05-06 Sony Corporation Video decoder and method for using the same
US6894628B2 (en) * 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
KR100664936B1 (ko) 2005-04-13 2007-01-04 삼성전자주식회사 코딩 효율이 향상된 컨텍스트 기반 적응적 산술 코딩 및디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오 코딩및 디코딩 방법과 이를 위한 장치
JP2008536451A (ja) * 2005-04-14 2008-09-04 トムソン ライセンシング 空間スケーラブルビデオ符号化及び復号化向けスライス適応型動きベクトル符号化のための方法及び装置
EP1775954A1 (en) 2005-10-14 2007-04-18 Thomson Licensing Method and apparatus for reconstructing a video frame for spatial multi-layer video sequence
EP1806930A1 (en) * 2006-01-10 2007-07-11 Thomson Licensing Method and apparatus for constructing reference picture lists for scalable video
FR2898754B1 (fr) * 2006-03-17 2008-06-13 Thales Sa Procede de protection de donnees multimedia au moyen de couches d'abstraction reseau (nal) supplementaires
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US20100091845A1 (en) * 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
KR20100074314A (ko) 2006-03-30 2010-07-01 엘지전자 주식회사 비디오 신호를 디코딩/인코딩 하기 위한 방법 및 장치
JP2007300455A (ja) * 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
US7626521B2 (en) * 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding control of computational core of programmable graphics processing unit
WO2007148907A1 (en) 2006-06-19 2007-12-27 Lg Electronics, Inc. Method and apparatus for processing a vedeo signal
US8532178B2 (en) * 2006-08-25 2013-09-10 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal with inter-view reference picture list construction
EP2105025B1 (en) 2007-01-11 2021-04-07 InterDigital VC Holdings, Inc. Methods and apparatus for using syntax for the coded_block_flag syntax element and the coded_block_pattern syntax element for the cavlc 4:4:4 intra, high 4:4:4 intra, and high 4:4:4 predictive profiles in mpeg-4 avc high level coding
CN100527842C (zh) * 2007-01-26 2009-08-12 清华大学 基于背景的运动估计编码方法
US7443318B2 (en) * 2007-03-30 2008-10-28 Hong Kong Applied Science And Technology Research Institute Co. Ltd. High speed context memory implementation for H.264
JP5427785B2 (ja) * 2007-09-28 2014-02-26 ドルビー ラボラトリーズ ライセンシング コーポレイション ビデオ圧縮技法及びビデオ伝達技法
AU2008313328A1 (en) * 2007-10-15 2009-04-23 Nokia Corporation Motion skip and single-loop encoding for multi-view video content
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 ソニー株式会社 算術復号装置
EP2347595A1 (fr) * 2008-10-15 2011-07-27 France Telecom Procede et dispositif de codage d'une sequence d'image mettant en oeuvre des blocs de taille differente, signal, support de donnees, procede et dispositif de decodage, et programmes d'ordinateur correspondants
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
JP4962476B2 (ja) 2008-11-28 2012-06-27 ソニー株式会社 算術復号装置
US8693539B2 (en) * 2009-03-26 2014-04-08 Panasonic Corporation Coding method, error detecting method, decoding method, coding apparatus, error detecting apparatus, and decoding apparatus
KR20110139304A (ko) * 2009-04-22 2011-12-28 엘지전자 주식회사 다시점 영상의 참조 픽쳐 리스트 변경 방법
WO2010134079A1 (en) 2009-05-20 2010-11-25 Nissimyan, Nissim Video encoding
WO2011064673A1 (en) 2009-11-30 2011-06-03 France Telecom Method of and apparatus for encoding video frames, method of and apparatus for decoding video frames
TW201121331A (en) * 2009-12-10 2011-06-16 Novatek Microelectronics Corp Picture decoder
KR101348613B1 (ko) * 2009-12-23 2014-01-10 한국전자통신연구원 영상의 부호화/복호화 장치 및 그 방법
CN103119849B (zh) * 2010-04-13 2017-06-16 弗劳恩霍夫应用研究促进协会 概率区间分割编码器和译码器
US20110310966A1 (en) * 2010-06-18 2011-12-22 Texas Instruments Incorporated Syntax element decoding
US9313514B2 (en) * 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US9008176B2 (en) * 2011-01-22 2015-04-14 Qualcomm Incorporated Combined reference picture list construction for video coding
US9215473B2 (en) * 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
WO2012134246A2 (ko) * 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
US9060173B2 (en) * 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9338465B2 (en) * 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
ES2754784T3 (es) * 2011-07-29 2020-04-20 Sun Patent Trust Procedimiento de decodificación de vídeo, aparato de decodificación de vídeo
EP2568711A1 (en) * 2011-09-12 2013-03-13 Thomson Licensing Methods and devices for selective format-preserving data encryption
US9237358B2 (en) * 2011-11-08 2016-01-12 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US9654772B2 (en) * 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
ES2822231T3 (es) 2012-03-23 2021-04-29 Methven Ltd Cabezal de ducha

Also Published As

Publication number Publication date
US20160212431A1 (en) 2016-07-21
US20200162740A1 (en) 2020-05-21
IN2014CN03605A (es) 2015-10-16
US20210144383A1 (en) 2021-05-13
CN103931183A (zh) 2014-07-16
US20130003830A1 (en) 2013-01-03
US20170026649A1 (en) 2017-01-26
EP4380157A2 (en) 2024-06-05
EP3518539B1 (en) 2021-10-06
BR112014011334B1 (pt) 2022-04-26
EP2777280A1 (en) 2014-09-17
US20190208207A1 (en) 2019-07-04
US10205948B2 (en) 2019-02-12
BR112014011334A2 (pt) 2017-05-02
US9491471B2 (en) 2016-11-08
US10531091B2 (en) 2020-01-07
JP2014535178A (ja) 2014-12-25
CN103931183B (zh) 2017-09-08
EP3952311B1 (en) 2024-06-05
WO2013069306A1 (en) 2013-05-16
US11412226B2 (en) 2022-08-09
EP3952311A1 (en) 2022-02-09
US9338465B2 (en) 2016-05-10
EP2777280A4 (en) 2015-12-16
JP6162113B2 (ja) 2017-07-12
EP3518539A1 (en) 2019-07-31
EP2777280B1 (en) 2019-03-20
US10931951B2 (en) 2021-02-23

Similar Documents

Publication Publication Date Title
ES2728443T3 (es) Inicialización de contexto basándose en memoria intermedia de imagen de decodificador
ES2687945T3 (es) Inicialización de contexto basada en memoria intermedia de imágenes de decodificador
US10999579B2 (en) Methods and systems for decoding a video bitstream
JP6263249B2 (ja) 動画像復号装置、動画像復号方法、動画像符号化装置および動画像符号化方法
ES2899780T3 (es) Dispositivo y procedimiento de codificación de imagen en movimiento, dispositivo y procedimiento de decodificación de imagen en movimiento, flujo de bits
US20100027680A1 (en) Methods and Systems for Parallel Video Encoding and Decoding
US20120201294A1 (en) Methods for parallel video encoding and decoding