MX2015003694A - Tiempos de remocion de memoria intermedia de imagenes codificadas independientes de la unidad de accceso en la codificacion de video. - Google Patents
Tiempos de remocion de memoria intermedia de imagenes codificadas independientes de la unidad de accceso en la codificacion de video.Info
- Publication number
- MX2015003694A MX2015003694A MX2015003694A MX2015003694A MX2015003694A MX 2015003694 A MX2015003694 A MX 2015003694A MX 2015003694 A MX2015003694 A MX 2015003694A MX 2015003694 A MX2015003694 A MX 2015003694A MX 2015003694 A MX2015003694 A MX 2015003694A
- Authority
- MX
- Mexico
- Prior art keywords
- cpb
- decoding
- sub
- video
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 288
- 238000003860 storage Methods 0.000 claims description 47
- 230000003139 buffering effect Effects 0.000 claims description 29
- 238000011084 recovery Methods 0.000 claims description 23
- 230000000295 complement effect Effects 0.000 claims description 20
- 230000006872 improvement Effects 0.000 claims description 9
- 230000000153 supplemental effect Effects 0.000 abstract 1
- 230000033001 locomotion Effects 0.000 description 64
- 238000012545 processing Methods 0.000 description 42
- 239000013598 vector Substances 0.000 description 28
- 230000011664 signaling Effects 0.000 description 26
- 238000009795 derivation Methods 0.000 description 24
- 238000013139 quantization Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 13
- 230000006978 adaptation Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 12
- 230000006835 compression Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 11
- 230000003466 anti-cipated effect Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 9
- 241000238876 Acari Species 0.000 description 8
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000011002 quantification Methods 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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 characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Un dispositivo de codificación de video, tal como un codificador de video o un decodificador de video, puede ser configurado para codificar una duración entre el tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU; el dispositivo de codificación de video además puede determinar un tiempo de remoción de la DU con base al menos en la duración codificada; el dispositivo de codificación también puede codificar un mensaje de información de mejora complementaria (SEI) de temporización de sub-imagen asociado con la primera DU; el dispositivo de codificación de video además puede determinar un tiempo de remoción de la DU con base, al menos en parte, en el mensaje SEI de temporización de sub-imagen.
Description
TIEMPOS DE REMOCION DE MEMORIA INTERMEDIA DE IMÁGENES
CODIFICADAS INDEPENDIENTES DE LA UNIDAD DE ACCCESO EN LA
CODIFICACION DE VIDEO
CAMPO DE LA INVENCION
Esta divulgación se refiere a la codificación de video.
ANTECEDENTES DE LA INVENCION
Las capacidades de video digital se pueden incorporar en un amplio rango de dispositivos, incluyendo televisiones digitales, sistemas de transmisión directa digital, sistemas de transmisión inalámbrica, asistentes digitales personales (PDAs), computadoras laptop o de escritorio, computadoras de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de juegos de video, consolas de juegos de video, teléfonos radio satelitales o celulares, denominados "teléfonos inteligentes", dispositivos de teleconferencia de video, dispositivos de corriente de video, y similar. Los dispositivos de video digital implementan téenicas de compresión de video tales como aquellas descritas en los estándares definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación de Video Avanzada
(AVC), el Estándar de Codificación de Video de Alta
Eficiencia (HEVC), y extensiones de dichos estándares. Los dispositivos de video pueden transmitir, recibir, codificar, decodificar y/o almacenar información de video digital de manera más eficiente implementando dichas téenicas de compresión de video.
Las técnicas de compresión de video ejecutan predicción espacial (intra-imagen) y/o predicción temporal (inter imagen) para reducir o remover la redundancia inherente en las secuencias de video. Para codificación de video basada en bloque, una porción de video (es decir, un cuadro de video o una porción de un cuadro de video) se puede dividir en bloques de video, los cuales también se pueden referir como bloques de árbol, unidades de codificación (CUs), y/o nodos de codificación. Los bloques de video en una porción intra-codificada (I) de una imagen son codificados utilizando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de video en una porción ínter-codificada (P o B) de una imagen pueden utilizar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes se pueden referir como cuadros, y las imágenes de referencia se pueden referir como cuadros de referencia.
La predicción espacial o temporal tiene como resultado un blogue predictivo para gue un blogue sea codificado. Los datos residuales representan diferencias de pixel entre el blogue original gue se va a codificar y el bloque predictivo. Un bloque inter-codificado es codificado de acuerdo con un vector de movimiento que señala a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales indicando la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado es codificado de acuerdo con un modo de intra-codificación y los datos residuales. Para compresión adicional, los datos residuales se pueden transformar del dominio de pixel a un dominio de transformada, teniendo como resultado coeficientes de transformada residuales, los cuales entonces se pueden cuantificar. Los coeficientes de transformada cuantificados, inicialmente acomodados en un arreglo bidimensional, se pueden escanear para producir un vector unidimensional de los coeficientes de transformada, y se puede aplicar codificación por entropía para lograr incluso más compresión.
BREVE DESCRIPCION DE LA INVENCION
En general, las téenicas descritas en esta divulgación están relacionadas con la señalización y derivación de tiempos de remoción de memoria intermedia de imágenes codificadas en la
codificación de video.
En un ejemplo, las téenicas descritas en esta divulgación están relacionadas con un método para decodificar datos de video. El método puede incluir la decodificación de una duración entre la remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU. El método además incluye determinar un tiempo de remoción de la primera DU con base, al menos en parte, en la duración decodificada y decodificar datos de video de la primera DU con base, al menos en parte, en el tiempo de remoción.
En otro ejemplo, las técnicas descritas en esta divulgación están relacionadas con un método para codificar datos de video. El método puede incluir codificar una duración entre la remoción CPB de una primera DU en una AU y la remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU. El método además puede incluir, determinar un tiempo de remoción de la primera DU con base, al menos en parte en la duración codificada.
En otro ejemplo todavía, se proporciona un dispositivo
de codificación de video que comprende un codificador de video. El codificador de video está configurado para codificar una duración entre la remoción CPB de una primera DU en una AU y una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU. El codificador de video además está configurado para determinar un tiempo de remoción de la DU con base al menos en la duración codificada.
Téenicas aquí descritas también incluyen un ejemplo de un medio de almacenamiento legible por computadora que tiene almacenadas en el mismo instrucciones que, cuando son ejecutadas, ocasionan que un procesador de un dispositivo para codificar datos de video codifique una duración entre la remoción CPB de una primera DU en una AU y una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma DU que la primera DU. Las instrucciones, cuando los ejecutadas, también sirven para que el procesador determine un tiempo de remoción de la DU con base al menos en la duración codificada.
En otro ejemplo, las técnicas descritas en esta divulgación están relacionadas con un dispositivo de codificación de video. El dispositivo de codificación de video puede incluir medios para codificar una duración entre la remoción de memoria intermedia de imágenes codificadas
(CPB) de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU. El dispositivo de codificación de video además puede incluir medios para determinar un tiempo de remoción de la DU con base al menos en la duración codificada.
Estas téenicas ejemplares se pueden implementar juntas o por separado. Las técnicas de esta divulgación también se describen en términos de aparatos configurados para implementar las técnicas, asi como medios de almacenamiento legibles por computadora que almacenan instrucciones que ocasionan que uno o más procesadores ejecuten las técnicas.
Los detalles de uno o más ejemplos se establecen en los dibujos acompañantes y en la siguiente descripción. Otras características, objetivos y ventajas serán aparentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCION DE LAS FIGURAS
La figura 1 es un diagrama en bloques que ilustra un sistema de codificación y decodificación de video que puede utilizar las técnicas descritas en esta divulgación.
La figura 2 es un diagrama en bloques que ilustra un
ejemplo del codificador de video que puede implementar las téenicas descritas en esta divulgación.
La figura 3 es un diagrama en bloques que ilustra un decodificador de video ejemplar que puede implementar las técnicas descritas en esta divulgación.
La figura 4 es un diagrama conceptual que ilustra dos unidades de acceso (AU) en el orden de decodificación consecutivo que pueden tener tiempos de decodificación determinados de acuerdo con las técnicas descritas en esta divulgación.
La figura 5 es un gráfico de flujo que ilustra un método para determinar un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación (DU) en una AU con base en el tiempo de remoción CPB para una segunda DU de la AU de acuerdo con las técnicas descritas en esta divulgación.
La figura 6 es un gráfico de flujo que ilustra otro método para determinar un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación en una unidad de acceso con base en el tiempo de remoción CPB para una segunda unidad de decodificación de la unidad de acceso de acuerdo con las técnicas descritas en esta divulgación.
La figura 7 es un gráfico de flujo que ilustra un método
para derivar un tiempo de remoción CPB de la primera DU con base al menos en parte en el mensaje SEI de temporización de sub-imagen de acuerdo con las téenicas descritas en esta divulgación.
La figura 8 es un gráfico de flujo que ilustra otro método para derivar un tiempo de remoción CPB de la primera DU con base al menos en parte en la codificación de un mensaje SEI de temporización de sub-imagen de acuerdo con las técnicas descritas en esta divulgación.
La figura 9 es un gráfico de flujo que ilustra un método para decodificar un indicador de nivel de secuencia para el parámetro de memoria intermedia de imágenes codificadas de nivel de sub-imagen de acuerdo con las técnicas descritas en esta divulgación.
La figura 10 es un gráfico de flujo que ilustra un método para codificar el indicador de nivel de secuencia para el parámetro de memoria intermedia de imágenes codificadas de nivel de sub-imagen de acuerdo con las técnicas descritas en esta divulgación.
La figura 11 es un gráfico de flujo que ilustra un método para decodificar una DU que tiene una definición expandida de acuerdo con las técnicas descritas en esta divulgación .
La figura 12 es un gráfico de flujo que ilustra un
método para codificar una DU que tiene una definición expandida de acuerdo con las téenicas descritas en esta divulgación.
La figura 13 es un gráfico de flujo que ilustra un método para decodificar el periodo de memoria intermedia de acuerdo con las técnicas descritas en esta divulgación.
La figura 14 es un gráfico de flujo que ilustra un método para codificar el periodo de memoria intermedia de acuerdo con las técnicas descritas en esta divulgación.
La figura 15 es un gráfico de flujo que ilustra un método para decodificar los tiempos de remoción nominal y de llegada de memoria intermedia de imágenes codificadas de acuerdo con las técnicas descritas en esta divulgación.
La figura 16 es un gráfico de flujo que ilustra un método para codificar los tiempos de remoción nominal y de llegada de memoria intermedia de imágenes codificadas de acuerdo con las técnicas descritas en esta divulgación.
DESCRIPCION DETALLADA DE LA INVENCION
Esta divulgación describe técnicas para señalización eficiente y resiliente AL error y derivación de tiempos de remoción de memoria intermedia de imágenes codificadas (CPB) de unidades de datos codificados en la codificación de video.
Los tiempos de remoción CPB también son conocidos como
tiempos de decodificación. La divulgación proporciona téenicas para determinar un tiempo de remoción CPB para una unidad de decodificación (DU) de una unidad de acceso (AU) que es independiente de los tiempos de remoción de cualquier otra AU. Por ejemplo, los tiempos de remoción CPB para una DU actual de una AU serán señalizados con base ya sea en una duración entre un tiempo de remoción CPB de una siguiente DU en un orden de decodificación en la AU y la DU actual o una duración entre el tiempo de remoción CPB de la última DU en la AU y la DU actual. En otro ejemplo, la derivación del tiempo de remoción CPB es especificada en una forma que utiliza información llevada en mensajes de información de mejora complementaria (SEI) de temporización de sub-imágenes. La duración entre la remoción CPB de la última DU en la AU en el orden de decodificación y la DU asociada con un mensaje SEI de temporización de sub-imagen es señalizada.
Además, se proporcionan técnicas para incluir un indicador de nivel de secuencia que puede ser señalizado para indicar si los parámetros CPB de sub-imagen presiden únicamente en uno de los mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen, pero nunca en ambos, de acuerdo con las técnicas aquí descritas. El indicador que iguala 1 indica que los parámetros de retraso de remoción CPB de nivel de sub-imagen están
presentes en los mensajes SEI de temporización de imagen y que ningún mensaje SEI de temporización de sub-imagen está presente. El indicador que iguala 0 indica que los parámetros de retraso de remoción CPB de nivel de sub-imagen están presentes en los mensajes SEI de temporización de sub-imagen y que los mensajes SEI de temporización de imagen no incluyen parámetros de retraso de remoción CPB de nivel de sub-imagen.
Esta divulgación también proporciona téenicas para expandir una definición de una unidad de decodificación. Esta divulgación además proporciona técnicas para restringir los mensajes SEI del periodo de almacenamiento en memoria intermedia y mensajes SEI del punto de recuperación de manera que no pueden ser asociados con las AUs con una variable, Temporalld, mayor que 0. La variable Temporalld es derivada de un elemento de sintaxis asociado con cada AU. Esta divulgación también proporciona técnicas para proporcionar un indicador para señalizar si se derivan los tiempos de remoción CPB a un nivel AU o a un nivel de sub-imagen.
Las técnicas aquí descritas pueden aplicar a diversos estándares de codificación de video. Los estándares de codificación de video incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual y ITU-T H.264 (también conocido como
ISO/IEC MPEG-4 AVC) incluyendo sus extensiones de
Codificación de Video Escalable (SVC) y Codificación de Video Multivista (MVC).
Además, existe un nuevo estándar de codificación de video, concretamente la codificación de video de alta eficiencia (HEVC), que es desarrollada por el equipo de colaboración conjunta en la codificación de video (JCT-VC) del grupo de expertos de codificación de video ITU-T (VCEG) y el Grupo de Expertos de Imágenes en Movimiento ISO/IEC (MPEG). Un Bosquejo de Trabajo reciente (WD) de HEVC es el Bosquejo de Trabajo 8, y en lo sucesivo se refiere como HEVC WD. Bross et al, High Efficiency Video Coding (HEVC) Text Specification Draft 8, Julio 2012, Estocolmo, disponible a partir del 2 de mayo, 2013 en http://phenix.int-cyry.fr/jct/doc end user/documents/10 Stockholm/ gll/JCTVC-Jl003-v8.zip.
El HEV WD8 es incorporado por referencia aquí en su totalidad. Además, aunque las téenicas descritas en esta divulgación se describen con respecto al estándar HEVC, aspectos de esta divulgación no se limitan a esto y se pueden extender a otros estándares de codificación de video, asi como a técnicas de codificación de video de marca propia.
Un codificador de video puede generar una corriente de bits que incluye datos de video codificados. La corriente de bits pues comprender una serie de unidades de capa de
abstracción de red (NAL). Las unidades NAL de la corriente de bits pueden incluir unidades NAL de la capa de codificación de video (VCL) y unidades no-VCL NAL. Las unidades VCL NAL pueden incluir porciones codificadas de imágenes. Una unidad no-VCL NAL puede incluir un conjunto de parámetros de video (VPS) un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (VPS), información de mejora complementaria (SEI), u otros tipos de datos. Un VPS es una estructura de sintaxis que puede contener elementos de sintaxis que aplican a cero o más secuencias de video codificado completas. Un SPS es una estructura de sintaxis que puede contener elementos de sintaxis que aplican a cero o más secuencias de video codificado completas. Un solo VPS puede aplicar a múltiples SPS. Un PPS es una estructura de sintaxis que puede contener elementos de sintaxis que aplican a cero o más imágenes codificadas completas. Un solo SPS se puede aplicar a múltiples PPS. Diversos aspectos del VPS, SPS y PPS se pueden formar, en general, conforme a lo definido por el estándar HEVC.
Las unidades NAL pueden incluir un elemento de sintaxis que es indicativo del valor de la variable temporalld. La temporalld de una unidad NAL especifica un identificador temporal de la unidad NAL. Si el identificador temporal de una primera unidad NAL es menor que el identificador temporal
de una segunda unidad NAL, los datos encapsulados por la primera unidad NAL pueden ser decodificados sin referencia a los datos encapsulados por la segunda unidad NAL.
Cada estándar de codificación de video generalmente incluye una especificación de un modelo de almacenamiento en memoria intermedia de video. En AVC y HEVC, el modelo de almacenamiento en memoria intermedia se refiere como un decodificador de referencia hipotético (HRD) que describe la manera en que los datos van a ser almacenados en memoria intermedia para decodificación y la manera en que los datos decodificados son almacenados en memoria intermedia para su salida. El HRD incluye un modelo de almacenamiento en memoria intermedia tanto de la memoria intermedia de imágenes codificadas (CPB) como de la memoria intermedia de imágenes decodificadas (DPB). La CPB es una memoria intermedia primero en entrar primero en salir que contiene unidades de acceso en el orden de decodificación especificado por el HRD. La DPB es una memoria intermedia que mantiene imágenes decodificadas para referencia, reordenamiento de salida o retraso de salida especificado por el HRT. Parámetros de decodificador de referencia hipotéticos matemáticamente especifican los comportamientos de la CPB y DPB. El HRD directamente puede imponer restricciones en los diferentes parámetros incluyendo temporizaciones, tamaños de memoria intermedia y tasas de
transferencia de bits, e indirectamente puede imponer restricciones en las características de la corriente de bits y las estadísticas. En algunos ejemplos, un conjunto completo de parámetros HRD pueden incluir cinco parámetros básicos: retraso de remoción CPB inicial, tamaño de CPB, tasa de transferencia de bits, retraso de salida DPB inicial, y tamaño de DPB.
En AVC y HEVC, la adaptación de la corriente de bits y la adaptación del decodificador son especificadas como parte de la especificación HRD. Aunque el nombre del decodificador de referencia hipotético se refiere a un tipo de decodificador, el HRD típicamente es necesario en el lado del codificador para la adaptación de la corriente de bits, mientras que no necesariamente se necesita en el lado del decodificador. Sin embargo, aspectos de esta divulgación no se limitan a esto, y el HRD puede ser parte del lado del decodificador también. AVC y HEVC pueden especificar dos tipos de adaptación de corriente de bits o HRD, concretamente Tipo I y Tipo II. También, AVC y HEVC especifican dos tipos de adaptación de decodificador: adaptación de decodificador de temporización de salida y adaptación de decodificador de orden de salida.
En los modelos HRD del AVC y HEVC, la decodificación o remoción CPB está basada en las unidades de acceso, y los
estándares asumen que la decodificación de imágenes es instantánea. En aplicaciones prácticas, si un decodificador de adaptación sigue estrictamente los tiempos de decodificación señalizados (por ejemplo, en mensajes de información de mejora complementaria (SEI)) para iniciar la decodificación de las unidades de acceso, entonces el tiempo más temprano posible para emitir una imagen decodificada particular es igual al tiempo de decodificación de esa imagen particular más el tiempo necesario para la decodificación de esa imagen particular. Es decir, el tiempo más anticipado para emitir la imagen decodificada es el tiempo de decodificación más el tiempo para decodificar la imagen. Sin embargo, el tiempo necesario para la decodificación de una imagen en el mundo real no puede ser igual a cero.
En HEVC WD8, el decodificador de referencia hipotético (HRD) es especificado en el anexo C. El HRD se basa en los parámetros HRD, los cuales pueden ser proporcionados en la corriente de bits en la estructura de sintaxis hrd_parámetros ( ) (en el conjunto de parámetros de video (VPS) y/o el conjunto de parámetros de secuencia (SPS)), los mensajes SEI del periodo de almacenamiento en memoria intermedia y el mensaje SEI de temporización de imagen. La
Solicitud Provisional de los Estados Unidos número
61/705,102, presentada el 24 de septiembre de 2012, propone
señalización de mejoramiento y selección de los parámetros HRD.
Puede haber problemas asociados con métodos existentes para señalizar y derivar tiempos de remoción CPB, también conocidos como tiempos de decodificación. Lo siguiente describe algunos de estos problemas.
Los tiempos de remoción CPB de la unidad de decodificación pueden no ser resilientes al error cuando los tiempos de remoción CPB para las unidades de decodificación dentro de una unidad de acceso dependen de la información de temporización de una unidad de acceso previa. Una unidad de acceso puede comprender una o más unidades o más unidades de decodificación. Un tiempo de remoción puede ser determinado para cada DU en una AU. Un tiempo de remoción CPB puede ser señalizado para la AU y para una o más DUs dentro de la AU. un mensaje SEI para una AU puede incluir un tiempo de remoción CPB para la AU en sí misma, lo cual también corresponde al tiempo de remoción CPB para la última DU dentro de la AU.
La memoria intermedia de imágenes codificadas puede operar en dos niveles. Un nivel de unidad de acceso y un nivel de sub-imagen. Cuando la CPB opera al nivel de sub imagen (es decir, cuando SublmagenCpblndicador es igual a 1), la señalización y derivación de los tiempos de remoción CPB
de la unidad de decodificación (DU) que están basados en los mensajes SEI de temporización de imagen pueden no ser resilientes al error en circunstancias donde se pierde la información de una AU previa en el orden de decodificación. Por ejemplo, la información de temporización que es señalizada para una AU actual incluye una duración entre un tiempo de remoción CPB para una primera DU en la AU actual y una última DU en una AU previa. Por lo tanto, si se pierde la información de temporización para la última DU en la AU previa, entonces el decodificador no puede determinar el tiempo de remoción para la primera DU en la AU actual debido a que el tiempo de remoción para la primera DU depende de la información de temporización perdida.
En otras palabras, la señalización de la duración entre los tiempos de remoción CPB de la primera unidad de decodificación en una AU actual y la última DU en la AU previa en el orden de decodificación, asi como el uso de dicha señalización en la derivación del tiempo de remoción CPB, hace que el sistema o codificador sea vulnerable a la información de temporización perdida. Por ejemplo, si la información de remoción CPB (es decir, el mensaje SEI de temporización de imagen) de la AU previa se pierde, entonces el tiempo de remoción CPB de la primera DU en la AU actual no puede ser derivado correctamente. Además, excepto para la
última DU de la AU actual, para la cual el tipo de remoción CPB es derivado como igual a aquel de la AU actual, cada uno de los tiempos de remoción CPB de todas las otras DUs en la AU actual yace en el tiempo de remoción CPB de la DU previa en el orden de decodificación. Por lo tanto, si sucede la pérdida anterior, el tiempo de remoción CPB de cada DU en la AU actual, excepto para la última DU, no puede ser derivado correctamente.
En contraste, aquí se describen téenicas que pueden reducir la vulnerabilidad del sistema o codificador a la información de temporización perdida. Por ejemplo, se proporcionan técnicas para determinar un tiempo de remoción CPB de imágenes codificadas para una DU de una AU que es independiente de los tiempos de remoción de cualquiera otra unidad de acceso. Por ejemplo, un codificador de video señalizará, en el mensaje SEI de temporización de imagen, tiempos de remoción CPB para una DU de una AU que van a ser recibidos por un decodificador de video, con base ya sea en una duración de tiempo entre una DU actual y cualquiera de un tiempo de remoción CPB de una siguiente DU en un orden de decodificación en la AU o un tiempo de remoción CPB de la última DU en la AU. Por lo tanto, esta divulgación describe técnicas para una señalización más eficiente y resiliente al error y derivación de tiempos de remoción CPB de unidades de
datos codificados en la codificación de video, debido a que la información de temporización para cada DU en una AU no depende de la información de temporización de otra AU diferente.
Otro problema asociado con métodos existentes para señalizar y derivar tiempos de remoción CPB es que la información de temporización en los mensajes SEI de temporización de sub-imagen pueden no ser utilizados aun cuando está presente. Por ejemplo, los mensajes SEI de temporización de sub-imagen, que llevan información de retraso de remoción CPB de la DU, pueden estar presentes. Sin embargo, la operación CPB a nivel de sub-imagen es especificada en una manera en que el decodificador de video siempre utiliza los mensajes SEI de temporización de imagen y nunca utiliza los mensajes SEI de temporización de sub-imagen. Por lo tanto, se pueden desperdiciar los bits utilizados para representar mensajes SEI de temporización de sub-imagen. Además, el retraso de remoción CPB de la DU señalizado en un mensaje SEI de temporización de sub-imagen es la diferencia entre el tiempo de remoción CPB de la DU asociada y el tiempo de remoción CPB de la primera DU de la AU precedente asociada con un mensaje SEI de periodo de almacenamiento en memoria intermedia. Aunque esto puede ser de cierta forma resiliente al error, esto también puede ser
eficiente ya que la diferencia de tiempo puede ser un valor significativo.
Sin embargo en esta divulgación se proporcionan téenicas para especificar la derivación de tiempo de remoción CPB en una forma que puede utilizar información llevada en mensajes de información de mejora complementaria (SEI) de temporización de sub-imagen. Por ejemplo, la derivación de tiempo de remoción CPB es especificada en una forma que puede utilizar información llevada en los mensajes SEI de temporización de sub-imagen, y el codificador de video puede señalizar la duración entre la remoción CPB de la última DU en la AU en el orden de decodificación y la DU asociada con un mensaje SEI de temporización de sub-imagen, haciendo que la señalización del codificador y la derivación del decodificador sean más eficientes y resilientes al error.
Otro problema asociado con los métodos existentes para señalización y derivación de los tiempos de remoción CPB es que los parámetros CPB de nivel de sub-imagen en los mensajes SEI de temporización de imagen y los mensajes SEI de temporización de sub-imagen pueden estar presentes para la misma funcionalidad. Esa funcionalidad puede ser proporcionada para soportar la operación CPB basada en sub-imagen. La duplicación de estos parámetros para la misma funcionalidad puede resultar ineficiente. Puede ser posible
que únicamente un conjunto de parámetros CPB a nivel de sub imagen, en cualquier tipo de mensajes SEI, sea suficiente. Aquí se describen téenicas que configuran un codificador de video para proporcionar un indicador de nivel de secuencia que puede ser señalizado para indicar la presencia de parámetros CPB de sub-imagen únicamente en uno de los mensajes SEI de temporización de imagen o en mensajes de temporización de sub-imagen, pero no ambos. Al utilizar este indicador de nivel de secuencia, un decodificador de video determina si encuentra parámetros CPB de sub-imagen, tal como parámetros de retraso de remoción CPB a nivel de sub-imagen, en un mensaje SEI de temporización de imagen o en un mensaje SEI de temporización de sub-imagen.
Otro problema todavía asociado con métodos existentes para la señalización y derivación de tiempos de remoción CPB es que la definición de unidades de decodificación no consideró las unidades no-VCL NAL con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSVJSIVCL44 a RSV_NVCL47, o en el rango de UNSPEC48 a UNSPEC63. Por lo tanto, cuando algunas de estas unidades no-VCL NAL están presentes, puede ocurrir un comportamiento CPB a nivel de sub-imagen inesperado. En contraste, esta divulgación proporciona técnicas para expandir una defición de una unidad de decodificación para incluir unidade no-VCL NAL con
nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47, y en el rango de UNSPEC48 a UNSPEC63.
Otro problema potencial asociado con los métodos existentes para la señalización y derivación de tiempos de remoción CPB es que el mensaje SEI del periodo de almacenamiento en memoria intermedia y el mensaje SEI de punto de recuperación pueden estar asociados con las AUs con cualquier valor de un valor de identificación temporal (Temporalld). Por lo tanto, el codificador puede utilizar HRD en una AU con Temporalld mayor que 0. En este caso, cuando se soporta la escalabilidad temporal, el tipo de remoción CPB de una AU con un valor Temporalld más pequeño, en el mismo periodo de almacenamiento en memoria intermedia, puede depender de la información en la AU con un valor Temporalld más grande. Sin embargo, para que la escalabilidad temporal funcione, el proceso de decodificación de cualquier AU no puede depender de otra AU con un Temporalld mayor. Esta divulgación además proporciona téenicas para restringir los mensajes SEI del periodo de almacenamiento en memoria intermedia y los mensajes SEI de punto de recuperación de manera que estos no se puedan asociar con las AUs que tienen un Temporalld mayor que 0.
El valor de identificación temporal (Temporalld) puede
ser un valor jerárquico que indica cuáles son las imágenes que se pueden utilizar para la codificación de la imagen actual. En general, una imagen con un valor Temporalld particular posiblemente puede ser una imagen de referencia para imágenes con valores de Temporalld iguales o mayores, pero no viceversa. Por ejemplo, una imagen con un valor de Temporalld de 1 posiblemente puede ser una imagen de referencia para imágenes con valores de Temporalld de 1, 2, 3, ..., pero no para una imagen con un valor de Temporalld de 0.
El valor Temporalld más bajo también puede indicar la velocidad de despliegue más baja. Por ejemplo, si un decodificador de video solamente decodifica imágenes con valores de Temporalld de 0, la velocidad de despliegue puede ser 7.5 imágenes por segundo. Si el decodificador de video solamente decodifica imágenes con valores de Temporalld de 0 y 1, la velocidad de despliegue puede ser 15 imágenes por segundo, y asi sucesivamente.
Un problema potencial adicional asociado con los métodos existentes para la señalización y derivación de los tiempos de remoción CPB es el proceso de derivación de tiempo de remoción CPB, cuando sub__imagen_cpb_parámetros_presente_indicador es igual a l, la derivación del tiempo de remoción CPB utiliza los tiempos de
llegada final y los tiempos de remoción nominales para ambos casos con SublmagenCpblndicador igual a 0 (cuando el CPB opera al nivel de AU) y con SublmagenCpblndicador igual a 1 (cuando la CPB opera al nivel de sub-imagen). Sin embargo, esos valores utilizados para tiempos de llegada finales y tiempos de remoción nominales se pueden derivar para únicamente uno de los dos casos (por ejemplo, ya sea para el SublmagenCPBIndicador igual a 0 o para SublmagenCPBIndicador igual a l), y por lo tanto no están disponibles para el otro caso. Téenicas aquí descritas proporcionan un indicador para señalizar si el decodificador es para derivar tiempos de remoción CPB a un nivel de Aü o un nivel de sub-imagen. Por ejemplo, el decodificador deriva los tiempos de llegada CPB y los tiempos de remoción nominales tanto para el nivel de AU como para el nivel de sub-imagen sin considerar el valor de SublmagenCpblndicador, mientras que el decodificador deriva los tiempos de remoción CPB únicamente para el nivel de AU cuando SublmagenCpblndicador es igual a 0 y únicamente para el nivel de sub-imagen cuando SublmagenCpblndicador es igual a l, de acuerdo con las técnicas aquí descritas. Tal como aqui se describe, un tiempo de remoción nominal CPB puede ser un valor predeterminado para el tiempo de remoción CPB. En algunos ejemplos con condiciones típicas, el tiempo de remoción CPB es igual al tiempo de remoción nominal CPB. Sin
embargo, bajo ciertas condiciones estos son diferentes y el tiempo de remoción CPB puede ser ligeramente del valor por omisión.
Las siguientes téenicas, descritas en esta divulgación, pueden corregir los problemas antes descritos. Por ejemplo, las técnicas descritas en esta divulgación pueden proporcionar una determinación más resiliente al error del tiempo de remoción de memoria intermedia de imágenes codificadas. Además, adicional a la resiliencia al error mejoradas, las técnicas pueden promover la eficiencia de la señalización lo cual reduce el ancho de banda, la sobrecarga de señalización, e incrementa la eficiencia de la codificación. También, las técnicas descritas en esta divulgación pueden permitir una escaiabilidad temporal apropiada.
Dichas técnicas pueden incluir, por ejemplo, determinar un tiempo de remoción de memoria intermedia de imágenes codificadas para una unidad de decodificación (DU) de una unidad de acceso (AU) que es independiente de los tiempos de remoción de cualquier otra unidad de acceso. Por ejemplo, los tiempos de remoción CPB para una DU de una AU serán señalizados con base en una duración entre una DU actual y cualquiera de un tiempo de remoción CPB de una siguiente DU en un orden de decodificación en la AU o un tiempo de
remoción CPB de la última DU en la AU. Las téenicas también puede incluir la señalización de un indicador de nivel de secuencia para controlar la presencia de parámetros CPB de sub-imagen únicamente en uno de los mensajes SEI de temporización de imagen o en los mensajes SEI de temporización de sub-imagen de acuerdo con técnicas aquí descritas. Las técnicas también pueden incluir, expandir una definición de una unidad de decodificación. Técnicas adicionales proporcionan restricción de mensajes SEI del periodo de almacenamiento en memoria intermedia y mensajes SEI del punto de recuperación de manera que no pueden ser asociados con las AUs con una variable, TemporalID mayor que 0. Las técnicas también pueden incluir el aprovisionamiento de un indicador para señalizar si se derivan los tiempos de remoción CPB a un nivel de AU o un nivel de sub-imagen.
Los detalles para la implementación de estas técnicas se describen con mayor detalle a continuación. Otras partes no mencionadas pueden ser iguales que en HEVC WD8.
La figura 1 es un diagrama en bloques que ilustra un sistema de codificación y decodificación de video ejemplar 10 que puede utilizar las técnicas descritas en esta divulgación. Tal como se muestra en la figura 1, el sistema 10 incluye un dispositivo fuente 12 que genera datos de video codificados que van a ser decodificados en un tiempo
posterior por un dispositivo destino 14. El dispositivo fuente 12 y el dispositivo destino pueden comprender cualquiera de un amplio rango de dispositivos, incluyendo computadoras de escritorio, computadoras tipo notebook (por ejemplo, laptop), computadoras de tableta, descodificadores, equipos telefónicos tales como los denominados teléfonos "inteligentes", las denominadas almohadillas "inteligentes", televisores, cámaras, dispositivos de despliegue, reproductores de medios digitales, consolas de juegos de video, dispositivos de corriente de video, o similar. En algunos casos, el dispositivo fuente 12 y el dispositivo destino 14 pueden estar equipados para comunicación inalámbrica.
En el ejemplo de la figura 1, el dispositivo fuente 12 incluye una fuente de video 18, codificador de video 20 e interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/desmodulador (módem) y/o un transmisor. En el dispositivo fuente 12, la fuente de video 18 puede incluir una fuente tal como un dispositivo de captura de video, por ejemplo, una cámara de video, un archivo de video que contiene video previamente capturado, una interfaz de alimentación de video para recibir video desde un proveedor de contenido de video, y/o un sistema de gráficos de computadora para generar datos de gráficos de
computadora como el video fuente, o una combinación de dichas fuentes. Como un ejemplo, si la fuente de video 18 es una cámara de video, el dispositivo fuente 12 y el dispositivo destino 14 pueden formar los denominados teléfonos de cámara o teléfonos de video. Sin embargo, las téenicas descritas en esta divulgación se pueden aplicar a la codificación de video en general, y se pueden aplicar a las aplicaciones inalámbricas y/o cableadas.
El video capturado, pre-capturado o generado por computadora puede ser codificado por el codificador de video 20. Los datos de video codificados pueden ser transmitidos directamente al dispositivo destino 14 a través de la interfaz de salida 22 del dispositivo fuente 12. Los datos de video codificados también (o alternativamente) pueden ser almacenados en el dispositivo de almacenamiento 32 para posterior acceso por el dispositivo destino 14 u otros dispositivos para decodificación y/o reproducción.
El dispositivo destino 14 incluye una interfaz de entrada 28, un decodificador de video 30 y un dispositivo de despliegue 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo destino 14 recibe los datos de video codificados sobre el enlace 16. Los datos de video codificados comunicados sobre el enlace 16, o proporcionados
en el dispositivo de almacenamiento 32, pueden incluir una variedad de elementos de sintaxis generados por el codificación de video 20 para uso por el decodificador de video, tal como el decodificador de video 30, en la decodificación de los datos de video. Dichos elementos de sintaxis pueden ser incluidos con los datos de video codificados transmitidos en un medio de comunicación, almacenados en un medio de almacenamiento, o almacenados en un servidor de archivo.
El dispositivo de despliegue 32 puede estar integrado con, o ser externo al dispositivo destino 14. En algunos ejemplos, el dispositivo destino 14 puede incluir un dispositivo de despliegue integrado y también se puede configurar para conectarse en interfaz con un dispositivo de despliegue externo. En otros ejemplos, el dispositivo destino 14 puede ser un dispositivo de despliegue. En general, el dispositivo de despliegue 32 despliega los datos de video decodificados a un usuario, y puede comprender cualquiera de una variedad de dispositivos de despliegue tal como una pantalla de cristal liquido (LCD), una pantalla de plasma, una pantalla de matriz de puntos, una pantalla de diodos de emisión de luz orgánica (OLED), tinta electrónica y otro tipo de dispositivo de despliegue.
El dispositivo destino 14 puede recibir los datos de
video codificados que van a ser decodificados a través del enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo con la capacidad para mover los datos de video codificados desde el dispositivo fuente 12 al dispositivo destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicación para permitir que el dispositivo fuente 12 transmita datos de video codificados directamente al dispositivo destino 14 en tiempo real. Los datos de video codificados pueden ser modulados de acuerdo con un estándar de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitidos al dispositivo destino 14. El medio de comunicación puede comprender cualquier medio de comunicación cableado o inalámbrico, tal como espectro de radiofrecuencia (RF) o una o más lineas de transmisión física. El medio de comunicación puede formar parte de una red basada en paquete, tal como una red de área local, una red de área amplia, o una red global tal como la Internet. El medio de comunicación puede incluir enrutadores, conmutadores, estaciones base, o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo fuente 12 al dispositivo destino 14.
De manera alternativa, los datos codificados pueden ser emitidos desde la interfaz de salida 22 a un dispositivo de almacenamiento 32. De manera similar, se puede tener acceso a
los datos codificados desde el dispositivo de almacenamiento 32 a través de la interfaz de entrada. El dispositivo de almacenamiento 32 puede incluir cualquiera de una variedad de medios de almacenamiento de datos a los que se tiene acceso localmente o distribuidos tal como un disco duro, discos Blu-ray, DVD's, CD-ROMs, memoria flash, memoria volátil o no volátil, o cualquier otro medio de almacenamiento digital conveniente para almacenar datos de video codificados. En un ejemplo adicional, el dispositivo de almacenamiento 32 puede corresponder a un servidor de archivo u otro dispositivo de almacenamiento intermedio que pueda mantener el video codificado generado por el dispositivo fuente 12. El dispositivo destino 14 puede tener acceso a los datos de video almacenados desde el dispositivo de almacenamiento 32 a través de la corriente o descarga. El servidor de archivo puede ser cualquier tipo de servidor con la capacidad para almacenar datos de video codificados y transmitir esos datos de video codificados al dispositivo destino 14. Servidores de archivo ejemplares incluyen un servidor Web (por ejemplo, para un sitio Web), un servidor FTP, dispositivos de almacenamiento unidos a la red (ÑAS), o una unidad de disco local. El dispositivo destino 14 puede tener acceso a los datos de video codificados a través de cualquier conexión de datos estándar, incluyendo una conexión de Internet. Esto
puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión cableada (por ejemplo, DSL), módem de cable, etcétera), o una combinación de ambos que sea conveniente para tener acceso a los datos de video codificados almacenados en un servidor de archivo. La transmisión de los datos de video codificados desde el dispositivo de almacenamiento 32 puede ser una transmisión en corriente, una transmisión de descarga, o una combinación de ambos.
Las téenicas de esta divulgación no necesariamente se limitan a aplicaciones o escenarios inalámbricos. Las técnicas se pueden aplicar a codificación de video en apoyo de cualquiera de una variedad de aplicaciones multimedia, tal como transmisiones de televisión sobre-el-aire, transmisiones de televisión por cable, transmisiones de televisión satelital, transmisiones de video en corriente, por ejemplo, a través de la Internet, codificación de video digital para almacenamiento en un medio de almacenamiento de datos, decodificación de video digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones, en algunos ejemplos, el sistema 10 se puede configurar para soportar transmisión de video de una vía o dos vías para soportar aplicaciones tales como corriente de video, reproducción de video, transmisión de video y/o telefonía de video.
El codificador de video 20 y el decodificador de video 30 pueden operar de acuerdo con un estándar de compresión de video, tal como el estándar de Codificación de Video de Alta Eficiencia (HEVC) en el presente bajo desarrollo por el Equipo de Colaboración Conjunta en la Codificación de Video (JCT-VC) del Grupo de Expertos de Codificación de Video ITU-T (VCEG) y el Grupo de Expertos de Imágenes en Movimiento ISO/IEC (MPEG). El codificador de video 20 y el decodificador de video 30 pueden operar de acuerdo con HEVC WD8. De manera alternativa, el codificador de video 20 y el codificador de video 30 pueden operar de acuerdo con otros estándares de marca propia o industriales, tales como el ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual y ITU-T H.264 (también conocido como ISO/IEC MPEG-4 AVC), incluyendo sus Extensiones de Codificación de Video Escalable (SVC) y Codificación de Video Multivista (MVC), o extensiones de dichos estándares. Sin embargo, las téenicas de esta divulgación no se limitan a algún estándar de codificación particular.
En algunos ejemplos, el codificador de video 20 y el decodificador de video 30 pueden estar integrados con un codificador y decodificador de audio, y pueden incluir unidades MUX-DEMUX apropiadas, u otro hardware y software, para manejar la codificación tanto de audio como de video en
una corriente de datos común o corrientes de datos separadas. Se aplica, en algunos ejemplos, unidades MUX-DEMUX se pueden adaptar al protocolo de multiplexor ITU H.223, u otros protocolos tales como el protocolo de datagrama de usuario (UDP).
El codificador de video 20 y el decodificador de video 30 pueden ser implementados como cualquiera de una variedad de circuitos convenientes de codificador, tal como uno o más microprocesadores, procesadores, procesadores de señal digital (DSPs), circuitos integrados de aplicación especifica (ASICs), arreglos de compuerta programable en campo (FPGAs), lógica discreta, software, hardware, firmware o cualesquiera combinaciones de los mismos. Cuando las téenicas son implementadas parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio legible por computadora no transitorio conveniente y puede ejecutar las instrucciones en hardware utilizando uno o más procesadores para ejecutar las técnicas de esta divulgación. Cada codificador de video 20 y decodificador de video 30 puede estar incluido en uno o más codificadores o decodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/decodificador combinado (CODEC) en un dispositivo respectivo.
El JCT-VC está trabajando en el desarrollo del estándar
HEVC. Los esfuerzos de estandarización HEVC están basados en un modelo en evolución de un dispositivo de codificación de video referido como el modelo de prueba HEVC (HM). El HM presume varias capacidades adicionales de los dispositivos de codificación de video relativos a dispositivos existentes de acuerdo con, por ejemplo, ITU-T H.264/AVC. Por ejemplo, mientras que H.264 proporciona nueve modos de codificación de intra-predicción, el HM puede proporcionar tantos como treinta y tres modos de codificación de intra-predicción.
En general, el modelo de trabajo del HM describe que un cuadro de video o imagen se puede dividir en una secuencia de bloques de árbol o unidades de codificación más grandes (LCU) que incluyen tanto muestras de luminancia como de crominancia. Un bloque de árbol tiene un propósito similar que un macrobloque del estándar H-264. Una porción incluye un número de bloques de árbol consecutivos en el orden de codificación. Un cuadro o imagen de video se puede dividir en una o más porciones. Cada bloque de árbol se puede dividir en unidades de codificación (CUs) de acuerdo con un árbol cuaternario. Por ejemplo, un bloque de árbol, tal como un nodo raíz del árbol cuaternario, se puede dividir en cuatro nodos hijo, y cada nodo hijo a su vez puede ser un nodo padre y se puede dividir en otros cuatro nodos hijo. Un nodo hijo no dividido final, tal como un nodo hoja del árbol
cuaternario, comprende un nodo de codificación, es decir, un bloque de video codificado. Datos de sintaxis asociados con una corriente de bits codificada pueden definir una número máximo de veces que se puede dividir un bloque de árbol, y también pueden definir un tamaño mínimo de los nodos de codificación.
Una CU incluye un nodo de codificación y unidades de predicción (PUs) y unidades de transformada (TUs) asociadas con el nodo de codificación. Un tamaño de la CU generalmente corresponde a un tamaño del nodo de codificación y típicamente tiene una forma cuadrada. El tamaño de la CU puede variar de 8x8 píxeles hasta el tamaño del bloque de árbol con un máximo de 64x64 píxeles o mayor. Cada CU puede contener una o más PUs y una o más TUs. Los datos de sintaxis asociados con una CU pueden describir, por ejemplo, la división de la CU en una o más PUs. Los modos de división pueden diferir entre si la CU es omitida o codificada en modo directo, codificada en modo de intra-predicción o codificada en modo de inter-predicción. Las PUs se pueden dividir para no tener una forma cuadrada. Los datos de sintaxis asociados con una CU también pueden describir, por ejemplo, la división de la CU en una o más TUs de acuerdo con un árbol cuaternario. Una TU puede tener una forma cuadrada o no cuadrada .
El estándar HEVC permite transformaciones de acuerdo con las TUs, los cuales pueden ser diferentes para diferentes CUs. Las TUs típicamente tienen un tamaño basado en el tamaño de las PUs dentro de una CU determinada definida para una LCU dividida, aunque esto puede no siempre ser el caso. Las TUs típicamente tienen el mismo tamaño o son más pequeñas que las PUs. En algunos ejemplos, muestras residuales correspondientes a una CU se pueden subdividir en unidades más pequeñas utilizando una estructura de árbol cuaternario conocida como "árbol cuaternario residual" (RQT). Los nodos hoja del RQT se pueden referir como unidades de transformada (TUs). Valores de diferencia de píxel asociados con las TUs se pueden transformar para producir coeficientes de transformada, los cuales pueden ser cuantificados.
En general, una PU incluye datos relacionados con el proceso de predicción. Por ejemplo, cuando la PU es codificada por íntra-modo, la PU puede incluir datos que describen un modo de intra-predicción para la PU. Como otro ejemplo, cuando la PU es codificada por inter-modo, la TU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento,
un componente vertical del vector de movimiento una resolución para el vector de movimiento (por ejemplo, una precisión de un cuarto de píxel o una precisión de un octavo de píxel), una imagen de referencia a la cual señala el vector de movimiento, y/o una lista de imágenes de referencia (por ejemplo, Lista 0, Lista 1, o Lista c) para el vector de movimiento.
En general, una TU se utiliza para los procesos de transformada y cuantificación. Una CU determinada que tiene una o más PUs también puede incluir una o más unidades de transformada (TUs). Después de la predicción, el codificador de video 20 puede calcular valores residuales del bloque de video identificado por el nodo de codificación de acuerdo con la PU. El nodo de codificación entonces es actualizado para hacer referencia a los valores residuales en lugar del bloque de video original. Los valores residuales comprenden valores de diferencia de píxel que pueden ser transformados en coeficientes de transformada, cuantificados y escaneados utilizando las transformadas y otra información de transformada especificada en las TUs para producir coeficientes de transformada serializados para codificación por entropía. El nodo de codificación una vez más puede ser actualizado para hacer referencia a esos coeficientes de transformada serializados. Esta divulgación típicamente
utiliza el término "bloque de video" para hacer referencia a un nodo de codificación de una CU. En algunos casos específicos, esta divulgación también puede utilizar el término "bloque de video" para hacer referencia a un bloque de árbol, es decir, LCU, o una CU, lo cual incluye un nodo de codificación y PUs y TUs.
Una secuencia de video típicamente incluye una serie de cuadros de video o imágenes. Un grupo de imágenes (GOP) generalmente comprende una serie de una o más de las imágenes de video. Un GOP puede incluir datos de sintaxis en una cabecera del GOP, una cabecera de una o más de las imágenes, o en alguna otra parte, que describe un número de imágenes incluidas en el GOP. Cada porción de una imagen puede incluir datos de sintaxis de la porción que describen un modo de codificación para la porción respectiva. El codificador de video 20 típicamente opera en bloques de video dentro de porciones de video individuales a fin de codificar los datos de video. Un bloque de video puede corresponder a un nodo de codificación dentro de una CU. Los bloques de video pueden tener tamaños fijos o variables, y pueden diferir en tamaño de acuerdo con un estándar de codificación especificado.
Como un ejemplo, el HM soporta predicción en diversos tamaños de PU. Asumiendo que el tamaño de una CU particular es 2Nx2N, el HM soporta la intra-predicción en tamaños de PU
de 2Nx2N o NxN, e ínter-predicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N, o NxN. El HM también soporta división asimétrica para inter-predicción en tamaños de PU de 2NxnU, 2NxnD, nLx2N, y nRx2N. En división asimétrica, una dirección de una CU no es dividida, mientras que la otra dirección es dividida en 25% y 75%. La porción de la CU correspondiente a la división del 25% es indicada por una "n" seguido por una indicación de "Arriba", "Abajo", "Izquierda" o "Derecha". Por lo tanto, por ejemplo, "2NxnU" se refiere a una CU de 2Nx2N que es dividida horizontalmente con una PU de 2Nx0.5N encima y una PU de 2Nxl.5N abajo.
En esta divulgación, "NxN" y "N por N" se pueden utilizar de manera intercambiable para hacer referencia a las dimensiones de píxel de un bloque de video en términos de dimensiones vertical y horizontal, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque 16x16 tendrá 16 píxeles en una dirección vertical (y=16) y 16 píxeles en una dirección horizontal (x=16). De igual manera, un bloque NxN generalmente tiene N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles en un bloque se pueden acomodar en filas y columnas. Además, los bloques no necesariamente tienen que tener el mismo número de píxeles en la dirección horizontal que en la dirección vertical. Por
ejemplo, los bloques pueden comprender NxM píxeles, donde M no necesariamente es igual a N.
Siguiendo la codificación intra-predictiva o inter-predictiva utilizando las PUs de una CU, el codificador de video 20 puede calcular datos residuales a los cuales aplican las transformadas especificadas por las TUs de la CU. Los datos residuales pueden corresponder a diferencias de pixel entre pixeles de la imagen no codificada y valores de predicción correspondientes a las CUs. El codificador de video 20 puede formar los datos residuales para la CU, y después puede transformar las los datos residuales para producir coeficientes de transformada.
Siguiendo cualesquiera transformadas para producir coeficientes de transformada, el codificador de video 20 puede ejecutar cuantificación de los coeficientes de transformada. La cuantificación generalmente se refiere a un proceso en el cual los coeficientes de transformada son cuantificados para reducir posiblemente la cantidad de datos utilizados para representar los coeficientes, proporcionando compresión adicional. El proceso de cuantificación puede reducir la profundidad de bit asociada con algunos o todos los coeficientes. Por ejemplo, un valor de n-bit se puede redondear hacia abajo a un valor de m-bit durante la cuantificación, donde n es mayor que m.
En algunos ejemplos, el codificador de video 20 puede utilizar un orden de escaneo predefinido para escanear los coeficientes de transformada cuantificados a fin de producir un vector serializado que puede ser codificado por entropía. En otros ejemplos, el codificador de video 20 puede ejecutar un escaneo adaptable. Después del escaneo de los coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador de video 20 puede codificar por entropía en vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptable al contexto (CAVLC), codificación aritmética binaria adaptable al contexto (CABAC), codificación aritmética binaria adaptable al contexto basada en sintaxis (SBAC), codificación de Entropía de División de Intervalo de Probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador de video 20 también puede codificar por entropía elementos de sintaxis asociados con los datos de video codificados para uso por el decodificador de video 30 en la decodificación de los datos de video.
Para ejecutar CABAC, el codificador de video 20 puede asignar un contexto dentro de un modelo de contexto a un símbolo que se va a transmitir. El contexto se puede relacionar, por ejemplo, con el hecho de si valores vecinos del símbolo son o no no-cero. Para ejecutar CAVLC, el
codificador de video 20 puede seleccionar un código de longitud variable para un símbolo que va a ser transmitido. Palabras código en VLC pueden ser construidas de manera que códigos relativamente más cortos corresponden a símbolos más probables, mientras que códigos más largos corresponden a símbolos menos probables. De esta forma, el uso de VLC puede lograr ahorros de bit, por ejemplo, sobre el uso de palabras código de igual longitud para cada símbolo que se va a transmitir. La determinación de probabilidad se puede basar en un contexto asignado al símbolo.
En algunos ejemplos, el codificador de video 20 y el decodificador de video 30 se pueden configurar para implementar una o más téenicas ejemplares descritas en esta divulgación. El codificador de video 20 puede codificar datos de video en la forma de una unidad de acceso que es descompuesta en una o más unidades de decodificación. Estas unidades de acceso pueden ser temporalmente almacenadas en una memoria intermedia de imágenes codificadas. El decodificador de video 30 puede extraer las DUs para decodificación en un orden de decodificación con base en la información de temporización incluida en los elementos de sintaxis para la AU o DU respectivas.
De acuerdo con las técnicas descritas en esta divulgación, el término "unidad de decodificación" se puede
definir de la siguiente manera. Una unidad de decodificación es una unidad de acceso o un subconjunto de una unidad de acceso. Si el elemento de sintaxis SublmagenCpblndicador es igual a 0, una unidad de decodificación es una unidad de acceso. De otra manera, una DU incluye una o más unidades VLC NAL en una AU y las unidades no-VCL NAL asociadas. Si una unidad no-VCL NAL tiene nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, FD_NUT, en el rango de RSVJWCL4 4 a RSV_NVCL47, o en el rango de UNSPEC48 a UNSPEC63, la unidad no-VCL NAL está asociada con la unidad VCL NAL precedente más reciente en el orden de decodificación, de otra manera la unidad no-VCL NAL está asociada con la primera unidad VCL NAL subsecuente en el orden de decodificación. Para considerar correctamente las unidades no-VLC NAL de acuerdo con las téenicas aquí descritas, la DU puede ser definida para considerar las unidades no-VCL NAL con nal_unidad_tipo igual a UNSPECO, E0S_NUT, E0B_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
De acuerdo con las técnicas descritas en esta divulgación, el término "punto de operación" puede ser definido de la siguiente forma. Un punto de operación es identificado por un conjunto de valores nuh_reservado_cero_6bits (denotado como OpCapalDConjunto) y un valor Temporalld (denotado como OpTid) y el subconjunto de
corriente de bits asociado derivado como la salida del proceso de extracción de subcorriente de bits tal como se especifica en la subcláusula 10.1 de HEVC WD8. Los elementos de sintaxis OpTid y OpCapaldConjunto pueden funcionar como entradas y se pueden decodificar de manera independiente.
Algunos ejemplos de corrientes de bits generadas de acuerdo con las téenicas aquí descritas pueden tener un nivel de adecuación de la corriente de bits. La subcláusula 10.1 de HEVC WD8 describe que puede ser un requerimiento de adecuación de la corriente de bits que ninguna subcorriente de bits que esté incluida en la salida del proceso especificado en la subcláusula 10.1 con tldObjetivo igual a cualquier valor en el rango de 0 a 6, inclusivo, y con objetivoDecCapaldConjunto conteniendo el valor 0 se puede adecuar a HEVC.
En algunos ejemplos, una corriente de bits de adecuación puede contener una o más unidades NAL de porción codificada con nuh_reservado_cero_6bits igual a 0 y Temporalld igual a
0.
Las entradas al proceso aquí descrito pueden ser una variable tldObjetivo y una lista objetivoDecCapaldConjunto. Las salidas incluyen una sub-corriente de bits. La sub corriente de bits se puede derivar removiendo de la corriente de bits todas las unidades NAL con Temporalld mayor que
tldObjetivo o nuh_reservado_cero_6bits no entre los valores en objetivoDecCapaldConjunto.
Cada unidad NAL se puede asociar con información de cabecera. Para la semántica de cabecera de la unidad NAL, se puede especificar lo siguiente. Durante la decodificación, el decodificador 30 puede ignorar (por ejemplo, remover de la corriente de bits y descartar) el contenido de todas las unidades NAL que utilizan valores reservados de nal_unidad_tipo. En operaciones HRD tal como se especifica en el Anexo C de HEVC D8, dependiendo del punto de operación seleccionado bajo prueba, las unidades NAL con valores reservados de nal_unidad_tipo se pueden considerar en derivación de los tiempos de llegada y remoción de la CPB, pero durante la decodificación estos pueden ser ignorados de manera segura (removidos y descartados).
Durante la decodificación, los decodificadores pueden ignorar (por ejemplo, remover de la corriente de bits y descartar) todas las unidades NAL con valores de nuh_reservado_cero_6bits no igual a 0. En operaciones HRD tal como se especifica en el Anexo C de HEVC WD8, dependiendo del punto de operación seleccionado bajo prueba, las unidades NAL con valores reservados de nuh_reservado_cero_6bits se pueden considerar en derivación de la temporización de llegada y remoción de la CPB, pero durante la decodificación se pueden
ignorar de manera segura (removidos y descartados).
Los tiempos de llegada y tiempos de remoción de la memoria intermedia de imágenes codificadas se pueden basar en dos niveles: un nivel de unidad de acceso y un nivel de sub imagen. Un codificador de video (por ejemplo, codificador de video 20 o decodificador de video 30) se puede configurar para derivar un tiempo de llegada CPB y un tiempo de remoción nominal CPB tanto para el nivel de unidad de acceso como para el nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si una DU es una AU (por ejemplo, si la AU incluye solo una DU). El elemento de sintaxis puede ser SublmagenCpblndicador, el cual seria señalizado para cada AU. Tal como se analizó antes, cuando el SublmagenCpblndicador es igual a 0, una DU constituye toda la AU. De otra manera, cuando SublmagenCpblndicador es igual a un valor no cero, una DU incluye una o más unidades VCL NAL en una AU y las unidades no-VCL NAL asociadas. En algunos ejemplos, el codificador de video se puede configurar para también derivar tiempos de remoción CPB para el nivel de AU cuando el elemento de sintaxis indica que la DU es una AU. En algunos de estos ejemplos, el codificador de video se puede configurar para derivar los tiempos de remoción CPB únicamente para el nivel de AU cuando el elemento de sintaxis indica que la DU es una AU.
En algunos ejemplos, el codificador de video (por ejemplo, codificador de video 20 o decodificador de video 30) se puede configurar para también derivar los tiempos de remoción CPB para el nivel de sub-imagen cuando el elemento de sintaxis indica que la DU no es una AU. En algunos de estos ejemplos, el codificador de video se puede configurar para derivar los tiempos de remoción CPB únicamente para el nivel de sub-imagen cuando el elemento de sintaxis indica que la DU no es una AU.
El codificador de video se puede configurar para derivar el tiempo de llegada CPB y el tiempo de remoción nominal CPB cuando un segundo elemento de sintaxis especifica que parámetros de retraso de remoción CPB de nivel de sub-imagen están presentes y la CPB puede operar al nivel de AU o al nivel de sub-imagen. El segundo elemento de sintaxis puede ser un sub_imagen_cpb_pará etros_presente_indicador. Cuando el sub_imagen_cpb_parámetros_presente_indicador es igual a 1, los parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes y la CPB puede operar al nivel de unidad de acceso o al nivel de sub-imagen, y cuando el sub_imagen_cpb_parámetros_presente_indicador es igual a 0, los parámetros de retraso de remoción CPB de nivel de sub-imagen no están presentes y la CPB opera al nivel de unidad de acceso.
En algunos de los ejemplos donde sub_imagen_cpb_parámetros_presente_indicador es igual a l, el codificador de video se puede configurar para establecer la variable sublmagenParámetrosPresentelndicador igual a 0, y derivar los tiempos de llegada inicial y final de la AU. Después, el codificador de video se puede configurar para establecer la variable sublmagenParámetrosPresentelndicador igual a 1, y derivar los tiempos de llegada inicial y final de la DU para las DUs dentro de la AU.
Además, en algunos ejemplos, un codificador de video (por ejemplo, codificador de video 20 o decodificador de video 30) se puede configurar para codificar (por ejemplo, codificar o decodificar) una duración de tiempo entre la remoción CPB de una primera unidad de decodificación en una unidad de acceso y una segunda DU en la unidad de acceso. En este ejemplo, la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la DU. El codificador de video se puede configurar para determinar un tempo de remoción de la primera DU con base la menos en la duración codificada. En algunas téenicas, el codificador de video puede determinar el tiempo de remoción de la primera DU sin codificar el retraso de remoción CPB inicial y la compensación. En algunos ejemplos, la segunda DU es inmediatamente posterior a la primera DU en la unidad de
acceso. En algunos ejemplos, la segunda DU es la última DU en la unidad de acceso en el orden de decodificación.
El codificador de video (por ejemplo, codificador de video 20 o decodificador de video 30) también se puede configurar para codificar parámetros CPB de nivel de sub imagen. En estos ejemplos, el codificador de video puede determinar el tiempo de remoción de la primer DU con base al menos en uno de la duración codificada y los parámetros CPB a nivel de sub-imagen. Por ejemplo, los parámetros CPB a nivel de sub-imagen pueden ser un mensaje SEI de temporización de sub-imagen gue esté asociado con la primera DU. En algunos ejemplos, el codificador de video puede codificar la duración entre el tiempo de remoción de la última DU en la AU en el orden de decodificación y la primera DU en el mensaje SEI de sub-imagen. En algunos ejemplos, el codificador de video puede codificar un indicador de nivel de secuencia para indicar la presencia de los parámetros CPB a nivel de sub-imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen.
Por ejemplo, el codificador de video 20 se puede configurar para codificar una duración de tiempo entre la remoción CPB de una primera DU en una AU y una segunda DU en la AU. El codificador de video 20 puede codificar parámetros CPB a nivel de sub-imagen, tal como parámetros de retraso de
remoción CPB a nivel de sub-imagen, en uno de cualquiera de un mensaje SEI de temporización de imagen o un mensaje SEI de temporización de sub-imagen. El codificador de video 20 puede codificar un indicador, sub_imagen_cpb_parámetros_en_imagen_temporización_sei_indicad or, para indicar si los parámetros CPB a nivel de sub-imagen están presentes en el mensaje SEI de temporización de imagen o un mensaje SEI de temporización de sub-imagen.
Por ejemplo, el decodificador de video 30 puede decodificar una duración de tiempo entre la remoción CPB de una primera DU en una AU y una segunda DU en la AU. El decodificador de video 30 se puede configurar para determinar un tiempo de remoción de la primera DU con base al menos en la duración decodificada. En algunas téenicas, el codificador de video puede determinar el tiempo de remoción de la primera DU sin decodificar el retraso y compensación de remoción CPB inicial. El decodificador de video 30 puede decodificar parámetros CPB a nivel de sub-imagen de un mensaje SEI de temporización de imagen o un mensaje SEI de temporización de sub-imagen recibido desde el codificador de video 20. El decodificador de video 30 puede determinar cuál mensaje SEI buscar para los parámetros CPB de nivel de sub-imagen con base en una presencia de indicador, sub_imagen_cpb_parámetros_en_imagen_temporización_sei_indicad
or.
En algunas de las téenicas ejemplares descritas en esta divulgación, el valor de identificación temporal (Temporalld) de la segunda DU puede no ser mayor que el Temporalld de la primera DU. En algunos ejemplos, la Temporalld de la segunda DU puede no ser mayor que cero.
Por ejemplo, las técnicas descritas en esta divulgación pueden proporcionar una determinación más resiliente al error del tiempo de remoción de memoria intermedia de imágenes codificadas. Además, adicional a la resiliencia al error mejorada, las técnicas pueden promover la eficiencia de la señalización lo que reduce el ancho de banda, la sobrecarga de señalización e incrementa el tiempo de codificación. También, las técnicas descritas en esta divulgación pueden permitir una escalabilidad temporal mejorada.
La figura 2 es un diagrama en bloques que ilustra un codificador de video ejemplar 20 que puede implementar las técnicas descritas en esta divulgación. El codificador de video 20 puede ejecutar intracodificación e intercodificación de bloques de video dentro de las porciones de video. La intracodificación se basa en la predicción espacial para reducir o remover la redundancia espacial en el video dentro de un cuadro de video o imagen. La intercodificación se basa en la predicción temporal para reducir o remover la
redundancia temporal en el video dentro de cuadros o imágenes adyacentes de una secuencia de video. El intra-modo (I modo) se puede referir a cualquiera de varios modos de compresión basados en espacio. Los ínter-modos, tales como la predicción unidireccional (P modo) o bi-predicción (B modo), se pueden referir a cualquiera de varios modos de compresión basados en tiempo.
En el ejemplo de la figura 2, el codificador de video 20 incluye una unidad de división 35, unidad de procesamiento de predicción 41, sumadora 50, unidad de procesamiento de transformada 52, unidad de cuantificación 54, y unidad de codificación por entropía 56. La unidad de procesamiento de predicción 41 incluye la unidad de cálculo de movimiento 42, unidad de compensación de movimiento 44, y unidad de procesamiento de intra-predicción 46. Para la reconstrucción de bloques de video, el codificador de video 20 también incluye la unidad de cuantificación inversa 58, unidad de procesamiento de transformada inversa 60, sumadora 62, unidad de filtro 64 y una memoria intermedia de imágenes decodificadas (DPB) 66. La memoria intermedia de imágenes decodificadas 66 también se puede referir como una memoria de imágenes de referencia. En otros ejemplos, el codificador de video 20 puede incluir una cantidad mayor, menor o diferente de componentes funcionales.
Tal como se muestra en la figura 2, el codificador de video 20 recibe datos de video y la unidad de división 35 divide los datos en bloques de video. Esta división de los datos de video también puede incluir la división de los datos de video en porciones, mosaicos u otras unidades más grandes, asi como dividir los bloques de video, por ejemplo, de acuerdo con una estructura de árbol cuaternario de LCUs y CUs. El codificador de video 20 generalmente ilustra los componentes que codifican los bloques de video dentro de una porción de video que se va a codificar. La porción se puede dividir en múltiples bloques de video (y posiblemente en conjuntos de bloques de video a los que se hace referencia como mosaicos).
La unidad de procesamiento de predicción 41 puede seleccionar uno de una pluralidad de posibles modos de codificación, tal como uno de una pluralidad de modos de intra-codificación o uno de una pluralidad de modos de inter codificación, para el bloque de video actual basado en los resultados de error (por ejemplo, velocidad de codificación y el nivel de distorsión). La unidad de procesamiento de predicción 41 puede proporcionar el bloque intra-codificado o inter-codificado resultante a la sumadora 50 para generar datos de bloque residual a la sumadora 62 para reconstruir el bloque codificado para uso como una imagen de referencia.
La unidad de procesamiento de intra-predicción 46, encontrada dentro de la unidad de procesamiento de predicción 41, puede ejecutar codificación intra-predictiva del bloque de video actual con relación a uno o más bloques vecinos en el mismo cuadro o porción que el bloque actual que se va a codificar para proporcionar compresión espacial. La unidad de cálculo de movimiento 42 y la unidad de compensación de movimiento 44 dentro de la unidad del procesamiento de predicción 41 ejecutan codificación inter-predictiva del bloque de video actual con relación a uno o más bloques predictivos en una o más imágenes de referencia para proporcionar compresión temporal.
La unidad de cálculo de movimiento 42 se puede configurar para determinar el modo de inter-predicción para una porción de video de acuerdo con un patrón predeterminado para una secuencia de video. El patrón predeterminado puede designar porciones de video en la secuencia como P porciones, B porciones o GPB porciones. La unidad de cálculo de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar integradas, pero se ilustran separadamente por propósitos conceptuales. El cálculo de movimiento, ejecutado por la unidad de cálculo de movimiento 42, es el proceso de generar vectores de movimiento que calculan el movimiento para los bloques de video. Un vector de movimiento, por
ejemplo, puede indicar el desplazamiento de una PU de un bloque de video dentro de un cuadro de video actual o imagen con relación a un bloque predictivo dentro de una imagen de referencia.
Un bloque predictivo es un bloque que resulta estar estrechamente emparejado con la PU del bloque de video que se va a codificar en términos de diferencia de pixel, lo cual puede ser determinado mediante la suma de la diferencia absoluta (SAD), suma de diferencia de cuadrados (SSD), u otras métricas de diferencia. En algunos ejemplos, el codificador de video 20 puede calcular valores para posiciones de pixel de sub-entero de imágenes de referencia almacenadas en la memoria intermedia de imágenes decodificadas 66. Por ejemplo, el codificador de video 20 puede interpolar valores de posiciones de pixel de un cuarto, posiciones de pixel de un octavo, u otras posiciones de pixel en fracción de la imagen de referencia. Por lo tanto, la unidad de cálculo de movimiento 42 puede ejecutar una búsqueda de movimiento con relación a las posiciones de pixel completo y posiciones de pixel en fracción y emitir un vector de movimiento con la precisión de pixel en fracción.
La unidad de cálculo de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video en una porción inter-codificada comparando la posición de la PU con
la posición del bloque predictivo de una imagen de referencia. La imagen de referencia puede ser seleccionada de una primera lista de imágenes de referencia (Lista 0) o una segunda vista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria intermedia de imágenes decodificadas 66. La unidad de cálculo de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y la unidad de compensación de movimiento 44.
La compensación de movimiento, ejecutada por la unidad de compensación de movimiento 44, puede involucrar la extracción o generación del bloque predictivo con base en el vector de movimiento determinado por el cálculo de movimiento, posiblemente ejecutando interpolaciones a la precisión de sub-píxel. Al momento de recibir el vector de movimiento para la PU del bloque de video actual, la unidad de compensación de movimiento 44 puede localizar el bloque predictivo al cual señala el vector de movimiento en una de las listas de imágenes de referencia. El codificador de video 20 forma un bloque de video residual sustrayendo valores de píxel del bloque predictivo a partir de los valores de píxel del bloque de video actual que se está codificando, formando valores de diferencia de píxel, Los valores de diferencia de píxel forman datos residuales para el bloque, y pueden
incluir tanto componentes de diferencia de luminancia como de crominancia. La sumadora 50 representa el componente o componentes que ejecutan esta operación de sustracción. La unidad de compensación de movimiento 44 también puede generar elementos de sintaxis asociados con los bloques de video y la porción de video para uso mediante el decodificador de video 30 en la .decodificación de los bloques de video de la porción de video.
La unidad de procesamiento de intra-predicción 46 puede intra-predecir un bloque actual, como una alternativa a la ínter-predicción ejecutada por la unidad de cálculo de movimiento 42 y la unidad de compensación de movimiento 44, tal como se describió antes. En particular, la unidad de procesamiento de intra-predicción 46 puede determinar un modo de intra-predicción a utilizar para codificar un bloque actual. En algunos ejemplos, la unidad de procesamiento de intra-predicción 46 puede codificar un bloque actual utilizando diversos modos de intra-predicción, por ejemplo, durante pasos de codificación separados, y la unidad de procesamiento de intra-predicción 46 (o unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo de intra-predicción apropiado a utilizar de entre los modos probados. Por ejemplo, la unidad de procesamiento de intra-predicción 46 puede calcular valores de distorsión de
velocidad utilizando un análisis de distorsión de velocidad para los diversos modos de intra-predicción probados, y puede seleccionar el modo de intra-predicción que tenga las mejores características de distorsión de velocidad entre los modos probados. El análisis de distorsión de velocidad generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque no codificado original que fue codificado para producir el bloque codificado, asi como una tasa de transferencia de bits (es decir, un número de bits) utilizado para producir el bloque codificado. La unidad de procesamiento de intra-predicción 46 puede calcular relaciones de las distorsiones y tasas de transferencia para los diversos bloques codificados a fin de determinar cuál modo de intra-predicción muestra el mejor valor de distorsión de tasa de transferencia para el bloque.
En cualquier caso, después de seleccionar un modo de intra-predicción para un bloque, la unidad de procesamiento de intra-predicción 46 puede proporcionar información indicativa del modo de intra-predicción seleccionado para el bloque para la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información que indica el modo de intra-predicción seleccionado de acuerdo con las téenicas de esta divulgación.
El codificador de video 20 puede incluir, en la corriente de
bits transmitida, datos de configuración los cuales pueden incluir una pluralidad de tablas de indice de modo de intra-predicción y una pluralidad de tablas de indice de modo de intra-predicción modificadas (también referidas como tablas de mapeo de palabra código), definiciones de contextos de codificación para diversos bloques, e indicaciones de un modo de intra-predicción más probable, una tabla de indice de modo de intra-predicción y una tabla de indice de modo de intra-predicción modificado a utilizar para cada uno de los contextos.
Después que la unidad de procesamiento de predicción 41 genera el bloque predictivo para el bloque de video actual a través de cualquiera de la inter-predicción o intra-predicción, el codificador de video 20 forma un bloque de video residual sustrayendo el bloque predictivo desde el bloque de video actual. El bloque de video residual en el bloque residual puede ser incluido en una o más TUs y puede ser aplicado a la unidad de procesamiento de transformada 52. La unidad de procesamiento de transformada 52 transforma los datos de video residuales en coeficientes de transformada residuales utilizando una transformada, tal como una transformada de coseno discreto (DCT) o una transformada conceptualmente similar. La unidad de procesamiento de transformada 52 puede convertir los datos de video residuales
de un dominio de pixel a un dominio de transformada, tal como un dominio de frecuencia.
La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir aun más la tasa de transferencia de bits. El proceso de cuantificación puede reducir la profundidad de bit asociada con algunos o todos los coeficientes. El grado de cuantificación puede ser modificado ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 puede entonces ejecutar un escaneo de la matriz incluyendo los coeficientes de transformada cuantificados. De manera alternativa, la unidad de codificación por entropía 56 puede ejecutar el escaneo.
Después de la cuantificación, la unidad de codificación por entropía 56 puede codificar por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede ejecutar codificación de longitud variable de contexto adaptable (CAVLC), codificación aritmética binaria de contexto adaptable (CABAC), codificación aritmética binaria de contexto adaptable basada en sintaxis (SBAC), codificación de entropía de división de intervalo de probabilidad (PIPE) o cualquier otra metodología
o téenica de codificación por entropía. Después de la codificación por entropía mediante la unidad de codificación por entropía 56, la corriente de bits codificada puede ser transmitida al decodificador de video 30, o puede ser archivada para posterior transmisión o recuperación mediante el decodificador de video 30. La unidad de codificación por entropía 56 también puede codificar por entropía los vectores de movimiento y los otros elementos de sintaxis para la porción de video actual que se está codificando.
La unidad de cuantificación inversa 58 y la unidad de procesamiento de transformada inversa 60 aplican cuantificación inversa y transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel para posterior uso como un bloque de referencia de una imagen de referencia. La unidad de compensación de movimiento 44 pede calcular un bloque de referencia agregando el bloque residual a un bloque predictivo de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxel de sub-entero para uso en el cálculo de movimiento. La sumadora 62 agrega el bloque residual reconstruido al bloque de predicción compensado de
movimiento producido por la unidad de compensación de movimiento 44 para producir un bloque de referencia para almacenamiento en la memoria intermedia de imágenes decodificadas 66. El bloque de referencia puede ser utilizado por la unidad de cálculo de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para ínter-predecir un bloque en un cuadro o imagen de video posterior.
El codificador de video 20 también incluye una unidad de filtro 64 que puede filtrar límites de bloque para remover los artefactos de bloqueo del video reconstruido. Es decir, la unidad de filtro 64 puede ejecutar una o más operaciones de desbloqueo para reducir los artefactos de bloqueo en los bloques de codificación asociados con una CU. La unidad de filtro 64 puede ser un filtro de desbloqueo y filtra la salida de la sumadora 62. Filtros de bucle adicionales (en bucle o post bucle) también pueden ser utilizados además de la unidad de filtro 64.
La memoria intermedia de imágenes decodificadas 66 puede almacenar los bloques de codificación reconstruidos después que la unidad de filtro 64 ejecuta una o más operaciones de desbloqueo en los bloques de codificación reconstruidos. La unidad de procesamiento de predicción 41 puede utilizar una imagen de referencia que contiene los bloques de codificación
reconstruidos para ejecutar inter-predicción en las PUs de otras imágenes. Además, la unidad de procesamiento de intra-predicción 46 pueden utilizar bloques de codificación reconstruidos en la memoria intermedia de imágenes decodificadas 66 para ejecutar intra-predicción en otras PUs en la misma imagen que la CU.
El codificador de video 20 puede generar elementos de sintaxis relacionados con los tiempos de remoción CPB de las DUs dentro de una AU de acuerdo con téenicas aquí descritas. Una vez que estos elementos de sintaxis son generados, el codificador de video 20 codifica los mismos en una o más corrientes de bits y emite las corrientes de bits.
De acuerdo con esta divulgación, la unidad de procesamiento de predicción 41 representa una unidad ejemplar para ejecutar las funciones ejemplificativas antes descritas. En otros ejemplos, una unidad diferente a la unidad de procesamiento de predicción 41 puede implementar los ejemplos antes descritos. En algunos otros ejemplos, la unidad de procesamiento de predicción 41 en conjunto con una o más unidades diferentes del codificador de video 20 pueden implementar los ejemplos antes descritos. En otros ejemplos todavía, un procesador o unidad del codificador de video 20 puede, solo o en conjunto con otras unidades del codificador de video 20, implementar los ejemplos antes descritos.
La figura 3 es un diagrama en bloques que ilustra un decodificador de video ejemplar 30 que puede implementar las téenicas descritas en esta divulgación. En el ejemplo de la figura 3, el decodificador de video 30 incluye una unidad de decodificación por entropía 80, unidad de procesamiento de predicción 81, unidad de cuantificación inversa 86, unidad de transformación inversa 88, sumadora 90, y memoria intermedia de imágenes decodificadas (DPB) 92. La unidad de procesamiento de predicción 81 incluye la unidad de compensación de movimiento 82 y la unidad de procesamiento de intra-predicción 84. Una memoria intermedia de imágenes codificadas (CPB) 94 se muestra como una entrada en el decodificador de video 30. Sin embargo, en algunos ejemplos, la CPB 94 puede ser parte del decodificador de video 30. El decodificador de video 30, en algunos ejemplos, puede ejecutar un paso de decodificación generalmente reciproco al paso de codificación descrito con respecto al codificador de video 20 de la figura 2.
Durante el proceso de decodificación, el decodificador de video 30 recibe una corriente de bits de video codificado que representa bloques de video de una porción de video codificado y elementos de sintaxis asociados del codificador de video 20. Los bloques de video de la porción de video codificado y los elementos de sintaxis asociados del
codificador de video 20 pueden ser extraídos de la memoria intermedia de imágenes codificadas 94. El video codificado de la CPB 94 puede incluir, por ejemplo, unidades de acceso (AUs) que comprenden unidades de decodificación (DUs). Los elementos de sintaxis pueden incluir variables e indicadores indicativos de los tiempos de remoción CPB para las unidades de acceso y las unidades de decodificación.
La unidad de decodificación por entropía 80 del decodificador de video 30 decodifica por entropía la corriente de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de decodificación por entropía 80 reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad de procesamiento de predicción 81. El decodificador de video 30 puede recibir los elementos de sintaxis al nivel de la porción de video y/o al nivel del bloque de video.
Cuando la porción de video es codificada como una porción intra-codificada (I), la unidad de procesamiento de intra-predicción 84 de la unidad de procesamiento de predicción 81 puede generar datos de predicción para un bloque de video de la porción de video actual con base en un modo de intra-predicción señalizado y datos de bloques previamente decodificados del cuadro o imagen actual. Cuando el cuadro de video es codificado como una porción inter-
codificada (es decir, B, P o GPB), la unidad de compensación de movimiento 82 de la unidad de procesamiento de predicción 81 produce bloques predictivos para un bloque de video de la porción de video actual con base en los vectores de movimiento y otros elementos de sintaxis recibidos desde la unidad de decodificación por entropía 80. Los bloques predictivos pueden ser producidos a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador de video 30 puede construir las listas de cuadros de referencia, Lista 0 y Lista 1, utilizando téenicas de construcción por omisión basadas en imágenes de referencia almacenadas en la memoria intermedia de imágenes decodificadas 92.
La unidad de compensación de movimiento 82 determina la información de predicción para un bloque de video de la porción de video actual analizando sintácticamente los vectores de movimiento y otros elementos de sintaxis, y utiliza la información de predicción para producir los bloques predictivos para que el bloque de video actual que está siendo decodificado. Por ejemplo, la unidad de compensación de movimiento 82 utiliza algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra-predicción o inter-predicción) utilizado para codificar los bloques de video de la porción
de video, un tipo de porción de ínter-predicción (por ejemplo, B porción, P porción GPB porción), información de construcción para una o más de las listas de imágenes de referencia para la porción, vectores de movimiento para cada bloque de video inter-codificado de la porción, estado de inter-predicción para cada bloque de video ínter-codificado de la porción, y otra información par decodificar los bloques de video en la porción de video actual.
La unidad de compensación de movimiento 82 también puede ejecutar interpolación con base en filtros de interpolación. La unidad de compensación de movimiento 82 puede utilizar filtros de interpolación tal como son utilizados por el codificador de video 20 durante la codificación de los bloques de video para calcular valores interpolados para píxeles de sub-entero de bloques de referencia. En este caso, la unidad de compensación de movimiento 82 puede determinar los filtros de interpolación utilizados por el codificador de video 20 a partir de los elementos de sintaxis recibidos y utilizar los filtros de interpolación para producir bloques predictivos .
La unidad de cuantificación inversa 86 cuantifica a la inversa, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en la corriente de bits y decodificados por la unidad de decodificación por
entropía 80. El proceso de cuantificacíón inversa puede incluir el uso de un parámetro de cuantificación calculado por el codificador de video 20 para cada bloque de video en la porción de video para determinar un grado de cuantificación y, de igual manera, un grado de cuantificación inversa que debiera ser aplicado. La unidad de procesamiento de transformada inversa 88 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de entero inversa, o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de píxel.
Después que la unidad de compensación de movimiento 82 genera el bloque predictivo para el bloque de video actual con base en los vectores de movimiento y otros elementos de sintaxis, el decodificador de video 30 forma un bloque de video decodificado sumando los bloques residuales de la unidad de procesamiento de transformada inversa 88 con los bloques predictivos correspondientes generados por la unidad de compensación de movimiento 82. La sumadora 90 representa el componente o componentes que ejecutan esta operación de suma. Si se desea, también se puede aplicar un filtro de desbloqueo para filtrar los bloques decodificados a fin de remover los artefactos de bloqueo. Se pueden también utilizar otros filtros de bucle (ya sea en el bucle de codificación o
después del bucle de codificación) para suavizar las transiciones de pixel, o de otra manera mejorar la calidad del video. Los bloques de video decodificados en un cuadro o imagen determinada con entonces almacenados en la DPB 92, la cual almacena imágenes de referencia utilizadas para posterior compensación de movimiento. La DPB 92 también almacena el video decodificado para posterior presentación en un dispositivo de despliegue, tal como el dispositivo de despliegue 32 de la figura 1.
De acuerdo con esta divulgación, la unidad de procesamiento de predicción 81 representa una unidad ejemplar para ejecutar las funciones ejemplares antes descritas. En otros ejemplos, una unidad diferente a la unidad de procesamiento de predicción 81 puede implementar los ejemplos antes descritos. En algunos otros ejemplos, la unidad de procesamiento de predicción 841 en conjunto con una o más unidades del decodificador de video 30 puede implementar los ejemplos antes descritos. En algunos otros ejemplos todavía, un procesador o unidad del decodificador de video 30 puede, solo o en conjunto con otras unidades del decodificador de video 30, implementar los ejemplos antes descritos.
El decodificador de video 30 pude almacenar los datos de video recibidos en la forma de una corriente de bits, incluyendo las AUs y DUs, en la memoria intermedia de
imágenes codificadas (CPB) 94. El decodificador de video 30 puede extraer las DUs y AUs de la CPB 94 en los tiempos de remoción determinados a partir de los elementos de sintaxis que el decodificador de video 30 recibió en la corriente de bits. Los indicadores y variables presentes en los mensajes SEI pueden informar al decodificador de video 30 cuándo remover las DUs de la CPB 94. En el tiempo de remoción determinado para una DU actual, el decodificador de video 30 extrae la DU actual de la CPB 94 y decodifica la DU. En algunos ejemplos, el decodificador de video 30 también extrae una AU cuando la DU actual es la última DU de la AU.
Lo siguiente describe la operación de la CPB 94. Esta descripción puede aplicar independientemente a cada uno de los parámetros CPB que están presentes y a los dos puntos de adaptación tipo I y tipo II que se muestran en la figura C-l en el HEVC WD8, donde el conjunto de parámetros CPB es seleccionado tal como se especifica en la sub-cláusula C.l de HEVC WD8. La operación de la CPB 94 puede incluir la temporización de la llegada de la corriente de bits y la temporización de la remoción de la unidad de decodificación y la decodificación de la unidad de decodificación. Cada uno de describe a su vez.
Primero, se describirá la temporización de la llegada de la corriente de bits. Para la temporización de la llegada de
la corriente de bits, previo a la inicialización del HRD, la CPB 94 está vacia. En algunos ejemplos, después de la inicialización, el HRD puede no ser inicializado nuevamente por mensajes SEI del periodo de almacenamiento en memoria intermedia posteriores.
En los ejemplos descritos en esta divulgación, cada unidad de acceso se refiere como la unidad de acceso "n", donde el número "n" identifica la unidad de acceso particular. La unidad de acceso que está asociada con el mensaje SEI de periodo de almacenamiento en memoria intermedia que inicializa la CPB 94 se refiere como una unidad de acceso 0. El valor de n es incrementado por 1 para cada unidad de acceso posterior en el orden de decodificación.
Cada unidad de decodificación se refiere como una unidad de decodificación "m", donde el número "m" identifica la unidad de decodificación particular. La primera unidad de decodificación en el orden de decodificación en la unidad de acceso 0 se refiere, a la unidad de decodificación 0. El valor de m es incrementado por 1 para cada unidad de decodificación posterior en el orden de decodificación.
Cuando sub_imagen_cpb_parámetros_presente_indicador es igual a 1, primero se recurre al siguiente proceso, con la variable sublmagenParámetrosPresenteIndicador establecido
igual a O, para derivación de los tiempos de llegada inicial y final de la unidad de acceso (AU) para la unidad de acceso n. Después, se recurre al siguiente proceso, con sublmagenParámetrosPresentelndicador establecido igual a 1, para la derivación de los tiempos de llegada inicial y final de la unidad de decodificación para las unidades de decodificación en la unidad de acceso n.
Las variables InicialCpbRemociónRetraso[SchedSelIdx] e InicialCpbRemociónRetrasoCompensación[SchedSelIdx] se pueden establecer de la siguiente forma: Si una de las siguientes tres condiciones es verdadera,
InicialCpbRemociónRetraso[SchedSelIdx] e
InicialCpbRemociónRetrasoCompensación[SchedSelIdx] son establecidas a los valores de inicial_alt_cpb_remoción_retraso[SchedSelIdx] e inicial_alt_cpb_remoción_retraso_compensación[SchedSelIdx] correspondientes a Na1HrdModoIndicador, respectivamente, en el mensaje SEI de periodo de almacenamiento en memoria intermedia. La primera condición puede ser cuando la unidad de acceso 0 es una unidad de acceso de acceso de enlace roto (BLA) para la cual la imagen codificada tiene nal_unidad_tipo igual a BLA_W_DLP o BLA_N_LP, y el valor de rap_cpb_parámetros_presente_indicador del mensaje SEI de periodo de almacenamiento en memoria intermedia es igual a 1.
La segunda condición puede ser que
PredeterrninadoInicialCpbParámetrosIndicador sea igual a 0. La tercera condición puede ser que sublmagenParámetrosPresentelndicador sea igual a 1. Observar que, en algunos ejemplos, cuando sub_imagen_cpb_parámetros_presente_indicador es igual a l, la secuencia de video codificada puede no tener imágenes de acceso aleatorio claro (CRA) o BLA, y por lo tanto las primeras dos condiciones pueden ser falsas.
De otra manera, si ninguna de las tres condiciones anteriores es verdadera,
InicialCpbRemociónRetraso[SchedSelIdx] e
InicialCpbRemociónRetrasoCompensación[SchedSelIdx] se establecen a los valores del inicial_cpb_remoción_retraso[SchedSelIdx] e inicial_cpb_remociónl_retraso_compensación[SchedSelIdx] correspondientes a Na1HrdModoIndicador, respectivamente, en el mensaje SEI de periodo de almacenamiento en memoria intermedia asociado, seleccionado conforme a lo especificado en la subcláusula C.l de HEVC WD8.
En los ejemplos aquí descritos, el momento en que el primer bit de la unidad de decodificación m comienza a entrar a la CPB 94 se refiere como el tiempo de llegada inicial tai(m). El tiempo de llegada inicial de la unidad de
decodificación m es derivado de la siguiente forma. Si la unidad de decodificación es la unidad de decodificación 0 (es decir, m = 0), tai( 0 ) = 0. Es decir, la primera unidad de decodificación llega en el tiempo 0. De otra manera, para unidades de decodificación después de la primera unidad de decodificación (unidad de decodificación m con m > 0), aplica lo siguiente.
Si cbr_indicador[SchedSelIdx] es igualo a 1, el tiempo de llegada inicial para la unidad de decodificación m es igual al tiempo de llegada final (tai, derivado a continuación) de la unidad de decodificación m - 1, la unidad de decodificación previa. La ecuación 1 proporciona una relación:
.
De otra manera (por ejemplo, cbr_indicador[SchedSelIdx] es igual a 0), el tiempo de llegada inicial para la unidad de decodificación m (por ejemplo, para m > 0) es derivado mediante la Ecuación ("Ecuación") 2:
El tiempo de llegada de la unidad de decodificación tai más anticipado es derivado de la siguiente forma. Si la unidad de decodificación m no es la primera unidad de decodificación de
un periodo de almacenamiento en memoria intermedia posterior, t a, , más anticpado es derivado como se muestra en la Ecuación 3:
lCpbRemociónRetraso[SchedSeUdx] + lnicialCpbRemociónRetrasoCompensaciór{SchedsSelldx\
90000
( 3 )
Con tr n (m) siendo el tiempo de remoción nominal de la unidad de decodificación m de CPB 94.
El tiempo de llegada final para la unidad de decodificación m es derivado con la ecuación 4:
donde b (m) es el tamaño, en bits, de la unidad de decodificación m. Si aplica el punto de adecuación Tipo I, b (m) incluye contar los bits de la unidad VCL NAL las unidades NAL de datos de rellenador. Si aplica el punto de adecuación Tipo II, b (m) incluye contar todos los bits de la corriente de bits Tipo II para el punto de adecuación tipo II. Los puntos de adecuación Tipo I y Tipo II se muestran en la figura C-l del Anexo C de HEVC WD8.
Los valores de SchedSelIdx, TasaDeTransferenciaDeBits [ SchedSelIdx ] y CpbT amaño [SchedSelIdx] son restringidos de la siguiente forma . Si el contenido de las estructuras de sintaxis
hrd_parámetros( ) seleccionadas para la AU que contiene la unidad de decodificación m y el previo en el orden de decodificación de la AU (en el orden de decodificación) difieren, un programador de entrega (HSS) selecciona un valor SchedSelIdxl de SchedSelIdx de entre los valores de
SchedSelIdx proporcionados en la estructura de sintaxis de hrd_parámetros( ) seleccionada para la unidad de acceso que contiene la unidad de decodificación m que tiene como resultado una TasaDeTransf erenciaDeBits [ SchedSelIdx 1] o CpbTamaño [SchedSelIdxl ] para la unidad de acceso que contiene la unidad de decodificación m. El valor de
TasaDeTransf erenciaDeBits [ SchedSelIdxl ] o
CpbTamaño [SchedSelIdxl] puede diferir del valor de TasaDeTransf erenciaDeBits [ SchedSelIdxO ] o CpbTamaño [SchedSelIdxO ] para el valor SchedSelIdxO de SchedSelIdx que estuvo en uso para la unidad de acceso previa. De otra manera, si el contenido de las estructuras de sintaxis de hrd_parámetros( ) seleccionadas para las dos AUs es el mismo, el HSS continúa operando con los valores previos de SchedSelIdx , TasaDeTransf erenciaDeBits [SchedSelIdx , y CpbTamaño [SchedSelIdx ] .
Cuando el HSS selecciona valores de
TasaDeTransf erenciaDeBits [ SchedSelIdx o
CpbTamaño [SchedSelIdx] que difieren de aquellos de la unidad
de acceso previa, aplica lo siguiente. La variable TasaDeTransferenciaDeBits [SchedSelIdx entra en vigencia en el tiempo tai(m). La variable CpbTamaño [SchedSelIdx] entra en vigencia en ciertas condiciones.
Si el nuevo valor de CpbTamaño [SchedSelIdx] es mayor gue el tamaño CPB antiguo, CpbTamaño [SchedSelIdx] entra en vigencia en el tiempo tai(m). De otra manera, si el nuevo valor de CpbTamaño [SchedSelIdx] es menor gue o igual al tamaño CPB antiguo, el nuevo valor de CpbTamaño [SchedSelIdx] entra en vigencia en el tiempo de remoción CPB de la última unidad de decodificación de la unidad de acceso que contiene la unidad de decodifIcación m.
Cuando SublmagenCpblndicador es igual a l, el tiempo de llegada CPB inicial de la unidad de acceso n, taí (n) , se establece al tiempo de llegada CPB inicial de la primera unidad de decodificación en la unidad de acceso n. El tiempo de llegada CPB final de la unidad de acceso n, taf (n) , se establece al tiempo de llegada CPB final de la última unidad de decodificación en la unidad de acceso n. Cuando SublmagenCpblndicador es igual a 0, cada DU es una AU, por lo tanto los tiempos de llegada CPB inicial y final de la unidad de acceso n son los tiempos de llegada CPB inicial y final de la unidad de decodificación n.
Esta divulgación ahora se enfoca en describir la
operación.de la CPB 94 con respecto a la temporización de la remoción de la unidad de decodificación y la decodificación de las unidades de decodificación.
Las variables InicialCpbRemociónRetraso [ SchedSelIdx] y InicialCpbRemociónRetrasoCo pensación [SchedSelIdx] son utilizadas para los tiempos de remoción de la DU. Estas dos variables se establecen de la siguiente forma. Si cualquiera de las dos condiciones es verdadera, se establecen InicialCpbRemociónRetraso [SchedSelIdx] y
InicialCpbRemociónRetrasoCompensación [SchedSel Idx] , en un mensaje SEI de periodo de almacenamiento en memoria intermedia, a los valores de
Inicial_alt_cpb_remoción_retraso [SchedSelIdx ] y
Inicial_alt_cpb_remoción_retraso_compensación [ SchedSelIdx] correspondientes a Na1HrdModoIndicador, respectivamente. La primera condición es que la unidad de acceso 0 es una unidad de acceso BLA para la cual la imagen codificada tiene nal_unidad_tipo igual a BLA_W_DLP o BLA_N_LP, y el valor de rap_cpb_parámetros_presente_indicador del mensaje SEI de periodo de almacenamiento en memoria intermedia es igual a 1. La segunda condición es que
PredeterminadoInicialCpbParámetrosIndicador sea igual a 0.
Si ninguna de esas dos condiciones es verdadera,
InicialCpbRemociónRetraso [ SchedSelIdx] y
InicialCpbRemociónRetrasoCompensación [SchedSelIdx] , son establecidas a los valores de inicial_cpb_remoción_retraso [SchedSelIdx] y inicial_cpb_remoción_retraso_compensación [ SchedSelIdx] correspondientes a Na1HrdModoIndicador, respectivamente, en el mensaje SEI de periodo de almacenamiento en memoria intermedia asociado, seleccionado conforme a lo especificado en la subcláusula C.l del Anexo C de HEVC WD8. La variable CpbRemociónRetraso (m) , relevante para el tiempo de retraso de remoción de la unidad de decodificación m de la CPB 94, puede ser derivada de la siguiente forma cuando sub_imagen_cpb_parámetros_presente_indicador es igual a l. Si sub_imagen_cpb_parámetros_en_imagen_temporización_sei _indicador es igual a 0, CpbRemociónRetraso {m) se establece a du_spt_cpb_remoción_retraso en el mensaje SEI de temporización de sub-imagen asociado con la unidad de decodificación m. El mensaje SEI de temporización de sub imagen puede ser seleccionado conforme a lo especificado en la subcláusula C.l del Anexo C de HEVC WD8.
Si du_común_cpb_remoción_retraso_indicador es igual a 0, la variable CpbRemociónRetraso {m) se establece al valor de du_cpb_remoción_retraso_menosl[ i ] + 1 para la unidad de decodificación m en el mensaje SEI de temporización de imagen, seleccionado conforme a lo especificado en la
subcláusula C.l del Anexo C de HEVC WD8, asociado con la unidad de acceso que contiene la unidad de decodificación m. El valor de i es 0 para las primeras unidades de decodificación consecutivas num_nalus_en_du_menosl[ 0 ] + 1 en la unidad de acceso que contiene la unidad de decodificación m, 1 para las unidades de decodificación subsecuentes num_nalus_en_du_menosl [ 1 ] + 1 en la misma unidad de acceso, 2 para las unidades de decodificación subsecuentes num_nalus_en_du_menosl [ 2 ] + 1 en la misma unidad de acceso, etc.
De otra manera, si ninguno de sub_imagen_cpb_parámetros_presente_indicador es igual a 1 ni tampoco du_común_cpb__remoción_retraso_indicador es igual a 0, CpbRemociónRetraso (m) se establece al valor de du_común_cpb_remoción_retraso_menosl + 1 en el mensaje SEI de temporización de imagen, seleccionado conforme a lo especificado en la subcláusula C.l del Anexo C de HEVC WD8, asociado con la unidad de acceso que contiene la unidad de decodificación m.
El tiempo de remoción nominal de la unidad de acceso n de la CPB 94 también puede ser determinado de la siguiente forma. Si la unidad de acceso n es la unidad de acceso 0 (es decir, la unidad de acceso que inicializa el HRD), el tiempo de remoción nominal de la unidad de acceso 0, de la CPB 94,
tr,n { 0) , es especificado por la ecuación 5:
_ InicialCpbRemociónRetraso[SchedselIdx\
^ > 9000 ( >
De otra manera, para la unidad de acceso n donde n es no cero o no ha inicializado el HRD, aplica lo siguiente. Cuando la unidad de acceso n es la primera unidad de acceso de un periodo de almacenamiento en memoria intermedia que no inicializa el HRD, el tiempo de remoción nominal de la unidad de acceso n de la CPB 94, tr,n(n), es especificado por la ecuación 6:
tr n (n) = lr n (nh ) + (c - (au _ cpd _ remoción _ retraso _ menos\(ri) + 1) (6)
donde tr n(nb) es el tiempo de remoción nominal de la primera
unidad de acceso del periodo de almacenamiento en memoria intermedia previo, y au _ cpd _ remoción _ retraso _ menos\(n) es el
valor de au _ cpd _ remoción _ retraso_ más\ en el mensaje SEI de
temporización de imagen, seleccionado tal como se especifica en HEVC WD8, Anexo C, subcláusula C.l, asociado con la unidad de acceso n. Cuando la unidad de acceso n es la primera unidad de acceso de un periodo de almacenamiento en memoria intermedia, nb se establece igual a n en el tiempo de remoción nominal t r,n {n) de la unidad de acceso n. Cuando la unidad de acceso n no es la primera unidad de acceso de un periodo de almacenamiento en memoria intermedia, tr,n (n) es
proporcionado por la Ecuación 6, donde tr n {nb) es el tiempo de remoción nominal de la primera unidad de acceso del periodo de almacenamiento en memoria intermedia actual.
Cuando sub_imagen_cpb_parámetros_presente_indicador es igual a 1, el tiempo de remoción nominal para remover la unidad de decodificación m de la CPB 94 es especificado de la siguiente forma, donde tr,n (n ) es el tiempo de remoción nominal de la unidad de acceso n: si la unidad de decodificación m es la última unidad de decodificación en la unidad de acceso n, el tiempo de remoción nominal de la unidad de decodificación m tr,n(m) se establece a tr,n (n) . Es decir, la unidad de acceso y su última unidad de decodificación son movidas de la CPB 94 aproximadamente al mismo tiempo. De otra manera, (es decir, la unidad de decodificación m no es la última unidad de decodificación en la unidad de acceso n), el tiempo de remoción nominal de la unidad de decodificación m, tr,n W es derivado como se muestra en la Ecuación 7, donde tr,n (n) es el tiempo de remoción nominal de la unidad de acceso n.
Si (sub_imagen_cpb_parámetros_en_imagen_temporización_ sei_indicador)
tr n (m) = tr n(m + l)-tc sub CpdRemociónRetraso{m )
además (7)
tr n (m) = tr n(n ) - tc suh · CpdRemociónRetraso(m)
El tiempo de remoción de la unidad de acceso n de la CPB 94 es especificado de la siguiente forma en la Ecuación 8, donde taf (m) y tr n {m) son el tiempo de llegada final y el tiempo de remoción nominal, respectivamente, de la última unidad de decodificación en la unidad de acceso n.
si ( ! ba j o_retraso_hrd_indicador | | tr n (n) ³ taf («) )
tÁn) = t An)
Además , si (sub_imagen_cpb_parámetros_presente_indicador¡
Cuando SublmagenCpblndicador es igual a l, el tiempo de remoción de la unidad de decodificación m de la CPB 94 es especificado de la siguiente forma. Si bajo_retraso_hrd_indicador es igual a 0 o tr n(m) ³taf(m) , el tiempo de remoción de la unidad de decodificación m es especificado por la Ecuación 9:
tr {m) =tr,n (m) ( 9)
De otra forma, si la unidad de decodificación m no es la última unidad de decodificación de la unidad de acceso n, el tiempo de remoción de la unidad de decodificación m es
especificado por la Ecuación 10
De otra manera, si la unidad de decodificación m es la última unidad de decodificación de la unidad de acceso n, el tiempo de remoción de la unidad de decodificación m es especificado por la Ecuación 11:
tr {m) =tr n {n) (11)
En algunos ejemplos, cuando bajo_retraso_hrd_indicador es igual a 1 y tr n(m) <taf(m) , el tamaño de la unidad de decodificación m, b(m), es tan grande que éste evita la remoción en el tiempo de remoción nominal.
En el tiempo de remoción CPB de la unidad de decodificación m, la unidad de decodificación es decodificada de manera instantánea. La imagen n es considerada como decodificada después que la última unidad de decodificación de la imagen es decodificada.
Las siguientes tablas ilustran la sintaxis y semántica que se puede utilizar para implementar las téenicas ejemplares descritas en esta divulgación. La tabla 1 proporciona un ejemplo de sintaxis y semántica para un a mensaje SEI de periodo de almacenamiento en memoria intermedia. La tabla 2 proporciona un ejemplo de sintaxis y
semántica para un mensaje SEI de temporización de imagen. La funcionaloidad de la CPB 94 puede ser determinada por la sintaxis y semántica de los mensajes SEI. Por ejemplo, el decodificador de video 30 extrae las DUs de la CPB 94 con base, al menos en parte, en el periodo de almacenamiento en memoria intermedia y los mensajes SEI de temporización de imagen.
Un mensaje de información de mejora complementaria (SEI) del periodo de almacenamiento en memoria intermedia (SEI) proporciona información del retraso de remoción CPB inicial y compensación del retraso de remoción CPB inicial. La sintaxis del mensaje SEI de periodo de almacenamiento en memoria intermedia puede ser la misma que la sintaxis del mensaje SEI de periodo de almacenamiento en memoria intermedia en la Solicitud Provisional de los Estados Unidos No. 61/705,102, presentada el 24 de septiembre de 2012, y la semántica se cambia de la siguiente forma. La sintaxis del mensaje SEI del periodo de almacenamiento en memoria intermedia es proporcionado en la Tabla 1, como se muestra a continuación.
Tabla 1
Sintaxis del mensaje SEI de periodo de almacenamiento en memoria intermedia
Un periodo de almacenamiento en memoria intermedia es especificado como el conjunto de unidades de acceso entre dos casos consecutivos del mensaje SEI de periodo de almacenamiento en memoria intermedia en el orden de decodificación.
Lo siguiente aplica para la sintaxis y semántica del mensaje SEI de periodo de almacenamiento en memoria intermedia. La corriente de bits (o una parte de la misma) se refiere al subconjunto de corriente de bits (o una parte del mismo) asociado con cualquiera de los puntos de operación a los que aplica el mensaje SEI de periodo de almacenamiento en memoria intermedia.
Para un mensaje SEI de periodo de almacenamiento en memoria intermedia, los elementos de sintaxis inicial_cpb_remoción_retraso_longitud_menosl y sub_imagen_cpb_parámetros_presente_indicador, y las variables Na1HrdBpPresenteIndicador, VclHrdB PresenteIndicador, CpbTamaño [SchedSelIdx],
TasaDeTransferenciaDeBits[SchedSelldx], y CpbCnt se encuentran en o se derivan de elementos de sintaxis encontrados en la estructura de sintaxis hrd_parámetros( ) y la estructura de sintaxis sub_capa_hrd_parámetros( ) que aplican a cualesquiera puntos de operación a los cuales aplica el mensaje SEI de periodo de almacenamiento en memoria intermedia.
Un mensaje SEI de periodo de almacenamiento en memoria intermedia puede tener dos puntos de operación con diferentes valores OpTid, tldA y tldB. Tener cualesquiera dos puntos de operación con diferentes valores OpTid indica que los valores de cpb_ent_menosl[ tldA ] y cpb_cnt_menosl[ tldB ] codificados en las estructuras de sintaxis hrd_parámetros( ), aplicables a los puntos de operación respectivos, son idénticos. Adicionalmente, -el mensaje SEI de periodo de almacenamiento en memoria intermedia puede tener dos puntos de operación en el mensaje SEI de periodo de almacenamiento en memoria intermedia que tienen diferentes valores OpCapaldConjunto, CapaldConjuntoA y CapaldConjuntoB. Tener cualesquiera dos puntos de operación con diferentes valores OpCapaldConjunto indica que los valores de nal_hrd_parámetros_presente_indicador y vcl_hrd_parámetros_presente_indicador, para dos estructuras de sintaxis hrd_parámetros( ) aplicables a los dos puntos de
operación, respectivamente, son idénticos.
Si Na1HrdBpPresentelndicador o VclHrdBpPresentelndicador son iguales a 1, un mensaje SEI de periodo de almacenamiento en memoria intermedia aplicable a los puntos de operación especificados pueden estar presentes en cualquier AU con Temporalld igual a 0 en la secuencia de video codificada, y un mensaje SEI de periodo de almacenamiento en memoria intermedia aplicable a los puntos de operación especificados puede estar presente en cada punto de acceso aleatorio (RAP) AU, y en cada AU asociada con un mensaje SEI de punto de recuperación. De otra manera (NalHrdBpPresentelndicador y VclHrdBpPresentelndicador son iguales a 0), ninguna unidad de acceso en la secuencia de video codificada puede tener un mensaje SEI de periodo de almacenamiento en memoria intermedia aplicable a los puntos de operación especificados.
Para algunas aplicaciones, puede ser deseable la presencia frecuente de un mensaje SEI de periodo de almacenamiento en memoria intermedia.
Cuando está presente una unidad SEI NAL que contiene un mensaje SEI de periodo de almacenamiento en memoria intermedia y tiene nuh_reservado_cero_6bits igual a 0, la unidad SEI NAL puede preceder, en el orden de decodificación, a la primera unidad VCL NAL en la AU.
La unidad de acceso asociada con un mensaje SEI de
periodo de almacenamiento en memoria intermedia puede tener Temporalld igual a 0.
La variable CpbCnt es derivada para que sea igual a cpb_ent_menosl[ tld ] + 1, donde cpb_cnt_menosl[ tld ] es codificado en la estructura de sintaxis hrd_parámetros( ) que es aplicable a cualquiera de los puntos de operación a los que aplica el mensaje SEI de periodo de almacenamiento en memoria intermedia y que tienen OpTid igual a tld.
Los siguientes elementos de sintaxis y variables en los mensajes SEI de periodo de almacenamiento en memoria intermedia pueden ser definidos de la siguiente forma: secuencia_parámetro_conjunto_id se refiere al conjunto de parámetros de secuencia activos. El valor de secuencia_parámetro_conjunto_id puede ser igual al valor de secuencia_parámetro_conjunto__id en el conjunto de parámetros de imagen ("PPS") referido por la imagen codificada asocciada con el mensaje SEI de periodo de almacenamiento en memoria intermedia. El valor de secuencia_parámetro_conjunto_id puede estar en el rango de 0 a 31, inclusivo.
El indicador rap_cpb_parámetros_presente_indicador igual a 1 especifica la presencia de los elementos de sintaxis inicial_alt_cpb_remoción_retraso [SchedSelIdx] e inicial_alt_cpb_remoción_retraso_compensación[SchedSelIdx]. Cuando no está presente, el valor de
rap_cpb_parámetros_presente_indicador se puede inferir para que sea igual a 0. Cuando la imagen asociada no es ni una imagen CRA ni una imagen BLA, el valor de rap_cpb_parámetros_presente_indicador puede ser igual a 0.
Los elementos de secuencia inicial_cpb_remoción_retraso[SchedSelIdx] y inicial_alt_cpb_remoción_retraso[SchedSelIdx] especifican los retrasos de remoción CPB inicial predeterminados y por omisión, respectivamente, para el SchedSelIdx-avo CPB. Los elementos de sintaxis tienen una longitud en bits proporcionada por inicial_cpb_remoción_retraso_longitud_menosl + 1, y están en unidades de un reloj de 90 kHz, por ejemplo. Los valores de los elementos de sintaxis pueden no ser iguales a 0 y pueden ser menores que o iguales a
. , . 7 . . , CpbTamaño[SchedSelIdx1 valores de elementos de sintaxis < 90000 - - - - - - - TasaDeTransferenciaDeBits[SchedSelIdx ]
(12)
el cual es el equivalente en tiempo del tamaño CPB en unidades de reloj de 90 kHz.
Los elementos de sintaxis inicial_cpb_remociónl_retraso_compensación[SchedSelIdx] e inicial_alt_cpb_remoción_retraso_compensación[SchedSelIdx] specifican las composiciones de remoción CPB inicial
predeterminadas y por omisión, respectivamente, para el SchedSelIdx-avo CPB. Los elementos de sintaxis tienen una longitud en bits proporcionada por inicial_cpb_remoción_retraso_longitud_menosl + 1 y están en unidades de un reloj de 90 kHz. Estos elementos de sintaxis pueden no ser utilizados por decodificadores y pueden ser necesarios únicamente para el programador de entrega (HSS) especificado en el Anexo C de HEVC WD8.
En toda la secuencia de video codificada, la suma de inicial_cpb_remoción_retraso[SchedSelIdx] e inicial_cpb_remociónl_retraso_compensación[SchedSelIdx] puede ser constante para cada valor de SchedSelIdx, y la suma de inicial_alt_cpb_remoción_retraso[SchedSelIdx] e inicial_alt_cpb_remoción_retraso_compensación[SchedSelIdx] puede ser constante para cada valor de SchedSelIdx.
El mensaje SEI de temporización de imagen proporciona información del retraso de remoción CPB y retraso de salida DPB para la unidad de acceso asociada con el mensaje SEI. Un ejemplo de la sintaxis y semántica del mensaje SEI de temporización de imagen se muestra en la siguiente tabla 2.
Tabla 2
Sintaxis y semántica de mensaje SEI de temporización de imagen
Lo siguiente aplica para la sintaxis y semántica del mensaje SEI de temporización de imagen. Los elementos de sintaxis sub_imagen_cpb_parámetros_presente_indicador, sub_imagen_cpb_parámetros_en_imagen_temporización_sei_indicad or, cpb_remoción_retraso_longitud_menosl, dpb_salida_retraso_longitud_menosl, y
du_cpb_remoción_retraso_longitud_menosl, y la variable CpbDpbRetrasosPresentelndicador se encuentran en o se derivan de los elementos de sintaxis encontrados en la estructura de sintaxis hrd_parámetros ( ) y la estructura de sintaxis sub_capa_hrd_parámetros( ) aplicables a cualquiera de los puntos de operación a los que aplica el mensaje SEI de temporización de imagen.
La corriente de bits (o una parte de la misma) se refiere al subconjunto de corriente de bits (o una parte de la misma) asociada con cualquiera de los puntos de operación a los cuales aplica el mensaje SEI de temporización de imagen. Sin embargo, observar que la sintaxis del mensaje SEI de temporización de imagen puede depender del contenido de las estructuras de sintaxis hrd_parámetros( ) aplicables a los puntos de operación a los cuales aplica el mensaje SEI de temporización de imagen. Estas estructuras de sintaxis hrd_parámetros ( ) pueden estar en el conjunto de parámetros de video y/o el conjunto de parámetros de secuencia que están activos para la imagen codificada asociada con el mensaje SEI de temporización de imagen. Cuando el mensaje SEI de temporización de imagen está asociado con una unidad de acceso CRA que es la primera unidad de acceso en la corriente de bits, una unidad de acceso IDR, o una unidad de acceso
BLA, a menos que esté precedida por un mensaje SEI de periodo
de almacenamiento en memoria intermedia dentro de la misma unidad de acceso, la activación del conjunto de parámetros de video y conjunto de parámetros de secuencia (y, para imágenes IDR o BLA que no son la primera imagen en la corriente de bits, la determinación de que la imagen codificada es una imagen IDR o una imagen BLA) no ocurre hasta la decodificación de la primera unidad NAL de porción codificada de la imagen codificada. Debido a que la unidad NAL de porción codificada de la imagen codificada sigue el mensaje SEI de temporización de imagen en el orden de la unidad NAL, puede haber casos en los cuales es necesario que un decodificador almacene la carga útil de secuencia de bytes sin procesar (RBSP) que contiene el mensaje SEI de temporización de imagen hasta determinar el conjunto de parámetros de video activo y/o el conjunto de parámetros de secuencia activo, y después que ejecute el análisis sintáctico del mensaje SEI de temporización de imagen.
La presencia de un mensaje SEI de temporización de imagen en la corriente de bits se especifica de la siguiente manera. Si CpbDpbRetrasosPresentelndicador es igual a l, un mensaje SEI de temporización de imagen aplicable a los puntos de operación especificados puede estar presente en cada unidad de acceso de la secuencia de video codificada. De otra manera, por ejemplo, si CpbDpbRetrasosPresentelndicador es
igual a 0, ningún mensaje SEI de temporización de imagen aplicable a los puntos de operación especificados puede estar presente en alguna unidad de acceso de la secuencia de video codificada.
Cuando está presente una unidad SEI NAL que contiene un mensaje SEI de temporización de imagen y tiene nuh_reservado_cero_6bits igual a 0, la unidad SEI NAL puede preceder, en el orden de decodificación, la primera unidad VCL NAL en la unidad de acceso.
El elemento de sintaxis au_cpb_remoción_retraso_menosl más 1 especifica cuántos tics de reloj esperar después de la remoción de la unidad de acceso asociada con el mensaje SEI de periodo de almacenamiento en memoria intermedia más reciente en una unidad de acceso precedente de la CPB, tal como CPB 94, antes de remover de la CPB 94 la unidad de acceso asociada con el mensaje SEI de temporización de imagen. Este valor también puede ser utilizado para calcular un tiempo de llegada posible más anticipado de los datos de la unidad de acceso en la CPB para el HSS. El elemento de sintaxis es un código de longitud fija cuya longitud en bits es proporcionada por cpb_remoción_retraso_longitud_menosl + 1.
El valor de cpb_remoción_retraso_longitud_menosl que determina la longitud (en bits) del elemento de sintaxis
au_cpb_remoción_retraso__menosl es el valor de cpb_remoción_retraso_longitud_menosl codificado en el conjunto de parámetros de video o el conjunto de parámetros de secuencia que está activo para la imagen codificada asociada con el mensaje SEI de temporización de imagen, aunque au_cpb_remoción_retraso_menosl más 1 especifica un número de tics de reloj con relación al tiempo de remociión de la unidad de acceso precedente que contiene un mensaje SEI de periodo de almacenamiento en memoria intermedia, el cual puede ser una unidad de acceso de una secuencia de video codificada diferente.
El elemento de sintaxis imagen_dpb_salida_retraso se utiliza para calcular el tiempo de salida DPB de la imagen. imagen_dpb_salida_retraso especifica cuántos tics de reloj esperar después de la remoción de la última unidad de decodificación en una unidad de acceso de la CPB antes que la imagen decodificada sea emitida desde una DPB. Una imagen puede no ser removida de la DPB en su tiempo de salida cuando la imagen sigue estando marcada como "utilizada para referencia a corto plazo " o "utilizada para referencia a largo plazo." En algunos ejemplos, solamente un imagen_dpb_salida_retraso es especificado para una imagen decodificada.
La longitud del elemento de sintaxis
imagen_dpb_salida_retraso es proporcionada en bits por dpb_salida_retraso_longitud_menosl + 1. Cuando sps_max_dec_imagen_memoria_intermedia[ minTid ] es igual a 1, donde minTid es el mínimo de los valores OpTid de todos los puntos de operación a los cuales aplica el mensaje SEI de temporización de imagen, imagen_dpb_salida_retraso deberá ser igual a 0. El tiempo de salida derivado de imagen_dpb_salida_retraso de cualquier imagen que es emitida desde un decodificador de adecuación de temporización de salida puede preceder el tiempo de salida derivado del imagen_dpb_salida_retraso de todas las imágenes en cualquier secuencia de video codificada subsecuente en el orden de decodificación. El orden de salida de imágenes establecido por los valores de este elemento de sintaxis debiera ser el mismo orden tal como lo establecen los valores de ImagenOrdenCntVal (es decir, valores POC que indican la salida u orden de despliegue de las imágenes).
Para imágenes que no son emitidas por el proceso de "sacudida" debido a que preceden, en el orden de decodificación, una imagen de refrescar decodificación instantánea (IDR) o una imagen de acceso de enlace roto (BLA) con no_salida_de_previas_imágenes_indicador igual a l o inferido para que sea igual a 1, los tiempos de salida derivados de imagen_dpb_salida_retraso se pueden incrementar
con el incremento del valor de ImagenOrdenCntVal relativo para todas las imágenes dentro de la misma secuencia de video codificada.
El elemento de sintaxis nu _decodificación_unidades_menosl más 1 especifica el número de unidades de decodificación en la unidad de acceso asociada con el mensaje SEI de temporización de imagen. El valor de num_decodificación_unidades_menosl puede etar en el rango de 0 a ImagenTamañoEnCtbsY - 1, inclusivo. El indicador du_común_cpb_remoción_retraso_indicador siendo igual a 1 especifica que el elemento de sintaxis du_común_cpb_remoción_retraso_menosl está presente. Cuando du_común_cpb_remoción_retraso_indicador es igual a 0 especifica que el elemento de sintaxis du_común_cpb_remoción_retraso_menosl no está presente.
El elemento de sintaxis du_común_cpb_remoción_retraso_menosl más 1 especifica la duración, en unidades de tics de reloj de sub-imagen (ver subcláusula E.2.1 de HEVC WD8), entre la remoción de una CPB, tal como la CPB 94, de cualesquiera dos unidades de decodificación consecutivas en el orden de decodificación en la unidad de acceso asociada con el mensaje SEI de temporización de imagen. Este valor también se utiliza para calcular un tiempo de llegada posible más anticipado de los
datos de la unidad de decodificación en la CPB para el HSS, conforme a lo especificado en HEVC WD8, Anexo C. El elemento de sintaxis es un código de longitud fija cuya longitud en bits es proporcionada por du_cpb_remoción_retraso_longitud_menosl + 1.
El elemento de sintaxis num_nalus_en_du menosl[ i ] más 1 especifica el número de unidades NAL en la iava DU de la AU asociada con el mensaje SEI de temporización de imagen. El valor de num_nalus_en_du_menosl[ i ] debiera estar en el rango de 0 a ImagenTamañoEnCtbsY - 1, inclusivo. Por ejemplo, el decodificador de video 30 puede determinar cuántas unidades NAL están en una DU actual con base en la decodificación del elemento de sintaxis num_nalus_en_du_menosl[ i ] más 1 del mensaje SEI de temporización de imagen.
La primera DU de la AU puede incluir las primeras num_nalus_en_du_menosl[ 0 ] + 1 unidades NAL consecutivas en el orden de decodificación en la AU. La iava (con i mayor que 0) DU de la AU consiste de las num_nalus_en_du_menosl[ i ] + 1 unidades NAL consecutivas inmediatamente siguiendo la última unidad NAL en la DU previa de la AU, en el orden de decodificación. Puede haber al menos una unidad VCL NAL en cada DU. Todas las unidades no-VCL NAL asociadas con una unidad VCL NAL debieran estar incluidas en
la misma DU que la unidad VCL NAL. El decodificador de video
30 determina las unidades NAL en una DU con base en la decodificación de los elementos de sintaxis tal como num_nalus_en_du_menosl[ i ].
El elemento de sintaxis du_cpb_remoción_retraso_menosl[ i ] más 1 especifica la duración, en unidades de tics de reloj de sub-imagen, entre la remoción de la CPB, tal como la CPB 94, de la (i + i)ava DU y la iava DU, en el orden de decodificación, en la AU asociada con el mensaje SEI de temporización de imagen. Este valor también se puede utilizar para calcular un tiempo de llegada posible más anticipado de los datos de la DU a la CPB para el HSS, conforme a lo especificado en HEVC WD8, Anexo C. El elemento de sintaxis es un código de longitud fija cuya longitud en bits es proporcionada por du_cpb_remoción_retraso_longitud_menosl + 1.
En algunos ejemplos, aunque la longitud del elemento de sintaxis es la misma que du común cpb remoción retraso menosl, el valor pudiera haber sido especificado con relación al tiempo de remoción CPB de la AU del inicio del periodo de almacenamiento en memoria intermedia. Por ejemplo, el decodificador de video 30 puede determinar el valor de un elemento de sintaxis con relación a un tiempo de remoción CPB decodificado. En algunos ejemplos,
puede ser posible que esto pueda ser inconsistente con la semántica de du_común_cpb_remoción_retraso_menosl. Por ejemplo, esto puede entrar potencialmente en conflicto con la Ecuación 7 (Ecuación C-10 en HEVC WD8, Anexo C), que define que si sub_imagen_cpb_parámetros_en_imagen_temporización_sei_indicad or es etiquetado, entonces tr n( m)= tr n (m +1)- tc sub · CpdRemociónRetraso(m).
En algunos ejemplos, du_cpb__remoción_retraso_menosl[ i ] más 1 alternativamente especifica la duración, en unidades de tics de reloj de sub-imagen, entre la remoción de la CPB de la AU asociada con el mensaje SEI de temporización de imagen y la iava DU en la AU asociada con el mensaje SEI de temporización de imagen. En este caso, se puede evitar la señalización del valor para la última DU en la AU. Por lo tanto, el decodificador de video 30 no tiene que determinar un valor de la última DU en la AU del mensaje SEI de temporización de imagen debido a que el tiempo de remoción para la última DU es el mismo que el tiempo de remoción para la AU correspondiente.
Alternativamente, en la semántica de au_cpb_remoción_retraso_menosl, du_común_cpb_remoción_retraso_menosl y du cpb_remoción_retraso_menosl[ i ] especifican el retraso/
diferencia/duración entre "tiempos de remoción nominales de CPB" en lugar de "tiempos de remoción de CPB."
La tabla 3, a continuación, proporciona un ejemplo de la sintaxis del mensaje SEI de temporización de sub-imagen. El mensaje SEI de temporización de sub-imagen proporciona información de retraso de remoción CPB para la unidad de decodificación asociada con el mensaje SEI. Un ejemplo de sintaxis y semántica de mensaje SEI de temporización de sub-imagen son de la siguiente forma.
Tabla 3
Sintaxis de mensaje SEI de temporización de sub-imagen
Lo siguiente aplica para la sintaxis y semántica del mensaje SEI de temporización de sub-imagen. Los elementos de sintaxis sub_imagen_cpb_parámetros_presente_indicador, sub_imagen_cpb_parámetros_en_imagen_temporización_sei_indicad or, y cpb_remoción_retraso_longitud_menosl y la variable CpbDpbRetrasosPresentelndicador se encuentran en o se derivan de los elementos de sintaxis encontrados en la estructura de sintaxis hrd_parámetros( ) y la estructura de sintaxis sub_capa_hrd_parámetros ( ) aplicables a cualquiera de los
puntos de operación a los cuales aplica el mensaje SEI de temporización de sub-imagen. La corriente de bits (o una parte de la misma) se refiere al subconjunto de corriente de bits (o una parte del mismo) asociado con cualquiera de los puntos de operación a los cuales aplica el mensaje SEI de temporización de sub-imagen.
La presencia del mensaje SEI de temporización de sub-imagen en la corriente de bits se especifica de la siguiente manera. Si CpbDpbRetrasosPresentelndicador es igual a 1, sub_imagen_cpb_parámetros_presente_indicador es igual a l, y sub_imagen_cpb_parámetros_en_imagen_temporización_sei_indicad or es igual a 0, un mensaje SEI de temporización de sub-imagen aplicable a los puntos de operación especificados puede estar presente en cada unidad de decodificación en la secuencia de video codificada. De otra manera, ningún mensaje SEI de temporización de sub-imagen aplicable a los puntos de operación especificados debiera estar presente en la secuencia de video codificada. Por lo tanto, si el decodificador de video 30 decodifica los indicadores y determina que los valores son como se estableció antes, el decodificador de video 30 determina que no hay mensajes SEI de temporización de sub-imagen aplicables a los puntos de operación especificados.
La unidad de decodificación asociada con un mensaje SEI
de temporización de sub-imagen consiste, en el orden de decodificación, de la unidad SEI NAL que contiene el mensaje SEI de temporización de sub-imagen, seguido por una o más unidades NAL que no contienen un mensaje SEI de temporización de sub-imagen, incluyendo todas las unidades NAL subsecuentes en la AU hasta pero no ·incluyendo alguna unidad SEI NAL subsecuente que contenga un mensaje SEI de temporización de sub-imagen. Puede haber al menos una unidad VCL NAL en cada DU. Todas las unidades no-VCL NAL asociadas con una unidad VCL NAL pueden estar incluidas en la misma DU que la unidad
VCL NAL.
En algunos ejemplos, el elemento de sintaxis du_spt_cpb_remoción_retraso especifica la duración, en unidades de tics de reloj de sub-imagen (ver subcláusula E.2.1 de HEVC WD8), entre la remoción de la CPB de la úti a unidad de decodificación en el orden de decodificación en la unidad de acceso actual que contiene el mensaje SEI de temporización de sub-imagen y la unidad de decodificación asociada con el mensaje SEI de temporización de sub-imagen. Este valor también se puede utilizar para calcular un tiempo de llegada más anticipado posible de los datos de la unidad de decodificación enla CPB para el HSS, conforme a lo especificado en HEVC WD8, Anexo C. El elemento de sintaxis es representado por un código de longitud fija cuya longitud en
bits es proporcionada por du_cpb_remoción_retraso_longitud_menosl + 1. Cuando la DU asociada con el mensaje SEI de te porización de sub-imagen es la última DU en la AU actual, el valor de du_spt_cpb_remoción_retraso debiera ser igual a 0.
De manera alternativa, en otros ejemplos, el elemento de sintaxis du_spt_cpb_remoción_retraso especifica la duración, en unidades de tics de reloj de sub-imagen (ver subcláusula E.2.1 de HEVC WD8), entre la remoción de la CPB 94 de la siguiente DU en el orden de decodificación en la AU actual que contiene el mensaje SEI de temporización de sub-imagen y la DU asociada con el mensaje SEI de temporización de sub-imagen. Este valor también se puede utilizar para calcular un tiempo de llegada más anticipado posible de los datos de la unidad de decodificación a la CPB 94 para el HSS, conforme a lo especificado en HEVC WD8, Anexo C. El elemento de sintaxis es representado por un código de longitud fija cuya longitud en bits es proporcionada por du_cpb_remoción_retraso_longitud_menosl + 1. Cuando la unidad de decodificación asociada con el mensaje SEI de temporización de sub-imagen es la última unidad de decodificación en la unidad de acceso actual, el valor de du_spt_cpb_remoción_retraso debiera ser igual a 0.
Alternativamente, ningún mensaje SEI de temporización de sub-
imagen está asociado con la última unidad de decodificación en cada unidad de acceso.
En algunos ejemplos, el elemento de sintaxis du_spt_cpb_remoción_retraso alternativamente es codificado como du_spt_cpb_remoción_retraso_menosl. El elemento de sintaxis du_spt__cpb_remoción_retraso_menosl más 1 especifica cuántos tics de reloj de sub-imagen esperar después que el decodificador de video 30 remueve la última DU en la AU asociada con el mensaje SEI de periodo de almacenamiento en memoria intermedia más reciente de una AU precedente de la CPB 94 antes de remover la DU asociada con el mensaje SEI de temporización de sub-imagen de la CPB 94. Este valor también se puede utilizar para calcular un tiempo de llegada más anticipado posible de los datos de la unidad de decodificación en la CPB para el HSS, conforme a lo especificado en HEVC WD8, Anexo C. El elemento de sintaxis es representado por un código de longitud fija cuya longitud en bits es proporcionada por cpb_remoción_retraso_longitud_menosl + 1.
La tabla 4, proporcionada a continuación, describe un ejemplo de sintáxis y semántica de parámetros HRD. Para elementos de sintaxis para los cuales no se incluye a continuación la semántica, su semántica es la misma que en la Solicitud Provisional de los Estados Unidos No. 61/705,102,
presentada el 24 de septiembre de 2012. La sintaxis y semántica de los parámetros HRD pueden ser de la siguiente form .
Tabla 4
Sintaxis y semántica de parámetros HRD
El elemento de sintaxis sub_imagen_cpb_parámetros_en_imagen_temporización_sei_indicad or igual a 1 especifica que los parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes en los mensajes SEI de temporización de imagen y ningún mensaje SEI de temporización de sub-imagen está presente. sub_imagen_cpb_parámetros_en_imagen_temporización_sei_indicad or igual a 0 especifica que parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes en los mensajes SEI de temporización de sub-imagen y mensajes SEI de temporización de imagen no incluyen parámetros de retraso de remoción CPB a nivel de sub-imagen.
El elemento de sintaxis sub_imagen_cpb_parámetros_presente_indicador igual a 1 especifica que parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes y la CPB puede operar al nivel de la unidad de acceso o al nivel de sub-imagen. sub_imagen_cpb_parámetros_presente_indicador igual a 0 especifica que parámetros de retraso de remoción CPB a nivel de sub-imagen no etán presentes y la CPB opera al nivel de la unidad de acceso. Cuando sub_imagen_cpb_parámetros_presente_indicador no está presente, su valor puede ser inferido igual a 0.
La figura 4 es un diagrama conceptual que ilustra dos unidades de acceso 100 y 102 en orden de decodificación consecutivo que pueden tener tiempos de decodificación de acuerdo con las téenicas descritas en esta divulgación. Ejemplos de tiempos de remoción de memoria intermedia de imágenes codificadas se analizarán en términos de AUs 100 y 102, asi como elementos de sintaxis y variables para mensajes SEI asociados con las AUs 100 y 102. La figura 4 también ilustra una linea de tiempo 130.
Tal como aquí se describió, la AU 100 es la unidad de acceso n y AU 102 es la unidad de acceso n + 1, donde n es más anticipado en tiempo en el orden de decodificación que n + 1. AU 100 incluye cuatro unidades de decodificación 110-1,
110-2, 110-3, y 110-4 (referidas colectivamente como
"unidades de decodificación 110"). Tal como aquí se describe, DU 110-1 se puede referir como DU-M, DU 110-2 como DU-M+1, DU 110-3 como DU-M+2, y DU 110-4 como DU-M+3, por ejemplo. AU 102 incluye cuatro unidades de decodificación 112-1, 112-2,
112-3, y 112-4 (referidas colectivamente como "unidades de decodificación 112").
De manera similar, tal como aquí se describe, DU 112-1 se puede referir como DU-M, DU 112-2 como DU-M+1, DU 112-3 como DU-M+2, y DU 112-4 como DU-M+3, por ejemplo. Sin embargo, cualquier unidad de acceso puede ser la "unidad de acceso n" y cualquier unidad de decodificación puede ser la "unidad de decodificación m." En otros ejemplos, AUs 100 y 102 pueden tener diferentes números de DUs 110 y 112, respectivamente. Cualquier DU 110 o 112 puede ser una unidad de capa de abstracción de red (NAL) de capa de codificación de no-video (VCL) con nal_unidad_tipo igual a UNSPEC0, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
En este ejemplo, las unidades de acceso 100 y 102 son almacenadas en una memoria intermedia de imágenes codificadas, por ejemplo, la CPB 94 de la figura 3. El decodificador de video 30 extrae unidades de decodificación
110 y 112 y unidades de acceso 100 y 102 de la CPB 94 para
decodificción en tiempos determinados. Los tiempos para extraer una AU o DU de la CPB 94 se refieren como tiempos de remoción CPB. Como se muestra en la figura 4, los tiempos de remoción CPB para las DUs 110 en AU 100 son los tiempos de remoción CPB 140-1, 140-2, 140-3, y 140-4 (referidos colectivamente como los "tiempos de remoción CPB 140"). De igual manera, los tiempos de remoción CPB para las DUs 112 en la AU 102 son tiempos de remoción CPB 142-1, 142-2, 142-3, y 142-4 (referidos colectivamente como los "tiempos de remoción CPB 142"). El tiempo de remoción CPB de una AU puede ser el mismo que el tiempo de remoción CPB de la última DU de la AU. Por ejemplo, el tiempo de remoción CPB de la AU 100 es aproximadamente el mismo que el tiempo de remoción CPB de la DU 110-4, tiempo de remoción CPB 140-4.
En un ejemplo, para cada DU 112 en la AU 102, la duración entre los tiempo de remoción CPB de la siguiente DU 112 en el orden de decodificación en la AU 102 y la DU 112 particular es señalizada. Por ejemplo, la DU 112-2 es una DU actual, en el orden de decodificación, para que sea extraída de la CPB 94 y decodificada por el decodificador de video 30. Una duración de tiempo 132 entre el tiempo de remoción CPB 142-2 para la DU 112-2 y el tiempo de remoción CPB 142-3 para la DU 112-3, la siguiente DU en el orden de decodificación, es señalizada, por ejemplo, en un mensaje SEI asociado con la
unidad de acceso 102. El decodificador de video 30 determina el tiempo de remoción CPB 142-2 para la DU 112-2 con base en la duración de tiempo señalizada 132. Es decir, el decodificador de video 30 puede derivar el tiempo de remoción CPB para cada DU 112 en la unidad de acceso 102 con base en los tiempos de remoción para la DU 112 dentro de la AU 102 y no en los tiempos de remoción para otras DUs dentro de otras AUs, tal como la AU previa 100, en el orden de decodificación. Por lo tanto, el decodificador de video 30 puede tener una señalización y resiliencia al error mejoradas para los tiempos de remoción CPB de las DUs y AUs.
El tiempo de remoción CPB para la DU 112-2 de la AU 102 puede ser señalizado en una forma alterna. Por ejemplo, en un mensaje SEI asociado con la AU 102, se señaliza una duración de tiempo 134 entre el tiempo de remoción CPB 142-2 para la
DU 112-2 y el tiempo de remoción CPB 142-4 para la última DU en la AU 102, DU 112-4. El decodificador de video 30 determina el tiempo de remoción CPB 142-2 para la DU 112-2 con base en el tiempo de remoción señalizado CPB 142-4 de la DU 112-4.
En cualquiera de los ejemplos anteriores, el decodificador de video 30 determina los tiempos de remoción CPB para las DUs de otras DUs dentro de la misma UA. De esta manera, los tiempos de remoción CPB para cualquier DU no
dependen de alguna otra AU ·además de la AU de la DU particular. La pérdida de la información de temporización de remoción CPB en la AU previa no provocaría una derivación incorrecta de los tiempos de remoción CPB de una AU actual. Por ejemplo, la pérdida de los tiempos de remoción CPB 140 para la AU 100 no afectarían la determinación de los tiempos de remoción CPB 142 para la AU 102. Por lo tanto, el decodificador de video 30 puede tener una señalización y resiliencia al error mejoradas para determinar los tiempos de remoción CPB de las DUs y AUs.
El decodificador de video 30 también puede determinar los tiempos de remoción CPB con base al menos en parte en los parámetros CPB a nivel de sub-imagen llevados en los mensajes SEI de temporización de sub-imagen. En dicho ejemplo, la señalización de los tiempos de remoción CPB y la derivación de los tiempos de remoción CPB son eficientes y resilientes al error. Un indicador de nivel de secuencia puede ser señalizado para controlar la presencia de parámetros CPB a nivel de sub-imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen, pero nunca en ambos. El indicador de nivel de secuencia puede ser sub_imagen_cpb_parámetros_presente_indicador, antes descrito. El indicador también puede controlar el uso de parámetros CPB a nivel de sub-imagen de cuyo tipo de mensajes
SEI para operaciones CPB a nivel de sub-imagen. Cuando sub_imagen_cpb_parámetros_presente_indicador es igual a 1, los tiempos de llegada CPB y los tiempos de remoción CPB para el nivel AU y nivel de sub-imagen son señalizados, sin considerar el valor de SublmagenCpblndicador.
En algunos ejemplos, si una AU, tal como la AU 100, tiene Temporalld mayor que 0, ningún mensaje SEI de periodo de almacenamiento en memoria intermedia o mensaje SEI de punto de recuperación puede ser asociado con la AU 100.
La figura 5 es un gráfico de flujo que ilustra un método para determinar un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación en una unidad de acceso basada en el tiempo de remoción CPB para una segunda unidad de decodificación de la unidad de acceso de acuerdo con las téenicas descritas en esta divulgación. Un decodificador de video puede ejecutar el método de la figura 5. El decodificador de video puede ser el decodificador de video 30 de la figura 1 o la figura 3, por ejemplo.
El método de la figura 5 incluye la decodificación de una duración entre la remoción CPB de una primera DU en una AU y la remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y es la misma AU que la primera DU (200). La segunda DU puede
ser inmediatamente posterior a la primera DU en la AU en el orden de decodificación. De manera alternativa, la segunda DU puede ser una última DU en la AU en el orden de decodificación. Por ejemplo, el decodificador de video 30 puede recibir la corriente de bits desde el codificador de video 20 y almacenar en memoria intermedia las AUs y sus DUs respectivas en la CPB 94 para extracción en los tiempos de remoción determinados. Por ejemplo, el decodificador de video 30 puede decodificar una duración entre la remoción CPB de una primera DU en una AU de la CPB 94 y la remoción DPB de una segunda DU de la CPB 94, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU.
El método además incluye determinar un tiempo de remoción de la primera DU con base al menos en parte en la duración codificada (202). Por ejemplo, el decodificador de video 30 puede determinar un tiempo de remoción CPB para la primera DU con base en la duración decodificada entre la remoción CPB de la primera DU en una AU y la remoción CPB de la segunda DU. El decodificador de video 30 puede extraer la DU de la CPB 94 aproximadamente en el tiempo de remoción CPB determinado .
En algunos ejemplos, el método de la figura 5 además incluye decodificar parámetros CPB a nivel de sub-imagen, en
donde la determinación del tiempo de remoción de la primera DU comprende determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de sub-imagen. La decodificación de los parámetros CPB a nivel de sub-imagen pueden incluir la decodificación de un mensaje de información de mejora complementaria (SEI) de temporización de sub-imagen que está asociada con la primera DU.
En ejemplos donde la segunda DU es una última DU en la AU en el orden de decodificación, la codificación del mensaje SEI de sub-imagen incluye decodificar la duración entre un tiempo de remoción de la última DU y el tiempo de remoción de la primera DU en el mensaje SEI de temporización de sub-imagen. En algunos ejemplos, un indicador de nivel de secuencia es decodificado para determinar la presencia de los parámetros CPB a nivel de sub-imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen. Por ejemplo, en respuesta a la decodificación del indicador de nivel de secuencia y la determinación de que parámetros CPB a nivel de sub-imagen están presentes en un mensaje SEI de temporización de imagen, el decodificador de video 30 puede decodificar el mensaje SEI de temporización de imagen para analizar sintácticamente los parámetros CPB a nivel de sub-imagen. De igual manera, en respuesta a la
decodificación del indicador de nivel de secuencia y la determinación de que los parámetros CPB a nivel de sub-imagen están presentes en un mensaje SEI de temporización de subimagen, el decodificador de video 30 puede decodificar el mensaje SEI de temporización de sub-imagen para analizar sintácticamente los parámetros CPB a nivel de sub-imagen.
En algunos ejemplos, la determinación del tiempo de remoción de la primera DU incluye determinar el tiempo de remoción de la primera DU sin decodificar un retraso y compensación de remoción CPB inicial. Cuando la AU tiene un Temporalld menor que o igual a cero, el método además puede incluir la decodificación de al menos uno de un mensaje SEI de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU.
Las unidades de decodificación aquí descritas pueden ser cualquier unidad de decodificación, asi como una unidad de capa de abstracción de red (NAL) de capa de codificación de no video (VCL) con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63. Por lo tanto, el decodificador de video 30 puede decodificar la DU de acuerdo con téenicas descritas en esta divulgación, incluyendo unidades no-VCL NAL con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a
UNSPEC63.
En otro ejemplo, el método incluye derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU. Por ejemplo el decodificador de video 30 deriva ya sea el tiempo de llegada CPB o el tiempo de remoción nominal CPB para la AU en los niveles de unidad de acceso y niveles de sub-imagen, sin considerar si un valor de un elemento de sintaxis que define si la primera DU es la AU.
En algunos ejemplos, el método incluye derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU en un nivel de unidad de acceso y un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU. El método puede incluir, derivar tiempos de remoción CPB para el nivel AU cuando el elemento de sintaxis indica que la primera DU es una AU. Derivar los tiempos de remoción CPB para el nivel AU puede incluir derivar los tiempos de remoción CPB únicamente para el nivel AU cuando el elemento de sintaxis indica que la CU es una AU.
El elemento de sintaxis puede ser SublmagenCpblndicador, en donde cuando SublmagenCpblndicador es igual a 0, una DU es
una AU, de otra manera, una DU incluye una o más unidades de capa de abstracción de red (NAL) de capa de codificación de video (VCL) en una AU y las unidades no-VCL NAL. En algunos ejemplos, el elemento de sintaxis incluye un primer elemento de sintaxis, y en donde la derivación del tiempo de llegada CPB y el tiempo de remoción nominal CPB comprende derivar el tiempo de llegada CPB y el tiempo de remoción nominal CPB cuando un segundo elemento de sintaxis especifica que los parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes y la CPB puede operar al nivel de unidad de acceso o al nivel de sub-imagen.
El segundo elemento de sintaxis puede ser sub_imagen_cpb_parámetrospresente_indicador, en donde cuando sub_imagen_cpb_parámetros_presente_indicador es igual a 1, los parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes y la CPB puede operar al nivel de unidad de acceso o al nivel de sub-imagen, y cuando sub_imagen_cpb_parámetros_presente_indicador es igual a 0, los parámetros de retraso de remoción CPB a nivel de sub-imagen no están presentes y la CPB opera al nivel de unidad de acceso. El segundo elemento de sintaxis especifica que los parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes y que la CPB puede operar al nivel AU o al nivel de sub-imagen, y el método además puede incluir,
determinar que la variable SublmagenParámetrosPresentelndicador es igual a 0, derivar un tiempo de llegada inicial AU y un tiempo de llegada final AU, determinar que la variable SublmagenParámetrosPresentelndicador es igual a l, y derivar un tiempo de llegada inicial DU y un tiempo de llegada final DU para decodificar unidades dentro de la unidad de acceso.
Los tiempos de remoción CPB para el nivel de sub-imagen también se pueden derivar cuando el elemento de sintaxis indica que la DU no es una AU. Derivar los tiempos de remoción CPB para el nivel de sub-imagen puede incluir derivar los tiempos de remoción CPB únicamente para el nivel de sub-imagen cuando el elemento de sintaxis indica que la DU no es una AU. Por ejemplo, el decodificador de video 30 puede derivar tiempos de remoción CPB para nivel de sub-imagen cuando el elemento de sintaxis indica que la DU no es una AU.
La figura 6 es un gráfico de flujo que ilustra otro método para determinar un tipo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación en una unidad de acceso con base en el tiempo de remoción CPB para una segunda unidad de decodificación de la unidad de acceso de acuerdo con las téenicas descritas en esta divulgación. Un codificador de video puede ejecutar el método de la figura 6. El codificador
de video puede ser el codificador de video 20 de la figura 1 o la figura 2, por ejemplo.
El método incluye determinar, para una AU que incluye una primera unidad de decodificación DU, un tiempo de remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU (210). La segunda DU puede ser inmediatamente posterior a la primera DU en la AU en el orden de decodificación. De manera alternativa, la segunda DU puede ser una última DU en la AU en el orden de decodificación. En algunos ejemplos, el codificador de video 20 programa un tiempo de remoción CPB para la AU. En algunos ejemplos, los tiempos de remoción CPB son programados por un dispositivo externo al codificador de video 20 y el programa es proporcionado al codificador de video 20.
El tiempo de remoción CPB para la AU puede ser el mismo que el tiempo de remoción CPB para la última DU en la AU. Por lo tanto, el codificador de video 20 puede determinar el tiempo de remoción CPB de la segunda DU con base en el tiempo de remoción CPB programado de la AU. En algunos ejemplos, la determinación del tiempo de remoción CPB de la segunda DU con base en el tiempo de remoción CPB programado de la AU incluye determinar cuántas DUs están incluidas en la AU y determinar un tiempo programado para cada CPB. Por ejemplo, el
codificador de video 20 puede determinar, para una AU que incluye una primera unidad de decodificación DU, un tiempo de remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y es la misma AU que la primera DU, de acuerdo con las téenicas aqui descritas.
El método además incluye determinar una duración entre el tiempo de remoción CPB de la primera DU y el tiempo de remoción CPB determinado de la segunda DU (212). Por ejemplo, el codificador de video 20 puede determinar la duración entre el tiempo de remoción CPB para la primera DU con base en un tiempo de remoción CPB programado de la AU y el número de DUs en la AU. En algunos ejemplos, el codificador de video 20 determina la duración con base en los tiempos de remoción CPB programados para cada DU en la AU.
El método además incluye codificar la duración determinada (214). El codificador de video 20 puede codificar la duración determinada como un elemento de sintaxis, por ejemplo, en un conjunto de parámetros CPB a nivel de sub imagen. Por ejemplo, el método además puede incluir codificar los parámetros CPB a nivel de sub-imagen, en donde la codificación de la duración determinada incluye codificar la duración determinada como uno o más parámetros CPB a nivel de sub-imagen. La codificación de los parámetros CPB a nivel de
sub-imagen puede incluir la codificación de un mensaje de información de mejora complementaria (SEI) de temporización de sub-imagen que está asociado con la primera DU. En un ejemplo, la codificación de la duración determinada como uno o más parámetros CPB a nivel de sub-imagen además comprende codificar la duración determinada en el mensaje SEI de temporización de sub-imagen.
En los ejemplos donde la segunda DU es una última DU en la AU en el orden de decodificación, la codificación del mensaje SEI de sub-imagen incluye codificar la duración entre un tiempo de remoción de la última DU y el tiempo de remoción de la primera DU en el mensaje SEI de temporización de sub-imagen. En algunos ejemplos, un indicador de nivel de secuencia está codificado para indicar la presencia de los parámetros CPB a nivel de sub-imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen. En algunos ejemplos, la determinación del tiempo de remoción de la primera DU incluye determinar el tiempo de remoción de la primera DU sin codificar un retraso y compensación de remoción CPB inicial.
Cuando la AU tiene un TemporalID menor que o igual a cero, el método además puede incluir codificar al menos uno de un mensaje SEI de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado
con la AU.
Las DUs aquí descritas pueden ser cualquier tipo de DU, asi como una unidad de capa de abstracción de red (NAL) de capa de codificación de no video (VCL) con nal_unidad tipo igual a UNSPECO, EOS_NUT, EOBJSIUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63. El codificador de video 20 puede codificar cualquier DU de acuerdo con las téenicas descritas en esta divulgación, incluyendo las DUs que son unidades no-VCL NAL con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
En otro ejemplo, el método incluye derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto al nivel de unidad de acceso como al nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU.
En algunos ejemplos, el método incluye derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto al nivel de unidad de acceso como al nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU. El método puede incluir, derivar tiempos de remoción CPB para el nivel AU cuando el elemento de sintaxis indica que la primera
DU es una AU. Derivar los tiempos de remoción CPB para el nivel AU puede incluir, derivar los tiempos de remoción CPB únicamente para el nivel AU cuando el elemento de sintaxis indica que la DU es una AU.
El elemento de sintaxis puede ser SublmagenCpblndicador, en donde cuando SublmagenCpblndicador es igual a 0, una DU es una AU, de otra manera, una DU incluye una o más unidades de capa de abstracción de red (NAL) de la capa de codificación de video (VCL) en una AU y las unidades no-VCL NAL asociadas. En algunos ejemplos, el elemento de sintaxis incluye un primer elemento de sintaxis, y en donde la derivación del tiempo de llegada CPB y el tiempo de remoción nominal CPB comprende derivar el tiempo de llegada CPB y el tiempo de remoción nominal CPB cuando un segundo elemento de sintaxis especifica que parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes y la CPB puede operar al nivel de unidad de acceso o al nivel de sub-imagen.
El segundo elemento de sintaxis puede ser sub_imagen_cpb_parámetros_presente_indicador, en donde cuando sub_imagen_cpb_parámetros_presente_indicador es igual a 1, los parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes y la CPB puede operar al nivel de unidad de acceso o al nivel de sub-imagen, y cuando sub_imagen_cpb_parámetros_presente_indicador es igual a 0,
los parámetros de retraso de remoción CPB a nivel de sub imagen no están presentes y la CPB opera al nivel de unidad de acceso. El segundo elemento de sintaxis especifica que los parámetros de retraso de remoción CPB a nivel de sub-imagen están presentes y la CPB puede operar al nivel AU o al nivel de sub-imagen, y el método además puede incluir establecer la variable sublmagenParámetrosPresentelndicador igual a 0, derivar un tiempo de llegada inicial AU y un tiempo de llegada final AU, establecer la variable sublmagenParámetrosPresentelndicador igual a l, y derivar un tiempo de llegada inicial DU y un tiempo de llegada final DU para decodificar unidades dentro de la unidad de acceso.
Los tiempos de remoción CPB para el nivel de sub-imagen también se pueden derivar cuando el elemento de sintaxis indica que la DU no es una AU. La derivación de los tiempos de remoción CPB para el nivel de sub-imagen puede incluir derivar los tiempos de remoción CPB únicamente para el nivel de sub-imagen cuando el elemento de sintaxis indica que la DU no es una AU. Por ejemplo, el codificador de video 20 puede derivar tiempos de remoción CPB para el nivel de sub-imagen cuando el elemento de sintaxis indica que la DU no es una AU.
La figura 7 es un gráfico de flujo que ilustra un método para derivar un tiempo de remoción CPB de la primera DU con base al menos en parte en el mensaje SEI de temporización de
sub-imagen de acuerdo con las téenicas descritas en esta divulgación. El método puede ser ejecutado por un dispositivo de decodificación de video. El dispositivo de decodificación de video puede ser el decodificador de video 30 de las figuras 1 y 3, por ejemplo.
El método incluye decodificar un mensaje SEI de temporización de sub-imagen asociado con una primera unidad de decodificación de una unidad de acceso (300). Por ejemplo, el decodificador de video 30 puede decodificar una corriente de bits incluyendo datos codificados y elementos de sintaxis correspondiente correspondientes y el mensaje SEI de temporización de sub-imagen asociado con una primera DU de una AU, de acuerdo con técnicas aquí descritas. El decodificador de video 30 puede almacenar en memoria intermedia las AUs y sus DUs respectivas en la CPB 94 para extracción en tiempos de remoción determinados. Por ejemplo, el decodificador de video 30 puede decodificar el mensaje SEI de temporización de sub-imagen asociado con una primera Dü de una AU.
En algunos ejemplos, el método incluye decodificar un indicador de nivel de secuencia para determinar la presencia de parámetros CPB a nivel de sub-imagen ya sea en el mensaje SEI de temporización de sub-imagen o un mensaje SEI de temporización de imagen asociado con la primera DU. El método
además puede incluir decodificar los parámetros CPB a nivel de sub-imagen, en donde la determinación del tiempo de remoción CPB de la primera DU además está basada al menos en parte en los parámetros CPB a nivel de sub-imagen. En respuesta a la recepción de una corriente de bits codificada, el decodificador de video 30 puede decodificar un indicador de nivel de secuencia y determinar, a partir del valor del indicador de nivel de secuencia, si los parámetros CPB a nivel de sub-imagen se encuentran en el mensaje SEI de temporización de sub-imagen o el mensaje SEI de temporización de imagen. Con base en el valor del indicador de nivel de secuencia, el decodificador de video 30 puede decodificar el mensaje SEI de temporización de sub-imagen o el mensaje SEI de temporización de imagen para decodificar los parámetros CPB a nivel de sub-imagen.
En los ejemplos donde el indicador de nivel de secuencia indica que los parámetros CPB a nivel de sub-imagen van a estar presentes en el mensaje SEI de temporización de sub-imagen, la decodificación de los parámetros CPB a nivel de sub-imagen pueden incluir la decodificación del mensaje SEI de temporización de sub-imagen asociado con la primera DU. En ejemplos donde la segunda DU es una última DU en la AU en el orden de decodificación, la decodificación del mensaje SEI de sub-imagen además puede comprender la decodificación de la
duración entre un tiempo de remoción de la última DU y el tiempo de remoción de la primera DU en el mensaje SEI de temporización de sub-imagen.
El método además incluye decodificar una duración entre la remoción de memoria intermedia de imágenes codificadas (CPB) de una segunda DU de la AU en el orden de decodificación y la remoción CPB de la primera DU en el mensaje SEI de sub-imagen, en donde la duración está en el mensaje SEI de temporización de sub-imagen (302). Por ejemplo, a partir de una corriente de bits recibida, el decodificador de video 30 puede decodificar la duración entre la remoción de la memoria intermedia de imágenes codificadas (CPB) de una segunda DU de la AU en el orden de decodificación y la remoción CPB de la primera DU en el mensaje SEI de sub-imagen.
El método también incluye derivar un tiempo de remoción CPB de la primera DU con base al menos en parte en el mensaje SEI de temporización de sub-imagen (304). El decodificador de video 30 puede extraer la primera DU para decodificación desde la CPB 94 en el tiempo de remoción CPB determinado.
En algunos ejemplos, la segunda DU es una última DU en la AU en el orden de decodificación. La segunda DU puede estar inmediatamente posterior a la primera DU en la AU en el orden de decodificación. En algunos ejemplos, la
determinación del tiempo de remoción de la primera DU comprende determinar el tiempo de remoción de la primera DU sin codificar un retraso y compensación de remoción CPB inicial.
La DU puede ser cualquier tipo de unidad de decodificación, incluyendo una unidad de capa de abstracción de red (NAL) de una capa de codificación de no video (VCL) con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
Téenicas aquí descritas pueden proporcionar una determinación más resiliente al error del tiempo de remoción de memoria intermedia de imágenes codificadas. además, adicional a la resiliencia al error mejorada, las técnicas pueden promover la señalización de la eficiencia que reduce el ancho de banda, la señalización de sobrecarga, y el incremento del tiempo de codificación. También, las técnicas descritas en esta divulgación pueden permitir una escalabilidad temporal apropiada.
Dichas técnicas pueden incluir, por ejemplo, determinar un tiempo de remoción de memoria intermedia de imágenes codificadas para una DU de una AU que es independiente de los tiempos de remoción de cualquier otra unidad de acceso. Por ejemplo, los tiempos de remoción CPB para una DU de una AU
serán señalizados con base en cualquiera de una duración entre un tiempo de remoción CPB de una siguiente Dü en un orden de decodificación en la AU o una duración entre el tiempo de remoción CPB de la última DU en la AU. Las téenicas también pueden incluir señalizar un indicador de nivel de secuencia para controlar la presencia de parámetros CPB de sub-imagen en únicamente uno de los mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen de acuerdo con técnicas aquí descritas. Las técnicas también pueden incluir la expansión de una definición de una unidad de decodificación. Técnicas adicionales proporcionan la restricción de mensajes SEI del periodo de almacenamiento en memoria intermedia y mensajes SEI de punto de recuperación de manera que no pueden ser asociados con las AUs con una variable, Temporalld, mayor que 0. Las técnicas también pueden incluir proporcionar un indicador para señalizar si se derivan los tiempos de remoción CPB a un nivel de AU o a un nivel de sub-imagen.
La figura 8 es un gráfico de flujo que ilustra otro método para derivar un tiempo de remoción CPB de la primera DU con base al menos en parte en la codificación del mensaje SEI de temporización de sub-imagen de acuerdo con las técnicas descritas en esta divulgación. El método puede ser ejecutado a través de un dispositivo de codificación de
video. El dispositivo de codificación de video puede ser el codificador de video 20 de las figuras 1 y 2, por ejemplo.
El método incluye determinar una duración entre el tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y el tiempo de remoción CPB de una segunda DU en la AU (310). Se puede determinar la duración, por ejemplo, sustrayendo un tiempo de remoción CPB programado para la primera DU de un tiempo de remoción CPB programado para la segunda DU.
El método además incluye codificar la duración en un mensaje de información de mejora complementaria (SEI) de te porización de sub-imagen asociado con la AU (312). Por ejemplo, el codificador de video 20 puede codificar una duración entre la remoción de la memoria intermedia de imágenes codificadas (CPB) de una segunda DU de la AU en el orden de decodificación y la remoción CPB de la primera DU en el mensaje SEI de sub-imagen en una corriente de bits. Por ejemplo, el codificador de video 20 puede codificar una corriente de bits incluyendo datos codificados y elementos de sintaxis correspondientes, el mensaje SEI de temporización de sub-imagen asociado con una primera DU de una AU, de acuerdo con las téenicas aquí descritas.
En algunos ejemplos, el método de la figura 8 incluye
codificar un indicador de nivel de secuencia para indicar la presencia de parámetros CPB a nivel de sub-imagen ya sea en el mensaje SEI de temporización de sub-imagen o un mensaje SEI de temporización de imagen asociado con la primera DU. El método además puede incluir, codificar los parámetros CPB a nivel de sub-imagen, en donde la determinación del tiempo de remoción CPB de la primera DU además se basa al menos en parte en los parámetros CPB a nivel de sub-imagen. Por ejemplo, el codificador de video 20 puede codificar un indicador de nivel de secuencia para indicar la presencia de parámetros CPB a nivel de sub-imagen ya sea en el mensaje SEI de temporización de sub-imagen o una mensaje SEI de temporización de imagen asociado con la primera DU en una corriente de bits. El codificador de video 20 puede además codificar los parámetros CPB a nivel de sub-imagen en la corriente de bits.
En ejemplos donde el indicador de nivel de secuencia indica que los parámetros CPB a nivel de sub-imagen van a estar presentes en el mensaje SEI de temporización de sub-imagen, la codificación de los parámetros CPB a nivel de sub-imagen pueden incluir codificar el mensaje SEI de temporización de sub-imagen asociado con la primera DU. En ejemplos donde la segunda DU es una última DU en la AU en el orden de decodificación, codificar el mensaje SEI de sub-
imagen además puede comprender codificar la duración entre un tiempo de remoción de la última DU y el tiempo de remoción de la primera DU en el mensaje SEI de temporización de subimagen.
En algunos ejemplos, la segunda DU es una última DU en la AU en el orden de decodificación. La segunda DU puede ser inmediatamente posterior a la primera DU en la AU en el orden de decodificación. En algunos ejemplos, determinar el tiempo de remoción de la primera DU comprender determinar el tiempo de remoción de la primera DU sin codificar un retraso y compensación de remoción CPB inicial.
La DU puede ser cualquier tipo de unidad de decodificación, incluyendo una unidad de capa de abstracción de red (NAL) de capa de codificación de no video (VCL) con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
La figura 9 es un gráfico de flujo que ilustra un método para decodificar el indicador de nivel de secuencia para el parámetro de almacenamiento en memoria intermedia de imágenes codificadas a nivel de sub-imagen de acuerdo con las téenicas descritas en esta divulgación. El método puede ser ejecutado mediante un dispositivo de decodificación de video. El dispositivo de decodificación de video puede ser el
decodificador de video 30 de las figuras 1 y 3, por ejemplo.
El método incluye decodificar un indicador de nivel de secuencia para determinar la presencia de uno o más parámetros CPB a nivel de sub-imagen para una DU de una AU en cualquiera de un mensaje SEI de temporización de imagen o un mensaje SEI de temporización de sub-imagen asociado con la DU (400). Por ejemplo, el decodificador de video 30 decodifica un indicador de nivel de secuencia para determinar la presencia de uno o más parámetros CPB a nivel de sub-imagen. El decodificador de video 30 también decodifica el indicador de nivel de secuencia para determinar la ubicación de uno o más parámetros CPB a nivel de sub-imagen. El indicador de nivel de secuencia puede ser el sub_imagen_cpb_parámetros_presente_indicador. En algunos ejemplos, uno o más parámetros CPB a nivel de sub-imagen están presentes únicamente en uno del mensaje SEI de temporización de imagen o el mensaje SEI de temporización de sub-imagen.
El método además puede incluir, decodificar uno o más parámetros CPB a nivel de sub-imagen del mensaje SEI de temporización de imagen o el mensaje SEI de temporización de sub-imagen con base en el indicador de nivel de secuencia (402). Por ejemplo, en respuesta al indicador de nivel de secuencia que indica que uno o más parámetros CPB a nivel de
sub-imagen están presentes en el mensaje SEI de temporización de imagen, el decodificador de video 30 decodifica el mensaje SEI de temporización de imagen para determinar uno o más parámetros CPB a nivel de sub-imagen. De igual manera, en respuesta al indicador de nivel de secuencia que indica que uno o más parámetros CPB a nivel de sub-imagen están presentes en el mensaje SEI de temporización de sub-imagen, el decodificador de video 30 decodifica el mensaje SEI de temporización de sub-imagen para determinar uno o más parámetros CPB a nivel de sub-imagen.
El método además puede incluir, determinar un tiempo de remoción CPB de la DU con base al menos en parte en uno o más parámetros CPB a nivel de sub-imagen. En algunos ejemplos, la determinación del tiempo de remoción CPB de la DU comprende determinar el tiempo de remoción CPB de la DU sin decodificar un retraso y compensación de remoción CPB inicial.
En el ejemplo donde el indicador de nivel de secuencia indica que los parámetros CPB a nivel de sub-imagen están presentes en el mensaje SEI de temporización de sub-imagen, la decodificación de los parámetros CPB a nivel de sub-imagen pueden incluir la decodificación del mensaje SEI de temporización de sub-imagen asociado con la DU. En otro ejemplo, el método puede incluir, derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB
para la AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU. Es decir, el decodificador de video 30 puede derivar al menos uno del tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen.
En otro ejemplo, la DU es una primera DU, y el método además incluye derivar un tiempo de remoción CPB de la primera DU con base al menos en parte en los parámetros CPB a nivel de sub-imagen y decodificar una duración entre el tiempo de remoción CPB de una segunda DU de la AU en el orden de decodificación y el tiempo de remoción CPB de la primera DU. El método además puede incluir, decodificar datos de video de la primera DU con base al menos en parte en los tiempos de remoción CPB. En algunos ejemplos, la segunda DU es cualquiera de una última DU en la AU en el orden de decodificación o inmediatamente posterior a la primera DU en la AU en el orden de decodificación.
La DU puede ser cualquier DU, incluyendo una unidad no- VCL NAL con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC12.
En el ejemplo donde la AU tiene un TemporalID igual a 0,
el método además puede incluir, decodificar al menos uno de un mensaje SEI de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU. Por ejemplo, el decodificador de video 30 puede decodificar al menos uno del mensaje SEI del periodo de almacenamiento en memoria intermedia o el mensaje SEI de punto de recuperación asociado con la AU que tiene un valor Temporalld igual a 0.
La figura 10 es un gráfico de flujo que ilustra un método para codificar el indicador de nivel de secuencia para el parámetro de memoria intermedia de imágenes codificadas a nivel de sub-imagen de acuerdo con las téenicas descritas en esta divulgación. El método puede ser ejecutado mediante un dispositivo de codificación de video. El dispositivo de codificación de video puede ser el codificador de video 20 de las figuras 1 y 2, por ejemplo.
El método incluye codificar uno o más parámetros de memoria intermedia de imágenes codificadas (CPB) a nivel de sub-imagen para una unidad de decodificación (DU) de una unidad de acceso (AU) en cualquiera de un mensaje SEI de temporización de imagen o un mensaje SEI de temporización de sub-imagen (410). El codificador de video 20 puede codificar el mensaje SEI de temporización de imagen en uno o más parámetros CPB a nivel de sub-imagen. De manera alternativa,
el codificador de video 20 puede codificar el mensaje SEI de temporización de sub-imagen en uno o más parámetros CPB a nivel de sub-imagen.
El método además incluye codificar un indicador de nivel de secuencia para indicar la presencia de uno o más parámetros CPB a nivel de sub-imagen para una DU de una AU en cualquiera del mensaje SEI de temporización de imagen o el mensaje SEI de temporización de sub-imagen asociado con la DU (412). Por ejemplo, el codificador de video 20 codifica un indicador de nivel de secuencia para indicar la presencia y ubicación de uno o más parámetros CPB a nivel de sub-imagen. El indicador de nivel de secuencia puede ser el sub_imagen_cpb_parámetros_presente_indicador. En algunos ejemplos, el codificador de video 20 codifica uno o más parámetros CPB a nivel de sub-imagen en únicamente uno del mensaje SEI de temporización de imagen o el mensaje SEI de temporización de sub-imagen.
El método además puede incluir, determinar un tiempo de remoción CPB de la DU con base al menos en parte en uno o más parámetros CPB a nivel de sub-imagen. En algunos ejemplos, la determinación del tiempo de remoción CPB de la DU comprende determinar el tiempo de remoción CPB de la DU sin codificar un retraso y compensación de remoción CPB inicial.
En un ejemplo, la codificación de uno o más parámetros
CPB a nivel de sub-imagen además comprende codificar uno o más parámetros CPB a nivel de sub-imagen en el mensaje SEI de temporización de sub-imagen asociado con la DU. En dicho ejemplo, el codificador de video 20 codifica el indicador de nivel de secuencia para indicar gue los parámetros CPB a nivel de sub-imagen están presentes en el mensaje SEI de temporización de sub-imagen. En otro ejemplo, la codificación de uno o más parámetros CPB a nivel de sub-imagen además comprende codificar uno o más parámetros CPB a nivel de sub-imagen en el mensaje SEI de temporización de imagen asociado con la DU. En ese ejemplo, el codificador de video 20 codifica el indicador de nivel de secuencia para indicar que los parámetros CPB a nivel de sub-imagen están presentes en el mensaje SEI de temporización de imagen.
En otro ejemplo, la DU es una primera DU, y el método además incluye derivar un tiempo de remoción CPB de la primera DU con base al menos en parte en los parámetros CPB a nivel de sub-imagen y codificar una duración entre el tiempo de remoción CPB de una segunda DU de la AU en el orden de decodificación y el tiempo de remoción CPB de la primera DU. El método además puede incluir, codificar datos de video de la primera DU con base al menos en parte en los tiempos de remoción CPB. En algunos ejemplos, la segunda DU es cualquiera de una última DU en la AU en el orden de
decodificación o inmediatamente posterior a la primera DU en la AU en el orden de decodificación.
La DU puede ser cualquier DU, incluyendo una unidad no-VCL NAL con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOBJMUT, en el rango de RSV_NVCL 4 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC12.
En ejemplos donde la AU tiene un Temporalld igual a 0, el método además puede incluir, codificar al menos uno de un mensaje SEI de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU. Por ejemplo, el codificador de video 20 puede codificar al menos uno del mensaje SEI del periodo de almacenamiento en memoria intermedia o el mensaje SEI de punto de recuperación asociado con la AU que tiene un valor de TemporalID igual a 0.
La figura 11 es un gráfico de flujo que ilustra un método para decodificar una DU que tiene una definición expandida de acuerdo con las téenicas descritas en esta divulgación. El método puede ser ejecutado mediante un dispositivo de decodificación de video. El dispositivo de decodificación de video puede ser el decodificador de video 30 de las figuras 1 y 3, por ejemplo.
El método incluye decodificar una duración entre la remoción de memoria intermedia de imágenes codificadas (CPB)
de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y la remoción CPB de una segunda DU, en donde la primera DU comprende una unidad de capa de abstracción de red (NAL) de capa de codificación de no-video (VCL) con nal_unidad_tipo igual a UNSPECO, E0S_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63 (500). Es decir, el decodificador de video 30 puede decodificar las DUs que son una unidad de capa de abstracción de red (NAL) de capa de codificación de no-video (VCL) con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63, además de otros tipos de DU definidos en HEVC WD8.
En algunos ejemplos, la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU. La segunda DU puede ser inmediatamente posterior a la primera DU en la AU en el orden de decodificación. En otros ejemplos, la segunda DU es una última DU en la AU en el orden de decodificación.
El método también incluye determinar un tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada (502). El método además incluye decodificar datos de video de la primera DU con base al menos en parte en el tiempo de remoción (504). Por ejemplo, el decodificador de video 30 determina un tiempo de remoción de
la primera DU con base en parte en la duración decodificada y después decodifica los datos de video de la primera DU con base en el tiempo de remoción.
En un ejemplo, el método además puede incluir, decodificar uno o más parámetros CPB a nivel de sub-imagen, en donde la determinación del tiempo de remoción de la primera DU comprende determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de sub-imagen. La decodificación de uno o más parámetros CPB a nivel de sub-imagen además puede incluir decodificar un mensaje de información de mejora complementaria (SEI) de te porización de sub-imagen que está asociado con la primera DU.
En otro ejemplo donde la segunda DU es una última DU en la AU en el orden de decodificación, la decodificación del mensaje SEI de sub-imagen incluye decodificar la duración entre un tiempo de remoción de la última DU y el tiempo de remoción de la primera DU en el mensaje SEI de temporización de sub-imagen. En algunos ejemplos, el decodificador de video 30 decodifica un indicador de nivel de secuencia para determinar la presencia de los parámetros CPB a nivel de sub-imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen.
En otro ejemplo, donde la AU tiene un TemporalID igual a
0, el decodificador de video 30 puede decodificar al menos uno de un mensaje SEI de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU. El método también puede incluir, derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto a nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU.
La figura 12 es un gráfico de flujo que ilustra un método para codificar una DU que tiene una definición expandida de acuerdo con las téenicas descritas en esta divulgación. El método puede ser ejecutado mediante un dispositivo de codificación de video. El dispositivo de codificación de video puede ser el codificador de video 20 de las figuras 1 y 2, por ejemplo.
El método incluye determinar, para una AU que incluye una primera DU, un tiempo de remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU, y en donde la primera DU comprende una 'unidad de capa de abstracción de red (NAL) de capa de codificación de no video (VCL) con nal_unidad_tipo igual a UNSPEC0, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63 (510). Es decir, el codificador de video
20 puede codificar las DUs que son unidades no-VCL NAL con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63, además de otros tipos de DU definidos en HEVC WD8. La segunda DU puede ser posterior, incluyendo inmediatamente posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU. En otros ejemplos, la segunda DU es una última DU en la AU en el orden de decodificación.
El método también incluye determinar una duración entre el tiempo de remoción CPB de la primera DU y el tiempo de remoción CPB determinado de la segunda DU (512). La determinación de la duración entre el tiempo de remoción CPB de la primera DU y el tiempo de remoción CPB determinado de la segunda DU se puede basar en un tiempo de remoción CPB programado de la AU. El método además incluye codificar la duración determinada (514). Por ejemplo, el codificador de video 20 determina una duración de tiempo entre la remoción CPB de la primera DU y una segunda DU y después codifica la duración determinada como un elemento de sintaxis.
En un ejemplo, el método además puede incluir, codificar uno o más parámetros CPB a nivel de sub-imagen, en donde la determinación de la duración determinada de la primera DU comprende determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada y los
parámetros CPB a nivel de sub-imagen. La codificación de uno o más parámetros CPB a nivel de sub-imagen además puede incluir la codificación de un mensaje SEI de te porización de sub-imagen que está asociado con la primera DU.
En otro ejemplo donde la segunda DU es una última DU en la AU en el orden de decodificación, la codificación del mensaje SEI de sub-imagen incluye codificar la duración entre un tiempo de remoción de la última DU y el tiempo de remoción de la primera DU en el mensaje SEI de temporización de sub-imagen. En algunos ejemplos, el codificador de video 20 codifica un indicador de nivel de secuencia para indicar la presencia de los parámetros CPB a nivel de sub-imagen ya sea en los mensajes SEI de temporización de imagen o en los mensajes SEI de temporización de sub-imagen.
En otro ejemplo donde la AU tiene un Temporalld igual a 0, el codificador de video 20 puede codificar al menos uno de un mensaje SEI de periodo de almacenamiento en memoria intermedia o un mensaje SEI de tiempo de recuperación asociado con la AU. El método también puede incluir, derivar al menos uno un tiempo de llegada CPB y un tiempo de remoción normal CPB para la AU tanto a nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU.
La figura 13 es un gráfico de flujo que ilustra un
método para decodificar el periodo de almacenamiento en memoria intermedia y mensajes SEI de punto de recuperación, de acuerdo con las téenicas descritas en esta divulgación. El método puede ser ejecutado mediante un dispositivo de decodificación de video. El dispositivo de decodificación de video puede ser el decodificador de video 30 de las figuras 1 y 3, por ejemplo.
El método incluye decodificar un mensaje SEI de periodo de almacenamiento en memoria intermedia asociado con una AU (530). La AU tiene un Temporalld igual o menor que 0. Es decir, el mensaje SEI de periodo de almacenamiento en memoria intermedia está restringido de manera que éste no puede ser asociado con una AU que tiene un TemporalID mayor que 0.
El método además incluye decodificar una duración entre la remoción CPB de una primera DU en la AU y la remoción CPB de una segunda DU del mensaje SEI de periodo de almacenamiento en memoria intermedia (532). La segunda DU puede estar en la misma AU que la primera DU. La segunda DU puede ser posterior, incluyendo inmediatamente posterior a la primera DU en el orden de decodificación. En otros ejemplos, la segunda DU puede ser la última DU en el orden de decodificación en la AU. Las DUs pueden ser cualquier tipo de DU aceptado en HEVC WD8 y además puede ser una unidad VLC NAL con nal unidad_tipo igual a UNSPEC0, EOS_NUT, E0B_NUT, en el
rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
El método además puede incluir, determinar un tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada (534). En algunos ejemplos, el decodificador de video 30 puede decodificar uno o más parámetros CPB a nivel de sub-imagen. La determinación del tiempo de remoción de la primera DU además puede incluir, determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de sub-imagen. La decodificación de uno o más parámetros CPB a nivel de sub-imagen además puede incluir la decodificación de un mensaje SEI de temporización de sub-imagen que está asociado con la primera DU.
El método además puede incluir, decodificar los datos de video de la primera DU con base al menos en parte en el tiempo de remoción (536). En ejemplos donde la segunda DU es una última DU en la AU en el orden de decodificación, la decodificación del mensaje SEI de sub-imagen además incluye decodificar la duración entre un tiempo de remoción de la última DU y el tiempo de remoción de la primera DU en el mensaje SEI de temporización de sub-imagen.
El método además puede incluir, decodificar un indicador de nivel de secuencia para determinar la presencia de los
parámetros CPB a nivel de sub-imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen. El método también puede incluir, derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU.
La figura 14 es un gráfico de flujo que ilustra un método para codificar mensajes SEI del periodo de almacenamiento en memoria intermedia de acuerdo con las téenicas descritas en esta divulgación. El método puede ser ejecutado a través de un dispositivo de codificación de video. El dispositivo de codificación de video puede ser el codificador de video 20 de las figuras 1 y 2, por ejemplo.
El método incluye codificar un mensaje de información de mejora complementaria (SEI) del periodo de almacenamiento en memoria intermedia asociado con una unidad de acceso (AU), en donde la duración está codificada dentro de al menos uno del mensaje SEI del periodo de almacenamiento en memoria intermedia o el mensaje SEI de punto de recuperación (540). Debido a que la AU tiene un Temporalld igual a o menor que 0, el mensaje SEI de periodo de almacenamiento en memoria intermedia queda restringido de manera que éste no puede ser asociado con una AU que tiene un Temporalld mayor que 0.
El método también puede incluir, codificar una duración entre el tiempo de remoción CPB de una primera DU en la AU y el tiempo de remoción CPB de una segunda DU del mensaje SEI de periodo de almacenamiento en memoria intermedia, en donde la AU tiene un TemporalID igual a 0 (542). El método además puede incluir, determinar un tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada (544). Además, el método puede incluir, codificar datos de video de la primera DU (546).
El método además puede incluir, determinar una duración entre la remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y la remoción CPB de una segunda DU en la AU, en donde la AU tiene un Temporalld igual a 0. La segunda DU puede estar en la misma AU que la primera DU. La segunda DU puede ser posterior, incluyendo inmediatamente posterior a la primera DU en el orden de decodificación. En otros ejemplos, la segunda DU puede ser la última DU en el orden de decodificación en la AU. Las DUs pueden ser cualquier tipo de DU aceptado en HEVC WD8 y además pueden ser una unidad VCL NAL con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
En un ejemplo, la determinación de la duración entre la
remoción CPB de la primera DU puede incluir determinar un tiempo de remoción de la primera y segunda DU. El tiempo de remoción de la primera DU puede ser sustraído del tiempo de remoción de la segunda DU para determinar la duración.
En algunos ejemplos, el codificador de video 20 puede codificar uno o más parámetros CPB a nivel de sub-imagen. La determinación del tiempo de remoción de la primera DU además puede incluir, determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración codificada y los parámetros CPB a nivel de sub-imagen. La codificación de uno o más parámetros CPB a nivel de sub-imagen además puede incluir la codificación de un mensaje SEI de temporización de sub-imagen que está asociado con la primera DU.
El método además puede incluir, codificar los datos de video de la primera DU. La codificación de los datos de video de la primera DU se puede basar al menos en parte en el tiempo de remoción. En ejemplos donde la segunda DU es una última DU en la AU en el orden de decodificación, la codificación del mensaje SEI de sub-imagen además incluye codificar la duración entre un tiempo de remoción de la última DU y el tiempo de remoción de la primera DU en el mensaje SEI de temporización de sub-imagen.
El método además puede incluir, codificar un indicador de nivel de secuencia para indicar la presencia de los
parámetros CPB a nivel de sub-i agen ya sea en los mensajes SEI de temporización de imagen o en los mensajes SEI de te porización de sub-imagen. El método también puede incluir, derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU.
La figura 15 es un gráfico de flujo que ilustra un método para decodificar los tiempos de remoción nominal y de llegada de memoria intermedia de imágenes codificadas de acuerdo con las téenicas descritas en esta divulgación. El método puede ser ejecutado mediante un dispositivo de decodificación de video. El dispositivo de codificación de video puede ser el decodificador de video 30 de las figuras 1 y 3, por ejemplo.
El método incluye derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para una AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si una DU es toda la AU. La DU puede estar asociada con la AU (560). El método puede incluir que el decodificador de video 30 determine un valor del elemento de sintaxis. El elemento de sintaxis puede tener la forma de
SublmagenCpblndicador. En respuesta a que el elemento de sintaxis tiene un valor verdadero (por ejemplo, SublmagenCpblndicador es 1), el método puede incluir, derivar un tiempo de remoción CPB únicamente para el nivel de AU. En respuesta a que el elemento de sintaxis tiene un valor falso (por ejemplo, SublmagenCpblndicador es 0), derivar un tiempo de remoción CPB únicamente para el nivel de sub-imagen. En algunos ejemplos, al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB son derivados únicamente cuando un indicador de sintaxis que indica que parámetros CPB están presentes tiene un valor verdadero.
El método además puede incluir, determinar un tiempo de remoción de la AU con base al menos en parte en uno del tiempo de llegada CPB y un tiempo de remoción nominal CPB (562). El método además incluye decodificar datos de video de la AU con base al menos en parte en el tiempo de remoción (564).
El método además puede incluir, decodificar una duración entre la remoción CPB de una primera DU en la AU y la remoción CPB de una segunda DU, determinar un tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada, y decodificar datos de video de la primera DU con base al menos en parte en al menos uno del tiempo de remoción, el tiempo de llegada CPB, y el tiempo de
remoción nominal CPB. En algunos ejemplos, la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU. El método además puede incluir, decodificar uno o más parámetros CPB a nivel de sub imagen, en donde la determinación del tiempo de remoción de la primera DU comprende determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de sub-imagen.
En algunos ejemplos, el método también incluye decodificar un indicador de nivel de secuencia para determinar la presencia de parámetros CPB a nivel de sub imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen.
Las DUs pueden ser cualquier tipo de DU descrito en HEVC WD8, incluyendo unidades no-VCL NAL con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
En otro ejemplo donde la AU tiene un Temporalld no mayor que 0, el método además incluye decodificar al menos uno de un mensaje de información de mejora complementaria (SEI) del periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU.
La figura 16 es un gráfico de flujo que ilustra un método para codificar tiempos de remoción nominal y de
llegada de memoria intermedia de imágenes codificadas de acuerdo con las téenicas descritas en esta divulgación. El método puede ser ejecutado mediante un dispositivo de codificación de video. El dispositivo de codificación de video puede ser el codificador de video 20 de las figuras 1 y 2, por ejemplo.
El método incluye derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para una AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si una DU es toda la AU. La DU puede estar asociada con la AU (570). El método puede incluir que el codificador de video 20 determine un valor del elemento de sintaxis. El elemento de sintaxis puede tener la forma de SublmagenCpblndicador. En respuesta a que el elemento de sintaxis tiene un valor verdadero (por ejemplo, SublmagenCpblndicador es 1), el codificador de video 20 puede derivar un tiempo de remoción CPB únicamente para el nivel AU . En respuesta a que el elemento de sintaxis tiene un valor falso (por ejemplo, SublmagenCpblndicador es 0), el codificador de video 20 puede derivar un tiempo de remoción CPB únicamente para el nivel de sub-imagen. En algunos ejemplos, al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB son derivados únicamente
cuando un indicador de sintaxis que indica que los parámetros CPB están presentes tiene un valor verdadero.
El método además puede incluir, determinar un tiempo de remoción de la AU con base al menos en parte en uno del tiempo de llegada CPB y un tiempo de remoción nominal CPB (572). El método además incluye codificar el tiempo de remoción determinado (574). En algunos ejemplos, la codificación del tiempo de remoción puede incluir codificar una duración entre la remoción CPB de una primera DU en la AU y la remoción CPB de una segunda DU, determinar un tiempo de remoción de la primera DU con base al menos en parte en la duración codificada y codificar los datos de video de la primera DU con base al menos en parte en al menos uno del tiempo de remoción, el tiempo de llegada CPB y el tiempo de remoción nominal CPB. En algunos ejemplos, la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU. El método además puede incluir, codificar uno o más parámetros CPB a nivel de sub imagen, en donde la determinación del tiempo de remoción de la primera DU comprende determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración codificada y los parámetros CPB a nivel de sub-imagen. El método además puede incluir, codificar una duración entre la remoción CPB de una primera DU en la AU y la remoción CPB de
una segunda DO, en donde la codificación del tiempo de remoción además comprende codificar la duración.
En algunos ejemplos, el método también incluye codificar un indicador de nivel de secuencia para indicar la presencia de parámetros CPB a nivel de sub-imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen.
Las DUs pueden ser cualquier tipo de DU descrito en HEVC WD8, incluyendo unidades no-VCL NAL con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
En otro ejemplo donde la AU tiene un Temporalld no mayor que 0, el método además incluye codificar al menos uno de un mensaje SEI de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU.
En uno o más ejemplos, las funciones descritas pueden ser implementadas en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden ser almacenadas en o transmitidas sobre, como una o más instrucciones o código, un medio legible por computadora y ejecutadas por una unidad de procesamiento basada en hardware. El medio legible por computadora puede incluir medios de almacenamiento legibles por computadora,
los cuales corresponden a un medio tangible tal como un medio de almacenamiento de datos, o medios de comunicación incluyendo cualquier medio que facilite la transferencia de un programa de computadora de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por computadora generalmente pueden corresponder a (1) medios de almacenamiento legibles por computadora tangibles los cuales no son transitorios o (2) un medio de comunicación tal como una onda de portadora o señal. El medio de almacenamiento de datos puede ser cualquier medio disponible al que se pueda tener acceso a través de una o más computadoras o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para implementación de las téenicas descritas en esta divulgación. Un producto de programa de computadora puede incluir un medio legible por computadora.
A manera de ejemplo, y no limitación, dicho medio de almacenamiento legible por computadora puede comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético, u otros dispositivos de almacenamiento magnético, memoria flash, o cualquier otro medio que se pueda utilizar para almacenar un código de programa deseado en la forma de instrucciones o estructuras de datos y a los que se pueda tener acceso mediante una
computadora. También, cualquier conexión se denomina de manera apropiada un medio legible por computadora. Por ejemplo, si las instrucciones son transmitidas desde un sitio Web, servidor u otra fuente remota utilizando un cable coaxial, cable de fibra óptica, par torcido, linea de suscriptor digital (DSL), o teenologías inalámbricas tales como infrarrojo, radio y microondas, entonces el cable coaxial, cabe de fibra óptica, par torcido, DSL, o tecnologías inalámbricas tales como infrarrojo, radio y microondas se incluyen en la definición de medio. Sin embargo, se debiera entender que el medio de almacenamiento legible por computadora y el medio de almacenamiento de datos no incluyen conexiones, ondas de portadora, señales u otros medios transitorios, sino que más bien están dirigidos a medios de almacenamiento tangibles, no transitorios. Disco (disk) y disco, tal como aquí se utilizan, incluyen un disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde discos (disks) por lo general reproducen datos en forma magnética, mientras que los discos reproducen datos en forma óptica con láser. Combinaciones de los anteriores también se debieran incluir dentro del alcance del medio legible por computadora.
Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales como uno o más procesadores se señal
digital (DSPs), microprocesadores de propósito general, circuitos integrados de aplicación especifica (ASICs), arreglos lógicos de campo programable (FPGAs), u otros circuitos lógicos discretos o integrados equivalentes. Por consiguiente, el término "procesador" tal como aquí se utiliza se puede referir a cualquiera de la estructura anterior o cualquier otra estructura conveniente para implementación de las téenicas aquí descritas. Además, en algunos aspectos, la funcionalidad aquí descrita puede ser proporcionada dentro de los módulos de hardware y/o software dedicados configurados para la codificación y decodificación, o incorporados en un codee combinado. También, las técnicas podrían ser completamente implementadas en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un equipo inalámbrico, un circuito integrado (IC) o un conjunto de ICs (por ejemplo, un conjunto de chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para ejecutar las técnicas divulgadas, pero no necesariamente requieren la realización mediante diferentes unidades de hardware. Más bien, tal como se describió antes, diversas unidades se pueden combinar en
una unidad de hardware de codee o proporcionar a través de un conjunto de unidades de hardware interoperables, incluyendo uno o más procesadores tal como se describió antes, en conjunto con software y/o firmware conveniente.
Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.
Claims (62)
1.- Un método para decodificar datos de video, el método comprende: decodificar una duración entre un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y un tiempo de remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU; determinar el tiempo de remoción CPB de la primera DU con base al menos en parte en la duración decodificada; y decodificar datos de video de la primera DU con base al menos en parte en el tiempo de remoción CPB.
2. El método de conformidad con la reivindicación 1, caracterizado porque la segunda DU es inmediatamente posterior a la primera DU en la AU en el orden de decodificación .
3.- El método de conformidad con la reivindicación 1, caracterizado porque la segunda DU es una última DU en la AU en el orden de decodificación.
4.- El método de conformidad con la reivindicación 1, que además comprende: decodificar uno o más parámetros CPB a nivel de sub imagen, en donde la determinación del tiempo de remoción CPB de la primera DU comprende determinar el tiempo de remoción CPB de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de sub imagen.
5.- El método de conformidad con la reivindicación 4, caracterizado porque la decodificación de uno o más parámetros CPB a nivel de sub-imagen comprende: decodificar un mensaje de información de mejora complementaria (SEI) de temporización de sub-imagen que está asociado con la primera DU.
6.- El método de conformidad con la reivindicación 5, caracterizado porque la segunda DU es una última DU en la AU en el orden de decodificación, y en donde la decodificación del mensaje SEI de sub-imagen comprende: decodificar la duración entre un tiempo de remoción de la última DU y el tiempo de remoción CPB de la primera DU en el mensaje SEI de temporización de sub-imagen.
7.- El método de conformidad con la reivindicación 4, que además comprende: decodificar un indicador de nivel de secuencia para indicar la presencia de los parámetros CPB a nivel de sub imagen ya sea en los mensajes SEI de temporización de imagen o en los mensajes SEI de temporización de sub-imagen.
8.- El método de conformidad con la reivindicación 1, caracterizado porque la AU tiene un TemporalID igual a 0, el método además comprende: decodificar al menos uno de un mensaje de información de mejora complementaria (SEI) de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU.
9.- El método de conformidad con la reivindicación 1, caracterizado porgue la primera DU comprende una unidad de capa de abstracción de red (NAL) de la capa de codificación de no video (VLC) con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
10.- El método de conformidad con la reivindicación 1, que además comprende: derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto al nivel de unidad de acceso como al nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU.
11.- El método de conformidad con la reivindicación 1, que además comprende: decodificar uno o más parámetros CPB a nivel de imagen, en donde la determinación del tiempo de remoción CPB de la primera DU comprende determinar el tiempo de remoción CPB de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de imagen.
12.- El método de conformidad con la reivindicación 11, caracterizado porque la decodificación de uno o más parámetros CPB a nivel de imagen comprende: decodificar un mensaje de información de mejora complementaria (SEI) de temporización de imagen que está asociado con la primera DU.
13.- Un dispositivo de decodificación de video que comprende un decodificador de video configurado para: decodificar una duración entre un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y un tiempo de remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU; determinar el tiempo de remoción CPB de la primera DU con base al menos en parte en la duración decodificada; y decodificar los datos de video de la primera DU con base al menos en parte en el tiempo de remoción CPB.
14.- El dispositivo de decodificación de video de conformidad con la reivindicación 13, caracterizado porque la segunda DU es inmediatamente posterior a la primera DU en la AU en el orden de decodificación.
15.- El dispositivo de decodificación de video de conformidad con la reivindicación 13, caracterizado porque la segunda DU es una última DU en la AU en el orden de decodificación.
16.- El dispositivo de decodificación de video de conformidad con la reivindicación 13, caracterizado porque el decodificador de video además está configurado para decodificar uno o más parámetros CPB a nivel de sub-imagen, en donde la determinación del tiempo de remoción de la primera DU comprende determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de sub-imagen.
17.- El dispositivo de decodificación de video de conformidad con la reivindicación 16, caracterizado porque el decodificador de video además está configurado para decodificar uno o más parámetros CPB a nivel de sub-imagen mediante la decodificación de un mensaje de información de mejora complementaria (SEI) de temporización de sub-imagen que está asociado con la primera DU.
18.- El dispositivo de decodificación de video de conformidad con la reivindicación 17, .caracterizado porque la segunda DU es una última DU en la Aü en el orden de decodificación, y en donde la decodificación del mensaje SEI de sub-imagen comprende decodificar la duración entre un tiempo de remoción de la última DU y el tiempo de remoción de la primera DU en el mensaje SEI de temporización de subimagen.
19.- El dispositivo de decodificación de video de conformidad con la reivindicación 16, caracterizado porque el decodificador de video además está configurado para decodificar un indicador de nivel de secuencia para indicar la presencia de los parámetros CPB a nivel de sub-imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen.
20.- El dispositivo de decodificación de video de conformidad con la reivindicación 13, caracterizado porque la AU tiene un Temporalld igual a 0, el decodificador de video además está configurado para decodificar al menos uno de un mensaje de información de mejora complementaria (SEI) de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU.
21.- El dispositivo de decodificación de video de conformidad con la reivindicación 13, caracterizado porque la primera DU comprende una unidad de capa de abstracción de red (NAL) de capa de codificación de no video (VCL) con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
22.- El dispositivo de decodificación de video de conformidad con la reivindicación 13, caracterizado porque el decodificador de video además está configurado para derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU.
23.- El dispositivo de decodificación de video de conformidad con la reivindicación 13, caracterizado porque el decodificador de video además está configurado para decodificar uno o más parámetros CPB a nivel de imagen, en donde la determinación del tiempo de remoción de la primera DU comprende determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de imagen.
24.- El dispositivo de decodificación de video de conformidad con la reivindicación 23, caracterizado porque el decodificador de video además está configurado para decodificar uno o más parámetros CPB a nivel de imagen mediante la decodificación de un mensaje de información de mejora complementaria (SEI) de temporización de imagen que está asociado con la primera DU.
25.- Un medio de almacenamiento legible por computadora que tiene almacenadas en el mismo, instrucciones que, cuando son ejecutadas, ocasionan que un procesador de un dispositivo decodifique datos de video para: decodificar una duración entre un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y un tiempo de remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU; determinar el tiempo de remoción CPB de la primera DU con base al menos en parte en la duración decodificada; y decodificar datos de video de la primera DU con base al menos en parte en el tiempo de remoción CPB.
26.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 25, caracterizado porque la segunda DU es inmediatamente posterior a la primera DU en la AU en el orden de decodificación.
27.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 25, caracterizado porque la segunda DU es una última DU en la AU en el orden de decodificación.
28.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 25, caracterizado porque las instrucciones además ocasionan que el procesador decodifique uno o más parámetros CPB a nivel de sub-imagen, en donde la determinación del tiempo de remoción CPB de la primera DU comprende determinar el tiempo de remoción CPB de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de sub-imagen.
29.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 25, caracterizado porque las instrucciones además ocasionan que el procesador decodifique uno o más parámetros CPB a nivel de imagen, en donde la determinación del tiempo de remoción CPB de la primera DU comprende determinar el tiempo de remoción CPB de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de imagen.
30.- Un dispositivo de decodificación de video que comprende: medios para decodificar una duración entre un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una primera unidad de decodificación (DU) en una unidad de acceso (AU) y un tiempo de remoción CPB de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU; medios para determinar el tiempo de remoción CPB de la primera DU con base al menos en parte en la duración decodificada; y medios para decodificar datos de video de la primera DU con base al menos en parte en el tiempo de remoción CPB.
31.- El dispositivo de decodificación de video de conformidad con la reivindicación 30, caracterizado porque la segunda DU es una de inmediatamente posterior a la primera DU en la AU en el orden de decodificación y una última DU en la AU en el orden de decodificación.
32.- El dispositivo de decodificación de video de conformidad con la reivindicación 30, que además comprende medios para decodificar uno o más parámetros CPB a nivel de sub-imagen, en donde los medios para determinar el tiempo de remoción CPB de la primera DU comprenden medios para determinar el tiempo de remoción CPB de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de sub-imagen.
33.- El dispositivo de decodificación de video de conformidad con la reivindicación 30, que además comprende medios para decodificar uno o más parámetros CPB a nivel de imagen, en donde los medios para determinar el tiempo de remoción de la primera DU comprenden medios para determinar el tiempo de remoción de la primera DU con base al menos en parte en la duración decodificada y los parámetros CPB a nivel de imagen.
34.- Un método para codificar datos de video, el método comprende: determinar, para una unidad de acceso (AU) incluyendo una primera unidad de decodificación (DU), un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU; determinar una duración entre un tiempo de remoción CPB de la primera DU y el tiempo de remoción CPB determinado de la segunda DU; y codificar la duración determinada.
35.- El método de conformidad con la reivindicación 34, caracterizado porque la segunda DU es inmediatamente posterior a la primera DU en la AU en el orden de decodificación .
36.- El método de conformidad con la reivindicación 34, caracterizado porque la segunda DU es una última DU en la AU en el orden de decodificación.
37.- El método de conformidad con la reivindicación 34, caracterizado porque la codificación de la duración determinada incluye codificar la duración determinada como uno o más parámetros CPB a nivel de sub-imagen.
38.- El método de conformidad con la reivindicación 37, caracterizado porque la codificación de uno o más parámetros CPB a nivel de sub-imagen comprende: codificar un mensaje de información de mejora complementaria (SEI) de temporización de sub-imagen que está asociado con la primera DU.
39.- El método de conformidad con la reivindicación 38, caracterizado porque la segunda DU es una última DU en la AU en el orden de decodificación, y en donde la codificación de la duración determinada como uno o más parámetros CPB a nivel de sub-imagen además comprende codificar la duración determinada en el mensaje SEI de temporización de sub-imagen.
40.- El método de conformidad con la reivindicación 37, que además comprende: codificar un indicador de nivel de secuencia para indicar la presencia de los parámetros CPB a nivel de sub-imagen ya sea en los mensajes SEI de temporización de imagen o en los mensajes SEI de temporización de sub-imagen.
41.- El método de conformidad con la reivindicación 34, caracterizado porque la AU tiene un TemporalID menor que o igual a 0, el método además comprende: codificar al menos uno de un mensaje de información de mejora complementaria (SEI) de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU.
42.- El método de conformidad con la reivindicación 34, caracterizado porque la primera DU comprende una unidad de capa de abstracción de red (NAL) de capa de codificación de no video (VCL) con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
43.- El método de conformidad con la reivindicación 34, que además comprende: derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU.
44.- El método de conformidad con la reivindicación 34, caracterizado porque la codificación de la duración determinada incluye codificar la duración determinada como uno o más parámetros CPB a nivel de imagen.
45.- El método de conformidad con la reivindicación 44, caracterizado porque la codificación de uno o más parámetros CPB a nivel de sub-imagen comprende: codificar un mensaje de información de mejora complementaria (SEI) de temporización de imagen que está asociado con la primera DU.
46.- Un dispositivo de codificación de video que comprende un codificador de video configurado para: determinar, para una unidad de acceso (AU) incluyendo una primera unidad de decodificación (DU), un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU; determinar una duración entre un tiempo de remoción CPB de la primera DU y el tiempo de remoción CPB determinado de la segunda DU; y codificar la duración determinada.
47.- El dispositivo de codificación de video de conformidad con la reivindicación 46, caracterizado porque la segunda DU es inmediatamente posterior a la primera DU en la AU en el orden de decodificación.
48.- El dispositivo de codificación de video de conformidad con la reivindicación 46, caracterizado porque la segunda DU es una última DU en la AU en el orden de decodificación.
49.- E1 dispositivo de codificación de video de conformidad con la reivindicación 46, caracterizado porque la codificación de la duración determinada incluye codificar la duración determinada como uno o más parámetros CPB a nivel de sub-i agen.
50.- El dispositivo de codificación de video de conformidad con la reivindicación 49, caracterizado porque el codificador de video además está configurado para codificar uno o más parámetros CPB a nivel de sub-imagen codificando un mensaje de información de mejora complementaria (SEI) de temporización de sub-imagen que está asociado con la primera DU.
51.- El dispositivo de codificación de video de conformidad con la reivindicación 50, caracterizado porque la segunda DU es una última DU en la AU en el orden de decodificación, y en donde la codificación de la duración determinada como uno o más parámetros CPB a nivel de sub-imagen además comprende codificar la duración determinada en el mensaje SEI de temporización de sub-imagen.
52.- El dispositivo de codificación de video de conformidad con la reivindicación 46, caracterizado porque el codificador de video además está configurado para codificar un indicador de nivel de secuencia para indicar la presencia de los parámetros CPB a nivel de sub-imagen ya sea en mensajes SEI de temporización de imagen o en mensajes SEI de temporización de sub-imagen.
53.- El dispositivo de codificación de video de conformidad con la reivindicación 46, caracterizado porque la AU tiene un Temporalld menor que o igual a 0, el codificador de video además está configurado para codificar al menos uno de un mensaje de información de mejora complementaria (SEI) de periodo de almacenamiento en memoria intermedia o un mensaje SEI de punto de recuperación asociado con la AU.
54.- El dispositivo de codificación de video de conformidad con la reivindicación 46, caracterizado porque la primera DU comprende una unidad de capa de abstracción de red (NAL) de capa de codificación de no video (VCL) con nal_unidad_tipo igual a UNSPECO, EOS_NUT, EOB_NUT, en el rango de RSV_NVCL44 a RSV_NVCL47 o en el rango de UNSPEC48 a UNSPEC63.
55.- El dispositivo de codificación de video de conformidad con la reivindicación 46, caracterizado porque el codificador de video además está configurado para: derivar al menos uno de un tiempo de llegada CPB y un tiempo de remoción nominal CPB para la AU tanto a un nivel de unidad de acceso como a un nivel de sub-imagen sin considerar un valor de un elemento de sintaxis que define si la primera DU es la AU.
56 .- El dispositivo de codificación de video de conformidad con la reivindicación 46, caracterizado porque la codificación de la duración determinada incluye codificar la duración determinada como uno o más parámetros CPB a nivel de imagen.
57.- El dispositivo de codificación de video de conformidad con la reivindicación 46, caracterizado porque el codificador de video además está configurado para codificar uno o más parámetros CPB a nivel de sub-imagen mediante la codificación de un mensaje de información de mejora complementaria (SEI) de temporización de imagen que está asociada con la primera DU.
58.- Un medio de almacenamiento legible por computadora que tiene almacenadas, en el mismo, instrucciones que, cuando son ejecutadas, ocasionan que un procesador de un dispositivo para la codificación de datos de video: determine, para una unidad de acceso (AU) incluyendo una primera unidad de decodificación (DU), un tiempo de remoción de memoria intermedia de imágenes codificadas (CPB) de una segunda DU, en donde la segunda DU es posterior a la primera DU en el orden de decodificación y en la misma AU que la primera DU; determine una duración entre un tiempo de remoción CPB de la primera DU y el tiempo de remoción CPB determinado de la segunda DU; y codifique la duración determinada.
59.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 58, caracterizado porque la segunda DU es inmediatamente posterior a la primera DU en la AU en el orden de decodificación.
60.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 58, caracterizado porque la segunda DU es una última DU en la AU en el orden de decodificación.
61.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 58, caracterizado porque la codificación de la duración determinada incluye codificar la duración determinada como uno o más parámetros CPB a nivel de sub-imagen.
62.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 58, caracterizado porque la codificación de la duración determinada incluye codificar la duración determinada como uno o más parámetros CPB a nivel de imagen.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261705119P | 2012-09-24 | 2012-09-24 | |
| US201261708475P | 2012-10-01 | 2012-10-01 | |
| US14/033,141 US9479773B2 (en) | 2012-09-24 | 2013-09-20 | Access unit independent coded picture buffer removal times in video coding |
| PCT/US2013/061217 WO2014047577A1 (en) | 2012-09-24 | 2013-09-23 | Access unit independent coded picture buffer removal times in video coding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| MX2015003694A true MX2015003694A (es) | 2015-06-15 |
| MX341441B MX341441B (es) | 2016-08-18 |
Family
ID=50338852
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| MX2015003694A MX341441B (es) | 2012-09-24 | 2013-09-23 | Tiempos de remocion de memoria intermedia de imagenes codificadas independientes de la unidad de accceso en la codificacion de video. |
Country Status (22)
| Country | Link |
|---|---|
| US (6) | US9479774B2 (es) |
| EP (6) | EP2898683B1 (es) |
| JP (6) | JP6239626B2 (es) |
| KR (6) | KR101760195B1 (es) |
| CN (6) | CN104662917B (es) |
| AR (3) | AR093287A1 (es) |
| AU (6) | AU2013317763B2 (es) |
| BR (6) | BR112015006492B1 (es) |
| CA (6) | CA2884289C (es) |
| DK (2) | DK2898685T3 (es) |
| ES (5) | ES2885527T3 (es) |
| HU (4) | HUE052209T2 (es) |
| IL (6) | IL237680B (es) |
| MX (1) | MX341441B (es) |
| MY (6) | MY181707A (es) |
| PH (6) | PH12015500479B1 (es) |
| RU (6) | RU2646378C2 (es) |
| SG (7) | SG11201501580RA (es) |
| TW (6) | TWI524779B (es) |
| UA (2) | UA116997C2 (es) |
| WO (6) | WO2014047586A1 (es) |
| ZA (4) | ZA201502382B (es) |
Families Citing this family (66)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011199396A (ja) | 2010-03-17 | 2011-10-06 | Ntt Docomo Inc | 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法、及び動画像予測復号プログラム |
| US20150003536A1 (en) * | 2012-02-08 | 2015-01-01 | Thomson Licensing | Method and apparatus for using an ultra-low delay mode of a hypothetical reference decoder |
| CN107749985B (zh) * | 2012-06-25 | 2020-05-15 | 日本电气株式会社 | 视频解码设备和视频解码方法 |
| US9716892B2 (en) | 2012-07-02 | 2017-07-25 | Qualcomm Incorporated | Video parameter set including session negotiation information |
| JP6552197B2 (ja) | 2012-07-06 | 2019-07-31 | シャープ株式会社 | サブピクチャ・ベースの仮想参照デコーダ・パラメータをシグナリングする方法 |
| US9479774B2 (en) | 2012-09-24 | 2016-10-25 | Qualcomm Incorporated | Buffering period and recovery point supplemental enhancement information messages |
| US10021394B2 (en) | 2012-09-24 | 2018-07-10 | Qualcomm Incorporated | Hypothetical reference decoder parameters in video coding |
| US9374585B2 (en) * | 2012-12-19 | 2016-06-21 | Qualcomm Incorporated | Low-delay buffering model in video coding |
| US9591321B2 (en) | 2013-04-07 | 2017-03-07 | Dolby International Ab | Signaling change in output layer sets |
| SG11201508300TA (en) | 2013-04-07 | 2015-11-27 | Sharp Kk | Signaling change in output layer sets |
| US9467700B2 (en) | 2013-04-08 | 2016-10-11 | Qualcomm Incorporated | Non-entropy encoded representation format |
| WO2014168893A1 (en) * | 2013-04-08 | 2014-10-16 | General Instrument Corporation | Signaling for addition or removal of layers in video coding |
| US9402083B2 (en) * | 2014-04-24 | 2016-07-26 | Vidyo, Inc. | Signaling conformance points using profile space |
| US10432951B2 (en) * | 2014-06-24 | 2019-10-01 | Qualcomm Incorporated | Conformance and inoperability improvements in multi-layer video coding |
| US11595652B2 (en) * | 2019-01-28 | 2023-02-28 | Op Solutions, Llc | Explicit signaling of extended long term reference picture retention |
| US10623755B2 (en) | 2016-05-23 | 2020-04-14 | Qualcomm Incorporated | End of sequence and end of bitstream NAL units in separate file tracks |
| CN107612953B (zh) * | 2016-07-12 | 2020-10-27 | 中国电信股份有限公司 | 增强信息生成和获取方法、装置、终端设备、平台和系统 |
| US10999605B2 (en) * | 2017-01-10 | 2021-05-04 | Qualcomm Incorporated | Signaling of important video information in file formats |
| US10521880B2 (en) * | 2017-04-17 | 2019-12-31 | Intel Corporation | Adaptive compute size per workload |
| CN116489627A (zh) * | 2017-04-27 | 2023-07-25 | 三星电子株式会社 | 网络可切片区域信息获取方法 |
| US11647179B2 (en) * | 2018-06-25 | 2023-05-09 | B1 Institute Of Image Technology, Inc. | Method and apparatus for encoding/decoding images |
| WO2020159994A1 (en) | 2019-01-28 | 2020-08-06 | Op Solutions, Llc | Online and offline selection of extended long term reference picture retention |
| CN113785584B (zh) * | 2019-03-01 | 2024-10-01 | 弗劳恩霍夫应用研究促进协会 | 假想参考解码器 |
| JP7455829B2 (ja) * | 2019-06-18 | 2024-03-26 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法、および復号方法 |
| WO2020263646A1 (en) * | 2019-06-24 | 2020-12-30 | Interdigital Vc Holdings, Inc. | Method and apparatus for signaling decoding data using high level syntax elements |
| CN113875241A (zh) * | 2019-06-25 | 2021-12-31 | 英特尔公司 | 具有水平推导的子图片和子图片集 |
| EP3981162B1 (en) * | 2019-06-27 | 2024-09-25 | Huawei Technologies Co., Ltd. | Hypothetical reference decoder for v-pcc |
| US12096033B2 (en) * | 2019-08-21 | 2024-09-17 | Sharp Kabushiki Kaisha | Systems and methods for signaling buffering period information in video coding |
| EP4030764A4 (en) * | 2019-09-11 | 2022-11-23 | Panasonic Intellectual Property Corporation of America | ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD AND DECODING METHOD |
| EP4018658B1 (en) | 2019-09-17 | 2023-03-29 | Huawei Technologies Co., Ltd. | Signaling subpicture ids in subpicture based video coding |
| CA3155882A1 (en) | 2019-09-24 | 2021-04-01 | Huawei Technologies Co., Ltd. | IMAGE SYNCHRONIZATION AND DECODING UNIT INFORMATION FOR TIME SCALABILITY |
| CN116744002A (zh) | 2019-09-24 | 2023-09-12 | 华为技术有限公司 | 视频译码中的sei消息依赖简化 |
| IL291689B2 (en) | 2019-09-24 | 2025-07-01 | Huawei Tech Co Ltd | Hypothetical Source Decoder (HRD) for checking the suitability of output layer sets (OLS) |
| CN114503164B (zh) * | 2019-10-07 | 2025-06-27 | 华为技术有限公司 | 基于视频的点云压缩(v-pcc)分量同步 |
| US11509938B2 (en) * | 2019-11-05 | 2022-11-22 | Hfi Innovation Inc. | Method and apparatus of signaling subpicture information in video coding |
| WO2021107638A1 (ko) * | 2019-11-27 | 2021-06-03 | 엘지전자 주식회사 | 슬라이스 관련 정보를 시그널링하는 방법 및 장치 |
| CN120786074A (zh) * | 2019-12-05 | 2025-10-14 | 夏普株式会社 | 用于在视频编码中发送信号通知画面定时和解码单元信息的系统和方法 |
| BR112022012288A8 (pt) | 2019-12-20 | 2023-03-21 | Humax Co L Td | Método de processamento de sinal de vídeo e dispositivo para o mesmo |
| KR102705715B1 (ko) | 2019-12-26 | 2024-09-11 | 바이트댄스 아이엔씨 | 코딩된 픽처 내에서 디코딩 순서를 구현하기 위한 기술들 |
| JP7427176B2 (ja) * | 2019-12-27 | 2024-02-05 | 国立研究開発法人情報通信研究機構 | 無線通信情報更新システム及び無線通信情報更新方法 |
| CN114946174B (zh) | 2020-01-09 | 2025-06-13 | 字节跳动有限公司 | 层间参考图片的存在的信令通知 |
| CN115211126B (zh) * | 2020-02-14 | 2024-12-27 | 抖音视界有限公司 | 处理视频数据的方法、设备以及存储介质 |
| JP7457143B2 (ja) | 2020-02-14 | 2024-03-27 | 北京字節跳動網絡技術有限公司 | 映像ビットストリームにおける一般的な制約フラグの使用 |
| CN115244922B (zh) | 2020-02-24 | 2025-08-15 | 字节跳动有限公司 | 视频编解码中使用图片级别条带索引 |
| WO2021178501A1 (en) | 2020-03-03 | 2021-09-10 | Bytedance Inc. | Controlling a scaling process using slice header signaling |
| WO2021180164A1 (en) * | 2020-03-11 | 2021-09-16 | Beijing Bytedance Network Technology Co., Ltd. | Transform skip based residual coding |
| EP4104447A4 (en) | 2020-03-17 | 2023-08-16 | ByteDance Inc. | USE OF A VIDEO PARAMETER SET IN VIDEO CODING |
| KR102578407B1 (ko) * | 2020-03-31 | 2023-09-13 | 엘지전자 주식회사 | 레이어간 정렬된 서브픽처 정보에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 |
| CN115668918A (zh) * | 2020-03-31 | 2023-01-31 | Lg电子株式会社 | 基于画面划分信息和子画面信息的图像编码/解码方法和设备及存储比特流的记录介质 |
| US11706428B2 (en) | 2020-04-06 | 2023-07-18 | Tencent America LLC | Method for signaling picture header in coded video stream |
| EP4140126A4 (en) * | 2020-05-22 | 2023-06-21 | Beijing Bytedance Network Technology Co., Ltd. | SCALING WINDOW IN A SUB-PICTURE SUB-BITSTREAM EXTRACTION PROCESS |
| CN115668908A (zh) | 2020-05-22 | 2023-01-31 | 字节跳动有限公司 | 视频子比特流提取过程中访问单元的处理 |
| KR20230013055A (ko) | 2020-05-22 | 2023-01-26 | 바이트댄스 아이엔씨 | 비디오 비트스트림들에서 픽처 순서 카운트의 코딩 |
| JP7640587B2 (ja) * | 2020-06-08 | 2025-03-05 | バイトダンス インコーポレイテッド | 映像ピクチャにおけるサブピクチャ数の制約 |
| CN115917978B (zh) * | 2020-06-08 | 2025-11-14 | 字节跳动有限公司 | 对解码图片缓存的约束 |
| WO2021252465A1 (en) | 2020-06-09 | 2021-12-16 | Bytedance Inc. | Subpicture sub-bitstream extraction process enhancements |
| KR102860823B1 (ko) | 2020-06-09 | 2025-09-17 | 바이트댄스 아이엔씨 | 다중-계층 비디오 비트스트림의 서브-비트스트림 추출 |
| WO2021252541A1 (en) | 2020-06-09 | 2021-12-16 | Bytedance Inc. | Signaling non-scalable-bested hypothetical reference video decoder information |
| KR20230020424A (ko) | 2020-06-09 | 2023-02-10 | 바이트댄스 아이엔씨 | 비디오 코딩에서 보충 향상 정보 메시지에 대한 제약들 |
| US11871143B2 (en) | 2020-09-17 | 2024-01-09 | Lemon Inc. | Subpicture tracks in coded video |
| EP3972269A1 (en) | 2020-09-17 | 2022-03-23 | Lemon Inc. | Subpicture entity groups in video coding |
| GB2599171B (en) * | 2020-09-29 | 2024-12-11 | Canon Kk | Method and apparatus for encapsulating video data into a file |
| US11962936B2 (en) | 2020-09-29 | 2024-04-16 | Lemon Inc. | Syntax for dependent random access point indication in video bitstreams |
| US20220109865A1 (en) * | 2020-10-02 | 2022-04-07 | Sharp Kabushiki Kaisha | Systems and methods for signaling picture buffer information for intra random access point picture sub-bitstreams in video coding |
| US12143604B2 (en) | 2021-04-15 | 2024-11-12 | Lemon Inc. | Level indicator for sub-picture entity group |
| US11695965B1 (en) * | 2022-10-13 | 2023-07-04 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video coding using a coded picture buffer |
Family Cites Families (52)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7551672B1 (en) | 1999-02-05 | 2009-06-23 | Sony Corporation | Encoding system and method, decoding system and method, multiplexing apparatus and method, and display system and method |
| RU2229176C2 (ru) * | 2000-06-14 | 2004-05-20 | Жуков Николай Анатольевич | Тепловыделяющая сборка с микротвэлами |
| RU2273109C2 (ru) * | 2000-09-07 | 2006-03-27 | Сони Корпорейшн | Способ и устройство обработки информации, программа и носитель записи |
| CA2690240C (en) * | 2001-03-08 | 2014-08-12 | Sony Corporation | Data recorder |
| US7532670B2 (en) * | 2002-07-02 | 2009-05-12 | Conexant Systems, Inc. | Hypothetical reference decoder with low start-up delays for compressed image and video |
| AU2003247605A1 (en) | 2002-07-02 | 2004-01-23 | Conexant Systems, Inc. | Hypothetical reference decoder for compressed image and video |
| JP4002878B2 (ja) * | 2003-01-17 | 2007-11-07 | 松下電器産業株式会社 | 画像符号化方法 |
| KR20050090377A (ko) * | 2003-01-20 | 2005-09-13 | 마쯔시다덴기산교 가부시키가이샤 | 화상 부호화 방법 |
| RU2329615C2 (ru) * | 2003-12-01 | 2008-07-20 | Самсунг Электроникс Ко., Лтд. | Способ масштабируемого кодирования и декодирования видеосигнала и устройство для его осуществления |
| WO2005071970A1 (en) * | 2004-01-16 | 2005-08-04 | General Instrument Corporation | Method and apparatus for determining timing information from a bit stream |
| US20050201471A1 (en) * | 2004-02-13 | 2005-09-15 | Nokia Corporation | Picture decoding method |
| US8406293B2 (en) | 2004-06-27 | 2013-03-26 | Apple Inc. | Multi-pass video encoding based on different quantization parameters |
| JP4091582B2 (ja) | 2004-09-06 | 2008-05-28 | 株式会社東芝 | 動画像符号化装置、及び動画像符号化方法 |
| US20060104356A1 (en) * | 2004-11-15 | 2006-05-18 | Microsoft Corporation | Timing for decoder buffer examination |
| US20060143678A1 (en) | 2004-12-10 | 2006-06-29 | Microsoft Corporation | System and process for controlling the coding bit rate of streaming media data employing a linear quadratic control technique and leaky bucket model |
| KR20080006609A (ko) * | 2005-04-13 | 2008-01-16 | 노키아 코포레이션 | 스케일링가능성 정보의 코딩, 저장, 및 시그널링 |
| JP4311570B2 (ja) | 2005-07-01 | 2009-08-12 | 株式会社ソニー・コンピュータエンタテインメント | 再生装置、ビデオ復号装置および同期再生方法 |
| EP1949701A1 (en) | 2005-10-11 | 2008-07-30 | Nokia Corporation | Efficient decoded picture buffer management for scalable video coding |
| US7477692B2 (en) * | 2005-12-16 | 2009-01-13 | Tut Systems, Inc. | Video encoding for seamless splicing between encoded video streams |
| KR100809301B1 (ko) | 2006-07-20 | 2008-03-04 | 삼성전자주식회사 | 엔트로피 부호화/복호화 방법 및 장치 |
| WO2008018626A2 (en) * | 2006-08-10 | 2008-02-14 | Canon Kabushiki Kaisha | Image decoding apparatus |
| JP2008109637A (ja) * | 2006-09-25 | 2008-05-08 | Toshiba Corp | 動画像符号化装置及びその方法 |
| KR101464011B1 (ko) | 2007-01-05 | 2014-12-03 | 톰슨 라이센싱 | 스케일러블 비디오 코딩에 대한 가상 레퍼런스 디코더 |
| CN102984544A (zh) | 2007-01-08 | 2013-03-20 | 汤姆森特许公司 | 用于视频流拼接的方法及装置 |
| WO2008087602A1 (en) * | 2007-01-18 | 2008-07-24 | Nokia Corporation | Carriage of sei messages in rtp payload format |
| BRPI0817508A2 (pt) | 2007-10-05 | 2013-06-18 | Thomson Licensing | mÉtodos e aparelho para incorporaÇço de informaÇço de usabilidade de vÍdeo (vui) em um sistema de codificaÇço de vÍdeo com méltiplas visualizaÇÕes (mvc) |
| JP4577357B2 (ja) * | 2007-12-27 | 2010-11-10 | ソニー株式会社 | 符号化装置及び方法、並びにプログラム |
| US8345774B2 (en) | 2008-01-11 | 2013-01-01 | Apple Inc. | Hypothetical reference decoder |
| WO2010021665A1 (en) * | 2008-08-20 | 2010-02-25 | Thomson Licensing | Hypothetical reference decoder |
| US8136736B2 (en) * | 2008-12-09 | 2012-03-20 | Vasco Data Security, Inc. | Slim electronic device with detector for unintentional activation |
| JPWO2010092740A1 (ja) | 2009-02-10 | 2012-08-16 | パナソニック株式会社 | 画像処理装置、画像処理方法、プログラムおよび集積回路 |
| JP5072893B2 (ja) | 2009-03-25 | 2012-11-14 | 株式会社東芝 | 画像符号化方法および画像復号化方法 |
| JP4957823B2 (ja) | 2009-04-08 | 2012-06-20 | ソニー株式会社 | 再生装置および再生方法 |
| US8948241B2 (en) * | 2009-08-07 | 2015-02-03 | Qualcomm Incorporated | Signaling characteristics of an MVC operation point |
| US8731053B2 (en) | 2009-11-18 | 2014-05-20 | Tektronix, Inc. | Method of multiplexing H.264 elementary streams without timing information coded |
| US9992456B2 (en) | 2010-02-24 | 2018-06-05 | Thomson Licensing Dtv | Method and apparatus for hypothetical reference decoder conformance error detection |
| US8724710B2 (en) | 2010-02-24 | 2014-05-13 | Thomson Licensing | Method and apparatus for video encoding with hypothetical reference decoder compliant bit allocation |
| US9319448B2 (en) | 2010-08-10 | 2016-04-19 | Qualcomm Incorporated | Trick modes for network streaming of coded multimedia data |
| CN102055981B (zh) * | 2010-12-31 | 2013-07-03 | 北京大学深圳研究生院 | 用于视频编码器的去块滤波器及其实现方法 |
| US9020039B2 (en) * | 2011-01-06 | 2015-04-28 | Sonic Ip, Inc. | Systems and methods for encoding alternative streams of video for use in adaptive bitrate streaming |
| US9706227B2 (en) * | 2011-03-10 | 2017-07-11 | Qualcomm Incorporated | Video coding techniques for coding dependent pictures after random access |
| US9069893B2 (en) | 2011-03-23 | 2015-06-30 | International Business Machines Corporation | Automatic verification of determinism for parallel programs |
| US20130170561A1 (en) | 2011-07-05 | 2013-07-04 | Nokia Corporation | Method and apparatus for video coding and decoding |
| US8768079B2 (en) | 2011-10-13 | 2014-07-01 | Sharp Laboratories Of America, Inc. | Tracking a reference picture on an electronic device |
| WO2013109178A1 (en) * | 2012-01-20 | 2013-07-25 | Telefonaktiebolaget L M Ericsson (Publ) | Sub-bitstream extraction |
| AU2013254214C1 (en) | 2012-04-23 | 2017-03-02 | Sun Patent Trust | Encoding method, decoding method, encoding apparatus, decoding apparatus, and encoding and decoding apparatus |
| SI2865177T1 (sl) * | 2012-06-25 | 2019-02-28 | Huawei Technologies Co., Ltd. | Postopek za signaliziranje slike s postopnim dostopom začasnega sloja |
| CA2877045C (en) * | 2012-06-29 | 2020-12-08 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video data stream concept |
| JP6552197B2 (ja) | 2012-07-06 | 2019-07-31 | シャープ株式会社 | サブピクチャ・ベースの仮想参照デコーダ・パラメータをシグナリングする方法 |
| EP2871567A4 (en) * | 2012-07-06 | 2016-01-06 | Samsung Electronics Co Ltd | METHOD AND DEVICE FOR CODING MULTILAYERED VIDEOS AND METHOD AND DEVICE FOR DECODING MULTILAYERED VIDEOS |
| US9479774B2 (en) | 2012-09-24 | 2016-10-25 | Qualcomm Incorporated | Buffering period and recovery point supplemental enhancement information messages |
| US10021394B2 (en) | 2012-09-24 | 2018-07-10 | Qualcomm Incorporated | Hypothetical reference decoder parameters in video coding |
-
2013
- 2013-09-20 US US14/033,329 patent/US9479774B2/en active Active
- 2013-09-20 US US14/033,141 patent/US9479773B2/en active Active
- 2013-09-20 US US14/033,308 patent/US9648352B2/en active Active
- 2013-09-20 US US14/033,348 patent/US9503753B2/en active Active
- 2013-09-20 US US14/033,264 patent/US9654802B2/en active Active
- 2013-09-20 US US14/033,191 patent/US9491456B2/en active Active
- 2013-09-23 BR BR112015006492-2A patent/BR112015006492B1/pt active IP Right Grant
- 2013-09-23 HU HUE13774006A patent/HUE052209T2/hu unknown
- 2013-09-23 WO PCT/US2013/061229 patent/WO2014047586A1/en not_active Ceased
- 2013-09-23 BR BR112015006481-7A patent/BR112015006481B1/pt active IP Right Grant
- 2013-09-23 JP JP2015533252A patent/JP6239626B2/ja active Active
- 2013-09-23 JP JP2015533251A patent/JP2015533056A/ja active Pending
- 2013-09-23 AU AU2013317763A patent/AU2013317763B2/en active Active
- 2013-09-23 RU RU2015115521A patent/RU2646378C2/ru active
- 2013-09-23 EP EP13771729.4A patent/EP2898683B1/en active Active
- 2013-09-23 CN CN201380049749.9A patent/CN104662917B/zh active Active
- 2013-09-23 EP EP13770826.9A patent/EP2898681B1/en active Active
- 2013-09-23 CA CA2884289A patent/CA2884289C/en active Active
- 2013-09-23 AU AU2013317764A patent/AU2013317764B2/en active Active
- 2013-09-23 KR KR1020157010476A patent/KR101760195B1/ko active Active
- 2013-09-23 RU RU2015115518A patent/RU2628215C2/ru active
- 2013-09-23 ES ES13771729T patent/ES2885527T3/es active Active
- 2013-09-23 EP EP13774006.4A patent/EP2898685B1/en active Active
- 2013-09-23 AU AU2013317758A patent/AU2013317758B2/en active Active
- 2013-09-23 UA UAA201503911A patent/UA116997C2/uk unknown
- 2013-09-23 CA CA2884286A patent/CA2884286C/en active Active
- 2013-09-23 AU AU2013317765A patent/AU2013317765B2/en active Active
- 2013-09-23 EP EP13774008.0A patent/EP2898686B1/en active Active
- 2013-09-23 CA CA2884298A patent/CA2884298C/en active Active
- 2013-09-23 MY MYPI2015700748A patent/MY181707A/en unknown
- 2013-09-23 KR KR1020157010471A patent/KR101788416B1/ko active Active
- 2013-09-23 EP EP13774005.6A patent/EP2898684B1/en active Active
- 2013-09-23 CN CN201380049577.5A patent/CN104704840B/zh active Active
- 2013-09-23 BR BR112015006479-5A patent/BR112015006479B1/pt active IP Right Grant
- 2013-09-23 RU RU2015115465A patent/RU2627098C2/ru active
- 2013-09-23 SG SG11201501580RA patent/SG11201501580RA/en unknown
- 2013-09-23 UA UAA201503908A patent/UA114930C2/uk unknown
- 2013-09-23 JP JP2015533253A patent/JP6224109B2/ja active Active
- 2013-09-23 JP JP2015533255A patent/JP6092398B2/ja active Active
- 2013-09-23 SG SG11201501520YA patent/SG11201501520YA/en unknown
- 2013-09-23 MY MYPI2015700749A patent/MY182448A/en unknown
- 2013-09-23 SG SG10201707888PA patent/SG10201707888PA/en unknown
- 2013-09-23 BR BR112015006488-4A patent/BR112015006488B1/pt active IP Right Grant
- 2013-09-23 JP JP2015533254A patent/JP6239627B2/ja active Active
- 2013-09-23 ES ES13774009T patent/ES2913456T3/es active Active
- 2013-09-23 JP JP2015533257A patent/JP6121539B2/ja active Active
- 2013-09-23 AU AU2013317761A patent/AU2013317761B2/en active Active
- 2013-09-23 CN CN201380049782.1A patent/CN104662918B/zh active Active
- 2013-09-23 KR KR1020157010470A patent/KR101743850B1/ko active Active
- 2013-09-23 CN CN201380049788.9A patent/CN104662919B/zh active Active
- 2013-09-23 RU RU2015115466A patent/RU2630374C2/ru active
- 2013-09-23 CN CN201380049555.9A patent/CN104662915B/zh active Active
- 2013-09-23 KR KR1020157010477A patent/KR102149072B1/ko active Active
- 2013-09-23 MY MYPI2015700755A patent/MY181871A/en unknown
- 2013-09-23 EP EP13774009.8A patent/EP2898687B1/en active Active
- 2013-09-23 CA CA2884447A patent/CA2884447C/en active Active
- 2013-09-23 CN CN201380049737.6A patent/CN104662916B/zh active Active
- 2013-09-23 ES ES13770826T patent/ES2884724T3/es active Active
- 2013-09-23 RU RU2015115463A patent/RU2628196C2/ru active
- 2013-09-23 SG SG11201501578QA patent/SG11201501578QA/en unknown
- 2013-09-23 MY MYPI2015700756A patent/MY169387A/en unknown
- 2013-09-23 WO PCT/US2013/061217 patent/WO2014047577A1/en not_active Ceased
- 2013-09-23 MX MX2015003694A patent/MX341441B/es active IP Right Grant
- 2013-09-23 SG SG11201501519QA patent/SG11201501519QA/en unknown
- 2013-09-23 WO PCT/US2013/061224 patent/WO2014047583A1/en not_active Ceased
- 2013-09-23 KR KR1020157010472A patent/KR102244410B1/ko active Active
- 2013-09-23 HU HUE13771729A patent/HUE055800T2/hu unknown
- 2013-09-23 MY MYPI2015700750A patent/MY171506A/en unknown
- 2013-09-23 KR KR1020157010478A patent/KR101773268B1/ko active Active
- 2013-09-23 WO PCT/US2013/061220 patent/WO2014047580A1/en not_active Ceased
- 2013-09-23 SG SG11201501576RA patent/SG11201501576RA/en unknown
- 2013-09-23 DK DK13774006.4T patent/DK2898685T3/da active
- 2013-09-23 ES ES13774006T patent/ES2855129T3/es active Active
- 2013-09-23 HU HUE13774005 patent/HUE044912T2/hu unknown
- 2013-09-23 MY MYPI2015700753A patent/MY172354A/en unknown
- 2013-09-23 CA CA2884302A patent/CA2884302C/en active Active
- 2013-09-23 ES ES13774005T patent/ES2739225T3/es active Active
- 2013-09-23 WO PCT/US2013/061226 patent/WO2014047584A1/en not_active Ceased
- 2013-09-23 AU AU2013317767A patent/AU2013317767B2/en active Active
- 2013-09-23 WO PCT/US2013/061222 patent/WO2014047582A1/en not_active Ceased
- 2013-09-23 BR BR112015006486-8A patent/BR112015006486B1/pt active IP Right Grant
- 2013-09-23 CA CA2883898A patent/CA2883898C/en active Active
- 2013-09-23 HU HUE13774009A patent/HUE058715T2/hu unknown
- 2013-09-23 DK DK13771729.4T patent/DK2898683T3/da active
- 2013-09-23 BR BR112015006480-9A patent/BR112015006480B1/pt active IP Right Grant
- 2013-09-23 SG SG11201501518XA patent/SG11201501518XA/en unknown
- 2013-09-23 RU RU2015115513A patent/RU2641475C2/ru active
- 2013-09-24 AR ARP130103423A patent/AR093287A1/es active IP Right Grant
- 2013-09-24 TW TW102134379A patent/TWI524779B/zh active
- 2013-09-24 AR ARP130103422A patent/AR093286A1/es active IP Right Grant
- 2013-09-24 TW TW102134382A patent/TWI569626B/zh active
- 2013-09-24 TW TW102134377A patent/TWI530197B/zh active
- 2013-09-24 TW TW102134378A patent/TWI581611B/zh active
- 2013-09-24 AR ARP130103425A patent/AR093239A1/es active IP Right Grant
- 2013-09-24 TW TW102134380A patent/TWI555382B/zh active
- 2013-09-24 TW TW102134384A patent/TWI574549B/zh active
-
2015
- 2015-03-05 PH PH12015500479A patent/PH12015500479B1/en unknown
- 2015-03-09 PH PH12015500511A patent/PH12015500511A1/en unknown
- 2015-03-09 PH PH12015500510A patent/PH12015500510B1/en unknown
- 2015-03-11 IL IL237680A patent/IL237680B/en active IP Right Grant
- 2015-03-11 IL IL237679A patent/IL237679A/en active IP Right Grant
- 2015-03-11 IL IL237681A patent/IL237681B/en active IP Right Grant
- 2015-03-11 IL IL237682A patent/IL237682A/en active IP Right Grant
- 2015-03-12 IL IL237696A patent/IL237696A/en active IP Right Grant
- 2015-03-12 PH PH12015500537A patent/PH12015500537B1/en unknown
- 2015-03-12 IL IL237697A patent/IL237697A/en active IP Right Grant
- 2015-03-17 PH PH12015500580A patent/PH12015500580A1/en unknown
- 2015-03-18 PH PH12015500593A patent/PH12015500593B1/en unknown
- 2015-04-09 ZA ZA201502382A patent/ZA201502382B/en unknown
- 2015-04-14 ZA ZA2015/02491A patent/ZA201502491B/en unknown
- 2015-04-14 ZA ZA2015/02492A patent/ZA201502492B/en unknown
- 2015-04-20 ZA ZA2015/02641A patent/ZA201502641B/en unknown
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CA2883898C (en) | Access unit independent coded picture buffer removal times in video coding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FG | Grant or registration |