ES2878143T3 - Información de escalabilidad de señalización en un conjunto de parámetros - Google Patents
Información de escalabilidad de señalización en un conjunto de parámetros Download PDFInfo
- Publication number
- ES2878143T3 ES2878143T3 ES13856204T ES13856204T ES2878143T3 ES 2878143 T3 ES2878143 T3 ES 2878143T3 ES 13856204 T ES13856204 T ES 13856204T ES 13856204 T ES13856204 T ES 13856204T ES 2878143 T3 ES2878143 T3 ES 2878143T3
- Authority
- ES
- Spain
- Prior art keywords
- scalability
- layer
- dimension
- scalability dimension
- identifiers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000011664 signaling Effects 0.000 title description 6
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000002946 Total quality control Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000013139 quantization Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 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 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- QAHFOPIILNICLA-UHFFFAOYSA-N Diphenamid Chemical compound C=1C=CC=CC=1C(C(=O)N(C)C)C1=CC=CC=C1 QAHFOPIILNICLA-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un método para decodificar un flujo de bits de video escalable codificado que comprende: recibir un flujo de bits de video codificado que incluye una capa base, una o más capas de mejora y un conjunto de parámetros de video que comprende una información de escalabilidad sobre cada capa, en el que el conjunto de parámetros de video incluye: una marca que indica si los identificadores de dimensión de escalabilidad se señalizan implícita o explícitamente; y un valor máximo de los identificadores de dimensión de escalabilidad para cada dimensión de escalabilidad de una pluralidad de dimensiones de escalabilidad para cada capa, en el que la presencia o ausencia de la pluralidad de dimensiones de escalabilidad en la capa respectiva se indica en una máscara de escalabilidad señalizada en el flujo de bits, en el que cada identificador de dimensión de escalabilidad especifica la dimensión de escalabilidad de cada capa que incluye una o más capas de mejora y la capa base, siendo la dimensión de escalabilidad uno de múltiples tipos que incluyen un tipo espacial y un tipo de calidad; determinar basándose en la marca si los identificadores de dimensión de escalabilidad están señalizados implícita o explícitamente; decodificar el flujo de bits de video codificado usando la capa base y una o más capas de mejora, e inferir durante la decodificación y a partir de un elemento de sintaxis de un encabezado de unidad de capa de abstracción de red (NAL) en el flujo de bits de video codificado, una o más dimensiones de escalabilidad identificadores de una unidad NAL, donde la unidad NAL corresponde al encabezado de la unidad NAL, en el que en respuesta a determinar que los identificadores de dimensión de escalabilidad están señalizados implícitamente, dicha inferencia se realiza implícitamente basándose en dicho valor máximo de los identificadores de dimensión de escalabilidad y dicho elemento de sintaxis.
Description
DESCRIPCIÓN
Información de escalabilidad de señalización en un conjunto de parámetros
Técnica anterior
La presente invención se refiere a la decodificación de video.
Los dispositivos electrónicos se han vuelto más pequeños y más potentes para satisfacer las necesidades del consumidor y mejorar la portabilidad y la conveniencia. Los consumidores se han vuelto dependientes de los dispositivos electrónicos y esperan una mayor funcionalidad.
Algunos ejemplos de dispositivos electrónicos incluyen computadoras de escritorio, computadoras portátiles, teléfonos celulares, teléfonos inteligentes, reproductores multimedia, circuitos integrados, etc.
Algunos dispositivos electrónicos se usan para procesar y/o mostrar medios digitales. Por ejemplo, los dispositivos electrónicos portátiles ahora permiten producir y/o consumir medios digitales en casi cualquier lugar donde pueda estar un consumidor. Además, algunos dispositivos electrónicos pueden proporcionar descarga o transmisión de contenido de medios digitales para el uso y disfrute de un consumidor.
El video digital típicamente se representa como una serie de imágenes o tramas, cada una de las cuales contiene un conjunto de píxeles. Cada píxel incluye información, como información de intensidad y/o color. En muchos casos, cada píxel se representa como un conjunto de tres colores. Algunas técnicas de codificación de video proporcionan una mayor eficiencia de codificación a expensas de una complejidad creciente. El aumento de los requisitos de calidad de imagen y el aumento de los requisitos de resolución de imagen para las técnicas de codificación de video también aumentan la complejidad de la codificación.
La creciente popularidad de los medios digitales ha presentado varios problemas. Por ejemplo, representar de manera eficiente medios digitales de alta calidad para almacenamiento, transmisión y reproducción presenta varios desafíos. Las técnicas que representan los medios digitales de manera más eficiente son beneficiosas.
Los objetivos, características y ventajas anteriores y otros de la invención se entenderán más fácilmente al considerar la siguiente descripción detallada de la invención, tomada junto con los dibujos adjuntos.
BOYCE J ET AL: "Diseños de conjuntos de parámetros y encabezado de unidad NAL para extensiones HEVC", 11. REUNIÓN JCT-VC; 102. REUNIÓN MPEG; 10-10-2012-19-10-2012; SHANGHAI; (EQUIPO CONJUNTO COLABORATIVO SOBRE CODIFICACIÓN DE VÍDEO DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16); URL: HTTP: // WFTP3. ITU.INT/AV-ARCH/JCTVC-SITE/, no. JCTVC-K1007, 19 de octubre de 2012 (19-10-2012), XP030113273 han divulgado un método para mapear la información proporcionada por un elemento de sintaxis incluido en el encabezado de la unidad NAL a identificadores de dimensión de escalabilidad específicos.
Sumario de la invención
La presente invención se refiere a un método para decodificar un flujo de bits de vídeo escalable codificado como se establece en la reivindicación 1. La divulgación que permite la invención se encuentra en relación con las realizaciones de las figuras 32 a 39.
Las realizaciones/ejemplos restantes deben entenderse como ejemplos que son útiles para la comprensión y se proporcionan solo con fines ilustrativos.
Breve descripción de los dibujos
[fig.1] La figura 1 es un diagrama de bloques que ilustra una configuración de un dispositivo electrónico que incluye un codificador HEVC.
[fig.2] La figura 2 es un diagrama de bloques que ilustra una configuración de un dispositivo electrónico que incluye un decodificador HEVC.
[fig.3] La figura 3 es un diagrama de bloques que ilustra un ejemplo de un codificador y un decodificador.
[fig.4] La figura 4 ilustra varios componentes que pueden utilizarse en un dispositivo electrónico.
[fig.5] La figura 5 ilustra una estructura de segmentos de ejemplo.
[fig. 6] La figura 6 ilustra otra estructura de segmentos de ejemplo.
[fig. 7] La figura 7 ilustra una trama con un segmento y 9 mosaicos.
[fig.8] La figura 8 ilustra una trama con tres segmentos y 3 mosaicos.
[fig. 9A] La figura 9A ilustra una sintaxis de encabezado de unidad NAF diferente.
[fig. 9B] La figura 9B ilustra una sintaxis de encabezado de unidad NAF diferente.
[fig. 9C] La figura 9C ilustra una sintaxis de encabezado de unidad NAF diferente.
[fig. 10] La figura 10 ilustra una sintaxis de unidad NAF general.
[fig.11] La figura 11 ilustra un conjunto de parámetros de vídeo existente.
[fig. 12] La figura 12 ilustra los tipos de escalabilidad existentes.
[fig. 13] La figura 13 ilustra un conjunto de parámetros de vídeo de ejemplo.
[fig. 14] La figura 14 ilustra una sintaxis de mapa de escalabilidad de ejemplo.
[fig.15] La figura 15 ilustra un conjunto de parámetros de vídeo de ejemplo.
[fig. 16] La figura 16 ilustra un conjunto de parámetros de vídeo existente.
[fig.17] La figura 17 ilustra un tipo de dimensión existente, sintaxis de ID de dimensión.
[fig.18] La figura 18 ilustra un conjunto de parámetros de vídeo de ejemplo.
[fig.19] La figura 19 ilustra una sintaxis de mapa de escalabilidad de ejemplo.
[fig.20] La figura 20 ilustra un conjunto de parámetros de vídeo de ejemplo.
[fig.21] La figura 21 ilustra un conjunto de parámetros de vídeo de ejemplo.
[fig.22] La figura 22 ilustra un conjunto de parámetros de vídeo de ejemplo.
[fig.23] La figura 23 ilustra una sintaxis de indicador de información de tipo de escaneo de fuente de ejemplo.
[fig.24] La figura 24 ilustra una sintaxis de indicador de información de fuente de ejemplo.
[fig.25] La figura 25 ilustra un conjunto de parámetros de vídeo de ejemplo.
[fig. 26] La figura 26 ilustra un conjunto de parámetros de vídeo de ejemplo.
[fig. 27] La figura 27 ilustra una sintaxis de indicador de información de tipo de escaneo de fuente de ejemplo.
[fig.28] La figura 28 ilustra una sintaxis de indicador de información de fuente de ejemplo.
[fig.29] La figura 29 ilustra una sintaxis de mapa de escalabilidad de ejemplo.
[fig.30] La figura 30 ilustra un conjunto de parámetros de vídeo de ejemplo.
[fig.31] La figura 31 ilustra una sintaxis de máscara de escalabilidad de ejemplo.
[fig. 32] La figura 32 ilustra una sintaxis de extensión de conjunto de parámetros de vídeo de ejemplo.
[fig. 33] La figura 33 ilustra una sintaxis de extensión de conjunto de parámetros de vídeo de ejemplo.
[fig.34] La figura 34 ilustra una sintaxis de extensión de conjunto de parámetros de vídeo de ejemplo.
[fig. 35] La figura 35 ilustra una sintaxis de extensión de conjunto de parámetros de vídeo de ejemplo.
[fig. 36] La figura 36 ilustra una sintaxis de extensión de conjunto de parámetros de vídeo de ejemplo.
[fig. 37] La figura 37 ilustra una sintaxis de extensión de conjunto de parámetros de vídeo de ejemplo.
[fig. 38] La figura 38 ilustra una sintaxis de extensión de conjunto de parámetros de vídeo de ejemplo.
[fig. 39] La figura 39 ilustra una sintaxis de extensión de conjunto de parámetros de vídeo de ejemplo.
Descripción de realizaciones
El equipo conjunto colaborativo sobre codificación de video (JCT-VC) de la comisión de estudio 16 (SG16) del sector de normalización de telecomunicaciones de la Unión Internacional de Telecomunicaciones (ITU-T) grupo de trabajo 3 (WP3) y la Organización Internacional de Normalización/Comisión Electrotécnica Internacional (ISO/IEC ) El comité técnico conjunto 1/subcomité 29/grupo de trabajo 11 (JTC1/SC29/WG11) ha lanzado un esfuerzo de estandarización para un estándar de codificación de video llamado estándar de codificación de video de alta eficiencia (HEVC). HEVC usa codificación basada en bloques.
En HEVC, se usa una técnica de codificación de entropía (CABAC) de codificación aritmética binaria adaptativa al contexto) para comprimir los coeficientes transformados y cuantificados (TQC) sin pérdidas. Los TQC pueden ser de diferentes tamaños de bloque de acuerdo con los tamaños de transformación (por ejemplo, 4x4, 8x8, 16x16, 32x32). Los TQC bidimensionales (2D) se pueden convertir en una matriz unidimensional (1D) antes de la codificación de entropía. En un ejemplo, los TQC dispuestos en 2D en un bloque 4x4 pueden disponerse como se ilustra en la Tabla (1).
Tabla 1
Al convertir los TQC 2D en una matriz de ID, el bloque se puede escanear en forma de zig-zag diagonal. Continuando con el ejemplo, los TQC en matriz 2D ilustrados en la Tabla (1) se pueden convertir en TQC en matriz de ID [4, 0, 3, -3, 2, 1, 0, -1, 0, ...] escaneando la primera fila y la primera columna, la primera fila y la segunda columna, la segunda fila y la primera columna, la tercera fila y la primera columna, la segunda fila y la segunda columna, la primera fila y la tercera columna, la primera fila y la cuarta columna, la segunda fila y la tercera columna, la tercera fila y la segunda columna, la cuarta fila y la primera columna y así sucesivamente.
El procedimiento de codificación en HEVC puede proceder, por ejemplo, de la siguiente manera. Los TQC en la matriz de ID se pueden ordenar de acuerdo con la posición de escaneo. Puede determinarse la posición de escaneo del último coeficiente significativo y el último nivel de coeficiente. Se puede codificar el último coeficiente significativo. Cabe señalar que los coeficientes se codifican típicamente en orden de escaneo inverso. Se puede realizar la codificación a nivel de ejecución, que codifica información sobre las ejecuciones de números y/o bits idénticos en lugar de codificar los números en sí, que se activa directamente después de la última codificación de coeficientes. Entonces, se puede realizar la codificación de nivel. El término coeficiente significativo se refiere a un coeficiente que tiene un valor de nivel de coeficiente que es mayor que cero. Un valor de nivel de coeficiente se refiere a un indicador único de la magnitud (o valor absoluto) de un valor de coeficiente transformado y cuantificado (TQC).
Este procedimiento puede ilustrarse en la Tabla (2) como una continuación del ejemplo anterior (con los TQC en matriz de ID [4, 0, 3, -3, 2, 1, 0, -1, 0, ...]).
Tabla 2
En la tabla (2), por ejemplo, el nivel de coeficiente -1 en la posición de escaneo 7 puede ser el último coeficiente distinto de cero. Por tanto, la última posición es la posición de escaneo 7 y el último nivel de coeficiente es -1. La codificación a nivel de ejecución se puede realizar para los coeficientes 0, 1 y 2 en las posiciones de escaneo 6, 5 y 4 (donde los coeficientes se codifican en orden de escaneo inverso). Luego, se puede realizar la codificación de nivel para los niveles de coeficiente -3, 3, 0 y 4.
La figura 1 es un diagrama de bloques que ilustra una configuración de un dispositivo electrónico 102 en el que se puede codificar vídeo. Cabe señalar que uno o más de los elementos ilustrados como incluidos dentro del dispositivo electrónico 102 pueden implementarse en hardware, software o una combinación de ambos. Por ejemplo, el
dispositivo electrónico 102 incluye un codificador 108, que puede implementarse en hardware, software o una combinación de ambos. Por ejemplo, el codificador 108 puede implementarse como un circuito, circuito integrado, circuito integrado de aplicación específica (ASIC), procesador en comunicación electrónica con memoria con instrucciones ejecutables, firmware, matriz de puerta programable en campo (FPGA), etc., o una combinación de los mismos. En algunas configuraciones, el codificador 108 puede ser un codificador de codificación de video de alta eficiencia (HEVC).
El dispositivo electrónico 102 puede incluir un proveedor 104. El proveedor 104 puede proporcionar imágenes o datos de imágenes (por ejemplo, video) como una fuente 106 al codificador 108. Los ejemplos del proveedor 104 incluyen sensores de imagen, memoria, interfaces de comunicación, interfaces de red, receptores inalámbricos, puertos, etc.
La fuente 106 puede proporcionarse a un módulo de predicción intratrama y una memoria intermedia 110 de reconstrucción. La fuente 106 también se puede proporcionar a un módulo 136 de estimación de movimiento y compensación de movimiento y a un módulo 116 de sustracción.
El módulo de predicción intratrama y la memoria intermedia 110 de reconstrucción pueden generar información intramodo 128 y una intraseñal 112 basándose en la fuente 106 y los datos reconstruidos 150. El módulo 136 de estimación de movimiento y compensación de movimiento puede generar información intermodo 138 y una interseñal 114 basándose en la fuente 106 y una señal 168 de memoria intermedia 166 de imagen de referencia. La señal 168 de la memoria intermedia 166 de imagen de referencia puede incluir datos de una o más imágenes de referencia almacenadas en la memoria intermedia 166 de imagen de referencia.
El codificador 108 puede seleccionar entre la intraseñal 112 y la interseñal 114 de acuerdo con un modo. La intraseñal 112 puede usarse para explotar características espaciales dentro de una imagen en un intramodo de codificación. La interseñal 114 se puede usar para aprovechar las características temporales entre imágenes en un modo de intercodificación. Mientras está en el modo de intracodificación, la intraseñal 112 puede proporcionarse al módulo 116 de sustracción y la información intramodo 128 puede proporcionarse a un módulo 130 de codificación de entropía. Mientras está en el modo de intercodificación, la señal intermodo 114 puede proporcionarse al módulo 116 de sustracción y la información intermodo 138 puede proporcionarse al módulo 130 de codificación de entropía. O bien la intraseñal 112 o la interseñal 114 (dependiendo del modo) se sustrae de la fuente 106 en el módulo 116 de sustracción con el fin de producir una predicción residual 118. La predicción residual118 se proporciona a un módulo 120 de transformación. El módulo 120 de transformación puede comprimir el residuo 118 de predicción para producir una señal 122 transformada que se proporciona a un módulo 124 de cuantificación. El módulo de cuantificación 124 cuantifica la señal transformada 122 para producir coeficientes transformados y cuantificados (TQC) 126.
Los TQC 126 se proporcionan a un módulo 130 de codificación de entropía y un módulo 140 de cuantificación inversa. El módulo 140 de cuantificación inversa realiza una cuantificación inversa en los TQC 126 para producir una señal 142 cuantificada inversa que se proporciona a un módulo 144 de transformación inversa. El módulo 144 de transformación inversa descomprime la señal cuantificada inversa 142 para producir una señal descomprimida 146 que se proporciona a un módulo 148 de reconstrucción.
El módulo 148 de reconstrucción puede producir datos reconstruidos 150 basándose en la señal descomprimida 146. Por ejemplo, el módulo 148 de reconstrucción puede reconstruir (modificar) imágenes. Los datos reconstruidos 150 se pueden proporcionar a un filtro 152 de desbloqueo y al módulo de intrapredicción y la memoria intermedia 110 de reconstrucción. El filtro 152 de desbloqueo puede producir una señal 154 filtrada basándose en los datos 150 reconstruidos.
La señal filtrada 154 puede proporcionarse a un módulo 156 de desplazamiento adaptativo de muestra (SAO). El módulo SAO 156 puede producir información SAO 158 que se proporciona al módulo 130 de codificación de entropía y una señal SAO 160 que se proporciona a un filtro 162 de bucle adaptativo (ALF). El ALF 162 produce una señal ALF 164 que se proporciona a la memoria intermedia 166 de imagen de referencia. La señal ALF 164 puede incluir datos de una o más imágenes que pueden usarse como imágenes de referencia. En algunos casos, el ALF 162 puede omitirse.
El módulo 130 de codificación de entropía puede codificar los TQC 126 para producir un flujo 134 de bits. Como se describió anteriormente, los TQC 126 se pueden convertir en una matriz de ID antes de la codificación de entropía. Además, el módulo 130 de codificación de entropía puede codificar los TQC 126 usando CAVLC o CABAC. En particular, el módulo 130 de codificación de entropía puede codificar los TQC 126 basándose en una o más de la información intermodo 128, la información intermodo 138 y la información SAO 158. El flujo 134 de bits puede incluir datos de imagen codificados.
La cuantificación, involucrada en la compresión de video como HEVC, es una técnica de compresión con pérdida que se logra al comprimir un rango de valores a un solo valor cuántico. El parámetro de cuantificación (QP) es un parámetro de escala predefinido que se usa para realizar la cuantificación basándose tanto en la calidad del video
reconstruido como en la relación de compresión. El tipo de bloque se define en HEVC para representar las características de un bloque dado basándose en el tamaño del bloque y su información de color. QP, la información de resolución y el tipo de bloque se pueden determinar antes de la codificación de entropía. Por ejemplo, el dispositivo electrónico 102 (por ejemplo, el codificador 108) puede determinar el QP, la información de resolución y el tipo de bloque, que puede proporcionarse al módulo 130 de codificación de entropía.
El módulo 130 de codificación de entropía puede determinar el tamaño del bloque basándose en un bloque de TQC 126. Por ejemplo, el tamaño del bloque puede ser el número de TQC 126 a lo largo de una dimensión del bloque de TQC. En otras palabras, el número de TQC 126 en el bloque de TQC puede ser igual al cuadrado del tamaño del bloque. Además, el bloque puede no ser cuadrado donde el número de TQC 126 es la altura multiplicada por el ancho del bloque. Por ejemplo, el tamaño del bloque puede determinarse como la raíz cuadrada del número de TQC 126 en el bloque de TQC. La resolución puede definirse como un ancho de píxel por una altura de píxel. La información de resolución puede incluir varios píxeles para el ancho de una imagen, para la altura de una imagen o ambos. El tamaño del bloque puede definirse como el número de TQC a lo largo de una dimensión de un bloque 2D de TQC.
En algunas configuraciones, el flujo 134 de bits puede transmitirse a otro dispositivo electrónico. Por ejemplo, el flujo 134 de bits se puede proporcionar a una interfaz de comunicación, interfaz de red, transmisor inalámbrico, puerto, etc. Por ejemplo, el flujo 134 de bits puede transmitirse a otro dispositivo electrónico a través de una red de área local (LAN), Internet, una estación base de telefonía celular, etc. El flujo 134 de bits puede almacenarse adicional o alternativamente en la memoria del dispositivo electrónico 102.
La figura 2 es un diagrama de bloques que ilustra una configuración de un dispositivo electrónico 270 que incluye un decodificador 272 que puede ser un decodificador de codificación de vídeo de alta eficiencia (HEVC). El decodificador 272 y uno o más de los elementos ilustrados incluidos en el decodificador 272 pueden implementarse en hardware, software o una combinación de ambos. El decodificador 272 puede recibir un flujo 234 de bits (por ejemplo, una o más imágenes codificadas incluidas en el flujo 234 de bits) para decodificar. En algunas configuraciones, el flujo 234 de bits recibido puede incluir información de sobrecarga recibida, como un encabezado de segmento recibido, conjunto de parámetros de imagen recibido (PPS), información de descripción de la memoria intermedia recibida, indicador de clasificación, etc.
Los símbolos recibidos (por ejemplo, TQC codificados) del flujo 234 de bits pueden decodificarse por entropía mediante un módulo 274 de decodificación de entropía. Esto puede producir una señal 298 de información de movimiento y coeficientes transformados y cuantificados 278 (TQC) decodificados.
La señal 298 de información de movimiento puede combinarse con una porción de una imagen 292 decodificada de una memoria 290 de trama en un módulo 294 de compensación de movimiento, que puede producir una señal 296 de predicción intertrama. Los coeficientes transformados y cuantificados (TQC) 278 decodificados pueden cuantificarse y transformarse inversamente mediante un módulo 280 de cuantificación inversa y transformación inversa, produciendo así una señal residual decodificada 282. La señal residual decodificada 282 puede añadirse a una señal 205 de predicción mediante un módulo 207 de suma para producir una señal combinada 284. La señal 205 de predicción puede ser una señal seleccionada entre la señal 296 de predicción intertrama producida por el módulo 294 de compensación de movimiento o una señal 203 de predicción intratrama producida por un módulo 201 de predicción intratrama. En algunas configuraciones, esta selección de señal puede estar basada en (por ejemplo, controlada por) el flujo 234 de bits.
La señal 203 de predicción intratrama puede predecirse a partir de información previamente decodificada de la señal combinada 284 (en la trama actual, por ejemplo). La señal combinada 284 también puede filtrarse mediante un filtro 286 de desbloqueo. La señal filtrada resultante 288 puede proporcionarse a un módulo 231 de desplazamiento adaptativo de muestra (SAO). Basándose en la señal filtrada 288 y la información 239 del módulo 274 de decodificación de entropía, el módulo SAO 231 puede producir una señal SAO 235 que se proporciona a un filtro 233 de bucle adaptativo (ALF). El ALF 233 produce una señal ALF 237 que se proporciona a la memoria 290 de trama. La señal ALF 237 puede incluir datos de una o más imágenes que pueden usarse como imágenes de referencia. La señal ALF 237 puede escribirse en la memoria 290 de trama. La señal ALF resultante 237 puede incluir una imagen decodificada. En algunos casos, se puede omitir el ALF 233.
La memoria 290 de trama puede incluir una memoria intermedia de imágenes decodificadas (DPB). La memoria 290 de trama también puede incluir información general correspondiente a las imágenes decodificadas. Por ejemplo, la memoria 290 de trama puede incluir encabezados de segmento, información de conjunto de parámetros de imagen (PPS), parámetros de ciclo, información de descripción de la memoria intermedia, etc. Una o más de estas informaciones se pueden señalizar desde un codificador (por ejemplo, el codificador 108).
La memoria 290 de trama puede proporcionar una o más imágenes decodificadas 292 al módulo 294 de compensación de movimiento. Además, la memoria 290 de trama puede proporcionar una o más imágenes 292 decodificadas, que pueden salir del decodificador 272. Dicha o más imágenes decodificadas 292 pueden presentarse en una pantalla, almacenarse en la memoria o transmitirse a otro dispositivo, por ejemplo.
La figura 3 es un diagrama de bloques que ilustra un ejemplo de un codificador 308 y un decodificador 372. En este ejemplo, se ilustran el dispositivo electrónico A 302 y el dispositivo electrónico B 370. Sin embargo, cabe señalar que las características y la funcionalidad descritas en relación con el dispositivo electrónico A 302 y el dispositivo electrónico B 370 pueden combinarse en un solo dispositivo electrónico en algunas configuraciones.
El dispositivo electrónico A 302 incluye el codificador 308. El codificador 308 puede implementarse en hardware, software o una combinación de ambos. En una configuración, el codificador 308 puede ser un codificador de codificación de video de alta eficiencia (HEVC). Asimismo, se pueden usar otros codificadores. El dispositivo electrónico A 302 puede obtener una fuente 306. En algunas configuraciones, la fuente 306 puede capturarse en el dispositivo electrónico A 302 usando un sensor de imagen, recuperarse de la memoria o recibirse de otro dispositivo electrónico.
El codificador 308 puede codificar la fuente 306 para producir un flujo 334 de bits. Por ejemplo, el codificador 308 puede codificar una serie de imágenes (por ejemplo, video) en la fuente 306. El codificador 308 puede ser similar al codificador 108 descrito anteriormente en relación con la figura 1.
El flujo 334 de bits puede incluir datos de imagen codificados basados en la fuente 306. En algunas configuraciones, el flujo 334 de bits también puede incluir datos generales, como información de encabezado de segmento, información de PPS, etc. A medida que se codifican imágenes adicionales en la fuente 306, el flujo 334 de bits puede incluir una o más imágenes codificadas.
El flujo 334 de bits puede proporcionarse al decodificador 372. En un ejemplo, el flujo 334 de bits puede transmitirse al dispositivo electrónico B 370 usando un enlace alámbrico o inalámbrico. En algunos casos, esto se puede hacer a través de una red, como Internet o una red de área local (LAN). Como se ilustra en la figura 3, el decodificador 372 puede implementarse en el dispositivo electrónico B 370 por separado del codificador 308 en el dispositivo electrónico A 302. Sin embargo, cabe señalar que el codificador 308 y el decodificador 372 pueden implementarse en el mismo dispositivo electrónico en algunas configuraciones. En una implementación en la que el codificador 308 y el decodificador 372 se implementan en el mismo dispositivo electrónico, por ejemplo, el flujo 334 de bits puede proporcionarse a través de un bus al decodificador 372 o almacenarse en la memoria para su recuperación por el decodificador 372.
El decodificador 372 puede implementarse en hardware, software o una combinación de ambos. En una configuración, el decodificador 372 puede ser un decodificador de codificación de video de alta eficiencia (HEVC). Asimismo, se pueden usar otros decodificadores. El decodificador 372 puede ser similar al decodificador 272 descrito anteriormente en relación con la figura 2.
La figura 4 ilustra varios componentes que pueden utilizarse en un dispositivo electrónico 409. El dispositivo electrónico 409 puede implementarse como uno o más de los dispositivos electrónicos. Por ejemplo, el dispositivo electrónico 409 puede implementarse como el dispositivo electrónico 102 descrito anteriormente en conexión con la figura 1, como el dispositivo electrónico 270 descrito anteriormente en relación con la figura 2, o ambos.
El dispositivo electrónico 409 incluye un procesador 417 que controla el funcionamiento del dispositivo electrónico 409. El procesador 417 también puede denominarse CPU. La memoria 411, que puede incluir tanto memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM) o cualquier tipo de dispositivo que pueda almacenar información, proporciona instrucciones 413a (por ejemplo, instrucciones ejecutables) y datos 415a al procesador 417. Una porción de la memoria 411 también puede incluir una memoria de acceso aleatorio no volátil (NVRAM). La memoria 411 puede estar en comunicación electrónica con el procesador 417.
Las instrucciones 413b y los datos 415b también pueden residir en el procesador 417. Las instrucciones 413b y/o los datos 415b cargados en el procesador 417 también pueden incluir instrucciones 413a y/o datos 415a de la memoria 411 que fueron cargados para su ejecución o procesamiento por el procesador 417. Las instrucciones 413b pueden ser ejecutadas por el procesador 417 para implementar una o más técnicas divulgadas en el presente documento. El dispositivo electrónico 409 puede incluir una o más interfaces 419 de comunicación para comunicarse con otros dispositivos electrónicos. Las interfaces 419 de comunicación pueden estar basadas en tecnología de comunicación por cable, tecnología de comunicación inalámbrica o ambas. Los ejemplos de interfaces 419 de comunicación incluyen un puerto en serie, un puerto paralelo, un bus en serie universal (USB), un adaptador Ethernet, una interfaz de bus IEEE 1394, una interfaz de bus de interfaz de sistema informático pequeño (SCSI), un puerto de comunicación de infrarrojos (IR), un adaptador de comunicación inalámbrica Bluetooth, un transceptor inalámbrico de acuerdo con las especificaciones del proyecto de asociación de tercera generación (3GPP), etc.
El dispositivo electrónico 409 puede incluir uno o más dispositivos 423 de salida y uno o más dispositivos 421de entrada. Ejemplos 423 de dispositivos de salida incluyen un altavoz, impresora, etc. Un tipo de dispositivo de salida que puede incluirse en un dispositivo electrónico 409 es un dispositivo 425 de visualización. Los dispositivos 425 de visualización usados con las configuraciones divulgadas en el presente documento pueden utilizar cualquier
tecnología de proyección de imagen adecuada, como un tubo de rayos catódicos (CRT), pantalla de cristal líquido (LCD), diodo de emisión de luz (LED), plasma de gas, electroluminiscencia o similares. Puede proporcionarse un controlador 427 de pantalla para convertir datos almacenados en la memoria 411 en texto, gráficos y/o imágenes en movimiento (según sea apropiado) mostrados en la pantalla 425. Ejemplos de dispositivos 421 de entrada incluyen un teclado, ratón, micrófono, dispositivo de control remoto, botón, mando, rueda de desplazamiento, panel táctil, pantalla táctil, lápiz óptico, etc.
Los diversos componentes del dispositivo electrónico 409 están acoplados entre sí mediante un sistema 429 de bus, que puede incluir un bus de potencia, un bus de señales de control y un bus de señales de estado, además de un bus de datos. Sin embargo, en aras de la claridad, los diversos buses se ilustran en la figura 4 como sistema 429 de bus. El dispositivo electrónico 409 ilustrado en la figura 4 es un diagrama de bloques funcional en lugar de una lista de componentes específicos.
El término "medio legible por computadora" se refiere a cualquier medio disponible al que se pueda acceder mediante una computadora o un procesador. El término "medio legible por computadora", como se usa en el presente documento, puede indicar un medio legible por computadora y/o procesador que no es transitorio y tangible. A modo de ejemplo, y no de limitación, un medio legible por computadora o legible por procesador puede comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que se puede usar para transportar o almacenar el código informático deseado en forma de instrucciones o estructuras de datos y al que se puede acceder mediante una computadora o un procesador. El disco y el disco, como se usa en el presente documento, incluyen disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disquete y disco Blu-ray (marca registrada) donde los discos generalmente reproducen datos magnéticamente, mientras que los discos reproducen datos ópticamente con láseres. El código para el decodificador y/o codificador puede almacenarse en un medio legible por computadora.
Una imagen de entrada que comprende una pluralidad de bloques de árbol codificados (por ejemplo, generalmente denominados en el presente documento como bloques) puede dividirse en uno o varios segmentos. Los valores de las muestras en el área de la imagen que representa un segmento se pueden decodificar correctamente sin el uso de datos de otros segmentos, siempre que las imágenes de referencia usadas en el codificador y el decodificador sean las mismas y que el filtrado de desbloqueo no use información a través de los límites de segmento. Por lo tanto, la decodificación de entropía y la reconstrucción de bloques de un segmento no depende de otros segmentos. En particular, el estado de codificación de entropía se puede restablecer al comienzo de cada segmento. Los datos en otros segmentos pueden señalarse como no disponibles al definir la disponibilidad de cercanía para la decodificación y reconstrucción de entropía. Los segmentos pueden decodificarse por entropía y reconstruirse en paralelo. Preferiblemente, no se permite la intrapredicción y la predicción del vector de movimiento a través del límite de un segmento. Por el contrario, el filtrado de desbloqueo puede usar información a través de los límites de los segmentos.
La figura 5 ilustra una imagen 500 de vídeo de ejemplo que comprende once bloques en la dirección horizontal y nueve bloques en la dirección vertical (nueve bloques de ejemplo etiquetados como 501-509). La figura 5 ilustra tres segmentos de ejemplo: un primer segmento denominado "SEGMENTO # 0" 520, un segundo segmento denominado "SEGMENTO # 1" 530 y un tercer segmento denominado "SEGMENTO # 2" 540. El decodificador puede decodificar y reconstruir los tres segmentos 520, 530, 540, en paralelo. Cada uno de los segmentos puede transmitirse en orden de línea de exploración de manera secuencial. Al comienzo del proceso de decodificación/reconstrucción para cada segmento, los modelos de contexto se inicializan o reinician y los bloques en otros segmentos se señalan como no disponibles tanto para la decodificación de entropía como para la reconstrucción de bloques. El modelo de contexto generalmente representa el estado del codificador y/o decodificador de entropía. Por lo tanto, para un bloque, por ejemplo, el bloque etiquetado 503, en "SEGMENTO # 1", los bloques (por ejemplo, bloques etiquetados 501 y 502) en " SEGMENTO # 0" no pueden usarse para la selección o reconstrucción del modelo de contexto. Mientras que, para un bloque, por ejemplo, el bloque etiquetado 505, en " SEGMENTO # 1", otros bloques (por ejemplo, bloques etiquetados 503 y 504) en " SEGMENTO # 1" pueden usarse para la selección o reconstrucción del modelo de contexto. Por lo tanto, la decodificación de entropía y la reconstrucción de bloques se realizan en serie dentro de un segmento. A menos que los segmento se definan mediante una ordenación de bloques flexible (FMO), los bloques dentro de un segmento se procesan en el orden de un escaneado de ráster.
La figura 6 representa una asignación de bloque de ejemplo en tres grupos de segmentos: un primer grupo de segmentos denominado "GRUPO DE SEGMENTOS # 0" 550, un segundo grupo de segmentos denominado "GRUPO DE SEGMENTOS # 1" 560 y un tercer grupo de segmentos denominado "GRUPO DE SEGMENTOS # 2" 570. Estos grupos 550, 560, 570 de segmentos pueden estar asociados con dos regiones de primer plano y una región de fondo, respectivamente, en la imagen 580.
La disposición de los segmentos, como se ilustra en la figura 5, puede limitarse a definir cada segmento entre un par de bloques en el orden de escaneo de la imagen, también conocido como escaneo de ráster u orden de escaneo de ráster. Esta disposición de segmentos de orden de escaneo es computacionalmente eficiente pero no tiende a prestarse a la codificación y decodificación paralelas altamente eficientes. Además, esta definición del orden de
escaneo de los segmentos tampoco tiende a agrupar regiones localizadas más pequeñas de la imagen que probablemente tengan características comunes muy adecuadas para la eficiencia de la codificación. La disposición de los segmentos, como se ilustra en la figura 6, es muy flexible en su disposición, pero no tiende a prestarse a una codificación o decodificación paralela de alta eficiencia. Además, esta definición altamente flexible de segmentos es computacionalmente compleja de implementar en un decodificador.
Con referencia a la figura 7, una técnica de mosaico divide una imagen en un conjunto de regiones rectangulares (inclusive cuadradas). Los bloques (también denominados unidades de codificación más grandes o bloques de árbol codificados en algunos sistemas) dentro de cada uno de los mosaicos se codifican y decodifican en un orden de escaneo de ráster. La disposición de los mosaicos también se codifica y decodifica en un orden de escaneo de ráster. Por consiguiente, puede haber cualquier número adecuado de límites de columna (por ejemplo, 0 o más) y puede haber cualquier número adecuado de límites de fila (por ejemplo, 0 o más). Por tanto, la trama puede definir uno o más segmentos, como el segmento que se ilustra en la figura 7. En algunas realizaciones, los bloques ubicados en diferentes mosaicos no están disponibles para intrapredicción, compensación de movimiento, selección de contexto de codificación de entropía u otros procesos que se basan en información de bloques cercanos.
Con referencia a la figura 8, se muestra la técnica del mosaico dividiendo una imagen en un conjunto de tres columnas rectangulares. Los bloques (también denominados unidades de codificación más grandes o bloques de árbol codificados en algunos sistemas) dentro de cada uno de los mosaicos se codifican y decodifican en un orden de escaneo de ráster. Los mosaicos también se codifican y decodifican en un orden de escaneo de ráster. Se pueden definir uno o más segmentos en el orden de escaneo de los mosaicos. Cada uno de los segmentos se puede decodificar de forma independiente. Por ejemplo, el segmento 1 puede definirse como que incluye los bloques 1-9, el segmento 2 puede definirse como que incluye los bloques 10-28 y el segmento 3 puede definirse como que incluye los bloques 29-126 que abarcan tres mosaicos. El uso de mosaicos facilita la eficiencia de la codificación al procesar datos en regiones más localizadas de una trama.
Cabe señalar que, en algunos casos, la codificación de video puede no incluir opcionalmente mosaicos, y puede incluir opcionalmente el uso de un patrón de codificación/decodificación de frente de onda para las tramas del video. De esta manera, una o más líneas del video (como una pluralidad de grupos de una o más filas de macrobloques (o bloques de árbol codificados alternativamente), siendo cada uno de los grupos representativo de un subflujo de frente de onda, puede codificarse/decodificarse de forma paralela. En general, la división del video se puede construir de cualquier manera adecuada.
Los estándares de codificación de video a menudo comprimen los datos de video para su transmisión a través de un canal con ancho de banda de frecuencia limitado y/o capacidad de almacenamiento limitada. Estos estándares de codificación de video pueden incluir múltiples etapas de codificación como intrapredicción, transformación de dominio espacial a dominio frecuencia, cuantificación, codificación de entropía, estimación de movimiento y compensación de movimiento, para codificar y decodificar tramas de manera más efectiva. Muchas de las etapas de codificación y decodificación son excesivamente complejas computacionalmente.
Se han desarrollado varias técnicas de codificación de video escalables. En la codificación de vídeo escalable, un decodificador recibe un flujo de bits primario (generalmente denominado flujo de bits de capa base). Además, el decodificador puede recibir uno o más flujos de bits secundarios (generalmente denominados capa o capas de mejora). La función de cada capa de mejora puede ser: mejorar la calidad del flujo de bits de la capa base; para mejorar la velocidad de tramas del flujo de bits de la capa base; y/o para mejorar la resolución de píxeles del flujo de bits de la capa base. La escalabilidad de calidad también se conoce como escalabilidad de relación señal/ruido (SNR). La escalabilidad de la velocidad de tramas también se conoce como escalabilidad temporal. La escalabilidad de resolución también se conoce como escalabilidad espacial.
La capa o capas de mejora pueden cambiar otras características del flujo de bits de la capa base. Por ejemplo, una capa de mejora se puede asociar con una relación de aspecto y/o ángulo de visión diferente a la capa base. Otro aspecto de las capas de mejora es que la capa base y una capa de mejora pueden corresponder a diferentes estándares de codificación de video, por ejemplo, la capa base puede ser MPEG-2 (grupo 2 de expertos en imágenes en movimiento) y una capa de mejora puede ser HEVC-Ext (extensión de codificación de video de alta eficiencia).
Se puede definir un orden entre capas. Por ejemplo:
Capa base (más baja) [capa 0]
Capa 0 de mejora [capa 1]
Capa 1 de mejora [capa 2]
Capa n de mejora (más alta) [capa n 1]
La capa o capas de mejora pueden depender entre sí (además de la capa base). En un ejemplo, la capa 2 de mejora sólo se puede usar si al menos una porción de la capa 1 de mejora se ha analizado y/o reconstruido con éxito (y si al menos una porción de la capa base se ha analizado y/o reconstruido con éxito).
El flujo de bits del vídeo codificado puede incluir una estructura de sintaxis que se coloca en paquetes de datos lógicos generalmente denominados unidades de capa de abstracción de red (NAL). Cada unidad NAL incluye un encabezado de unidad NAL, tal como un encabezado de unidad NAL de dos bytes (por ejemplo, 16 bits), para identificar el propósito de la carga útil de datos asociada. Por ejemplo, cada segmento codificado (y/o imagen) puede codificarse en una o más unidades NAL de segmento (y/o imagen). Se pueden incluir otras unidades NAL para otras categorías de datos, como por ejemplo, información de mejora suplementaria, segmento codificado de imagen de acceso a subcapa temporal (TSA), segmento codificado de imagen de acceso a subcapa temporal escalonado (STSA), segmento codificado de imagen final sin TSA ni STSA, segmento codificado de imagen de acceso a enlace roto, segmento codificado de imagen de actualización decodificada instantánea, segmento codificado de imagen de acceso aleatorio limpia, segmento codificado de imagen inicial decodificable, segmento codificado de etiquetado para descartar imagen, conjunto de parámetros de vídeo, conjunto de parámetros de secuencia, conjunto de parámetros de imagen, delimitador de unidad de acceso, final de secuencia, final de flujo de bits, datos de relleno y/o mensaje de información de mejora de secuencia. Se pueden incluir otros tipos de unidades NAL, según se desee. Una imagen de imagen de punto de acceso aleatorio (RAP) contiene solo segmentos I y puede ser una imagen de acceso de enlace roto (BLA), una imagen de acceso aleatorio limpio (CRA) o una imagen de actualización de decodificación instantánea (IDR). La primera imagen del flujo de bits es una imagen RAP.
Una imagen de imagen de acceso a enlace roto (BLA) es un tipo de imagen RAP. Una imagen BLA contiene solo segmentos I y puede ser la primera imagen en el flujo de bits en el orden de decodificación, o puede aparecer más tarde en el flujo de bits. Cada imagen BLA comienza una nueva secuencia de video codificada y tiene el mismo efecto en el proceso de decodificación que una imagen IDR. Sin embargo, una imagen BLA contiene elementos de sintaxis que, si hubiera sido una imagen CRA en su lugar, especificarían un conjunto de imágenes de referencia no vacías. Cuando se encuentra una imagen BLA en un flujo de bits, estos elementos de sintaxis se ignoran y el conjunto de imágenes de referencia se inicializa en su lugar como un conjunto vacío.
Una imagen de acceso aleatorio limpio (CRA) es un tipo de imagen RAP. Una imagen CRA contiene solo segmentos I y puede ser la primera imagen en el flujo de bits en el orden de decodificación, o puede aparecer más tarde en el flujo de bits. Una imagen CRA puede tener imágenes iniciales decodificables asociadas (DLP) e imágenes etiquetadas para descartar (TFD).
Una imagen de actualización de decodificación instantánea (IDR) es un tipo de imagen RAP. Una imagen IDR contiene solo segmentos I y puede ser la primera imagen en el flujo de bits en el orden de decodificación, o puede aparecer más adelante en el flujo de bits. Cada imagen IDR es la primera imagen de una secuencia de vídeo codificada en orden de decodificación.
Una imagen inicial decodificable (DLP) son imágenes iniciales. Las imágenes DLP no se usan como imágenes de referencia para el proceso de decodificación de imágenes finales de la misma imagen RAP asociada.
Una imagen etiquetada para descartar (TFD) son imágenes iniciales de una imagen BLA o CRA asociada. Cuando la imagen RAP asociada es una imagen BLA o es la primera imagen codificada en el flujo de bits, la imagen TFD no se emite y puede que no se pueda decodificar correctamente, ya que la imagen TFD puede contener referencias a imágenes de referencia que no están presentes en el flujo de bits.
Una imagen inicial es una imagen que precede a la imagen RAP asociada en el orden de salida.
Una imagen final es una imagen que sigue a la imagen RAP asociada en el orden de salida.
La unidad NAL proporciona la capacidad de mapear los datos de la capa de codificación de video (VCL) que representan el contenido de las imágenes en varias capas de transporte. Las unidades NAL pueden clasificarse en unidades NAL VCL y no VCL según contengan imagen codificada u otros datos asociados, respectivamente. B. Bros, W-J. Han, J-R. Ohm, G.J. Sullivan y T-. Wiegand, "Versión 8 de la especificación de texto de codificación de video de alta eficiencia (HEVC)", JCTVC-J10003, Estocolmo, julio de 2012; "BoG sobre sintaxis de alto nivel para la planificación de extensiones", Ye-Kui Wang, JCTVC-J00574, julio de 2012; y "BoG sobre sintaxis de alto nivel para la planificación de extensiones", Ye-Kui Wang, JCTVC-J00574r1, julio de 2012, por la presente se consideran técnica anterior relevante.
Con referencia a la figura 9A, la sintaxis del encabezado de la unidad NAL puede incluir dos bytes de datos, a saber, 16 bits. El primer bit es un "forbidden_zero_bit" que siempre se pone a cero al comienzo de una unidad NAL. Los siguientes seis bits son un "nal_unit_type" que especifica el tipo de estructura de datos de cargas útiles de secuencia de bytes sin procesar ("RBSP") contenida en la unidad NAL. Los siguientes 6 bits son "nuh_reserved_zero_6bits". Nuh_reserved_zero_6bits puede ser igual a 0 en la especificación base del estándar. Se pueden especificar otros
valores de nuh_reserved_zero_6bits según se desee. Los decodificadores pueden ignorar (es decir, eliminar del flujo de bits y descartar) todas las unidades NAL con valores de nuh_reserved_zero_6bits no iguales a 0 cuando se maneja un flujo basado en la especificación básica del estándar. En una extensión escalable o de otro tipo, nuh_reserved_zero_6bits puede especificar otros valores, para señalizar la codificación de video escalable y/o extensiones de sintaxis. En algunos casos, el elemento de sintaxis nuh_reserved_zero_6bits puede llamarse reserved_zero_6bits. En algunos casos, el elemento de sintaxis nuh_reserved_zero_6bits se puede llamar como layer_id_plus1 o layer_id, como se ilustra en la figura 9B y la figura 9C. En este caso, el elemento layer_id será layer_id_plus1 menos 1. En este caso, puede usarse para señalizar información relacionada con la capa de video codificado escalable. El siguiente elemento de sintaxis es "nuh_temporaljd_plus1". nuh_temporal_id_plus1 menos 1 puede especificar un identificador temporal para la unidad NAL. El identificador temporal variable TemporalId puede especificarse como TemporalId = nuh_temporal_id_plus1 - 1.
Con referencia a la figura 10, se ilustra una estructura de sintaxis de unidad NAL general. La sintaxis de dos bytes del encabezado de la unidad NAL de la figura 9 se incluye en la referencia a nal_unit_header() de la figura 10. El resto de la sintaxis de la unidad NAL se relaciona principalmente con la RBSP.
Una técnica existente para usar "nuh_reserved_zero_6bits" es señalizar información de codificación de video escalable dividiendo los 6 bits de nuh_reserved_zero_6bits en distintos campos de bits, a saber, uno o más de un ID de dependencia, un ID de calidad, un ID de vista y una marca de profundidad, cada uno de los cuales se refiere a la identificación de una capa diferente del video codificado escalable. En consecuencia, los 6 bits indican a qué capa de la técnica de codificación escalable pertenece esta unidad NAL en particular. Luego, en una carga útil de datos, tal como una sintaxis de extensión ("scalability_type") de conjunto de parámetros de video ("VPS") como se ilustra en la figura 11, se define la información sobre la capa. La sintaxis de extensión de VPS de la figura 11 incluye 4 bits para el tipo de escalabilidad (elemento de sintaxis scalability_type) que especifica los tipos de escalabilidad en uso en la secuencia de video codificada y las dimensiones señalizadas a través de layer_id_plus1 (o layer_id) en el encabezado de la unidad NAL. Cuando el tipo de escalabilidad es igual a 0, la secuencia de vídeo codificada se ajusta a la especificación base, por lo que layer_id_plus1 de todas las unidades NAL es igual a 0 y no hay unidades NAL que pertenezcan a una capa o vista de mejora. Los valores más altos del tipo de escalabilidad se interpretan como se ilustra en la figura 12.
Layer_id_dim_len[i] especifica la longitud, en bits, del i-ésimo ID de dimensión de escalabilidad. La suma de los valores layer_id_dim_len[i] para todos los valores i en el rango de 0 a 7 es menor o igual que 6. vps_extension_byte_alignment_reserved_zero_bit es cero. vps_layer_id[i] especifica el valor de layer_id de la iésima capa a la que se aplica la siguiente información de dependencia de la capa. num_direct_ref_layers[i] especifica el número de capas de las que depende directamente la i-ésima capa. ref_layer_id[i][j] identifica la j-ésima capa de la que depende directamente la i-ésima capa.
De esta manera, la técnica existente señaliza los identificadores de escalabilidad en la unidad NAL y en el conjunto de parámetros de video para asignar los bits entre los tipos de escalabilidad enumerados en la figura 12. Luego, para cada tipo de escalabilidad, la figura 12 define cuántas dimensiones se soportan. Por ejemplo, el tipo de escalabilidad 1 tiene 2 dimensiones (es decir, espacial y de calidad). Para cada una de las dimensiones, layer_id_dim_len[i] define el número de bits asignados a cada una de estas dos dimensiones, donde la suma total de todos los valores de layer_id_dim_len[i] es menor o igual a 6, que es el número de bits en nuh_reserved_zero_6bits del encabezado de la unidad NAL. Por tanto, en combinación, la técnica identifica qué tipos de escalabilidad están en uso y cómo se asignan los 6 bits del encabezado de la unidad NAL entre la escalabilidad.
Aunque tal combinación fija de diferentes dimensiones de escalabilidad, como se ilustra en la figura 12, es adecuado para muchas aplicaciones, existen combinaciones deseables que no están incluidas. Con referencia a la figura 13, una sintaxis de extensión de conjunto de parámetros de vídeo modificada especifica un tipo de escalabilidad para cada bit en el elemento de sintaxis nuh_reserved_zero_6bits. vps_extension_byte_alignment_reserved_zero_bit se establece en 0. Max_num_layers_minus1_bits indica el número total de bits usados para el elemento de sintaxis en los dos primeros bytes del encabezado de la unidad NAL en la figura 9 denominado layer_id_plus1 o nuh_reserved_zero_6bits. scalability_map[i] especifica el tipo de escalabilidad para cada bit en el elemento de sintaxis layer_id_plus1. En algunos casos, el elemento de sintaxis layer_id_plus1 puede llamarse en su lugar nuh_reserved_zero_6bits o elemento de sintaxis rserved_zero_6bits. El mapa de escalabilidad para todos los bits del elemento de sintaxis layer_id_plus1 juntos especifica la escalabilidad en uso en la secuencia de video codificada. El valor real del identificador para cada uno de los tipos de escalabilidad se señaliza a través de los bits correspondientes en el campo layer_id_plus1 (nuh_reserved_zero_6bits) en el encabezado de la unidad NAL. Cuando scalability_map[i] es igual a 0 para todos los valores de i, la secuencia de vídeo codificada se ajusta a la especificación base, por lo que el valor layer_id_plus1 de las unidades NAL es igual a 0 y no hay unidades NAL que pertenezcan a una capa o vista de mejora. vps_layer_id[i] especifica el valor de layer_id de la i-ésima capa a la que se aplica la siguiente información de dependencia de la capa. Num_direct_ref_layers[i] especifica el número de capas de las que depende directamente la i-ésima capa. El ref_layer_id[i][j] identifica la j-ésima capa de la que depende directamente la i-ésima capa.
Los valores más altos del mapa de escalabilidad [i] se interpretan como se muestra en la figura 14. El mapa de escalabilidad [i] incluye las dimensiones de escalabilidad de (0) ninguna; (1) espacial; (2) calidad; (3) profundidad; (4) vista múltiple; (5) sin especificar; (6) reservado; y (7) reservado.
Por lo tanto, cada bit en el encabezado de la unidad NAL se interpreta basándose en los 3 bits en el conjunto de parámetros de video de cuál es la dimensión de escalabilidad (por ejemplo, ninguno, espacial, calidad, profundidad, vista múltiple, sin especificar, reservado). Por ejemplo, para señalizar que todos los bits en layer_id_plus1 corresponden a la escalabilidad espacial, los valores del mapa de escalabilidad en el VPS pueden codificarse como 001 001 001 001 001 001 para los 6 bits del encabezado de la unidad NAL. También, por ejemplo, para señalizar que 3 bits en layer_id_plus1 corresponden a escalabilidad espacial y 3 bits corresponden a escalabilidad de calidad, los valores del mapa de escalabilidad en el VPS pueden codificarse como 001 001 001 010010010 para los 6 bits del encabezado de unidad NAL.
Con referencia a la figura 15, otro ejemplo presente con fines ilustrativos solo incluye el conjunto de parámetros de vídeo que indica el número de dimensiones de escalabilidad en los 6 bits del encabezado de la unidad NAL usando num_scalability_dimensions_minus1. Num_scalability_dimensions_minus1 más 1 indica el número de dimensiones de escalabilidad señalizadas a través de los elementos de sintaxis layer_id_plus1; nuh_reserved_zero_6bits; y/o reserved_zero_6bits. El mapa de escalabilidad [i] tiene la misma semántica que la descrita anteriormente en relación con la figura 13. El num_bits_for_scalability[i] map especifica la longitud en bits para la i-ésima dimensión de escalabilidad. La suma de todos los num_bits_for_scalability_map[i] para i=0,... num_scalability_dimensions_minus1 es igual a seis (o igual al número de bits usados para los elementos de sintaxis layer_id_plus1; vps_reserved_zero_6bits; maxnum_layers_minus1; reserved_zero_x6bits; nuh_reserved_zero_6bits).
Con respecto a la figura 13 y la figura 15 se pueden usar otras variaciones, si se desea. Por ejemplo, scalability_map[i] se puede señalizar con u(4) (o u(n) con n>3 o n<3). En este caso, los valores más altos del mapa de escalabilidad [i] pueden especificarse como reservados para flujos de bits que se ajusten a un perfil particular de la técnica de vídeo. Por ejemplo, los valores de mapa de escalabilidad 6... 15 pueden especificarse como 'reservados' cuando se señaliza scalabiliy_map[i] con u(4). Por ejemplo, el mapa de escalabilidad [i] puede indicarse con ue(v) o algún otro esquema de codificación. Por ejemplo, se puede especificar una restricción de modo que los valores del scalability_map[i] estén dispuestos en un orden monótono no decreciente (o no creciente). Esto da como resultado que varios campos de dimensión de escalabilidad en el campo layer_id_plus1 en el encabezado de la unidad NAL sean contiguos.
Otra técnica existente para señalizar la codificación de video escalable usando el elemento de sintaxis "layer_ id_plus1" o "nuh_reserved_zero_6bits" es mapear el layer_id_plus1 en el encabezado de la unidad NAL a una identificación de capa señalizando una tabla de búsqueda general en el conjunto de parámetros de video. Con referencia a la figura 16, la técnica existente incluye un conjunto de parámetros de vídeo que especifica el número de tipos de dimensión e identificaciones de dimensión para la i-ésima capa de la tabla de búsqueda. En particular, vps_extension_byte_alignment_reserved_zero_bit es cero. Num_dimensions_minus1[i] más 1 especifica el número de tipos de dimensión (dimension_type[i][j]) e identificadores de dimensión (dimension_id[i][j]) para la i-ésima capa. El dimension_type[i][j] especifica el j-ésimo tipo de dimensión de escalabilidad de la i-ésima capa, que tiene layer_id o layer_id_plus1 igual a i, como se especifica en la figura 17. Como se ilustra en la figura 17, las dimensiones que se identifican incluyen (0) orden de vista idx; (1) marca de profundidad; (2) ID de dependencia; (3) ID de calidad; (4)-(15) reservado. El dimension_id[i][j] especifica el identificador del j-ésimo tipo de dimensión de escalabilidad de la iésima capa, que cuando no está presente se infiere que es 0. num_direct_ref_layers[i] especifica el número de capas de las que depende directamente la i-ésima capa. El ref_layer_id[i][j] identifica la j-ésima capa de la que depende directamente la i-ésima capa. Desafortunadamente, el ejemplo presente con fines ilustrativos solo ilustrado en la figura 16 da como resultado una tabla de búsqueda grande y difícil de manejar.
Con referencia a la figura 18, una extensión de conjunto de parámetros de vídeo modificado incluye una máscara de escalabilidad que se usa en combinación con una dimensión de escalabilidad. La máscara de escalabilidad señaliza un patrón de 0 y 1 bits con cada bit correspondiente a una dimensión de escalabilidad como se indica por la sintaxis del mapa de escalabilidad de la figura 19 o 29. Un valor de 1 para una dimensión de escalabilidad particular indica que esta dimensión de escalabilidad está presente en esta capa (i-ésima capa). Un valor de 0 para una dimensión de escalabilidad particular indica que esta dimensión de escalabilidad no está presente en esta capa (capa i-ésima). Por ejemplo, un conjunto de bits de 00100000 se refiere a la escalabilidad de calidad. El valor de identificador real de la dimensión de escalabilidad particular que está presente se indica mediante el valor de scalability_id[j] señalizado. Los valores de num_scalabil¡ty_types[¡] es igual a la suma del número de bits en la máscara de escalabilidad que
num_scalability_types[i] = £ scalability_mask[i](k)
tiene el valor 1. Por tanto, k-° . El scability_id[j] indica el valor identificador de la dimensión j-ésima de escalabilidad para el tipo de valores de escalabilidad que están señalizados por el valor de la máscara de escalabilidad.
Con referencia a la figura 20, una modificación de la figura 18, incluye la máscara de escalabilidad señalizada fuera del bucle. Esto da como resultado una máscara común para cada identificación de capa. Con referencia a la figura 21, en esta modificación, un conjunto de parámetros de vídeo de ejemplo correspondiente puede incluir la identificación escalable sin que se incluya la máscara de escalabilidad. En este caso, el elemento sintáctico scalable _id[j] tiene la misma interpretación que el elemento sintáctico scalability _id[j] en la figura 18.
Con referencia a la figura 22, una modificación de la figura 18 incluye indicadores de información de fuentes adicionales que se están señalizando. La información del tipo de escaneo de origen se señaliza por source_scan_type_info_idc[i] para cada capa i. source_scan_type_info_idc[i] igual a 0 indica que la capa i tiene imágenes cuyo tipo de escaneo debe interpretarse como tipo de escaneo entrelazado para todas las imágenes. source_scan_type_info_idc[i] igual a 1 indica que la capa i tiene imágenes cuyo tipo de escaneo debe interpretarse como tipo de escaneo progresivo para todas las imágenes. source_scan_type_info_idc[i] igual a 2 indica que la capa i tiene imágenes cuyo tipo de escaneo es desconocido. source_scan_type_info_idc[i] igual a 3 indica que la capa i tiene imágenes que son una mezcla de tipo de escaneo progresivo y tipo de escaneo entrelazado. Esto se indica en la figura 23.
La información de origen 2D/3D se señaliza por source_2d_3d_info_idc[i] para cada capa i. source_2d_3d_info_idc[i] igual a 1 indica que todas las imágenes de la capa i están empaquetadas en un formato 3D compatible con tramas. source_2d_3d_info_idc[i] igual a 0 indica que todas las imágenes de la capa i son tramas 2D, es decir, ninguna de ellas está empaquetada en un formato 3D compatible con tramas. source_2d_3d_info_idc[i] igual a 2 indica que la capa i tiene imágenes cuya disposición de empaquetado de tramas se desconoce. source_2d_3d_info_idc[i] igual a 3 indica que la capa i tiene imágenes que son una mezcla de tramas 3D y 2D compatibles con tramas. Esto se indica en la figura 24.
En otra variante, los elementos de sintaxis source_scan_type_info_idc[i] y/o source_2d_3d_info_idc[i] pueden indicarse con u(1) o u(n) con n> 3. O puede indicarse con ue(v) o algún otro método de codificación.
En otro ejemplo presente con fines ilustrativos, sólo se pueden usar nombres diferentes para los elementos de sintaxis que los nombres source_scan_info_idc[i] y source_2d_3d_info_idc[i].
En otro ejemplo presente con fines ilustrativos, sólo los elementos de sintaxis source_scan_type_info_idc[i] y/o source_2d_3d_info_idc[i] pueden señalizarse en el conjunto de parámetros de secuencia (SPS)/conjunto de parámetros de imagen (PPS)/encabezado de segmento u otra parte normativa del flujo de bits.
En otro ejemplo presente con fines ilustrativos, solo los elementos de sintaxis source_scan_type_info_idc y source_2d_3d_info_idc pueden señalizarse solo una vez si son iguales para todas las capas [i]. En este caso, los elementos de sintaxis se señalizan una vez como source_scan_type_info_idc y source_2d_3d_info_idc sin el índice de capa i. Esto se muestra en la figura. 25.
En otro ejemplo presente con fines ilustrativos, sólo los elementos de sintaxis source_scan_type_info_idc y/o source_2d_3d_info_idc pueden señalizarse también para la capa base. Esto se muestra en la figura 26.
En otro ejemplo presente con fines ilustrativos, sólo los elementos de sintaxis source_scan_type_info_idc [i] y source_2d_3d_info_idc pueden señalizarse en otro lugar en el VPS diferente al mostrado en la figura 22; la figura 25, la figura 26. Puede estar señalizado en el VPS base y/o en vps_extension().
En un ejemplo presente con fines ilustrativos, sólo los elementos de sintaxis source_scan_type_info_idc [i] y/o source_2d_3d_info_idc [i] pueden indicarse con u(3) en lugar de u(2). Los valores para ellos se muestran respectivamente en la figura 27 y la figura 28.
También en la figura 22 y la figura 25, avc_base_codec_flag igual a 1 especifica que la capa base se ajusta a la Rec. UIT-T H.264 | ISO/IEC 14496-10 y avc_base_codec_flag igual a 0 especifica HEVC. vps_ nuh_ layer _id _present_ flag indica si se señaliza el ID de capa en nuh[i] variable que señaliza el valor del ID de capa en el encabezado de la unidad NAL.
En una realización, uno o más de los elementos de sintaxis scalability_mask[i], máscara de escalabilidad, escalabilidad id[j] pueden señalizarse usando un número de bits diferente al de u(8). Por ejemplo, se podrían señalizar con u(16) (o u(n) con n> 8 o n <8). En otra realización, uno o más de estos elementos de sintaxis podrían señalizarse con ue(v). En otra realización, la scalability_mask se puede señalizar en el encabezado de la unidad NAL en los elementos de sintaxis layer_id_plus1; vps_reserved_zero_6bits; max_num_layers_minus1; reserved_zero_6bits; y/o nuh_reserved_zero_6bits. En algunas realizaciones, el sistema puede hacer esto solo para unidades NAL de VPS, o solo para unidades que no son NAL de VPS, o para todas las unidades NAL. En otra realización más, la scalability_mask se puede señalizar por imagen en cualquier lugar del flujo de bits. Por ejemplo, puede señalizarse en el encabezado de segmento, el conjunto de parámetros de imagen, el conjunto de parámetros de vídeo o cualquier otro conjunto de parámetros o cualquier otra parte normativa del flujo de bits.
Cabe señalar que las figuras 13, 15, 18, 20, 21, 22 y la descripción correspondiente se refieren a 6 bits, ya que el elemento de sintaxis nuh_reserved_zero_6bits o layer_id_plus1 en el encabezado de la unidad NAL de la figura 9 tiene 6 bits. Sin embargo, toda la descripción anterior puede modificarse adecuadamente si ese elemento de sintaxis usa un número de bits diferente de 6 bits. Por ejemplo, si ese elemento de sintaxis (nuh_reserved_zero_6bits o layer_id_plus1) en su lugar usó 9 bits, entonces en la figura 13 el valor de max_num_layer_minus1 bits será 9 y el scalability_map[i] se señalizará para cada uno de los 9 bits en lugar de 6 bits.
Con referencia a la figura 30 una modificación de la figura 18 incluye la máscara de escalabilidad (scalability_mask) que se señaliza fuera del bucle. Esto da como resultado una máscara común para cada identificación de capa. Scalability_mask señaliza un patrón de 0 y 1 bits con cada bit correspondiente a una dimensión de escalabilidad como se indica por la sintaxis del mapa de escalabilidad de la figura 31. Un valor de 1 para una dimensión de escalabilidad particular indica que esta dimensión de escalabilidad está presente en esta capa (i-ésima capa). Un valor de 0 para una dimensión de escalabilidad particular indica que esta dimensión de escalabilidad no está presente en esta capa (i-ésima capa). Por ejemplo, un conjunto de bits de 00100000 se refiere a la escalabilidad de calidad. El valor de identificador real de la dimensión de escalabilidad particular que está presente se indica mediante el valor de scalability _id[j] señalizado. Los valores de num_scalability_types[i] es igual a la suma del número de bits en la scalability_mask que tiene el valor 1. Por tanto,
]5
MimSca]abilityTypes[i] = scalability_mask(k)
k=o
En este caso, la variable scalability_id[j] puede denominarse dimension_id[i][j] variable. dimension_id[i][j] especifica el identificador de escalabilidad de la j-ésima dimensión de escalabilidad de la i-ésima capa. Entonces, una variable ScalabilityId[i][j] se deriva de la siguiente manera.
f o r ( i = i ; i <= vp s_m ax_la .y er5_n iim jsl; i - ) ■
f o r j t ^ ü , kr<=15r k:++) {
i f ( s c a l a ± :i l i t y _ n i 3.s t ( t ; = = l;
S c a l a b i l i t y l d |i] [ kr] = d ix e n a io r ._ i d [ 11 j
e lse
S c a l a b i l i t y I d [ i ] [k ]= 0 ;
Donde ScalabilityId[i][k] señaliza el ID de dimensión para el tipo de escalabilidad correspondiente de la siguiente manera.
Donde DependencyId[i] [1] es el ID de dependencia para la dimensión de escalabilidad espacial para la i-ésima capa, QualityId[i] [2] es el ID de calidad para la dimensión de escalabilidad de calidad para la i-ésima capa, depthFlag [i] [3] es el indicador de profundidad/ID de profundidad para la dimensión de escalabilidad de profundidad para la i-ésima capa, y Viewld[i] [4] es la ID de vista para la dimensión de escalabilidad multivista para la i-ésima capa.
También en la figura 30 avc_base_codec_flag igual a 1 especifica que la capa base se ajusta a la Rec. UIT-T H.264 | ISO/IEC 14496-10 y avc_base_codec_flag igual a 0 especifica h Ev C. vps_nuh_layer_id_presnet_flag indica si se señaliza la variable layer_id_in_nuh[i] que señaliza el valor de layer_id en el encabezado de la unidad NAL.
En otra realización, uno o más de los elementos de sintaxis scalability_mask[i], scalability_mask, scalability_id[j] pueden señalizarse usando un número de bits diferente al de u(8). Por ejemplo, se podrían señalizar con u(16) (o u(n) con n> 8 o n <8). En otra realización, uno o más de estos elementos de sintaxis podrían señalizarse con ue(v). En otra realización, la scalability_mask se puede señalizar en el encabezado de la unidad NAL en los elementos de sintaxis layer_id_plus1; vps_reserved_zero_6bits; max_num_layers_minus1; reserved_zero_6bits; y/o
nuh_reserved_zero_6bits. En algunas realizaciones, el sistema puede hacer esto solo para unidades NAL de VPS, o solo para unidades que no son NAL de VPS, o para todas las unidades NAL. En otra realización más, la scalability_mask se puede señalizar por imagen en cualquier lugar del flujo de bits. Por ejemplo, puede señalizarse en el encabezado de segmento, el conjunto de parámetros de imagen, el conjunto de parámetros de vídeo o cualquier otro conjunto de parámetros o cualquier otra parte normativa del flujo de bits.
Cabe señalar que las figuras 13, 15, 18, 20, 21, 30, 31 y la descripción correspondiente se refieren a 6 bits, ya que el elemento de sintaxis nuh_reserved_zero_6bits o layer_id_plus1 en el encabezado de la unidad NAL de la figura 9 tiene 6 bits. Sin embargo, toda la descripción anterior puede modificarse adecuadamente si ese elemento de sintaxis usa un número de bits diferente de 6 bits. Por ejemplo, si ese elemento de sintaxis (nuh_reserved_zero_6bits o layer_id_plus1) en su lugar usó 9 bits, entonces en la figura 13 el valor de max_num_layer_minus1 bits será 9 y el scalability_map[i] se señalizará para cada uno de los 9 bits en lugar de 6 bits.
Con referencia a la figura 32 una modificación de la figura 30 incluye una marca adicional (vps_implicit_dimension_ids_flag) que indica la señalización implícita de identificadores de dimensión de escalabilidad y nuevos elementos de sintaxis (max_dimension_id_minus1[i]) que se señalizan. vps_implicit_dimension_ids_flag con un valor de 1 especifica que la lista explícita de valores de dimension_id[i][j] para varias dimensiones de escalabilidad no se señaliza y se infieren los valores de dimension_id[i][j]. vps_implicit_dimension_ids_flag con un valor de 0 especifica que se señaliza la lista explícita de los valores de dimension_id[i][j] para varias dimensiones de escalabilidad. max_dimension_id_minusl[i] especifica el valor máximo de dimension_id para la dimensión de escalabilidad i. Las dimensiones de escalabilidad se enumeran en la tabla scalability_mask, por ejemplo, en la figura 31.
Cuando los valores de dimension_id se señalizan implícitamente, se infieren como DimID[i][j] como se describe en el código siguiente durante el proceso de decodificación.
Lnt Id ; ; = ( 0 , 0 , 0 , . . . , 0 } ;
f o r (i= [);i< = '.rp a _ n d x _ la y e rs_ n iiE u s l : i — )
f o r (^ = 1; j íl fM S c a lf lb il i ty T y p e a ; j - ;
■:
:■
I d [ 5 ín n 3ca lab i. I ÍTyType s - 11 = I d [ HumS c a l a b a l i ty T y p e s -1/ - 1 ;
f o r (k= H ™ S c a lá b i l i ty T ] ¡p e a - l ; t> = 0 ; k— ;
■:
f f < i d [ k ] = (n ax _d im aD sicin _ id _n iin u sl |k] - 1 ) }
■
.
:■
Cuando se usa la señalización implícita de identificadores de dimensión de escalabilidad, se infiere que el valor de la identificación de la capa NUH es igual al índice de entrada (i) del bucle para (i = 0; i <= vps_max_layers_minus1; i +) en la figura 32.
La figura 34 muestra una sintaxis variante con funcionalidad similar a la sintaxis de la figura 32. Todos los elementos de sintaxis de la figura 34 tienen el mismo significado semántico que en la figura 32. En la figura 34 algunos de los elementos de sintaxis (vps_implicit_dimension_ids_flag, max_dimension_id_minus1[i]) se mueven a una posición diferente en la estructura de extensión del conjunto de parámetros de video. También se pretende que estos nuevos elementos de sintaxis se puedan mover a otra posición en la extensión del conjunto de parámetros de vídeo o en el conjunto de parámetros de vídeo o en alguna otra parte normativa del flujo de bits. Cabe señalar que en la figura 32 y la figura 33 los elementos de sintaxis max_dimension_id_minus1[i] se señalizan cuando vps_implicit_dimension_ids_flag tiene un valor de 1 o VERDADERO. Sin embargo, en otra realización, los elementos de sintaxis max_dimension_id_minus1[i] pueden señalizarse independientemente del valor del elemento de sintaxis vps_implicit_dimension_ids_flag.
La figura 33 y la figura 35 muestran una sintaxis variante adicional con una funcionalidad similar a la de la figura 32 y la figura 34 respectivamente. En la figura 33 y la figura 35 la marca vps_nuh_layer_id_present_flag y el elemento de sintaxis layer_id_in_nuh[i] se señalizan incluso cuando vps_implicit_dimension_ids_flag tiene un valor de 1. En la
figura 32 y la figura 34 la marca vps_nuh_layer_id_present_flag y el elemento de sintaxis layer_id_in_nuh[i] no se señalizan incluso cuando vps_implicit_dimension_ids_flag tiene un valor de 1.
La figura 36 y la figura 37 muestran una sintaxis variante adicional con una funcionalidad similar a la figura 32 y la figura 33 respectivamente. En la figura 36 y la figura 37 se señalizan elementos de sintaxis adicionales dimension_index_order[i]. dimension_index_order[i] especifica el valor de orden con respecto a dónde se señaliza la dimensión de escalabilidad particular i cuando se señalizan valores de dimension_id en un elemento de sintaxis contiguo. En este caso, cuando los valores de dimension_id se señalizan implícitamente, se infieren como DimI D[i][j] como se describe en el código siguiente durante el proceso de decodificación.
Dijnld ;í ; [ cixien s io n _ ir.d e s_ c ird a r[j];= I d [ j ] ;
:■
fo r (k = t í n n S c a la b i l i t ’/T y p e s - l ; t > = 0 ;k — }
■:
i f (Id [k j == (m jt_diat-5nsion_ii_ra.in ,u 3 l [1c] 1 ) )
■:
La figura 38 y la figura 39 muestran una sintaxis variante con funcionalidad similar a la de la sintaxis de la figura 36 y la figura 37 respectivamente. Todos los elementos de sintaxis de la figura 38 y la figura 39 tienen el mismo significado semántico que en la figura 36 y la figura 37, respectivamente. En la figura 38 y la figura 39 algunos de los elementos de sintaxis (vps_implicit_dimension_ids_flag, max_dimension_id_minus1[i], dimension_index_order[i]) se mueven a una posición diferente en la estructura de extensión del conjunto de parámetros de video. También se pretende que estos nuevos elementos de sintaxis se puedan mover a otra posición en la extensión del conjunto de parámetros de vídeo o en el conjunto de parámetros de vídeo o en alguna otra parte normativa del flujo de bits. En otra realización, el elemento de sintaxis max_dimension_id_minus1[i] se puede señalizar usando u(v) en lugar de u(3). En este caso, la longitud usada en la codificación u(v) será igual al valor del elemento de sintaxis correspondiente dimension_id_len_minus1[i] 1.
En otra realización, el elemento de sintaxis dimension_index_order[i] se puede señalizar usando u(v) en lugar de u(3). En este caso, la longitud usada en la codificación u(v) será igual al número de bits necesarios para señalizar el valor de NumScalabilityTypes.
En otra realización, uno o más de estos elementos de sintaxis max_dimension_id_minus1[i], dimension_index_order[i] podrían indicarse con ue(v) o algún otro esquema de codificación.
En otra realización, se podrían señalizar varios elementos de sintaxis nuevos en diferentes lugares dentro del VPS. Los términos y expresiones que se han empleado en la especificación anterior se usan en la misma como términos de descripción y no de limitación, y no hay intención, en el uso de dichos términos y expresiones, de excluir equivalentes de las características mostradas y descritas o porciones de los mismos, reconociendo que el alcance de la invención está definido y limitado únicamente por las reivindicaciones que siguen.
Claims (1)
1.- Un método para decodificar un flujo de bits de video escalable codificado que comprende:
recibir un flujo de bits de video codificado que incluye una capa base, una o más capas de mejora y un conjunto de parámetros de video que comprende una información de escalabilidad sobre cada capa,
en el que el conjunto de parámetros de video incluye:
una marca que indica si los identificadores de dimensión de escalabilidad se señalizan implícita o explícitamente; y un valor máximo de los identificadores de dimensión de escalabilidad para cada dimensión de escalabilidad de una pluralidad de dimensiones de escalabilidad para cada capa,
en el que la presencia o ausencia de la pluralidad de dimensiones de escalabilidad en la capa respectiva se indica en una máscara de escalabilidad señalizada en el flujo de bits,
en el que cada identificador de dimensión de escalabilidad especifica la dimensión de escalabilidad de cada capa que incluye una o más capas de mejora y la capa base, siendo la dimensión de escalabilidad uno de múltiples tipos que incluyen un tipo espacial y un tipo de calidad;
determinar basándose en la marca si los identificadores de dimensión de escalabilidad están señalizados implícita o explícitamente;
decodificar el flujo de bits de video codificado usando la capa base y una o más capas de mejora, e
inferir durante la decodificación y a partir de un elemento de sintaxis de un encabezado de unidad de capa de abstracción de red (NAL) en el flujo de bits de video codificado, una o más dimensiones de escalabilidad identificadores de una unidad NAL, donde la unidad NAL corresponde al encabezado de la unidad NAL, en el que en respuesta a determinar que los identificadores de dimensión de escalabilidad están señalizados implícitamente, dicha inferencia se realiza implícitamente basándose en dicho valor máximo de los identificadores de dimensión de escalabilidad y dicho elemento de sintaxis.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261728997P | 2012-11-21 | 2012-11-21 | |
| US201361749173P | 2013-01-04 | 2013-01-04 | |
| PCT/JP2013/006828 WO2014080630A1 (en) | 2012-11-21 | 2013-11-20 | Signaling scalability information in a parameter set |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2878143T3 true ES2878143T3 (es) | 2021-11-18 |
Family
ID=50775825
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13856204T Active ES2878143T3 (es) | 2012-11-21 | 2013-11-20 | Información de escalabilidad de señalización en un conjunto de parámetros |
| ES21175707T Active ES3041256T3 (en) | 2012-11-21 | 2013-11-20 | Signaling scalability information in a parameter set |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES21175707T Active ES3041256T3 (en) | 2012-11-21 | 2013-11-20 | Signaling scalability information in a parameter set |
Country Status (6)
| Country | Link |
|---|---|
| EP (2) | EP3923584B1 (es) |
| CN (2) | CN109257607B (es) |
| ES (2) | ES2878143T3 (es) |
| PL (2) | PL3923584T3 (es) |
| PT (1) | PT2923488T (es) |
| WO (1) | WO2014080630A1 (es) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20230165766A (ko) * | 2021-04-02 | 2023-12-05 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 확장성 차원 정보(scalability dimension information)의 사용 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3775265B2 (ja) * | 2001-08-16 | 2006-05-17 | ソニー株式会社 | 信号処理装置および方法、記録再生装置および方法、ならびに、再生装置および方法 |
| CA2557533A1 (en) * | 2004-02-27 | 2005-09-09 | Td Vision Corporation S.A. De C.V. | Method and system for digital coding 3d stereoscopic video images |
| JP5106419B2 (ja) * | 2006-01-09 | 2012-12-26 | エルジー エレクトロニクス インコーポレイティド | 映像信号のエンコーディング/デコーディング方法及び装置 |
| EP1933564A1 (en) * | 2006-12-14 | 2008-06-18 | Thomson Licensing | Method and apparatus for encoding and/or decoding video data using adaptive prediction order for spatial and bit depth prediction |
| PT2123052E (pt) * | 2007-01-18 | 2011-03-02 | Fraunhofer Ges Forschung | Corrente de dados de vídeo de qualidade escalonável |
| JP4947389B2 (ja) * | 2009-04-03 | 2012-06-06 | ソニー株式会社 | 画像信号復号装置、画像信号復号方法、および画像信号符号化方法 |
| WO2012122246A1 (en) * | 2011-03-10 | 2012-09-13 | Vidyo, Inc. | Dependency parameter set for scalable video coding |
-
2013
- 2013-11-20 WO PCT/JP2013/006828 patent/WO2014080630A1/en not_active Ceased
- 2013-11-20 CN CN201811342800.6A patent/CN109257607B/zh active Active
- 2013-11-20 CN CN201380060862.7A patent/CN104798371B/zh active Active
- 2013-11-20 ES ES13856204T patent/ES2878143T3/es active Active
- 2013-11-20 PL PL21175707.5T patent/PL3923584T3/pl unknown
- 2013-11-20 EP EP21175707.5A patent/EP3923584B1/en active Active
- 2013-11-20 PL PL13856204T patent/PL2923488T3/pl unknown
- 2013-11-20 ES ES21175707T patent/ES3041256T3/es active Active
- 2013-11-20 EP EP13856204.6A patent/EP2923488B1/en active Active
- 2013-11-20 PT PT138562046T patent/PT2923488T/pt unknown
Also Published As
| Publication number | Publication date |
|---|---|
| HK1212836A1 (zh) | 2016-07-08 |
| PL3923584T3 (pl) | 2025-10-06 |
| EP3923584A1 (en) | 2021-12-15 |
| CN104798371A (zh) | 2015-07-22 |
| EP2923488B1 (en) | 2021-05-26 |
| CN104798371B (zh) | 2018-12-07 |
| EP2923488A4 (en) | 2016-07-27 |
| EP2923488A1 (en) | 2015-09-30 |
| PL2923488T3 (pl) | 2021-11-02 |
| CN109257607B (zh) | 2022-03-11 |
| ES3041256T3 (en) | 2025-11-11 |
| WO2014080630A1 (en) | 2014-05-30 |
| EP3923584B1 (en) | 2025-08-06 |
| PT2923488T (pt) | 2021-07-09 |
| CN109257607A (zh) | 2019-01-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9807421B2 (en) | NAL unit type restrictions | |
| US12250392B2 (en) | Signaling scalability information in a parameter set | |
| JP6193365B2 (ja) | パラメータセットにおけるスケーラビリティ情報のシグナリング | |
| US10397606B2 (en) | System for signaling IFR and BLA pictures | |
| CN105103562B (zh) | 随机接入点画面 | |
| US20190238870A1 (en) | Implicit Signaling of Scalability Dimension Identifier Information in a Parameter Set | |
| US20140140398A1 (en) | Signaling scalability information in a parameter set | |
| US20160241850A1 (en) | Alignment of picture order count | |
| ES3041256T3 (en) | Signaling scalability information in a parameter set | |
| HK1260404A1 (en) | Signaling scalability information in a parameter set | |
| HK1260404B (en) | Signaling scalability information in a parameter set | |
| HK1212526B (en) | Signaling scalability information in a parameter set |





