ES2886119T3 - Concepto de codificación que permite procesamiento paralelo, desmultiplexor de transporte y flujo de bits de vídeo - Google Patents

Concepto de codificación que permite procesamiento paralelo, desmultiplexor de transporte y flujo de bits de vídeo Download PDF

Info

Publication number
ES2886119T3
ES2886119T3 ES13700753T ES13700753T ES2886119T3 ES 2886119 T3 ES2886119 T3 ES 2886119T3 ES 13700753 T ES13700753 T ES 13700753T ES 13700753 T ES13700753 T ES 13700753T ES 2886119 T3 ES2886119 T3 ES 2886119T3
Authority
ES
Spain
Prior art keywords
wpp
frames
image
packets
streams
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
ES13700753T
Other languages
English (en)
Inventor
Thomas Schierl
Valeri George
Karsten Grüneberg
Heiner Kirchhoffer
Anastasia Henkel
Detlev Marpe
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
Application filed by GE Video Compression LLC filed Critical GE Video Compression LLC
Application granted granted Critical
Publication of ES2886119T3 publication Critical patent/ES2886119T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Color Television Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

Descodificador de HEVC (Codificación de Vídeo de Alta Eficiencia) configurado para recibir una carga útil de secuencia de bytes sin procesar que describe una imagen en subflujos de WPP (Procesamiento Paralelo de Frente de Onda) con un subflujo de WPP por fila de LCU (Unidad de Codificación Más Grande) de la imagen y codificada usando CABAC (Codificación Aritmética Binaria Adaptativa al Contexto) desde un codificador en tramos en los que se segmentan los subflujos de WPP, teniendo de ese modo límites de tramo introducidos en los mismos; descodificar por entropía los tramos con una continuación de la adaptación de probabilidad de CABAC a través de los límites de tramo introducidos dentro de los subflujos de WPP; y descodificar la carga útil de secuencia de bytes sin procesar para obtener la imagen, en donde el descodificador de HEVC está configurado para, al recibir los tramos, desintercalar los tramos identificando, para cada tramo, a qué subflujo de WPP pertenece el tramo respectivo, en donde los tramos se paquetizan en paquetes de una forma tal que cada paquete comprende un tramo de cada subflujo de WPP de la imagen, o un subconjunto de los subflujos de WPP de la imagen, dispuestos en un orden definido entre los subflujos de WPP, comprendiendo cada paquete un encabezado que comprende información que revela las posiciones y/o las longitudes de los tramos empaquetados dentro del paquete respectivo, o unos marcadores que separan los tramos dentro del paquete respectivo entre sí, en donde el descodificador de HEVC está configurado para, al recibir la carga útil de secuencia de bytes sin procesar, usar la información comprendida por los encabezados o los marcadores con el fin de acceder a los tramos dentro de los paquetes, y en donde los paquetes que comprenden primeros tramos - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de característica de retardo bajo, y los paquetes que comprenden segundos tramos o tramos posteriores - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de continuación.

Description

DESCRIPCIÓN
Concepto de codificación que permite procesamiento paralelo, desmultiplexor de transporte y flujo de bits de vídeo
La presente invención se refiere a conceptos de codificación que permiten un procesamiento paralelo, tal como en la HEVC en evolución, a un desmultiplexor de transporte y a un flujo de bits de vídeo.
La paralelización del codificador y descodificador es muy importante debido a los requisitos de procesamiento aumentados por la norma de HEVC, así como por el aumento esperado de la resolución de vídeo. Las arquitecturas de múltiples núcleos se están volviendo disponibles en una amplia gama de dispositivos electrónicos modernos. En consecuencia, se requieren métodos eficientes para posibilitar el uso de arquitecturas de múltiples núcleos.
La codificación o descodificación de las LCU tiene lugar en una exploración por filas, mediante la cual las probabilidades de CABAC se adaptan a las especificidades de cada imagen. Existen dependencias espaciales entre LCU adyacentes. Cada LCU depende de sus LCU vecinas izquierda, superior, superior izquierda y superior derecha, debido a diferentes componentes, por ejemplo, el vector de movimiento, la predicción, la intra-predicción y otros. Con el fin de posibilitar la paralelización en la descodificación, habitualmente estas dependencias necesitan ser interrumpidas o se interrumpen en las aplicaciones del estado de la técnica.
Se han propuesto algunos conceptos de paralelización, en concreto, procesamiento de frente de onda usando sectores de entropía [3], operaciones de procesamiento paralelo de frente de onda (WPP) usando subflujos [2] [4], [11], o losas [5]. No necesariamente se necesita que este último se combine con un procesamiento de frente de onda para permitir una paralelización en un descodificador o codificador. Desde este punto de vista, las losas son similares a los subflujos de WPP. Nuestro motivador inicial para el estudio adicional del concepto de sector de entropía es realizar técnicas que bajen la pérdida de eficiencia de codificación y, por lo tanto, reduzcan la carga sobre el flujo de bits para los enfoques de paralelización en el codificador y el descodificador.
Con el fin de proporcionar un mejor entendimiento, en particular del uso de las LCU, en primer lugar se puede echar un vistazo a la estructura de H.264/AVC [1].
Una secuencia de vídeo codificada en H.264/AVC consiste en una serie de unidades de acceso que se recopilan en el flujo de unidades de NAL, y las mismas usan solo un conjunto de parámetros de secuencia. Cada secuencia de vídeo se puede descodificar de forma independiente. Una secuencia codificada consiste en una secuencia de imágenes codificadas. Una trama codificada puede ser una trama completa o un campo individual. Cada imagen se subdivide en macrobloques de tamaño fijo (en HEVC [5]: LCU). Varios macrobloques o LCU se pueden fusionar entre sí para dar un sector. Una imagen es, por lo tanto, una colección de uno o más sectores. La meta de esta separación de datos es permitir una descodificación independiente de las muestras en el área de la imagen, que es representada por el sector, sin el uso de datos desde otros sectores.
Una técnica que a menudo se denomina "sectores de entropía" [3], es una división del sector tradicional en subsectores adicionales. Específicamente, esto significa la sectorización de datos codificados por entropía de un sector individual. La disposición de los sectores de entropía en un sector puede tener diferentes variedades. La más simple es el uso de cada fila de las LCU/macrobloques en una trama como un sector de entropía. Como alternativa, se pueden utilizar columnas o regiones separadas como sectores de entropía, que incluso se pueden interrumpir y alternar entre sí, por ejemplo, el sector 1 en la figura 1.
Un objeto obvio del concepto de sector de entropía es posibilitar el uso de arquitecturas de CPU/GPU paralelas y de múltiples núcleos, con el fin de mejorar el tiempo del proceso de descodificación, es decir, para acelerar el proceso. El sector actual se puede dividir en particiones que se pueden analizar y reconstruir sin referencia a otros datos de sector. Aunque se puede lograr un par de ventajas con el enfoque de sector de entropía, apareciendo de ese modo algunas penalizaciones.
El concepto de sector de entropía se ha ampliado adicionalmente al procesamiento de frente de onda (WPP) de subflujos como se propone en [2], [10], [11] y se integra parcialmente en [5]. En el presente caso se define un esquema de repetición de subflujos. Que sí tienen una inicialización en estado de entropía mejorada por línea, en comparación con los sectores de entropía.
El concepto de losa permite la separación de la información de imagen a codificar, mientras que cada losa tiene su propio orden de exploración por filas. Una losa es definida por una estructura común, que se repete en la trama. Una losa también puede tener un cierto ancho de columna y una cierta altura de línea en términos de las LCU o CU. Las losas también se pueden codificar de forma independiente, y también se pueden codificar de una forma que las mismas no requieren un procesamiento conjunto con otras losas, de tal manera que los subprocesos de descodificador pueden procesar losas de una Unidad de Acceso completamente, o al menos para algunas etapas de operación de codificación, de una forma independiente, es decir, codificación por entropía y codificación de transformada.
Por lo tanto, una losa permite en gran medida ejecutar codificadores así como descodificadores de losa, completa o parcialmente independientes, de una forma paralela hacia arriba, en el último caso, por ejemplo, ascendiendo hasta la etapa de filtrado del códec de HEVC.
Con el fin de hacer un uso completo de las técnicas de paralelización en la cadena de captura, codificación, transmisión, descodificación y presentación de un sistema de comunicación de vídeo, o sistemas similares, el transporte y acceso de los datos entre los participantes de comunicación es una etapa importante y que consume mucho tiempo para la inyección de retardo de extremo a extremo completa. Esto es especialmente un problema si se usan técnicas de paralelización, tales como losas, subflujos o sectores de entropía.
Los enfoques de datos de los subflujos de WPP implican que los datos codificados de las particiones, si se procesan, no tienen localidad de datos, es decir, un subproceso individual que descodifica la Unidad de Acceso, necesita saltar sobre porciones de memoria potencialmente grandes con el fin de acceder a datos de la siguiente línea de subflujo de WPP. Un sistema de descodificación de múltiples subprocesos necesita esperar la transmisión de ciertos datos, es decir, subflujos de WPP, con el fin de trabajar de una forma completamente paralelizada, de tal manera que se aproveche el procesamiento de frente de onda.
En la retransmisión por secuencias de vídeo, la habilitación de resoluciones más altas (Full-HD, QUAD-HD, etc.) conduce a cantidades más altas de datos que se han de transmitir. Para escenarios sensibles con respecto al tiempo, el así denominado caso de uso de Retardo Bajo, tal como videoconferencia (< 145 ms) o aplicaciones de juegos (< 40 ms), se requieren unos retardos de extremo a extremo muy bajos. Por lo tanto, el tiempo de transmisión se vuelve en un factor crítico. Considérese el enlace de subida de ADSL para una aplicación de videoconferencias. En el presente caso, los así denominados puntos de acceso aleatorio de un flujo, habitualmente estos se refieren a tramas I, serán los candidatos para provocar un cuello de botella durante la transmisión.
La HEVC prevé el así denominado procesamiento de frente de onda, así como un procesamiento de losa en el lado de codificador, así como en el de descodificador. Esto es posibilitado por el uso de sectores de entropía, subflujos de WPP o, incluso, una combinación de estos. El procesamiento paralelo también es permitido por la codificación y la descodificación paralelas de losa.
En el caso "determinación como objetivo de no paralelización", los datos de un sector completo se entregarían de una sola vez, por lo tanto, la última CU de los sectores es accesible por el descodificador, de haberse transmitido. Esto no es un problema, si existe un descodificador de subproceso individual.
En el caso de múltiples subprocesos, si se pueden usar múltiples CPU o núcleos, el proceso de descodificación querría, sin embargo, iniciarse tan pronto como lleguen datos codificados a subprocesos de descodificador de frente de onda o de descodificador de losa.
Por lo tanto, sería favorable tener a mano conceptos que posibiliten una reducción del retardo de codificación en entornos de procesamiento paralelo, con unas reducciones menos severas en la eficiencia de codificación. La referencia de la técnica anterior [11] se refiere al procesamiento paralelo de frente de onda para la codificación y descodificación de HEVC. Con el fin de superar la penalización de desempeño que, de otro modo, resultaría de realizar el procesamiento de frente de onda, este documento propone inicializar las probabilidades de CABAC de la primera LCU de cada línea con las probabilidades obtenidas después de la segunda lCu de la línea superior. Por consiguiente, se pueden operar varios subprocesos en paralelo con el fin de descodificar/codificar una imagen en paralelo. El procesamiento de WPP también se describe en la referencia de la técnica anterior [10]. En particular, este último documento propone combinar WPP con un vaciado y reinicialización de las variables de estado internas de CABAC al final de cada línea de las LCU. Por lo tanto, cada línea de las LCU se comprime en un "trozo" de bits que es independiente del nivel deseado de paralelismo. La solicitud de patente WO 2013/010997 A1, publicada el 24 de enero de 2013, es parte de la técnica anterior a tenor del artículo 54 (3) del EPC. Esta divulga una segmentación de sectores de entropía en trozos para una transmisión de retardo bajo y una aceleración de descodificación usando WPP. Los trozos se disponen dentro del flujo de datos codificado de manera intercalada.
En consecuencia, un objeto de la presente invención es proporcionar un concepto de codificación, un concepto de desmultiplexación de transporte y un flujo de bits de vídeo que posibilita tal codificación más eficiente y de retardo bajo en entornos de procesamiento paralelo.
Este objeto se logra mediante la materia objeto de las reivindicaciones independientes adjuntas.
De acuerdo con un primer aspecto de la presente solicitud, una carga útil de secuencia de bytes sin procesar que describe una imagen en sectores, subflujos de WPP o losas y codificada usando una codificación aritmética binaria adaptativa al contexto, se subdivide o se corta en tramos con una continuación de la adaptación de probabilidad de codificación aritmética binaria adaptativa al contexto a través de límites de tramo. Mediante esta medida, límites de tramo introducidos adicionalmente dentro de sectores, subflujos de WPP o losas no conducen a una reducción en la eficiencia de codificación por entropía de estos elementos. Por otro lado, sin embargo, los tramos son más pequeños que los sectores, subflujos de w Pp o losas originales y, en consecuencia, los mismos se pueden transmitir más temprano, es decir, con un retardo más bajo, que las entidades originales no cortadas, es decir, los sectores, subflujos de WPP o losas.
De acuerdo con otro aspecto, que se puede combinar con el primer aspecto, se usan unidades de NAL de marcador de subflujo dentro de una secuencia de unidades de NAL de un flujo de bits de vídeo con el fin de habilitar que un desmultiplexor de transporte asigne datos de sectores dentro de unidades de NAL a los subflujos o losas correspondientes, con el fin de ser capaces, en paralelo, de atender a un descodificador de múltiples subprocesos con los subflujos o losas correspondientes.
Implementaciones ventajosas son el objeto de las reivindicaciones dependientes. Además, realizaciones preferidas de la presente invención se explican con más detalle a continuación con respecto a las figuras, entre las cuales
la figura 1 muestra un diagrama esquemático que ilustra los posibles compuestos de sectores de entropía; la figura 2 muestra un diagrama esquemático que ilustra tres losas diseminadas a lo largo de tres sectores; la figura 3 muestra un diagrama esquemático que ilustra un ejemplo de intercalado de tramos de un esquema de intercalado cíclico de cuatro tramos de longitud variable
la figura 4 muestra un diagrama esquemático que ilustra una codificación, una segmentación, un intercalado y una descodificación de datos de sector de entropía;
la figura 5 muestra un diagrama esquemático que ilustra un ejemplo de intercalado de tramos de un esquema de intercalado cíclico de cuatro tramos de longitud variable usando siempre códigos de marcador y la diseminación de datos de sector reales a lo largo de múltiples unidades de NAL. Los códigos de marcador se usan incluso si la partición no está presente. Esto se puede potenciar adicionalmente usando un identificador de tramos, a continuación del marcador, que indica el número de tramo. Esto deja obsoleta la necesidad de enviar siempre un marcador, como se requiere para el modo cíclico. la figura 6 muestra una tabla de pseudocódigo que ilustra una sintaxis de unidad de NAL
la figura 7 muestra una tabla de pseudocódigo que ilustra una sintaxis de conjunto de parámetros de secuencia la figura 8 muestra una tabla de pseudocódigo que ilustra una sintaxis de RBSP de capa de Sector de Retardo Bajo;
la figura 9 muestra una tabla de pseudocódigo que ilustra una sintaxis de encabezado de sector la figura 10 muestra una tabla de pseudocódigo que ilustra una sintaxis de marcador de Subflujo
la figura 11 muestra un diagrama esquemático que ilustra un ejemplo para un encapsulado Simple de datos de sector de entropía. (AF es el Campo de Adaptación de TS de MPEG-2);
la figura 12 muestra un diagrama esquemático que ilustra otro ejemplo para un encapsulado de ES Individual de datos de sector de entropía;
la figura 13 muestra un diagrama esquemático que ilustra otro ejemplo para un encapsulado de múltiples ES Empaquetado de datos de sector de entropía; la figura 14 muestra un diagrama de bloques esquemático que muestra un desmultiplexor de Transporte para un ES individual; y la figura 15 muestra un diagrama de bloques esquemático que muestra un desmultiplexor de Transporte para múltiples ES.
la figura 16 muestra un diagrama de bloques esquemático que muestra un codificador;
la figura 17 muestra un diagrama de bloques esquemático que muestra un descodificador;
la figura 18 muestra un diagrama de flujo de etapas realizadas por un descodificador; y
la figura 19 muestra un diagrama esquemático que ilustra un ejemplo para múltiples ES usando RTP.
Con el fin de reducir el tiempo en el que un subproceso de descodificador paralelo puede iniciar y finalizar sus datos de una trama, las realizaciones a continuación usan una segmentación de los datos, estructurados para la paralelización, tal como datos de una o más de losas o datos de uno o más subflujos de WPP en tramos pequeños, mediante un enfoque de intercalado de retardo bajo.
Por lo tanto, el codificador puede entregar datos, correspondientes a un conjunto particular de las LCU, o al menos una parte alineada con respecto a bytes de un subflujo o losa, o partes de los mismos, en forma de tramo, al descodificador, a través de la trayectoria de transmisión desde un codificador hasta un descodificador.
Debido a que los tramos son más pequeños que el subflujo de WPP o losa completo, y/o se pueden adaptar a la unidad de transferencia máxima (m Tu ) real de la trayectoria de transmisión, de tal manera que los tramos de múltiples subflujos de WPP o losas se pueden disponer en una unidad de transferencia entre un codificador y un descodificador, antes de la finalización de la unidad de acceso completa, la descodificación en el lado de descodificación se puede iniciar significativamente más temprano que si se usa una transmisión secuencial de los subflujos de WPP o losas completos de una Unidad de Acceso.
Esto obviamente da como resultado una transmisión más rápida de los tramos, y un inicio más temprano de un proceso de descodificación paralelo en el descodificador. El enfoque también se puede aplicar a lo largo de límites de trama, en el caso de, si el sector o sectores de trama o el sector o sectores de entropía siguientes ya se pueden descodificar, por ejemplo, de una manera por frente de onda, basándose en el conocimiento que la información requerida para la descodificación de un sector de entropía de una trama siguiente debido a la disponibilidad de referencias entre tramas. Esos datos ya descodificables de una trama que se suceden en orden de descodificación se pueden obtener de la longitud del vector de movimiento permitido/señalizado máximo, o información adicional en el flujo que indica las dependencias de partes de datos con la trama o tramas anteriores, o un esquema de referencia fijo, que indica la posición usada señalizada en una posición fijada por secuencia, tal como un conjunto de parámetros.
Una imagen se puede codificar con un sector de entropía por fila o filas de unidad de codificación más grande (LCU), o usando subflujo de WPP o, incluso, una combinación como un subflujo de WPP por fila, que se puede contener adicionalmente en un Sector de Entropía separado. Tales estructuras de datos son necesarias para hacer uso de la técnica de procesamiento de frente de onda en el lado de descodificador. O se pueden usar losas para permitir un procesamiento paralelo.
Durante el proceso de codificación, el flujo de bits de cada sector, que contiene datos de flujos de WPP o losas, se puede dividir en tramos de tamaño variable para coincidir con el tamaño de unidad de transferencia máximo, entre el codificador y el descodificador. Entonces, los tramos resultantes se intercalan y se pueden pasar a la transmisión y ponerse en paquetes de un tamaño de MTU.
Con el fin de permitir un procesamiento en el lado de descodificador, antes o después de cada tramo, se puede insertar un código de marcador. Un código de marcador apropiado para HEVC puede ser "0x00 0002", que incluso pasaría la prevención de emulación de código de inicio. Después de la recepción de un paquete que incluye tramos múltiples, el receptor o el descodificador puede analizar el flujo de bits contenido real, durante el proceso de prevención de emulación de código de inicio, con el fin de no requerir una etapa de análisis adicional. Puede haber, por ejemplo, dos modos para la identificación de tramo. Puede existir siempre una disposición cíclica de los tramos, comenzando desde el tramo con id_tramo igual a 1 hasta el tramo con id_tramo igual a n. Esto puede suponer una señalización de datos segura para el segundo método general. Un método alternativo puede ser que un encabezado específico siga al marcador, que indica el id_tramo, por ejemplo, como un valor de 8 bits.
El desintercalado de los datos de tramo intercalado se puede aplicar basándose en el conocimiento del número de tramos por paquete, que puede ser un paquete de unidad de NAL. Por lo tanto, puede existir adicionalmente una correlación de subflujos de WPP o losas con tramos. Esta correlación se puede obtener implícitamente del número de losas/número de subflujos de WPP, o se puede señalizar directamente en el SPS. La correlación es importante para el proceso de desintercalado, de tal manera que los datos de ciertos subflujos de WPP o losas se pueden identificar y servir al subproceso de descodificador de frente de onda o paralelo a cargo de la descodificación del subflujo de WPP o losa en cuestión.
Con el fin de informar al descodificador acerca del uso del esquema de intercalado para el encapsulado de retardo bajo, puede existir un indicador_retardo_bajo en el encabezado de unidad de NAL.
Otro modo puede ser un intercalado y desintercalado en la capa de transporte, es decir, fuera del proceso de descodificación, quizá en la capa de RTP [8] [9] [13] o de Flujo de Transporte de MPEG-2 [7]:
Por lo tanto, se puede poner un encabezado delante del paquete, que indica la presencia de un tramo mediante un indicador que incluye una información de tamaño en bytes por tramo presente. Debido a que la capa de transporte se desacopla del proceso de descodificación, puede no existir necesidad alguna de integración de un código de marcador, debido a que es necesario eliminar, de todas formas, información adicional de la capa de transporte antes de pasar esos datos al descodificador. La capa de transporte también reordena entonces los datos para la entrega de flujo de bits al descodificador.
Se puede usar un encabezado de longitud variable en una capa de multiplexación adicional. Esta capa de multiplexación también puede ser parte del códec (codificador-descodificador) y se puede introducir antes del acceso de Datos de Carga Útil de Secuencia de Bytes Sin Procesar (RBSP) reales en el descodificador. Se puede hallar un esquema de encabezado en la figura 3. Pero también puede existir un encabezado directamente delante de cada tramo, que indica la longitud así como su indicador. En donde sigue existiendo la necesidad de correlacionar el indicador con estructuras de flujo de bits, como ya se ha expuesto anteriormente.
El tamaño de tramo también puede ser de un tamaño constante, por ejemplo, x bytes por tramo. Esto da como resultado un esquema de multiplexación simple, tal como se muestra en la figura 4.
El tamaño constante de los segmentos puede acarrear un problema al final del flujo de bits, debido a su longitud variable.
Hay dos soluciones generales que son posibles. La primera es una generación de segmentos de x bytes cíclicos (habitualmente la representación de flujo de bits de un sector está alineada con respecto a los bytes), y un control del consumo de bytes por cada motor de descodificador, es decir, el descodificador descubre la compleción de un sector de entropía o que incluye un código de marcador.
El segundo método son las longitudes de tramo de señalización, si los tramos son de una longitud variable en un encabezado, como se muestra en la figura.
El tamaño del segmento y el modo de intercalado se pueden señalizar o bien en un Mensaje de SEI o bien en SPS.
El esquema de transmisión se muestra en la figura 4.
Otro método interesante es el uso de códigos de finalización o códigos de marcador al final del conjunto de tramos en el paquete, tal como un paquete de sector o NAL. En este caso, son posibles segmentos de longitud variable, por lo tanto, se requiere un análisis completo del flujo de bits. Con el fin de limitar el acceso de memoria en el presente caso, este proceso de análisis adicional para la multiplexación se puede combinar con el análisis de prevención de emulación de código de inicio, requerido como una primera etapa antes del acceso a los datos de RBSP contenidos en una unidad de NAL. Un esquema de marcador de este tipo se muestra en la figura 5.
La idea es, en el presente caso, dividir, de una manera con intercalado, una estructura de nivel más alto, tal como un sector, sector de entropía o similar, real, en su estructura de datos de nivel más bajo contenida, tal como subflujos de WPP o losas, mientras se intercalan los datos en tramos. Estos tramos, cada uno de los cuales pertenece a una estructura de nivel más bajo, por ejemplo, un subflujo de WPP o una losa específicos, se intercalan en un paquete de retardo bajo, que puede ser una unidad de NAL específica, una unidad de NAL con señalización adicional mediante un indicador de intercalado de retardo bajo o, incluso, un sector o encabezado de sector con ponderación ligera que indica el enfoque de intercalado de retardo bajo mediante un indicador o el tipo de sector, como mostrado para la "unidad de NAL n.° 1" en la figura, por lo tanto, se notifica al descodificador que aplique una función de reordenamiento para un descodificador de subproceso "individual", que está usando un procesamiento secuencial de los tramos en el orden original/desintercalado en el descodificador. Con el fin de dividir los datos de un sector real como tramos intercalados a lo largo de múltiples paquetes con el fin de conseguir la característica de retardo bajo, una capa de transporte puede fragmentar la unidad de NAL que contiene los datos intercalados de retardo bajo en paquetes de redes de un tamaño de MTU máximo. La fragmentación de los datos de sector reales en múltiples unidades de NAL también puede ser aplicada directamente por la capa de codificación, por lo tanto, existe una necesidad de señalizar tal tipo de unidad de NAL que contiene la continuación de un sector, como se muestra en la figura 5 para la "unidad de NAL n.° 2". Con el fin de detectar la finalización de datos intercalados en múltiples paquetes, tales como unidades de NAL. Puede existir la necesidad de un código de finalización específico, como también se muestra para la "unidad de NAL n.° 2" en la figura, o un indicador que indica la compleción en el sector o encabezado de NAL.
En el caso de pérdida de los paquetes de NAL, existe también una necesidad de detectar pérdidas. Esto se puede aplicar mediante información adicional en el encabezado, por ejemplo, el encabezado de sector con ponderación ligera, tal como las primeras MB de los tramos contenidos, o solo de un tramo n.° 1 específico. Teniendo información tal como los desplazamientos para los subflujos de WPP o el tamaño real del tramo, alguien puede también usar estos valores de tamaño (valores de desplazamiento para un subflujo de WPP o losa específico), con el fin de hacer una revisión de estado después de la recepción de la unidad de nAl con el código de finalización y las unidades de NAL anteriores.
Es decir, como se ha descrito, los tramos se pueden paquetizar en paquetes 300 de una forma tal que cada paquete 300 comprende un tramo n.° T de cada subflujo de W p P o losa de la imagen, o un subconjunto de los subflujos de WPP o losas de la imagen (debido a que, por ejemplo, un cierto subflujo de WPP o losa ya ha sido transportado completamente por medio de los paquetes anteriores), dispuestos en un n.° de orden definido entre los subflujos de WPP o losas, comprendiendo cada paquete un encabezado 302 que comprende información que revela las posiciones y/o las longitudes de los tramos n.° T empaquetados dentro del paquete 300 respectivo, o unos marcadores 304 que separan los tramos n.° T dentro del paquete 300 respectivo entre sí, en donde el descodificador se puede configurar para, al recibir la carga útil de secuencia de bytes sin procesar, usar la información comprendida por los encabezados 302 o los marcadores 304 con el fin de acceder a los tramos dentro de los paquetes. Los paquetes 300a que comprenden primeros tramos - de acuerdo con el orden definido entre los subflujos de WPP o losas - de los subflujos de WPP o losas de la imagen, pueden comprender un indicador de característica de retardo bajo 306, y los paquetes 300b que comprenden segundos tramos o tramos posteriores n.° T - de acuerdo con el orden definido entre los subflujos de WPP o losas - de los subflujos de w Pp o losas de la imagen, pueden comprender un indicador de continuación 308. Los paquetes 300 pueden ser sectores o unidades de NAL
En lo sucesivo, se proporciona un ejemplo para la señalización de la sintaxis y la semántica para el intercalado de retardo bajo en tramos.
No obstante, la división de datos de tramo, tales como datos de un subflujo de WPP o losa, también se puede aplicar a nivel de sector o por debajo, como se ha expuesto anteriormente.
A continuación, se muestra un enfoque que se puede combinar con el análisis para la prevención de emulación de código de inicio, con el fin de reducir etapas de procesamiento adicionales. Por lo tanto, se aplica un intercalado a nivel de RBSP del códec de HEVC.
Un tramo se puede ver como la división de los datos de RBSP en secciones a intercalar en la sección de carga útil de unidad de nA l para un acceso de datos de retardo bajo. La finalización de un tramo se puede indicar mediante el código 0x000002, y puede ir seguida por un identificador de tramo de 8 bits id_tramo. Los tramos se pueden intercalar de una forma cíclica, de tal manera que el código de extremo de tramo no vaya seguido por el id_tramo, que se obtiene implícitamente. Los datos de RBSP en un tramo individual corresponden o bien a datos de una losa, o bien a datos de un subflujo, o bien a datos de un sector o bien a datos de un sector de entropía.
En la sintaxis de unidad de NAL, se pueden permitir dos modos para el intercalado de retardo bajo, como se indica mediante el "indicador_encapsulado de retardo bajo", que es una disposición cíclica de los tramos así como una indicación del tramo a través de un identificador adicional "id_tramo", a continuación del codificador de marcador a través de un indicador tal como el "indicador_cíclico de retardo bajo" en el encabezado de unidad de NAL. Estos dos indicadores también pueden estar presentes en los Conjuntos de Parámetros de Secuencia o, incluso, en el APS. Para las disposiciones de tramo cíclicas, puede seguir siendo necesario conocer el número de tramos durante el análisis, tal como se prevé en el SPS como "núm_tramos_retardo_bajo".
En la unidad de NAL, los "byte_rbsp_LD" intercalados son leídos por el analizador como un reordenamiento al orden de RBSP secuencial real en el último bucle para en la sintaxis de NAL:
para (i = 0, i++, i < núm_tramos_retardo_bajo){
para (j = 0, j++, j < NúmBytesEnRBSP[i]){ byte_rbsp[NúmBytesEnRBSP++] = byte_rbsp_LD[j] [i]
}
También puede existir una señalización explícita en el SPS o el APS para un tamaño fijo de tramos dispuestos cíclicamente, como se indica en "longitud_tramo_retardo_bajo_menos1". Esta última no se ha usado en el ejemplo de sintaxis de unidad de NAL, pero es sencillo si se tiene en mente una paquetización como se muestra en la figura 4. En la sintaxis de unidad de NAL de la figura 6, lo básico fue una paquetización como se muestra en la figura 5 y como se ha analizado anteriormente.
Con el fin de permitir esta característica de intercalado de tramos a lo largo de múltiples paquetes, tales como sectores y/o unidades de NAL, puede existir un requisito para una memoria intermedia global, tal como la matriz de byte_rbsp_LD para los tramos, con el fin de tener un acceso repetido a datos de RBSP de unidades de NAL ya recibidas.
Con el fin de permitir resiliencia frente a errores, después de la recepción de un código de finalización, o si la suma del número de bytes recibidos para un tramo es igual al tamaño de tramo, que se puede obtener a partir de los valores de desplazamiento, como se prevé para los datos de tramo contenidos, por ejemplo, a partir de datos con respecto al subflujo de WPP o losa respectivo del que es parte el tramo en cuestión.
Un requisito importante para los subflujos de WPP dispuestos en tramos de retardo bajo intercalados es que, mediante un tramo n 1 solo se acceda a datos desde el tramo n, que ya se hayan proporcionado en el tramo n y ya almacenados o disponibles en el descodificador.
La sintaxis de RBSP de capa de Sector de Retardo Bajo para el reordenamiento/desintercalado a nivel de sector se podría diseñar como sigue. En particular, la sintaxis debería, en ese caso, tener casi el mismo comportamiento que en la capa de unidad de NAL, pero el reordenamiento se ha de definir al nivel de sector. La figura 8 muestra la sintaxis de RBSP de capa de Sector de Retardo Bajo.
En el caso de usar el encabezado de sector para la paquetización de los tramos intercalados, puede existir el requisito para indicar, a nivel de códec, si se recibe un nuevo sector, no restablecer el estado de CABAC, debido a que no se debería interrumpir la codificación por entropía de tramos de, por ejemplo, un subflujo de WPP. No restablecer la CABAC en un sector se indica como "indicador_no_restablecimiento_cabac" en el encabezado de sector. El encabezado de sector mostrado es adecuado para los sectores de retardo bajo, por lo tanto, también deberían estar presentes las características de sector_entropía. Una sintaxis de encabezado de sector correspondiente se muestra en la figura 9.
La capa de transporte posibilita la optimización de la programación de los datos reenviados a la unidad o unidades de descodificador, basándose en el hecho de si un número de subflujos/losas/tramos (en la capa de transporte, se supone una entidad abstracta que se puede representar mediante un subflujo, una losa, parte de un subflujo o de una losa, o una parte del flujo de bits que tenga una función similar, es decir, esta permite una descodificación paralela o una renovación de descodificador gradual) en la capa de codificación se pueden procesar de forma independiente entre sí. Una posibilidad es iniciar el envío de tramos en paralelo a varias unidades de descodificación con un retardo mínimo. El flujo de bits consiste en una secuencia de unidades de NAL, que son los elementos más pequeños que se pueden manejar de forma individual en la capa de transporte. En consecuencia, los métodos siguientes de manejo en la capa de transporte se basan en subflujos/losas/tramos que están contenidos en unidades de NAL de sectores o sectores de entropía separados.
La capa de transporte también debería optimizar el desempeño de descodificador y la resiliencia frente a errores, basándose en el hecho de si la capa de codificación usa una renovación de descodificador gradual. Una opción es eliminar partes no relevantes del flujo de bits si no se han recibido correctamente partes previas del flujo de bits, por ejemplo, debido a errores de transmisión, o no se han recibido en absoluto, por ejemplo, debido a una conmutación entre canales de transporte.
Con el fin de prever tal aprovechamiento/optimización, se señaliza diferente información en la capa de transporte.
La información secundaria general se señaliza usando descriptores:
- El número de subflujos/losas, en donde "1" significa que hay solo un flujo/losa que contiene la trama de vídeo completa
- Información común a todos los subflujos/losas, por ejemplo, si todos los subflujos/losas son del mismo tamaño o los requisitos de memoria intermedia son iguales
- Información individual acerca de cada subflujo/losa, por ejemplo, si los subflujos/losas son de un tamaño diferente o sus requisitos de memoria intermedia difieren
- El número de etapas de la renovación de descodificador gradual, en donde "1" significa que no se usa una renovación de descodificador gradual
- Un indicador que indica si estos subflujos/losas prevén un procesamiento paralelo de retardo bajo
Si el número de los subflujos/losas > 1, se insertan elementos de sintaxis en el flujo antes de cada bloque de datos que contiene un cierto subflujo/losa. Estos elementos de sintaxis siguen la sintaxis de unidad de NAL, pero usan un tipo de unidad de NAL único, que no es usado por la capa de codificación (por ejemplo, tipo_unidad_nal = 0x19 o tipo_unidad_nal = 0x1F), denominados en lo sucesivo marcadores de subflujo.
Estos elementos de sintaxis se usan como marcadores y portan información acerca del bloque de datos que sigue, al menos un campo de datos que identifica el subflujo/losa.
Si el número de etapas de renovación de descodificador gradual > 1, estos elementos de sintaxis también portan un indicador que indica si el subflujo/losa se intra-codifica (permite una renovación de descodificador gradual).
Una sintaxis correspondiente se muestra en la figura 10. Podrían ser de aplicación las restricciones siguientes:
bit_cero_prohibido deberá ser igual a 0.
indicador_ref_nal deberá ser igual a 0.
tipo_unidad_nal deberá ser igual a 0x19.
ID de subflujo: valor de contador que comienza en 0 para el primer sector que pertenece a una imagen, incrementado por cada sector o sector de entropía adicional que pertenece a la misma imagen. es_intra: si es '1', la siguiente unidad de NAL contiene un sector intra codificado o un sector de entropía intra codificado.
Un método para el encapsulado del flujo de vídeo en una multiplexación de transporte se muestra en la figura 11, en donde cada sector o sector de entropía se transporta por separado en un número entero de paquetes de flujo de transporte. Si el tamaño de la carga útil no coincide exactamente con los bytes disponibles en los paquetes de TS de tamaño fijo, el último paquete de TS contiene un campo de adaptación.
Se debería hacer notar que un comportamiento similar del Flujo Elemental del Flujo de Transporte de MPEG-2, también puede ser proporcionado por una Sesión de RTP o un flujo de RTP del Protocolo de Transporte en Tiempo Real como se ilustra en la figura 19. En el RTP [8], un flujo de RTP (identificado mediante el tipo de medios y el tipo de carga útil, como se indica en el SDP [12]), puede estar contenido en su propia Sesión de RTP, en donde una Sesión de RTP se identifica mediante la dirección de red (IP), el puerto (UDP) así como el identificador de origen (SSRC). Una sesión de medios como se indica en el SDP puede contener múltiples sesiones de RTP, conteniendo cada una un tipo de medios diferente. Pero también es posible transportar el mismo flujo de medios (por ejemplo, vídeo) en diferentes flujos de RTP, en donde los flujos de RTP pueden estar contenidos en la misma sesión de RTP (de forma análoga al punto 1. a continuación), o pueden estar contenidos es sus propias sesiones de RTP (de forma análoga al punto 2. a continuación). La figura 19 ilustra el caso 2.
Los formatos de carga útil de RTP [9] [13] tienen un número de orden de descodificación (DON), lo que permite recuperar el orden de descodificación de las unidades de NAL en el receptor, en el caso que las mismas se transmitan de forma intencionada fuera del orden de descodificación para fines de resiliencia frente a errores, como se ha descrito en [9] [13]. Por lo tanto, los marcadores adicionales MKR no son necesarios. En el caso de tramos de transporte de subflujos de WPP o losas, en el orden en el que se están volviendo disponibles a partir de los procesos de codificación, el DON también se puede usar para recuperar el orden de descodificación de tramos antes de proporcionar los mismos a un descodificador individual. Pero en este caso, se introduciría un retardo adicional en el descodificador debido al proceso de desintercalado separado antes del proceso de descodificación. El sistema descrito en el presente documento puede proporcionar los tramos codificados directamente a los procesos de descodificación de los diferentes subflujos de WPP o losas, mientras los datos están llegando al receptor. La identificación de los tramos asociados con un subflujo de WPP o losa se puede obtener mediante la dirección de sector en el encabezado de segmento de sector del segmento de sector y el orden de transmisión de los paquetes, como se indica mediante el número de secuencia de RTP en el encabezado de RTP. En este escenario, el DON se usa solo para la retrocompatibilidad, es decir, para descodificadores que no proporcionan la capacidad potenciada de tramos de descodificación de subflujos de WPP o losas enviados fuera del orden de descodificación cuando estos llegan. El envío de datos de tramo fuera del orden de descodificación se aplica solo con respecto al nivel de subflujo de WPP o losas, es decir, en los datos transmitidos, los tramos de un subflujo de WPP o losa individuales se transmiten en orden de descodificación, en donde se intercalan los datos de los diferentes subflujos de WPP o losas.
Existen dos opciones posibles:
1. Todos los sectores y sectores de entropía están contenidos en el mismo flujo elemental, es decir, se asigna el mismo PID a todos los paquetes de TS de ese flujo de vídeo; en el texto siguiente, este método se denomina encapsulado de ES individual.
2. Se asignan PID diferentes a sectores y sectores de entropía del mismo flujo de bits de vídeo; en el texto siguiente, este método se denomina encapsulado de múltiples ES.
La figura 11 es válida para ambas opciones si se considera que la primera opción es un caso especial de la estructura más general estableciendo el mismo PID para todos los ES.
Una forma más eficiente para el encapsulado en un ES individual se muestra en la figura 12. En el presente caso, a lo sumo es necesario un campo de adaptación por imagen.
Una forma más eficiente para el encapsulado en un ES múltiple se muestra en la figura 13. En el presente caso, se evitan los campos de adaptación; en su lugar, otro sector, por ejemplo, la losa ubicada conjuntamente de la imagen siguiente, se inicia inmediatamente en el mismo paquete de flujo de transporte.
En la figura 14 se muestra una estructura posible del desmultiplexor de transporte para el encapsulado con un flujo elemental (ES) individual que tiene como objetivo un descodificador de múltiples subprocesos. El sector de entropía en la figura puede contener datos de un subflujo de WPP o losa específico.
La Memoria Intermedia de Transporte (TB) recopila los datos que pertenecen a un paquete de transporte y los envía a la Memoria Intermedia de Multiplexación (MB). En la salida de una MB, se evalúan los encabezados de unidad de NAL y se eliminan los marcadores de subflujo, mientras que se almacenan los datos portados en el marcador de subflujo. Los datos de cada sector o sector de entropía se almacenan en una Memoria Intermedia de Sector (SB) separada, desde donde estos son extraídos por un descodificador de múltiples subprocesos una vez que está disponible un subproceso de descodificador.
En la figura 15 se muestra una estructura posible del desmultiplexor de transporte para el encapsulado con múltiples flujos elementales (ES) que tiene como objetivo un descodificador de múltiples subprocesos.
Los conceptos bosquejados anteriormente se describen de nuevo a continuación en otras palabras. La descripción a continuación es, por lo tanto, combinable con detalles adicionales de la descripción anterior de forma individual.
La figura 16 muestra una estructura general de un codificador de acuerdo con una realización de la presente solicitud. El codificador 10 se podría implementar para ser capaz de funcionar de una forma de múltiples subprocesos o no, es decir, meramente de subproceso individual. Es decir, el codificador 10 se podría implementar, por ejemplo, usando múltiples núcleos de CPU. En otras palabras, el codificador 10 podría soportar un procesamiento paralelo, pero no tiene que hacerlo. El concepto de codificación de la presente solicitud posibilita a los codificadores de procesamiento paralelo aplicar de forma eficiente un procesamiento paralelo sin, no obstante, menoscabar la eficiencia de compresión. Con respecto a la capacidad de procesamiento paralelo, afirmaciones similares son válidas para el descodificador, que se describe más adelante con respecto a la figura 17.
El codificador 10 es un codificador de vídeo pero, en general, el codificador 10 también puede ser un codificador de imagen. Una imagen 12 de un vídeo 14 se muestra como si entrara en el codificador 10 en una entrada 16.
El codificador 10 es un codificador híbrido, es decir, la imagen 12 se predice en un predictor 18 y el residuo de predicción 20 como es obtenido por un determinador de residuo 22, tal como un restador, se somete a una transformada, tal como una descomposición espectral tal como una DCT, y una cuantificación en un módulo de transformada/cuantificación 24. Un residuo cuantificado 26 obtenido de este modo se somete a una codificación por entropía en un codificador de entropía 28, en concreto, una codificación aritmética binaria adaptativa al contexto. La versión reconstruible del residuo cuando está disponible para el descodificador, es decir, la señal de residuo 30 descuantificada y retransformada, es recuperada por un módulo de retransformada y recuantificación 31, y es combinada con la señal de predicción 32 del predictor 18 por el combinador 33, dando como resultado, de ese modo, una reconstrucción 34 de la imagen 12. Sin embargo, el codificador 10 funciona de una forma por bloques. En consecuencia, la señal reconstruida 34 adolece de discontinuidades en los límites de bloque y, en consecuencia, se puede aplicar un filtro 36 a la señal reconstruida 34 con el fin de producir una imagen de referencia 38 basándose en qué predictor 18 predice imágenes codificadas posteriormente. Como se muestra mediante las líneas de trazo discontinuo en la figura 16, el predictor 18 puede, sin embargo, aprovechar también la señal reconstruida 34 directamente sin el filtro 36, o una versión intermedia. En el caso de la codificación de imagen, se puede dejar de lado el filtro 36.
El predictor 18 puede elegir entre diferentes modos de predicción con el fin de predecir ciertos bloques de la imagen 12. Puede existir un modo de predicción temporal de acuerdo con el cual un bloque se predice basándose en imágenes codificadas previamente, un modo de predicción espacial de acuerdo con el cual un bloque se predice basándose en bloques codificados previamente de la misma imagen, modos de predicción entre capas de acuerdo con los cuales un bloque de una imagen que muestra la escena en una capa más alta, tal como a una resolución espacial más alta o desde otro punto de vista, se predice basándose en una imagen correspondiente que muestra esta escena en una capa más baja, tal como a una resolución espacial más baja o desde otro punto de vista.
Se usa una cierta sintaxis con el fin de compilar los datos de residuo cuantificados 26, es decir, niveles de coeficientes de transformada y otros datos de residuo, así como los datos de modo de codificación incluyendo, por ejemplo, los modos de predicción y parámetros de predicción para los bloques individuales de la imagen 12 según sea determinado por el predictor 18, y estos elementos de sintaxis son sometidos a una codificación por entropía por el codificador de entropía 28. El flujo de datos obtenidos de este modo como salida por el codificador de entropía 28, se denomina carga útil de secuencia de bytes sin procesar 40.
Los elementos del codificador 10 de la figura 16 están interconectados como se muestra en la figura 16.
La figura 17 muestra un descodificador que encaja con el codificador de la figura 16, es decir, es capaz de descodificar la carga útil de secuencia de bytes sin procesar. El descodificador de la figura 17 se indica, en general, mediante el signo de referencia 50, y comprende un descodificador de entropía 52, un módulo de retransformada/descuantificación 54, un combinador 56, un filtro 58 y un predictor 60. El descodificador de entropía 42 recibe la carga útil de secuencia de bytes sin procesar 40, y realiza una descodificación por entropía usando una descodificación aritmética binaria adaptativa al contexto, con el fin de recuperar la señal de residuo 62 y los parámetros de codificación 64. El módulo de retransformada/descuantificación 54 descuantifica y retransforma los datos de residuo 62, y reenvía la señal de residuo obtenida de este modo al combinador 56. El combinador 56 también recibe una señal de predicción 66 desde el predictor 60 que, a su vez, forma la señal de predicción 66 usando los parámetros de codificación 64 en función de la señal reconstruida 68, determinada por el combinador 56 combinando la señal de predicción 66 y la señal de residuo 65. Como ya se ha explicado anteriormente con respecto a la figura 16, el predictor 60 puede usar la versión filtrada de la señal reconstruida 68, o una cierta versión intermedia de la misma, como alternativa o adicionalmente. La imagen a reproducir y emitir finalmente en la salida 70 del descodificador 50 se puede determinar de igual modo en una versión no filtrada de la señal de combinación 68 o una cierta versión no filtrada de la misma.
De acuerdo con el concepto de losa, la imagen 12 se subdivide las losas, y al menos las predicciones de bloques dentro de estas losas se restringen a usar, como una base para la predicción espacial, meramente datos relacionados con la misma losa. Mediante esta medida, al menos la predicción se puede realizar para cada losa de forma individual en paralelo. Solo para fines ilustrativos, la figura 16 ilustra la imagen 12 como si estuviera subdividida en nueve losas. La subdivisión de cada losa en nueve bloques, como se muestra en la figura 16, también sirve meramente como un ejemplo. Además, por razones de compleción, se ha de hacer notar que la forma de codificar las losas por separado puede no restringirse a una predicción espacial (intra-predicción). Más bien, también se puede prohibir cualquier predicción de parámetros de codificación de una losa respectiva a través de los límites de la losa, y cualquier dependencia de la selección de contexto en la codificación por entropía de una losa respectiva a través de los límites de la losa respectiva, con el fin de restringirse a depender solo de datos de la misma losa. Por lo tanto, el descodificador es capaz de realizar las operaciones recién mencionadas en paralelo, en concreto, en unidades de losas.
Con el fin de transmitirse a través de un cierto canal de transmisión, los elementos de sintaxis han de ser codificados por entropía, de una forma por sectores, por el codificador de entropía 28. Para este fin, el codificador de entropía 28 explora los bloques de las losas al recorrer los bloques de una primera losa en primer lugar, procediendo entonces con los bloques de la siguiente losa en el orden de losas, y así sucesivamente. Un orden de exploración por filas puede, por ejemplo, usarse con el fin de explorar los bloques dentro de los subflujos y las losas, respectivamente. Los sectores se empaquetan entonces en unidades de NAL, que son las unidades más pequeñas para la transmisión. Antes de codificar por entropía un sector, el codificador de entropía 28 inicializa sus probabilidades de CABAC, es decir, las probabilidades usadas para codificar aritméticamente el elemento de sintaxis de ese sector. El descodificador de entropía 52 hace lo mismo, es decir, inicializa sus probabilidades en los comienzos de sector. Cada inicialización, sin embargo, afecta negativamente a la eficiencia de codificación por entropía, debido a que las probabilidades se adaptan continuamente a las estadísticas de probabilidad de símbolos reales de los diversos contextos y, en consecuencia, el restablecimiento de las probabilidades de CABAC representa una desviación con respecto a un estado adaptado. Como es conocido por un experto en la materia, la codificación por entropía conduce a una compresión óptima solo si las probabilidades encajan con las estadísticas de probabilidad de símbolos reales.
En consecuencia, un descodificador de acuerdo con una realización de la presente solicitud funciona como se muestra en la figura 18. El descodificador recibe, en la etapa 80, la carga útil de secuencia de Bytes Sin Procesar que describe una imagen 12 en las losas 82, en tramos de losas. En la figura 18, se muestra de forma ilustrativa que la primera losa 82 en el orden de losas 84 está cortada o dividida en dos tramos 86a y 86b, cada uno cubriendo de forma ilustrativa una subsecuencia de la secuencia de bloques dentro de esa losa. Entonces, en la etapa 82, los tramos 86a y 86b se descodifican por entropía. Sin embargo, en la descodificación por entropía de los tramos 86a y 86b, la adaptación de probabilidad de CABAC se continúa a través de límites de tramo. Es decir, durante la descodificación del tramo 86a, las probabilidades de CABAC se adaptan continuamente a las estadísticas de símbolos reales, y el estado al final de la descodificación por entropía del tramo 86a se adapta en el inicio de la descodificación por entropía del tramo 86b. En la etapa 90, la carga útil de secuencia de bytes sin procesar, descodificada por entropía de este modo se descodifica entonces, con el fin de obtener la imagen 12.
Debido a la continuación de la adaptación de probabilidad de CABAC a través de los límites de tramo 92 situados en el interior de las losas 82, estos límites de tramo no afectan negativamente a la eficiencia de codificación por entropía, más allá de la subdivisión de la imagen 12 en las losas 82. Por otro lado, sigue siendo posible el procesamiento paralelo de losa. Más allá de eso, es posible transmitir de forma individual los tramos y, debido a que los tramos son más pequeños que las losas 82 completas, es posible iniciar, en la etapa 90, la descodificación de cada losa tan pronto como se ha recibido y descodificado por entropía el primer tramo de la losa respectiva.
La descripción de las figuras 16 a 18 se refería principalmente al uso de losas. Como se ha descrito anteriormente, las losas resultan de la subdivisión espacial en particiones de una imagen. De forma similar a las losas, los sectores también subdividen espacialmente una imagen. Los sectores también son, en consecuencia, un medio para posibilitar una codificación/descodificación paralela. De forma similar a las losas, se prohíbe la predicción, y así sucesivamente, de tal manera que los sectores son descodificables de forma individual. En consecuencia, la descripción de las figuras 16 a 18 también es válida para la división de sectores en tramos.
Lo mismo es de aplicación cuando se usan subflujos de WPP. Los subflujos de WPP también representan una subdivisión espacial en particiones de una imagen 12, en concreto, en subflujos de WPP. En contraposición a las losas y sectores, los subflujos de WPP no imponen restricciones a las predicciones y selecciones de contacto a través de subflujos de WPP. Los subflujos de WPP se extienden a lo largo de filas de bloques tales como filas de LCU, como se muestra en la figura 4, y con el fin de posibilitar un procesamiento paralelo, meramente se alcanza un término medio en relación con la codificación por entropía de CABAc en orden como se define entre los subflujos de WPP 92 (véase la figura 4) y para cada uno de los subflujos de WPP 92, excepto para el primer subflujo de w Pp , las probabilidades de CABAC no se restablecen completamente sino que se adoptan, o se establecen, como iguales a las probabilidades de CABAC que resultan después de haber descodificado por entropía el subflujo de WPP inmediatamente anterior ascendiendo hasta la segunda LCU 94 del mismo, con el orden de LCU iniciándose, para cada subflujo de WPP, en el mismo lado de la imagen 12, tal como el lado izquierdo como se ilustra en la figura 4. En consecuencia, obedeciendo a un cierto retardo de codificación entre la secuencia de un subflujo de WPP, estos subflujos de WPP 92 son descodificables en paralelo, de tal manera que las porciones en las que la imagen 12 se descodifica en paralelo, es decir, de forma concurrente, forma un tipo de frente de onda 96 que se mueve a través de la imagen de manera inclinada de izquierda a derecha.
Es decir, al transferir la descripción de la figura 16 a 18 a los subflujos de WPP, cualquier subflujo de WPP 92 (la figura 4) también se puede subdividir en unos tramos 98a y 98b sin interrumpir la adaptación de probabilidad de CABAC en el límite 100 entre estos tramos 98a y 98b en el interior del subflujo de WPP 92 respectivo, evitando de ese modo penalizaciones con respecto a la eficiencia de codificación por entropía, debido a la transmisibilidad individual de ambos tramos 98a y 98b, pero manteniendo la capacidad de usar un procesamiento paralelo de frente de onda, y posibilitando iniciar este procesamiento paralelo de frente de onda más temprano, debido a que los tramos son más pequeños que los subflujos de WPP 92 completos.
Como se ha descrito anteriormente con respecto a las figuras 1 a 15, existen varias posibilidades para transmitir tramos paquetizados en unidades de NAL. Se hace referencia a la figura 3, en donde losas o subflujos o sectores de tales tramos o subflujos se han dividido en tramos en el dominio codificado aritméticamente con un encabezado que precede al n-ésimo tramo de cada subflujo o losa, y que presenta información que permite localizar los límites de tramo. Otra realización era la presentada en la figura 9. En esta, la subdivisión de losas o subflujos de WPP en tramos se realizó cambiando levemente la estructura de sector: los sectores que se inician en una losa o en un límite de subflujo de WPP, es decir, que se inician en el comienzo de una losa o subflujo de WPP, tienen el indicador_no_restablecimiento_cabac establecido a cero, provocando de ese modo la inicialización/restablecimiento de probabilidad de CABAC habitual. Sin embargo, los sectores que portan tramos que comienzan en el interior de una losa o subflujo de WPP tienen el indicador_no_restablecimiento_cabac establecido a uno, provocando de ese modo la continuación descrita anteriormente de la adaptación de probabilidad de CABAC.
En lo que respecta al desintercalado, que tiene lugar en la etapa de recepción 80, para cada tramo se determina a qué subflujo de WPP o losa pertenece el tramo respectivo. Se han descrito anteriormente diferentes posibilidades tales como, por ejemplo, una realización de ciclos de asignación por turnos a través del número de subflujos de WPP o losas de una imagen actual. Como alternativa, en el caso de usar los encabezados de sector para transportar los tramos, los encabezados de sector pueden comprender una indicación que permite localizar el comienzo del sector respectivo dentro de la imagen 12 actual.
En este sentido, se hace notar que la descomposición de los sectores, subflujos de WPP o losas en tramos, se realiza a lo largo de un orden de descodificación definido dentro de cada sector, subflujo de WPP o losa: es decir, dentro de cada sector, subflujo de WPP o losa, la porción de la imagen espacialmente cubierta por el sector, subflujo de WPP o losa respectivo, se codifica en, o se descodifica desde, el sector, subflujo de WPP o losa respectivo en ese orden de descodificación, y cada tramo de un sector, subflujo de WPP o losa respectivo cubre una porción continua del sector, subflujo de WPP o losa respectivo a lo largo de ese orden de descodificación. De esta manera, se define un orden entre tramos que pertenecen al mismo sector, subflujo de WPP o losa, en concreto, el orden de codificación/descodificación, y cada tramo tiene un rango dentro de ese orden. Debido a que la subdivisión de la imagen en subflujos de WPP o losas se señaliza hacia el descodificador, el descodificador tiene conocimiento de la subdivisión. En consecuencia, para la asociación de cada tramo con un subflujo de WPP o losa respectivo, por ejemplo, sería suficiente si cada tramo tuviera una dirección de inicio que identificase una posición de inicio desde la cual, en el tramo respectivo, cubriera continuamente la imagen usando el orden de codificación/descodificación de la losa/subflujos de WPP de los que es parte el tramo respectivo. Incluso el orden entre los tramos que pertenecen a una cierta losa o subflujo de WPP, por ejemplo, se puede reconstruir en un desmultiplexor de transporte o mediante el descodificador usando las posiciones de inicio. Sin embargo, para poder recurrir, también se puede usar la información de encabezados de paquete de transporte de capas de OSI más bajas, como se ha descrito anteriormente con respecto a la transmisión de RTP, tal como el número de orden de descodificación, es decir, los DON. Un desmultiplexor de transporte del tipo recién mencionado se puede configurar de forma similar al desmultiplexor de transporte analizado anteriormente, con el fin de almacenar datos de tramos de un subflujo de WPP o losa igual en una memoria intermedia de sector, y datos de tramos de subflujos de WPP o losas asociados con diferentes subflujos de WPP o losas en diferentes memorias intermedias de sector. Como se ha mencionado anteriormente, se puede usar una estructura de sector, es decir, encabezados de sector, para transportar tramos.
A continuación, se hace referencia a las realizaciones de las figuras 11 a 15, con el fin de describir las mismas de nuevo en otras palabras. Como se ha descrito en estas figuras, los sectores Si se paquetizan en unidades de NAL con cada unidad de NAL 110 (véase la figura 11) comprendiendo un encabezado de unidad de NAL 112. Se debería hacer notar que los sectores Si pueden ser sectores normales o los sectores que portan tramos de acuerdo con la figura 9. En consecuencia, estos sectores únicamente portan datos con respecto a un subflujo de WPP o losa de una imagen actual, en concreto, el i-ésimo subflujo de WPP o losa, respectivamente. A través de una fragmentación, las unidades de NAL 110 se transportan a través de unos paquetes de flujo de transporte (TS) 114, en concreto, la sección de carga útil 116 de los mismos. Al hacer esto, cada unidad de NAL 110 y el sector Si correspondiente está precedido por un marcador de subflujo MKR respectivo que indica i, es decir, el subflujo de WPP o losa al que pertenece el sector inmediatamente siguiente de la unidad de NAL 110 inmediatamente siguiente.
Las unidades de NAL 110 que portan sectores que pertenecen a diferentes subflujos de WPP o losas se pueden distribuir sobre más que un flujo elemental ES, o sobre el mismo flujo elemental, como se explica en las figuras 11 a 13. Como se ha mencionado anteriormente, "flujo elemental" también puede identificar un flujo de RTP separado en su propia sesión de RTP.
Como se explica con respecto a las figuras 14 y 15, un desmultiplexor de transporte puede comprender una memoria intermedia de multiplexación MB, unas memorias intermedias de sector SB y una memoria intermedia de transporte TB. Las memorias intermedias de sector SB son extraídas por un descodificador de múltiples subprocesos MTD, que permite una descodificación paralela de una imagen en subflujos de WPP o losas. La memoria intermedia de transporte TB está configurada para recopilar datos que pertenecen a un paquete de TS de un flujo elemental predeterminado de un flujo de bits de vídeo, y reenviar los datos a la memoria intermedia de multiplexación MB. El desmultiplexor de transporte está configurado entonces para evaluar encabezados de unidad de nAl de las unidades de NAL de una secuencia de unidades de NAL paquetizada en los paquetes de TS en una salida de la memoria intermedia de multiplexación MB, eliminar las unidades de NAL de marcador de subflujo MKR con el almacenamiento de los datos de marcador de subflujo portados dentro de las unidades de NAL de marcador de subflujo, y almacenar datos de sectores de subflujos o losas dentro de unidades de NAL a continuación de unidades de NAL de marcador de subflujo, uno de cuyos campos de datos identifica un subflujo de WPP o losa igual en una, es decir, la misma, memoria intermedia de sector SB y datos de sectores de subflujos de WPP o losas, dentro de unidades de NAL a continuación de unidades de NAL de marcador de subflujo, uno de cuyos campos de datos identifica diferentes subflujos de WPP o losas en diferentes memorias intermedias de sector SB. Como se muestra en la figura 15, el desmultiplexor de transporte puede comprender un desmultiplexor denominado demux de TS en la figura 15, y configurado para recibir el flujo de bits de vídeo y dividir paquetes de TS del flujo de bits de vídeo en diferentes flujos elementales, es decir, distribuir el paquete de Ts del flujo de bits de vídeo a los diferentes flujos elementales. El desmultiplexor realiza esta división o distribución de acuerdo con los PID contenidos dentro de encabezados de TS del paquete de TS, de tal manera que cada flujo elemental está compuesto por paquetes de TS de un PAD diferente de los PAD de paquetes de TS de otros flujos elementales.
Es decir, si los sectores corresponden a los tramos en el sentido de la realización de la figura 9, el MTD, es decir, el descodificador de múltiples subprocesos, es capaz de iniciar el procesamiento en más que un subflujo de WPP o losa de una imagen actual tan pronto como la memoria intermedia de sector SB correspondiente del subflujo de WPP o losa respectivo tiene datos contenidos en la misma, reduciendo de ese modo el retardo.
Aunque se han descrito algunos aspectos en el contexto de un aparato, es evidente que estos aspectos también representan una descripción del método correspondiente, donde un bloque o dispositivo corresponde a una etapa de método o una característica de una etapa de método. De manera análoga, los aspectos descritos en el contexto de una etapa de método también representan una descripción de un bloque o elemento correspondiente o características de un aparato correspondiente. Algunas o todas las etapas de método pueden ser ejecutadas por (o usando) un aparato de hardware, como, por ejemplo, un microprocesador, un ordenador programable o un circuito electrónico. En algunas realizaciones, algunas una o más de las etapas más importantes del método pueden ser ejecutadas por un aparato de este tipo.
El flujo de bits codificado inventivo se puede almacenar en un medio de almacenamiento digital, o se puede transmitir en un medio de transmisión, tal como un medio de transmisión inalámbrico o un medio de transmisión cableado tal como Internet.
Por lo tanto, estas contribuciones anteriores, entre otras cosas, describen métodos para un encapsulado y una transmisión de retardo bajo de datos de vídeo estructurados, según es proporcionado por la nueva norma de codificación de HEVC, tal como estructurados en losas, subflujos de procesamiento paralelo de frente de onda (WPP), sectores o sectores de entropía. Se han presentado, entre otras cosas, técnicas que permiten un transporte de retardo bajo en un entorno de codificador - transmisor - receptor - descodificador paralelizado, a través de un transporte intercalado de sectores de entropía/sectores/losas/subflujos. Con el fin de resolver los problemas de cuello de botella bosquejados en la porción de introducción de la memoria descriptiva, y para minimizar el retardo del tiempo de transmisión y de descodificación, es decir, el retardo de extremo a extremo, se han presentado, entre otras cosas, una técnica para un esquema de sectores de entropía intercalados para una transmisión y un procesamiento paralelos.
Dependiendo de ciertos requisitos de implementación, las realizaciones de la invención pueden implementarse en hardware o en software. La implementación puede realizarse usando un medio de almacenamiento digital, por ejemplo un disco flexible, un DVD, un Blu-Ray, un Cd , una ROM, una PROM, una EPROM, una EEPROM, o una memoria FLASH, que tiene señales de control electrónicamente legibles almacenadas en el mismo, que cooperan (o pueden cooperar) con un sistema informático programable de manera que se realiza el respectivo método. Por lo tanto, el medio de almacenamiento digital puede ser legible por ordenador.
Algunas realizaciones de acuerdo con la invención comprenden un soporte de datos que tiene señales de control electrónicamente legibles, que pueden cooperar con un sistema informático programable, de manera que se realiza uno de los métodos descritos en el presente documento.
En general, las realizaciones de la presente invención pueden implementarse como un producto de programa informático con un código de programa, siendo el código de programa operativo para realizar uno de los métodos cuando el producto de programa informático se ejecuta en un ordenador. El código de programa puede almacenarse, por ejemplo, en un soporte legible por máquina.
Otras realizaciones comprenden el programa informático para realizar uno de los métodos descritos en el presente documento, almacenado en soporte legible por máquina.
En otras palabras, una realización del método inventivo es, por lo tanto, un programa informático que tiene un código de programa para realizar uno de los métodos descritos en el presente documento, cuando el programa informático se ejecuta en un ordenador.
Una realización adicional de los métodos inventivos es, por lo tanto, 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 realizar uno de los métodos descritos en el presente documento. El soporte de datos, el medio de almacenamiento digital o el medio registrado son, habitualmente, tangibles y/o no transitorios.
Una realización adicional del método inventivo es, por lo tanto, un flujo de datos o una secuencia de señales que representan el programa informático para realizar uno de los métodos descritos en el presente documento. El flujo de datos o la secuencia de señales pueden configurarse, por ejemplo, para transferirse a través de una conexión de comunicación de datos, por ejemplo a través de Internet.
Una realización adicional comprende un medio de procesamiento, por ejemplo, un ordenador, o un dispositivo de lógica programable, configurado para o adaptado para realizar uno de los métodos descritos en el presente documento.
Una realización adicional comprende un ordenador que tiene instalado en el mismo el programa informático para realizar uno de los métodos descritos en el presente documento.
Una realización adicional de acuerdo con la invención comprende un aparato o un sistema configurado para transferir (por ejemplo, electrónica u ópticamente) un programa informático para realizar uno de los métodos descritos en el presente documento a un receptor. El receptor puede ser, por ejemplo, un ordenador, un dispositivo móvil, un dispositivo de memoria o similares. El aparato o sistema puede comprender, por ejemplo, un servidor de archivos para transferir el programa informático al receptor.
En algunas realizaciones, se puede usar un dispositivo de lógica programable (por ejemplo, una matriz de puertas programables en campo) para realizar algunas o todas las funcionalidades de los métodos descritos en el presente documento. En algunas realizaciones, una matriz de puertas programables en campo puede cooperar con un microprocesador para realizar uno de los métodos descritos en el presente documento. En general, los métodos son realizados preferentemente por cualquier aparato de hardware.
Las realizaciones anteriormente descritas son meramente ilustrativas de los principios de la presente invención. Se entiende que serán evidentes modificaciones y variaciones de las disposiciones y los detalles descritos en el presente documento para los expertos en la materia. Se pretende, por lo tanto, estar limitado solo por el alcance de las reivindicaciones de patente siguientes y no por los detalles específicos presentados por medio de descripción y explicación de las realizaciones en el presente documento.
Referencias
[1] Thomas Wiegand, Gary J. Sullivan, Gisle Bjontegaard, Ajay Luthra, "OverView of the H.264/AVC Video Coding Standard', IEEE Trans. Circuitos Syst. Video Technol., Vol. l3, N7, julio de 2003.
[2] JCTVC-E196, "Wavefront Parallel Processing', 5a Reunión de JCT-VC, Ginebra 2011.
[3] JCTVC-D070, "Lightweight slicing for entropy coding", 4a Reunión, Daegu, 2011.
[4] JCTVC-D073, "Periodic initialization for wavefront coding functionality', 4a Reunión, Daegu, 2011.
[5] HEVC WD5: Working Draft 5 of High-Efficiency Video Coding JTCVC-G1103, 5a Reunión de JCT-VC, Reunión de Ginebra, noviembre de 2011.
[6] JTCVC-D243, "Analysis of entropy slices approaches", 4a Reunión, Daegu, 2011.
[7] ISO/IEC 13818-1/2011, MPEG-2 Transport Stream, incluyendo los AMD 1 - 6.
[8] Protocolo de transporte en tiempo real del IETF, RFC de RTP 3550.
[9] Formato de carga útil de RTP del IETF, RFC de IETF 6184.
[10] JCTVC-F275, Wavefront and Cabac Flush: Different Degrees of Parallelism Without Transcoding, Reunión de Turín, XP030009298
[11] JCT-VC-F724, Wavefront Parallel Processing for HEVC Encoding and Decoding, Reunión de Turín, XP030009297
[12] Protocolo de Descripción de Sesión (SDP) del IETF, RFC 4566
[13] Formato de Carga Útil de RTP del IETF para Codificación de Vídeo de Alta Eficiencia, draft-schierl-payloadh265

Claims (15)

REIVINDICACIONES
1. Descodificador de HEVC (Codificación de Vídeo de Alta Eficiencia) configurado para
recibir una carga útil de secuencia de bytes sin procesar que describe una imagen en subflujos de WPP (Procesamiento Paralelo de Frente de Onda) con un subflujo de WPP por fila de LCU (Unidad de Codificación Más Grande) de la imagen y codificada usando CABAC (Codificación Aritmética Binaria Adaptativa al Contexto) desde un codificador en tramos en los que se segmentan los subflujos de WPP, teniendo de ese modo límites de tramo introducidos en los mismos;
descodificar por entropía los tramos con una continuación de la adaptación de probabilidad de CABAC a través de los límites de tramo introducidos dentro de los subflujos de WPP; y
descodificar la carga útil de secuencia de bytes sin procesar para obtener la imagen,
en donde el descodificador de HEVC está configurado para, al recibir los tramos, desintercalar los tramos identificando, para cada tramo, a qué subflujo de WPP pertenece el tramo respectivo,
en donde los tramos se paquetizan en paquetes de una forma tal que cada paquete comprende un tramo de cada subflujo de WPP de la imagen, o un subconjunto de los subflujos de WPP de la imagen, dispuestos en un orden definido entre los subflujos de WPP, comprendiendo cada paquete un encabezado que comprende información que revela las posiciones y/o las longitudes de los tramos empaquetados dentro del paquete respectivo, o unos marcadores que separan los tramos dentro del paquete respectivo entre sí, en donde el descodificador de HEVC está configurado para, al recibir la carga útil de secuencia de bytes sin procesar, usar la información comprendida por los encabezados o los marcadores con el fin de acceder a los tramos dentro de los paquetes, y en donde los paquetes que comprenden primeros tramos - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de w Pp de la imagen, comprenden un indicador de característica de retardo bajo, y los paquetes que comprenden segundos tramos o tramos posteriores - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de continuación.
2. Descodificador de HEVC de acuerdo con cualquiera de las reivindicaciones previas, en donde los tramos se paquetizan usando encabezados de sector, y el descodificador de HEVC está configurado para, al recibir los tramos, ser sensible, tras recibir un nuevo sector, a un indicador en el encabezado de sector del nuevo sector, un tipo_sector del nuevo sector o un tipo de unidad de NAL de una unidad de NAL que contiene el nuevo sector o bien con el fin de interrumpir la adaptación de probabilidad de CABAC restableciendo las probabilidades de CABAC o bien para continuar la adaptación de probabilidad de CABAC.
3. Descodificador de HEVC de acuerdo con la reivindicación 1 o 2, en donde los paquetes son unidades de NAL o sectores.
4. Descodificador de HEVC de acuerdo con cualquiera de las reivindicaciones 1 a 3, en donde la carga útil de secuencia de bytes sin procesar ha codificado una escena en capas correspondientes a diferentes puntos de vista.
5. Descodificador de HEVC de acuerdo con cualquiera de las reivindicaciones 1 a 4, en donde la carga útil de secuencia de bytes sin procesar ha codificado en la misma la imagen en capas.
6. Codificador de HEVC (Codificación de Vídeo de Alta Eficiencia) configurado para
formar, codificando una imagen, una carga útil de secuencia de bytes sin procesar con el fin de describir la imagen en subflujos de WPP (Procesamiento Paralelo de Frente de Onda) con un subflujo de WPP por fila de LCU (Unidad de Codificación Más Grande) de la imagen con una codificación por entropía de la secuencia de bytes sin procesar usando CABAC (Codificación Aritmética Binaria Adaptativa al Contexto), transmitiendo la secuencia de bytes sin procesar en tramos en los que se segmentan los subflujos de WPP, teniendo de ese modo límites de tramo introducidos en los mismos, y continuar la adaptación de probabilidad de CABAC en la codificación por entropía a través de los límites de tramo introducidos dentro de los subflujos de WPP,
en donde el codificador está configurado para intercalar los tramos de diferentes subflujos de WPP para su transmisión a un descodificador de HEVC,
en donde los tramos se paquetizan en paquetes de una forma tal que cada paquete comprende un tramo de cada subflujo de WPP de la imagen, o un subconjunto de los subflujos de WPP de la imagen, dispuestos en un orden definido entre los subflujos de WPP, comprendiendo cada paquete un encabezado que comprende información que revela las posiciones y/o las longitudes de los tramos empaquetados dentro del paquete respectivo, o unos marcadores que separan los tramos dentro del paquete respectivo entre sí, en donde la información comprendida por los encabezados o los marcadores va a ser usada por un descodificador de HEVC que recibe la carga útil de secuencia de bytes sin procesar con el fin de acceder a los tramos dentro de los paquetes,
en donde los paquetes que comprenden primeros tramos - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de característica de retardo bajo, y los paquetes que comprenden segundos tramos o tramos posteriores - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de continuación.
7. Codificador de acuerdo con la reivindicación 6, en donde la carga útil de secuencia de bytes sin procesar ha codificado una escena en capas correspondientes a diferentes puntos de vista.
8. Codificador de acuerdo con la reivindicación 6, en donde la carga útil de secuencia de bytes sin procesar ha codificado en la misma la imagen en capas.
9. Flujo de bits de vídeo de HEVC (Codificación de Vídeo de Alta Eficiencia) que comprende una carga útil de secuencia de bytes sin procesar que describe una imagen en subflujos de WPP (Procesamiento Paralelo de Frente de Onda) con un subflujo de WPP por fila de LCU (Unidad de Codificación Más Grande) de la imagen y codificada usando CABAC (Codificación Aritmética Binaria Adaptativa al Contexto), descomponiéndose el flujo de bits de vídeo de HEVC en tramos de los subflujos de WPP en los que se segmentan los subflujos de WPP, teniendo de ese modo límites de tramo introducidos en los mismos, con una continuación de la adaptación de probabilidad de CABAC a través de los límites de tramo introducidos dentro de los subflujos de WPP, en donde cada tramo incluye un indicación explícita de su rango entre los tramos en los que se descompone secuencialmente el subflujo de WPP al que pertenece del tramo respectivo, en donde se intercalan los tramos de diferentes subflujos de WPP,
en donde los tramos se paquetizan en paquetes de una forma tal que cada paquete comprende un tramo de cada subflujo de WPP de la imagen, o un subconjunto de los subflujos de WPP de la imagen, dispuestos en un orden definido entre los subflujos de WPP, comprendiendo cada paquete un encabezado que comprende información que revela las posiciones y/o las longitudes de los tramos empaquetados dentro del paquete respectivo, o unos marcadores que separan los tramos dentro del paquete respectivo entre sí, en donde la información comprendida por los encabezados o los marcadores va a ser usada por un descodificador de HEVC que recibe la carga útil de secuencia de bytes sin procesar con el fin de acceder a los tramos dentro de los paquetes,
en donde los paquetes que comprenden primeros tramos - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de característica de retardo bajo, y los paquetes que comprenden segundos tramos o tramos posteriores - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de continuación.
10. Flujo de bits de vídeo de HEVC de acuerdo con la reivindicación 9, en donde la carga útil de secuencia de bytes sin procesar ha codificado una escena en capas correspondientes a diferentes puntos de vista.
11. Flujo de bits de vídeo de HEVC de acuerdo con la reivindicación 9 o 10, en donde la carga útil de secuencia de bytes sin procesar ha codificado en la misma la imagen en capas.
12. Método de descodificación de HEVC (Codificación de Vídeo de Alta Eficiencia) que comprende recibir una carga útil de secuencia de bytes sin procesar que describe una imagen en subflujos de WPP con un subflujo de WPP (Procesamiento Paralelo de Frente de Onda) por fila de LCU (Unidad de Codificación Más Grande) de la imagen y codificada usando CABAC (Codificación Aritmética Binaria Adaptativa al Contexto) desde un codificador en tramos de los subflujos de WPP en los que se segmentan los subflujos de WPP, teniendo de ese modo límites de tramo introducidos en los mismos;
descodificar por entropía los tramos con una continuación de la adaptación de probabilidad de CABAC a través de los límites de tramo introducidos dentro de los subflujos de WPP; y
descodificar la carga útil de secuencia de bytes sin procesar para obtener la imagen, en donde, al recibir los tramos, los tramos se desintercalan identificando, para cada tramo, a qué subflujo de WPP pertenece el tramo respectivo, en donde los tramos se paquetizan en paquetes de una forma tal que cada paquete comprende un tramo de cada subflujo de WPP de la imagen, o un subconjunto de los subflujos de WPP de la imagen, dispuestos en un orden definido entre los subflujos de WPP, comprendiendo cada paquete un encabezado que comprende información que revela las posiciones y/o las longitudes de los tramos empaquetados dentro del paquete respectivo, o unos marcadores que separan los tramos dentro del paquete respectivo entre sí, en donde la recepción de la carga útil de secuencia de bytes sin procesar comprende usar la información comprendida por los encabezados o los marcadores con el fin de acceder a los tramos dentro de los paquetes,
en donde los paquetes que comprenden primeros tramos - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de característica de retardo bajo, y los paquetes que comprenden segundos tramos o tramos posteriores - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de continuación.
13. Método de desmultiplexación de transporte que comprende recibir un flujo de bits de vídeo de HEVC (Codificación de Vídeo de Alta Eficiencia) que comprende una carga útil de secuencia de bytes sin procesar que describe una imagen en subflujos de WPP (Procesamiento Paralelo de Frente de Onda) con un subflujo de WPP por fila de LCU (Unidad de Codificación Más Grande) de la imagen y codificada usando CABAC (Codificación Aritmética Binaria Adaptativa al Contexto), descomponiéndose el flujo de bits de vídeo de HEVC en tramos de los subflujos de WPP en los que se segmentan los subflujos de WPP, teniendo de ese modo límites de tramo introducidos en los mismos, con una continuación de la adaptación de probabilidad de CABAC a través de los límites de tramo introducidos dentro de los subflujos de WPP, en donde el método comprende identificar, para cada tramo, a partir de información comprendida por el flujo de bits de vídeo de HEVC para cada tramo, a qué subflujo de WPP pertenece el tramo respectivo, y asociar los tramos a los subflujos de WPP usando la información,
en donde los tramos de diferentes subflujos de WPP se intercalan para su transmisión a un descodificador de HEVC, en donde los tramos se paquetizan en paquetes de una forma tal que cada paquete comprende un tramo de cada subflujo de WPP de la imagen, o un subconjunto de los subflujos de WPP de la imagen, dispuestos en un orden definido entre los subflujos de WPP, comprendiendo cada paquete un encabezado que comprende información que revela las posiciones y/o las longitudes de los tramos empaquetados dentro del paquete respectivo, o unos marcadores que separan los tramos dentro del paquete respectivo entre sí, en donde la información comprendida por los encabezados o los marcadores va a ser usada por un descodificador de HEVC que recibe la carga útil de secuencia de bytes sin procesar con el fin de acceder a los tramos dentro de los paquetes,
en donde los paquetes que comprenden primeros tramos - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de característica de retardo bajo, y los paquetes que comprenden segundos tramos o tramos posteriores - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de continuación.
14. Método de codificación de HEVC (Codificación de Vídeo de Alta Eficiencia) que comprende formar, codificando una imagen, una carga útil de secuencia de bytes sin procesar con el fin de describir la imagen en subflujos de WPP (Procesamiento Paralelo de Frente de Onda) con un subflujo de WPP por fila de LCU (Unidad de Codificación Más Grande) de la imagen con una codificación por entropía de la secuencia de bytes sin procesar usando CABAC (Codificación Aritmética Binaria Adaptativa al Contexto), transmitiendo la secuencia de bytes sin procesar en tramos en los que se segmentan los subflujos de WPP, teniendo de ese modo límites de tramo introducidos en los mismos, y continuar la adaptación de probabilidad de CABAC en la codificación por entropía a través de los límites de tramo introducidos dentro de los subflujos de WPP, en donde los tramos de diferentes subflujos de WPP se intercalan para su transmisión a un descodificador de HEVC,
en donde los tramos se paquetizan en paquetes de una forma tal que cada paquete comprende un tramo de cada subflujo de WPP de la imagen, o un subconjunto de los subflujos de WPP de la imagen, dispuestos en un orden definido entre los subflujos de WPP, comprendiendo cada paquete un encabezado que comprende información que revela las posiciones y/o las longitudes de los tramos empaquetados dentro del paquete respectivo, o unos marcadores que separan los tramos dentro del paquete respectivo entre sí, en donde la información comprendida por los encabezados o los marcadores va a ser usada por un descodificador de HEVC que recibe la carga útil de secuencia de bytes sin procesar con el fin de acceder a los tramos dentro de los paquetes,
en donde los paquetes que comprenden primeros tramos - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de característica de retardo bajo, y los paquetes que comprenden segundos tramos o tramos posteriores - de acuerdo con el orden definido entre los subflujos de WPP - de los subflujos de WPP de la imagen, comprenden un indicador de continuación.
15. Un programa informático que comprende instrucciones que, cuando son ejecutadas por un ordenador, hacen que el ordenador lleve a cabo un método de acuerdo con cualquiera de las reivindicaciones 12 a 14.
ES13700753T 2012-01-20 2013-01-21 Concepto de codificación que permite procesamiento paralelo, desmultiplexor de transporte y flujo de bits de vídeo Active ES2886119T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261588849P 2012-01-20 2012-01-20
PCT/EP2013/051043 WO2013107906A2 (en) 2012-01-20 2013-01-21 Coding concept allowing parallel processing, transport demultiplexer and video bitstream

Publications (1)

Publication Number Publication Date
ES2886119T3 true ES2886119T3 (es) 2021-12-16

Family

ID=47594765

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13700753T Active ES2886119T3 (es) 2012-01-20 2013-01-21 Concepto de codificación que permite procesamiento paralelo, desmultiplexor de transporte y flujo de bits de vídeo

Country Status (23)

Country Link
US (7) US9930368B2 (es)
EP (2) EP2805491B1 (es)
JP (5) JP2015507899A (es)
KR (11) KR101862329B1 (es)
CN (5) CN109729356B (es)
AU (7) AU2013211002B2 (es)
BR (2) BR112014017915B1 (es)
CA (2) CA3081964A1 (es)
CL (1) CL2014001886A1 (es)
ES (1) ES2886119T3 (es)
HK (1) HK1204182A1 (es)
HU (1) HUE055964T2 (es)
IL (8) IL298776B1 (es)
IN (1) IN2014KN01699A (es)
MX (1) MX350507B (es)
MY (1) MY167465A (es)
PH (5) PH12014501660A1 (es)
RU (2) RU2679551C2 (es)
SG (3) SG11201404251QA (es)
TW (5) TWI804390B (es)
UA (2) UA114618C2 (es)
WO (1) WO2013107906A2 (es)
ZA (1) ZA201406040B (es)

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR101862329B1 (ko) * 2012-01-20 2018-05-29 지이 비디오 컴프레션, 엘엘씨 병렬 처리, 전송 디멀티플렉서 및 비디오 비트스트림을 허용하는 코딩 개념
KR102312989B1 (ko) * 2012-03-22 2021-10-14 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
PL3024243T3 (pl) * 2012-04-16 2018-01-31 Ericsson Telefon Ab L M Flaga stałej struktury płytek, wskazująca na możliwość równoległego przetwarzania dla sekwencji skompresowanego wideo
JP6080405B2 (ja) * 2012-06-29 2017-02-15 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9621905B2 (en) * 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
MX348737B (es) 2012-08-09 2017-06-27 Panasonic Ip Corp America Metodo decodificador de imagen, metodo codificador de imagen, aparato decodificador de imagen, aparato codificador de imagen, y aparato codificador y decodificador de imagen.
US9491457B2 (en) 2012-09-28 2016-11-08 Qualcomm Incorporated Signaling of regions of interest and gradual decoding refresh in video coding
TR201906908T4 (tr) * 2013-01-04 2019-05-21 Samsung Electronics Co Ltd Dilim parçaları için entropi kod çözme cihazı.
US9924165B1 (en) * 2013-07-03 2018-03-20 Ambarella, Inc. Interleaved video coding pipeline
US9578328B2 (en) 2013-07-15 2017-02-21 Qualcomm Incorporated Cross-layer parallel processing and offset delay parameters for video coding
KR102416235B1 (ko) 2013-07-15 2022-07-05 지이 비디오 컴프레션, 엘엘씨 다계층식 비디오 코딩에서의 저지연 개념
JP6268066B2 (ja) * 2013-09-20 2018-01-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法、受信方法、送信装置及び受信装置
US9270999B2 (en) 2013-09-25 2016-02-23 Apple Inc. Delayed chroma processing in block processing pipelines
US9299122B2 (en) 2013-09-25 2016-03-29 Apple Inc. Neighbor context processing in block processing pipelines
US9305325B2 (en) 2013-09-25 2016-04-05 Apple Inc. Neighbor context caching in block processing pipelines
US9596470B1 (en) 2013-09-27 2017-03-14 Ambarella, Inc. Tree-coded video compression with coupled pipelines
US9571846B2 (en) 2013-09-27 2017-02-14 Apple Inc. Data storage and access in block processing pipelines
US9578372B2 (en) * 2013-09-27 2017-02-21 Cisco Technology, Inc. Delay tolerant decoder
US9215472B2 (en) 2013-09-27 2015-12-15 Apple Inc. Parallel hardware and software block processing pipelines
US9218639B2 (en) 2013-09-27 2015-12-22 Apple Inc. Processing order in block processing pipelines
KR102318785B1 (ko) 2013-10-14 2021-10-27 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 영상 코딩 및 디코딩에 대한 기본 색상 인덱스 맵 모드의 특징
EP3058736B1 (en) 2013-10-14 2019-02-27 Microsoft Technology Licensing, LLC Encoder-side options for intra block copy prediction mode for video and image coding
WO2015054811A1 (en) 2013-10-14 2015-04-23 Microsoft Corporation Features of intra block copy prediction mode for video and image coding and decoding
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
BR112016015080A2 (pt) 2014-01-03 2017-08-08 Microsoft Technology Licensing Llc Predição de vetor de bloco em codificação / decodificação de vídeo e imagem
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10212441B2 (en) * 2014-02-12 2019-02-19 Chips & Media, Inc. Method and apparatus for processing video
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
AU2014385769B2 (en) 2014-03-04 2018-12-06 Microsoft Technology Licensing, Llc Block flipping and skip mode in intra block copy prediction
US10827178B2 (en) 2014-05-28 2020-11-03 Arris Enterprises Llc Content aware scheduling in a HEVC decoder operating on a multi-core processor platform
US10785486B2 (en) 2014-06-19 2020-09-22 Microsoft Technology Licensing, Llc Unified intra block copy and inter prediction modes
US9807410B2 (en) 2014-07-02 2017-10-31 Apple Inc. Late-stage mode conversions in pipelined video encoders
CA3171803A1 (en) 2014-09-30 2016-04-07 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
US10027989B2 (en) * 2015-05-06 2018-07-17 Integrated Device Technology, Inc. Method and apparatus for parallel decoding
CN106664405B (zh) 2015-06-09 2020-06-09 微软技术许可有限责任公司 用调色板模式对经逸出编码的像素的稳健编码/解码
US10003811B2 (en) 2015-09-01 2018-06-19 Microsoft Technology Licensing, Llc Parallel processing of a video frame
US20170105010A1 (en) * 2015-10-09 2017-04-13 Microsoft Technology Licensing, Llc Receiver-side modifications for reduced video latency
US10230948B2 (en) * 2016-02-03 2019-03-12 Mediatek Inc. Video transmitting system with on-the-fly encoding and on-the-fly delivering and associated video receiving system
JP6714078B2 (ja) * 2016-05-10 2020-06-24 オリンパス株式会社 画像処理装置、画像処理方法及び画像処理プログラム
EP3996375A1 (en) * 2016-05-26 2022-05-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Broadcast streaming of panoramic video for interactive clients
CN107483950A (zh) * 2016-06-07 2017-12-15 北京大学 图片并行编码方法及系统
US20180020228A1 (en) * 2016-07-12 2018-01-18 Mediatek Inc. Video processing system with multiple syntax parsing circuits and/or multiple post decoding circuits
EP3603074A2 (en) * 2017-03-20 2020-02-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Advanced video data stream extraction and multi-resolution video transmission
WO2018207956A1 (ko) * 2017-05-10 2018-11-15 엘지전자(주) 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
GB2569269B (en) 2017-10-20 2020-07-15 Graphcore Ltd Synchronization in a multi-tile processing arrangement
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
GB2569645B (en) * 2017-12-22 2022-02-23 Displaylink Uk Ltd Managing data for transportation
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US11252429B2 (en) * 2018-04-27 2022-02-15 Ati Technologies Ulc Low-latency consumption of an encoded video bitstream
WO2020003274A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
CN115134599A (zh) 2018-06-29 2022-09-30 抖音视界有限公司 更新查找表(lut)的条件
BR112020024202A2 (pt) 2018-06-29 2021-02-17 Beijing Bytedance Network Technology Co., Ltd. método de processamento de dados de vídeo, aparelho de processamento de vídeo e meios de armazenamento e gravação legíveis por computador não transitório
TWI752331B (zh) 2018-06-29 2022-01-11 大陸商北京字節跳動網絡技術有限公司 當向Merge/AMVP添加HMVP候選時的部分/完全修剪
EP3791587A1 (en) * 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Resetting of look up table per slice/tile/lcu row
TWI723444B (zh) 2018-06-29 2021-04-01 大陸商北京字節跳動網絡技術有限公司 使用一個或多個查找表來按順序存儲先前編碼的運動信息並使用它們來編碼後面的塊的概念
MX2020013828A (es) 2018-06-29 2021-03-25 Beijing Bytedance Network Tech Co Ltd Interaccion entre lut y amvp.
EP3791589A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Which lut to be updated or no updating
CN110662057B (zh) 2018-06-29 2022-06-21 北京字节跳动网络技术有限公司 视频处理方法、装置、设备以及存储比特流的方法
JP7181395B2 (ja) 2018-07-02 2022-11-30 北京字節跳動網絡技術有限公司 イントラ予測モードを有するルックアップテーブルおよび非隣接ブロックからのイントラモード予測
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
TW202006659A (zh) * 2018-07-03 2020-02-01 財團法人工業技術研究院 點雲拼貼處理方法及裝置
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
JP2022502955A (ja) 2018-09-28 2022-01-11 中▲興▼通▲訊▼股▲ふぇん▼有限公司Zte Corporation ビデオエンコードおよびデコード方法、および装置
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US11206244B2 (en) * 2018-12-21 2021-12-21 ARRIS Enterprise LLC Method to preserve video data obfuscation for video frames
KR20240010576A (ko) 2019-01-10 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
WO2020197236A1 (ko) * 2019-03-24 2020-10-01 엘지전자 주식회사 서브 픽처 핸들링 구조 기반 영상 또는 비디오 코딩
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
WO2020231220A1 (ko) * 2019-05-15 2020-11-19 현대자동차주식회사 동영상 데이터의 병렬 부호화 및 복호화를 위한 방법 및 장치
KR20200132761A (ko) 2019-05-15 2020-11-25 현대자동차주식회사 동영상 데이터의 병렬 부호화 및 복호화를 위한 방법 및 장치
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11398833B2 (en) 2019-10-02 2022-07-26 Apple Inc. Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11475605B2 (en) 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
CN115918067A (zh) * 2020-06-12 2023-04-04 字节跳动有限公司 多层视频编解码的图片标头约束
CN111726626B (zh) * 2020-06-18 2022-05-03 格兰菲智能科技有限公司 集成电路及用于视频解码的概率表存储方法
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
TWI774233B (zh) * 2020-09-23 2022-08-11 瑞昱半導體股份有限公司 訊號傳輸系統與發射端編碼裝置
US20240070921A1 (en) * 2020-12-10 2024-02-29 Apple Inc. Concatenation of chunked entropy streams
US11375242B1 (en) 2021-01-27 2022-06-28 Qualcomm Incorporated Compression of bitstream indexes for parallel entropy coding
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
CN112995237B (zh) * 2021-05-21 2021-10-08 杭州博雅鸿图视频技术有限公司 一种用于处理视频数据流的方法、装置、设备及存储介质
KR20230022061A (ko) 2021-08-06 2023-02-14 삼성전자주식회사 디코딩 장치 및 그의 동작 방법
CN114339349A (zh) * 2021-12-10 2022-04-12 海信视像科技股份有限公司 一种显示设备、数据传输方法及存储介质
GB2621917A (en) * 2022-06-16 2024-02-28 Mbda Uk Ltd Method for image encoding

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926205A (en) 1994-10-19 1999-07-20 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US6683909B1 (en) * 2000-03-16 2004-01-27 Ezenial Inc. Macroblock parsing without processing overhead
AU2003281133A1 (en) 2002-07-15 2004-02-02 Hitachi, Ltd. Moving picture encoding method and decoding method
BRPI0406665A (pt) 2003-01-09 2005-12-06 Thomson Licensing Sa Método e equipamento para mapear uma corrente de transporte mpeg para pacotes ip para irradiação por wlan
US7688895B2 (en) * 2003-07-22 2010-03-30 Lsi Corporation Method and/or circuit for binary arithmetic decoding decisions before termination
US7558954B2 (en) 2003-10-31 2009-07-07 Hewlett-Packard Development Company, L.P. Method and apparatus for ensuring the integrity of data
JP4931034B2 (ja) * 2004-06-10 2012-05-16 株式会社ソニー・コンピュータエンタテインメント 復号装置および復号方法、並びに、プログラムおよびプログラム記録媒体
US20060002479A1 (en) 2004-06-22 2006-01-05 Fernandes Felix C A Decoder for H.264/AVC video
US20060062312A1 (en) 2004-09-22 2006-03-23 Yen-Chi Lee Video demultiplexer and decoder with efficient data recovery
US7675872B2 (en) 2004-11-30 2010-03-09 Broadcom Corporation System, method, and apparatus for displaying pictures
DE102005025225A1 (de) 2005-06-01 2006-12-07 Sanofi-Aventis Deutschland Gmbh Verfahren zur Herstellung von 2-(2-Amino-pyrimidin-4-yl)-1H-indol-5-carbonsäure-derivaten
CN101346998B (zh) 2006-01-05 2012-01-11 日本电信电话株式会社 视频编码方法及解码方法、其装置
US8315308B2 (en) * 2006-01-11 2012-11-20 Qualcomm Incorporated Video coding with fine granularity spatial scalability
JP2007214998A (ja) * 2006-02-10 2007-08-23 Fuji Xerox Co Ltd 符号化装置、復号化装置、符号化方法、復号化方法、及びプログラム
US20090279612A1 (en) 2006-07-05 2009-11-12 Purvin Bibhas Pandit Methods and apparatus for multi-view video encoding and decoding
US8275045B2 (en) 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
US20080040498A1 (en) 2006-08-10 2008-02-14 Nokia Corporation System and method of XML based content fragmentation for rich media streaming
US7460725B2 (en) 2006-11-09 2008-12-02 Calista Technologies, Inc. System and method for effectively encoding and decoding electronic information
JP2008141483A (ja) * 2006-12-01 2008-06-19 Brother Ind Ltd ツリー型配信システム、ノード装置、情報処理プログラム及び情報配信方法
KR100849495B1 (ko) 2006-12-04 2008-07-31 한국전자통신연구원 Rtp 패킷화 모드별 비트율 생성 방법
CN101198051B (zh) * 2006-12-07 2011-10-05 深圳艾科创新微电子有限公司 基于h.264的熵解码器的实现方法及装置
WO2009025357A1 (ja) * 2007-08-22 2009-02-26 Nippon Telegraph And Telephone Corporation 映像品質推定装置、映像品質推定方法、フレーム種別判定方法、および記録媒体
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
CN101170688B (zh) * 2007-11-26 2010-12-01 电子科技大学 一种宏块模式的快速选择方法
US8542748B2 (en) 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
JP4875024B2 (ja) * 2008-05-09 2012-02-15 株式会社東芝 画像情報伝送装置
US8619856B2 (en) * 2008-10-03 2013-12-31 Qualcomm Incorporated Video coding with large macroblocks
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US9467699B2 (en) * 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
KR101063424B1 (ko) 2009-02-02 2011-09-07 주식회사 코아로직 비디오 데이터 처리 장치 및 방법
JP2010278668A (ja) * 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
JP5212319B2 (ja) 2009-09-08 2013-06-19 ブラザー工業株式会社 符号化装置、符号化方法、および符号化プログラム
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
TWI403170B (zh) * 2010-05-21 2013-07-21 Univ Nat Chiao Tung 背景調適性二進制算術解碼裝置及其解碼方法
US20110310976A1 (en) 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
US8344917B2 (en) * 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
US20120163457A1 (en) * 2010-12-28 2012-06-28 Viktor Wahadaniah Moving picture decoding method, moving picture coding method, moving picture decoding apparatus, moving picture coding apparatus, and moving picture coding and decoding apparatus
JP2012147127A (ja) * 2011-01-07 2012-08-02 Sony Corp 画像処理装置および方法
US9370647B2 (en) 2011-07-14 2016-06-21 W. L. Gore & Associates, Inc. Expandable medical devices
UA114670C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Кодування масиву зразків з малою затримкою
GB201119180D0 (en) 2011-11-07 2011-12-21 Sony Corp Data encoding and decoding
KR101862329B1 (ko) 2012-01-20 2018-05-29 지이 비디오 컴프레션, 엘엘씨 병렬 처리, 전송 디멀티플렉서 및 비디오 비트스트림을 허용하는 코딩 개념
DK3793200T3 (da) * 2012-04-13 2023-02-13 Ge Video Compression Llc Billedkodning med lav forsinkelse

Also Published As

Publication number Publication date
CN109729357A (zh) 2019-05-07
IL290402B2 (en) 2023-05-01
MX2014008695A (es) 2014-11-21
IL262644A (en) 2018-12-31
PH12018500346A1 (en) 2018-07-09
MX350507B (es) 2017-09-08
US20140334557A1 (en) 2014-11-13
TWI559744B (zh) 2016-11-21
IL290402A (en) 2022-04-01
IL284595B (en) 2022-03-01
KR20140131926A (ko) 2014-11-14
US10873766B2 (en) 2020-12-22
PH12014501660B1 (en) 2014-10-13
IL284595A (en) 2021-08-31
CA2861951C (en) 2020-08-11
TW202315404A (zh) 2023-04-01
US20190306537A1 (en) 2019-10-03
TW201336314A (zh) 2013-09-01
WO2013107906A3 (en) 2013-09-26
HUE055964T2 (hu) 2022-01-28
JP2016158267A (ja) 2016-09-01
US10887625B2 (en) 2021-01-05
PH12014501660A1 (en) 2014-10-13
IL233699A0 (en) 2014-09-30
IL262644B (en) 2019-07-31
AU2013211002B2 (en) 2016-01-14
KR20170078850A (ko) 2017-07-07
CN104081781A (zh) 2014-10-01
IL298776A (en) 2023-02-01
CN109729355A (zh) 2019-05-07
KR101718488B1 (ko) 2017-03-21
AU2020244429A1 (en) 2020-10-29
CA3081964A1 (en) 2013-07-25
US10880577B2 (en) 2020-12-29
AU2017210565A1 (en) 2017-08-24
JP2015507899A (ja) 2015-03-12
PH12018500346B1 (en) 2018-07-09
PH12018500345A1 (en) 2018-07-09
KR101752879B1 (ko) 2017-06-30
IL267776A (en) 2019-08-29
CN109729356B (zh) 2022-07-08
AU2019226180B2 (en) 2020-07-02
PH12018500344B1 (en) 2018-07-09
AU2021290315B2 (en) 2023-08-17
ZA201406040B (en) 2015-12-23
IL251266B (en) 2018-10-31
KR102210228B1 (ko) 2021-02-01
RU2017103637A3 (es) 2019-01-18
AU2016202208A1 (en) 2016-05-05
RU2014134041A (ru) 2016-03-20
CN104081781B (zh) 2018-11-02
US20180167640A1 (en) 2018-06-14
UA114618C2 (uk) 2017-07-10
KR20180059571A (ko) 2018-06-04
AU2013211002A1 (en) 2014-09-18
CA2861951A1 (en) 2013-07-25
US20180167641A1 (en) 2018-06-14
JP2022165992A (ja) 2022-11-01
PH12018500344A1 (en) 2018-07-09
KR102365958B1 (ko) 2022-02-23
SG11201404251QA (en) 2014-08-28
IL290402B1 (en) 2023-01-01
KR20150003407A (ko) 2015-01-08
RU2019102609A (ru) 2020-07-30
KR20220025288A (ko) 2022-03-03
RU2679551C2 (ru) 2019-02-11
KR101863177B1 (ko) 2018-05-31
AU2016202208B2 (en) 2017-05-04
JP6808341B2 (ja) 2021-01-06
KR101863179B1 (ko) 2018-05-31
US9930368B2 (en) 2018-03-27
AU2017210565B2 (en) 2019-06-20
PH12018500345B1 (en) 2018-07-09
JP7111771B2 (ja) 2022-08-02
US10880578B2 (en) 2020-12-29
TW202218426A (zh) 2022-05-01
HK1204182A1 (en) 2015-11-06
IL298776B1 (en) 2024-03-01
MY167465A (en) 2018-08-29
KR102070887B1 (ko) 2020-01-29
IL267776B (en) 2021-07-29
TW201921939A (zh) 2019-06-01
US20190124364A1 (en) 2019-04-25
JP2018198447A (ja) 2018-12-13
KR20200010606A (ko) 2020-01-30
RU2610291C2 (ru) 2017-02-08
US20210044835A1 (en) 2021-02-11
KR20210012066A (ko) 2021-02-02
KR101862329B1 (ko) 2018-05-29
RU2017103637A (ru) 2019-01-18
BR122020007529B1 (pt) 2021-09-21
JP2020167719A (ja) 2020-10-08
BR112014017915B1 (pt) 2021-03-16
KR101863181B1 (ko) 2018-05-31
TW202339503A (zh) 2023-10-01
TWI753214B (zh) 2022-01-21
IL251266A0 (en) 2017-05-29
CN109729357B (zh) 2022-07-26
KR20170077295A (ko) 2017-07-05
CN109729356A (zh) 2019-05-07
IN2014KN01699A (es) 2015-10-23
EP2805491B1 (en) 2021-05-12
KR20170078851A (ko) 2017-07-07
CN109729350B (zh) 2023-04-07
CN109729350A (zh) 2019-05-07
TW201728174A (zh) 2017-08-01
AU2021290315A1 (en) 2022-01-27
KR102510411B1 (ko) 2023-03-16
US10880579B2 (en) 2020-12-29
PH12018500347A1 (en) 2018-07-09
PH12018500347B1 (en) 2018-07-09
TWI804390B (zh) 2023-06-01
AU2023266237A1 (en) 2024-02-08
BR112014017915A2 (pt) 2019-10-08
KR20170078852A (ko) 2017-07-07
EP3923578A1 (en) 2021-12-15
SG10201606621XA (en) 2016-09-29
AU2020244429B2 (en) 2021-09-30
IL310411A (en) 2024-03-01
UA124569C2 (uk) 2021-10-13
IL233699A (en) 2017-04-30
RU2019102609A3 (es) 2021-11-23
US20190124365A1 (en) 2019-04-25
JP6721638B2 (ja) 2020-07-15
CN109729355B (zh) 2022-07-26
US11997319B2 (en) 2024-05-28
EP2805491A2 (en) 2014-11-26
SG10202001107WA (en) 2020-04-29
WO2013107906A2 (en) 2013-07-25
AU2019226180A1 (en) 2019-09-26
KR20230038817A (ko) 2023-03-21
CL2014001886A1 (es) 2014-11-21
TWI645715B (zh) 2018-12-21
TWI775701B (zh) 2022-08-21

Similar Documents

Publication Publication Date Title
ES2886119T3 (es) Concepto de codificación que permite procesamiento paralelo, desmultiplexor de transporte y flujo de bits de vídeo
RU2808541C1 (ru) Принцип кодирования, делающий возможной параллельную обработку, транспортный демультиплексор и битовый поток видео