ES2939239T3 - Codificación de matrices de muestras para bajo retardo - Google Patents

Codificación de matrices de muestras para bajo retardo Download PDF

Info

Publication number
ES2939239T3
ES2939239T3 ES18190116T ES18190116T ES2939239T3 ES 2939239 T3 ES2939239 T3 ES 2939239T3 ES 18190116 T ES18190116 T ES 18190116T ES 18190116 T ES18190116 T ES 18190116T ES 2939239 T3 ES2939239 T3 ES 2939239T3
Authority
ES
Spain
Prior art keywords
entropy
segment
encoding
segments
probability estimates
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
ES18190116T
Other languages
English (en)
Inventor
Valeri George
Anastasia Henkel
Heiner Kirchhoffer
Detlev Marpe
Thomas Schierl
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.)
GE Video Compression LLC
Original Assignee
GE Video Compression LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46548436&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2939239(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by GE Video Compression LLC filed Critical GE Video Compression LLC
Application granted granted Critical
Publication of ES2939239T3 publication Critical patent/ES2939239T3/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/43Hardware specially adapted for motion estimation or compensation
    • 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/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/97Matching pursuit coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/98Adaptive-dynamic-range coding [ADRC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/99Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals involving fractal coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3071Prediction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Networks Using Active Elements (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Dc Digital Transmission (AREA)

Abstract

La codificación de entropía de una parte actual de una porción de entropía predeterminada se basa, no solo, en las estimaciones de probabilidad respectivas de la porción de entropía predeterminada adaptada usando la parte previamente codificada de la porción de entropía predeterminada, sino también estimaciones de probabilidad como se usa en la porción de entropía predeterminada. codificación de un segmento de entropía espacialmente vecino, en orden anterior, en una parte vecina del mismo. Por lo tanto, las estimaciones de probabilidad utilizadas en la codificación de entropía se adaptan más estrechamente a las estadísticas de símbolos reales, lo que reduce la disminución de la eficiencia de codificación normalmente causada por conceptos de menor retardo. Las interrelaciones temporales se explotan adicional o alternativamente. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Codificación de matrices de muestras para bajo retardo
La presente solicitud se refiere a la codificación de matrices de muestras, tal como a la codificación de imagen o de vídeo.
La paralelización del codificador y del decodificador es muy importante debido a los mayores requisitos de procesamiento del estándar HEVC, además de por el esperado aumento de la resolución de vídeo. Las arquitecturas de múltiples núcleos se están aplicando en una amplia variedad de dispositivos electrónicos modernos. Por tanto, se requieren métodos eficientes para posibilitar el uso de arquitecturas de múltiples núcleos.
La codificación o decodificación de LCU se realiza en escaneo de tramas, mediante el cual la probabilidad de CABAC se adapta a las particularidades de cada imagen. Hay dependencias espaciales entre LCU adyacentes. Cada LCU (largest coding unit, unidad de codificación más grande) depende de sus LCU adyacentes izquierda, superior, superior izquierda y superior derecha, a causa de diferentes componentes, por ejemplo, vector de movimiento, predicción, intrapredicción y otros. Debido a la habilitación de la paralelización en la decodificación, estas dependencias normalmente tienen que ser interrumpidas o son interrumpidas en las aplicaciones de la técnica actual.
Se han propuesto algunos conceptos de paralelización, específicamente de procesamiento de frente de onda. La motivación para un estudio más profundo es desarrollar técnicas que reduzcan la pérdida de eficiencia de codificación y que, por tanto, reduzcan la carga en el flujo de bits para enfoques de paralelización en el codificador y en el decodificador. Además, no era posible un procesamiento de bajo retardo con las técnicas disponibles.
El documento “Wavefront Parallel Processing” (96. MPEG Meeting; 21-3-2011 - 25-3-2011; Ginebra; (Motion Picture Expert Group o ISO/IEC JTC1/SC29/WG11), n.° m19741, 19 marzo 2011 (19-03-2011), XP030048281) por Félix Henry et al. da a conocer un método para realizar codificación y decodificación paralelas de vídeo usando HEVC.
Por tanto, el objeto de la presente invención es proporcionar un concepto de codificación para matrices de muestras que permita un menor retardo con menores penalizaciones, en comparación, en la eficiencia de codificación.
Este objeto se consigue mediante el contenido de las reivindicaciones independientes adjuntas.
Una realización se relaciona con un decodificador para reconstruir una matriz de muestras a partir de un flujo de datos codificado por entropía, configurado para decodificar por entropía una pluralidad de segmentos de entropía en el flujo de datos codificado por entropía a fin de reconstruir así diferentes porciones de la matriz de muestras asociada a los segmentos de entropía, respectivamente, en donde cada segmento de entropía tiene datos codificados por entropía en su interior para una porción correspondiente de la matriz de muestras, formando cada una de las diferentes porciones una fila respectiva de bloques de la matriz de muestras estando los bloques dispuestos de manera regular en filas y columnas para que las porciones correspondientes a los segmentos de entropía consten del mismo número de bloques. Los segmentos de entropía se subdividen en fragmentos y la decodificación por entropía de la pluralidad de segmentos de entropía comprende realizar, para cada segmento de entropía, la decodificación por entropía a lo largo de una respectiva ruta de codificación por entropía usando respectivas estimaciones de probabilidad, en donde la ruta de codificación por entropía apunta en paralelo a lo largo de las filas de los bloques, adaptando las respectivas estimaciones de probabilidad a lo largo de la respectiva ruta de codificación por entropía usando una parte previamente decodificada del respectivo segmento de entropía, empezando a decodificar por entropía la pluralidad de segmentos de entropía usando secuencialmente un orden de segmento de entropía, y realizando, en la decodificación por entropía de un segmento de entropía predeterminado, la decodificación por entropía de una parte actual del segmento de entropía predeterminado en base a las respectivas estimaciones de probabilidad del segmento de entropía predeterminado según se adapta usando la parte previamente decodificada del segmento de entropía predeterminado. La decodificación por entropía de la parte actual del segmento de entropía predeterminado se realiza en base a las respectivas estimaciones de probabilidad del segmento de entropía predeterminado según se adapta usando la parte previamente decodificada del segmento de entropía predeterminado almacenando las estimaciones de probabilidad que se manifiestan tras codificar por entropía el segundo bloque de la porción correspondiente al segmento de entropía predeterminado para la inicialización de estimación de probabilidad antes de decodificar un primer bloque de la porción correspondiente a un segmento de entropía sucesivo en el orden de segmentos de entropía a lo largo de la respectiva ruta de codificación y comprobando si un fragmento actual corresponde a una primera subporción de la porción correspondiente al segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía. Si es así, realizar una inicialización de las estimaciones de probabilidad antes de decodificar el primer bloque de la porción correspondiente al segmento de entropía predeterminado a lo largo de la respectiva ruta de codificación por entropía con estimaciones de probabilidad que se manifiestan tras decodificar por entropía el segundo bloque de la porción correspondiente al segmento de entropía precedente en el orden de segmentos de entropía a lo largo de la respectiva ruta de codificación por entropía, decodificar por entropía el fragmento actual adaptando las respectivas estimaciones de probabilidad y teniendo en cuenta un estado de las respectivas estimaciones de probabilidad que se manifiestan al final de la decodificación por entropía del fragmento actual se deja sin cambios cuando se decodifica por entropía otro fragmento que corresponde a una segunda subporción de la porción del segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía y, en caso contrario, reanudar la decodificación por entropía del segmento de entropía predeterminado en el segmento actual dejando sin cambios un estado de las estimaciones de probabilidad respectivas que se manifiestan al final de la decodificación por entropía de un fragmento que corresponde a una subporción de la porción del fragmento de entropía predeterminado que precede a la subporción correspondiente al fragmento actual, a lo largo de la ruta de codificación por entropía.
Si la codificación por entropía de una parte actual de un segmento de entropía predeterminado se basa en, no solo, las respectivas estimaciones de probabilidad del segmento de entropía predeterminado adaptadas usando la parte previamente codificada del segmento de entropía predeterminado, sino también en estimaciones de probabilidad usadas en la codificación por entropía de un segmento de entropía espacialmente adyacente, precedente en el orden de segmentos de entropía, en una parte adyacente del mismo, las estimaciones de probabilidad usadas en la codificación por entropía se adaptan más estrechamente a las estadísticas simbólicas reales, reduciéndose así la disminución de la eficiencia de codificación causada normalmente por conceptos de bajo retardo. Las interrelaciones temporales se pueden aprovechar de forma adicional o alternativa.
Por ejemplo, la dependencia de las estimaciones de probabilidad usadas en la codificación por entropía de un segmento de entropía espacialmente adyacente, precedente en el orden de segmentos de entropía, puede implicar la inicialización de las estimaciones de probabilidad al comienzo de la codificación por entropía del segmento de entropía predeterminado. Usualmente, las estimaciones de probabilidad se inicializan a valores adaptados a estadísticas simbólicas de una mezcla representativa de material de matrices de muestras. Con el fin de evitar la transmisión de los valores de inicialización de las estimaciones de probabilidad, estos son conocidos por el codificador y el decodificador por convención. Sin embargo, tales valores de inicialización predefinidos son, naturalmente, simplemente un compromiso entre tasa de bits de información adicional, por una parte, y la eficiencia de codificación, por la otra, dado que tales valores de inicialización naturalmente se desvían - más o menos - de las estadísticas de muestra reales del material de matrices de muestras actualmente codificado. La adaptación de la probabilidad durante el transcurso de la codificación de un segmento de entropía adapta las estimaciones de probabilidad a las estadísticas simbólicas reales. Este proceso se acelera por la inicialización de las estimaciones de probabilidad al comienzo de la codificación por entropía del segmento de entropía actual/predeterminado usando estimaciones de probabilidad ya adaptadas del segmento de entropía espacialmente adyacentes, precedente en el orden de segmentos de entropía, que acaba de mencionarse, ya que estos últimos valores ya han sido, hasta cierto punto, adaptados a las estadísticas simbólicas reales de la matriz de muestras actualmente en cuestión. Puede resultar posible una codificación de bajo retardo, sin embargo, usando, al inicializar las estimaciones de probabilidad para los segmentos de entropía predeterminados/actuales, la estimación de probabilidades usada en la parte adyacente de los mismos, en lugar de manifestarse al final de la codificación por entropía del segmento de entropía precedente. Con esta medida sigue siendo posible el procesamiento de frente de onda.
Además, la dependencia anteriormente mencionada de las estimaciones de probabilidad usadas en la codificación por entropía del segmento de entropía espacialmente adyacente, precedente en el orden de segmentos de entropía, puede implicar el proceso de adaptación de adaptar las estimaciones de probabilidad usadas al codificar por entropía el propio segmento de entropía actual/predeterminado. La adaptación de estimación de probabilidad implica el uso de la parte recién codificada, es decir, el (los) símbolo(s) recién codificado(s), con el fin de adaptar el estado actual de las estimaciones de probabilidad a las estadísticas simbólicas reales. Con esta medida, las estimaciones de probabilidad inicializadas se adaptan con cierta tasa de adaptación a la estadística simbólica real. Esta tasa de adaptación se incrementa al realizar la recién mencionada estimación de probabilidad de adaptación, no solo basada en el símbolo actualmente codificado del segmento de entropía actual/predeterminado, sino que también depende de las estimaciones de probabilidad que se manifiestan en una parte adyacente del segmento de entropía espacialmente adyacente, precedente en el orden de segmentos de entropía. De nuevo, al seleccionar la adyacencia espacial de la parte actual del segmento de entropía actual y la parte adyacente del segmento de entropía precedente, aún es posible de manera apropiada un procesamiento de frente de onda. El beneficio de acoplar la propia adaptación de estimación de probabilidad a lo largo del segmento de entropía actual, con la adaptación de probabilidad del segmento de entropía precedente es la tasa incrementada a la que tiene lugar la adaptación a las estadísticas simbólicas reales ya que el número de símbolos atravesados en los segmentos de entropía actual y anterior contribuye a la adaptación, en vez de simplemente los símbolos del segmento de entropía actual.
Implementaciones ventajosas de realizaciones de la presente invención son objeto de las reivindicaciones dependientes. Además, se describen realizaciones preferidas con respecto a las figuras, entre las cuales la figura 1 muestra un diagrama de bloques de un codificador de ejemplo;
la figura 2 muestra un diagrama esquemático de segmentación de una imagen en segmentos y partes segmentadas (por ejemplo, bloques o unidades de codificación) junto con los órdenes de codificación definidos entre los mismos;
la figura 3 muestra un diagrama de flujo de la funcionalidad de un codificador de ejemplo como el de la figura 1;
la figura 4 muestra un diagrama esquemático para explicar la funcionalidad de un codificador de ejemplo como el de la figura 1;
la figura 5 muestra un diagrama esquemático para una implementación operativa en paralelo de un codificador y un decodificador;
la figura 6 muestra un diagrama de bloques de un decodificador de ejemplo;
la figura 7 muestra un diagrama de flujo de la funcionalidad de un decodificador de ejemplo como el de la figura 6;
la figura 8 muestra un diagrama esquemático para un flujo de bits de ejemplo resultante del esquema de codificación de las figuras 1 a la 6;
la figura 9 muestra esquemáticamente un ejemplo de cómo calcular la probabilidad con ayuda de otras LCU;
la figura 10 muestra una gráfica que ilustra los resultados RD para Intra (4 hilos) en comparación con HM3.0; la figura 11 muestra una gráfica que muestra los resultados RD para Bajo retardo (1 hilo), en comparación con HM3.0;
la figura 12 muestra una gráfica que ilustra los resultados RD para Acceso aleatorio (1 hilo), en comparación con HM3.0;
la figura 13 muestra una gráfica que muestra los resultados RD para Bajo retardo (4 hilos), en comparación con HM3.0;
la figura 14 ilustra esquemáticamente y a modo de ejemplo las posibles combinaciones de segmentos de entropía
la figura 15 ilustra esquemáticamente y a modo de ejemplo una posible señalización de un segmento de entropía
la figura 16 ilustra esquemáticamente y a modo de ejemplo la codificación, la segmentación, el entrelazado y la decodificación de datos de segmentos de entropía a través de fragmentos;
la figura 17 ilustra esquemáticamente y a modo de ejemplo una posible combinación entre cuadros;
la figura 18 ilustra esquemáticamente y a modo de ejemplo un posible uso de información yuxtapuesta; la figura 19 muestra esquemáticamente la posibilidad de un frente de onda que discurre oblicuamente en el espacio espacio/temporal abarcado por matrices de muestras consecutivas; y la figura 20 muestra esquemáticamente otro ejemplo para subdividir segmentos de entropía en fragmentos. Con el fin de facilitar la comprensión de las medidas expuestas a continuación para mejorar la consecución de un bajo retardo con menor penalización en cuanto a la eficiencia de codificación, el codificador de la figura 1 se describe en primer lugar en términos más generales sin analizar, preliminarmente, los conceptos beneficiosos de realizaciones de la presente solicitud y cómo los mismos pueden integrarse en la realización de la figura 1. Cabe mencionar, sin embargo, que la estructura mostrada en la figura 1 sirve simplemente como un entorno ilustrativo en el que las realizaciones de la presente solicitud pueden ser utilizadas. También se describen brevemente generalizaciones y alternativas para los codificadores y decodificadores según las realizaciones de la presente invención.
La figura 1 muestra un codificador para codificar una matriz de muestras 10 dando lugar a un flujo de datos codificados por entropía 20. Como se muestra en la figura 1, la matriz de muestras 10 puede ser una de una secuencia 30 de matrices de muestras y el codificador puede estar configurado para codificar la secuencia 30 dando lugar al flujo de datos 20.
El codificador de la figura 1 está generalmente indicado mediante el signo de referencia 40 y comprende un precodificador 42 seguido por una fase de codificación por entropía 44, cuya salida emite un flujo de datos 20. El predecodificador 42 está configurado para recibir y actuar sobre una matriz de muestras 10 con el fin de describir el contenido de la misma por medio de los elementos sintácticos de una sintaxis predeterminada, siendo cada elemento sintáctico un tipo respectivo de un conjunto predeterminado de tipos de elementos sintácticos los cuales, a su vez, están asociados con una respectiva semántica.
Al describir la matriz de muestras 10 usando los elementos sintácticos, el precodificador 42 puede subdividir la matriz de muestras 10 en unidades de codificación 50. El término “unidad de codificación” puede, por razones expuestas en más detalle más adelante, llamarse alternativamente “unidades de codificación en árbol” (CTU, por sus siglas en inglés). Una posibilidad de cómo el precodificador 42 puede subdividir la matriz de muestras 10 en unidades de codificación 50 se muestra a modo de ejemplo en la figura 2. De acuerdo con este ejemplo, la subdivisión subdivide regularmente la matriz de muestras 10 en unidades de codificación 50 de manera que estas últimas estén dispuestas en filas y columnas para cubrir así, sin dejar huecos, la matriz de muestras 10 completa sin superposición. En otras palabras, el precodificador 42 puede estar configurado para describir cada unidad de codificación 50 por medio de elementos sintácticos. Algunos de estos elementos sintácticos pueden formar información de subdivisión para subdividir aún más la unidad de codificación 50 respectiva. Por ejemplo, por medio de subdivisión en múltiples árboles, la información de subdivisión puede describir una subdivisión de la respectiva unidad de codificación 50 en bloques de predicción 52, asociando el precodificador 42 un modo de predicción con parámetros de predicción asociados para cada uno de estos bloques de predicción 52. Esta subdivisión de predicción puede permitir que los bloques de predicción 52 sean de tamaño diferente tal como se ilustra en la figura 2. El precodificador 42 también puede asociar información de subdivisión residual con los bloques de predicción 52 con el fin de subdividir aún más los bloques de predicción 52 en bloques residuales 54, para describir así el residuo de predicción por bloque de predicción 52. Por consiguiente, el precodificador puede estar configurado para generar una descripción sintáctica de la matriz de muestras 10 de acuerdo con un esquema de codificación híbrido. Sin embargo, como ya se indicó anteriormente, la manera recién mencionada en la que el precodificador 42 describe la matriz de muestras 10 por medio de elementos sintácticos ha sido presentada meramente con fines ilustrativos y también puede implementarse de manera diferente.
El precodificador 42 puede aprovechar las interrelaciones espaciales entre el contenido de unidades de codificación 50 adyacentes de la matriz de muestras 10. Por ejemplo, el precodificador 42 puede predecir elementos sintácticos para una determinada unidad de codificación 50 a partir de elementos sintácticos determinados para unidades de codificación 50 previamente codificadas, que son espacialmente adyacentes a la unidad de codificación 50 actualmente codificada. En las figs. 1 y 2, por ejemplo, los vecinos de arriba y de la izquierda sirven para predicción como se ilustra mediante las flechas 60 y 62. Además, el precodificador 42 puede, en un modo de intrapredicción, extrapolar contenido ya codificado de unidades de codificación 50 adyacentes a la unidad de codificación 50 actual para obtener así una predicción de muestras de la unidad de codificación 50 actual. Como se muestra en la figura 1, el precodificador 42 puede, además de aprovechar las interrelaciones espaciales, predecir temporalmente muestras y/o elementos sintácticos para una unidad de codificación 50 actual a partir de matrices de muestras previamente codificadas tal como se muestra ilustrativamente en la figura 1 mediante la flecha 64. Es decir, el precodificador 42 puede usar predicción compensada a través de movimiento y los propios vectores de movimiento pueden someterse a predicción temporal a partir de vectores de movimiento de matrices de muestras previamente codificadas.
Es decir, el precodificador 42 puede describir el contenido de la matriz de muestras 10 por unidades de codificación y puede, con este fin, usar predicción espacial. La predicción espacial está limitada para cada unidad de codificación 50 a unidades de codificación espacialmente adyacentes de la misma matriz de muestras 10 de manera que al seguir un orden de codificación 66 entre las unidades de codificación 50 de la matriz de muestras 10, las unidades de codificación adyacentes que sirven como referencia de predicción para la predicción espacial, han sido atravesados generalmente por los órdenes de codificación 66 anteriores a la unidad de codificación 50 actual. Como se ilustra en la figura 2, el orden de codificación 66 definido entre las unidades de codificación 50 puede, por ejemplo, ser un orden de escaneo de trama según el cual las unidades de codificación 50 son atravesadas fila por fila de arriba a abajo. Opcionalmente, una subdivisión de matriz 10 en una matriz de baldosas puede hacer que el orden de escaneo 66 atraviese - en un orden de escaneo de trama - las unidades de codificación 50 que componen primero una baldosa antes de preceder a la siguiente en un orden de baldosas que, a su vez, también puede ser de tipo de escaneo de trama. Por ejemplo, la predicción espacial puede implicar simplemente unidades de codificación 50 adyacentes dentro de una fila de unidades de codificación por encima de la fila de unidades de codificación dentro de la cual se encuentra la unidad de codificación 50 actual y una unidad de codificación dentro de la misma fila de unidades de codificación, pero hacia la izquierda en relación con la unidad de codificación actual. Como se explicará con más detalle más adelante, esta limitación a la interrelación espacial/ predicción espacial hace posible el procesamiento de frente de onda en paralelo.
El precodificador 42 reenvía los elementos sintácticos a la fase de codificación por entropía 44. Como acaba de mencionarse, algunos de estos elementos sintácticos han sido codificados predictivamente, es decir, representan predicciones residuales. El precodificador 42 puede, por consiguiente, ser considerado como un codificador predictivo. Además, el precodificador 42 puede ser un codificador de transformación configurado para transformar residuos de código de la predicción del contenido de las unidades de codificación 50.
Una estructura interna a modo de ejemplo de la fase de codificación por entropía 44 también se muestra en la figura 1. Como se muestra, la fase de codificación por entropía 44 puede comprender, opcionalmente, un simbolizador para la conversión de cada elemento sintáctico recibido desde el precodificador 42, cuyo número de estados posibles sobrepasa la cardinalidad del alfabeto de símbolos dando lugar a una secuencia de símbolos si, del alfabeto de símbolos basándose en el cual funciona el motor de codificación por entropía 44. Además de ese simbolizador opcional 70, el motor de codificación por entropía 44 puede comprender un seleccionador de contexto 72 y un inicializador 74, un gestor de estimaciones de probabilidad 76, un adaptador de estimaciones de probabilidad 78 y un núcleo de codificación por entropía 80. La salida del núcleo de codificación por entropía constituye la salida de la fase de codificación por entropía 44. Además, el núcleo de codificación por entropía 80 comprende dos entradas, específicamente una para recibir los símbolos si de la secuencia de símbolos y otra para recibir una probabilidad de estimación de probabilidad pi para cada uno de los símbolos.
Debido a las propiedades de la codificación por entropía, la eficiencia de codificación en términos de tasa de compresión aumenta con una mejora de la estimación de probabilidad: cuanto mejor sea la concordancia de la estimación de probabilidad con las estadísticas simbólicas reales, mejor será la tasa de compresión.
En el ejemplo de la figura 1, el seleccionador de contexto 72 está configurado para seleccionar, para cada símbolo si, un contexto correspondiente ci de entre un conjunto de contextos disponibles gestionados por el gestor 76. Sin embargo, cabe señalar que la selección de contexto simplemente constituye una característica opcional y puede descartarse, por ejemplo, usando el mismo contexto para cada símbolo. No obstante, si se usa la selección de contexto, el seleccionador de contexto 72 puede estar configurado para realizar la sección de contexto basándose al menos parcialmente en información relacionada con unidades de codificación fuera de la unidad de codificación actual, específicamente relacionada con unidades de codificación adyacentes dentro del vecindario limitado comentado anteriormente.
El gestor 76 comprende un almacenamiento que almacena, para cada contexto disponible, una estimación de probabilidad asociada. Por ejemplo, el alfabeto de símbolos puede ser un alfabeto binario de modo que simplemente un valor de probabilidad pueda tener que ser almacenado por cada contexto disponible.
El inicializador 74 puede, intermitentemente, inicializar o reinicializar las estimaciones de probabilidad almacenadas dentro del gestor 76 para los contextos disponibles. Más adelante se comentarán los posibles momentos en los cuales puede realizarse tal inicialización.
El adaptador 78 tiene acceso a los pares de símbolos si y a las correspondientes estimaciones de probabilidad pi y adapta las estimaciones de probabilidad dentro del gestor 76 en consecuencia. Es decir, cada vez que una estimación de probabilidad se aplica por el núcleo de codificación por entropía 80 con el fin de codificar por entropía el respectivo símbolo si, dando lugar al flujo de datos 20, el adaptador 78 puede variar esta estimación de probabilidad de acuerdo con el valor de este símbolo actual si, de modo que esta estimación de probabilidad pi esté mejor adaptada a las estadísticas simbólicas reales cuando se codifique el siguiente símbolo que esté asociado a esa estimación de probabilidad (por medio de su contexto). Es decir, el adaptador 78 recibe la estimación de probabilidad para el contexto seleccionado del gestor 76 junto con el símbolo correspondiente si y adapta la estimación de probabilidad pi en consecuencia para que se use la estimación de probabilidad adaptativa para el siguiente símbolo si del mismo contexto ci.
El núcleo de codificación por entropía 80 está, por ejemplo, configurado para operar de acuerdo con un esquema de codificación aritmético o en un esquema de codificación por entropía que segmenta en intervalos de probabilidad. En la codificación aritmética, el núcleo de codificación por entropía 80 actualizaría, por ejemplo, continuamente su estado al codificar la secuencia de símbolos, estando definido el estado por un intervalo de probabilidad definido por un valor de anchura de intervalo de probabilidad y un valor de compensación de intervalo de probabilidad, por ejemplo. Al operar en el concepto en tubería, el núcleo de codificación por entropía 80 subdividiría, por ejemplo, el dominio de posibles valores de las estimaciones de probabilidad en intervalos diferentes con la realización de codificación por entropía de probabilidad fija con respecto a cada uno de estos intervalos, obteniendo, de este modo, un subflujo para cada uno de los subintervalos cuya eficiencia de codificación está respectivamente adaptada a medida al intervalo de probabilidad asociado. En el caso de la codificación por entropía, la salida del flujo de datos 20 sería un flujo de datos codificado aritméticamente que señala a la información adicional de decodificación permitiendo la emulación o la repetición del proceso de subdivisión en intervalos.
Desde luego, sería posible que la fase de codificación por entropía 44 codificara por entropía toda la información, es decir, todos los elementos/símbolos sintácticos si, relativos a la matriz de muestras 10 inicializando las estimaciones de probabilidad simplemente una vez al comienzo de la misma y luego actualizando continuamente las estimaciones de probabilidad por el adaptador 78. Sin embargo, esto podría resultar en un flujo de datos 20 que tendría que ser decodificado secuencialmente en el lado de decodificación. En otras palabras, no habría posibilidad de que un codificador subdividiera el flujo de datos resultante en varias subporciones y decodificara las subporciones en paralelo. Esto, a su vez, obstaculizaría cualquier esfuerzo de bajo retardo.
En consecuencia, como se expondrá en mayor detalle más adelante, es favorable subdividir la cantidad de datos que describen la matriz de muestras 10 en denominados segmentos de entropía. Cada uno de estos segmentos de entropía abarcaría, en consecuencia, un conjunto diferente de elementos sintácticos relativos a la matriz de muestras 10. Si la fase de codificación por entropía 44, sin embargo, codificara por entropía cada segmento de entropía de manera completamente independiente unos de otros al inicializar en primer lugar la estimación de probabilidad una vez y después actualizando continuamente la estimación de probabilidad para cada segmento de entropía individualmente, entonces la eficiencia de codificación se vería disminuida debido al mayor porcentaje de datos relativos a, y que describen, la matriz de muestras 10 para la que las estimaciones de probabilidad usadas están (todavía) adaptadas con menor precisión a las estadísticas simbólicas reales.
Con el fin de superar los problemas recién mencionados al acomodar el deseo de la codificación de bajo retardo, por una parte, y la codificación de alta eficiencia, por la otra, se puede emplear el siguiente esquema de codificación, el cual se describe ahora con respecto a la figura 3.
En primer lugar, los datos que describen la matriz de muestras 10 se subdividen en porciones llamadas "segmentos de entropía" a continuación. La subdivisión 80 no tiene que estar libre de solapado. Por otra parte, esta subdivisión podría corresponder, al menos en parte, a una subdivisión espacial de la matriz de muestras 10 en diferentes porciones. Es decir, según la subdivisión 80, los elementos sintácticos que describen la matriz de muestras 10 pueden distribuirse en diferentes segmentos de entropía dependiendo de la ubicación de la unidad de codificación 50 a la que se refiere el correspondiente elemento sintáctico. Véase, por ejemplo, la figura 2. La figura 2 muestra una subdivisión de ejemplo de una matriz de muestras 10 en diferentes porciones 12. Cada porción corresponde a un respectivo segmento de entropía. Como se muestra a modo de ejemplo, cada porción 12 corresponde a una fila de unidades de codificación 50. No obstante, también son factibles otras subdivisiones. Sin embargo, resulta ventajoso que la subdivisión de la matriz de muestras 10 en porciones 12 siga el orden de codificación 66 mencionado anteriormente de tal forma que las porciones 12 abarquen series consecutivas de unidades de codificación 12 a lo largo del orden de codificación 66. Sin embargo, aun así, las posiciones de inicio y fin de cada porción 12 a lo largo del orden de codificación 66 no tienen que coincidir con el extremo izquierdo y derecho de las filas de unidades de codificación 50, respectivamente. Incluso una coincidencia con los bordes de las unidades de codificación 50 se suceden de inmediato entre sí y el orden de codificación 66 no tiene que ser obligatorio.
Mediante la subdivisión de la matriz de muestras 10 de esta forma, un orden de segmentos de entropía 16 se define entre porciones 12 a lo largo del cual se suceden las porciones 12 entre sí a lo largo del orden de codificación 66. Por otra parte, para cada segmento de entropía se define una ruta de codificación por entropía 14 respectiva, a saber, el fragmento de la ruta de codificación 66 que discurre hasta la respectiva porción 12. En el ejemplo de la figura 2, en el que las porciones 12 coinciden con las filas de unidades de codificación 50, las rutas de codificación por entropía 14 de cada segmento de entropía apuntan a lo largo de la dirección de fila, en paralelo entre sí, es decir, desde el lado izquierdo hacia el lado derecho.
Cabe mencionar que sería posible limitar las predicciones espaciales realizadas por el precodificador 42 y las deducciones de contexto realizadas por el selector de contexto 72 de tal forma que no se crucen los límites entre segmentos, es decir, de tal manera que las predicciones espaciales y las selecciones de contexto no dependan de datos correspondientes a otro segmento de entropía. De esta forma, los "segmentos de entropía" corresponderían a la definición habitual de "segmentos" en H.264, por ejemplo, que son totalmente decodificables independientemente entre sí, a excepción de la dependencia de inicialización/adaptación de probabilidad que se expone más adelante.
Sin embargo, también sería factible permitir predicciones espaciales y selecciones de contexto, es decir, dependencias en términos generales, para cruzar los límites entre segmentos a fin de aprovechar las interdependencias locales/espaciales mientras el procesamiento en WPP siga siendo factible incluso por lo que respecta a la inversión de la precodificación, es decir, la reconstrucción basada en los elementos sintácticos y la selección de contexto de entropía. En este sentido, los segmentos de entropía corresponderían de alguna forma a "segmentos dependientes".
La subdivisión 80 puede realizarse, por ejemplo, por la etapa de codificación por entropía 44. La subdivisión puede ser fija o puede variar entre la matriz de secuencia 30. La subdivisión puede ser fija por convención o puede señalizarse en el flujo de datos 20.
Basándose en los segmentos de entropía, puede tener lugar la verdadera codificación por entropía, es decir, 82. Para cada segmento de entropía, la codificación por entropía se puede estructurar en una etapa de inicio 84 y una etapa de continuación 86. La etapa de inicio 84 implica, por ejemplo, la inicialización de las estimaciones de probabilidad así como la activación del verdadero proceso de codificación por entropía para el respectivo segmento de entropía. La verdadera codificación por entropía se realiza entonces durante la etapa de continuación 86. La codificación por entropía durante la etapa 86 se realiza a lo largo de la respectiva ruta de codificación por entropía 14. La etapa de inicio 84 para cada segmento de entropía es controlada de tal forma que la codificación por entropía de la pluralidad de segmentos de entropía comienza secuencialmente usando el orden segmentos de entropía 16.
Ahora, con el fin de evitar la penalización anteriormente expuesta, que resultaría al codificar por entropía cada segmento de manera completamente independiente, el proceso de codificación por entropía 82 es controlado de tal forma que una parte actual, por ejemplo, una unidad de codificación actual de un segmento de entropía actual se codifique por entropía basándose en las respectivas estimaciones de probabilidad del segmento de entropía actual adaptadas usando la parte previamente codificada del segmento de entropía actual, es decir, la parte del segmento de entropía actual a la izquierda de la unidad de codificación 50 actual en el caso de la figura 2, y las estimaciones de probabilidad usadas en la codificación por entropía del segmento de entropía espacialmente adyacente, precedente en el orden de segmentos de entropía 16, en una parte adyacente, es decir una unidad de codificación adyacente, del mismo.
Para describir con mayor claridad la dependencia mencionada anteriormente, se hace referencia a la figura 4. La figura 4 muestra los segmentos de entropía n-1, n y n+1 en el orden de segmentos de entropía 16 con el signo de referencia 90. Cada segmento de entropía 90 abarca la secuencia de elementos sintácticos que describen la porción 12 de la matriz de muestras 10 a la cual está asociado el respectivo segmento de entropía 90. A lo largo de la ruta de codificación por entropía 14, el segmento de entropía 19 es segmentado en una secuencia de segmentos 92, cada uno de los cuales corresponde a una respectiva unidad de codificación de las unidades de codificación 50 de la porción 12 con la cual se relaciona el segmento de entropía 90.
Como se describió anteriormente, las estimaciones de probabilidad usadas para codificar por entropía los segmentos de entropía 90 se actualizan continuamente durante la etapa de continuación 86 a lo largo de la ruta de codificación por entropía 14, de tal forma que las estimaciones de probabilidad se adaptan cada vez mejor a las estadísticas simbólicas reales del respectivo segmento de entropía 90 - es decir, las estimaciones de probabilidad se asocian con el respectivo segmento de entropía. Si bien las estimaciones de probabilidad 94 usadas para codificar por entropía el segmento de entropía 90 durante la etapa de continuación 86 se actualizan continuamente, en la figura 4 sólo se ilustran y se mencionan a continuación estados de las estimaciones de probabilidad 94 que ocurren en las posiciones de inicio y final de los segmentos 92. En concreto, el estado previo a la codificación por entropía del primer segmento 92 según se inicializó durante la etapa inicial 84 se muestra en 96, el estado que se manifiesta tras codificar el primer segmento se ilustra en 98 y el estado que se manifiesta tras codificar los primeros dos segmentos se indica en 100. Los mismos elementos se muestran en la figura 4 también para el segmento de entropía n-1 en el orden de segmentos 16 y el siguiente segmento de entropía, es decir, el segmento n+1.
Ahora, para alcanzar la dependencia anteriormente expuesta, el estado inicial 96 para la codificación por entropía del segmento de entropía n 90 se establece dependiendo de cualquier estado intermedio de las estimaciones de probabilidad 94 que se manifiestan durante la codificación del segmento de entropía precedente n-1. "Estado intermedio" se refiere a cualquier estado de las estimaciones de probabilidad 94, excluido el estado inicial 96 y el estado final que se manifiesta tras la codificación por entropía del segmento de entropía completo n-1. De esta manera, la codificación por entropía de la secuencia de segmentos de entropía 90 a lo largo del orden de segmentos de entropía 16 se puede paralelizar con un grado de paralelización determinado por la proporción del número de segmentos 92 que preceden al estado usado para la inicialización de las estimaciones de probabilidad 94 para la codificación por entropía del siguiente segmento de entropía, es decir, a, y un número de segmentos 92 que suceden a esta fase, es decir, b. En concreto, en la figura 4, a se establece a modo de ejemplo para que sea igual a, con la inicialización, es decir, la adaptación del estado 100 de tal forma que se establezca el estado 96 del segmento de entropía actual para que sea igual al estado 100 del segmento de entropía precedente, lo que se ilustra mediante la flecha 104.
Mediante esta medida, la codificación por entropía de cualquier segmento 92 posterior al estado 100 en el orden de la ruta de codificación por entropía 14 dependería de la estimación de probabilidad 94 adaptada durante la etapa de continuación 86 basándose en los segmentos precedentes del mismo segmento de entropía, así como la estimación de probabilidad usada en la codificación por entropía del tercer segmento 92 del segmento de entropía 90 precedente.
En consecuencia, la codificación por entropía de los segmentos de entropía 90 se podría realizar en paralelo en una planificación de tubería. Las únicas limitaciones impuestas a la planificación de tiempo serían que la codificación por entropía de algunos segmentos de entropía pueda comenzar justo tras terminar la codificación por entropía del segmento a 92 del segmento de entropía precedente. Los segmentos de entropía 90 que se suceden inmediatamente en el orden de segmentos de entropía 16 no se encuentran sujetos a ninguna otra limitación en cuanto a alineación temporal del procedimiento de codificación por entropía durante la etapa de continuación 86.
No obstante, según otra realización, se usa un acoplamiento más fuerte de manera adicional o alternativa. En concreto, como se muestra en la figura 4 mediante flechas representativas 106, la adaptación de estimación de probabilidad durante la etapa de continuación 86 hace que los datos de la unidad de codificación correspondiente a un determinado segmento 92 cambien las estimaciones de probabilidad 94 del estado al comienzo del respectivo segmento 92 hasta el final de este segmento 92, mejorando así la aproximación de las estadísticas simbólicas reales según se ha mencionado anteriormente. Es decir, la adaptación 106 se realiza para el segmento de entropía n-1 dependiendo sólo de datos del segmento de entropía n-1, y lo mismo se aplica para la adaptación de estimación de probabilidad 106 del segmento de entropía n, etc. Por ejemplo, sería posible realizar la inicialización tal como se explicó anteriormente respecto a las flechas 104 realizando la adaptación de estimación de probabilidad 106 sin más interferencia entre los segmentos de entropía 90. Sin embargo, para acelerar la aproximación de estimación de probabilidad de las estadísticas simbólicas reales, la adaptación de estimación de probabilidad 106 de segmentos de entropía consecutivos podría acoplarse de tal forma que la adaptación de estimación de probabilidad 106 de un segmento de entropía precedente n-1 también influya, o sea tenido en cuenta, al adaptar la adaptación de estimación de probabilidad de un segmento de entropía actual n. Esto se ilustra en la figura 4 mediante una flecha 108 que apunta desde el estado 110 de las estimaciones de probabilidad 94 espacialmente adyacentes para codificar por entropía el segmento de entropía n-1 90 hacia el estado 100 de las estimaciones de probabilidad 94 para codificar por entropía el segmento de entropía n 90. Al utilizar el estado de inicialización 96 anteriormente expuesto, el acoplamiento de estimación de probabilidad 108 se puede usar, por ejemplo, en cualquiera de los estados de estimación de probabilidad b que se manifiestan tras codificar por entropía los segmentos b 92 del segmento de entropía precedente. Para ser más precisos, las estimaciones de probabilidad que se manifiestan tras codificar por entropía el primer segmento 92 del segmento de entropía actual puede ser resultado de la adaptación de probabilidad habitual 106 y teniendo en cuenta 108 los estados de estimación de probabilidad que resulten de la adaptación de estimación de probabilidad 106 durante la codificación por entropía del segmento (a+1) 92 del segmento de entropía precedente n-1. El hecho de "tener en cuenta" puede implicar, por ejemplo, operaciones de promediado. A continuación se expondrá un ejemplo de ello. En otras palabras, el estado 98 de las estimaciones de probabilidad 94 para la codificación por entropía del segmento de entropía n 90 al comienzo de la codificación por entropía del segmento 92 del mismo puede ser resultado del promediado del estado predecesor 96 de las estimaciones de probabilidad 94 para la codificación por entropía del segmento de entropía actual n adaptadas usando la adaptación 106, y el estado anterior a la codificación por entropía del segmento (a+1) 92 del segmento de entropía precedente n-1 modificado según la adaptación de probabilidad 106. Análogamente, el estado 100 puede ser resultado del promediado del resultado de la adaptación 106 realizada durante la codificación por entropía del segmento de entropía actual n y del resultado de la adaptación de probabilidad durante la codificación por entropía del segmento (a+2) 92 del segmento de entropía n-1, etc.
Para ser más específicos, sea
p(n)^{i,j}, donde i,j indican la posición de cualquier unidad de codificación (donde (0,0) es la posición superior izquierda y (I,J) la posición inferior derecha),
ie {1...I} y je {1...j}, donde I es el número de columnas, J es el número de filas y p() define el orden de ruta 66, p{i,j} es la estimación de probabilidad usada en la codificación por entropía de la unidad de codificación {i,j}; y T(P{i,j}) es el resultado de la adaptación de probabilidad 106 de P{i,j} basándose en la unidad de codificación {i,j}; Entonces, las estimaciones de probabilidad 106 de segmentos de entropía 90 consecutivos se pueden combinar para sustituir la adaptación interna de segmentos de entropía habitual según Pp(n+1)=T(Pp(n)), por
Pp(n+1)=promedio(T(Pp(n)), T( P { i ,^ ),...,T( P { i , ^ ))
donde N puede ser 1 o mayor que 1 y {i,j} i ...n es/son elegidos de (se encuentran dentro de) cualquier segmento de entropía 90 (en el orden de segmentos de entropía 16) y su porción 12 asociada, respectivamente. La función "promedio" puede basarse en una suma ponderada, una función mediana, etc. p(n)={i,j} es la unidad de codificación actual y p(n+1) sigue conforme al orden de codificación 14 y 66, respectivamente. En las realizaciones presentadas p(n+1)={i+1,j)
Preferentemente, {i,j}1...n cumplen, para cada ke {1...N}, {i,j}1...N={ik,jk} e ik<i+3 y jk<j donde p(n)={i,j} es la unidad de codificación actual (es decir, cualquiera de las unidades de codificación desde la segunda en adelante del segmento de entropía actual), es decir, no se sitúan más allá del frente de onda.
En esta última alternativa, la planificación temporal de codificación por entropía, al codificar por entropía los segmentos de entropía 90 en paralelo, está más estrechamente acoplada entre sí. Es decir, durante la etapa de continuación 86, el segmento 92 posterior en la línea de un segmento de entropía actual puede comenzar simplemente al terminar el segmento correspondiente del segmento de entropía precedente que se encuentra en una posición adicional en el orden de ruta 14 de codificación por entropía.
En otras palabras, lo anteriormente expuesto muestra un ejemplo en el que el decodificador 40 y, particularmente, la fase de codificación por entropía 44 se configuran para realizar, para un segmento de entropía 90, tal como el segmento n, una inicializalización de sus estimaciones de probabilidad 94 antes de decodificar el primer segmento 92 correspondiente a la primera unidad de codificación/primer bloque 50 de la porción 12 correspondiente al segmento de entropía n a lo largo de la respectiva ruta de codificación 14, manifestándose las estimaciones de probabilidad tras haberse decodificado por entropía la segunda unidad de codificación/bloque 50 de la porción 12 correspondiente al segmento de entropía precedente, en el orden de segmentos de entropía 16, a lo largo de la respectiva ruta de codificación 14. Además, o como alternativa, el decodificador 40 y, particularmente, la etapa de codificación por entropía 44, se puede configurar para realizar, para cada segmento de entropía 90, la decodificación por entropía y la adaptación de estimación de probabilidad de tal modo que, una vez que una unidad de codificación/bloque/parte 50 del segmento de entropía actual ha sido decodificada por entropía según las respectivas estimaciones de probabilidad 94 del segmento de entropía 90 actual, las respectivas estimaciones de probabilidad 94 del segmento de entropía actual se adaptan dependiendo de esta parte actual del segmento de entropía actual y las estimaciones de probabilidad que se manifiestan en la decodificación por entropía de una unidad de codificación/bloque/parte 50 adyacente del segmento de entropía precedente espacialmente adyacente, tal como el que se encuentra en la fila adyacente de encima en la segunda columna a la derecha de la unidad de codificación/bloque/parte actual del segmento de entropía actual.
Tal como quedó claro en la explicación anterior, la estimación de probabilidad debe adaptarse o gestionarse para cada segmento de entropía 50 por separado. Esto se puede realizar mediante el procesamiento secuencial de los segmentos de entropía y el almacenamiento de estados de estimación de probabilidad como aquellos que se muestran y se mencionan a modo de ejemplo con respecto a la figura 4, es decir, 96, 98, 100, 110 y 102 en un respectivo almacenamiento de estimación de probabilidad 120 (véase figura 1). Alternativamente, puede estar prevista más de una fase de codificación por entropía 44 para decodificar los segmentos de entropía en paralelo. Esto se ilustra en la figura 5, en la que se muestran una pluralidad de instancias de la fase de codificación de entropía 44, cada una asociada con un respectivo segmento de entropía y correspondientes porciones 12 de la matriz de muestras 10, respectivamente. La figura 5 también ilustra el proceso de decodificación y sus posibles implementaciones mediante el uso de instancias paralelas de las respectivas fases de decodificación por entropía 130. Cada una estas fases de decodificación por entropía 130 se alimenta con un respectivo segmento de entropía transportado mediante el flujo de datos 20.
La figura 5 muestra que las fases de codificación por entropía 44 y las respectivas fases de decodificación 130 no operan por completo de manera independiente unas de otras en paralelo. Más bien, los estados de estimación de probabilidad almacenados, tales como aquellos datos almacenados en el almacenamiento 120, se pasan de una fase correspondiente a un segmento de entropía respectivo a otra fase relacionada con un siguiente segmento de entropía según el orden de segmentos de entropía 16.
Con fines ilustrativos, la figura 5 muestra también un posible orden de atravesamiento para atravesar posibles subdivisiones de las unidades de codificación 50, tal como un orden de recorrido 140 definido entre los bloques de predicción 52 dentro de una unidad de codificación 50. Para todos estos bloques de predicción 52, los elementos sintácticos correspondientes se encuentran contenidos en el respectivo segmento 92 y, de manera correspondiente a los valores de estos elementos sintácticos, las estimaciones de probabilidad 94 se adaptan durante el atravesamiento de la ruta 140, definiendo la adaptación durante el atravesamiento de la unidad de codificación 50 la "T" mencionada anteriormente. En CABAC según H.264 y HEVC, "T" se realiza basándose en una tabla; es decir, mediante una consulta de la tabla que definen las transiciones de un estado actual de la estimación de probabilidad para un contexto actual al siguiente estado según el valor del símbolo actual asociado a dicho contexto.
Antes de proceder con la figura 6, que muestra una realización de decodificador correspondiente a la realización de codificador de la figura 1, cabe considerar que la naturaleza predictiva del precodificador 42 sirvió sólo como realización ilustrativa. Según realizaciones aún alternativas, se puede descartar el precodificador 42, siendo los elementos sintácticos sobre los cuales opera la fase de codificación por entropía 44, por ejemplo, los valores de muestra originales de la matriz de muestras 10. Aún de forma alternativa, el precodificador 42 se puede configurar para constituya una descomposición en subbandas de la matriz de muestras 10, como en JPEG. La naturaleza optativa del seleccionador de contexto 72 ya ha sido mencionada con anterioridad. Lo mismo se aplica con respecto al inicializador 74. Se puede implementar lo mismo de forma diferente.
La figura 6 muestra un decodificador 200 correspondiente al codificador 40 de la figura 1. Se puede apreciar en la figura 6 que la construcción del decodificador 200 refleja en forma substancial la construcción del codificador 40. Es decir, el decodificador 200 comprende una entrada 202 para recibir el flujo de datos 20 seguido de una concatenación de fase de decodificación por entropía 204 y un constructor 206. La fase de decodificación por entropía 204 decodifica por entropía los segmentos de entropía transportados dentro del flujo de datos 202 y reenvía, a su vez, los símbolos decodificados si y elementos sintácticos, respectivamente, al constructor 206, el cual, a su vez, solicita los elementos sintácticos a la fase de decodificación por entropía 204 mediante una respectiva solicitud 208. En otras palabras, el constructor 206 también asume la responsabilidad de analizar sintácticamente el flujo de elementos sintácticos producido por el precodificador 42 dentro del codificador. En consecuencia, el constructor 206 solicita secuencialmente los elementos sintácticos a la fase de decodificación por entropía 204. La etapa de decodificación por entropía 204 se estructura sustancialmente de la misma forma que la etapa de codificación por entropía 44. Por lo tanto, se vuelven a utilizar los mismos signos de referencia de los bloques internos de la fase de decodificación por entropía 204. El simbolizador 70, en caso de estar presente, convierte la solicitud de elementos sintácticos en solicitudes de símbolos y el núcleo de decodificación por entropía 80 responde con un respectivo valor de símbolo si, el simbolizador 70 correlaciona secuencias de símbolos recibidos que forman palabras de símbolos válidas con elementos sintácticos y los reenvía al constructor 206. El constructor 206 reconstruye la matriz de muestras 10 a partir del flujo de elementos sintácticos recibidos de la fase de decodificación por entropía 204 por ejemplo, según lo señalado anteriormente, usando decodificación predictiva, etc. En términos más precisos, el constructor 206 también usa el orden de codificación 66 y realiza la codificación por unidades de codificación mediante predicciones 60, 62 y 64. Las una o más predicciones para elementos sintácticos o para valores de muestra se combinan, por ejemplo se suman, opcionalmente usando un residuo de predicción obtenido a partir de los elementos sintácticos del flujo de elementos sintácticos Al igual que el núcleo de codificación por entropía 80, el núcleo de decodificación por entropía 80 sigue un concepto de decodificación aritmética o un concepto de decodificación por entropía con segmentación de intervalos. En el caso de la decodificación aritmética, el núcleo de decodificación por entropía 80 puede actualizar continuamente un estado interno en forma de un valor de ancho de intervalo parcial y un valor, tal como un valor de desplazamiento, que apunta hacia este intervalo parcial. La actualización se realiza usando el flujo de datos de entrada. El intervalo parcial actual se subdivide de manera análoga al núcleo de codificación por entropía 80 mediante el uso de la estimación de la probabilidad pi prevista para cada símbolo si mediante selector de contexto 72 junto con el gestor de estimación de probabilidad 76. El adaptador 78 realiza la adaptación de estimación de probabilidad mediante el uso de los valores de símbolos si decodificados con el fin de actualizar los valores de estimación de probabilidad pi del contexto ci asociados al símbolo si mediante el selector de contexto 72. Las inicializaciones realizadas por el inicializador 74 se realizan en los mismos casos y del mismo modo que en el lado de codificación.
El decodificador que se muestra en la figura 6 funciona de manera muy similar a la funcionalidad del codificador según se ha descrito anteriormente con respecto a la figura 3. En un paso 230, la matriz de muestras 10 se subdivide en segmentos de entropía. Véase, por ejemplo, la figura 8. La figura 8 muestra el flujo de datos 20 que llega por la entrada 202 y, particularmente, los segmentos de entropía 90 contenidos en el mismo. En un paso 230, cada uno de estos segmentos de entropía 90 es asociado con una porción 12 a la cual se encuentra asociado el segmento de entropía de tal forma que se pueda realizar la inicialización de estimación de probabilidad y la adaptación de estimación de probabilidad descritas anteriormente basándose en el respectivo segmento de entropía precedente. La subdivisión de la matriz de muestras o, en términos más precisos, la asociación de los segmentos de entropía 90 con sus respectivas porciones 12 se puede realizar mediante el constructor 206. La asociación puede conseguirse mediante diferentes medidas, tales como información adicional contenida en el flujo de datos 20 in porciones no codificadas por entropía, o por convención.
Entonces, los segmentos de entropía 90, en el proceso de decodificación por entropía 232, son decodificados por entropía de forma que copia el proceso de codificación 82, a saber, realizando, para cada segmento de entropía 90, una etapa inicial 234 y una etapa de continuación 236 con la inicialización y adaptación de estimación de probabilidad de la misma forma y en los mismos casos que en el proceso de codificación.
La misma paralelización descrita anteriormente con respecto a la codificación es posible en el lado de decodificación. Las instancias de la fase de decodificación por entropía 130 que se muestran en la figura 5 se pueden implementar como se muestra con respecto a la fase de decodificación por entropía 204 en la figura 6. Se puede usar un almacenamiento de estimación de probabilidad 240 para almacenar los estados de las estimaciones de probabilidad para su uso en una fase de decodificación por entropía 130 responsable de decodificar por entropía un segmento de entropía subsiguiente en el orden de codificación por entropía 16.
Tras haber descrito realizaciones de la presente solicitud, los conceptos comentados hasta el momento se describen una vez más a continuación, pero esta vez usando otra redacción. En adelante, se describen varios aspectos adicionales de la presente solicitud. A continuación, a las unidades de codificación 50 mencionadas anteriormente se las identificará con la sigla LCU (largest coding unit, unidad de codificación más grande); de este modo, se adapta la redacción al próximo estándar HEVC.
En primer lugar, la adaptación de probabilidad 106 comentada anteriormente se explica una vez más en forma abreviada con respecto a la figura 9.
Una LCU actual utiliza las estimaciones de probabilidad tales como las probabilidades CABAC, por ejemplo, disponibles tras codificar la LCU izquierda precedente. Por ejemplo, la LCU de la figura 9, indicada con una x, se supone que se va a codificar por entropía usando la estimación de probabilidad p1 adaptada hasta el final de la codificación por entropía de la LCU de la izquierda, hasta la izquierda de la LCUx. Sin embargo, si no sólo se usa la información de la izquierda, sino también de una o más otras LCU, que ya hayan sido procesadas y estén disponibles, se pueden lograr mejores resultados en la adaptación de probabilidad.
Como se describió anteriormente, en la codificación por entropía y en la decodificación por entropía de segmentos de entropía, se calculan nuevas estimaciones de probabilidad antes de codificar o decodificar cada LCU con la ayuda de probabilidades (estimaciones de probabilidad) ya existentes provenientes de otras LCU. Para ser más precisos, la adaptación de estimación de probabilidad se realiza no sólo a partir de cualquier LCU precedente del segmento de entropía actual, sino también a partir de LCU de segmentos de entropía anteriores a un orden de segmentos de entropía. Este enfoque se representa una vez más en la figura 9. La probabilidad inicial de la LCU actual que se indica con una X en la figura 9 se puede calcular en consecuencia:
pnueva = av p1 + a2 p^2+ a3 p^3+ a 4p4 + a5 p^5 + a(5+1Vp(5+1) ...+ ak p^k , (1)
donde a-i ,... ak son los factores de ponderación de las LCU.
Se han realizado pruebas para determinar qué ponderación de probabilidades proporciona mejores resultados. En este experimento, sólo se han utilizado LCU adyacentes. El estudio revela el uso de la siguiente ponderación: un 75 % de la LCU izquierda y un 25 % de la LCU superior derecha. En las figuras. 10-13, se presentan los resultados. Las gráficas tituladas "Adap. de prob." usan la adaptación de probabilidades descrita más arriba.
Sin embargo, en la adaptación de estimación de probabilidad, no sólo se pueden usar bloques adyacentes. Cada LCU más cercana tiene sus propios sectores vecinos peculiares, cuyo uso para la optimización probabilidades puede ser significativo. En otras palabras, no sólo es posible aplicar las LCU de la fila superior más cercana. En la figura 9 se puede ver un ejemplo en el cual se han tomado primero las derivaciones de estimaciones de probabilidad de los vecinos y es posible tomarlas de cada LCU superior derecha de la fila superior siguiente, cf. p5 y pk.
Cabe reconocer que se introduce cierta complejidad mediante el recálculo o la adaptación de estimación de probabilidad que se describe anteriormente. El nuevo cálculo de estimación de probabilidad se lleva a cabo, por ejemplo, en tres pasos: primero, las estimaciones de probabilidad de cada candidato se deben obtener a partir de cada estado de contexto. Esto se realiza almacenando en el almacén 120 y 240, respectivamente, o, guiando el segmento de entropía paralelo n o mediante procesos de decodificación de tal forma que estos estados se encuentren disponibles simultáneamente. En segundo lugar, mediante la ecuación (1), se generará una probabilidad optimizada (pnueva). Es decir, puede usarse un promediado, por ejemplo, con el fin de combinar estimaciones de probabilidad adaptadas de diferentes segmentos de entropía. Y como último paso, se convierte un nuevo estado de contexto a partir de pnueva y sustituye al antiguo. Es decir, el gestor de estimaciones de probabilidad 76 adopta las nuevas estimaciones de probabilidad así obtenidas. Este procedimiento para cada elemento sintáctico, en especial mediante el uso de operaciones de multiplicación, puede aumentar considerablemente la complejidad. La única forma de disminuir esta penalización es tratar de evitar estos tres pasos. Si se determina el número de candidatos y sus ponderaciones, se puede aproximar una tabla precalculada para cada situación. Así, sólo se necesita un simple acceso a los datos de la tabla con la ayuda de los índices de candidatos (estados de contexto).
Se asegura que esta técnica puede proporcionar buenos resultados para ambas aplicaciones, con y sin usar segmentos de entropía. La primera aplicación sólo usa un segmento por cuadro, por lo que la adaptación de probabilidad se optimiza sin realizar ningún otro cambio. En caso de segmentos de entropía, la adaptación de probabilidad se produce en cada segmento independientemente de otros segmentos. Esto permite un aprendizaje rápido de las probabilidades de la LCU actual.
En la descripción anterior, también se presentó el uso de la segunda LCU de la línea superior, es decir, el uso de la segunda LCU para la inicialización de estimación de probabilidad. Es posible la paralelización de la codificación y decodificación si se logran ciertas condiciones del flujo de bits mencionadas anteriormente (segmentos de entropía). Se debe romper la dependencia de probabilidades CABAC entre LCU. Mediante el procesamiento en paralelo de frente de onda es importante hacer que la primera LCU de cada línea sea independiente de la última LCU de la línea anterior. Esto se puede lograr si, por ejemplo, se reinicializan las probabilidades CABAC al comienzo de cada línea de LCU. Sin embargo, este método no es óptimo, porque cada reinicialización pierde las probabilidades CABAC logradas, las cuales se adaptan a las particularidades de la imagen. Se puede reducir esta penalización si la inicialización de las probabilidades de CABAC de la primera LCU de cada línea se realiza con las probabilidades obtenidas tras la segunda LCU de la línea anterior.
Como se ha descrito anteriormente, se puede lograr un aumento en la velocidad de adaptación de probabilidad acoplando las adaptaciones de probabilidad de segmentos de entropía espacialmente adyacentes. En concreto, en otras palabras, lo anteriormente explicado también anticipa un decodificador tal como el de la figura 6 para reconstruir una matriz de muestras (10) a partir de un flujo de datos codificado por entropía, configurado para decodificar por entropía (realizado por la fase de decodificación por entropía) una pluralidad de segmentos de entropía en el flujo de datos del codificador entrópico a fin de reconstruir así distintas porciones (12) de la matriz de muestras asociada a los segmentos de entropía respectivamente, realizando, para cada segmento de entropía, la decodificación por entropía a lo largo de una respectiva ruta de codificación por entropía (14) usando respectivas estimaciones de probabilidad, adaptando (realizado por el adaptador 78) las respectivas estimaciones de probabilidad a lo largo de la respectiva ruta de codificación por entropía usando una parte previamente decodificada del respectivo segmento de entropía, iniciando la decodificación por entropía de la pluralidad de segmentos de entropía secuencialmente usando un orden de segmentos de entropía (16) y realizando, al decodificar por entropía un segmento de entropía predeterminado, la decodificación por entropía de una parte actual (x) del segmento de entropía predeterminado basándose en las respectivas estimaciones de probabilidad del segmento de entropía predeterminado adaptadas usando la parte previamente decodificada del segmento de entropía predeterminado (incluida p1, por ejemplo), y estimaciones de probabilidad usadas en la decodificación por entropía de un segmento de entropía espacialmente adyacente precedente en el orden de segmentos de entropía (el segmento que comprende X, por ejemplo) en una parte adyacente (tal como p4) del segmento de entropía espacialmente adyacente.
Las diferentes porciones pueden ser filas de bloques (por ejemplo, LCU o macrobloques) de la matriz de muestras. Esta última puede ser una imagen de un vídeo. La ruta de codificación por entropía se puede extender en filas. La codificación por entropía y, por tanto, también la adaptación de probabilidad, pueden ser adaptativas por contexto. Por lo general, el orden de segmentos de entropía se puede elegir de tal forma que, a lo largo del orden de segmentos de entropía, las diferentes porciones se sucedan unas a otras en una dirección (16) en ángulo con respecto a las rutas de codificación por entropía (14) de los segmentos de entropía que, a su vez, se extienden sustancialmente en paralelo entre sí. De esta manera, se puede disponer un "frente de onda" de partes actualmente decodificadas (tales como p1, p4, p5+1 y pk en la figura) de los segmentos de entropía a lo largo de una línea que forma un ángulo respecto a las rutas de segmentos de entropía menor que la dirección de secuencia de las porciones. El frente de onda puede tener una pendiente de 1y por 2x posiciones de bloque para que la referencia superior izquierda siempre esté allí para todos los hilos que procesen segmentos en paralelo.
El decodificador se puede configurar para ejecutar, para cada segmento de entropía, la decodificación por entropía a lo largo de la respectiva ruta de codificación por entropía en unidades de partes de la porción de matriz de muestras del respectivo segmento de entropía de tal forma que los segmentos de entropía se compongan del mismo número de partes, respectivamente, y que la secuencia de partes de las porciones a lo largo de las rutas de segmentos de entropía se alineen entre sí en dirección lateral a las rutas de segmentos de entropía. La parte actual de la porción del segmento de entropía predeterminado pertenece a la red de partes resultante (por ejemplo, LCU o macrobloques). Durante la ejecución, para cada segmento de entropía, de la decodificación por entropía a lo largo de una respectiva ruta de codificación por entropía, el decodificador puede preservar desplazamientos/cambios entre los tiempos de inicio entre segmentos de entropía inmediatamente consecutivos en el orden de segmentos de entropía de modo que el frente de onda de la partes actualmente decodificadas de los segmentos de entropía forme una diagonal tal como hasta una línea con pendiente de 0,5x posiciones de bloque con respecto a las rutas de segmentos de entropía y a la dirección del orden de segmentos de entropía. Los desplazamientos/cambios pueden corresponder a dos partes para todos los pares de segmentos de entropía inmediatamente consecutivos. Alternativamente, el decodificador puede simplemente evitar que la distancia entre partes actualmente decodificadas de segmentos de entropía inmediatamente consecutivos (e inmediatamente adyacentes siempre y cuando se trate de porciones 12 de su matriz de muestras) sea inferior a dos partes. Véase la figura anterior: tan pronto como la parte/bloque p4 ha sido decodificada, la parte/bloque a la derecha de la misma se decodifica según el orden de ruta 16 y, simultáneamente, en su caso, se decodifica X o cualquiera de las partes/bloques que preceden a la misma. Así, el decodificador puede usar las estimaciones de probabilidad ya adaptadas basándose en el contenido de la parte/bloque p4 actual, es decir, la parte dentro la porción espacialmente adyacente, que está alineada con la parte de la porción 12 del segmento de entropía predeterminado que sigue a la parte X actual en el orden de ruta 16, con el fin de determinar las estimaciones de probabilidad que se usarán en la decodificación de X. En caso de desplazamiento constante en la decodificación de segmentos de entropía seguidos de dos partes, el decodificador podrá usar las estimaciones de probabilidad ya adaptadas basándose en el contenido de la parte/bloque p4 simultáneamente para la decodificación por entropía de la parte subsiguiente (es decir, la parte a la derecha de p4) del segmento de entropía espacialmente adyacente.
Tal como se describió anteriormente, se puede usar una suma ponderada de las estimaciones de probabilidad ya adaptadas para determinar las estimaciones de probabilidad que se usarán para la decodificación de X.
Tal como se describió también anteriormente, el orden de segmentos de entropía también pueden traspasar fronteras de cuadro.
Cabe mencionar que la adopción que acaba de exponerse de la probabilidad de los segmentos de entropía predecesores puede realizarse para cada parte del segmento de entropía actual/predeterminado para el cual están disponibles tales partes adyacentes en los segmentos de entropía predecesores. Esto también es cierto para la primera parte a lo largo de la dirección de ruta 16 y, para esta primera parte/bloque (la situada más a la izquierda en cada segmento de entropía en la figura), la adopción es igual a la inicialización descrita anteriormente.
Para una mejor adaptación, también en este caso, se pueden combinar los 2 métodos mencionados anteriormente. Los resultados de este proceso con 1 y 4 hilos, es decir, las unidades de procesamiento usadas en paralelo, se ilustran en las figuras 10 - 13 (2LCU+Adap. de prob. o gráficas de 2LCU).
Para entender mejor el contexto de las realizaciones anteriores y, en especial, de las realizaciones adicionales que se describen a continuación, especialmente el uso de LCU, primero debemos examinar la estructura de H.264/AVC.
Una secuencia de vídeo codificada en H.264/AVC consiste en series de unidades de acceso que se agrupan en el flujo de unidades NAL y usan un solo conjunto de parámetros de secuencia. Cada secuencia de vídeo se puede decodificar de manera independiente. Una secuencia codificada consiste en una secuencia de imágenes codificadas. Un cuadro codificado puede ser un cuadro completo o un campo individual. Cada imagen se divide en macrobloques de tamaño fijo (en HEVC: LCU). Varios macrobloques o LCU se pueden fusionar en un segmento. Por lo tanto, una imagen es una agrupación de uno o más segmentos. El objetivo de esta separación de datos es permitir la decodificación independiente de las muestras en el área de la imagen, que está representada por el segmento, sin necesidad de usar datos de otros segmentos.
Una técnica que también se ha denominado con frecuencia "segmentos de entropía" es la división del segmento tradicional en subsegmentos adicionales. Específicamente, esto significa dividir los datos codificados por entropía de un segmento individual. La disposición de segmentos de entropía en un segmento puede variar. El método más sencillo es usar cada fila de LCU/macrobloques en un cuadro como segmento de entropía. Como alternativa, las columnas o regiones separadas se pueden utilizar como segmentos de entropía, los cuales incluso se pueden interrumpir y alternar entre sí como, por ejemplo, el segmento 1 de la figura 14.
Un objetivo evidente del concepto de segmento de entropía es posibilitar el uso de arquitecturas CPU/GPU y de múltiples núcleos en paralelo con el objeto de mejorar el tiempo del proceso de decodificación, es decir, para acelerar el proceso. El segmento actual se puede dividir en particiones que pueden ser analizadas sintácticamente y reconstruidas sin referencia a datos de otros segmentos. Aunque se pueden lograr un par de ventajas con el enfoque de segmento de entropía, surgen sin embargo algunas penalizaciones.
En primer lugar, un objetivo principal es crear un flujo de bits que sea adecuado para un proceso de codificación y decodificación en paralelo. Debe tenerse en cuenta que una LCU puede ser codificada solo si las LCU adyacentes (izquierda, superior, superior-derecha) ya están disponibles como una versión codificada, con el fin de usar información espacial y de movimiento para la predicción. Para posibilitar un paralelismo mediante segmentación se debe realizar un cambio entre el procesamiento de segmentos (por ejemplo, un cambio de 2 LCU, de manera típica para el enfoque de frente de onda). Debido a la adaptación de probabilidades de CABAC, una LCU usa las probabilidades disponibles de la LCU previamente decodificada. Con respecto al orden de escaneo de trama, el problema que sucede al segmentar la imagen es la imposibilidad de paralelismo, puesto que la primera LCU de cada línea depende de la última LCU de la línea anterior. El efecto de esto es que se deben romper las dependencias de probabilidades de CABAC entre segmentos, de modo que se puedan iniciar varios segmentos simultáneamente.
Una forma de hacer esto es la típica reiniciación de CABAC mediante la cual, sin embargo, se perderán todos los datos adoptados. Como resultado puede aumentar la tasa de bits.
En segundo lugar, cada segmento genera su propio subflujo de bits, que se puede poner en series en el flujo principal. Pero se debe pasar información especial del decodificador, de modo que estos segmentos y sus posiciones en el flujo principal se puedan identificar correctamente. Caben dos escenarios para la señalización. La información de ubicación se puede almacenar en la cabecera de cuadro (información de longitud de segmentos) o en cada cabecera de segmento (puntos como código de inicio). La alineación de bytes al final de cada segmento de entropía y la información ubicación aumentan las pérdidas.
Para reducir la penalización introducida por la señalización para segmentos de entropía, es esencial usar una buena técnica de codificación para la señalización. Una penalización significativa para señalización de segmentos de entropía es introducida en un cuadro, si se utilizan códigos de inicio para cada segmento, es decir, se agregan demasiados bytes adicionales (por ejemplo, como mínimo 4 bytes por segmento) al flujo de bits. Ciertamente, la inserción de segmentos de entropía 90 usando códigos de inicio es ventajosa en escenarios de bajo retardo donde el codificador podrá emitir instantáneamente segmentos de entropía. En tales casos, no es posible una señalización directa de puntos de entrada.
En escenarios de bajo retardo menos estricto, sin embargo, la oportunidad de almacenar longitudes de segmento (desplazamientos) parece más adecuada. Un método bien conocido para codificar tal información es la codificación por código de longitud variable (Variable Length Code (VLC)) o codificación de Golomb exponencial. La principal característica de la VLC es la adición de información vacía (ceros) antes de la verdadera información. Con la ayuda de estos ceros se puede determinar un código que almacene información sobre longitud de desplazamiento. Proponemos otra técnica para realizar esto, cuyo esquema se muestra en la figura 15, donde X=TamañoSegmentoEntropía es la cantidad de bytes contenidos en un segmento de entropía. Cada siguiente X (desplazamiento) se define como una diferencia en el tamaño entre desplazamiento de segmento de entropía anterior, ya codificado y señalizado, y el actual. Las principales características de este concepto son la formación de diferencias, dependiendo del tamaño X, de modo que la cantidad de datos se puede disminuir, y la adición de hasta 3 bits, lo que permite extraer la información pertinente sobre el tamaño de cada segmento de entropía mediante el decodificador. En comparación con VLC, se puede conseguir un ahorro en la cantidad de bits en la cabecera de segmento de entropía.
Es decir, de acuerdo con el aspecto de la figura 15, por ejemplo, se proporciona un concepto para codificación por entropía de una señal de información que posibilita una mayor tasa de compresión, a pesar de la capacidad de procesamiento en paralelo, que en comparación con conceptos disponibles hasta la fecha. Según este aspecto, una sección de flujo de datos codificados por entropía 20, en la que está codificada una matriz de muestras, comprende segmentos de entropía tales como 90 en la figura 8 en los que están codificados por entropía diferentes porciones 12 de la matriz de muestras, y una cabecera ilustrada con líneas discontinuas 300 en la figura 9, que comprende información que revela posiciones de inicio 302 de los segmentos de entropía 90, medidas en el dominio decodificado por entropía, dentro del flujo de datos codificados de entropía, comprendiendo la información, para un segmento de entropía predeterminado, un valor de diferencia que revela una diferencia entre una posición de inicio de un segmento de entropía n-1 precedente y una posición de inicio del segmento de entropía n predeterminado, incluyéndose la diferencia en el flujo de datos como una secuencia de bits de VLC.
En particular, la secuencia de bits de VLC puede tener un prefijo de longitud variable y, lo que indica que la diferencia x se sitúa en la y-ésima de una secuencia de un número z de intervalos [0,2a-1], [2a,2b+2a-1], [2b+2a, 2c+2b+2a-1], etc., y un sufijo codificado por PCM de la y-ésima de la secuencia de longitudes a, b, c ... Si a, b, c, ... se eligen para ser una potencia de dos, si se añade la y correspondiente, es decir, de manera que a+1, b+2, c+3, etc. sean todos potencias de dos, entonces puede preservarse la alineación de bytes. El número z no se limita a tres, como se ha elegido a modo de ejemplo en la figura 15.
El codificador, tal como el de la figura 1, está adecuadamente diseñado para convertir la diferencia de posiciones de inicio consecutivas en una secuencia de bits de VLC, es decir, determinando en primer lugar el prefijo, es decir, en qué subintervalo se encuentra la diferencia (la y-ésima) y luego estableciendo el sufijo más para que sea igual a la diferencia de la posición de inicio menos la y-ésima de 0, 2a, 2b+2a, etc. El decodificador, tal como el de la figura 6, está adecuadamente diseñado para derivar la posición de inicio del actual segmento de entropía n a partir de la secuencia de bits de VLC, es decir, inspeccionando en primer lugar el prefijo para obtener y, luego estableciendo la diferencia con el valor del sufijo más como la y-ésima de 0, 2a, 2b+2a, etc. y añadiendo después la diferencia con el punto de inicio del segmento de entropía n-1 precedente.
Una ventaja adicional puede lograrse mediante la segmentación de segmentos de entropía, concretamente, para la transmisión de bajo retardo y para acelerar la decodificación.
En la transmisión de vídeo, permitir resoluciones más altas (Full-HD, QUAD-HD, etc.) conduce a una mayor cantidad de datos que deben transmitirse. En el caso de escenarios sensibles al tiempo, denominados caso de uso de bajo retardo (<145 ms), el tiempo de transmisión se convierte en un factor crítico. Consideremos el enlace de subida ADSL para una aplicación de videoconferencia. En este caso, los denominados puntos de flujo de acceso aleatorio, que por lo general se refieren a cuadros I, serán los candidatos a provocar un cuello de botella durante la transmisión.
Para resolver este problema y reducir al mínimo el retardo del tiempo de transmisión y decodificación, es decir, el retardo de extremo a extremo, puede aplicarse una nueva técnica para un esquema de segmentos de entropía entrelazados para la transmisión y el procesamiento en paralelo.
HEVC permitirá el denominado procesamiento de frente de onda en el lado del decodificador. Eso se permitirá a través del uso de segmentos de entropía. En un caso normal, los datos de todo un segmento se entregarán de una sola vez. El proceso de decodificación se iniciará apenas lleguen los datos codificados a los motores del decodificador de frente de onda. Para reducir el tiempo en que el decodificador puede iniciar y finalizar un cuadro, se utiliza una segmentación de segmentos de entropía en fragmentos pequeños usando un enfoque de entrelazado de acuerdo con la presente realización. Por consiguiente, el codificador puede entregar datos, correspondientes a un segmento de entropía específico, a la capa de transporte antes que en un caso normal. Esto resulta entonces en una transmisión más rápida y un inicio anticipado de un proceso de decodificación en paralelo en el cliente.
Crear fragmentos de un segmento puede lograrse también mediante la subdivisión de un segmento de entropía en segmentos adicionales manteniendo todas las dependencias (segmentos dependientes). Si esto se lleva a cabo en cada unidad de codificación más grande (LCU)/unidad de codificación en árbol (CTU), estos fragmentos pueden entrelazarse mediante el uso adicional de técnicas de capa de sistema que permiten transmitir los fragmentos de forma entrelazada y recuperar o al menos proporcionar el conocimiento del orden de decodificación original de los fragmentos a través de señalización adicional. Tal señalización puede ser un número de orden de decodificación (DON), tal como se define en el formato de carga útil IETF RTP para H.264/AVC (RFC 3984). Otro método de sistema puede ser aplicar los fragmentos de un subflujo de frente de onda a un flujo de transporte diferente, como en los sistemas MEPG-2, asignando un PID diferente a cada uno de ellos, multiplexándolos de manera adicional y con ello entrelazándolos en el canal de transporte.
Este enfoque puede aplicarse también traspasando fronteras de cuadro, en su caso, si el (los) siguiente(s) segmento(s) del cuadro o segmento(s) de entropía pueden ya decodificarse, por ejemplo, en forma de frente de onda, basándose en el conocimiento de la información requerida para la decodificación de un segmento de entropía de un cuadro siguiente, debido a la disponibilidad de referencias entre cuadros. Estos datos ya decodificables de un cuadro subsiguiente en el orden de decodificación se pueden derivar de la longitud de vector de movimiento señalizada/permitida máxima o de la información adicional en el flujo que indica las dependencias de partes de datos respecto al (a los) cuadro(s) precedente(s), o un esquema de referenciación fijo, que indica la posición señalizada en una posición de secuencia fija, tal como un conjunto de parámetros. Esto se expondrá adicionalmente a continuación.
La imagen puede codificarse con un segmento de entropía por fila(s) de unidad(es) de codificación más grande(s) (LCU), tal como se representa en las figuras 2 y 9. Resulta ventajoso en el uso de la técnica de frente de onda en el lado del decodificador. Durante el proceso de codificación, el flujo de bits de cada segmento puede dividirse en segmentos de tamaño constante. Luego, los segmentos resultantes se entrelazan y pueden pasarse a la transmisión. El tamaño constante de los segmentos puede crear problemas en el extremo del flujo de bits debido a su longitud variable.
Hay dos soluciones generales posibles. La primera es la generación de segmentos de un byte (por lo general, la representación del flujo de bits del segmento se alinea en bytes) y el control del consumo de bytes por cada motor del decodificador, es decir, el decodificador averigua cuándo se ha completado un segmento de entropía.
La segunda es el uso de un código de finalización al final del segmento. En este último caso, son posibles segmentos de longitud variable, pero también puede conducir a una mayor cantidad de datos. Otro método es la señalización de la longitud del segmento de entropía. Una forma de esta alternativa se describe a continuación
El tamaño del segmento y el modo de entrelazado se pueden señalizar en un mensaje SEI o en SPS.
El esquema de transmisión se muestra en la figura 16.
Por lo tanto, de acuerdo con el aspecto de la figura 16, por ejemplo, se proporciona un concepto de codificación por entropía de una matriz de muestras, que permite un menor retardo en comparación con conceptos disponibles hasta el momento. De acuerdo con este aspecto, un flujo de datos codificados 20, en el que está codificada una señal de información, comprende segmentos tales como segmentos de entropía 90 o simplemente segmentos decodificables de manera totalmente independiente (se muestran en el lado izquierdo) en los que están codificadas diferentes porciones 12 de la señal de información (de manera predictiva y/o por entropía), estando los segmentos 90 subdivididos en fragmentos (recuadros sombreados 310) que se disponen en el flujo de datos codificados 20 de manera entrelazada (se muestran en el lado derecho), representándose el entrelazado mediante el paréntesis 312.
Según se ha indicado más arriba y según se describe con respecto a otros aspectos, los segmentos pueden ser segmentos de entropía 90 que, a su vez, pueden ser subconjuntos apropiados de segmentos de cuadros y, en consecuencia, el flujo de datos codificados puede ser un flujo de datos codificados por entropía 20.
El entrelazado 312 de los segmentos 90 permite un menor retardo ya que el decodificador responsable de decodificar cualquiera de los segmentos 90 no necesita esperar a una duración de tiempo consumida por segmentos anteriores de otros decodificadores (según el orden de segmentos 16). En lugar de ello, todos los decodificadores disponibles pueden comenzar a decodificar sus segmentos asociados apenas esté disponible el primer fragmento 310 de los mismos y se resuelvan las posibles dependencias entre segmentos, cf. enfoque de frente de onda.
Las diferentes porciones 12 pueden codificarse por entropía dando lugar a los segmentos de entropía 90 usando estimaciones de probabilidad que se establecen de forma independiente entre los segmentos de entropía o usando la adopción entre segmentos de entropía de estimaciones de probabilidad, según se ha descrito más arriba, como por ejemplo, concretamente codificando las diferentes porciones 12 dando lugar a los segmentos de entropía 90 a lo largo de las respectivas rutas de codificación por entropía respectivo 14 y segmentos de entropía subordinados tienen sus correspondientes porciones 12 codificadas en su interior usando estimaciones de probabilidades derivadas, entre otros, a partir de estimaciones de probabilidad usadas en segmentos de entropía de nivel superior en partes espacialmente adyacentes de la porción correspondiente, tal como se describió anteriormente.
El flujo de datos codificados por entropía 20 puede comprender adicionalmente una cabecera, tal como se muestra como opción en la figura 16. La cabecera 300 puede asociarse con el cuadro (matriz de muestras) de una secuencia 30, comprendiendo la cabecera 300 información que revela una longitud de los segmentos de entropía. La información relativa a la longitud de los segmentos de entropía 90 se puede codificar dentro de la cabecera 300, según se ha descrito más arriba, usando códigos de VLC. Usando el conocimiento acerca de la longitud de los segmentos de entropía, en el lado de decodificación, es posible identificar un último fragmento asociado con cada uno de los segmentos de entropía 90 y la longitud de los mismos. Sin embargo, también se pueden utilizar códigos de inicio u otros esquemas de indicación. Las posiciones de inicio del segmento se pueden identificar también simplemente a través del proceso de decodificación que conoce la terminación de un segmento. Por lo tanto, puede ser posible simplemente fiarse de la indicación del decodificador, pero esto requiere señalización entre decodificadores y, en algunos casos, si un segmento de entropía "anterior" termina después que un segmento "posterior" en el flujo. Esto puede requerir en casos específicos una señalización "adaptativa" en el flujo, que puede basarse en códigos de inicio.
Por ejemplo, los segmentos de entropía 90 pueden disponerse después de la cabecera 300, según se ilustra en la figura 16.
Los fragmentos 310 pueden tener igual longitud, al menos por lo que respecta a una porción contigua de inicio de la secuencia de fragmentos 310 desde el primero de los fragmentos a lo largo de un orden en el que se disponen los fragmentos en el flujo de datos codificados por entropía 20. La longitud de los fragmentos posteriores puede variar. Los fragmentos posteriores pueden ser iguales a la longitud de la porción contigua de inicio de la secuencia o inferiores a esta longitud. La longitud de los fragmentos posteriores puede derivarse de la información antes mencionada en la cabecera 300 que revela la longitud de los segmentos de entropía 90 o la posición de inicio. Los fragmentos 310 pueden disponerse en el flujo de datos codificados por entropía 20 de manera cíclica, de acuerdo con un orden definido entre los segmentos de entropía. En el caso de segmentos de entropía cuyos fragmentos están completamente dentro de los ciclos anteriores, estos pueden omitirse en los ciclos actual y posteriores.
Otra información señaliza entonces una secuencia de matrices de muestras, como por ejemplo una señal de vídeo, que podría transmitirse también a través del flujo de datos 20. Por lo tanto, las diferentes porciones 12 no tienen que ser porciones de una matriz de muestras predeterminada, como por ejemplo una imagen/cuadro.
Según describió anteriormente, los segmentos de entropía 90 pueden tener las diferentes porciones 12 de la matriz de muestras 10 codificadas en su interior mediante codificación predictiva usando la predicción entre segmentos de entropía y/o predicción entre cuadros, una codificación por entropía de un residuo de predicción de la predicción entre segmentos de entropía y/o de la predicción entre cuadros. Es decir, según se ha descrito más arriba, las diferentes porciones pueden ser porciones espacialmente distintas del cuadro 10 o múltiples cuadros 30. Este último caso se aplica si el (los) siguiente(s) segmento(s) del cuadro o segmento(s) de entropía ya pueden decodificarse, por ejemplo, en forma de frente de onda, basándose en el conocimiento de la información requerida para decodificar un segmento de entropía de un cuadro siguiente debido a las referencias entre cuadros disponibles. Aquellos datos ya decodificables de un cuadro subsiguiente en el orden de decodificar pueden derivarse a partir de la longitud de vector de movimiento señalizada/permitida máxima o de información adicional en el flujo que indica las dependencias de partes de datos respecto al (a los) cuadro(s) precedente(s), y la predicción entre segmentos de entropía puede implicar una intrapredicción, mientras que la predicción entre cuadros puede implicar predicción con compensación de movimiento. Un ejemplo se expone a continuación.
La independencia antes mencionada del establecimiento de estimación de probabilidad entre los segmentos de entropía puede referirse tanto a la adaptación de probabilidad como al modelado de contexto. Es decir, el contexto elegido en un segmento de entropía puede elegirse de forma independiente de otros segmentos de entropía y la estimación de probabilidad de un contexto puede también inicializarse y adaptarse independientemente de cualquier otro segmento de entropía.
Un decodificador por entropía correspondiente puede construirse de la siguiente manera.
Un decodificador de entropía, configurado para decodificar por entropía un flujo de datos codificados por entropía 20, que comprende segmentos de entropía 90 en los que están codificadas por entropía diferentes porciones de un cuadro, estando los segmentos de entropía subdivididos en fragmentos 310 que se disponen en el flujo de datos codificados por entropía 20 de manera entrelazada, puede configurarse tal como se muestra en la figura 6 y puede comprender además un desentrelazador configurado para desentrelazar los fragmentos 310, simbolizado con 314 en la figura 16.
En particular, según se ilustra en la figura 5, el decodificador de entropía puede comprender una pluralidad de decodificadores de entropía 130, tales como hilos que se ejecutan en diferentes núcleos de procesamiento, en donde el desentrelazador puede configurarse, para cada segmento de entropía, para reenviar los fragmentos 310 del mismo a un decodificador de entropía 44 asociado con el respectivo segmento de entropía.
En otras palabras, los segmentos de entropía pueden subdividirse en fragmentos, que, a su vez, pueden entrelazarse y el decodificador puede comprender un desentrelazador para desentrelazar los fragmentos y puede comenzar a operar en los segmentos de entropía en paralelo a lo largo de las rutas 16, incluso antes de la recepción de cualquiera de los segmentos de entropía en su conjunto. Cabe recordar que la longitud de los fragmentos se mide preferentemente en el dominio codificado por entropía en lugar de en el dominio de sintaxis, de manera que corresponda, por ejemplo, a un número de ciertas partes espaciales/bloques en la imagen o similares, aunque esta última opción también estaría disponible.
A continuación, se describe el posible uso de dependencias temporales. Las mismas pueden utilizarse junto con o como alternativa a las realizaciones de mejora de la estimación de probabilidad que se han descrito hasta ahora.
El patrón de procesamiento de frente de onda, según se describe a continuación, puede extenderse a la codificación por entropía con el nuevo cálculo de probabilidades para cada LCU a fin de utilizar también las dependencias temporales entre cuadros.
Según es bien sabido, las probabilidades se reinicializarán al comienzo de cada cuadro (la primera LCU). De este modo, las probabilidades, que ya han sido adquiridas en el cuadro anterior, se pierden. Con el fin de disminuir la pérdida de eficiencia de codificación, se puede pasar el estado final de la imagen (cp. 320) o, en el caso de utilizar segmentos de entropía, el estado final del segmento (cp. 322), de las probabilidades desde el cuadro de referencia 324 a la primera LCU 50 del cuadro 10 o segmento de entropía 12 actual, respectivamente (figura 17). Tales datos de un segmento correspondiente en un cuadro de referencia pueden derivarse no sólo en la posición final, sino también en una posición anterior en los segmentos de referencia, ya que el procesamiento de frente de onda en paralelo también puede traspasar fronteras de cuadro, es decir, mientras se codifica un segmento de un cuadro, el proceso de codificación del segmento del cuadro precedente puede no haber terminado todavía. Por lo tanto, la señalización puede utilizarse para indicar la posición de referencia o esta puede indicarse mediante esquema.
Si se usa la notación anterior, por lo tanto, para inicializar en la fase de inicio 84 y 234, respectivamente, se puede establecer P{i,j} donde {i,j} indica la primera CU 50 en el k-ésimo segmento de entropía de la actual matriz de muestras igual a, o al menos dependiente de, cualquier T(P{i,j}) donde {i,j}’ indica una CU en una matriz de muestras precedente (en un orden de codificación de matrices de muestras que puede ser igual al orden de presentación) o una combinación de varios T(P{i,j}). Esto puede llevarse a cabo solo para k= 0 o para cada segmento de entropía k e {1...K} donde K indica el número de segmentos de entropía en el cuadro actual. La inicialización temporal puede llevarse a cabo de manera adicional o alternativa a la inicialización espacial descrita anteriormente. Es decir, P{i,j} donde {i,j} indica la primera CU 50 en el k-ésimo segmento de entropía puede establecerse igual a alguna combinación (tal como algún promedio) de T(P{i,j}) y T(P{i,j}espacial) donde {i,j}’ indica una CU en la matriz de muestras precedente (previamente (de)codificada) o una combinación de varios T(P{i,j}) y donde {i,j}espacial indica una CU en el segmento de entropía precedente de la actual matriz de muestras. En cuanto a la ubicación de {i,j}’, P{i,j} donde {i,j} indica la primera CU 50 (en el orden de codificación por entropía 14) en el segmento de entropía k-ésimo (en la orden de codificación de entropía 14) de la actual matriz de muestras puede configurarse igual a T(P{i,j} ) donde {ij}’ indica la última CU (en el orden de codificación por entropía 14) en el k-ésimo segmento de entropía (en el orden de segmentos de entropía) en la matriz de muestras precedente (en el orden de codificación de matrices de muestras) o la última CU en el último segmento de entropía (en el orden de segmentos de entropía) en la matriz de muestras precedente (en el orden de codificación de matrices de muestras). Una vez más, esta inicialización temporal puede llevarse a cabo solo para el primer segmento de entropía en la matriz de muestras.
El proceso de análisis sintáctico del estado final del cuadro de referencia se probó con el método de adaptación de probabilidades, cuyos resultados se ilustran en las figuras 10 - 19 (gráfica Temporal).
Otra oportunidad de utilizar los datos de otros cuadros es intercambiar las probabilidades obtenidas entre LCU yuxtapuestas. La idea principal se basa en la afirmación de que las propiedades del cuadro de referencia no difieren mucho del cuadro actual. Con el fin de acelerar el aprendizaje de las probabilidades a lo largo de las LCU en un cuadro, se puede intentar pasar el estado final de cada LCU a la LCU apropiada en el cuadro actual. Esta propuesta se ilustra en la figura 18.
Por cuadro de referencia pueden entenderse diferentes oportunidades. Por ejemplo, un cuadro que se codifica el último puede utilizarse como cuadro de referencia. En caso contrario, solo el último cuadro codificado procedente de la misma capa temporal puede ser apropiado como referencia.
Por otra parte, este enfoque puede fusionarse con métodos ya propuestos anteriormente, como el uso de la última información (de segmento) del cuadro de referencia, la adaptación de probabilidades y el uso de la segunda LCU de la línea superior.
El proceso de adaptación espacial anterior puede modificarse para que sea
pp(n+1)= promedio(T(pp(n)), T( P[uj)i ),...,T(P{¡j )n ), T( P[ujYí ),...,T( P[u¡Ym ),)
donde N puede ser 1 o mayor que 1 y {i,j}1...N se selecciona(n) de (se sitúan en) cualquier segmento de entropía 90 precedente (en el orden de segmentos de entropía 16) en la actual matriz de muestras 10 y su porción asociada 12, respectivamente, y M puede ser 1 o mayor que 1 y {i,j}’1...M se sitúa(n) en la matriz de muestras 350 precedente. Puede ser que (la) al menos una de las Cu 50 {i,j}’1...M esté yuxtapuesta a p(n). Respecto a las posibles selecciones de CU 50 {i,j}1...N, se hace referencia a la descripción anterior. La función "promedio" puede ser una suma ponderada, una función de mediana, etc.
El proceso de adaptación espacial anterior puede ser sustituido por
Pp(n+1)= promedio(T(Pp(n)), T(PR^ ),...,T( P{¡,JYm ),)
donde M puede ser 1 o mayor que 1 y {i,j}’1...M se sitúa(n) en la matriz de muestras precedente. Puede ser que (la) al menos de {i,j}’1...M esté yuxtapuesta a p(n). Respecto a las posibles selecciones de {i,j}1...N, se hace referencia a la descripción anterior. La función "promedio" puede ser una suma ponderada, una función de mediana, etc. Puede ser que (la) al menos de {i,j}’1...M esté yuxtapuesta a p(n).
Como una extensión específica del uso de información yuxtapuesta, puede aplicarse un enfoque para utilizar los datos obtenidos de otros bloques de uno o incluso más cuadros de referencia.
Las técnicas mencionadas anteriormente sólo utilizan la información obtenida de los vecinos directos en el cuadro actual o en cuadros de referencia. Sin embargo, esto no significa que las probabilidades obtenidas en este caso sean las mejores. Las LCU adyacentes, de acuerdo con las particiones de la imagen (residuos), no siempre tienen los mejores modelos de probabilidades. Se supone que los mejores resultados se pueden alcanzar con la ayuda de bloques, a partir de los cuales se efectuará la predicción. Y, por lo tanto, este bloque apropiado puede usarse como referencia para la LCU actual.
De esta manera, en el ejemplo de adaptación anterior, {i,j}i...N y/o {i,j}’i...M pueden seleccionarse dependiendo de las CU que sirvan como proveedores de predictores para p(n).
Los esquemas de adaptación/inicialización de probabilidad temporal presentados pueden también usarse sin segmentos de entropía o con un segmento de entropía individual por cuadro.
Según este último aspecto, un aumento en la velocidad de adaptación de probabilidad se consigue acoplando las adaptaciones de probabilidad de cuadros temporalmente adyacentes/relacionados. Lo que se describe en ese caso es un decodificador como el de figura 6, en donde el decodificador se configura para reconstruir una secuencia de matrices de muestras de un flujo de datos de codificador de entropía, y se configura para decodificar por entropía un cuadro actual del flujo de datos de codificador de entropía para así reconstruir una matriz de muestras actual de la secuencia de matrices de muestra, realizar la decodificación por entropía a lo largo de una ruta de codificación por entropía y usar estimaciones de probabilidad y adaptar las estimaciones de probabilidad a lo largo de la ruta de codificación por entropía usando una parte previamente decodificada del cuadro actual, estando la fase de decodificación por entropía configurada para inicializar o determinar las estimaciones de probabilidad para el cuadro actual basándose en estimaciones de probabilidad usadas la decodificación de un cuadro previamente decodificado del flujo de datos codificados por entropía.
Es decir, por ejemplo, las estimaciones de probabilidad para el cuadro actual se inicializan basándose en estimaciones de probabilidad que resultan tras haber terminado la decodificación del cuadro previamente decodificado del flujo de datos codificados por entropía. Los requisitos de almacenamiento en búfer son, por consiguiente, bajos, ya que solamente el estado final de las estimaciones de probabilidad tiene que almacenarse en búfer hasta el inicio de la decodificación del cuadro actual. Por supuesto, este aspecto se puede combinar con el aspecto de las figuras 1 a 9 en el sentido que para las primeras partes de cada porción 12 no solamente se usan estimaciones de probabilidad usadas para partes espacialmente adyacentes en segmentos de entropía anteriores (si hay disponibles) sino también, de manera ponderada, por ejemplo, el estado final de las estimaciones de probabilidad de un segmento de entropía correspondiente (por ejemplo, espacialmente) en el cuadro anterior. Tales datos de un segmento correspondiente en un cuadro de referencia se pueden derivar no solamente en la posición final sino también de una posición anterior en los segmentos de referencia, ya que el procesamiento de frente onda en paralelo puede también traspasar fronteras de cuadro, es decir mientras se codifica un segmento de un cuadro, el proceso de codificación del segmento del cuadro precedente puede no haber acabado aún. Por consiguiente, se puede usar la señalización para indicar la posición de referencia, o esta se puede indicar mediante esquema.
Además, por ejemplo, las estimaciones de probabilidad usadas para codificar las partes/bloques del cuadro previamente decodificado se almacenan todas en búfer, no solamente el estado final, y el decodificador, al decodificar por entropía el segmento de entropía predeterminado (con referencia a la descripción anterior de derivación de probabilidad acoplada espacialmente), realizaría la decodificación por entropía de la parte actual (X) del segmento de entropía predeterminado basándose en las respectivas estimaciones de probabilidad del segmento de entropía predeterminado adaptadas usando la parte previamente decodificada del segmento de entropía predeterminado (incluyendo p1, por ejemplo), y estimaciones de probabilidad usadas en la decodificación por entropía de una parte espacialmente correspondiente de un segmento de entropía del cuadro previamente decodificado usando, opcionalmente, además estimaciones de probabilidad usadas en la decodificación por entropía de un segmento de entropía espacialmente adyacente, precedente en el orden de segmentos de entropía (el segmento que comprende X, por ejemplo) en una parte adyacente (tal como p4) del segmento de entropía espacialmente adyacente, como se ha descrito anteriormente. Como también se ha descrito anteriormente, la correspondencia espacial entre partes, y la identificación de una adecuada para la adopción de probabilidad para el cuadro actual de entre el cuadro previamente decodificado se puede definir mediante la ayuda de información de movimiento, tal como índices de movimiento, vectores de movimiento y similares, de la parte/bloque actual.
Hasta ahora, el frente de onda que se extiende durante el procesamiento de frente de onda se ha descrito principalmente como que se extiende oblicuamente a través de una matriz de muestras 10 donde la codificación/decodificación realiza una matriz de muestras después de otra. No obstante, esto no es una obligación. Se hace referencia a la figura 19. La figura 19 muestra una porción de una secuencia de matrices de muestras, en donde las matrices de muestras de la secuencia tienen definidas entre las mismas, y se representan dispuestas en, un orden de codificación de matrices de muestras 380 que puede o no coincidir con un orden de tiempo de presentación. La figura 19 muestra a modo de ejemplo una subdivisión de las matrices de muestras 10 en cuatro segmentos de entropía cada una. Segmentos de entropía ya codificados/decodificados se muestran sombreados. Cuatro hilos de codificación/decodificación (fases de codificación/decodificación) 382 operan actualmente en los cuatro segmentos de entropía 12 de la matriz de muestras con índice n. No obstante, la figura 19 muestra que queda un hilo número 5, y es posible que este hilo adicional 382 con el número 5 en la figura 19 opere para codificar/decodificar la próxima matriz de muestras en línea, es decir n+1, en porciones para las que se garantiza que respectivas porciones de referencia en el cuadro n actualmente codificado/decodificado ya están disponibles, es decir ya se han procesado por alguno de los hilos 1 a 4. Estas porciones se toman como referencia en las predicciones mostradas en 64 de figura 1, por ejemplo.
La figura 19 muestra a modo de ejemplo, con una línea de puntos 384, una línea que se extiende a través de la matriz de muestras n+1 que está yuxtapuesta a la frontera entre la porción ya procesada, es decir, ya codificada/decodificada, de la matriz de muestras n, es decir la porción sombreada dentro de la matriz de muestras n, por un lado, y la porción que aún no se ha procesado, es decir la porción no sombreada de la matriz de muestras n, por el otro lado. Con flechas de doble cabeza, la figura 19 también muestra la longitud máxima posible de vectores de movimiento medida en dirección de columna y fila, es decir ymax y xmax, respectivamente. Por consiguiente, la figura 19 también muestra con una línea de rayas y puntos 386 una versión desplazada de la línea 384, es decir una línea 386 que se separa de la línea 384 con la distancia mínima posible de modo que la distancia no quede por debajo de bajo ymax en la dirección de columna y de xmax en la dirección de fila. Como se puede ver, hay unidades de codificación 50 en la matriz de muestras n+1 para las cuales cualquier porción de referencia en la matriz de muestras n se garantiza que se encuentra completamente contenida dentro de la porción ya procesada de esta matriz de muestras n, es decir las que se sitúan en la mitad de la matriz de muestras n+1 que se sitúa en el lado aguas arriba en relación con la línea 386. Por consiguiente, el hilo 5 ya puede operar para decodificar/codificar estas unidades de codificación como se muestra en la figura 19. Como se puede ver, incluso un sexto hilo podría operar en el segundo segmento de entropía en el orden de segmentos de entropía 16 de la matriz de muestras n+1. De esa manera, el frente de onda se extiende no solamente espacialmente sino también temporalmente a través del espacio espacio-temporal abarcado por la secuencia 30 de matrices de muestra.
Se debe recordar que el aspecto de frente de onda recién mencionado también funciona en combinación con los acoplamientos de estimación de probabilidad antes expuestos a través de fronteras de segmento de entropía.
Además, con respecto al aspecto de fragmentos antes expuesto, también debiera señalarse que la subdivisión de segmentos de entropía pedazos más pequeños, es decir fragmentos, no se limita a la realización en el domino codificado por entropía, es decir en el dominio comprimido por entropía. Consideremos la discusión anterior: los segmentos de entropía anteriormente descritos tienen la ventaja de reducir la pérdida de eficiencia de codificación a pesar de la habilitación del procesamiento de frente de onda debido a la derivación de estimaciones de probabilidad a partir de segmentos de entropía previamente codificados/decodificados del mismo cuadro o de uno previamente codificado/decodificado, es decir una inicialización y/o adaptación de las estimaciones de probabilidad basándose en estimaciones de probabilidad de tales segmentos de entropía anteriores. Cada uno de estos segmentos de entropía se supone que se ha codificado/decodificado por entropía por un hilo en el caso del procesamiento de frente de onda. Es decir, al subdividir los segmentos de entropía, no es necesario procesar los fragmentos codificables/decodificables en paralelo. En vez de eso, el codificador tendrá simplemente la oportunidad de emitir subpartes del flujo de bits de su segmento de entropía antes de finalizar la codificación por entropía, y el decodificador tendrá la oportunidad de operar en estas subpartes, es decir fragmentos, antes de la recepción de los fragmentos restantes del mismo segmento de entropía. Además, el entrelazado se habilitará en el lado de recepción. Para permitir este último desentrelazado, sin embargo, no es necesario realizar la subdivisión en el dominio codificado por entropía. En particular, se puede realizar la subdivisión de segmentos de entropía antes presentada en fragmentos menores sin pérdida grave de eficiencia de codificación, con solo restablecer intermitentemente el estado interno del intervalo de probabilidad, es decir el valor de anchura del intervalo de probabilidad, y el valor de desplazamiento, respectivamente, del núcleo de codificación/decodificación por entropía. Las estimaciones de probabilidad, no obstante, no se restablecen. En vez de eso, se actualizan/adaptan continuamente desde el comienzo hasta el final de los segmentos de entropía, respectivamente. Con esta medida, se pueden subdividir los segmentos de entropía en fragmentos individuales, realizándose la subdivisión en el dominio de elementos sintácticos en vez del dominio de flujo de bits comprimido. La subdivisión puede seguir una subdivisión espacial como se expone a continuación con el fin de facilitar una señalización de las interfaces de fragmento hacia el decodificador. Cada uno de los fragmentos podría tener su propia cabecera de fragmento que revela, por ejemplo, su posición de inicio en la matriz de muestras, medida, por ejemplo, con respecto al orden de codificación 14 en relación con la respectiva posición de inicio del segmento de entropía junto con un índice a su segmento de entropía, o en relación con una ubicación destacada de la matriz de muestras 10, tal como la esquina izquierda superior.
Para describir con mayor claridad la subdivisión de segmentos de entropía en fragmentos según esta última realización, se hace referencia a la figura 20. La figura 20 muestra, solo a título ilustrativo, la matriz de muestras 10 subdividida en cuatro segmentos de entropía. Las porciones actualmente codificadas de la matriz de muestras 10 se muestran sombreadas. Tres hilos operan actualmente en la codificación por entropía de la matriz de muestras 10 y emiten fragmentos de los segmentos de entropía por atención inmediata: véase, por ejemplo, el primer segmento de entropía en el orden de segmentos de entropía 16 que corresponde a la porción 12 de la matriz de muestras 10. Después de haber codificado una subparte 12a de la porción 12, el codificador forma un fragmento 390 a partir de la misma, es decir el núcleo de codificación por entropía 80 realiza cierto procedimiento de finalización para terminar el flujo de bits aritmético producido a partir de la subporción 12a en la medida en que se trate de codificación aritmética para formar el fragmento 390. El procedimiento de codificación se reanuda entonces con respecto a la subporción 12b siguiente del segmento de entropía 12 en el orden de codificación 14 mientras se inicia un nuevo flujo de bits de entropía. Esto significa, por ejemplo, que los estados internos, tales como valor de anchura de intervalo de probabilidad y valor de desplazamiento de intervalo de probabilidad del núcleo de codificación por entropía 80, se restablecen. Las estimaciones de probabilidad, no obstante, no se restablecen. Se dejan sin cambios. Esto se ilustra en la figura 20 mediante una flecha 392. En la figura 20, se muestra a modo de ejemplo que el segmento de entropía o porción 12 se subdivide en más de dos subporciones, y por consiguiente incluso el segundo fragmento 1b está sujeto a cierta entropía que termina antes de alcanzar el final de la porción 12 a lo largo del orden de codificación 14, después de lo cual se inicia un fragmento siguiente en línea, etc.
Al mismo tiempo, otro hilo opera en el segundo segmento de entropía o porción 12 en el orden de segmentos de entropía 16. Al terminar una primera subporción de este segundo segmento de entropía/porción 12, se emite un fragmento 2a, después de lo cual comienza la codificación por entropía del resto del segundo segmento de entropía mientras se mantiene, sin embargo, la estimación de probabilidad como válida al final del fragmento 2a.
Con un eje de tiempo 394, la figura 20 busca ilustrar que los fragmentos 390 se emiten tan pronto como se han finalizado. Esto lleva a un entrelazado similar al representado en la figura 16. Cada fragmento se puede empaquetar en un paquete y transportar al lado de decodificación mediante alguna capa de transporte en cualquier orden. La capa de transporte se ilustra mediante la flecha 396.
El decodificador tiene que reasignar los fragmentos a sus subporciones 12a, 12b, y así sucesivamente. Para este fin, cada fragmento 390 puede tener una sección de cabecera 398 que revela la ubicación del comienzo de su subporción asociada 12a o 12b, es decir la subporción cuyos elementos sintácticos que la describen están codificados por entropía en el respectivo fragmento. Mediante el uso de esta información, el decodificador puede asociar cada fragmento 390 con su segmento de entropía y con su subporción dentro de la porción 12 de ese segmento de entropía.
Con fines ilustrativos, la figura 20 también muestra a modo de ejemplo la posibilidad de que la unión entre subporciones consecutivas 12a y 12b de un segmento de entropía 12 no tenga que coincidir con la frontera entre unidades de codificación 50 consecutivas. En vez de eso la unión se puede definir en un nivel más profundo de la subdivisión en múltiples árboles a modo de ejemplo, anteriormente mencionada, de las unidades de codificación. La información de ubicación contenida en las cabeceras 398 puede indicar el comienzo de la subporción asociada con el fragmento 390 actual con precisión suficiente con el fin de identificar el respectivo subbloque de la respectiva unidad de codificación, es decir la ubicación dentro de la secuencia de elementos sintácticos a partir de la cual se describe el subbloque respectivo.
Como quedó claro en la explicación anterior, casi no se produjo pérdida de eficiencia de codificación originada por la subdivisión de los segmentos de entropía en fragmentos. Meramente los procesos de finalización de entropía y el empaquetado pueden implicar cierta pérdida de eficiencia de codificación, pero por otro lado los beneficios por bajo retardo son enormes.
Nuevamente, se debe recordar que el aspecto de fragmentos por subdivisión espacial que acaba de mencionarse también funciona en combinación con los acoplamientos de estimación de probabilidad antes descritos a través de fronteras de segmento de entropía, tanto espacial como temporalmente.
El decodificador, tal como el decodificador de la figura 6, puede deshacer la transmisión de fragmentos como sigue. En particular, el decodificador puede comprobar a qué segmento de entropía pertenece un fragmento actual. Esta comprobación se puede realizar basándose en la información de ubicación antes mencionada. Entonces, se puede comprobar si el fragmento actual corresponde a una primera subporción de la porción del segmento de entropía correspondiente a lo largo de la ruta de codificación por entropía 14. Si es así, el decodificador puede decodificar por entropía el fragmento actual adaptando las respectivas estimaciones de probabilidad y tener en cuenta un estado de las respectivas estimaciones de probabilidad que se manifiestan al final de la decodificación por entropía del fragmento actual cuando se decodifica por entropía otro fragmento que corresponde a una segunda subporción de la porción del segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía. El hecho de “tener en cuenta” puede implicar el establecimiento de las estimaciones de probabilidad al comienzo del fragmento 1b iguales a las estimaciones de probabilidad que se manifiestan, por la adaptación de probabilidad que comienza con el estado de estimación de probabilidad al comienzo del fragmento 1a, al final de la subporción 12a del fragmento 1a, o iguales a una combinación de las mismas con estimaciones de probabilidad entrópicas de otros segmentos de entropía como se describió anteriormente. Por lo que respecta a la inicialización de probabilidad al comienzo del primer fragmento 12a, se hace referencia a la explicación anterior, ya que esto también constituye el comienzo del segmento de entropía correspondiente. Dicho de otra manera, si el segmento actual es un segundo fragmento o posterior en el orden 14, el decodificador puede decodificar por entropía el fragmento actual usando estimaciones de probabilidad que dependen de estimaciones de probabilidad que se manifiestan al final de la decodificación por entropía de un fragmento que corresponde a una subporción de la porción del segmento de entropía predeterminado que precede a la subporción correspondiente al fragmento actual, a lo largo de la ruta de codificación por entropía 14.
La descripción anterior revela diferentes métodos, que pueden ser útiles para la codificación y decodificación en paralelo así como útiles para optimizar procesos ya existentes en el estándar de codificaron de vídeo HEVC emergente. Se ha presentado una breve descripción general de los segmentos de entropía. Se ha mostrado cómo pueden formarse, qué ventajas se pueden lograr mediante la segmentación y qué penalizaciones pueden producirse a partir de esas técnicas. Se han propuesto diferentes métodos, que se supone que mejoran el proceso de aprendizaje de probabilidades a lo largo de LCU (unidad de codificación más grande) en el cuadro, al aprovechar de mejor manera las dependencias locales entre LCU, y también las dependencias temporales entre LCU de cuadros diferentes. Se afirma que diferentes combinaciones pueden brindar mejoras para ambos conceptos con y sin paralelización de la codificación y decodificación.
La mejora del rendimiento en cuanto a alta eficiencia, por ejemplo, mediante la mejor combinación de enfoques propuestos, es de -0,4 % en Intra, -0,78 % en Bajo retardo y -0,63 % en acceso aleatorio en comparación con HM3.0 sin uso de segmentos de entropía o -0,7 % en Intra, -1,95 % en bajo retardo y -1,5 % en acceso aleatorio en comparación con el enfoque de segmentos de entropía con reinicialización habitual.
En particular, entre otras, se han presentado anteriormente las técnicas siguientes.
• para usar no solo dependencias locales, sino también temporales de LCU, para optimizar la adaptación de las probabilidades de CABAC antes de codificar cada LCU, véanse las figuras 1 a 9, 17 y 18.
• para lograr más flexibilidad en la decodificación, también se pueden usar segmentos de entropía, para que ciertas regiones en el cuadro se vuelvan independientes entre sí.
• Para permitir una señalizaron mínima de las posiciones de partida de segmento / segmentos de entropía para procesamiento en paralelo, por ejemplo, de frente de onda, véase la figura 15
• Para permitir un transporte de bajo retardo en un entorno de codificador - transmisor - receptor -decodificador paralelizado a través de transporte entrelazado de segmentos de entropía / segmentos, véase la figura 16.
Todos los métodos que se mencionaron anteriormente se han integrado y probado en HM3.0. Los resultados obtenidos, donde el punto de referencia es HM3.0 sin ninguna implementación de segmentos de entropía, se presentan en las tablas 1 y 2 (donde 2LCU- uso de la segunda LCU de la línea superior; 2LCU+ Adap. de prob. -2LCU fusionado con el método de adaptación de probabilidades; Temporal- uso de dependencias temporales (estado final de un cuadro de referencia) con la adaptación de probabilidades para cada LCU).
Tabla 1. Resumen de resultados RD con 1 hilo
Figure imgf000023_0002
Tabla 2. Resumen de resultados RD con 4 hilos
Figure imgf000023_0003
No obstante, es interesante saber cómo los enfoques propuestos afectan al procesamiento de frente de onda con la reinicialización de probabilidades al comienzo de cada línea de LCU. Estos resultados se ilustran en las tablas 3 y 4 (donde orig_neilnit es comparación HM3.0 sin uso de segmentos de entropía con uso de segmentos de entropía con reinicialización).
Tabla 3. Resumen de resultados RD con 1 hilo. Referencia es nueva inicialización.
Figure imgf000023_0001
Figure imgf000024_0001
Tabla 4. Resumen de resultados RD con 4 hilos. Referencia es nueva inicialización.
Figure imgf000024_0002
Los resultados anteriores muestran que un considerable mayor uso de dependencias dentro de y entre cuadros y la aplicación racional de información ya obtenida evitan la pérdida promedio.
Un enfoque para el procesamiento de frente de onda para codificación y decodificación de vídeo HEVC fusiona la posibilidad de usar dependencias entre LCU adyacentes así como dependencias de cuadro temporales con el concepto de procesamiento en paralelo de frente de onda. De esta forma, la pérdida puede reducirse y se puede lograr un avance en el rendimiento.
Se ha logrado un aumento de la velocidad de adaptación de probabilidad mediante el cálculo de las adaptaciones de probabilidad de segmentos de entropía espacialmente adyacentes.
Como ya se mencionó anteriormente, todos los aspectos anteriores pueden combinarse entre sí, y, de esta manera, la mención de ciertas posibilidades de implementación con respecto a un determinado aspecto también se aplicará, por supuesto, a los otros aspectos.
Aunque algunos aspectos se han descrito en el contexto de un aparato, está claro que estos aspectos también representan una descripción del método correspondiente, donde un bloque o dispositivo corresponde a un paso metodológico o a una característica de un paso metodológico. De forma análoga, los aspectos descritos en el contexto de un paso metodológico también representan la descripción de un bloque o elemento o característica correspondiente de un aparto correspondiente. Algunos o todos los pasos metodológicos se pueden ejecutar por (o usando) un aparato de hardware, como por ejemplo, un microprocesador, un ordenador programable o un circuito electrónico. En algunas realizaciones, alguno o varios de los pasos metodológicos más importantes pueden ser ejecutados por tal aparato.
Las señales codificadas de la invención, anteriormente mocionadas, se pueden almacenar en un medio de almacenamiento digital o se pueden transmitir en un medio de transmisión tal como un medio de trasmisión inalámbrica o medio de transmisión por cable tal como Internet.
Dependiendo de ciertos requisitos de implementación, las realizaciones de la invención se pueden implementar en hardware o en software. La implementación puede realizarse usando un medio de almacenamiento digital, por ejemplo un diskette, DVD, Blu-Ray, CD, una memoria ROM, PROM, EPROM, EEPROM o FLASH, con señales de control legibles electrónicamente almacenadas en los mismos, que cooperan (o son capaces de cooperar) con un sistema informático programable de modo que se lleve a cabo el método respectivo. Por consiguiente, el medio de almacenamiento digital puede ser legible por ordenador.
Algunas realizaciones de acuerdo con la invención comprenden un soporte de datos con señales de control legibles electrónicamente, que son capaces de cooperar con un sistema informático programable, de modo que se lleve a cabo uno de los métodos aquí descritos.
En general, las realizaciones de la presente invención se pueden implementar como un producto de programa informático con un código de programa, siendo el código de programa operativo para llevar a cabo uno de los métodos cuando el producto de programa informático se ejecuta en un ordenador. El código de programa puede, por ejemplo, almacenarse en un soporte legible por máquina.
Otras realizaciones comprenden el programa informático para llevar a cabo uno de los métodos aquí descritos, almacenado en un soporte legible por máquina.
Dicho de otra manera, una realización del método de la invención es, por consiguiente, un programa informático con un código de programa para llevar a cabo uno de los métodos aquí descritos, cuando el programa informático se ejecuta en un ordenador.
Otra realización de los métodos de la invención es, por consiguiente, un soporte de datos (o un medio de almacenamiento digital, o un medio legible por ordenador) que comprende, grabado en el mismo, el programa informático para llevar a cabo uno de los métodos aquí descritos. El soporte de datos, el medio de almacenamiento digital o el medio grabado son típicamente tangibles y/o no transitorios.
Otra realización del método de la invención es, por consiguiente, un flujo de datos o una secuencia de señales que representan el programa informático para llevar a cabo uno de los métodos aquí descritos. El flujo de datos o la secuencia de señales puede por ejemplo configurarse para que se transfiera mediante una conexión de comunicación de datos, por ejemplo por Internet.
Otra realización comprende un medio de procesamiento, por ejemplo un ordenador, o un dispositivo lógico programable, configurado o adaptado para llevar a cabo uno de los métodos aquí descritos.
Otra realización comprende un ordenador que tiene instalado en el mismo el programa informático para llevar a cabo uno de los métodos aquí descritos.
Otra realización de acuerdo con la invención comprende un aparato o un sistema configurado para transferir (por ejemplo, electrónica u óptimamente) un programa informático para llevar a cabo uno de los métodos aquí descritos a un receptor. El receptor puede, por ejemplo, ser un ordenador, un dispositivo móvil, un dispositivo de memoria o similar. El aparato o sistema puede, por ejemplo, comprender un servidor de archivos para transferir el programa informático al receptor.
En algunas realizaciones, un dispositivo lógico programable (por ejemplo una disposición de compuertas programables en campo) puede usarse para realizar algunas o todas las funcionalidades de los métodos aquí descritos. En algunas realizaciones, una disposición de compuertas programables en campo puede cooperar con un microprocesador para llevar a cabo uno de los métodos aquí descritos. En general, los métodos se realizan preferentemente por cualquier aparato de hardware.
Las realizaciones anteriormente descritas son meramente ilustrativas de los principios de la presente invención. Se entiende que modificaciones y variaciones de las disposiciones y los detalles aquí descritos resultarán evidentes para los expertos en la técnica. Es la intención, por consiguiente, limitarse sólo por el alcance de las reivindicaciones de patente que siguen y no por los detalles específicos presentados a modo de descripción y explicación de las realizaciones en el presente documento.

Claims (10)

  1. REIVINDICACIONES
    Decodificador (40, 200) para reconstruir una matriz de muestras (10) a partir de un flujo de datos codificados por entropía (20, 202), configurado para decodificar por entropía una pluralidad de segmentos de entropía (90) dentro del flujo de datos codificados por entropía (20, 202), para reconstruir así diferentes porciones (12) de la matriz de muestras (10) asociadas con los segmentos de entropía (90), respectivamente, en el que cada segmento de entropía tiene datos codificados por entropía en su interior para una porción correspondiente de la matriz de muestras (10), formando cada una de las diferentes porciones (12) una respectiva fila de bloques (50) de la matriz de muestras (10) estando los bloques regularmente dispuestos en filas y columnas para que las porciones correspondientes a los segmentos de entropía (90) se compongan del mismo número de bloques, en el que los segmentos de entropía (90) se subdividen en fragmentos (310, 390) y en el que la decodificación por entropía de la pluralidad de segmentos de entropía (90) comprende
    realizar, para cada segmento de entropía, la decodificación por entropía a lo largo de una respectiva ruta de codificación por entropía (14) usando respectivas estimaciones de probabilidad (94), en el que la ruta de codificación por entropía (14) apunta en paralelo a lo largo de las filas de los bloques,
    adaptar las respectivas estimaciones de probabilidad (94) a lo largo de la respectiva ruta de codificación por entropía (14) usando una parte previamente decodificada del respectivo segmento de entropía,
    comenzar la decodificación por entropía de la pluralidad de segmentos de entropía (90) secuencialmente usando un orden de segmentos de entropía (16), y
    realizar, al decodificar por entropía un segmento de entropía predeterminado, la decodificación por entropía de una parte actual del segmento de entropía predeterminado basándose en las respectivas estimaciones de probabilidad (94) del segmento de entropía predeterminado adaptadas usando la parte previamente decodificada del segmento de entropía predeterminado,
    almacenando las estimaciones de probabilidad (94) que se manifiestan tras decodificar por entropía el segundo bloque de la porción correspondiente al segmento de entropía predeterminado para la inicialización de la estimación de probabilidad antes de decodificar un primer bloque de la porción correspondiente a un orden de segmento de entropía (16) sucesivo a un segmento de entropía a lo largo de la respectiva ruta de codificación por entropía (14),
    comprobando si un fragmento actual corresponde a una primera subporción (12a, 12b) de la porción correspondiente al segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía (14),
    de ser así, realizar una inicialización de las estimaciones de probabilidad (94) antes de decodificar el primer bloque de la porción correspondiente al fragmento de entropía predeterminado a lo largo de la respectiva ruta de codificación por entropía (14) con estimaciones de probabilidad (94) que se manifiestan tras decodificar por entropía el segundo bloque de la porción correspondiente al segmento de entropía sucesivo en el orden de segmentos de entropía (16) a lo largo de la respectiva ruta de codificación por entropía (14), decodificar por entropía el fragmento actual adaptando las respectivas estimaciones de probabilidad (94) y tener en cuenta que un estado de las respectivas estimaciones de probabilidad (94) que se manifiestan al final de la decodificación por entropía del fragmento actual se deja sin cambios cuando se decodifica por entropía otro fragmento que corresponde a una segunda subporción (12a, 12b) de la porción del segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía (14), y
    en caso contrario, reanudar la decodificación por entropía del segmento de entropía predeterminado en el segmento actual dejando sin cambios un estado de las respectivas estimaciones de probabilidad (94) que se manifiestan al final de la decodificación por entropía de un fragmento que corresponde a una subporción (12a, 12b) de la porción del segmento de entropía predeterminado que precede a la subporción (12a, 12b) correspondiente al fragmento actual, a lo largo de la ruta de codificación por entropía (14).
  2. 2. Decodificador (40, 200) según la reivindicación 1, en el que el decodificador (40, 200) está configurado para dirigir la decodificación por entropía de segmentos de entropía inmediatamente consecutivos (90) en el orden de segmentos de entropía (16) de modo que se impide que una distancia de bloques actualmente decodificados de porciones correspondientes a segmentos de entropía inmediatamente consecutivos (90), medida en bloques a lo largo de las rutas de codificación (14), se vuelva inferior a dos bloques.
  3. 3. Decodificador (40, 200) según la reivindicación 1, en el que el decodificador (40, 200) está configurado para dirigir la decodificación por entropía de segmentos de entropía inmediatamente consecutivos (90) en el orden de segmentos de entropía (16) de modo que una distancia de boques actualmente decodificados de porciones correspondientes a segmentos de entropía inmediatamente consecutivos (90), medida en bloques a lo largo de las rutas de codificación (14), se mantenga en dos bloques.
  4. 4. Decodificador (40, 200) según la reivindicación 1, en el que el decodificador (40, 200) comprende un desentrelazador (314) para desentrelazar los fragmentos (310, 390) y está configurado para iniciar la decodificación por entropía de los segmentos de entropía (90) en paralelo a lo largo de las rutas de decodificación por entropía (14) incluso antes de una recepción de alguno de los segmentos de entropía (90) en su conjunto.
  5. 5. Decodificador (40, 200) según la reivindicación 1, en el que la matriz de muestras (10) es una matriz de muestras actual (10) de una secuencia de matrices de muestras (10) y la decodificación se configura para, en la decodificación por entropía de un primer segmento de entropía (16) en el orden de segmentos de entropía, inicializar las respectivas estimaciones de probabilidad (94) del primer segmento de entropía (16) en el orden de segmentos de entropía usando un estado final de las estimaciones de probabilidad (94) según se usa en la decodificación por entropía de una matriz previa.
  6. 6. Decodificador (40, 200) según la reivindicación 1, en el que el flujo de datos codificados por entropía (20, 202) es un flujo de datos temporalmente con capas (20, 202).
  7. 7. Codificador para codificar una matriz de muestras (10) dando lugar a un flujo de datos codificados por entropía (20, 202), configurado para
    codificar por entropía una pluralidad de segmentos de entropía (90) dando lugar al flujo de datos codificados por entropía (20, 202), estando cada segmento de entropía asociado a una porción diferente de la matriz de muestras (10), respectivamente, de manera que cada segmento de entropía tiene datos codificados por entropía en su interior para una porción correspondiente de la matriz de muestras (10), formando cada una de las diferentes porciones (12) una respectiva fila de bloques (50) de la matriz de muestras (10) estando los bloques dispuestos regularmente en filas y columnas para que las porciones correspondientes a los segmentos de entropía (90) se compongan del mismo número de bloques, en el que los segmentos de entropía (90) se subdividen en fragmentos (310, 390) y en el que la codificación por entropía de la pluralidad de segmentos de entropía (90) comprende
    realizar, para cada segmento de entropía, la codificación por entropía a lo largo de una respectiva ruta de codificación por entropía (14) usando respectivas estimaciones de probabilidad (94), en el que la ruta de codificación por entropía (14) apunta en paralelo a lo largo de las filas de los bloques,
    adaptar las respectivas estimaciones de probabilidad (94) a lo largo de la respectiva ruta de codificación por entropía (14) usando una parte previamente codificada del respectivo segmento de entropía, comenzar la codificación por entropía de la pluralidad de segmentos de entropía (90) secuencialmente usando un orden de segmentos de entropía (16), y
    realizar, al codificar por entropía un segmento de entropía predeterminado, la codificación por entropía de una parte actual del segmento de entropía predeterminado basándose en las respectivas estimaciones de probabilidad (94) del segmento de entropía predeterminado adaptadas usando la parte previamente codificada del segmento de entropía predeterminado,
    almacenando las estimaciones de probabilidad (94) que se manifiestan tras codificar por entropía el segundo bloque de la porción correspondiente al segmento de entropía predeterminado para la inicialización de la estimación de probabilidad antes de codificar un primer bloque de la porción correspondiente a un segmento de entropía sucesivo en el orden de segmentos de entropía (16) a lo largo de la respectiva ruta de codificación por entropía (14),
    comprobando si un fragmento actual corresponde a una primera subporción (12a, 12b) de la porción correspondiente al segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía (14),
    de ser así, realizar una inicialización de las estimaciones de probabilidad (94) antes de codificar el primer bloque de la porción correspondiente al fragmento de entropía predeterminado a lo largo de la respectiva ruta de codificación por entropía (14) con estimaciones de probabilidad (94) que se manifiestan tras codificar por entropía el segundo bloque de la porción correspondiente a un segmento de entropía precedente en el orden de segmentos de entropía (16) a lo largo de la respectiva ruta de codificación por entropía (14), codificar por entropía el fragmento actual adaptando las respectivas estimaciones de probabilidad (94) y teniendo en cuenta que un estado de las respectivas estimaciones de probabilidad (94) que se manifiestan al final de la codificación por entropía del fragmento actual se deja sin cambios cuando se codifica por entropía otro fragmento que corresponde a una segunda subporción (12a, 12b) de la porción del segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía (14), y
    en caso contrario, reanudar la codificación por entropía del segmento de entropía predeterminado en el segmento actual dejando sin cambios un estado de las respectivas estimaciones de probabilidad (94) que se manifiestan al final de una codificación por entropía de un fragmento que corresponde a una subporción (12a, 12b) de la porción del segmento de entropía predeterminado que precede a la subporción (12a, 12b) correspondiente al fragmento actual, a lo largo de la ruta de codificación por entropía (14).
  8. Codificador según la reivindicación 7, en el que el flujo de datos codificados por entropía (20, 202) es un flujo de datos temporalmente con capas (20, 202).
  9. Método para reconstruir una matriz de muestras a partir de un flujo de datos codificados por entropía, que comprende
    decodificar por entropía una pluralidad de segmentos de entropía dentro del flujo de datos codificados por entropía para reconstruir así diferentes porciones de la matriz de muestras asociadas a los segmentos de entropía, respectivamente, en el que cada segmento de entropía tiene datos codificados por entropía en su interior para una porción correspondiente de la matriz de muestras, formando cada una de las diferentes porciones una respectiva fila de bloques de la matriz de muestras estando los bloques regularmente dispuestos en filas y columnas para que las porciones correspondientes a los segmentos de entropía se compongan del mismo número de bloques, en el que los segmentos de entropía se subdividen en fragmentos y en el que la decodificación por entropía de la pluralidad de segmentos de entropía comprende
    realizar, para cada segmento de entropía, la decodificación por entropía a lo largo de una respectiva ruta de codificación por entropía usando respectivas estimaciones de probabilidad, en el que la ruta de codificación por entropía apunta en paralelo a lo largo de las filas de los bloques,
    adaptar las respectivas estimaciones de probabilidad a lo largo de la respectiva ruta de codificación por entropía usando una parte previamente decodificada del respectivo segmento de entropía,
    comenzar la decodificación por entropía de la pluralidad de segmentos de entropía secuencialmente usando un orden de segmentos de entropía, y
    realizar, al decodificar por entropía un segmento de entropía predeterminado, la decodificación por entropía de una parte actual del segmento de entropía predeterminado basándose en las respectivas estimaciones de probabilidad del segmento de entropía predeterminado adaptadas usando la parte previamente decodificada del segmento de entropía predeterminado,
    almacenando las estimaciones de probabilidad que se manifiestan tras decodificar por entropía el segundo bloque de la porción correspondiente al segmento de entropía predeterminado para la inicialización de la estimación de probabilidad antes de decodificar un primer bloque de la porción correspondiente a un segmento de entropía sucesivo en el orden de segmentos de entropía a lo largo de la respectiva ruta de codificación por entropía,
    comprobando si un fragmento actual corresponde a una primera subporción de la porción correspondiente al segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía,
    de ser así, realizar una inicialización de las estimaciones de probabilidad antes de decodificar el primer bloque de la porción correspondiente al fragmento de entropía predeterminado a lo largo de la respectiva ruta de codificación por entropía con estimaciones de probabilidad que se manifiestan después de haber decodificado por entropía el segundo bloque de la porción correspondiente al segmento de entropía precedente en el orden de segmentos de entropía a lo largo de la respectiva ruta de codificación por entropía, decodificar por entropía el fragmento actual adaptando las respectivas estimaciones de probabilidad y teniendo en cuenta que un estado de las respectivas estimaciones de probabilidad que se manifiestan al final de la codificación por entropía del fragmento actual se deja sin cambios cuando se decodifica por entropía otro fragmento que corresponde a una segunda subporción de la porción del segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía, y
    en caso contrario, reanudar la decodificación por entropía del segmento de entropía predeterminado en el segmento de entropía dejando sin cambios un estado de las respectivas estimaciones de probabilidad que se manifiestan al final de una decodificación por entropía de un fragmento que corresponde a una subporción de la porción del segmento de entropía predeterminado que precede a la subporción correspondiente al fragmento actual, a lo largo de la ruta de codificación por entropía.
  10. 10. Método para codificar una matriz de muestras dando lugar a un flujo de datos codificados por entropía, que comprende codificar por entropía una pluralidad de segmentos de entropía dando lugar al flujo de datos codificados por entropía, estando cada segmento de entropía asociado a una porción diferente de la matriz de muestras, respectivamente, de modo que cada segmento de entropía tiene datos codificados por entropía en su interior para una porción correspondiente de la matriz de muestras, formando cada una de las diferentes porciones una respectiva fila de bloques de la matriz de muestras estando los bloques dispuestos regularmente en filas y columnas para que las porciones correspondientes a los segmentos de entropía se compongan del mismo número de bloques, en el que los segmentos de entropía se subdividen en fragmentos y en el que la codificación por entropía de la pluralidad de segmentos de entropía comprende
    realizar, para cada segmento de entropía, la codificación por entropía a lo largo de una respectiva ruta de codificación por entropía usando respectivas estimaciones de probabilidad, en el que la ruta de codificación por entropía apunta en paralelo a lo largo de las filas de los bloques,
    adaptar las respectivas estimaciones de probabilidad a lo largo de la respectiva ruta de codificación por entropía usando una parte previamente codificada del respectivo segmento de entropía,
    comenzar la codificación por entropía de la pluralidad de segmentos de entropía secuencialmente usando un orden de segmentos de entropía, y
    realizar, al codificar por entropía un segmento de entropía predeterminado, la codificación por entropía de una parte actual del segmento de entropía predeterminado basándose en las respectivas estimaciones de probabilidad del segmento de entropía predeterminado adaptadas usando la parte previamente codificada del segmento de entropía predeterminado,
    almacenando las estimaciones de probabilidad que se manifiestan tras codificar por entropía el segundo bloque de la porción correspondiente al segmento de entropía predeterminado para la inicialización de la estimación de probabilidad antes de codificar un primer bloque de la porción correspondiente a un segmento de entropía sucesivo en el orden de segmentos de entropía a lo largo de la respectiva ruta de codificación por entropía,
    comprobando si un fragmento actual corresponde a una primera subporción de la porción correspondiente al segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía,
    de ser así, realizar una inicialización de las estimaciones de probabilidad antes de codificar el primer bloque de la porción correspondiente al fragmento de entropía predeterminado a lo largo de la respectiva ruta de codificación por entropía con estimaciones de probabilidad que se manifiestan tras codificar por entropía el segundo bloque de la porción correspondiente al segmento de entropía precedente en el orden de segmentos de entropía a lo largo de la respectiva ruta de codificación por entropía, decodificar por entropía el fragmento actual adaptando las respectivas estimaciones de probabilidad y teniendo en cuenta que un estado de las respectivas estimaciones de probabilidad que se manifiestan al final de la codificación por entropía del fragmento actual se deja sin cambios cuando se codifica por entropía otro fragmento que corresponde a una segunda subporción de la porción del segmento de entropía predeterminado a lo largo de la ruta de codificación por entropía, y
    en caso contrario, reanudar la codificación por entropía del segmento de entropía predeterminado en el segmento de entropía dejando sin cambios un estado de las respectivas estimaciones de probabilidad que se manifiestan al final de una codificación por entropía de un fragmento que corresponde a una subporción de la porción del segmento de entropía predeterminado que precede a la subporción correspondiente al fragmento actual, a lo largo de la ruta de codificación por entropía.
    Programa informático con un código de programa configurado para llevar a cabo, al ejecutarlo en un ordenador, un método según la reivindicación 9 o 10.
ES18190116T 2011-07-15 2012-07-16 Codificación de matrices de muestras para bajo retardo Active ES2939239T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161508477P 2011-07-15 2011-07-15

Publications (1)

Publication Number Publication Date
ES2939239T3 true ES2939239T3 (es) 2023-04-20

Family

ID=46548436

Family Applications (2)

Application Number Title Priority Date Filing Date
ES12737777.8T Active ES2694848T3 (es) 2011-07-15 2012-07-16 Codificación de matrices de muestras para bajo retardo
ES18190116T Active ES2939239T3 (es) 2011-07-15 2012-07-16 Codificación de matrices de muestras para bajo retardo

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES12737777.8T Active ES2694848T3 (es) 2011-07-15 2012-07-16 Codificación de matrices de muestras para bajo retardo

Country Status (32)

Country Link
US (13) US9596469B2 (es)
EP (3) EP4152749B1 (es)
JP (6) JP6177775B2 (es)
KR (9) KR102039049B1 (es)
CN (5) CN103797793B (es)
AP (2) AP2016009466A0 (es)
AU (7) AU2012285851B2 (es)
BR (1) BR112014001026B1 (es)
CA (1) CA2841888C (es)
CL (1) CL2014000116A1 (es)
CO (1) CO6880051A2 (es)
DK (2) DK2732625T3 (es)
ES (2) ES2694848T3 (es)
FI (2) FI3425805T3 (es)
HK (4) HK1254387A1 (es)
HR (1) HRP20230228T1 (es)
HU (2) HUE039959T2 (es)
IL (10) IL310690A (es)
LT (1) LT3425805T (es)
MA (1) MA35416B1 (es)
MX (3) MX2014000542A (es)
MY (2) MY168583A (es)
PH (5) PH12018500195A1 (es)
PL (2) PL2732625T3 (es)
PT (2) PT3425805T (es)
RS (1) RS64037B1 (es)
RU (5) RU2643647C1 (es)
SI (1) SI3425805T1 (es)
TN (1) TN2014000015A1 (es)
UA (3) UA124568C2 (es)
WO (1) WO2013010997A1 (es)
ZA (1) ZA201401075B (es)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957914B (zh) * 2008-05-23 2016-01-06 松下知识产权经营株式会社 图像解码装置、图像解码方法、图像编码装置、以及图像编码方法
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
LT3425805T (lt) 2011-07-15 2023-03-27 Ge Video Compression, Llc Ėminių masyvo mažos delsos kodavimas
WO2013109114A1 (ko) * 2012-01-19 2013-07-25 삼성전자 주식회사 서브영역별로 엔트로피 부호화의 병렬 처리가 가능한 비디오 부호화 방법 및 장치, 서브영역별로 엔트로피 복호화의 병렬 처리가 가능한 비디오 복호화 방법 및 장치
KR101718488B1 (ko) 2012-01-20 2017-03-21 지이 비디오 컴프레션, 엘엘씨 병렬 처리, 전송 디멀티플렉서 및 비디오 비트스트림을 허용하는 코딩 개념
US9805310B2 (en) * 2012-03-04 2017-10-31 Adam Jeffries Utilizing spatial statistical models to reduce data redundancy and entropy
GB2513111A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US20140362098A1 (en) * 2013-06-10 2014-12-11 Sharp Laboratories Of America, Inc. Display stream compression
US9628792B2 (en) 2013-07-15 2017-04-18 Qualcomm Incorporated Cross-layer parallel processing and offset delay parameters for video coding
EP3084968A4 (en) * 2013-12-16 2017-11-29 McAfee, LLC Process efficient preprocessing for an encryption standard
US10123028B2 (en) * 2014-09-17 2018-11-06 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
CN105206302B (zh) * 2015-09-14 2019-05-31 联想(北京)有限公司 一种信息处理方法及电子设备
CN105939479B (zh) * 2016-06-15 2019-06-21 北京奇艺世纪科技有限公司 一种并行编码方法和装置
US10218979B2 (en) * 2016-11-01 2019-02-26 Cisco Technology, Inc. Entropy coding state segmentation and retention
EP3358754A1 (en) * 2017-02-02 2018-08-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Antenna array codebook with beamforming coefficients adapted to an arbitrary antenna response of the antenna array
US10554977B2 (en) * 2017-02-10 2020-02-04 Intel Corporation Method and system of high throughput arithmetic entropy coding for video coding
CN110546956B (zh) * 2017-06-30 2021-12-28 华为技术有限公司 一种帧间预测的方法及装置
CN109558888A (zh) * 2017-09-27 2019-04-02 武汉嫦娥信息科技有限公司 一种高光谱遥感图像分类的并行化加速算法
US10664477B2 (en) * 2017-12-21 2020-05-26 Futurewei Technologies, Inc. Cardinality estimation in databases
KR20230119739A (ko) * 2018-03-29 2023-08-16 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 병렬 코딩 기능들 향상을 위한 컨셉
WO2019196956A1 (zh) * 2018-04-13 2019-10-17 浙江大学 一种信息保持编解码方法与装置
EP3588800A1 (en) 2018-06-29 2020-01-01 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Antenna array codebook with beamforming coefficients adapted to an arbitrary antenna response of the antenna array
JP6982253B2 (ja) * 2018-10-31 2021-12-17 日本電信電話株式会社 復号装置、符号化装置、復号方法、符号化方法、及びプログラム
US11538221B2 (en) * 2020-05-21 2022-12-27 Samsung Electronics Co., Ltd. Re-reference aware tile walk order for primitive binner
CN117242775A (zh) * 2021-04-26 2023-12-15 华为技术有限公司 并行熵译码
CN117472591B (zh) * 2023-12-27 2024-03-22 北京壁仞科技开发有限公司 用于数据计算的方法、电子设备和存储介质

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9108199D0 (en) 1991-04-17 1991-06-05 Rhone Poulenc Agriculture New compositions of matter
RU2093957C1 (ru) * 1994-09-20 1997-10-20 Научно-производственное предприятие "Информационные технологии" Устройство для сжатия данных (варианты)
US6104752A (en) * 1996-10-01 2000-08-15 Victor Company Of Japan, Ltd. Apparatus and method of decoding high efficiency coded picture data with picture size resizing
US6832005B2 (en) 2001-03-23 2004-12-14 Microsoft Corporation Adaptive encoding and decoding of bi-level images
MXPA04006814A (es) * 2002-01-14 2004-12-06 Nokia Corp Filtros dinamicos de codificacion.
US8401084B2 (en) 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
US20040258162A1 (en) 2003-06-20 2004-12-23 Stephen Gordon Systems and methods for encoding and decoding video data in parallel
US7693339B2 (en) * 2003-12-17 2010-04-06 Andreas Wittenstein Method and apparatus for faster-than-real-time lossless compression and decompression of images
US7450770B2 (en) * 2003-12-19 2008-11-11 National Taiwan University Architecture and method for parallel embedded block coding
US20070014367A1 (en) * 2005-07-13 2007-01-18 Yaxiong Zhou Extensible architecture for multi-standard variable length decoding
US8401082B2 (en) * 2006-03-27 2013-03-19 Qualcomm Incorporated Methods and systems for refinement coefficient coding in video compression
US8306125B2 (en) * 2006-06-21 2012-11-06 Digital Video Systems, Inc. 2-bin parallel decoder for advanced video processing
JP4660433B2 (ja) * 2006-06-29 2011-03-30 株式会社東芝 符号化回路、復号回路、エンコーダ回路、デコーダ回路、cabac処理方法
US8275045B2 (en) * 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
US8000388B2 (en) 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
US7365659B1 (en) 2006-12-06 2008-04-29 Silicon Image Gmbh Method of context adaptive binary arithmetic coding and coding apparatus using the same
JP5150129B2 (ja) 2007-04-20 2013-02-20 株式会社ミマキエンジニアリング プリンター装置
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
CN101389021B (zh) 2007-09-14 2010-12-22 华为技术有限公司 视频编解码方法及装置
BRPI0818444A2 (pt) 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US9008171B2 (en) * 2008-01-08 2015-04-14 Qualcomm Incorporated Two pass quantization for CABAC coders
US8542748B2 (en) * 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
JP4314315B1 (ja) * 2008-03-31 2009-08-12 株式会社東芝 情報処理装置および復号制御方法
FR2931280B1 (fr) 2008-05-19 2011-01-07 Envivio France Procede et dispositif de codage ou decodage d'image avec parallelisatioon du traitement sur plusieurs processeurs et coprocesseurs, programme d'ordinateur et moyen de stockage correspondants.
EP2146343A1 (en) * 2008-07-16 2010-01-20 Deutsche Thomson OHG Method and apparatus for synchronizing highly compressed enhancement layer data
US8275209B2 (en) * 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
CN101836454B (zh) 2008-12-03 2012-08-22 联发科技股份有限公司 对有序熵切片执行平行cabac码处理的方法及装置
US9467699B2 (en) 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
WO2011004577A1 (ja) 2009-07-06 2011-01-13 パナソニック株式会社 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法、プログラムおよび集積回路
WO2011042645A1 (fr) * 2009-10-05 2011-04-14 France Telecom Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants
JP5389187B2 (ja) 2009-10-29 2014-01-15 パナソニック株式会社 画像符号化方法および画像符号化装置
CN102098503B (zh) * 2009-12-14 2012-11-28 中兴通讯股份有限公司 一种多核处理器并行解码图像的方法和装置
US20110280314A1 (en) * 2010-05-12 2011-11-17 Texas Instruments Incorporated Slice encoding and decoding processors, circuits, devices, systems and processes
CN101888554B (zh) * 2010-07-09 2013-05-22 西安交通大学 并行流水运动补偿滤波器vlsi结构设计方法
US8344917B2 (en) * 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
CN107529708B (zh) 2011-06-16 2019-05-07 Ge视频压缩有限责任公司 解码器、编码器、解码和编码视频的方法及存储介质
US20130003823A1 (en) * 2011-07-01 2013-01-03 Kiran Misra System for initializing an arithmetic coder
LT3425805T (lt) * 2011-07-15 2023-03-27 Ge Video Compression, Llc Ėminių masyvo mažos delsos kodavimas

Also Published As

Publication number Publication date
IL291443A (en) 2022-05-01
IL258274B (en) 2019-03-31
AU2022202573A1 (en) 2022-05-12
US9729891B2 (en) 2017-08-08
CN107959854A (zh) 2018-04-24
ZA201401075B (en) 2015-02-25
KR102385848B1 (ko) 2022-04-14
PH12018500196A1 (en) 2018-09-24
RU2666628C1 (ru) 2018-09-11
IL282796B (en) 2022-04-01
LT3425805T (lt) 2023-03-27
KR20170047405A (ko) 2017-05-04
EP2732625B1 (en) 2018-09-05
HUE061192T2 (hu) 2023-05-28
JP2023017786A (ja) 2023-02-07
BR112014001026B1 (pt) 2022-05-03
US10924754B2 (en) 2021-02-16
HK1254885A1 (zh) 2019-07-26
MA35416B1 (fr) 2014-09-01
US10659798B2 (en) 2020-05-19
DK2732625T3 (en) 2018-12-17
HRP20230228T1 (hr) 2023-04-14
US20140105293A1 (en) 2014-04-17
CA2841888A1 (en) 2013-01-24
SI3425805T1 (sl) 2023-04-28
US9596469B2 (en) 2017-03-14
PH12018502511A1 (en) 2020-03-16
EP3425805B1 (en) 2022-12-07
EP4152749B1 (en) 2024-04-10
IL299633B1 (en) 2024-03-01
AU2012285851B2 (en) 2015-11-12
MY168583A (en) 2018-11-14
WO2013010997A1 (en) 2013-01-24
HUE039959T2 (hu) 2019-02-28
US20180084267A1 (en) 2018-03-22
JP2016187194A (ja) 2016-10-27
KR101882979B1 (ko) 2018-08-24
RU2019107150A3 (es) 2021-10-22
AP2014007416A0 (en) 2014-02-28
JP2014525187A (ja) 2014-09-25
EP3425805A1 (en) 2019-01-09
US20170302945A1 (en) 2017-10-19
JP2018152896A (ja) 2018-09-27
AP3992A (en) 2017-01-08
HK1254387A1 (zh) 2019-07-19
US10652564B2 (en) 2020-05-12
CN103797793A (zh) 2014-05-14
US10771800B2 (en) 2020-09-08
KR20160049028A (ko) 2016-05-04
JP2022033819A (ja) 2022-03-02
CA2841888C (en) 2017-01-03
US11949897B2 (en) 2024-04-02
KR20220047686A (ko) 2022-04-18
US20180367810A1 (en) 2018-12-20
TN2014000015A1 (en) 2015-07-01
PL3425805T3 (pl) 2023-05-08
UA114670C2 (uk) 2017-07-10
PH12018500196B1 (en) 2018-09-24
US9866857B2 (en) 2018-01-09
RS64037B1 (sr) 2023-04-28
DK3425805T3 (da) 2023-03-06
US20200280731A1 (en) 2020-09-03
MX2020003540A (es) 2022-03-25
RU2763532C2 (ru) 2021-12-30
US20200021830A1 (en) 2020-01-16
IL265152B (en) 2019-11-28
IL291443B2 (en) 2023-06-01
AU2020280994B2 (en) 2022-03-03
FI3425805T3 (fi) 2023-03-22
AU2017208363A1 (en) 2017-08-17
CN107995491B (zh) 2021-12-28
PH12018500195B1 (en) 2018-09-24
AU2016200182A1 (en) 2016-02-04
KR102444757B1 (ko) 2022-09-19
UA111362C2 (uk) 2016-04-25
IL276219A (en) 2020-09-30
AU2016200182B2 (en) 2017-05-04
ES2694848T3 (es) 2018-12-27
JP7164692B2 (ja) 2022-11-01
US9860544B2 (en) 2018-01-02
HK1254424A1 (zh) 2019-07-19
BR112014001026A2 (pt) 2017-02-14
JP6985436B2 (ja) 2021-12-22
US20210211701A1 (en) 2021-07-08
CN107959854B (zh) 2021-07-23
IL282796A (en) 2021-06-30
PL2732625T3 (pl) 2019-02-28
US20170302944A1 (en) 2017-10-19
IL310690A (en) 2024-04-01
MX2022003601A (es) 2022-06-17
IL230399A (en) 2017-07-31
RU2019107150A (ru) 2020-09-14
IL299633A (en) 2023-03-01
AU2019275583B2 (en) 2020-09-03
JP6177775B2 (ja) 2017-08-09
IL253274B (en) 2018-04-30
FI4152749T3 (fi) 2024-07-03
AU2023258453A1 (en) 2023-11-23
IL299633B2 (en) 2024-07-01
JP2020092437A (ja) 2020-06-11
US9860547B2 (en) 2018-01-02
KR101730586B1 (ko) 2017-04-26
CN108111854A (zh) 2018-06-01
AU2017208363B2 (en) 2019-09-12
US20170134741A1 (en) 2017-05-11
KR20180086525A (ko) 2018-07-31
CO6880051A2 (es) 2014-02-28
PH12018500198A1 (en) 2018-09-24
EP4152749A1 (en) 2023-03-22
CL2014000116A1 (es) 2014-08-01
EP2732625A1 (en) 2014-05-21
JP6659767B2 (ja) 2020-03-04
KR20200024959A (ko) 2020-03-09
US10085035B2 (en) 2018-09-25
IL253274A0 (en) 2017-08-31
RU2014105554A (ru) 2015-08-27
KR20190124341A (ko) 2019-11-04
AU2012285851A1 (en) 2014-02-06
PH12018500197B1 (en) 2018-09-24
AP2016009466A0 (es) 2016-09-30
CN107995491A (zh) 2018-05-04
US20200366919A1 (en) 2020-11-19
IL270426B (en) 2020-08-31
KR102039049B1 (ko) 2019-11-15
US11595675B2 (en) 2023-02-28
AU2020280994A1 (en) 2021-01-07
MY191000A (en) 2022-05-27
KR20140042893A (ko) 2014-04-07
AU2022202573B2 (en) 2023-08-10
IL276219B (en) 2021-05-31
PT3425805T (pt) 2023-03-13
US20200236378A1 (en) 2020-07-23
KR20200136515A (ko) 2020-12-07
UA124568C2 (uk) 2021-10-13
CN107948645B (zh) 2021-12-24
PH12018500198B1 (en) 2018-09-24
AU2019275583A1 (en) 2020-01-02
CN107948645A (zh) 2018-04-20
RU2610668C2 (ru) 2017-02-14
IL258274A (en) 2018-05-31
MX2014000542A (es) 2014-07-14
PH12018500195A1 (en) 2018-09-24
HK1255113A1 (zh) 2019-08-02
US20170302943A1 (en) 2017-10-19
CN108111854B (zh) 2021-04-02
PT2732625T (pt) 2018-12-17
KR20220129114A (ko) 2022-09-22
KR101721487B1 (ko) 2017-03-30
KR102085171B1 (ko) 2020-03-06
US20230179786A1 (en) 2023-06-08
KR102187171B1 (ko) 2020-12-04
RU2643647C1 (ru) 2018-02-02
CN103797793B (zh) 2018-01-09
KR101882979B9 (ko) 2021-10-27
US11019352B2 (en) 2021-05-25
PH12018500197A1 (en) 2018-09-24
RU2682922C1 (ru) 2019-03-22
IL265152A (en) 2019-05-30

Similar Documents

Publication Publication Date Title
ES2939239T3 (es) Codificación de matrices de muestras para bajo retardo