ES2711535T3 - Procedimiento y dispositivo para probar la conformidad de parámetros hipotéticos de descodificador de referencia para esquemas de partición en la codificación de vídeo - Google Patents
Procedimiento y dispositivo para probar la conformidad de parámetros hipotéticos de descodificador de referencia para esquemas de partición en la codificación de vídeo Download PDFInfo
- Publication number
- ES2711535T3 ES2711535T3 ES15723383T ES15723383T ES2711535T3 ES 2711535 T3 ES2711535 T3 ES 2711535T3 ES 15723383 T ES15723383 T ES 15723383T ES 15723383 T ES15723383 T ES 15723383T ES 2711535 T3 ES2711535 T3 ES 2711535T3
- Authority
- ES
- Spain
- Prior art keywords
- partition
- layers
- video
- bitstream
- layer
- 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
- 238000005192 partition Methods 0.000 title claims abstract description 701
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000012360 testing method Methods 0.000 title claims abstract description 69
- 230000006872 improvement Effects 0.000 claims abstract description 10
- 239000000872 buffer Substances 0.000 claims description 37
- 238000000638 solvent extraction Methods 0.000 claims description 35
- 230000000153 supplemental effect Effects 0.000 abstract 1
- 239000010410 layer Substances 0.000 description 567
- 238000012545 processing Methods 0.000 description 84
- 230000009466 transformation Effects 0.000 description 84
- 239000002356 single layer Substances 0.000 description 47
- 241000023320 Luma <angiosperm> Species 0.000 description 46
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 46
- 230000033001 locomotion Effects 0.000 description 37
- 239000012634 fragment Substances 0.000 description 30
- 238000003860 storage Methods 0.000 description 26
- 239000000523 sample Substances 0.000 description 25
- 230000008569 process Effects 0.000 description 22
- 238000013139 quantization Methods 0.000 description 20
- 238000012800 visualization Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 239000013598 vector Substances 0.000 description 13
- 239000002365 multiple layer Substances 0.000 description 12
- 230000002441 reversible effect Effects 0.000 description 11
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 238000000844 transformation Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000000605 extraction Methods 0.000 description 9
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000005755 formation reaction Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 230000008030 elimination Effects 0.000 description 6
- 238000003379 elimination reaction Methods 0.000 description 6
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 239000000945 filler Substances 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 101150061692 nus1 gene Proteins 0.000 description 3
- 101150114515 CTBS gene Proteins 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101150057091 FP1 gene Proteins 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000001228 spectrum 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/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
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/4508—Management of client data or end-user data
- H04N21/4516—Management of client data or end-user data involving client characteristics, e.g. Set-Top-Box type, software version or amount of memory available
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/127—Prioritisation of hardware or computational resources
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/187—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
-
- 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/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/29—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
-
- 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/39—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability involving multiple description coding [MDC], i.e. with separate layers being structured as independently decodable descriptions of input picture data
-
- 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
- H04N19/426—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 using memory downsizing methods
- H04N19/427—Display on the fly, e.g. simultaneous writing to and reading from decoding memory
-
- 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/436—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 using parallelised computational 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/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
-
- 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/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
- H04N19/66—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
-
- 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/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
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
Un procedimiento para probar la conformidad con una norma de codificación de vídeo, comprendiendo el procedimiento: obtener, a partir de un flujo de bits que comprende una representación codificada de datos de vídeo, uno o más elementos sintácticos que indican una pluralidad de esquemas de partición diferentes para un conjunto de capas de salida, en el que: el flujo de bits comprende una pluralidad de capas, el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas; para cada esquema de partición respectivo de la pluralidad de esquemas de partición diferentes: el esquema de partición respectivo especifica una división del conjunto de capas de salida en una o más particiones, en el que cada capa en el conjunto de capas de salida pertenece exactamente a una partición en el esquema de partición respectivo; y para cada esquema de partición respectivo de la pluralidad de esquemas de partición diferentes: obtener, a partir de un mensaje de Información de Mejora Suplementario (SEI) en el flujo de bits o información de usabilidad de vídeo (VUI) en un conjunto de parámetros de vídeo (VPS) en el flujo de bits, un conjunto respectivo de elementos sintácticos que indican conjuntos de parámetros hipotéticos de descodificador de referencia (HRD) para el esquema de partición respectivo; y para cada partición respectiva del esquema de partición respectivo, probar, basándose en los conjuntos de parámetros de HRD para los esquemas de partición respectivos, la partición respectiva para la conformidad con la norma de codificación de vídeo.
Description
DESCRIPCION
Procedimiento y dispositivo para probar la conformidad de parametros hipoteticos de descodificador de referencia para esquemas de particion en la codificacion de video
CAMPO TECNICO
[0001] Esta divulgacion se refiere a la codificacion de video y a la descodificacion de video.
ANTECEDENTES
[0002] Las capacidades del video digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusion directa digital, sistemas de radiodifusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores de tableta, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, los denominados “telefonos inteligentes", dispositivos de videoconferencia, dispositivos de transmision continua de video y similares. Los dispositivos de video digitales implementan tecnicas de compresion de video, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificacion de Video Avanzada (AVC), la norma de Codificacion de Video de Alta Eficiencia (HEVC) actualmente en desarrollo y las ampliaciones de dichas normas. Los dispositivos de video pueden transmitir, recibir, codificar, descodificar y/o almacenar informacion de video digital de forma mas eficiente implementando dichas tecnicas de compresion de video.
[0003] Las tecnicas de compresion de video realizan la prediccion espacial (intra-imagen) y/o la prediccion temporal (inter-imagen) para reducir o eliminar la redundancia intrinseca en las secuencias de video. Para la codificacion de video basada en bloques, un fragmento de video (es decir, una trama de video o una parte de una trama de video) puede dividirse en bloques de video. Los bloques de video en un fragmento intracodificado (I) de una imagen se codifican mediante prediccion espacial con respecto a muestras de referencia en bloques vecinos de la misma imagen. Los bloques de video de un fragmento intercodificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia de bloques vecinos de la misma imagen, o la prediccion temporal con respecto a muestras de referencia de otras imagenes de referencia. Las imagenes pueden denominarse tramas, y las imagenes de referencia pueden denominarse tramas de referencia.
[0004] La prediccion espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de pixeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificacion y los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio de pixel hasta un dominio de transformacion, dando como resultado coeficientes residuales, que se pueden cuantificar posteriormente. Los coeficientes cuantificados, inicialmente dispuestos en una formacion bidimensional, pueden escanearse con el fin de generar un vector unidimensional de coeficientes, y puede aplicarse la codificacion por entropia para lograr aun mas compresion.
[0005] Un flujo de bits de codificacion de multiples visualizaciones puede generarse codificando visualizaciones, por ejemplo, desde multiples perspectivas. Se han desarrollado algunos estandares de video tridimensionales (3D) que hacen uso de aspectos de codificacion de multiples visualizaciones. Por ejemplo, diferentes visualizaciones pueden transmitir visualizaciones de ojo izquierdo y derecho para soportar video 3D. De forma alternativa, algunos procesos de codificacion de video 3D pueden aplicar la denominada codificacion de multiples visualizaciones mas profundidad. En la codificacion de multiples visualizaciones mas profundidad, un flujo de bits de video 3D puede contener no solo componentes de visualizacion de textura, sino tambien componentes de visualizacion de profundidad. Por ejemplo, cada visualizacion puede comprender un componente de visualizacion de textura y un componente de visualizacion de profundidad. Wang et al., "MV-HEVC/SHVC HLS: On level definition," ["MV-HEVC/SHVC HLS: Sobre definicion de niveles,"] Equipo de Colaboracion Conjunta sobre Codificacion de Video (JCT-VC) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/Wg 11 17.a Reunion: Valencia, ES, 27 de marzo - 4 de abril de 2014, documento n.° JCTVC-Q0145 describe varios problemas relacionados con las definiciones de niveles en SHVC y propone un enfoque diferente para definir niveles y capacidades de descodificador. En particular, como parte de las definiciones de nivel propuestas, se especifica una capacidad de descodificador de una manera en que el nivel se asocia con una escala, que se necesita junto con el nivel para expresar la capacidad del descodificador. En otra contribucion, Hannuksela et al., "MV-HEVC/SHVC FILS /JICT-VC AHG20: Multi-layer HRD operation," ["MV-HEVC/SHVC FILS/JICT-VC AHG20: Funcionamiento HRD de multiples capas,"] Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11 15.a Reunion: Ginebra, CH, 23 de octubre - 1 de noviembre de 2013, documento n.° JCTVC-00164, propone que la memoria intermedia de imagenes codificadas (CPB) se pueda dividir en memorias intermedias de particion de flujo de bits (BPB), que funcionan de manera similar al CPB pero que manejan particiones de flujo de bits, como las capas.
RESUMEN
[0006] La invencion se define en las reivindicaciones a las que ahora se hace referencia.
[0007] En un ejemplo, esta divulgacion describe un procedimiento para probar la conformidad con una norma de codificacion de video, comprendiendo el procedimiento: obtener, a partir de un flujo de bits que comprende una representacion codificada de datos de video, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida, en el que: el flujo de bits comprende una pluralidad de capas, el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas; para cada esquema de particion respectivo del uno o mas esquemas de particion: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa del conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y para cada esquema de particion respectivo del uno o mas esquemas de particion: obtener, a partir de un mensaje de Informacion de Mejora Suplementaria (SEI) en el flujo de bits o informacion de usabilidad de video (VUI) en un conjunto de parametros de video (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y para cada particion respectiva del esquema de particion respectivo, probar, en base a los conjuntos de parametros HRD para los esquemas de particion respectivos, la particion respectiva para conformarse con la norma de codificacion de video.
[0008] En otro ejemplo, esta divulgacion describe un procedimiento de codificacion de datos de video, comprendiendo el procedimiento: generar un flujo de bits que comprenda una representacion codificada de los datos de video, comprendiendo el flujo de bits una pluralidad de capas, en el que generar el flujo de bits comprende: incluir, en el flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida, en el que: el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto apropiado de la pluralidad de capas; para cada esquema de particion respectivo del uno o mas esquemas de particion: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa del conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y para cada esquema de particion respectivo del uno o mas esquemas de particion, incluir, en un mensaje de Informacion de Mejora Suplementaria (SEI) en el flujo de bits o informacion de usabilidad de video (VUI) en un conjunto de parametros de video (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y emitir el flujo de bits.
[0009] En otro ejemplo, esta divulgacion describe un dispositivo que prueba la conformidad con una norma de codificacion de video, comprendiendo el dispositivo: uno o mas medios de almacenamiento legibles por ordenador configurados para almacenar un flujo de bits que comprenda una representacion codificada de datos de video; y uno o mas procesadores configurados para: obtener, a partir de un flujo de bits que comprende una representacion codificada de los datos de video, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida, en el que: el flujo de bits comprende una pluralidad de capas, el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas; para cada esquema de particion respectivo del uno o mas esquemas de particion: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa en el conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y para cada esquema de particion respectivo del uno o mas esquemas de particion: obtener, a partir de un mensaje de Informacion de Mejora Suplementaria (SEI) en el flujo de bits o informacion de usabilidad de video (VUI) en un conjunto de parametros de video (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y para cada particion respectiva del esquema de particion respectivo, probar, en base a los conjuntos de parametros HRD para los esquemas de particion respectivos, la particion respectiva para conformarse con la norma de codificacion de video.
[0010] En otro ejemplo, esta divulgacion describe un dispositivo para la codificacion de datos de video, comprendiendo el dispositivo: uno o mas medios de almacenamiento legibles por ordenador configurados para almacenar los datos de video; y uno o mas procesadores configurados para: generar un flujo de bits que comprende una representacion codificada de los datos de video, comprendiendo el flujo de bits una pluralidad de capas, en el que el uno o mas procesadores estan configurados de manera que, como parte de la generacion del flujo de bits, el uno o mas mas procesadores incluyen, en el flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida, en el que: el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto apropiado de la pluralidad de capas; para cada esquema de particion respectivo del uno o mas esquemas de particion: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa del conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y para cada esquema de particion respectivo del uno o mas esquemas de particion, incluyendo, en un mensaje de Informacion de Mejora Suplementaria (SEI) en el flujo de bits o informacion de usabilidad de video (VUI) en un conjunto de parametros de video (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y la salida del flujo de bits.
[0011] En otro ejemplo, esta divulgacion describe un dispositivo que prueba la conformidad con una norma de codificacion de vfdeo, comprendiendo el dispositivo: medios para obtener, a partir de un flujo de bits que comprende una representacion codificada de datos de vfdeo, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida, en el que: el flujo de bits comprende una pluralidad de capas, el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto apropiado de la pluralidad de capas; para cada esquema de particion respectivo del uno o mas esquemas de particion: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa en el conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y para cada esquema de particion respectivo del uno o mas esquemas de particion: medios para obtener, a partir de un mensaje de Informacion de Mejora Suplementaria (SEI) en el flujo de bits o informacion de usabilidad de vfdeo (VUI) en un conjunto de parametros de vfdeo (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y para cada particion respectiva del esquema de particion respectivo, medios para probar, en base a los conjuntos de parametros HRD para los esquemas de particion respectivos, la particion respectiva para conformarse con la norma de codificacion de vfdeo.
[0012] En otro ejemplo, esta divulgacion describe un dispositivo para la codificacion de datos de vfdeo, comprendiendo el dispositivo: medios para generar un flujo de bits que comprenda una representacion codificada de los datos de vfdeo, comprendiendo el flujo de bits una pluralidad de capas, en el que los medios para generar el flujo de bits comprende: medios para incluir, en el flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida, en el que: el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto apropiado de la pluralidad de capas; para cada esquema de particion respectivo del uno o mas esquemas de particion: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa del conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y para cada esquema de particion respectivo del uno o mas esquemas de particion, incluir, en un mensaje de Informacion de Mejora Suplementaria (SEI) en el flujo de bits o informacion de usabilidad de vfdeo (VUI) en un conjunto de parametros de vfdeo (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y medios para emitir el flujo de bits.
[0013] En otro ejemplo, esta divulgacion describe un medio de almacenamiento legible por ordenador que incluye instrucciones almacenadas en el mismo que, al ejecutarse, hacen que un dispositivo pruebe la conformidad con una norma de codificacion de vfdeo, en el que, una vez se han ejecutado las instrucciones, el dispositivo es obligado a: obtener, a partir de un flujo de bits que comprende una representacion codificada de datos de vfdeo, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida, en el que: el flujo de bits comprende una pluralidad de capas, el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas; para cada esquema de particion respectivo del uno o mas esquemas de particion: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa en el conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y para cada esquema de particion respectivo del uno o mas esquemas de particion: obtener, a partir de un mensaje de Informacion de Mejora Suplementaria (SEI) en el flujo de bits o informacion de usabilidad de vfdeo (VUI) en un conjunto de parametros de vfdeo (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y para cada particion respectiva del esquema de particion respectivo, probar, en base a los conjuntos de parametros HRD para los esquemas de particion respectivos, la particion respectiva para conformarse con la norma de codificacion de vfdeo.
[0014] En otro ejemplo, esta divulgacion describe un medio de almacenamiento legible por ordenador que incluye instrucciones almacenadas en el mismo que, al ejecutarse, hacen que un dispositivo para la codificacion de datos de vfdeo: genere un flujo de bits que comprenda una representacion codificada de los datos de vfdeo, comprendiendo el flujo de bits una pluralidad de capas, en el que, como parte de hacer que el dispositivo genere el flujo de bits, las instrucciones hacen que el dispositivo: incluya, en el flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida, en el que: el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas; para cada esquema de particion respectivo del uno o mas esquemas de particion: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa del conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y para cada esquema de particion respectivo del uno o mas esquemas de particion, incluye, en un mensaje de Informacion de Mejora Suplementaria (SEI) en el flujo de bits o informacion de usabilidad de vfdeo (VUI) en un conjunto de parametros de vfdeo (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y emitir el flujo de bits.
[0015] Los detalles de uno o mas ejemplos de la divulgacion se exponen en los dibujos adjuntos y en la siguiente descripcion. Otras caracterfsticas, objetivos y ventajas resultaran evidentes a partir de la descripcion, los dibujos y las reivindicaciones.
BREVE DESCRIPCION DE LOS DIBUJOS
[0016]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificacion de video de ejemplo que puede utilizar las tecnicas descritas en esta divulgacion.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de implementacion de un descodificador de video, que comprende una pluralidad de descodificadores de capa unica, de acuerdo con una tecnica de esta divulgacion.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de codificador de video que puede implementar las tecnicas descritas en esta divulgacion.
La FIG. 4 es un diagrama de bloques que ilustra un ejemplo de descodificador de video que puede implementar las tecnicas descritas en esta divulgacion.
La FIG. 5A es un diagrama de flujo que ilustra un ejemplo de funcionamiento de un codificador de video, de acuerdo con una tecnica de esta divulgacion.
La FIG. 5B es un diagrama de flujo que ilustra un ejemplo de funcionamiento de un descodificador de video de acuerdo con una tecnica de esta divulgacion.
La FIG. 6A es un diagrama de flujo que ilustra un ejemplo de funcionamiento de un codificador de video, de acuerdo con una tecnica de esta divulgacion.
La FIG. 6B es un diagrama de flujo que ilustra un ejemplo de funcionamiento de un descodificador de video de acuerdo con una tecnica de esta divulgacion.
La FIG. 7 es un diagrama de flujo que ilustra un ejemplo de funcionamiento de un descodificador de video de acuerdo con una tecnica de esta divulgacion.
DESCRIPCION DETALLADA
[0017] Un flujo de bits (es decir, un flujo de bits de video) puede comprender una representacion codificada de datos de video. Mas especificamente, el flujo de bits puede comprender una serie de unidades de capa de abstraccion de red (NAL). Cada una de las unidades NAL puede incluir una cabecera de unidad NAL y una carga util de secuencia de bytes sin procesar (RBSP). En la codificacion de video de multiples capas, las unidades NAL pueden corresponder a varias capas de datos de video. En la codificacion de video escalable, las capas pueden incluir una capa base y una o mas capas de mejora. En la codificacion de multiples visualizaciones, cada una de las capas puede corresponder a diferentes visualizaciones, tales como diferentes visualizaciones de una escena de video.
[0018] Ciertos estandares de codificacion de video, tales como codificacion de video de alta eficiencia (HEVC), definen varios perfiles, grados y niveles diferentes. En general, un "perfil" de un estandar de codificacion de video es un subconjunto de las caracteristicas y herramientas presentes en el estandar de codificacion de video. En otras palabras, un perfil define que herramientas de codificacion pueden usarse. Por ejemplo, para un codificador de video, se puede establecer un perfil de herramientas de codificacion que el codificador de video puede usar para generar flujos de bits codificados que conforman dicho perfil. Para un descodificador de video, un perfil puede significar el conjunto de herramientas de codificacion que el descodificador de video debe tener para poder descodificar flujos de bits que se dice que se ajustan a dicho perfil.
[0019] Un nivel es un conjunto definido de restricciones de los valores que pueden ser adoptadas por los elementos sintacticos y las variables de un estandar de compresion de video. Un grado es una categoria especifica de restricciones de nivel impuestas a valores de los elementos sintacticos en el flujo de bits o valores de variables, donde las restricciones de nivel estan agrupadas dentro de un grado y un descodificador conforme a un cierto grado y nivel seria capaz de descodificar todos los flujos de bits que se ajustan al mismo grado o al grado inferior de ese nivel o cualquier nivel por debajo de ese nivel. De este modo, un nivel de un grado es un conjunto especificado de restricciones impuestas en los valores de los elementos sintacticos en el flujo de bits o variables utilizadas en la descodificacion del flujo de bits.
[0020] Diferentes descodificadores de video pueden tener diferentes capacidades. Por ejemplo, un descodificador de video puede ser capaz de descodificar flujos de bits que se ajustan a un primer perfil, pero puede que no sea capaz de descodificar flujos de bits que se ajustan a un segundo perfil. En este ejemplo, otro descodificador de video puede descodificar flujos de bits que se ajusten al primer perfil y al segundo perfil. Por ejemplo, con capas escalables de codificacion de video, el nivel de calidad de video que se puede lograr puede escalarse a traves de capas de modo que algunos dispositivos solo pueden descodificar y presentar un nivel basico de calidad de video, mientras que otros dispositivos pueden descodificar y presentar una calidad de video mejorada. Ademas, las capas escalables pueden
permitir una recepcion de datos de video mas fiable cuando el ancho de banda de canal es limitado; por ejemplo, un ancho de banda limitado puede ser suficiente para la comunicacion de datos de video de la capa base y canales de ancho de banda mas robusto pueden permitir la comunicacion de datos de video de capas base y de mejora. En general, si un primer procesador puede descodificar flujos de bits que se ajustan a perfiles, grados y niveles que son un superconjunto de perfiles, grados y niveles que pueden ser descodificados por un segundo procesador, el primer procesador es mas complejo y por lo tanto tiende a ser mas caro.
[0021] De forma similar, con la codificacion de multiples visualizaciones, algunos dispositivos pueden descodificar multiples visualizaciones, mientras que otros dispositivos pueden solo pueden tener la capacidad de descodificar un numero limitado de visualizaciones. Las restricciones del ancho de banda del canal tambien pueden utilizarse de manera mas efectiva mediante la codificacion de multiples visualizaciones, de modo que un numero limitado de visualizaciones puede descodificarse cuando el ancho de banda es limitado y un mayor numero de visualizaciones puede descodificarse cuando lo permite el ancho de banda.
[0022] En algunos casos, un descodificador de video comprende multiples nucleos de hardware (por ejemplo, unidades de procesamiento o modulos de procesamiento). En otras palabras, un descodificador de video puede construirse utilizando una pluralidad de nucleos de hardware. Cada uno de los nucleos de hardware puede ser capaz de descodificar independientemente al menos elementos sintacticos de bajo nivel de un flujo de bits. Los diferentes nucleos pueden ser similares o diferentes en sus capacidades de procesamiento, pero, independientemente de ello, la presencia de multiples nucleos puede proporcionar ventajas de procesamiento respecto a los descodificadores de nucleo unico. En algunos ejemplos, un descodificador de video que comprende multiples nucleos de hardware puede descodificar multiples partes de un flujo de bits en paralelo. Por ejemplo, algunos nucleos de procesamiento pueden implementar un descodificador de capa unica. Un descodificador de capa unica puede descodificar una capa unica de un flujo de bits, tal como una capa base de video escalable o una visualizacion particular en video de multiples visualizaciones. Por el contrario, un descodificador de multiples capas puede descodificar multiples capas de un flujo de bits simultaneamente (es decir, en paralelo). En un ejemplo, un solo nucleo de hardware es capaz de descodificar mas de una capa.
[0023] Diferentes nucleos de hardware de un descodificador de video pueden tener diferentes capacidades. Por ejemplo, un nucleo de hardware de un descodificador de video puede descodificar flujos de bits que se ajusten a un primer perfil, pero no a un segundo perfil, mientras que un segundo nucleo de hardware de un descodificador de video puede descodificar flujos de bits que se ajusten al primer perfil y al segundo perfil. Un descodificador de video puede tener nucleos de hardware que tienen diferentes capacidades con el fin de mantener el coste general del descodificador de video lo mas bajo posible, dado el proposito pretendido del descodificador de video.
[0024] Tipicamente, en casos donde un descodificador de video comprende multiples nucleos de hardware, el descodificador de video determina, basandose en la informacion de perfil, grado y nivel senalado en un flujo de bits, si un nucleo de hardware con mas capacidad del descodificador de video puede descodificar el flujo de bits. Si es asi, el descodificador de video determina que es capaz de descodificar el flujo de bits. Este proceso no permite que el descodificador de video determine si alguno de los nucleos de hardware con menos capacidad del descodificador de video puede ayudar en el proceso de descodificacion del flujo de bits. Como resultado, los nucleos de hardware con menos capacidad pueden estar inactivos, mientras que el nucleo de hardware con mas capacidad descodifica todo el flujo de bits. Sin embargo, los nucleos de hardware con menos capacidad del descodificador de video pueden, de hecho, ser capaces de descodificar capas particulares del flujo de bits en paralelo con el nucleo de hardware con mas capacidad del descodificador de video. Como resultado, no usar los nucleos de hardware con menos capacidad puede prolongar innecesariamente los tiempos de descodificacion.
[0025] Algunas tecnicas de esta divulgacion pueden facilitar reducciones en los tiempos de descodificacion en descodificadores de video que tienen nucleos de hardware con diferentes capacidades. Por ejemplo, algunas tecnicas de esta divulgacion pueden disminuir los tiempos de descodificacion en los descodificadores de video construidos basandose en multiples descodificadores de capa unica que tienen diferentes capacidades. Esta reduccion en los tiempos de descodificacion en relacion con las tecnicas mas convencionales se puede lograr sin cambiar los nucleos de hardware en si (por ejemplo, sin modificar las estructuras fisicas de los nucleos de hardware). Ademas, cuando los nucleos de hardware tienen las mismas capacidades, algunas tecnicas de esta divulgacion pueden permitir a los descodificadores de video descodificar mas capas en paralelo.
[0026] De acuerdo con una tecnica de ejemplo de esta divulgacion, un descodificador de video puede descodificar un flujo de bits que comprende una representacion codificada de datos de video. En este ejemplo, el flujo de bits comprende una pluralidad de capas. Como parte de la descodificacion del flujo de bits, el descodificador de video puede obtener, a partir del flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion. Para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo especifica un conjunto respectivo de particiones disjuntas cuya union forma un conjunto de capas de salida. Cada particion respectiva del conjunto respectivo de particiones disjuntas contiene una o mas de las capas. Por lo tanto, una particion puede ser un tipo particular de subflujo de bits del flujo de bits. El conjunto de capas de salida puede consistir en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas. Ademas, el descodificador de video puede descodificar cada una de las particiones de un esquema de particion particular usando
diferentes nucleos de procesamiento en una pluralidad de nucleos de hardware, siendo el esquema de particion particular uno de los uno o mas esquemas de particion.
[0027] En algunos ejemplos, para cada particion respectiva de cada esquema de particion respectivo del uno o mas esquemas de particion, el descodificador de video obtiene, del flujo de bits, un elemento sintactico respectivo que indica informacion de perfil, grado y nivel (PTL) respectiva para la particion respectiva. En algunos casos, el descodificador de video puede seleccionar, basandose en la informacion de PTL para las particiones de los esquemas de particion, un esquema de particion del uno o mas esquemas de particion. En algunos casos, el descodificador de video puede recibir el flujo de bits de acuerdo con un esquema de particion particular como lo determinan los recursos de red disponibles. El descodificador de video puede descodificar cada particion respectiva del esquema de particion particular usando uno respectivo de los nucleos de hardware. Cada uno de los respectivos nucleos de hardware puede implementar un descodificador de capa unica respectivo. En algunos casos, un nucleo de hardware del descodificador de video puede ser capaz de descodificar mas de una capa.
[0028] Tecnicas adicionales de esta divulgacion pueden proporcionar pruebas de conformidad de flujo de bits usando las particiones de flujo de bits. Por ejemplo, un dispositivo de procesamiento de video (tal como un codificador de video, descodificador de video u otro dispositivo) puede descodificar un flujo de bits que comprende una representacion codificada de datos de video. El flujo de bits puede comprender una pluralidad de capas. Como parte de la descodificacion del flujo de bits, el descodificador de video puede obtener, a partir del flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida. En estos tipos de ejemplos, el conjunto de capas de salida puede consistir en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas (por ejemplo, no todas las capas de la pluralidad de capas). Ademas, para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo puede especificar una division de la capa de salida establecida en una o mas particiones. Cada capa en el conjunto de capas de salida puede pertenecer exactamente a una particion en el esquema de particion respectivo. Para cada esquema de particion respectivo del uno o mas esquemas de particion, el descodificador de video puede obtener, a partir de un mensaje de informacion de mejora suplementario (SEI) en el flujo de bits o informacion de usabilidad de video (VUI) en un conjunto de parametros de video (VPS) en el flujo de bits; un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion. Ademas, para cada particion respectiva del esquema de particion, el dispositivo de procesamiento de video puede probar, basandose en los conjuntos de parametros de HRD para el esquema de particion respectivo, la particion respectiva en cuanto a conformidad con un estandar de codificacion de video, tal como MV-HEVC o SHVC.
[0029] De acuerdo con algunas tecnicas de esta divulgacion, un descodificador de video de multiples capas puede determinar, basandose en una lista de entradas triples, si el descodificador de video de multiples capas es capaz de descodificar (es decir, esta configurado para descodificar) un flujo de bits que comprende una representacion codificada de los datos de video de multiples capas. El numero de entradas triples en la lista puede ser menor o igual que una cantidad de descodificadores de capa unica en el descodificador de video de multiples capas. Cada entrada triple respectiva en la lista de entradas triples indica un perfil, un grado y un nivel que un descodificador de capa unica respectivo en el descodificador de video de multiples capas es capaz de descodificar (es decir, esta configurado para descodificar). Basandose en que el descodificador de video de multiples capas es capaz de descodificar el flujo de bits, el descodificador de video de multiples capas puede descodificar el flujo de bits. En algunos ejemplos, el dispositivo de procesamiento de video puede determinar que el descodificador de multiples capas es capaz de descodificar el flujo de bits determinando que el flujo de bits especifica un esquema de particion donde la informacion PTL de cada particion del esquema de particion indica que la particion puede descodificarse al menos uno de los descodificadores de capa unica. Esto puede permitir que un descodificador de video de multiples capas que tenga multiples descodificadores de capa unica determine si el descodificador de video de multiples capas es capaz de descodificar el flujo de bits.
[0030] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificacion de video 10 de ejemplo que puede utilizar las tecnicas de esta divulgacion. Tal como se utiliza en el presente documento, el termino "codificador de video" se refiere genericamente tanto a codificadores de video como a descodificadores de video. En esta divulgacion, los terminos "codificacion de video" o "codificacion" pueden referirse genericamente a la codificacion de video o la descodificacion de video.
[0031] Como es muestra en la FIG. 1, el sistema de codificacion de video 10 incluye un dispositivo de origen 12, un dispositivo de destino 14 y un elemento de red 15. El dispositivo de origen 12 genera datos de video codificados. En consecuencia, el dispositivo de origen 12 puede denominarse dispositivo de codificacion de video o aparato de codificacion de video. El dispositivo de destino 14 puede descodificar los datos de video codificados, generados por el dispositivo de origen 12. En consecuencia, el dispositivo de destino 14 puede denominarse dispositivo de descodificacion de video o aparato de descodificacion de video. El dispositivo de origen 12 y el dispositivo de destino 14 pueden ser ejemplos de dispositivos de codificacion de video o aparatos de codificacion de video.
[0032] El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, dispositivos informaticos moviles, ordenadores plegables (es decir, portatiles), ordenadores de tableta, descodificadores, equipos telefonicos de mano tales como los denominados telefonos
"inteligentes", televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, ordenadores de coche o similares.
[0033] El elemento de red 15 puede recibir datos de video codificados y emitir datos de video codificados procesados. El elemento de red l5 puede ser un elemento de red compatible con medios (MANE), un dispositivo de red de entrega de contenido (CDN) u otro tipo de dispositivo (por ejemplo, un dispositivo informatico). El dispositivo de red 15 puede realizar una o mas tecnicas de esta divulgacion. Por ejemplo, el dispositivo de red 15 puede realizar una o mas pruebas de conformidad de flujo de bits, de acuerdo con una o mas tecnicas de esta divulgacion. El elemento de red 15, el dispositivo de origen 12, el dispositivo de destino 14 y otros tipos de dispositivo que procesan datos de video pueden considerarse dispositivos de procesamiento de video.
[0034] El dispositivo de destino 14 puede recibir datos de video codificados desde el dispositivo de origen 12 a traves de un canal 16. El canal 16 puede comprender uno o mas medios o dispositivos capaces de desplazar los datos de video codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el canal 16 puede comprender uno o mas medios de comunicacion que permiten al dispositivo de origen 12 transmitir datos de video codificados directamente al dispositivo de destino 14 en tiempo real. En este ejemplo, el dispositivo de origen 12 puede modular los datos de video codificados de acuerdo con un estandar de comunicacion, tal como un protocolo de comunicacion inalambrica, y puede transmitir los datos de video modulados al dispositivo de destino 14. Los uno o mas medios de comunicacion pueden incluir medios de comunicacion inalambricos y/o alambricos, tales como un espectro de radiofrecuencia (RF) o una o mas lineas de transmision fisica. Los uno o mas medios de comunicacion pueden formar parte de una red basada en paquetes, tal como una red de area local, una red de area extensa o una red global (por ejemplo, Internet). Los uno o mas medios de comunicacion pueden incluir routers, conmutadores, estaciones base u otros equipos que faciliten la comunicacion desde el dispositivo de origen 12 al dispositivo de destino 14.
[0035] En otro ejemplo, el canal 16 puede incluir un medio de almacenamiento que almacena datos de video codificados, generados por el dispositivo de origen 12. En este ejemplo, el dispositivo de destino 14 puede acceder al medio de almacenamiento, por ejemplo, mediante el acceso a disco o el acceso a tarjeta. El medio de almacenamiento puede incluir varios medios de almacenamiento de datos de acceso local, tales como discos Blu-ray, DVD, CD-ROM, memoria flash u otros medios adecuados de almacenamiento digital para almacenar datos de video codificados.
[0036] En un ejemplo adicional, el canal 16 puede incluir un servidor de ficheros u otro dispositivo de almacenamiento intermedio que almacene los datos de video codificados, generados por el dispositivo de origen 12. En este ejemplo, el dispositivo de destino 14 puede acceder a datos de video codificados almacenados en el servidor de ficheros u otro dispositivo de almacenamiento intermedio mediante transmision continua o descarga. El servidor de ficheros puede ser un tipo de servidor capaz de almacenar datos de video codificados y transmitir los datos de video codificados al dispositivo de destino 14. Entre los ejemplos de servidores de ficheros se incluyen servidores de la Red (por ejemplo, para una sede de la Red), servidores del protocolo de transferencia de ficheros (FTP), dispositivos de almacenamiento conectados a red (NAS) y unidades de disco local.
[0037] El dispositivo de destino 14 puede acceder a los datos de video codificados a traves de una conexion de datos estandar, tal como una conexion a Internet. Entre los ejemplos de tipos de conexiones de datos pueden incluirse canales inalambricos (por ejemplo, conexiones Wi-Fi), conexiones alambricas (por ejemplo, linea de abonados digital (DSL), modem de cable, etc.), o combinaciones de ambos que sean adecuadas para acceder a datos de video codificados almacenados en un servidor de ficheros. La transmision de datos de video codificados desde el servidor de ficheros puede ser una transmision continua, una transmision de descarga o una combinacion de ambas.
[0038] Las tecnicas de esta divulgacion no estan limitadas a aplicaciones o configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de video, en soporte de una diversidad de aplicaciones multimedia, tales como difusiones de television por aire, transmisiones de television por cable, transmisiones de television por satelite, transmisiones continuas de video, por ejemplo, mediante Internet, codificacion de datos de video para su almacenamiento en un medio de almacenamiento de datos, descodificacion de datos de video almacenados en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema de codificacion de video 10 puede configurarse para soportar la transmision de video unidireccional o bidireccional para soportar aplicaciones tales como la radiodifusion de video, la reproduccion de video, la radiodifusion de video y/o la videotelefonia.
[0039] La FIG. 1 es meramente un ejemplo y las tecnicas de esta divulgacion pueden aplicarse a configuraciones de codificacion de video (por ejemplo, codificacion de video o descodificacion de video) que no incluyan necesariamente ninguna comunicacion de datos entre los dispositivos de codificacion y descodificacion. En otros ejemplos, los datos (por ejemplo, datos de video) se recuperan de una memoria local, se transmiten por una red o similar. Un dispositivo de codificacion de video puede codificar y almacenar datos (por ejemplo, datos de video) en la memoria, y/o un dispositivo de descodificacion de video puede recuperar y descodificar datos (por ejemplo, datos de video) desde la memoria. En muchos ejemplos, la codificacion y descodificacion se realiza mediante dispositivos que no se comunican entre si, sino que simplemente codifican datos en la memoria y/o recuperan y descodifican datos (por ejemplo, datos de video) desde la memoria.
[0040] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de video 18, un codificador de video 20 y una interfaz de salida 22. En algunos ejemplos, la interfaz de salida 22 puede incluir un modulador/desmodulador (modem) y/o un transmisor. El origen de video 18 puede incluir un dispositivo de captura de video, por ejemplo, una videocamara, un fichero de video que contiene datos de video previamente capturados, una interfaz de alimentacion de video para recibir datos de video desde un proveedor de contenido de video y/o un sistema de graficos por ordenador para generar datos de video, o una combinacion de dichos origenes de datos de video. Por lo tanto, en algunos ejemplos, el dispositivo de origen 12 comprende una camara configurada para capturar datos de video.
[0041] El codificador de video 20 puede codificar datos de video procedentes del origen de video 18. En algunos ejemplos, el dispositivo de origen 12 directamente transmite los datos de video codificados al dispositivo de destino 14 mediante la interfaz de salida 22. En otros ejemplos, los datos de video codificados tambien pueden almacenarse en un medio de almacenamiento o un servidor de ficheros para un acceso posterior mediante el dispositivo de destino 14 para su descodificacion y/o reproduccion.
[0042] En el ejemplo de la FIG. 1, el dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de video 30 y un dispositivo de visualizacion 32. En algunos ejemplos, la interfaz de entrada 28 incluye un receptor y/o un modem. La interfaz de entrada 28 puede recibir los datos de video codificados por el canal 16. El codificador de video 30 puede descodificar datos de video codificados. El dispositivo de visualizacion 32 puede mostrar los datos de video descodificados. El dispositivo de visualizacion 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. El dispositivo de visualizacion 32 puede comprender varios dispositivos de visualizacion, tales como una pantalla de cristal liquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
[0043] El codificador de video 20 y el descodificador de video 30 pueden, cada uno, implementarse como cualquiera entre varios circuitos adecuados, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados de aplicacion especifica (ASIC), conjuntos de matrices de puertas programables de campo (FPGA), logica discreta, hardware o cualquier combinacion de los mismos. Si las tecnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado de almacenamiento no transitorio legible por ordenador, y puede ejecutar las instrucciones en hardware usando uno o mas procesadores para realizar las tecnicas de esta divulgacion. Cualquiera de los anteriores (incluyendo hardware, software, una combinacion de hardware y software, etc.) puede considerarse como uno o mas procesadores. Cada uno del codificador de video 20 y del descodificador de video 30 puede estar incluido en uno o mas codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CODEC) combinado en un respectivo dispositivo.
[0044] Esta divulgacion puede referirse en general al codificador de video 20 que "senala" cierta informacion a otro dispositivo, tal como el descodificador de video 30. El termino "indicar" puede referirse en general a la comunicacion de elementos sintacticos y/u otros datos usados para descodificar los datos de video comprimidos. Dicha comunicacion puede producirse en tiempo real o casi real. De forma alternativa, dicha comunicacion puede producirse durante un tramo de tiempo, tal como podria ocurrir cuando se almacenan elementos sintacticos en un medio de almacenamiento legible por ordenador en un flujo de bits codificado en el momento de la codificacion, que a continuacion un dispositivo de descodificacion puede recuperar en cualquier momento tras haber sido almacenado en este medio.
[0045] En algunos ejemplos, el codificador de video 20 y el descodificador de video 30 funcionan de acuerdo con un estandar de compresion de video, tal como ISO/IEC MPEG-4 Visual e ITU-T H.264 (tambien conocido como ISO/IEC MPEG-4 AVC), incluida su extension de Codificacion de Video Escalable (SVC), extension de Codificacion de Video de Multiples visualizaciones (MVC) y extension 3DV basada en MVC. En algunos casos, cualquier flujo de bits que se ajuste a la extension 3DV basada en MVC de H.264/AVC siempre contiene un subflujo de bits que es compatible con la extension MVC de H.264/AVC. El ultimo borrador conjunto de MVC se describe en "Codificacion de video avanzada para servicios audiovisuales genericos", Recomendacion ITU-T H.264, marzo de 2010. Ademas, actualmente existe un esfuerzo constante para generar una ampliacion de la H.264/AVC para codificacion de video tridimensional (3DV), en concreto, 3DV basada en AVC. En otros ejemplos, el codificador de video 20 y el descodificador de video 30 pueden funcionar de acuerdo con las ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263 e ISO/IEC MPEG-4 Visual.
[0046] En otros ejemplos, el codificador de video 20 y el descodificador de video 30 pueden funcionar de acuerdo con el estandar de Codificacion de Video de Alta Eficiencia (HEVC) elaborado por el Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) del Grupo de Expertos en Codificacion de Video (VCEG) de ITU-T y el Grupo de Expertos en Imagenes en Movimiento (MPEG) de ISO/IEC. Un borrador del estandar HEVC, denominado “Memoria descriptiva de borrador de HEVC” se describe en el documento Bross et al. "Informe 3 Predeterminado de Codificacion de Video de Alta Eficiencia (HEVC)", Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 16.a reunion, San Jose, Estados Unidos, enero de 2014, n.° de documento JCTVC-P1003_v1. La memoria descriptiva de borrador de HEVC esta disponible en http://phenix.itsudparis.eu/jct/doc_end_user/documents/16_San%20Jose/wg11/JCTVC-P1003-v1.zip.
[0047] Ademas, actualmente se estan dedicando esfuerzos a la elaboracion de una extension de codificacion de video para HEVC. La extension de codificacion de video escalable de HEVC puede denominarse SHEVC o SHVC. Adicionalmente, un Equipo de Colaboracion Conjunta en Codificacion de Video 3D (JCT-3C) de VCEG y MPEG esta elaborando un estandar 3DV basado en HEVC. Parte de los esfuerzos de estandarizacion para el estandar 3DV basado en HEVC incluyen la estandarizacion de un codec de video de multiples visualizaciones basado en HEVC (es decir, MV-HEVC). Otra parte de los esfuerzos de estandarizacion para el estandar 3DV basado en HEVC incluye la estandarizacion de una codificacion de video 3D basada en HEVC (es decir, 3D-HEVC). Para 3D-HEVC, se pueden incluir y soportar nuevas herramientas de codificacion, incluyendo aquellas a nivel de unidad de codificacion (CU) o unidad de prediccion (PU), tanto para las visualizaciones de textura como de profundidad.
[0048] Un reciente Borrador de Trabajo (WD) de MV-HEVC, denominado MV-HEVC WD8 de aqui en adelante, esta disponible en http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/8_Valencia/wg11/JCT3V-H1002-v1.zip. La extension escalable a HEVC, llamada SHVC, tambien esta siendo desarrollada por el JCT-VC. Un borrador de trabajo (WD) reciente de SHVC, denominado SHVC WD6 de aqui en adelante, esta disponible en http://phenix.itsudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/jCTVC-Q1008-v1.zip.
[0049] En la HEVC y otras especificaciones de codificacion de video, una secuencia de video incluye tipicamente una serie de imagenes. Las imagenes tambien pueden denominarse "tramas". Una imagen puede incluir tres formaciones de muestras, denominadas Sl, SCb y SCr. Sl es una formacion bidimensional (es decir, un bloque) de muestras de luma. SCb es una formacion bidimensional de muestras de croma Cb. SCr es una formacion bidimensional de muestras de croma Cr. Las muestras de croma tambien se pueden denominar en el presente documento muestras de "croma". En otros casos, una imagen puede ser monocromatica y puede solo incluir una formacion de muestras de luma.
[0050] Para generar una representacion codificada de una imagen, el codificador de video 20 puede generar un conjunto de unidades de arbol de codificacion (CTU). Cada una de las CTU puede comprender un bloque de arbol de codificacion de muestras de luma, dos bloques de arbol de codificacion correspondientes de muestras de croma y estructuras sintacticas usadas para codificar las muestras de los bloques de arbol de codificacion. En imagenes monocromaticas o imagenes que tienen tres planos de color separados, una CTU puede comprender un solo bloque de arbol de codificacion y estructuras sintacticas usadas para codificar las muestras del bloque de arbol de codificacion. Un bloque de arbol de codificacion puede ser un bloque de muestras de tamano NxN. Una CTU tambien puede denominarse "bloque de arbol" o una "maxima unidad de codificacion" (LCU). Las CTU de la HEVC pueden ser analogas en gran medida a los macrobloques de otros estandares, tales como H.264/AVC. Sin embargo, una CTU no esta limitada necesariamente a un tamano particular y puede incluir una o mas unidades de codificacion (CU). Un fragmento puede incluir un numero entero de CTU ordenadas consecutivamente en un orden de escaneado cuadriculado.
[0051] Esta divulgacion puede usar el termino "unidad de video", "bloque de video" o "bloque" para referirse a uno o mas bloques de muestras y estructuras sintacticas usadas para codificar muestras del uno o mas bloques de muestras. Los tipos de ejemplo de unidades de video pueden incluir CTU, CU, PU, unidades de transformacion (TU), macrobloques, particiones de macrobloque, etc. En algunos contextos, el analisis de PU puede intercambiarse con el analisis de macrobloques o particiones de macrobloques.
[0052] Para generar una CTU codificada, el codificador de video 20 puede llevar a cabo de forma recursiva una particion de arbol cuaternario en los bloques de arbol de codificacion de una CTU para dividir los bloques de arbol de codificacion en bloques de codificacion, de ahi el nombre "unidades de arbol de codificacion". Un bloque de codificacion es un bloque de muestras de tamano NxN. Una CU puede comprender un bloque de codificacion de muestras de luma y dos bloques de codificacion correspondientes de muestras de croma de una imagen que tiene una matriz de muestras de luma, una matriz de muestras de Cb y una matriz de muestras de Cr y estructuras sintacticas usadas para codificar las muestras de los bloques de codificacion. En imagenes monocromaticas o imagenes que tienen tres planos de color separados, una CU puede comprender un unico bloque de codificacion y estructuras sintacticas usadas para codificar las muestras del bloque de codificacion.
[0053] El codificador de video 20 puede dividir un bloque de codificacion de una CU en uno o mas bloques de prediccion. Un bloque de prediccion es un bloque rectangular (es decir, cuadrado o no cuadrado) de muestras en las que se aplica la misma prediccion. Una unidad de prediccion (PU) de una CU puede comprender un bloque de prediccion de muestras de luma, dos bloques de prediccion correspondientes de muestras de croma y estructuras sintacticas usadas para predecir los bloques de prediccion. En imagenes monocromaticas o imagenes que tienen tres planos de color separados, una PU puede comprender un solo bloque de prediccion y estructuras sintacticas usadas para predecir el bloque de prediccion. El codificador de video 20 puede generar bloques predictivos (por ejemplo, bloques predictivos de luma, Cb y Cr) para bloques de prediccion (por ejemplo, bloques de prediccion de luma, Cb y Cr) de cada PU de la CU.
[0054] El codificador de video 20 puede usar intraprediccion o interprediccion para generar los bloques predictivos para una PU. Si el codificador de video 20 utiliza intraprediccion para generar los bloques predictivos de una PU, el
codificador de video 20 puede generar los bloques predictivos de la PU basandose en muestras descodificadas de la imagen que incluye la PU.
[0055] Despues de que el codificador de video 20 genera bloques predictivos (por ejemplo, bloques predictivos de luma, Cb y Cr) para una o mas PU de una CU, el codificador de video 20 puede generar uno o mas bloques residuales para la CU. Por ejemplo, el codificador de video 20 puede generar un bloque residual de luma para la CU. Cada muestra en el bloque residual de luma de la CU indica una diferencia entre una muestra de luma en uno de los bloques predictivos de luma de la CU y una muestra correspondiente en el bloque de codificacion de luma original de la CU. Ademas, el codificador de video 20 puede generar un bloque residual de Cb para la CU. Cada muestra en el bloque residual de Cb de la CU puede indicar una diferencia entre una muestra de Cb en uno de los bloques predictivos de Cb de la CU y una muestra correspondiente en el bloque de codificacion de Cb original de la CU. El codificador de video 20 tambien puede generar un bloque residual de Cr para la CU. Cada muestra en el bloque residual de Cr de la CU puede indicar una diferencia entre una muestra de Cr en uno de los bloques de Cr predictivos de la CU y una muestra correspondiente en el bloque de codificacion de Cr original de la CU.
[0056] Ademas, el codificador de video 20 puede usar la particion en arbol cuadruple para descomponer los bloques residuales (por ejemplo, los bloques residuales de luma, Cb y Cr) de una CU en uno o mas bloques de transformacion (por ejemplo, bloques de transformacion de luma, Cb y Cr). Un bloque de transformacion es un bloque rectangular (por ejemplo, cuadrado o no cuadrado) de muestras a las que se aplica la misma transformacion. Una unidad de transformacion (TU) de una CU puede comprender un bloque de transformacion de muestras de luma, dos bloques de transformacion correspondientes de muestras de croma y estructuras sintacticas utilizadas para transformar las muestras de bloques de transformacion. De este modo, cada TU de una CU puede tener un bloque de transformacion de luma, un bloque de transformacion de Cb y un bloque de transformacion de Cr. El bloque de transformacion de luma de la TU puede ser un subbloque del bloque residual de luma de la CU. El bloque de transformacion de Cb puede ser un subbloque del bloque residual de Cb de la CU. El bloque de transformacion de Cr puede ser un subbloque del bloque residual de Cr de la CU. En imagenes monocromaticas o imagenes que tienen tres planos de color separados, una TU puede comprender un solo bloque de transformacion y unas estructuras sintacticas usadas para transformar las muestras del bloque de transformacion.
[0057] El codificador de video 20 puede aplicar una o mas transformaciones a un bloque de transformacion de TU para generar un bloque de coeficientes para la TU. Por ejemplo, el codificador de video 20 puede aplicar una o mas transformaciones a un bloque de transformacion de luma de una TU con el fin de generar un bloque de coeficientes de luma para la TU. Un bloque de coeficientes puede ser una formacion bidimensional de coeficientes de transformacion. Un coeficiente de transformacion puede ser una cantidad escalar. El codificador de video 20 puede aplicar una o mas transformaciones a un bloque de transformacion de Cb de una TU para generar un bloque de coeficientes de Cb para la TU. El codificador de video 20 puede aplicar una o mas transformaciones a un bloque de transformacion de Cr de una TU para generar un bloque de coeficientes de Cr para la TU.
[0058] Despues de generar un bloque de coeficientes (por ejemplo, un bloque de coeficientes de luma, un bloque de coeficientes de Cb o un bloque de coeficientes de Cr), el codificador de video 20 puede cuantificar el bloque de coeficientes. La cuantificacion se refiere, en general, a un proceso en el que los coeficientes de transformacion se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes de transformacion, proporcionando una compresion adicional. Despues de que el codificador de video 20 cuantifique un bloque de coeficientes, el codificador de video 20 puede codificar por entropia elementos sintacticos que indican los coeficientes de transformacion cuantificados. Por ejemplo, el codificador de video 20 puede realizar la Codificacion Aritmetica Binaria Adaptativa al Contexto (CABAC) en los elementos sintacticos que indican los coeficientes de transformacion cuantificados.
[0059] El codificador de video 20 puede emitir un flujo de bits que incluye una secuencia de bits que forman una representacion de imagenes codificadas y datos asociados. Por lo tanto, el flujo de bits comprende una representacion codificada de datos de video. El flujo de bits puede comprender una secuencia de unidades de capa de abstraccion de red (NAL). Una unidad NAL es una estructura sintactica que contiene una indicacion del tipo de datos en la unidad NAL y los bytes que contienen dichos datos en forma de una carga util de secuencia de bytes sin procesar (RBSP) intercalados segun sea necesario con bits de prevencion de emulacion. Cada una de las unidades NAL incluye una cabecera de la unidad NAL y encapsula una RBSP. La cabecera de la unidad NAL puede incluir un elemento sintactico que indica un codigo de tipo de unidad NAL. El codigo de tipo de unidad NAL especificado por la cabecera de unidad NAL de una unidad NAL indica el tipo de la unidad NAL. Una RBSP puede ser una estructura sintactica que contiene un numero entero de bytes que se encapsula dentro de una unidad NAL. En algunos casos, una RBSP incluye cero bits.
[0060] Diferentes tipos de unidades NAL pueden encapsular diferentes tipos de las RBSP. Por ejemplo, diferentes tipos de unidades NAL pueden encapsular diferentes RBSP para conjuntos de parametros de video (VPS), conjuntos de parametros de secuencia (SPS), conjuntos de parametros de imagen (PPS), fragmentos codificados, informacion de mejora suplementaria (SEI), etc. Las unidades NAL que encapsulan las RBSP para datos de codificacion de video (a diferencia de las RBSP para conjuntos de parametros y mensajes SEI) pueden denominarse unidades NAL de la capa de codificacion de video (VCL). En HEVC (es decir, HEVC no de multiples capas), una unidad de acceso puede
ser un conjunto de unidades NAL que son consecutivas en orden de descodificacion y que contienen exactamente una imagen codificada. Ademas de las unidades NAL de fragmento codificado de la imagen codificada, la unidad de acceso tambien puede contener otras unidades NAL que no contienen fragmentos de la imagen codificada. En algunos ejemplos, la descodificacion de una unidad de acceso siempre da como resultado una imagen descodificada. La informacion de mejora suplementaria (SEI) contiene informacion que no es necesaria para descodificar las muestras de imagenes codificadas de las unidades NAL VCL. Un SEI RBSP contiene uno o mas mensajes SEI.
[0061] El descodificador de video 30 puede recibir un flujo de bits generado por el codificador de video 20. Ademas, el descodificador de video 30 puede analizar el flujo de bits para obtener elementos sintacticos del flujo de bits. El descodificador de video 30 puede reconstruir las imagenes de los datos de video basandose, al menos en parte, en los elementos sintacticos obtenidos a partir del flujo de bits. El proceso para reconstruir los datos de video puede ser en general reciproco al proceso realizado por el codificador de video 20. Por ejemplo, el descodificador de video 30 puede usar vectores en movimiento de las PU para determinar bloques predictivos para las PU de una CU actual. Ademas, el descodificador de video 30 puede cuantificar inversamente bloques de coeficientes de TU de la CU actual. El descodificador de video 30 puede realizar transformaciones inversas en los bloques de coeficientes para reconstruir los bloques de transformacion de las TU de la CU actual. El descodificador de video 30 puede reconstruir los bloques de codificacion de la CU actual anadiendo las muestras de los bloques predictivos para las PU de la CU actual a las muestras correspondientes de los bloques de transformacion de las TU de la CU actual. Mediante la reconstruccion de los bloques de codificacion para cada CU de una imagen, el descodificador de video 30 puede reconstruir la imagen.
[0062] Las tecnicas de esta divulgacion son potencialmente aplicables a la codificacion de multiples visualizaciones y/o estandares y especificaciones 3DV, incluyendo MV-HEVC y 3D-HEVC. En la codificacion de multiples visualizaciones, tal como la definida en MV-HEVC y 3D-HEVC, puede haber varias visualizaciones de la misma escena desde diferentes puntos de visualizacion. En el contexto de la codificacion de multiples visualizaciones y codificacion de video escalable, el termino "unidad de acceso" puede usarse para referirse a un conjunto de imagenes que corresponden a la misma instancia de tiempo. En algunos casos, en el contexto de codificacion de multiples visualizaciones y codificacion de video escalable, una unidad de acceso puede comprender un conjunto de unidades NAL que estan asociadas entre si de acuerdo con una regla de clasificacion especificada, son consecutivas en orden de descodificacion y contienen las unidades NAL VCL de todas las imagenes codificadas asociadas con el mismo tiempo de salida y sus unidades NAL no VCL asociadas. Asi, los datos de video pueden conceptualizarse como una serie de unidades de acceso que se producen a lo largo del tiempo.
[0063] En la codificacion 3DV, como la definida en 3D-HEVC, una "componente de visualizacion" puede ser una representacion codificada de una visualizacion en una unica unidad de acceso. Un componente de visualizacion puede contener un componente de visualizacion en profundidad y un componente de visualizacion en textura. Un componente de visualizacion de profundidad puede ser una representacion codificada de la profundidad de una visualizacion en una unica unidad de acceso. Un componente de visualizacion de textura puede ser una representacion codificada de la textura de una visualizacion en una unica unidad de acceso. En esta divulgacion, una "vista" puede referirse a una secuencia de componentes de visualizacion asociadas con el mismo identificador de visualizacion.
[0064] La componente de visualizacion de textura y la componente de visualizacion de profundidad de un conjunto de imagenes de una visualizacion pueden considerarse como correspondientes entre si. Por ejemplo, la componente de visualizacion de textura de un conjunto de imagenes de una visualizacion se considera correspondiente al componente de visualizacion de profundidad del conjunto de las imagenes de la visualizacion, y viceversa (es decir, la componente de visualizacion de profundidad corresponde a su componente de visualizacion de textura en el conjunto, y viceversa). Como se usa en esta divulgacion, una componente de visualizacion de textura que corresponde a una componente de visualizacion de profundidad puede considerarse como la componente de visualizacion de textura y la componente de visualizacion de profundidad que son parte de una misma visualizacion de una unica unidad de acceso.
[0065] La componente de visualizacion de textura incluye el contenido de imagen real que se muestra. Por ejemplo, la componente de visualizacion de textura puede incluir las componentes de luma (Y) y croma (Cb y Cr). El componente de visualizacion de profundidad puede indicar profundidades relativas de los pixeles en su componente de visualizacion de textura correspondiente. Como un ejemplo, el componente de visualizacion de profundidad puede comprender una imagen de escala de grises que incluye solo valores de luma, pero los valores de luma en un componente de visualizacion de profundidad pueden representar un nivel de profundidad de un pixel o conjunto de pixeles, a diferencia de un nivel de intensidad de pixel que seria transmitido por un componente de luma de una visualizacion de textura. En otras palabras, la componente de visualizacion de profundidad tal vez no transmita ningun contenido de imagen, pero en lugar de eso proporcione una medida de las profundidades relativas de los pixeles en la componente de visualizacion de textura. La componente de visualizacion de profundidad que utiliza solo valores de luma (por ejemplo, valores de intensidad) para identificar la profundidad se proporciona con fines ilustrativos y no debe considerarse limitativa. En otros ejemplos, puede utilizarse cualquier tecnica para indicar las profundidades relativas de los pixeles en la componente de visualizacion de textura.
[0066] En la codificacion de multiples visualizaciones y la codificacion SVC, un flujo de bits puede tener una pluralidad de capas. En codificacion de multiples visualizaciones, cada una de las capas puede corresponder a una
visualizacion diferente. Una capa puede denominarse "capa base" si un descodificador de video (por ejemplo, descodificador de video 30) puede descodificar imagenes en la capa sin referencia a imagenes de ninguna otra capa. Una capa puede denominarse "capa no base" o "capa dependiente" si la descodificacion de la capa depende de la descodificacion de las imagenes de una o mas capas diferentes. Cuando se codifica una imagen en una de las capas no base, un codificador de video (como el codificador de video 20 o el descodificador de video 30) puede agregar una imagen a una lista de imagenes de referencia si la imagen esta en una visualizacion diferente, pero en la misma instancia de tiempo (es decir, unidad de acceso) que la imagen que el codificador de video esta codificando actualmente. Al igual que otras imagenes de referencia de interprediccion, el codificador de video puede insertar una imagen de referencia de prediccion entre visualizaciones en cualquier posicion de una lista de imagenes de referencia.
[0067] En SVC, las capas distintas de la capa base pueden denominarse "capas de mejora" y pueden proporcionar informacion que mejora la calidad visual de los datos de video descodificados a partir del flujo de bits. La SVC puede mejorar la resolucion espacial, la relacion senal-ruido (es decir, la calidad) o la velocidad temporal. En la codificacion de video escalable (por ejemplo, SHVC), una "representacion de capa" puede ser una representacion codificada de una capa espacial en una unica unidad de acceso. Para facilitar la explicacion, esta divulgacion puede referirse a componentes de visualizacion y/o representaciones de capa como "componentes de visualizacion/representaciones de capa" o simplemente "imagenes".
[0068] Para implementar las capas, las cabeceras de las unidades NAL pueden incluir elementos sintacticos nuh_reserved_zero_6bits, que tambien pueden denominarse elementos sintacticos "nuh_layer_id". Las unidades NAL que tienen elementos sintacticos nuh_reserved_zero_6bit que especifican valores diferentes pertenecen a diferentes capas de un flujo de bits. Por lo tanto, en codificacion de multiples visualizaciones (por ejemplo, MV-HEVC), 3DV (por ejemplo, 3D-HEVC) o SVC (por ejemplo, SHVC), el elemento sintactico nuh_reserved_zero_6bits de una unidad NAL especifica un identificador de capa (es decir, una ID de capa) de la unidad NAL. En algunos ejemplos, el elemento sintactico nuh_reserved_zero_6bits de una unidad NAL es igual a 0 si la unidad NAL se relaciona con una capa base en codificacion de multiples visualizaciones (por ejemplo, MV-HEVC), codificacion 3DV (por ejemplo, 3D-HEVC) o SVC (por ejemplo, SHVC). Datos en una capa base de un flujo de bits pueden descodificarse sin referencia a datos de ninguna otra capa del flujo de bits. Si la unidad NAL no se relaciona con una capa base en codificacion de multiples visualizaciones, 3Dv , o SVC, el elemento sintactico nuh_reserved_zero_6bits del elemento sintactico puede tener un valor distinto de cero. Como se ha indicado mas arriba, en la codificacion de multiples visualizaciones y en la codificacion 3DV, diferentes capas de un flujo de bits pueden corresponder a diferentes visualizaciones.
[0069] Ademas, algunos componentes de visualizacion/representaciones de capa dentro de una capa pueden descodificarse sin referencia a otros componentes de visualizacion/representaciones de capa dentro de la misma capa. Por lo tanto, las unidades NAL que encapsulan datos de ciertos componentes de visualizacion/representaciones de una capa pueden eliminarse del flujo de bits sin afectar a la capacidad de descodificacion de otros componentes de visualizacion/representaciones de capa en la capa. La eliminacion de unidades NAL que encapsulan datos de tales componentes de visualizacion/representaciones de capa puede reducir la velocidad de tramas del flujo de bits. Un subconjunto de componentes de visualizacion/representaciones de capa dentro de una capa que puede descodificarse sin referencia a otros componentes de visualizacion/representaciones de capa dentro de la capa se puede denominar en el presente documento una "subcapa" o una "subcapa temporal".
[0070] Las unidades NAL pueden incluir elementos sintacticos temporal_id que especifican identificadores temporales (es decir, Temporallds) de las unidades NAL. El identificador temporal de una unidad NAL identifica una subcapa a la que pertenece la unidad NAL. Por lo tanto, cada subcapa de un flujo de bits puede tener un identificador temporal diferente. En general, 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 se pueden descodificar sin referencia a los datos encapsulados por la segunda unidad NAL.
[0071] Como se indica brevemente mas arriba, las unidades NAL pueden encapsular RBSP para conjuntos de parametros de video (VPS), conjuntos de parametros de secuencia (SPS), conjuntos de parametros de imagen (PPS). Un VPS es una estructura sintactica que comprende elementos sintacticos que se aplican a cero o mas secuencias de video codificadas completas (CVS). Un SPS tambien es una estructura sintactica que comprende elementos sintacticos que se aplican a cero o mas CVS completos. Un SPS puede incluir un elemento sintactico que identifica un VPS que esta activo cuando el SPS esta activo. Por lo tanto, los elementos sintacticos de un VPS pueden ser mas en general aplicables que los elementos sintacticos de un SPS. Un PPS es una estructura sintactica que comprende elementos sintacticos que se aplican a cero o mas imagenes codificadas. Un PPS puede incluir un elemento sintactico que identifica un SPS que esta activo cuando el PPS esta activo. Una cabecera de fragmento de un fragmento puede incluir un elemento sintactico que indica un PPS que esta activo cuando el fragmento esta siendo codificado.
[0072] Los conjuntos de parametros, tales VPS, SPS y PPS pueden incluir estructuras sintacticas de extension especificas para las extensiones del estandar HEVC. Por ejemplo, los conjuntos de parametros pueden incluir extensiones especificas para SHVC, MV-HEVC, 3D-HEVC, etc. Las estructuras sintacticas de extension pueden incluir elementos sintacticos aplicables a las extensiones del estandar HEVC. La Tabla 1, abajo, muestra una parte de extension de VPS definida en SHVC WD6 y MV-HEVC WD8.
TABLA 1
vps_extension( ) { Descriptor avc_base_layer_flag u(1)
u(1) vps_num_profile_tier_level_minus1 ue(v)
for(ptlIdx = 1; ptlIdx <= vps num profile tier level minus1; ptlIdx +)
{
vps_profile_present_flag[ ptlIdx ] u(1) profile_tier_level( vps_profile_present_flag[ ptlIdx ], vps_max_sub_layers_minus1 )
}
for(i = 1; i < NumOutputLayerSets; i++) {
if(i > vps_num_layer_sets_minus1)
output_layer_set_idx_minus1[ i ] u(v)
if(i > vps_num_layer_sets_minus1 || defaultTargetOutputLayerIdc == 2)
for(j = 0; j < NumLayersInIdList[LayerSetIdxForOutputLayerSet[ i ] ]; j++)
output_layer_flag[ i ][ j ] u(1) profile_level_tier_idx[ i ] u(v) if(NumOutputLayersInOutputLayerSet[ i ] == 1
&& NumDirectRefLayers[OlsHighestOutputLayerId[ i ]] > 0)
alt_output-layer_flag[ i ] u(1) }
vps_vui_present_flag
if( vps_vui_present_flag ) {
while( !byte_aligned ())
vps_vu i_align ment_b it_equal_to_one u(1) vps_vui( )
}
}
[0073] En el ejemplo de la Tabla 1 anterior y en otras tablas sintacticas de esta divulgacion, los elementos sintacticos con descriptor de tipo ue(v) pueden ser numeros enteros de longitud variable sin signo codificados utilizando codificacion Golomb exponencial (Exp-Golomb) de orden 0 con el bit izquierdo primero. En el ejemplo de la Tabla 1 y las siguientes tablas, los elementos sintacticos que tienen descriptores de la forma u(n), donde n es un entero no negativo, son valores sin signo de longitud n.
[0074] La parte de la extension de VPS definida en la Tabla 1 incluye elementos sintacticos que definen uno o mas conjuntos de capas de salida. Un conjunto de capas de salida es un conjunto de capas que consta de las capas de uno de los conjuntos de capas especificados en el VPS, donde se indica que una o mas capas del conjunto de capas seran capas de salida. Como se define en SHVC WD6, una capa de salida es una capa de un conjunto de capas de salida que se emite cuando TargetOptLayerSetIdx es igual al indice del conjunto de capas de salida. TargetOptLayerSetIdx especifica una lista de identificadores de capa de un punto de funcionamiento en uso y un conjunto de capas de salida objetivo. Un punto de funcionamiento puede referirse a un subconjunto (por ejemplo, un subconjunto adecuado) de unidades NAL en el flujo de bits. Ademas, como se define en SHVC WD6, una capa de salida objetivo es una capa que se va a emitir y es una de las capas de salida del conjunto de capas de salida con el indice olsIdx de forma que TargetOptLayerSetIdx sea igual a olsldx. Por lo tanto, en general, el conjunto de capas de salida objetivo puede ser uno de los conjuntos de capas de salida en particular. Cada capa del conjunto de capas de salida objetivo se emite (por ejemplo, se proporciona como salida de un descodificador de video). En algunos casos, el descodificador de video 30 puede descodificar una capa particular de un flujo de bits, pero no emite datos de video descodificados de la capa particular. En lugar de eso, el descodificador de video 30 puede usar los datos de video descodificados de la capa particular para descodificar los datos de video de las capas que estan en el conjunto de capas de salida objetivo.
[0075] Ademas, la parte de la extension de VPS definida en la Tabla 1 incluye elementos sintacticos que definen una o mas estructuras sintacticas de perfil, grado y nivel (PTL). Cada estructura sintactica de PTL especifica un perfil, grado y nivel para cada secuencia de video codificada. Como se muestra adicionalmente en la Tabla 1, la extension de VPS incluye elementos sintacticos profile_level_tier_idx que identifican las estructuras sintacticas PTL aplicables a los conjuntos de capas de salida respectivos. De esta forma, la extension VPS especifica informacion PTL para cada uno de los conjuntos de capas de salida.
[0076] En general, un "perfil" es un subconjunto de las caracteristicas y herramientas presentes en un estandar de codificacion de video (por ejemplo, HEVC o una extension del mismo). Dentro de los limites impuestos por un perfil dado, todavia es posible requerir una gran variacion en el rendimiento de los codificadores y descodificadores, dependiendo de los valores tomados por los elementos sintacticos en el flujo de bits, tales como el tamano especificado de las imagenes descodificadas. En muchas aplicaciones, puede no ser ni practico ni economico implementar un descodificador capaz de tratar con todos los usos hipoteticos de la sintaxis dentro de un perfil particular. Para tratar con este problema, se especifican "grados" y "niveles" dentro de cada perfil.
[0077] En algunos ejemplos, un nivel es un conjunto definido de restricciones en los valores que pueden ser tomados por los elementos sintacticos y variables de un estandar de codificacion de video (por ejemplo, HEVC o una extension del mismo). Ademas, en algunos ejemplos, un grado es una categoria especificada de restricciones de nivel impuestas a los valores de los elementos sintacticos en el flujo de bits o valores de variables, donde las restricciones de nivel estan agrupadas dentro de un grado y un descodificador conforme a un cierto grado y nivel seria capaz de descodificar todos los flujos de bits que se ajusten al mismo grado o al grado inferior de ese nivel o cualquier nivel debajo del mismo. De este modo, un nivel de un grado es un conjunto especificado de restricciones impuestas en los valores de los elementos sintacticos en el flujo de bits o los valores de variables. Estas restricciones pueden ser simples limitaciones de valores. De forma alternativa, pueden adoptar la forma de restricciones sobre combinaciones aritmeticas de valores (por ejemplo, el ancho de imagen multiplicado por la altura de la imagen multiplicada por el numero de imagenes descodificadas por segundo). Un nivel especificado para un grado inferior es mas restringido que un nivel especificado para un grado superior. En algunos contextos, el termino "nivel" tambien se puede usar para referirse al valor de un coeficiente de transformacion antes del escalado.
[0078] Como se muestra adicionalmente en la Tabla 1 anterior, la extension VPS puede incluir una estructura sintactica vps_vui(). La estructura sintactica vps_vui() contiene parametros de informacion de usabilidad de video (VUI). El parrafo F.7.3.2.1.4 de SHVC WD6 describe la sintaxis de una estructura sintactica vps_vui(). Como se especifica en la memoria descriptiva de borrador de HEVC, los parametros VUI no son necesarios para construir las muestras de luma o croma mediante el proceso de descodificacion. No se requieren descodificadores conformes para procesar esta informacion para el cumplimiento de la orden de salida de esta memoria descriptiva (ver el Anexo C para la especificacion de la conformidad de la orden de salida). Se requieren algunos parametros VUI para comprobar la conformidad del flujo de bits y la conformidad del descodificador de sincronizacion de salida. En algunos casos, los parametros VUI tambien se pueden especificar en SPS.
[0079] Una estructura sintactica vps_vui() puede incluir una estructura sintactica vps_vui_bsp_hrd_parameters(). La estructura sintactica vps_vui_bsp_hrd_parameters() incluye elementos sintacticos que especifican parametros hipoteticos de descodificador de referencia (HRD) para particiones de flujo de bits. Como se define en SHVC WD6, una particion de flujo de bits es una secuencia de bits, en la forma de un flujo de unidades NAL o un flujo de bytes, que es un subconjunto de un flujo de bits de acuerdo con una particion.
[0080] Al menos algunos estandares de codificacion de video especifican modelos de memoria intermedia de video. En H.264/AVC y HEVC, un modelo de almacenamiento en memoria intermedia se denomina "descodificador hipotetico de referencia" o "HRD". En la memoria descriptiva de borrador de HEVC se describe el HRD en el anexo C. El HRD describe como se almacenaran en memoria intermedia los datos para la descodificacion y como se almacenan en memoria intermedia los datos descodificados para la emision. Por ejemplo, el HRD describe el funcionamiento de una memoria intermedia de imagenes codificadas ("CPB"), una memoria intermedia de imagenes descodificadas ("DBP") y un proceso de descodificacion de video. La CPB es una memoria intermedia de primero en entrar, primero en salir, que contiene unidades de acceso en un orden de descodificacion especificado por HRD. La DPB es una memoria intermedia que contiene imagenes descodificadas para referencia, reordenamiento de salida o retardo de salida especificado por el HRD. Los comportamientos de la CPB y DPB se pueden especificar matematicamente. El HRD puede imponer directamente restricciones en el tiempo, los tamanos de la memoria intermedia y las velocidades de transferencia de bits. Ademas, el HRD puede imponer restricciones indirectamente a varias caracteristicas y estadisticas de flujo de bits.
[0081] En la H.264/AVC y la HEVC, la conformidad del flujo de bits y la conformidad del descodificador se especifican como partes de la especificacion del HRD. En otras palabras, el modelo de HRD especifica pruebas para determinar si un flujo de bits cumple con el estandar y pruebas para determinar si un descodificador cumple con el estandar. Aunque el HRD se denomina como algun tipo de descodificador, los codificadores de video tipicamente usan el HRD para garantizar la conformidad del flujo de bits, mientras que los descodificadores de video tipicamente no necesitan el HRD.
[0082] H.264/AVC y HEVC especifican dos tipos de conformidad de HRD o flujo de bits; esto es, Tipo I y Tipo II. Un flujo de bits de Tipo I es un flujo de unidad NAL que contiene solo las unidades NAL VCL y la unidad NAL de datos de relleno para todas las unidades de acceso en el flujo de bits. En al menos algunos ejemplos, un flujo de unidades NAL es una secuencia de unidades NAL. Un flujo de bits de Tipo II es un flujo de unidad NAL que contiene, ademas de las unidades NAL VCL y unidades NAL de datos de relleno para todas las unidades de acceso en el flujo de bits, al menos uno de los siguientes: unidades NAL no VCL adicionales distintas de unidades NAL de datos de relleno; y todos los elementos sintacticos leading_zero_8bits, zero_byte, start_coded_prefix_one_3bytes y trailing_zero_8bits que forman una secuencia de bytes desde la secuencia de la unidad NAL.
[0083] Cuando un dispositivo realiza una prueba de conformidad de flujo de bits que determina si un flujo de bits se ajusta a un estandar de codificacion de video, el dispositivo puede seleccionar un punto de funcionamiento del flujo de bits. El dispositivo puede entonces determinar un conjunto de parametros de HRD aplicables al punto de funcionamiento seleccionado. El dispositivo puede usar el conjunto de parametros de HRD aplicable al punto de funcionamiento seleccionado para configurar el comportamiento del HRD. Mas particularmente, el dispositivo puede usar el conjunto aplicable de parametros de HRD para configurar los comportamientos de componentes particulares del HRD, tales como un programador de flujo hipotetico (HSS), la CPB, un proceso de descodificacion, la DPB, etc. Posteriormente, el HSS puede inyectar datos de video codificados del flujo de bits en la CPB del HRD de acuerdo con un programa particular. Ademas, el dispositivo puede invocar un proceso de descodificacion que descodifica los datos de video codificados en la CPB. El proceso de descodificacion puede enviar imagenes descodificadas a la DPB. A medida que el dispositivo mueve datos a traves del HRD, el dispositivo puede determinar si sigue cumpliendose un conjunto particular de restricciones. Por ejemplo, el dispositivo puede determinar si se produce una condicion de sobreflujo o subflujo en la CPB o DPB mientras el HRD esta descodificando el punto de funcionamiento del punto de funcionamiento seleccionado. El dispositivo puede seleccionar y procesar cada punto de funcionamiento del flujo de bits de esta manera. Si ningun punto de funcionamiento del flujo de bits hace que se violen las restricciones, el dispositivo puede determinar que el flujo de bits se ajusta al estandar de codificacion de video.
[0084] Tanto H.264/AVC como HEVC especifican dos tipos de conformidad de descodificador, en especial, la conformidad de descodificador de sincronizacion de salida y la conformidad de descodificador de orden de salida. Un descodificador que alega conformidad con un perfil, grado y nivel especificos, es capaz de descodificar con exito todos los flujos de bits que se ajustan a los requisitos de conformidad de flujo de bits de un estandar de codificacion de video, como HEVC.
[0085] Cuando un dispositivo realiza una prueba de conformidad de descodificador para determinar si un descodificador bajo prueba (DUT) se ajusta a un estandar de codificacion de video, el dispositivo puede proporcionar, tanto al HRD como al DUT, un flujo de bits que se ajusta al estandar de codificacion de video. El HRD puede procesar el flujo de bits de la manera descrita mas arriba con respecto a la prueba de conformidad de flujo de bits. El dispositivo puede determinar que el DUT se ajusta al estandar de codificacion de video si el orden de las imagenes descodificadas emitidas por el DUT coincide con el orden de las imagenes descodificadas emitidas por el HRD. Ademas, el dispositivo puede determinar que el DUT se ajusta al estandar de codificacion de video si el tiempo con el cual el DUT envia imagenes descodificadas coincide con el tiempo con el cual el HRD emite las imagenes descodificadas.
[0086] En los modelos H.264/AVC y HEVC HRD, la descodificacion o eliminacion de CPB pueden basarse en unidad de acceso. Es decir, se supone que el HRD descodifica unidades de acceso completas de una vez y elimina unidades de acceso completas de la CPB. Ademas, en los modelos H.264/AVC y HEVC h Rd , se supone que la descodificacion de imagenes es instantanea. El codificador de video 20 puede indicar, en los mensajes SEI de sincronizacion de imagenes, los tiempos de descodificacion para comenzar la descodificacion de las unidades de acceso. En aplicaciones practicas, si un descodificador de video en conformidad sigue estrictamente los tiempos de descodificacion indicados para iniciar la descodificacion de unidades de acceso, el primer momento posible para emitir una imagen descodificada especifica es igual al momento de descodificacion de esa imagen particular, mas el tiempo necesario para descodificar esa imagen particular. Sin embargo, en el mundo real, el tiempo necesario para descodificar una imagen no puede ser igual a cero.
[0087] Los parametros de HRD pueden controlar diversos aspectos de HRD. En otras palabras, el HRD puede confiar en los parametros de HRD. Los parametros de HRD pueden incluir un retardo inicial de eliminacion de CPB, un tamano de CPB, una velocidad de transferencia de bits, un retardo inicial de salida de la DPB y un tamano de DPB. El codificador de video 20 puede senalar estos parametros de HRD en una estructura sintactica hrd_parameters() especificada en un conjunto de parametros de video (VPS) y/o un conjunto de parametros de secuencia (SPS). Los VPS y/o SPS individuales pueden incluir multiples estructuras sintacticas hrd_parameters() para diferentes conjuntos de parametros de HRD. En algunos ejemplos, el codificador de video 20 puede indicar parametros de HRd en mensajes SEI de periodo de almacenamiento en memoria intermedia o mensajes SEI de sincronizacion de imagenes.
[0088] Un punto de funcionamiento de un flujo de bits esta asociado con un conjunto de identificadores de capa (es decir, un conjunto de valores nuh_reserved_zero_6bits, que tambien se conocen como valores nuh_layer_id) y un identificador temporal. Un punto de funcionamiento puede incluir cada unidad NAL que esta asociada con el punto de funcionamiento. Un punto de funcionamiento puede tener una velocidad de tramas y/o velocidad de transferencia de bits diferente a la de un flujo de bits original. Esto se debe a que el punto de funcionamiento puede no incluir algunas
imageries y/o algunos de los datos del flujo de bits original. Por lo tanto, si el descodificador de video 30 fuera a eliminar datos de la CPB, y/o la DPB a una velocidad particular cuando procesa el flujo de bits original y si el descodificador de video 30 fuera a eliminar datos de la CPB y/o la DPB a la misma velocidad cuando procesa un punto de funcionamiento, el descodificador de video 30 puede eliminar demasiados o muy pocos datos de la CPB y/o la DPB. En consecuencia, el codificador de video 20 puede indicar diferentes conjuntos de parametros de HRD para diferentes puntos de funcionamiento. Por ejemplo, el codificador de video 20 puede incluir, en un VPS, multiples estructuras sintacticas hrd_parameters() que incluyan parametros de HRD para diferentes puntos de funcionamiento.
[0089] La Tabla 2, a continuacion, es una sintaxis de ejemplo para una estructura sintactica hrd_parameters() en HEVC.
TABLA 2 - Parametros de HRD
[0090] En algunos ejemplos, el descodificador de video 30 comprende una pluralidad de nucleos de procesamiento. Cada uno de los nucleos de procesamiento comprende una unidad de procesamiento independiente, tal como un ASIC o un microprocesador. Cada uno de los nucleos de procesamiento puede implementar un descodificador de capa unica. Un descodificador de capa unica es un codificador de video capaz de descodificar unidades NAL que pertenecen a una capa unica de un flujo de bits. En dichos ejemplos, dado que el descodificador de video 30 comprende multiples nucleos de procesamiento, y por lo tanto multiples descodificadores de capa unica, el descodificador de video 30 puede descodificar multiples capas en paralelo. En algunos casos, un nucleo de hardware individual del descodificador de video 30 puede ser capaz de descodificar mas de una capa.
[0091] Diferentes nucleos de procesamiento pueden tener diferentes capacidades. Por ejemplo, diferentes nucleos de procesamiento pueden descodificar datos de video que pertenecen a diferentes perfiles, grados o niveles. Por ejemplo, un primer nucleo de procesamiento del descodificador de video 30 puede procesar datos de video que pertenecen a un primer nivel, pero no a un segundo nivel. En este ejemplo, un segundo nucleo de procesamiento del descodificador 30 de video puede ser capaz de procesar datos de video que pertenecen al primer nivel y al segundo nivel. En general, los nucleos de procesamiento capaces de descodificar datos de video que pertenecen a perfiles, grados y niveles superiores son mas complejos y, por lo tanto, mas costosos que los nucleos de procesamiento que solo pueden descodificar datos de video que pertenecen a perfiles, grados y niveles inferiores. En consecuencia, un fabricante de descodificador de video 30 puede elegir incluir en el descodificador de video 30 nucleos de procesamiento que tengan las capacidades mas bajas adecuadas para manejar una tarea deseada.
[0092] Wang et al., "MV-HEVC/SHVC HLS: On level definition," Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11 17.a Reunion: Valencia, ES, 27 de marzo -4 de abril de 2014, documento n.° JCTVC-Q0145 (en adelante, "JCTVC-Q0145") describe varios problemas relacionados con las definiciones de niveles en SHVC.
[0093] En primer lugar, si se necesitan mas de 4 capas de relacion senal/ruido (SNR) de 720p de resolucion (o un numero equivalente de pixeles luma, por ejemplo, mas capas con capas espaciales y SNR combinadas), debera utilizarse el Nivel 5 o superior. En consecuencia, el valor de CtbSizeY sera igual a 32 o 64 (por elemento e de los limites generales). Para una resolucion como 720p o inferior, esta restriccion no permite el uso de tamanos de bloques de arbol de codificacion mas pequenos, como 16x16, y por lo tanto puede dar como resultado una eficiencia de codificacion inferior a la optima.
[0094] En segundo lugar, si se implementa un descodificador SHVC de una manera que consta de 4 nucleos de descodificadores HEVC de Nivel 3.1, y es capaz de descodificar 4 capas SNR de 720p, segun la definicion de nivel actual, deberia decirse que se ajusta al Nivel 4 o mas. En consecuencia, el descodificador puede necesitar poder descodificar cualquier flujo de bits de Nivel 4. Sin embargo, con solo cambios sintacticos de alto nivel (es decir, sin cambios en los nucleos de hardware), dicho descodificador no podria descodificar un flujo de bits de Nivel 4 de SHVC con 2 capas de SNR de resolucion de 1080p.
[0095] En tercer lugar, si un descodificador SHVC no se implementa reutilizando multiples nucleos de descodificadores HEVC existentes, sino que se implementa de una manera que puede descodificar tanto un flujo de bits HEVC de capa unica de 1080p como un flujo de bits SHVC de dos capas de 720p, de acuerdo con la definicion de nivel actual se etiquetaria como un Nivel 3.1. Sin embargo, entonces falta la expresion de la otra capacidad.
[0096] En cuarto lugar, si se implementa un descodificador SHVC de una manera que consta de 4 nucleos de descodificadores HEVC 3.1 para poder descodificar 4 capas SNR de 720p, segun la definicion de nivel actual, se diria que se ajusta al Nivel 4 o superior. En consecuencia, cada imagen de capa de mejora puede tener mas de 3 filas de elementos y mas de 3 columnas de elementos, por ejemplo, 5 filas de elementos y 5 columnas de elementos, con cada elemento con un ancho de 256 muestras de luma y una altura de 144 muestras de luma. Sin embargo, esto iria mas alla de los limites del Nivel 3.1 y, en consecuencia, los nucleos descodificadores para descodificar las capas de mejora tendrian problemas.
[0097] En quinto lugar, todos los elementos en la subclausula A.4.1 de la memoria descriptiva de borrador de HEVC estan actualmente especificados para ser aplicados a cada capa. Sin embargo, algunos de estos elementos no son directamente aplicables a cada capa. Para el elemento d en el tamano de DPB, el elemento sintactico SPS no se aplica a las capas de mejora. Ademas, la DPB en el SHVC WD6 es un diseno compartido-sub-DPB, por lo que el elemento d no se puede aplicar directamente a cada capa. Para los elementos h e i en el tamano de CPB, para los funcionamientos de CPB especificos del flujo de bits, el parametro no se puede aplicar a cada capa.
[0098] En sexto lugar, se necesitan restricciones especificas del flujo de bits en el tamano de CPB (mediante los puntos h e i en la subclausula A.4.1 de la memoria descriptiva de borrador de HEVC). Sin embargo, los elementos h e i en la subclausula A.4.1 de la memoria descriptiva de borrador de HEVC no pueden aplicarse directamente a nivel de flujo de bits, porque si se aplican directamente, el mismo limite de tamano de CPB para flujos de bits de capa unica tambien seria el limite para flujos de bits de multiples capas. Esto no es escalable a la cantidad de capas y solo permite una baja calidad de imagen cuando hay muchas capas.
[0099] En septimo lugar, las restricciones mediante los elementos b, c, d, g, h, i y j en la subclausula A.4.2 de la memoria descriptiva de borrador de HEVC estan especificadas actualmente para ser especfficas de la capa solamente. Sin embargo, se debe especificar la restriccion especffica de flujo de bits mediante estos elementos, independientemente de si se especifican sus contrapartes especfficas de capa.
[0100] JVTVC-Q0145 propuso un enfoque para definir los niveles y las capacidades del descodificador, asf como otros cambios para resolver los problemas anteriores. El diseno en JCTVC-Q0145 esta asociado con al menos los siguientes problemas. En primer lugar, el diseno no es optimo para los descodificadores SHVC/MV-HEVC, cada uno de los cuales se construye basandose en multiples descodificadores HEVC de capa unica sin cambiar los nucleos de hardware (por ejemplo, sin modificar las capacidades de los nucleos de hardware) donde los multiples descodificadores de capa unica de HEVC tienen diferentes capacidades, por ejemplo, diferentes perfiles, grados o niveles. En segundo lugar, los niveles se pueden definir en terminos de restricciones. MV-HEVC WD8 y SHVC WD6 definen muchas de estas restricciones en terminos de los elementos sintacticos o variables que tienen o no tienen valores particulares al descodificar un flujo de bits. En otras palabras, algunas de las restricciones de nivel (por ejemplo, velocidad de bits y frecuencia de muestreo) se especifican para ser especfficas de flujo de bits. Sin embargo, para habilitar un descodificador HEVC de capa unica para ser parte de un descodificador SHVC/MV-HEVC sin cambiar el nucleo del hardware y descodificar un subconjunto de capas (es decir, una o mas capas, pero no todas las capas de un conjunto de capas de salida), tales restricciones de nivel pueden necesitar ser especfficas para el subconjunto de capas.
[0101] A continuacion, se proporciona una descripcion general de diversas caracterfsticas de acuerdo con diversas tecnicas de esta divulgacion. Algunas implementaciones detalladas de acuerdo con uno o mas ejemplos de esta divulgacion se proporcionan en secciones posteriores de esta divulgacion. Algunas de las caracterfsticas indicadas a continuacion pueden aplicarse independientemente y algunas de las caracterfsticas indicadas a continuacion se pueden aplicar en combinacion como reconocerfa un experto en la materia.
[0102] Una tecnica de ejemplo de esta divulgacion proporciona la senalizacion de uno o mas esquemas de particion de capas para cada conjunto de capas de salida, con cada esquema de particion que contiene un conjunto de particiones disjuntas cuya union forma el conjunto de capas de salida y cada particion que contiene una o mas capas. En otras palabras, cada esquema de particion de una capa de salida especifica una forma diferente de dividir las capas del conjunto de capas de salida en particiones que no se superponen. En algunos ejemplos, las particiones se asocian con conjuntos de capas de salida en lugar de conjuntos de capas.
[0103] En algunos ejemplos, un esquema de particion y una unidad de particion se definen de la forma siguiente: Un conjunto de capas de salida puede tener uno o mas esquemas de particion. Un esquema de particion de un conjunto de capas de salida divide capas en el conjunto de capas de salida en una o mas particiones. Cada capa en un conjunto de capas de salida debe pertenecer exactamente a una particion en un esquema de particion.
[0104] Por lo tanto, en un ejemplo, el codificador de vfdeo 20 genera un flujo de bits que comprende una representacion codificada de datos de vfdeo. Como parte de generar el flujo de bits, el codificador de vfdeo 20 incluye, en el flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion. Para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo especifica un conjunto respectivo de particiones disjuntas cuya union forma un conjunto de capas de salida. En este ejemplo, cada particion respectiva del conjunto respectivo de particiones disjuntas contiene una o mas capas, el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas. Ademas, el codificador de vfdeo 20 emite el flujo de bits.
[0105] En un ejemplo similar, el descodificador de vfdeo 30 descodifica un flujo de bits que comprende una representacion codificada de datos de vfdeo. En este ejemplo, el flujo de bits comprende una pluralidad de capas. Como parte de la descodificacion del flujo de bits en este ejemplo, el descodificador de vfdeo 30 obtiene, a partir del flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion. En algunos ejemplos, el descodificador de vfdeo 30 descodifica cada una de las particiones de un esquema de particion particular usando diferentes nucleos de procesamiento en una pluralidad de nucleos de hardware, siendo el esquema de particion particular uno de los uno o mas esquemas de particion.
[0106] Ademas, en algunos ejemplos, el codificador de vfdeo 20 puede incluir, en un flujo de bits, elementos sintacticos que indican una pluralidad de conjuntos de capas de salida. Para cada conjunto de capas de salida respectivo de la pluralidad de conjuntos de capas de salida, el codificador de vfdeo 20 puede incluir, en el flujo de bits, elementos sintacticos que indican uno o mas esquemas de particion para el conjunto de capas de salida respectivo. En un ejemplo similar, el descodificador de vfdeo 30 puede obtener, a partir del flujo de bits, elementos sintacticos que indican una pluralidad de conjuntos de capas de salida, con la pluralidad de conjuntos de capas de salida que incluye el primer conjunto de capas de salida. En este ejemplo, para cada conjunto de capas de salida respectivo de la pluralidad de conjuntos de capas de salida, el descodificador de vfdeo 30 puede obtener, a partir del flujo de bits, elementos sintacticos que indican uno o mas esquemas de particion para el conjunto de capas de salida respectivo.
[0107] De acuerdo con algunos ejemplos de esta divulgacion, los terminos "esquema de particion" y "unidad de particion" tienen las siguientes definiciones:
esquema de particion: Una division de capas en un conjunto de capas de salida en una o mas particiones de modo que cada capa en el conjunto de capas de salida se incluye exactamente en una particion del esquema de particion y cada particion del esquema de particion contiene una o mas capas.
unidad de particion: Un subconjunto de unidad de acceso que contiene un conjunto de unidades NAL de acuerdo con un esquema de particion.
[0108] Como se indica mas arriba, una extension de VPS puede especificar informacion de PTL respectiva para cada conjunto de capas de salida respectivo. Por ejemplo, la extension VPS puede incluir, para cada conjunto de capas de salida respectivo, un elemento sintactico profile_level_tier_idx para el conjunto de capas de salida respectivo que identifica una estructura sintactica de PTL para el conjunto de capas de salida respectivo. La estructura sintactica de PTL para el conjunto de capas de salida respectivo especifica la informacion de pTl para el conjunto de capas de salida respectivo.
[0109] Debido a que el descodificador de video 30 puede usar la informacion de PTL de un conjunto de capas de salida para determinar si el descodificador de video 30 puede descodificar el conjunto de capas de salida, la informacion de PTL del conjunto de capas de salida especifica tipicamente el perfil, grado y nivel mas bajos necesarios para descodificar el conjunto de capas de salida como un todo. Sin embargo, el perfil, el grado y el nivel de algunas particiones del conjunto de capas de salida pueden ser mas bajos que el perfil, el grado y el nivel del conjunto de capas de salida como un todo. En otras palabras, el perfil, grado y nivel del conjunto de capas de salida puede ser el perfil, grado y nivel mas alto de la particion en el esquema de particion del conjunto de capas de salida, donde cada una de las capas del conjunto de capas de salida pertenece a una particion.
[0110] Por lo tanto, cuando las diferentes particiones de un conjunto de capas de salida tienen informacion de PTL diferente, la informacion de PTL para el conjunto de capas de salida puede no ser suficiente para expresar la diversidad de informacion de PTL de las particiones del conjunto de capas de salida. Una o mas tecnicas de esta divulgacion pueden proporcionar la senalizacion de un perfil, un grado y un nivel para cada particion. Por ejemplo, para cada particion respectiva de cada esquema de particion respectivo senalado en un flujo de bits, el codificador de video 20 puede incluir, en la informacion de flujo de bits, el perfil, grado y nivel (PTL) para la particion respectiva. De forma similar, para cada particion respectiva de cada esquema de particion respectivo senalado en un flujo de bits, el descodificador de video 30 puede obtener, a partir del flujo de bits, un elemento sintactico respectivo (por ejemplo, profile_level_tier_partition_idx) que indica la informacion de PTL respectiva para la particion respectiva.
[0111] En algunos ejemplos, el descodificador de video 30 determina, basandose en la informacion de PTL para las particiones de los esquemas de particion, un esquema de particion del uno o mas esquemas de particion. Ademas, en algunos ejemplos, el esquema de particion se determina basandose en las condiciones de la red que se usa para enviar el flujo de bits al descodificador. El descodificador de video 30 puede descodificar cada particion respectiva del esquema de particion determinante usando un nucleo de hardware respectivo. Cada uno de los nucleos de hardware puede implementar un descodificador de capa unica respectivo. En algunos ejemplos, los nucleos de hardware individuales descodifican mas de una capa (por ejemplo, implementan un descodificador de multiples capas). Ademas, diferentes nucleos de hardware pueden tener diferentes capacidades. Por ejemplo, al menos un primer nucleo de hardware de una pluralidad de nucleos de hardware del descodificador de video 30 puede soportar un perfil, grado o nivel diferente de un segundo nucleo de hardware de la pluralidad de nucleos de hardware del descodificador de video 30. Por lo tanto, en un ejemplo, el descodificador de video 30 puede comprender un primer nucleo de hardware y un segundo nucleo de hardware. En este ejemplo, el primer nucleo de hardware puede implementar un descodificador de nivel 3 (es decir, un descodificador capaz de descodificar HEVC de Nivel 3 e inferior) y el segundo nucleo de hardware puede implementar un descodificador de nivel 2 (es decir, un descodificador capaz de descodificar HEVC de nivel 2 e inferior). En este ejemplo, si la informacion PTL de una primera particion indica que la primera particion puede descodificarse mediante un descodificador de nivel 3 o superior y si la informacion PTL indica que una segunda particion puede descodificarse mediante un descodificador de nivel 2 o superior, el descodificador de video 30 puede usar el primer nucleo de hardware para descodificar la primera particion y puede usar el segundo nucleo de hardware para descodificar la segunda particion. En algunos casos, cuando un descodificador de video de multiples capas que incluye uno o mas nucleos de hardware para descodificar las particiones, y al menos uno de los nucleos del descodificador es conforme a uno de los perfiles escalables (por ejemplo, Escalable Principal o Escalable Principal 10) especificados, puede incluirse la capacidad para realizar un remuestreo o un muestreo superior de imagenes. Esta capacidad de remuestreo puede implementarse en cada nucleo que es capaz de descodificar un perfil escalable, o implementarse como bloque comun en el descodificador de multiples capas.
[0112] Como se describe brevemente mas arriba, el codificador de video 20 puede incluir, en un VPS, elementos sintacticos que identifican conjuntos de capas de salida. Por lo tanto, los conjuntos de capas de salida pueden senalarse en un VPS. En algunos ejemplos, los conjuntos de capas de salida tambien pueden senalarse mediante medios externos. Los medios externos pueden ser algun mecanismo que no sea el flujo de bits de video. Por lo tanto,
un conjunto de capas de salida senalado por un medio externo y que comprende capas de salida de un flujo de bits no se senaliza necesariamente en el flujo de bits.
[0113] De acuerdo con una o mas tecnicas de esta divulgacion, para cada esquema de particion respectivo de cada conjunto de capas de salida, un mensaje de VPS VUI o SEI de un flujo de bits puede identificar un conjunto de parametros de HRD para el esquema de particion respectivo. Por lo tanto, en algunos ejemplos de esta divulgacion, los parametros de HRD para cada esquema de particion para cada conjunto de capas de salida senalado en el VPS o mediante medios externos se senalan en la VUI de VPS o en los mensajes SEI. Debido a que los conjuntos de parametros de HRD se identifican para cada esquema de particion, el descodificador de video 30 u otro dispositivo puede usar los parametros de HRD para el esquema de particion para probar si el flujo de bits es un flujo de bits conforme cuando se divide de acuerdo con el esquema de particion.
[0114] En uno de tales ejemplos, el codificador de video 20 genera un flujo de bits que comprende una representacion codificada de los datos de video. En este ejemplo, el flujo de bits comprende una pluralidad de capas. Como parte de generar el flujo de bits en este ejemplo, el codificador de video 20 incluye, en el flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida. En este ejemplo, el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas. Para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa en el conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo. Ademas, como parte de generar el flujo de bits en este ejemplo, el codificador de video 20 puede incluir, para cada esquema de particion respectivo, en un mensaje SEI en el flujo de bits o VUI en un VPS en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican los conjuntos de parametros de HRD para el esquema de particion respectivo. El codificador de video 20 puede emitir el flujo de bits.
[0115] En un ejemplo similar, un dispositivo de procesamiento de video, tal como el codificador de video 20 o el descodificador de video 30, puede descodificar un flujo de bits que comprende una representacion codificada de los datos de video. En este ejemplo, el flujo de bits comprende una pluralidad de capas. Como parte de la descodificacion del flujo de bits en este ejemplo, el dispositivo de procesamiento de video obtiene, a partir del flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida. Adicionalmente, para cada esquema de particion respectivo, el descodificador de video 30 puede obtener, a partir de un mensaje SEI en el flujo de bits o informacion de usabilidad de video (VUI) en un VPS en el flujo de bits, un conjunto respectivo de conjuntos de parametros de HRD para el esquema de particion respectivo. Para cada particion respectiva del esquema de particion respectivo, el dispositivo de procesamiento de video prueba, basandose en los parametros de HRD para el esquema de particion respectivo, la particion respectiva en cuanto a conformidad con un estandar de codificacion de video.
[0116] En al menos algunos documentos estandar, como SHVC WD6, MV-HEVC WD8 y la memoria descriptiva de borrador de HEVC, los perfiles, grados y niveles se definen en terminos de restricciones y limites de nivel. Un limite de nivel puede especificar un limite en el valor de un elemento sintactico o variable. Una restriccion puede especificar un requisito o restriccion. Por ejemplo, JCTV3V-H1002 define un perfil "estereo principal" e incluye, entre otras restricciones, una restriccion que requiere que el flujo de bits contenga una capa con nuh_layer_id igual a i para la cual ViewScalExtLayerFlag[i] es igual a 1. Muchos de los limites y restricciones de nivel especificados en SHVC WD6, MV-HEVC WD8 y la memoria descriptiva de borrador de HEVC son aplicables a los flujos de bits. Por ejemplo, el parrafo G.11.1.2 de MV-HEVC WD8 describe el perfil "estereo principal" y especifica, con enfasis anadido, "Los flu jos de b its conforme al perfil estereo principal deberan cumplir las siguientes restricciones..."
[0117] Sin embargo, en algunos ejemplos de esta divulgacion, diferentes particiones de flujo de bits pueden tener diferente informacion de PTL. Para soportar diferentes particiones de flujo de bits que tienen diferente informacion de PTL, las definiciones de los limites de nivel y las restricciones pueden expresarse en terminos de particiones en lugar de flujos de bits. Asi, de acuerdo con algunas tecnicas de ejemplo de esta divulgacion, todos los limites y restricciones de nivel, excepto los tres de ancho de la imagen, altura de la imagen y tamano de la memoria intermedia de imagenes subdescodificadas (DPB) que son especificos de cada capa, se especifican como especifico de particion. Por ejemplo, todos los limites y restricciones de nivel de un perfil, grado o nivel, excepto los limites y restricciones del ancho de la imagen, la altura de la imagen y el tamano de sub-DPB, se definen como especificos de la particion.
[0118] Como se indica mas arriba, las restricciones de tamano de sub-DPB son especificas de cada capa. Para elaborar, la DPB puede dividirse virtualmente en sub-DPB. Las imagenes de cada capa se almacenan en una sub-DPB independiente y cada sub-DPB contiene una capa. Por ejemplo, un conjunto de capas de salida que contiene dos capas, la DPB puede dividirse en dos sub-DPB, con la primera sub-DPB que contiene la primera capa y la segunda sub-DPB que contiene la segunda capa. En lugar de especificar el tamano de DPB como un total, el tamano de sub-DPB (el requerido para cada capa) se especifica en el flujo de bits. En dichos ejemplos, los limites de nivel ponen indirectamente algunas restricciones en el tamano general de DPB.
[0119] De acuerdo con una o mas tecnicas de esta divulgacion, se introducen una o mas restricciones adicionales. Una posible restriccion, por ejemplo, es que, para cada conjunto de capas de salida, solo habra un esquema de
particion que contenga solo una particion y esa particion contiene todas las capas en el conjunto de capas de salida. Cada esquema de particion esta dando flexibilidad de un programa de entregas, es decir, que capas se pueden entregar juntas. Cuando todas las capas estan en una particion, la unica forma en que puede tener diferentes programas de entregas es teniendo diferentes velocidades de transmision de bits, por ejemplo. Como resultado, esta restriccion ayudaria a reducir alguna sintaxis adicional.
[0120] En otra restriccion de ejemplo, la suma de los tamanos de imagen de una particion esta restringida a ser menor que las muestras de luma maximas especificadas para el nivel de la particion. Esta restriccion puede asegurar que, si una particion con multiples capas es descodificada por un unico nucleo, no se exceden los tamanos generales de DPB del nucleo actual. Ademas, esta restriccion puede asegurar que el tamano total de las imagenes de todas las capas no exceda el tamano de la imagen de una capa que puede haber sido descodificable por el descodificador de capa unica. Esta restriccion puede permitir una extension mas facil de nucleos de capa unica para propositos de multiples capas (por ejemplo, sin tener que agregar potencialmente memoria adicional).
[0121] En otra restriccion de ejemplo, los tripletes senalados de perfil, grado y nivel asociados con el conjunto de capas de salida tambien estan asociados con la particion que contiene todas las capas en el conjunto de capas de salida.
[0122] Ademas, de acuerdo con una tecnica de ejemplo de esta divulgacion, una capacidad de descodificacion de un descodificador se expresa como conforme a una lista de tripletes de perfil, grado y nivel. En algunos ejemplos, el numero de entradas en la lista indica el numero de descodificadores de capa unica utilizados para construir el descodificador de multiples capas, y cada triplete de perfil, grado y nivel indica el perfil, grado y nivel de uno de los descodificadores de capa unica.
[0123] Asi, en un ejemplo, un dispositivo de procesamiento de video, como el descodificador de video 30 u otro dispositivo, puede determinar, basandose en una lista de entradas triples, si un descodificador de video de multiples capas (por ejemplo, descodificador de video 30) es capaz de descodificar una flujo de bits que comprende una representacion codificada de los datos de video de multiples capas. El numero de entradas triples en la lista puede ser menor o igual que una cantidad de descodificadores de capa unica en el descodificador de video de multiples capas. Cada entrada triple respectiva en la lista de entradas triples indica un perfil, un grado y un nivel para un descodificador de capa unica respectivo en el descodificador de video de multiples capas. En algunos ejemplos, el dispositivo de procesamiento de video puede determinar que el descodificador de multiples capas es capaz de descodificar el flujo de bits determinando que el flujo de bits especifica un esquema de particion donde la informacion PTL de cada particion del esquema de particion indica que la particion puede descodificarse al menos uno de los descodificadores de capa unica. Basandose en que el descodificador de video de multiples capas es capaz de descodificar el flujo de bits, el descodificador de video de multiples capas puede descodificar el flujo de bits.
[0124] En algunos ejemplos de esta divulgacion, se requiere un descodificador que se ajuste a una lista de tripletes de perfil, grado y nivel para poder descodificar cualquier conjunto de capas de salida conformes para el que haya al menos un esquema de particion que satisfaga la siguiente condicion: para cada particion del esquema de particion, uno de los descodificadores de capa unica del descodificador de multiples capas se puede asignar para descodificar la particion. Cuando a un descodificador de capa unica se le asigna una particion para descodificacion, el descodificador de capa unica puede descodificar la particion. En algunos ejemplos, cada una de las particiones puede asignarse a uno diferente de los descodificadores de capa unica. En otros ejemplos, dos o mas particiones pueden asignarse a uno solo de los descodificadores de capa unica. Ademas, en algunos ejemplos, el numero de tripletes PTL anunciados por el descodificador y su asociacion de cada triplete a un nucleo es solo una posibilidad. En dichos ejemplos, el descodificador puede tener cualquier implementacion interna (por ejemplo, solo un supernucleo) pero todavia publicitar multiples tripletes PTL.
[0125] Por lo tanto, en algunos ejemplos, un dispositivo de procesamiento de video, tal como un descodificador de video 30 u otro dispositivo, puede obtener, a partir de un flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion. Para determinar si un descodificador de video de multiples capas, como el descodificador de video 30, es capaz de descodificar el flujo de bits, el dispositivo de procesamiento de video puede determinar, basandose en que se cumpla una condicion, que el descodificador de video de multiples capas es capaz de descodificar el flujo de bits. En este ejemplo, la condicion se satisface basandose en que existe un esquema de particion adecuado en el uno o mas esquemas de particion. Para cada particion respectiva del esquema de particion adecuado, se puede asignar uno de los descodificadores de capa unica del descodificador de video de multiples capas para descodificar la particion respectiva.
[0126] De acuerdo con otras tecnicas de ejemplo de esta divulgacion, las pruebas de conformidad de flujo de bits se especifican para probar la conformidad de cada particion, de forma que se supone que las imagenes descodificadas y otra informacion necesaria para todas las capas de referencia directas o indirectas de las capas en la particion estan disponibles de manera similar a la especificacion actual en las especificaciones recientes de SHVC/MV-HEVC para la capa base cuando se proporciona externamente.
[0127] En algunos ejemplos, se definen las pruebas de conformidad para una particion de un flujo de bits, y la conformidad del flujo de bits se define basandose en la conformidad de todas las particiones de cada esquema de particion especificado para el flujo de bits. En algunos ejemplos, cuando se selecciona una particion para la prueba, la descodificacion de las otras particiones en el esquema de particion respectivo se considera descodificada por un HRD de acuerdo con los parametros especificados para esas particiones.
[0128] La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de implementacion de un descodificador de video 30, que comprende una pluralidad de descodificadores de capa unica, de acuerdo con una tecnica de esta divulgacion. En el ejemplo de la FIG. 2, el descodificador de video 30 comprende los descodificadores de capa unica 50A-50D (colectivamente, "descodificadores de capa unica 50"). Cada uno de los descodificadores de capa unica 50 puede implementarse mediante un nucleo de hardware independiente respectivo. Distintos de los descodificadores de capa unica 50 pueden tener capacidades diferentes. Por ejemplo, diferentes descodificadores de capa unica 50 pueden descodificar flujos de bits que se ajustan a diferentes perfiles, grados y niveles. En algunos ejemplos, el descodificador de video 30 puede determinar, basandose en la informacion de PTL para las particiones de los esquemas de particion, un esquema de particion particular a partir de uno o mas esquemas de particion. El descodificador de video 30 puede descodificar cada particion respectiva del esquema de particion particular usando un descodificador de capa unica 50 respectivo.
[0129] La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de codificador de video 20 que puede implementar las tecnicas de esta divulgacion. La FIG. 3 se proporciona con fines de explicacion y no deberia considerarse limitadora de las tecnicas tales como las ampliamente ejemplificadas y descritas en esta divulgacion. Con fines de explicacion, esta divulgacion describe el codificador de video 20 en el contexto de la codificacion HEVC. Sin embargo, las tecnicas de esta divulgacion pueden ser aplicables a otros estandares o procedimientos de codificacion.
[0130] En el ejemplo de la FIG. 3, el codificador de video 20 incluye una unidad de procesamiento de prediccion 200, una unidad de generacion residual 202, una unidad de procesamiento de transformacion 204, una unidad de cuantificacion 206, una unidad de cuantificacion inversa 208, una unidad de procesamiento de transformacion inversa 210, una unidad de reconstruccion 212, una unidad de filtro 214, una memoria intermedia de imagenes descodificadas 216, y una unidad de codificacion por entropia 218. La unidad de procesamiento de prediccion 200 incluye una unidad de procesamiento de interprediccion 220 y una unidad de procesamiento de intraprediccion 226. La unidad de procesamiento de interprediccion 220 incluye una unidad de estimacion de movimiento 222 y una unidad de compensacion de movimiento 224. En otros ejemplos, el codificador de video 20 puede incluir mas, menos o diferentes componentes funcionales.
[0131] El codificador de video 20 puede recibir datos de video. La memoria de datos de video 201 puede almacenar datos de video a ser codificados por los componentes del codificador de video 20. Los datos de video almacenados en la memoria de datos de video 201 se pueden obtener, por ejemplo, del origen de video 18. La memoria intermedia de imagenes descodificadas 216 puede ser una memoria de imagenes de referencia que almacena datos de video de referencia para su uso en la codificacion de datos de video mediante el codificador de video 20, por ejemplo, en modos de intracodificacion o intercodificacion. La memoria de datos de video 201 y la memoria intermedia de imagenes descodificadas 216 pueden estar formadas por cualquiera entre varios dispositivos de memoria, tales como memoria dinamica de acceso aleatorio (DRAM), incluyendo DRAM sincrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) u otros tipos de dispositivos de memoria. La memoria de datos de video 201 y la memoria intermedia de imagenes descodificadas 216 pueden proporcionarse mediante el mismo dispositivo de memoria o dispositivos de memoria independientes. En varios ejemplos, la memoria de datos de video 201 puede estar en un chip con otros componentes del codificador de video 20, o fuera de chip con respecto a esos componentes.
[0132] El codificador de video 20 puede codificar cada CTU en un fragmento de una imagen de los datos de video. Cada una de las CTU puede tener bloques de arbol de codificacion (CTB) de luma de igual tamano y los CTB correspondientes de la imagen. Como parte de la codificacion de una CTU, la unidad de procesamiento de prediccion 200 puede realizar la particion de arbol cuadruple para dividir los CTB de la CTU en bloques progresivamente mas pequenos. Los bloques mas pequenos pueden ser bloques de codificacion de CU. Por ejemplo, la unidad de procesamiento de prediccion 200 puede dividir un CTB de una CTU en cuatro subbloques de igual tamano, dividir uno o mas de los subbloques en cuatro sub-subbloques de igual tamano, etc.
[0133] El codificador de video 20 puede codificar las CU de una CTU para generar representaciones codificadas de las CU (es decir, CU codificadas). Como parte de la codificacion de una CU, la unidad de procesamiento de prediccion 200 puede dividir los bloques de codificacion de la CU entre una o mas PU de la CU. Por lo tanto, cada PU puede tener un bloque de prediccion de luma y los correspondientes bloques de prediccion de croma. El codificador de video 20 y el descodificador de video 30 pueden dar soporte a las PU de varios tamanos. Como se indica mas arriba, el tamano de una CU puede referirse al tamano del bloque de codificacion de luma de la CU y el tamano de una PU puede referirse al tamano de un bloque de prediccion de luma de la PU. Suponiendo que el tamano de una CU particular sea 2Nx2N, el codificador de video 20 y el descodificador de video 30 pueden dar soporte a tamanos de PU de 2Nx2N o NxN para la intraprediccion, y a tamanos de PU simetricas de 2Nx2N, 2NxN, Nx2N, NxN o similares para
la interprediccion. El codificador de video 20 y el descodificador de video 30 tambien pueden dar soporte a la particion asimetrica para tamanos de PU de 2NxnU, 2NxnD, nLx2N y nRx2N, para la interprediccion.
[0134] La unidad de procesamiento de interprediccion 220 puede generar datos predictivos para una PU realizando una interprediccion en cada PU de una CU. Los datos predictivos para la PU pueden incluir bloques predictivos de la PU e informacion de movimiento para la PU. La unidad de procesamiento de interprediccion 220 puede realizar diferentes operaciones para una PU de una CU dependiendo de si la PU esta en un fragmento I, un fragmento P o un fragmento B. En un fragmento en I, todas las PU son intrapredichas. Por lo tanto, si la PU esta en un fragmento I, la unidad de procesamiento de interprediccion 220 no realiza interprediccion en la PU.
[0135] Si una PU esta en un fragmento P, la unidad de estimacion de movimiento 222 puede buscar las imagenes de referencia en una lista de imagenes de referencia (por ejemplo, “RefPicListO”) para una region de referencia para la PU. La region de referencia para la PU puede ser una region, dentro de una imagen de referencia, que contiene bloques de muestra que se corresponden mas estrictamente con los bloques de muestra de la PU. La unidad de estimacion de movimiento 222 puede generar un indice de referencia que indique una posicion en RefPicListO de la imagen de referencia que contiene la region de referencia para la PU. Ademas, la unidad de estimacion de movimiento 222 puede generar un vector de movimiento que indica un desplazamiento espacial entre un bloque de codificacion de la PU y una ubicacion de referencia asociada con la region de referencia. Por ejemplo, el vector de movimiento puede ser un vector bidimensional que proporciona una desviacion respecto a las coordenadas en la imagen actual a las coordenadas en una imagen de referencia. La unidad de estimacion de movimiento 222 puede emitir el indice de referencia y el vector de movimiento como la informacion de movimiento de la PU. La unidad de compensacion de movimiento 224 puede generar los bloques predictivos de la PU basandose en muestras reales o interpoladas en la ubicacion de referencia indicada por el vector de movimiento de la PU.
[0136] Si una PU esta en un fragmento B, la unidad de estimacion de movimiento 222 puede llevar a cabo prediccion unidireccional o prediccion bidireccional para la PU. Para realizar prediccion unidireccional para la PU, la unidad de estimacion de movimiento 222 puede buscar las imagenes de referencia de RefPicListO o una segunda lista de imagenes de referencia (“RefPicListl”) para una region de referencia para la PU. La unidad de estimacion de movimiento 222 puede emitir, como la informacion de movimiento de la PU, un indice de referencia que indica una posicion en RefPicList0 o RefPicListl de la imagen de referencia que contiene la region de referencia, un vector de movimiento que indica un desplazamiento espacial entre un bloque de prediccion de la PU y una ubicacion de referencia asociada con la region de referencia, y uno o mas indicadores de direccion de prediccion que indican si la imagen de referencia esta en RefPicListO or RefPicListl. La unidad de compensacion de movimiento 224 puede generar los bloques predictivos de la PU basandose al menos en parte en muestras reales o interpoladas en la ubicacion de referencia indicada por el vector de movimiento de la PU.
[0137] Para realizar interprediccion bidireccional para una PU, la unidad de estimacion de movimiento 222 puede buscar las imagenes de referencia en RefPicListO para una region de referencia para la PU y tambien puede buscar las imagenes de referencia en RefPicListl para otra region de referencia para la PU. La unidad de estimacion de movimiento 222 puede generar indices de referencia que indiquen posiciones en RefPicListO y RefPicListl de las imagenes de referencia que contienen las regiones de referencia. Ademas, la unidad de estimacion de movimiento 222 puede generar vectores de movimiento que indican desplazamientos espaciales entre las ubicaciones de referencia asociadas con las regiones de referencia y un bloque de prediccion de la PU. La informacion de movimiento de la PU puede incluir los indices de referencia y los vectores de movimiento de la PU. La unidad de compensacion de movimiento 224 puede generar los bloques predictivos de la PU basandose al menos en parte en muestras reales o interpoladas en las ubicaciones de referencia indicadas por los vectores de movimiento de la PU.
[0138] La unidad de procesamiento de intraprediccion 226 puede generar datos predictivos para una PU realizando una intraprediccion en la PU. Los datos predictivos para la PU pueden incluir bloques predictivos para la PU y varios elementos sintacticos. La unidad de procesamiento de intraprediccion 226 puede realizar la intraprediccion en las PU en fragmentos I, fragmentos P y fragmentos B.
[0139] Para realizar la intraprediccion en una PU, la unidad de procesamiento de intraprediccion 226 puede usar multiples modos de intraprediccion para generar multiples conjuntos de bloques predictivos para la PU. Cuando se realiza la intraprediccion usando un modo particular de intraprediccion, la unidad de procesamiento de intraprediccion 226 puede generar bloques predictivos para la PU usando un conjunto particular de muestras de bloques vecinos. Los bloques vecinos pueden estar arriba, arriba y a la derecha, arriba y a la izquierda, o a la izquierda de los bloques de prediccion de la PU, suponiendo un orden de codificacion de izquierda a derecha, de arriba a abajo, para las PU, CU y CTU. La unidad de procesamiento de intraprediccion 226 puede usar varios numeros de modos de intraprediccion, por ejemplo, 33 modos de intraprediccion direccional. En algunos ejemplos, el numero de modos de intraprediccion puede depender del tamano de los bloques de prediccion de la PU.
[0140] La unidad de procesamiento de prediccion 200 puede seleccionar los datos predictivos para las PU de una CU entre los datos predictivos generados por la unidad de procesamiento de interprediccion 220 para las PU o los datos predictivos generados por la unidad de procesamiento de intraprediccion 226 para las PU. En algunos ejemplos, la unidad de procesamiento de prediccion 200 selecciona los datos predictivos para las PU de la CU basandose en
las metricas de velocidad/distorsion de los conjuntos de datos predictivos. Los bloques predictivos de los datos predictivos seleccionados pueden denominarse en el presente documento bloques predictivos seleccionados.
[0141] La unidad de generacion residual 202 puede generar, basandose en los bloques de codificacion de una CU y los bloques predictivos seleccionados de las PU de la CU, boques residuales de la CU. Por ejemplo, la unidad de generacion residual 202 puede generar, basandose en los bloques de codificacion de luma, Cb y Cr de una CU y los bloques de luma, Cb y Cr predictivos seleccionados de las PU de la CU, bloques residuales de luma, Cb y Cr de la CU. En algunos ejemplos, la unidad de generacion residual 202 puede generar los bloques residuales de la CU de manera que cada muestra en los bloques residuales tenga un valor igual a una diferencia entre una muestra en un bloque de codificacion de la CU y una muestra correspondiente en un correspondiente bloque predictivo seleccionado de una PU de la CU.
[0142] La unidad de procesamiento de transformacion 204 puede realizar particion de arbol cuadruple para dividir los bloques residuales de una CU en bloques de transformacion de las TU de la CU. De este modo, una TU puede tener un bloque de transformacion de luma y dos bloques de transformacion de croma correspondientes. Los tamanos y las posiciones de los bloques de transformacion de las TU de una CU pueden o no basarse en los tamanos y posiciones de los bloques de prediccion de las PU de la CU.
[0143] La unidad de procesamiento de transformacion 204 puede generar bloques de coeficientes de transformacion para cada TU de una CU aplicando una o mas transformaciones a los bloques de transformacion de la TU. La unidad de procesamiento de transformacion 204 puede aplicar varias transformaciones a un bloque de transformacion de una TU. Por ejemplo, la unidad de procesamiento de transformacion 204 puede aplicar una transformacion de coseno discreta (DCT), una transformacion direccional o una transformacion conceptualmente similar al bloque de transformacion. En algunos ejemplos, la unidad de procesamiento de transformacion 204 no aplica transformaciones a un bloque de transformacion. En dichos ejemplos, el bloque de transformacion puede tratarse como un bloque de coeficientes de transformacion.
[0144] La unidad de cuantificacion 206 puede cuantificar los coeficientes de transformacion en un bloque de coeficientes. El proceso de cuantificacion puede reducir la profundidad de bits de algunos o a la totalidad de los coeficientes de transformacion. Por ejemplo, un coeficiente de transformacion de n bits puede redondearse hacia abajo hasta un coeficiente de transformacion de m bits durante la cuantificacion, donde n es mayor que m. La unidad de cuantificacion 206 puede cuantificar un bloque de coeficientes de una TU de una CU basandose en un valor de parametro de cuantificacion (QP) para la CU. El codificador de video 20 puede ajustar el grado de cuantificacion aplicado a los bloques de coeficientes de una CU, ajustando el valor del QP de la CU. La cuantificacion puede introducir perdida de informacion, por lo que los coeficientes de transformacion cuantificados pueden tener una precision inferior a los originales.
[0145] La unidad de cuantificacion inversa 208 y la unidad de procesamiento de transformacion inversa 210 pueden aplicar la cuantificacion inversa y transformaciones inversas al bloque de coeficientes, respectivamente, para reconstruir un bloque residual a partir del bloque de coeficientes. La unidad de reconstruccion 212 puede anadir el bloque residual reconstruido a las muestras correspondientes de uno o mas bloques predictivos generados por la unidad de procesamiento de prediccion 200 para producir un bloque de transformacion reconstruido de una TU. Mediante la reconstruccion de bloques de transformacion para cada TU de una CU de esta manera, el codificador de video 20 puede reconstruir los bloques de codificacion de la CU.
[0146] La unidad de filtro 214 puede realizar una o mas operaciones de desbloqueo para reducir las distorsiones de bloqueo en los bloques de codificacion de una CU. La memoria intermedia de imagenes descodificadas 216 puede almacenar los bloques de codificacion reconstruidos despues de que la unidad de filtro 214 realice las una o mas operaciones de desbloqueo en los bloques de codificacion reconstruidos. La unidad de procesamiento de interprediccion 220 puede utilizar una imagen de referencia que contiene los bloques de codificacion reconstruidos para realizar la interprediccion en las PU de otras imagenes. Ademas, la unidad de procesamiento de intraprediccion 226 puede usar bloques de codificacion reconstruidos en la memoria intermedia de imagenes descodificadas 216 para realizar intraprediccion en otras PU en la misma imagen que la CU.
[0147] La unidad de codificacion por entropia 218 puede recibir datos desde otros componentes funcionales del codificador de video 20. Por ejemplo, la unidad de codificacion por entropia 218 puede recibir bloques de coeficientes desde la unidad de cuantificacion 206 y puede recibir elementos sintacticos desde la unidad de procesamiento de prediccion 200. La unidad de codificacion por entropia 218 puede realizar una o mas operaciones de codificacion por entropia en los datos para generar datos codificados por entropia. Por ejemplo, la unidad de codificacion por entropia 218 puede realizar una operacion de codificacion de longitud variable adaptable al contexto (CAVLC), una operacion de CABAC, una operacion de codificacion de longitud variable a variable (V2V), una operacion de codificacion aritmetica binaria adaptable al contexto basada en sintaxis (SBAC), una operacion de codificacion por entropia de particion de rango de probabilidad (PIPE), una operacion de codificacion de Golomb exponencial u otro tipo de operacion de codificacion por entropia en los datos. El codificador de video 20 puede emitir un flujo de bits que incluye datos codificados por entropia, generados por la unidad de codificacion por entropia 218.
[0148] De acuerdo con algunos ejemplos de esta divulgacion, la unidad de codificacion de entropia 218 puede incluir, en el flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion. Para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo especifica un conjunto respectivo de particiones disjuntas cuya union forma un conjunto de capas de salida, en el que cada particion respectiva del conjunto respectivo de particiones disjuntas contiene una o mas capas, el conjunto de capas de salida puede consistir en todas las capas de la pluralidad de capas o un subconjunto apropiado de la pluralidad de capas.
[0149] La FIG. 4 es un diagrama de bloques que ilustra un ejemplo de descodificador de video 30 que puede implementar las tecnicas de esta divulgacion. La FlG. 4 se proporciona con fines de explicacion y no se limita a las tecnicas como las ampliamente ejemplificadas y descritas en esta divulgacion. Con fines de explicacion, esta divulgacion describe el descodificador de video 30 en el contexto de la codificacion HEVC. Sin embargo, las tecnicas de esta divulgacion pueden ser aplicables a otros estandares o procedimientos de codificacion.
[0150] En el ejemplo de la FIG. 4, el descodificador de video 30 incluye una unidad de descodificacion por entropia 250, una unidad de procesamiento de prediccion 252, una unidad de cuantificacion inversa 254, una unidad de procesamiento de transformacion inversa 256, una unidad de reconstruccion 258, una unidad de filtro 260 y una memoria intermedia de imagenes descodificadas 262. La unidad de procesamiento de prediccion 252 incluye una unidad de compensacion de movimiento 264 y la unidad de procesamiento de intraprediccion 266. En otros ejemplos, el descodificador de video 30 puede incluir mas, menos o diferentes componentes funcionales.
[0151] Una memoria intermedia de imagenes codificadas (CPB) 251 puede recibir y almacenar datos de video codificados (por ejemplo, unidades NAL) de un flujo de bits. Los datos de video almacenados en la CPB 151 pueden obtenerse, por ejemplo, del medio legible por ordenador 16, por ejemplo, desde una fuente de video local, tal como una camara, mediante comunicacion de datos de video por red alambrica o inalambrica, o accediendo a medios de almacenamiento de datos fisicos. La CPB 151 puede formar una memoria de datos de video que almacena datos de video codificados a partir de un flujo de bits de video codificado. La memoria intermedia de imagenes descodificadas 162 puede ser una memoria de imagenes de referencia que almacena datos de video de referencia para usar en la descodificacion de datos de video mediante el descodificador de video 30, por ejemplo, en modos de intracodificacion o de intercodificacion. La CPB 151 y la memoria intermedia de imagenes descodificadas 162 pueden estar formadas por cualquiera entre varios dispositivos de memoria, tales como memoria dinamica de acceso aleatorio (DRAM), incluyendo DRAM sincrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) u otros tipos de dispositivos de memoria. La CPB 151 y la memoria intermedia de imagenes descodificadas 162 pueden proporcionarse mediante el mismo dispositivo de memoria o dispositivos de memoria independientes. En diversos ejemplos, la CPB 151 puede estar en un chip con otros componentes del descodificador de video 30, o fuera de chip con respecto a esos componentes.
[0152] La unidad de descodificacion por entropia 250 puede recibir unidades NAL de la CPB 251 y analizar las unidades NAL para obtener elementos sintacticos a partir del flujo de bits. La unidad de descodificacion por entropia 250 puede descodificar por entropia elementos sintacticos codificados por entropia en las unidades NAL. La unidad de procesamiento de prediccion 252, la unidad de cuantificacion inversa 254, la unidad de procesamiento de transformacion inversa 256, la unidad de reconstruccion 258 y la unidad de filtro 260 pueden generar datos de video descodificados basandose en los elementos sintacticos obtenidos a partir del flujo de bits.
[0153] Por ejemplo, la unidad de descodificacion de entropia 250 puede obtener, a partir del flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion. La unidad de procesamiento de prediccion 252, la unidad de cuantificacion inversa 254, la unidad de procesamiento de transformacion inversa 256, la unidad de reconstruccion 258 y la unidad de filtro 260 pueden descodificar las particiones de un esquema de particion particular. En algunos ejemplos, para cada esquema de particion respectivo del uno o mas esquemas de particion, la unidad de descodificacion de entropia 250 obtiene, a partir de un mensaje SEI en el flujo de bits o VUI en un VPS en el flujo de bits, un conjunto respectivo de conjuntos de parametros de HRD para el respectivo esquema de particion. El descodificador de video 30 puede probar, basandose en los parametros de HRD para el uno o mas esquemas de particion, cada particion de cada uno de uno o mas esquemas de particion en cuanto a conformidad con un estandar de codificacion de video.
[0154] Las unidades NAL del flujo de bits pueden incluir unidades NAL de fragmentos codificados. Como parte de la descodificacion del flujo de bits, la unidad de descodificacion por entropia 250 puede descodificar por entropia elementos sintacticos de las unidades NAL de fragmentos codificados. Cada uno de los fragmentos codificados puede incluir una cabecera de fragmento y datos de fragmento. La cabecera de fragmento puede contener elementos sintacticos pertenecientes a un fragmento.
[0155] Ademas de obtener elementos sintacticos del flujo de bits, el descodificador de video 30 puede realizar una operacion de descodificacion en una CU. Realizando la operacion de descodificacion en una CU, el descodificador de video 30 puede reconstruir bloques de codificacion de la CU.
[0156] Como parte de la realizacion de una operacion de descodificacion en una CU, la unidad de cuantificacion inversa 254 puede cuantificar de forma inversa, es decir, descuantificar, los bloques de coeficientes de las TU de la
CU. La unidad de cuantificacion inversa 254 puede utilizar un valor de QP para la CU de la TU para determinar un grado de cuantificacion y, asimismo, un grado de cuantificacion inversa, para aplicar por parte de la unidad de cuantificacion inversa 254. Es decir, la razon de compresion, es decir, la razon entre el numero de bits utilizados para representar la secuencia original y la comprimida, puede controlarse ajustando el valor del QP utilizado al cuantificar los coeficientes de transformacion. La razon de compresion tambien puede depender del procedimiento de codificacion por entropia empleado.
[0157] Despues de que la unidad de cuantificacion inversa 254 cuantifica inversamente un bloque de coeficientes, la unidad de procesamiento de transformacion inversa 256 puede aplicar una o mas transformaciones inversas al bloque de coeficientes para generar un bloque de muestras residual para la TU. Por ejemplo, la unidad de procesamiento de transformacion inversa 256 puede aplicar una DCT inversa, una transformacion entera inversa, una transformacion de Karhunen-Loeve (KLT) inversa, una transformacion de rotacion inversa, una transformacion direccional inversa u otra transformacion inversa al bloque de coeficientes.
[0158] Si se codifica una PU usando la intraprediccion, la unidad de procesamiento de intraprediccion 266 puede realizar la intraprediccion para generar bloques predictivos para la PU. Por ejemplo, la unidad de procesamiento de intraprediccion 266 puede realizar una intraprediccion para generar bloques predictivos de luma, Cb y Cr para la PU. La unidad de procesamiento de intraprediccion 266 puede usar un modo de intraprediccion para generar los bloques predictivos para la PU basandose en los bloques de prediccion de PU espacialmente vecinos. La unidad de procesamiento de intraprediccion 266 puede determinar el modo de intraprediccion para la PU basandose en uno o mas elementos sintacticos obtenidos a partir del flujo de bits.
[0159] La unidad de procesamiento de prediccion 252 puede construir una primera lista de imagenes de referencia (RefPicListO) y una segunda lista de imagenes de referencia (RefPicListl) basandose en elementos sintacticos extraidos del flujo de bits. Ademas, si se codifica una PU usando la interprediccion, la unidad de descodificacion por entropia 250 puede obtener informacion de movimiento para la PU. La unidad de compensacion de movimiento 264 puede determinar, basandose en la informacion de movimiento de la PU, una o mas regiones de referencia para la PU. La unidad de compensacion de movimiento 264 puede generar, basandose en muestras en los uno o mas bloques de referencia para la PU, bloques predictivos para la PU. Por ejemplo, la unidad de compensacion de movimiento 264 puede generar, basandose en muestras de los uno o mas bloques de referencia para la PU, bloques predictivos de luma, Cb y Cr para la PU.
[0160] La unidad de reconstruccion 258 puede usar los valores residuales de los bloques de transformacion de las TU de una CU y los bloques predictivos de las PU de la CU para reconstruir los bloques de codificacion de la CU. Por ejemplo, la unidad de reconstruccion 258 puede utilizar valores residuales de los bloques de transformacion de luma, Cb y Cr de las TU de una CU y los bloques predictivos de luma, Cb y Cr de las PU de la CU para reconstruir los bloques de codificacion de luma, Cb y Cr de la CU. Por ejemplo, la unidad de reconstruccion 258 puede agregar muestras de los bloques de transformacion a las muestras correspondientes de los bloques de predictivos para reconstruir los bloques de codificacion de la CU.
[0161] La unidad de filtro 260 puede realizar una operacion de desbloqueo para reducir las distorsiones de bloqueo asociadas con los bloques de codificacion de la CU. El descodificador de video 30 puede almacenar los bloques de codificacion de la CU en la memoria intermedia de imagenes descodificadas 262. La memoria intermedia de imagenes descodificadas 262 puede proporcionar imagenes de referencia para la posterior compensacion de movimiento, la intraprediccion y la presentacion en un dispositivo de visualizacion, tal como el dispositivo de visualizacion 32 de la FIG. 1. Por ejemplo, el descodificador de video 30 puede realizar, basandose en los bloques de la memoria intermedia de imagenes descodificadas 262, operaciones de intraprediccion o de interprediccion en las PU de otras CU. De esta forma, el descodificador de video 30 puede obtener, a partir del flujo de bits, los niveles de coeficientes de transformacion de un bloque de coeficientes, cuantificar inversamente los niveles de coeficientes de transformacion, aplicar una transformacion a los niveles de coeficientes de transformacion para generar un bloque de transformacion, generar, basandose al menos en parte en el bloque de transformacion, un bloque de codificacion, y emitir el bloque de codificacion para visualizar.
[0162] Las siguientes secciones de esta divulgacion describen algunos detalles de implementacion de algunas de las tecnicas de ejemplo de esta divulgacion descritas mas arriba. El siguiente texto muestra los cambios para implementar una o mas tecnicas de esta divulgacion. El texto subrayado indica texto agregado. El texto en cursiva incluido entre corchetes es texto eliminado. Los nombres de los elementos sintacticos se muestran en negrita.
[0163] Como se indica mas arriba, de acuerdo con algunas tecnicas de esta divulgacion, el codificador de video 20 puede senalar uno o mas esquemas de particion. Cada uno de los esquemas de particion divide las capas en un conjunto de capas de salida en una o mas particiones. Cada capa en un conjunto de capas de salida debe pertenecer exactamente a una particion en un esquema de particion.
[0164] La Tabla 2, a continuacion, indica los cambios en la sintaxis de extension de VPS para senalar los esquemas de particion definidos en SHVC WD6 y MV-HEVC WD8.
TABLA 2
vps_extension() { Descriptor avc_base_layer_flag u(1)
u(1)
for(i = 1; i < NumOutputLayerSets; i++ ) {
if( i > vps_num_layer_sets_minus1)
output_layer_set_idx_minus1[ i ] u(v) if(i >vps_num_layer_sets_minus1 || defaultTargetOutputLayerIdc == 2)
for(j = 0; j < NumLayersInIdList[LayerSetIdxForOutputLayerSet[ i ] ]; j++)
output_layer_flag[ i ][ j ] u(1) profile_level_tier_idx[ i ] u(v) num_partition_shemes[ i ] ue(v)
for( i = 0; i < num partition shemes[ i ]; j++ ) {
num_partitions_in_scheme_minus1[ i ][ j ] ue(v) for(k = 0; k < num partitions in sheme minus1[ i ][ j ]; k++ ) {
for(r = 0; r <= vps max layers minus1; r++ )
if(layer id included flag[ LayerSetIdxForOutputLayerSet[ i ] ][ r ])
layer included in partition flag[ i ][ j ][ k ][ r ] u(1) profile_level_tier_partition_idx[ i ][ j ][ k ] u(v)
if( NumOutputLayersInOutputLayerSet[ i ] == 1
&& NumDirectRefLayers[ OlsHighestOutputLayerId[ i ] ] > 0)
alt_output_layer_flag[ i ] u(1)
}
}
[0165] En el ejemplo de la Tabla 2, num_partition_schemes[i] especifica el numero de esquemas de particion especificados para el i-esimo conjunto de capas de salida. El valor de num_partition_schemes[i] estara en el rango de 0 a 15, inclusive. Ademas, num_partitions_in_scheme_minus1[i][j] mas 1 especifica el numero de particiones en el jesimo esquema de particion del i-esimo conjunto de capas de salida. El valor de num_partitions_in_scheme_minus1 [i][j] estara en el rango de 0 a NumLayersInldList[LayerSetIdxForOutputLayerSet[i]] - 1, inclusive.
[0166] Ademas, en el ejemplo de la Tabla 2, layer_included_in_partition_flag[i][j][k][r] igual a 1 especifica que la resima capa especificada en el VPS esta incluida en la k-esima particion del j-esimo esquema de particion del i-esimo conjunto de capas de salida. layer_included_in_partition_flag[i][j][k][r] igual a 0 especifica que la r-esima capa especificada en el VPS no esta incluida en la k-esima particion del j-esimo esquema de particion del i-esimo conjunto de capas de salida.
[0167] De este modo, para cada esquema de particion respectivo, para cada particion respectiva del esquema de particion respectivo, para cada capa respectiva del conjunto de capas de salida, el descodificador de video 30 puede obtener, a partir del flujo de bits, un elemento sintactico (es decir, layer_included_in_partition_flag) que indica si la capa respectiva esta incluida en la particion respectiva. En un ejemplo similar, para cada esquema de particion respectivo del uno o mas esquemas de particion, para cada particion respectiva del esquema de particion respectivo, para cada capa respectiva del conjunto de capas de salida, el codificador de video 20 puede incluir, en un flujo de bits, un elemento sintactico (es decir, layer_included_in_partition_flag) que indica si la capa respectiva esta incluida en la particion respectiva.
[0168] En el ejemplo de la Tabla 2, es un requisito de conformidad del flujo de bits que para cada capa con nuh_layer_id igual a currLayerld en el i-esimo conjunto de capas de salida, exista un unico valor de k en el rango de 0 a num_partitions_in_scheme_minus1[i][j], inclusive, para cada esquema de particion con indice j del i-esimo conjunto de capas de salida, de forma que layer_included_in_partition_flag[i][j][k][LayerIdxInVps[currLayerId] sea igual a 1.
[0169] Como se menciona mas arriba, de acuerdo con algunos ejemplos de esta divulgacion, se proporciona senalizacion de un perfil, un grado y un nivel para cada particion. Como se muestra en el ejemplo de la Tabla 2, profile_level_tier_partition_idx[i][j][k] especifica el indice, en la lista de estructuras sintacticas profile_tier_level() en el VPS, de la estructura sintactica profile_tier_level() que se aplica a la k-esima particion del j-esimo esquema de particion del i-esimo conjunto de capas de salida. La longitud del elemento sintactico profile_level_tier_partition_idx[i] es de Ceil(Log2(vps_num_profile_tier_level_minus1+1)) bits. El valor de profile_level_tier_idx[0][0][0] se establece para que sea igual a 0. El valor de profile_level_tier_partition_idx[i] estara en el rango de 0 a vps_num_profile_tier_level_minus1, inclusive.
[0170] En otro ejemplo, los cambios mostrados en la Tabla 3 pueden realizarse en la sintaxis de extension de VPS para senalar esquemas de particion. Los cambios mostrados en la Tabla 3 son relativos a la Tabla 2 mas arriba.
TABLA 3
vps_extension() { Descriptor
profile_level_tier_idx[ i ] u(v) num partitioning schemes minus1[ i ] ue(v) for( j = [[0]]1; j <= num partitioning schemes minus1[ i ]; j++ ) {
num partitions in scheme minus//1]]2[ i ][ j ] ue(v) for(k = 0[[01]]; k <= N[n]./Um[[_p]]Partitions[[_/]]In[[_s]]Scheme[[_minus1]/[ i ][ j ]; k++) {
for(r = 0; r <= vps_max_layers_minus1; r++ )
if(layer_id_included_flag[ LayerSetIdxForOutputLayerSet[ i ] ][ r ]) layer_included_in_partition_flag[ i ][ j ][ k ][ r ] u(1) profile_level_tier_partition_idx[ i ][ j ][ k ] u(v)
}
}
[0171] En el ejemplo de la Tabla 3, se pueden realizar los siguientes cambios en la semantica de elementos sintacticos particulares de la extension VPS descrita mas arriba con referencia a la Tabla 2.
[0172] num partition ing schemes m inus1[i] plus 1 especifica el numero de esquemas de particion especificados para el i-esimo conjunto de capas de salida. El valor de num partitioning schemes minus1[i] estara en el rango de 0 a 15, inclusive.
[0173] num_partitions_in_scheme_minus//1//2[i][j] mas [[1]]2 especifica el numero de particiones en el j-esimo esquema de particion del i-esimo conjunto de capas de salida. El valor de num_partitions_in_scheme_minus[[1]]2[i][j] estara en el rango de 0 a NumLayersInIdList[LayerSetIdxForOutputLayerSet[i]] - 1, inclusive.
[0174] El valor de la variable NumPartitionInScheme[i][i1 se obtiene de la forma siguiente:
NumPartitionsInScheme[i][i1 = (j = = 0) ? 1 :
num partitions in scheme minus2[i][
n
+ 2.
[[Es un requisite/ de conformidad del flujo de bits que cuando j es mayor que 0, el valor de num_partitions_in_scheme_minus 1[i][j] sera mayor que 0.]]
[0175] layer_included_in_partition_flag[i][j][k][r] igual a 1 especifica que la r-esima capa especificada en el VPS se incluye en la k-esima particion del j-esimo esquema de particion del i-esimo conjunto de capas de salida. layer_included_in_partition_flag[i][j][k][r] igual a 0 especifica que la r-esima capa especificada en el VPS no esta incluida en la k-esima particion del j-esimo esquema de particion del i-esimo conjunto de capas de salida. Se infiere que el valor de layer included in partition flaq[i1[01[01[r1 es igual al valor de layer id included flag[LaverSetIdxFor OutputLayerSet[i]][r] para r en el rango de 0 a vps max layers minus1, inclusive.
NOTA 5 - [[Es un requisito de conformidad del flujo de bits que f]] Para cada capa con nuh layer id igual a currLayerId en el i-esimo conjunto de capas de salida, exista un unico valor de k en el rango de 0 a [[n]jNum[Lp]]Partitions[[_/]/In[[_
s]]Scheme[[_m/nus1]jfi][j] [ [ inclusive]], para cada esquema de particion con indice j del i-esimo conjunto de capas de salida, tal que layer_included_in_partition_flag[i][j][k][LayerIdxInVps[currLayerId] sea igual a 1.
[0176] profile_level_tier_partition_idx[i][j][k] especifica el indice, en la lista de estructuras sintacticas profile_tier_level() en el VPS, de la estructura sintactica profile_tier_level() que se aplica a la k-esima particion del jesimo esquema de particion del i-esimo conjunto de capas de salida. La longitud del elemento sintactico profile level tier partition idxfilfilfkl es de Ceil(Log2(vps_num_profile_tier_level_minus1 1)) bits. Se infiere que el valor de profile level tier partition idx[01[01[Q1 es igual a 0. El valor de profile level tier partition idx[i1[01[Q1 se establece igual a profile level tier idx[i] para i en el rango de 1 a NumOutputLayerSets - 1, inclusive. El valor de profile level tier partition idx[i1-[j1[k1 estara en el rango de 0 a vps_num_profile_tier_level_minus1, inclusive.
[0177] En algunos ejemplos, se agrega una restriccion tal que no mas de un esquema de particion para cada conjunto de capas de salida contiene solo una particion. Ademas, en algunos ejemplos, el elemento sintactico profile_tier_level_idx[i] no se senaliza y el elemento sintactico profile_tier_tier_partition_idx[i][j][k] se utiliza para senalar las indicaciones de perfil, grado y nivel del esquema de particion del conjunto de capas de salida que contiene una particion que incluye todas las capas del conjunto de capas de salida.
[0178] Ademas, de acuerdo con algunas tecnicas de esta divulgacion, los limites y las restricciones de nivel que definen perfiles, grados y niveles son especificos de la particion. El siguiente texto indica otros cambios a MV-HEVC WD8 para implementar limites y restricciones de nivel especificos de particion para perfiles, grados y niveles.
G.11 Perfiles, grados y niveles
G.11.1 Perfiles
G.11.1.2 Perfil Estereo Principal
[0179] Los flujos de bits que contienen conjuntos de capas de salida con particiones de capas conforme al perfil Estereo Principal deberan cumplir las siguientes restricciones en el subflujo de bits obtenido para cada uno de los conjuntos de capas de salida, siendo laverSetIdx el indice del conjunto de capas para el conjunto de capas de salida, obteniendose el subflujo de bits invocando el proceso de extraccion subflujo de bits como se especifica en la subclausula F.10 con el flujo de bits, tldTarget igual a 7, y TargetDecLayerldList que contiene los valores nuh layer id del conjunto de capas con el index layerSetldx como entradas, obteniendose las particiones al invocar el proceso de desmultiplexacion para obtener una particion de flujo de bits como se especifica en la subclausula C.6 con el subflujo de bits, con la lista de capas en la particion listOfLayerslnPartition y el numero de capas en la particion numLayerslnPartition como entradas.
[0180] Los flujos de bits correspondientes a los subflujos de bits para los conjuntos de capas de salida con particiones de capas que se ajusten al perfil Estereo Principal deberan cumplir las siguientes restricciones:
■ El subflujo de bits resultante del proceso de extraccion de subflujo de bits con cualquier valor de tldTarget y un valor de 0 en layerldListTarget como entradas se ajustara al perfil principal.
■ El flujo de bits debe contener una capa con nuh_layer_id igual a i para la cual ViewScalExtLayerFlag[i] es igual a 1.
■ Cuando ViewScalExtLayerFlag[i] es igual a 1,
inter_view_mv_vert_constraint_flag sera igual a 1 en la estructura sintactica sps_multilayer_extension() del SPS RBSP activo para la capa con nuh layer id igual a i.
■ Cuando ViewScalExtLayerFlag[i] es igual a 1,
Scalabilityld[LayerldxlnVps[i]][smldx] sera igual a 0 para cualquier valor smldx desde 0 hasta 15, inclusive, que no sea igual a 1, para cualquier imagen codificada con nuh layer id igual a i.
■ Cuando ViewScalExtLayerFlag[i] es igual a 1,
num_scaled_ref_layer_offsets sera igual a 0 en cada SPS activo para la capa con nuh layer id igual a i.
■ Cuando ViewScalExtLayerFlag[i] es igual a 1, los valores de
pic_width_in_luma_samples y pic_height_in_luma_samples en el SPS activo para la capa con nuh layer id igual a i seran iguales a los valores de pic_width_in_luma_samples y pic_height_in_luma_samples, respectivamente, en los SPS activos para todas las capas de referencia directa de esa capa.
■ El flujo de bits debe contener un subflujo de bits que consta de dos capas con nuh_layer_id igual a 0 y nuhLayerldA para las cuales
Scalabilityld[LayerldxlnVps[nuhLayerldA]][smldx] debe ser igual a 0 para cualquier smldx de 0 a 15, inclusive, que no sea igual a 1.
■ Los VPS tendran avc_base_layer_flag igual a 0 solamente.
■ Los VPS tendran vps_num_rep_formats_minus1 en el rango de 0 a 15, inclusive.
■ Los SPS deben tener sps_extension_type_flag[i] igual a 0 solo para i igual a 0, y en el rango de 2 a 6, inclusive.
■ Los PPS tendran pps_extension_type_flag[i] igual a 0 solo para i en el rango de 1 a 6, inclusive.
[0181] En el resto de esta subclausula y la subclausula G.11.3, para un subflujo de bits de un conjunto de capas de salida, general profile idc, general profile compatibility flag[i1. general tier flag, y general level idc se refieren a general profile idc, general profile compatibility flag[i1. general tier flag, y general level idc,, respectivamente, en la estructura sintactica profile tier level() para el conjunto de capas de salida. La conformidad de un subflujo de bits de un conjunto de capas de salida en el perfil Estereo Principal se indica mediante general profile idc siendo igual a 5 o general profile compatibility flag[51 siendo igual a 1.
■ NOTA - Cuando general profile compatibility flag[51 es igual a 1, general profile compatibility flag[i1 para i igual a 1 tambien debe ser igual a 1.
[0182] Ademas, para implementar limites y restricciones de nivel especificos de particion para perfiles, grados y niveles, los siguientes cambios pueden hacerse en el Parrafo G.11.2 de JCTVC-Q0145, que a su vez modifica el Parrafo G.11.2 de Chen et al., "High efficiency video coding (HEVC) scalable extensions" [“Extensiones escalables de codificacion de video de alta eficiencia (HEVC)1, Borrador 5, Equipo Colaborativo Conjunto en Codificacion de Video (JCT-VC) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 16.8 Reunion: San Jose, EE.UU., 9-17 de enero de 2014, documento JCTVC-P1008_v4.
G.11.2 Grados y niveles
G.11.2.1 Limites generales de grados y niveles
[0183] Con el fin de comparar las capacidades de grado, el grado con general_tier_flag igual a 0 se considera un grado mas bajo que el grado con general_tier_flag igual a 1.
[0184] Con el fin de comparar las capacidades de nivel, un nivel particular de un grado especifico se considera un nivel mas bajo que otro nivel del mismo grado cuando el valor del general_level_idc del nivel particular es menor que el del otro nivel.
[0185] Se especifica lo siguiente para expresar las restricciones en esta subclausula, la subclausula G.11.2.2, y la subclausula G.11.3:
- Dejar que la unidad de acceso n sea la n-esima unidad de acceso en el orden de descodificacion, siendo la primera unidad de acceso la unidad de acceso 0 (es decir, la unidad de acceso 0-esima).
- Dejar que la variable fR se establezca igual a 1 ^ 300.
- Dejar que la variable optLsIdx sea el indice del conjunto de capas de salida de un conjunto de capas de salida contenido en un flujo de bits, y el subflujo de bits del conjunto de capas de salida se obtenga invocando el proceso de extraccion de subflujos de bits como se especifica en la subclausula F.10 con el flujo de bits, tIdTarget igual a 7 y TargetDecLayerIdList conteniendo los valores nuh layer id del conjunto de capas de salida como entradas. - Dejar que la variable partitionIdx sea el indice de cualquier particion particular del conjunto de capas de salida con el indice optLsIdx, y la particion se obtenga invocando el proceso de desmultiplexacion como se especifica en la subclausula C.6 con el subflujo de bits, la lista de capas en la particion listOfLaversInPartition, y el numero de capas en la particion numLayersInPartition como entradas.
- Dejar que las variables numLayersInOptLayerSet y numLayersInSubBitstream se obtengan de la forma siguiente: numLayersInOptLayerSet =
NumLayersInIdList[LayerSetIdxForOutputLayerSet[ optLsIdx ]]
if (la capa base en el conjunto de capas de salida se proporciona por medios externos) numLayersInSubBitstream = NumLayersInOptLayerSet - 1 (H-63
else
numLayersInSubBitstream = numLayersInOptLayerSet
else
numLayersInSubBitstream = numLayersInOptLayerSet
- Dejar que la variable partitionSizelnSamplesY se obtenga de la forma siguiente:
partitionSizelnSamplesY = 0 (H-64)
for( i = 0; i < numLaversInPartition: i+ )
partitionSizelnSamplesY = PicSizelnSamplesY de la i-esima capa
en la particion
- Dejar que la variable scaleFactor se establezca igual a
Ceil(partitionSizeInSamplesY / MaxLumaPs), donde MaxLumaPs se especifica en la Tabla A-1 para el nivel de la particion.
- Dejar que la variable maxPartitionSliceSegs se establezca igual a
scaleFactor * MaxSliceSegmentsPerPicture, donde
MaxSliceSegmentsPerPicture se especifica en la Tabla A-1 para el grado y el nivel de la particion.
[0186] Cada particion que se ajuste a un perfil en un grado y nivel especificado debera cumplir las siguientes restricciones para cada prueba de conformidad de flujo de bits como se especifica en el Anexo C:
a) Para cada capa en la particion, PicSizelnSamplesY sera menor o igual que MaxLumaPs, donde MaxLumaPs se especifica en la Tabla A-1 para el grado y el nivel de la particion.
b) Para cada capa en la particion, el valor de pic_width_in_luma_samples sera menor o igual que Sqrt(MaxLumaPs * 8).
c) Para cada capa en la particion. el valor de pic_height_in_luma_samples sera menor o igual a Sqrt(MaxLumaPs * 8).
d) Para cada capa con nuh_layer_id igual a currLayerld en la particion. el valor de
max vps dec pic buffering minus1[optLsIdx1[LaverIdxInVps[currLaverId11[HighestTid1 sera menor o igual que MaxDpbSize como se deduce de la Ecuacion A-2, reemplazandose PicSizeInSamplesY por partitionSizeInSamplesY. para el grado y el nivel de la particion.
e) Para el nivel 5 y niveles superiores, el valor de CtbSizeY para cada capa en la particion sera igual a 32 o 64.
f) El valor de NumPicTotalCurr para cada imagen en la particion sera menor o igual a 8.
g) Al descodificar cada imagen codificada en la particion, el valor de num_tile_columns_minus1 sera menor que MaxTileCols y num_tile_rows_minus1 sera menor que MaxTileRows, donde MaxTileCols y MaxTileRows se especifican en la Tabla A-1 para el grado y el nivel de la particion.
h) Para los parametros VCL HRD de la particion, CpbSize[i] debe ser menor o igual a 1000 * MaxCPB para al menos un valor de i en el rango de 0 a cpb_cnt_minus1[HighestTid], inclusive, donde se especifica CpbSize[i] en la subclausula E.3.3 basandose en los parametros seleccionados como se especifica en la subclausula C.1 y el MaxCPB se especifica en la Tabla A-1 para el grado y el nivel de la particion, en unidades de 1000 bits.
i) Para los parametros NAL HRD de la particion, CpbSize[i] debe ser menor o igual a 1100 * MaxCPB para al menos un valor de i en el rango de 0 a cpb_cnt_minus1[HighestTid], inclusive, donde se especifica CpbSize[i] en la subclausula E.3.3 basandose en los parametros seleccionados como se especifica en la subclausula C.1 y MaxCPB se especifica en la Tabla A-1 para el grado y el nivel de la particion, en unidades de 1100 bits.
[0187] La Tabla A-1 especifica los limites para cada nivel de cada grado.
[0188] Un grado y nivel al que se ajusta una particion se indican mediante los elementos sintacticos general_tier_flag y general_level_idc de la forma siguiente:
■ general_tier_flag igual a 0 indica conformidad con el grado Principal, y general_tier_flag igual a 1 indica conformidad con el grado Alto, de acuerdo con las restricciones de grado especificadas en la Tabla A-1. general_tier_flag sera igual a 0 para niveles inferiores al nivel 4 (correspondiente a las entradas en la Tabla A-1 marcadas con "-").
■ general_level_idc se establecera igual a un valor de 30 veces el numero de nivel especificado en la Tabla A-1.
[0189] JCTVC-Q0145 incluye un archivo adjunto (JCTVC-Q0145_MvHevcText) que describe los cambios en Tech et al., "MV-HEVC Draft Text 7", Equipo colaborativo conjunto en codificacion de video 3D, Desarrollo de extension de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 7.8 reunion: San Jose, EE.UU., 11-17 de enero de 2014, JCT3V-G1004-v7. El siguiente texto indica cambios en JCTVC-Q0145_MvHevcText para implementar limites y restricciones de nivel especificos de particion para perfiles, grados y niveles. Para ser concisos, el texto eliminado de JCTVC-Q0145_MvHevcText se omite a continuacion.
G.11.2.2 Limites de nivel especificos del perfil para los perfiles Principal, Principal 10 y Estereo Principal
[0190] Cada particion que se ajuste al perfil Estereo Principal en un grado y nivel especifico debera cumplir las siguientes restricciones para cada prueba de conformidad de flujo de bits especificada en el Anexo C, donde "unidad de acceso" se utiliza para indicar el conjunto de imagenes contenidas en la particion, junto con sus unidades NAL no-VCL asociadas, de capas contenidas en la particion y que tienen el mismo tiempo de salida y se entiende que la CPB es el BPB:
a) El momento de eliminacion nominal de la unidad de acceso n (con n mayor que 0) de la CPB, como se especifica en la subclausula C.2.3, debe cumplir la restriccion de que AuNominalRemovalTime[n] - AuCpbRemovalTime[n -1] sea mayor o igual que Max(partitionSizeInSamplesY 4- MaxLumaSr, fR), donde partitionSizelnSamplesY es el valor de partitionSizeInSamplesY para la unidad de acceso n - 1 y MaxLumaSr es el valor especificado en la Tabla A-2 que se aplica a la unidad de acceso n - 1 para el grado y nivel del particion.
b) La diferencia entre tiempos de salida consecutivos de imagenes de la DPB, como se especifica en la subclausula C.3.3, debe cumplir la restriccion de que DpbOutputInterval[n] sea mayor o igual que Max(partitionSizeInSamplesY 4 MaxLumaSr, fR), donde partitionSizeInSamplesY es el valor de partitionSizeInSamplesY de la unidad de acceso n y MaxLumaSr es el valor especificado en la Tabla A-2 para la unidad de acceso n para el grado y el nivel de la particion, siempre y cuando la unidad de acceso n sea una unidad de acceso que tenga una imagen que se emita y no sea la ultima de esas unidades de acceso.
c) El momento de eliminacion de la unidad de acceso 0 cumplira la restriccion de que el numero de segmentos de fragmento codificados en la unidad de acceso 0 es menor o igual que Min(Max(numLaversInPartition. MaxSlice-SegmentsPerPicture * MaxLumaSr / MaxLumaPs * (AuCpbRemovalTime[0] - AuNominalRemovalTime[0]) MaxSliceSegmentsPerPicture * partitionSizeInSamplesY / MaxLumaPs), MaxSliceSegmentsPerPicture ), donde MaxSliceSegmentsPerPicture, MaxLumaPs y MaxLumaSr son los valores especificados en la Tabla A-1 y la Tabla A-2 para el grado y el nivel de la particion.
d) La diferencia entre los tiempos de eliminacion de CPB consecutivos de las unidades de acceso n y n - 1 (con n mayor que 0) debe satisfacer la restriccion de que el numero de segmentos de fragmento codificados en la unidad de acceso n es menor o igual a Min((Max(numLayersInPartitign, MaxSliceSegmentsPerPicture * Max LumaSr / MaxLumaPs * (AuCpbRemovalTime[n] - AuCpbRemovalTime[n - 1])), MaxSlic eSegmentsPerPicture), donde numLayersInPartition es el valor para la unidad de acceso n, y MaxSliceSegmentsPerPicture, MaxLumaPs y MaxLumaSr son los valores especificados en la Tabla A-1 y la Tabla A-2 que se aplican a la unidad de acceso n para el grado y el nivel de la particion.
e) Para los parametros VCL HRD para la particion, BitRate[i] debe ser menor o igual que CpbBrVclFactor * MaxBR para al menos un valor de i en el rango de 0 a cpb_cnt_minus1 [HighestTid], inclusive, donde se especifica BitRate[i] en la subclausula E.3.3 basada en parametros seleccionados como se especifica en la subclausula C.1 y MaxBR se especifica en la Tabla A-2 en unidades de CpbBrVclFactor bits/s, donde CpbBrVclFactor se especifica en la Tabla A-3 para el grado y nivel de la particion.
f) Para los parametros NAL HRD para la particion, BitRate[i] debe ser menor o igual que CpbBrNalFactor * MaxBR para al menos un valor de i en el rango de 0 a cpb_cnt_minus1 [HighestTid], inclusive, donde se especifica BitRate[i] en la subclausula E.3.3 basandose en parametros seleccionados como se especifica en la subclausula C.1 y MaxBR se especifica en la Tabla A-2 en unidades de CpbBrNalFactor bits/s, donde CpbBrNallFactor se especifica en la Tabla A-3 para el grado y nivel de la particion.
g) La suma de las variables NumBytesInNalUnit para la unidad de acceso 0 sera menor o igual que FormatCapabilityFactor * (Max(partitionSizeInSamplesY, fR * MaxLumaSr) MaxLumaSr * (AuCpbRemovalTime-[0] - AuNominalRemovalTime[0])) 4 MinCr, donde MaxLumaSr y MinCr son los valores especificados en la Tabla A-2 y FormatCapabilityFactor es el valor especificado en la Tabla A-3 que se aplica a la imagen 0 para el grado y el nivel de la particion.
h) La suma de las variables NumBytesInNalUnit para la unidad de acceso n (con n mayor que 0) debe ser menor o igual que FormatCapabilityFactor * MaxLumaSr * (AuCpbRemovalTime[n] - AuCpbRemovalTime[n - 1]) 4 MinCr, donde MaxLumaSr y MinCr son los valores especificados en la Tabla A-2 y FormatCapabilityFactor es el valor especificado en la Tabla A-3 que se aplica a la imagen n para el grado y el nivel de la particion.
i) El momento de eliminacion de la unidad de acceso 0 satisfara la restriccion de que el numero de elementos en imageries codificadas en la unidad de acceso 0 es menor o igual a Min(Max(numLayersInPartition. MaxTileCols * MaxTileRows * 120 * (AuCpbRemovalTime[0] - AuNominalRemovalTime[0]) MaxTileCols * MaxTileRows), MaxTileCols * MaxTileRows). donde MaxTileCols y MaxTileRows son los valores especificados en la Tabla A-1 para el grado y el nivel de la particion.
j) La diferencia entre los tiempos de eliminacion de CPB consecutivos de unidades de acceso n y n - 1 (con n mayor que 0) debe satisfacer la restriccion de que el numero de elementos en imagenes codificadas en la unidad de acceso n es menor o igual a Min(Max(numLayersInPartition. MaxTileCols * MaxTileRows * 120 * (AuCpbRemovalTime[n] - AuCpbRemovalTime[n - 1])). MaxTileCols * MaxTileRows). donde numLaversInPartition son los valores para la unidad de acceso n. y MaxTileCols y MaxTileRows son los valores especificados en la Tabla A- 1 que se aplica a la unidad de acceso n para el grado y el nivel de la particion.
[0191] Ademas. de acuerdo con algunos ejemplos de esta divulgacion. se pueden hacer los siguientes cambios en el Parrafo G.11.1.2 Perfil Estereo Principal de MV-HEVC WD8. En el texto a continuacion. se muestran los cambios relativos a la version de ejemplo del Parrafo G.11.1.2 descrito mas arriba en esta divulgacion.
G.11.1.2 Perfil estereo principal
[0192] Para un flujo de bits que contenga conjuntos de capas de salida con particiones que se ajusten al perfil estereo principal. dejar que
■ olsIdx sea el indice de conjunto de capas de salida de un conjunto de capas de salida.
■ layerSetIdx sea el indice de conjunto de capas para el conjunto de capas de salida.
■ el subflujo de bits del conjunto de capas de salida se obtenga invocando el proceso de extraccion de subflujo de bits como se especifica en la subclausula F.10 con las siguientes entradas: el flujo de bits. tIdTarget igual a 6. y layerIdListTarget que contiene los valores nuh layer id de las capas que estan incluidas en el conjunto de capas con el indice layerSetIdx y son capas de imagenes principales.
■ el flujo de bits de la capa base se obtiene invocando el proceso de extraccion de subflujo de bits como se especifica en la subclausula F.10 con el flujo de bits. tIdTarget igual a 6 y layerIdListTarget que contiene solo un valor de nuh layer id que es igual a 0 como entradas.
[0193] Unos [[flujos de bits que contienen conjuntos de capas de salida con particiones de capas conforme a los perfiles estereo principal cumpliran las siguientes restricciones en el subflujo de bits obtenido para cada uno de los conjuntos de capas de salida, siendo layerSetIdx el indice del conjunto de capas para el conjunto de capas de salida, obteniendose el subflujo de bits invocando el proceso de extraccion de subflujo de bits como se especifica en la subclausula F.10 con el flujo de bits, tIdTarget igual a 7, y con TargetDecLayerldList que contiene los valores de nuh_layer_id del conjunto de capas con el indice layerSetIdx como entradas, obteniendose las particiones invocando el proceso de desmultiplexacion para obtener una particion de flujo de bits como se especifica en la subclausula C.6 con el subflujo de bits, la lista de capas en la particion listOfLayerslnPartition, y el numero de capas en la particion numLayerslnPartition como entradas B]] flujos de bit[[s correspondientes a subflujos de bits para]] que contienen conjuntos de capas de salida con particiones [[de capas]]conforme al perfil estereo principal cumpliran las siguientes restricciones:
■ Todos los VPS activos deberan tener vps_base_layer_internal_flag igual a 1 solo.
■ Todos los VPS activos deberan tener vps_num_rep_formats_minus1 en el rango de 0 a 15. inclusive.
■ [[Los flujos de bits que contienen conjuntos de capas de salida conforme al perfil estereo principal cumpliran las siguientes restricciones en el subflujo de bits obtenido para cada uno de los conjuntos de capas de salida, con el indice de conjunto de capas de salida olsIdx y layerSetIdx siendo el conjunto de capas para el conjunto de capas de salida, y obteniendose el subflujo de bits invocando el proceso de extraccion de subflujo de bits como se especifica en la subclausula F.10 con las siguientes entradas: el flujo de bits, tIdTarget igual a 6 y layerIdListTarget que contiene los valores nuh_layer_id de las capas que estan incluidas en el conjunto de capas con el indice layerSetIdx y son capas de imagen principales.]]
[[Los flujos de bits que contienen conjuntos de capas de salida que se ajustan al perfil estereo principal tambien deben cumplir las siguientes restricciones en el flujo de bits de capa base obtenido invocando el proceso de extraccion de subflujo de bits especificado en la subclausula F.10 con el flujo de bits, tIdTarget igual a 6, y con layerIdListTarget que contiene solo un valor nuh_layer_id que es igual a 0 como entradas.]]
[0194] El flujo de bits de la capa base [[obtenido de los flujos de bits que se ajustan a los perfiles estereo principal]] debera cumplir las siguientes restricciones:
■ El flujo de bits de la capa base debe cumplir todas las restricciones del perfil principal especificado en la subclausula A.3.2.
■ Todos los SPS activos [[de]] para la capa base [[flujo de bits]] tendran general_profile_idc igual a 1 o general_profile_compatibility_flag[1] igual a 1.
[0195] El subflujo de bits [[obtenido]]de cada [[para un]]conjunto de capas de salida [[que se ajuste alperfil estereo principal]] debera cumplir las siguientes restricciones:
■ Todos los SPS activos para el subflujo de bits debera tener chroma_format_idc igual a 1 solo.
■ CtbLog2SizeY obtenido de cualquier SPS activo [[de]]para el subflujo de bits estara en el rango de 4 a 6, inclusive.
■ ScalabilityId[j][smIdx] sera igual a 0 para cualquier valor de smIdx no igual a 1 y para cualquier valor de j para el subflujo de bits.
[0196] En el resto de esta subclausula y subclausula G.11.3, para un subflujo de bits de un conjunto de capas de salida, general_profile_idc, general_profile_compatibility_flag[i], general_tier_flag, y general_level_idc se refieren a general_profile_idc, general_profile_compatibility_flag[i], general_tier_flag, y general_level_idc, respectivamente, en la estructura sintactica profile_tier_level() para la particion [[conjunto de capas de salida]].
[0197] La conformidad de un subflujo de bits de una particion [[conjunto de capas de salida]] con el perfil estereo principal se indica con general_profile_idc siendo igual a 6 [[5 ]]o general_profile_compatibility_flag[6 [[5]]] siendo igual a 1.
- NOTA - Cuando general_profile_compatibility_flag[6 [[5]]] es igual a 1, general_profile_compatibility_flag[l[[//]] [[para i igual a 1]] tambien deberia ser igual a 1.
[0198] Ademas, en algunos ejemplos de esta divulgacion, se pueden hacer los siguientes cambios en el Parrafo G.11.2.1 de MV-HEVC WD8. El texto a continuacion indica los cambios de una parte de la version de ejemplo del Parrafo G.11.2.1 descrito mas arriba en esta divulgacion.
G.11.2.1 Limites generales de grado y nivel
[0199] La condicion (a) se cambia de la forma siguiente:
j) [[Para cada capa en el]] El valor de la particion [[,]] PicSizelnSamplesY sera menor o igual que MaxLumaPs, donde MaxLumaPs se especifica en la Tabla A-1 para el grado y el nivel de la particion.
[0200] Ademas, en algunos ejemplos de esta divulgacion, se hacen los siguientes cambios en el Parrafo G.11.2.2 de MV-HEVC WD8. El texto a continuacion indica los cambios de una parte de la version de ejemplo del Parrafo G.11.2.1 descrito mas arriba en esta divulgacion.
G.11.2.2 Limites de nivel especificos del perfil para los perfiles Principal, Principal 10 y Estereo Principal [0201] Cada particion que se ajuste al perfil estereo principal en un grado y nivel especificado cumplira las siguientes restricciones para [[cada flujo de bits]]ja prueba de conformidad especificada en el Anexo C, donde "unidad de acceso" se utiliza para designar el conjunto de imagenes contenidas en la particion, junto con sus unidades no VCL NAL asociadas, de capas contenidas en la particion y que tienen el mismo tiempo de salida y se entiende que la CPB es el BPB:
[0202] Ademas, como se describe en otra parte de acuerdo con una o mas tecnicas de esta divulgacion, para cada esquema de particion respectivo de cada conjunto de capas de salida, un mensaje VPS VUI o SEI de un flujo de bits puede identificar un conjunto de parametros de HRD para el esquema de particion respectivo. Los cambios que se muestran en la Tabla 4 pueden realizarse en la estructura sintactica de los parametros de HRD de la particion de flujo de bits VUI de VPS definida en el Parrafo F.7.3.2.1.6 de MV-HEVC WD8 y SHVC WD6 para implementar dichos ejemplos.
TABLA 4
vps_vui_bsp_hrd_parameters(){ Descriptor vps_num_bsp_hrd_parameters_minus1 ue(v) for(i = 0; i <= vps_num_bsp_hrd_parameters_minus1; i++) {
if(i>0)
bsp_cprms_present_flag[ i ] u(1) hrd_parameters( bsp_cprms_present_flag[ i ], vps_max_sub_layers_minus1 )
}
for( h = 1; h <= NumOutputLayerSets/TVos num layer sets m inusl]; h++){
[[ num -bitstream_partitions[ h ] ]] [[ue(v)]] [[ for(i = 0; i < num_bitstream_partitions[ h ]; i++) ]]
[[for(j = 0; j < NumLayersInIdList[ h ];j++) ]]
[[ layer_in_bsp_flag[ h ] [ i ] [ j ] ] ] f[u(1)]] for( i = 1; i <= num partitioning schemes minus 1[ h ]: i++) {
[[ if(num_bitstream_partitions[ h ] > 0) { ] ]
num_bsp_sched_combinations_minus1[ h ][JJ ue(v) for( [[ i] j = 0; [[i]j<= num_bsp_sched_combinations_minus1[ h ][J_]; [[i]j++)
fordfilfk = 0; ffillk < ffnUNumff DllPartitionsff iHInff sllSchemeff minusl num_bitstream_partitions]][ h ] [_L]; f[j]]k++){
bsp_comb_hrd_idx[ h ][ i ][ j ][ k ] ue(v) bsp_comb_sched_idx[ h ][ i ][ j ][ k ] ue(v)
}
}
}
}
[0203] De acuerdo con el ejemplo de la Tabla 4, se pueden realizar los siguientes cambios en la semantica de los parametros de HRD de la particion de flujo de bits VUI de VPS, como se define en los parrafos F.7.4.3.1.6 de MV-HEVC WD8 y SHVC WD6.
[0204] [[num_bitstream_partitions[h] especifica el numero de particiones de flujo de bits para las que se especifican los parametros de HRD para el conjunto de capas con el indice h.
[0205] layer_in_bsp_flag[h][i][j] especifica que la capa con el indice j es una parte de la particion de flujo de bits con el indice i dentro del conjunto de capas con el indice h.]]
[0206] num_bsp_sched_combinations_minus1[h][i] mas 1 especifica el numero de combinaciones de programas de entregas y hrd_parameters() especificados para las particiones de flujo de bits para el i-esimo esquema de particion del h-esimo conjunto de capas de salida [[con indice h]].
[0207] La variable SchedCombCnt[h][i] se establece igual a num_bsp_sched_combinations_minus1[h][i] 1.
[0208] bsp_comb_hrd_idx[h][i][j][k] especifica el indice de hrd_parameters() dentro de la estructura sintactica vps_vui_bsp_hrd_parameters() utilizada en la [[ i] j -esima combinacion de un programa de entregas y hrd_parameters() especificados para la k-esima particion [[flujo de bits]] [[con indice j y]] del i-esimo esquema de particion para el h-esimo conjunto de capas de salida [[con indice h]].
[0209] bsp_comb_sched_idx[h][i][j][k] especifica el indice de un programa de entregas dentro de la estructura sintactica hrd_parameters() con el indice bsp_comb_hrd_idx[h][i][j][k] que se utiliza en la [[i]] j-esima combinacion de un programa de entregas y hrd_parameters() especificados para la k-esima particion [[flujo de bits]] [[con indice j] ] del i-esimo esquema de particion [M l para el h-esimo conjunto de capas de salida [[con indice h]].
[0210] Ademas, de acuerdo con una o mas tecnicas de esta divulgacion, los cambios mostrados en la Tabla 5, a continuacion, pueden realizarse en la sintaxis de mensaje SEI de los parametros de HRD de la particion de flujo de bits, como se define en el Parrafo F.14.1.5 de MV-HEVC WD8 y SHVC WD6.
TABLA 5
bsp_hrd(payloadSize ) { Descriptor sei_num_bsp_hrd_parameters_minus1 ue(v) for(i = 0; i <= sei_num_bsp_hrd_parameters_minus1; i++) {
if(i > 0)
sei_bsp_cprms_present_flag[ i ] u(1) hrd_parameters(sei_bsp_cprms_present_flag[ i ], nesting_max_temporal_id_plus1[0] - 1)
}
bsp_hrd(payloadSize ) { Descriptor for( h = 0; h <= nesting_num_ops_minus1; h++ ) {
olsldx = nesting_op_idx[ h 1
num sei partitioning schemes minus1[ olsldx 1 ue(v) for(i = 1; i <= num sei partitioning schemes minus1[olsldx1; i++ ) {
num sei bitstream partitions minus//7/72[ olsldx 1[ i 1 ue(v) _for( [[ i] j = 0 ; [[i]] j <= [[n]jNum[/_s]]Sei[[_fo]jBitstream[/_p]]Partitions[/_m/'nus1]j[ olsldx 1[ i 1;
j++)
_for( [[j]]k = 0; [[j]] k <= vps_max_layers_minus1; [[j]] k++ )
if( layer id included flag[ LaverSetIdxForOutputLaverSet[ olsldx 11[[[ layer id in nuh [j]] kJ[]]] 1)
_sei_layer_in_bsp_flag[ olsldx 1[ i 1[ j 1[ k 1 u(1) _sei_num_bsp_sched_combinations_minus1 [ olsldx 1[_L| ue(v) _for( [[ i] j = 0; [[i]Ji <= sei_num_bsp_sched_combinations_minus1 [ olsldx 1[ i 1; [[]]+ )
for( [[j]]k = 0; [[j]] k <= [[n]]Num[[_s]]Se'i[[_b]JBitstream[[_p]JPartiXions[[_m'/nus1]J[ olsldx 1 W;[[tf]k++){
_sei_bsp_comb_hrd_idx[ olsldx 1[ i 1[ j 1[ k 1 ue(v) _sei_bsp_comb_sched_idx[ olsldx 1[ i 1[ j 1[ k 1 ue(v) _}
}
}
}
[0211] Ademas, en el ejemplo de la Tabla 5, el mensaje SEI de agrupamiento de particion de flujo de bits proporciona un mecanismo para asociar mensajes SEI con una particion de flujo de bits de un conjunto de capas de salida. En el ejemplo de la Tabla 5, pueden hacerse los siguientes cambios en la semantica de mensaje SEI de los parametros de HRD de la particion de flujo de bits en el Parrafo F.14.2.5 de MV-HEVC WD8 y SHVC WD6.
[0212] num sei partitioning schemes m inuslfolsldxl mas 1 especifica el numero f de esquemas de particion especificados para el conjunto de capas de salida con el indice olsldx. El valor de num sei partitioning schemes minus1[olsldx1 estara en el rango de 0 a 15, inclusive.
[0213] num sei bitstream partitions minus2//1/][olsldx1[i1 mas [[1]]2 especifica el numero de particiones de flujo de bits para las cuales se especifican los parametros de HRD para el esquema de particion i-esimo del conjunto de capas de salida con el indice olsldx. El valor de num sei bitstream partitions minus1[olsldx1[i1 estara en el rango de 0 a NumLaversInIdList[LaverSetIdxForOutputLaverSet[olsIdx11 - 1, inclusive.
[0214] El valor de num sei bitstream partitions minus1[olsldx1[01 se infiere que es igual a 0.
[0215] El valor de la variable NumPartitionInSchemefi1fi1 se obtiene de la forma siguiente:
NumSeiBitstreamPartitions [olsldx1[l 1 = (i = = 0 ) ? 1 :
num sei bitstream partitions minus2[i1[j1 2.
[0216] sei_layer_in_bsp_flag[olsIdx1[i1[j]£k] especifica que la capa con indice [[j]] k es una parte de la particion de flujo de bits con indice [[i]] j dentro del esquema de particion con indice i del conjunto de capas con indice olsldx. El valor de layer included in partition flag[olsldx1[01[01[k1 se infiere que es igual al valor de layer id included flag [LaverSetIdxForOutputLaverSet[olsIdx11[k1 para k en el rango de 0 a vps max layer minus1, inclusive.
[0217] Es un requisito de conformidad de flujo de bits que la particion de flujo de bits con indice [[j]] n no incluya capas de referencia directas o indirectas de ninguna capa en la particion de flujo de bits con indice [ [ ] ] m para ningun valor de [[i]] m y [[j]] n en el rango de 0 a N[[n]jum[[_s]]Sei[[_fo]jBitstream[[_p]]Partitions [[_minus]][olsldx 1[i][[, inclusive]], tal que [[i]] m es menor que [[j]] n.
[0218] sei_num_bsp_sched_combinations_minus1[glsIdx1[T1 mas 1 especifica el numero de combinaciones de programas de entrega y hrd_parameters() especificados para las particiones de flujo de bits para el esquema de particion con el indice i del conjunto de capas de salida con el indice olsldx.
[0219] La variable SchedCombCnt[olsIdx][i] se establece igual a sei_num_bsp_sched_combinations_minus1[ olsIdx][i] 1.
[0220] sei_bsp_comb_hrd_idx[olsIdx][i][j][k] especifica el indice de hrd_parameters() dentro de este mensaje SEI utilizado en la [[i]] j-esima combinacion de un programa de entregas y hrd_parameters() especificado para la particion de flujo de bits con el indice [[j]] k del esquema de particion con el indice i [[y ]]para el conjunto de capas de salida con el indice olsIdx.
[0221] sei_bsp_comb_sched_idx[olsIdx][i][j][k] especifica el indice de un programa de entrega dentro de la estructura sintactica de hrd_parameters() con el indice sei_bsp_comb_hrd_idx[olsIdx][i][j][k] que se utiliza en la [[i]] jesima combinacion de un programa de entregas y hrd_parameters() especificada para la particion de flujo de bits con indice [[ j]]k del esquema de particion con indice i [[y ]]para el conjunto de capas de salida con indice olsIdx.
[0222] El Anexo C en MV-HEVC WD8 y SHVC WD6 describe el HRD. Mas particularmente, el parrafo C.1 de MV-HEVC WD8 y SHVC WD6 indica que pueden ser necesarias multiples pruebas para comprobar la conformidad de un flujo de bits, lo cual se conoce como el flujo de bits bajo prueba. Ademas, el parrafo C.1 de MV-HEVC WD8 y SHVC WD6 indica una serie de pasos a seguir para comprobar la conformidad de un flujo de bits.
[0223] En algunos ejemplos de esta divulgacion, la serie de pasos descritos en el Parrafo C.1 de MV-HEVC WD8 y SHVC WD6 se modifica con el fin de soportar el esquema de particion descrito en otra parte en esta divulgacion. Por ejemplo, se pueden hacer las siguientes modificaciones en el Parrafo C.1 de MV-HEVC WD8 y SHVC WD6.
[0224] Para cada prueba, se aplican los siguientes pasos en el orden indicado:
1. Un punto de funcionamiento bajo prueba, designado como TargetOp, se selecciona al seleccionar un valor para TargetOutputLayerSetIdx que identifica un conjunto de capas de salida objetivo y selecciona un valor mas alto de TemporalId objetivo HighestTid. El valor de TargetOutputLayerSetIdx estara en el rango de 0 a NumOutputLayerSets - 1, inclusive. El valor de HighestTid estara en el rango de 0 a MaxSubLayersInLayerSetMinus1[LayerSetIdxForOutputLayerSet[Target OutputLayerSetIdx]], inclusive. Las variables TargetDecLayerSetIdx, TargetOptLayerIdList y TargetDecLayerIdList se obtienen como se especifica en la Ecuacion 8-1. El punto de funcionamiento bajo prueba tiene OptLayerIdList igual a TargetOptLayerIdList, OpLayerIdList igual a TargetDecLayerIdList, y OpTid igual a HighestTid.
2. El proceso de extraccion subflujo de bits como se especifica en la clausula 10 se invoca con el flujo de bits bajo prueba, HighestTid y TargetDecLayerIdList como entradas, y la salida se asigna a BitstreamToDecode. Un esquema de particion se selecciona de la lista de esquemas de particion senalados en el VPS activo para el conjunto de capas de salida seleccionado. Despues de eso, para el esquema de particion seleccionado, se selecciona una particion de la lista de particiones senaladas en el VPS para el conjunto de capas de salida seleccionado.
3. Si la particion seleccionada contiene todas las capas del conjunto de capas de salida seleccionado, se selecciona el funcionamiento de CPB especifico del flujo de bits. De lo contrario, se selecciona el funcionamiento de CPB especifico de particion de flujo de bits. Los pasos siguientes se aplican al subflujo de bits de la particion seleccionada, denominada particion de flujo de bits bajo prueba, [[Cuando la estructura sintactica vps_vui_bsp_hrd_parameters() esta presente en el VPS activo, se selecciona un esquema de particion, designado como TargetPartitioningScheme, seleccionando un valor para TargetPartitioningSchemeIdx que esta en el rango de 1 a num_partitioning_schemes_minus 1[TargetOutputLayerSetIdx], inclusive. Cuando y num_bitstream_partitionsnNum_pPartitions_iIn_sScheme_minus1[TargetDecOutputLayerSetIdx][TargetPartitioningSchemeIdx] es mayor que 101, donde TargetPartitioningSchemeIdx es el Indice del TargetPartitioningScheme seleccionado que esta en el rango de 1 a num_partitioning_schemes_minus 1[TargetOutputLayerSetIdx] o esta presente un mensaje SEI de parametros de HRD de particion de flujo de bits y el mensaje SEI contiene el elemento sintactico num_sei_bitstream_partitions_in_scheme bitstream_partitions_minus1[TargetDecOutputLayerSetIdx] [TargetPatitioningSchemeIdx] mayor que 0, se selecciona el funcionamiento de CPB especifico del flujo de bits o el funcionamiento de CPB especifico de particion de flujo de bits para una prueba de conformidad, y ambos funcionamientos de CPB se deben probar para comprobar la conformidad de un flujo de bits. Cuando se prueba el funcionamiento de CPB especifico del flujo de bits, los pasos subsiguientes se aplican al flujo de bits bajo prueba. Cuando se prueba el funcionamiento de CPB especifico de particion de flujo de bits, los pasos subsiguientes se aplican a cada particion de flujo de bits de los flujos de bits bajo prueba, a los que se hace referenda como particion de flujos de bits bajo prueba. Cuando se prueba el funcionamiento de CPB especifico de particion de flujo de bits y la entrada al HRD es un flujo de bits, las particiones de flujo de bits se obtienen con el proceso de desmultiplexacion para obtener una particion de flujo de bits en la subclausula C.6. Cuando se selecciona el funcionamiento de CPB especifico de particion de flujo de bits, se supone que las particiones de flujo de bits de otras particiones del mismo esquema de particion del conjunto de capas de salida seleccionado se descodifican mediante capacidades de descodificacion distintas del HRD pero disponibles para el HRD segun lo programado de acuerdo con los parametros de HRD de esas particiones.
4. La estructura sintactica hrd_parameters() y la estructura sintactica sub_layer_hrd_parameters() aplicable a TargetOp se seleccionan de la forma siguiente:
■ Si se prueba el funcionamiento de CPB especifico del flujo de bits, se aplica lo siguiente:
■ Si TargetDecLayerldList contiene todos los valores nuh_layer_id presentes en el flujo de bits bajo prueba, se selecciona la estructura sintactica hrd_parameters() en el SPS activo para la capa base (o proporcionado a traves de medios externos no especificados en esta memoria descriptiva).
■ De lo contrario, se selecciona la estructura sintactica hrd_parameters() en el VPS activo (o proporcionado a traves de medios externos no especificados en esta memoria descriptiva) que se aplica a TargetOp.
■ De lo contrario, se selecciona la estructura sintactica hrd_parameters() de la forma siguiente:
■ Se puede seleccionar cualquiera de las estructuras sintacticas hrd_parameters() en las siguientes condiciones, si las dos condiciones siguientes son verdaderas:
■ La estructura sintactica vps_vui_bsp_hrd_parameters() esta presente en el VPS activo (o esta disponible a traves de medios externos no especificados en esta memoria descriptiva) y contiene una estructura sintactica hrd_parameters() que se aplica a TargetOp, a TargetPartitioningScheme y a la particion de flujo de bits bajo prueba.
■ Esta presente un mensaje SEI de parametros de HRD de particion de flujo de bits que se incluye en un SEI de agrupamiento escalable que se aplica a TargetOp y contiene una estructura sintactica hrd_parameters() que se aplica a TargetOp, a TargetPartitioningScheme y a la particion de flujo de bits bajo prueba presente (o esta disponible a traves de medios externos no especificados en esta memoria descriptiva).
■ De lo contrario, si la estructura sintactica vps_vui_bsp_hrd_parameters() esta presente en el VPS activo (o esta disponible a traves de medios externos no especificados en esta memoria descriptiva) y contiene una estructura sintactica hrd_parameters() que se aplica a TargetOp, TargetPartitioningScheme y la particion de flujo de bits bajo prueba, se selecciona esa estructura sintactica hrd_parameters().
■ De lo contrario, estara presente y se seleccionara una estructura sintactica hrd_parameters() que se aplica a la particion de flujo de bits bajo prueba en el mensaje SEI de parametros de HRD de particion de flujo de bits que se incluye en un mensaje SEI de agrupamiento escalable que se aplica a TargetOp y al TargetPartitioningScheme (o estara disponible a traves de algunos medios externos no especificados en esta memoria descriptiva).
Dentro de la estructura sintactica hrd_parameters() seleccionada, si BitstreamToDecode es un flujo de bits de Tipo I, se selecciona la estructura sintactica sub_layer_hrd_parameters(HighestTid) que sigue inmediatamente a la condicion "if(vcl_hrd_parameters_present_flag)" y la variable NalHrdModeFlag se establece igual a 0; de lo contrario (BitstreamToDecode es un Type flujo de bits II), se selecciona la estructura sintactica sub_layer_hrd_parameters(HighestTid) que sigue inmediatamente a la condicion "if(vcl_hrd_parameters_present_flag)" (en este caso, la variable NalHrdModeFlag se establece igual a 0) o la condicion" if(nal_hrd_parameters_present_flag)" (en este caso, la variable NalHrdModeFlag se establece igual a 1). Cuando BitstreamToDecode es un flujo de bits Tipo II y NalHrdModeFlag es igual a 0, todas las unidades NAL no VCL excepto las unidades NAL de datos de relleno y todos los elementos sintacticos leading_zero_8bits, zero_byte, start_code_prefix_one_3bytes, y trailing_zero_8bits que forman un flujo de bytes a partir el flujo de la unidad NAL (como se especifica en el Anexo B), cuando estan presentes, se descartan de BitstreamToDecode, y el flujo de bits restante se asigna a BitstreamToDecode.
5. Una unidad de acceso asociada con un mensaje SEI de periodo de almacenamiento en memoria intermedia (presente en BitstreamToDecode o disponible a traves de medios externos no especificados en esta memoria descriptiva) aplicable a TargetOp se selecciona como el punto de inicializacion de HRD y se denomina unidad de acceso 0. Un mensaje SEI de periodo de almacenamiento en memoria intermedia aplicable esta disponible a traves de medios externos no especificados en esta memoria descriptiva o se selecciona a partir de la unidad de acceso 0 de la forma siguiente:
■ Si se prueba el funcionamiento de CPB especifico del flujo de bits, se aplica lo siguiente:
■ Si TargetDecLayerIdList contiene todos los valores nuh_layer_id presentes en el flujo de bits bajo prueba, se selecciona un mensaje SEI de periodo de almacenamiento en memoria intermedia no agrupado.
■ De lo contrario, se selecciona un mensaje SEI de periodo de almacenamiento en memoria intermedia incluido en el mensaje SEI de agrupamiento escalable con bitstream_subset_flag igual a 1 y aplicable a TargetOp.
■ De lo contrario, se selecciona un mensaje SEI de periodo de almacenamiento en memoria intermedia incluido en el mensaje SEI de agrupamiento de particion de flujo de bits aplicable a la particion de flujo de bits bajo prueba.
La variable MultiLayerCpbOperationFlag se obtiene de la forma siguiente:
■ Si el mensaje SEI de periodo de almacenamiento en memoria intermedia seleccionado no esta agrupado o esta incluido en un mensaje SEI de agrupamiento escalable que se aplica solo al subflujo de bits que contiene solo la capa base, MultiLayerCpbOperationFlag se establece igual a 0.
■ De lo contrario, MultiLayerCpbOperationFlag es establece igual a 1.
6. Para cada unidad de acceso en BitstreamToDecode comenzando desde la unidad de acceso 0, se selecciona el mensaje SEI de periodo de almacenamiento en memoria intermedia (presente en BitstreamToDecode o disponible a traves de medios externos no especificados en esta memoria descriptiva) que esta asociado con la unidad de acceso y se aplica a TargetOp, se selecciona el mensaje SEI de sincronizacion de imagenes (presente en BitstreamToDecode o disponible a traves de medios externos no especificados en esta memoria descriptiva) que esta asociado con la unidad de acceso y se aplica a TargetOp, y cuando SubPicHrdFlag es igual a 1 y sub_pic_cpb_params_in_pic_timing_sei_flag es igual a 0, se seleccionan los mensajes SEI de informacion de la unidad de descodificacion (presentes en BitstreamToDecode o disponibles a traves de medios externos no especificados en esta memoria descriptiva) que estan asociados con unidades de descodificacion en la unidad de acceso y se aplican a TargetOp, de la forma siguiente:
■ Si se prueba el funcionamiento de CPB especifico del flujo de bits, se aplica lo siguiente:
■ Si TargetDecLayerIdList contiene todos los nuh_layer_id valores presentes en el flujo de bits bajo prueba, se seleccionan los mensajes SEI de periodo de almacenamiento en memoria intermedia no agrupado, sincronizacion de imagenes e informacion de la unidad de descodificacion.
■ De lo contrario, se seleccionan los mensajes SEI de periodo de almacenamiento en memoria intermedia, sincronizacion de imagenes e informacion de la unidad de descodificacion incluidos en el mensaje SEI de agrupamiento escalable con bitstream_subset_flag igual a 1 y aplicable a TargetOp.
■ De lo contrario, se seleccionan los mensajes SEI de periodo de almacenamiento en memoria intermedia, sincronizacion de imagenes e informacion de la unidad de descodificacion incluidos en el mensaje SEI de agrupamiento de particion de flujo de bits y aplicables a la particion de flujo de bits bajo prueba.
7. Un valor de SchedSelIdx se selecciona de la forma siguiente:
■ Si se prueba el funcionamiento de CPB especifico del flujo de bits, el SchedSelIdx seleccionado estara en el rango de 0 a cpb_cnt_minus1[HighestTid], inclusive, donde cpb_cnt_minus1[HighestTid] se encuentra en la estructura sintactica sub_layer_hrd_parameters(HighestTid) como se ha seleccionado mas arriba.
■ De lo contrario (se prueba el funcionamiento de CPB especifico de particion de flujo de bits), se selecciona un SchedSelCombIdx para el flujo de bits bajo prueba y se utiliza para cada particion de flujo de bits bajo prueba. Se aplica lo siguiente:
■ Si la estructura sintactica vps_vui_bsp_hrd_parameters() esta presente en el VPS activo (o disponible a traves de medios externos no especificados en esta memoria descriptiva) y contiene la estructura sintactica hrd_parameters() que se aplica a TargetOp y la particion de flujo de bits bajo prueba, el SchedSelCombIdx seleccionado estara en el rango de 0 a num_bsp_sched_combinations_minus1[TargetOutput/'/Dec//Layer SetIdx1[TargetPartitioningSchemeIdx1. inclusive, y el SchedSelIdx seleccionado sera igual a
bsp comb sched idx[TargetOutput//DecffLayerSetIdx][TargetPartitioningSchemeIdx] [SchedSelCombIdx][j] donde j es el indice de la particion de flujo de bits bajo prueba, donde TargetPartitioningSchemeIdx es el indice del TargetPartitioningScheme seleccionado que esta en el rango de 1 a num partitioning schemes minus1[TargetOutputLayerSetIdx 1
■ De lo contrario, el SchedSelCombIdx seleccionado estara en el rango de 0 a sei_num_bsp_sched_combinations_minus1[TargetOutpu;t//Dec//LayerSetIdx](Tar^3tPartit^ni^^^^^^ Idx], inclusive, y el SchedSelIdx seleccionado sera igual a sei_bsp_comb_sched_idx [TargetOutput//Dec//LayerSetIdx][TargetPartitioningSchemeIdx][SchedSelCombIdx][i] del mensaje SEI de
parametros de HRD de la particion de flujo de bits aplicable a TargetOp donde j es el indice de la particion de flujo de bits bajo prueba.
[0225] El HRD funciona de la forma siguiente: ...
■ El HRD se inicializa en la unidad de descodificacion 0, con la CPB, cada sub-DPB de la DPB, y cada BPB estableciendose para estar vacias (la plenitud de sub-DPB para cada sub-DPB se establece igual a 0).
NOTA 6 - Despues de la inicializacion, el HRD no se inicializa de nuevo mediante los posteriores mensajes SEI de periodo de almacenamiento en memoria intermedia posteriores.
■ Para el funcionamiento de CPB especifico de flujo de bits, los datos asociados con las unidades de descodificacion que fluyen en la CPB de acuerdo con un programa de llegadas especificado pueden entregarse mediante el HSS. Para el funcionamiento de CPB especifico de particion de flujo de bits, los datos asociados con las unidades de descodificacion que fluyen en el BPB de acuerdo con un programa de llegadas especificado son entregados por un HBPS.
■ Cuando se usa el funcionamiento de CPB especifico de particion de flujo de bits, cada particion de flujo de bits con indice j se procesa como se especifica en la clausula C.2 con HSS reemplazado por HPBS y con SchedSelldx igual a
bsp comb sched idx[TargetOutput//DecffLayerSetldxl[TargetPartitioningSc hemeldxIfSchedSelCombldxIfil. si la estructura sintactica vps_vui_bsp_hrd_parameters() esta presente en el VPS activo o esta disponible a traves de medios externos no especificados en esta memoria descriptiva), o igual a
sei bsp comb sched idx[TargetOutput//Dec//LayerSetldxl[TargetPartitionin gSchemeldxlfSchedSelCombldxlfjl del mensaje SEl de parametros de HRD de particion de flujo de bits aplicable a TargetOp, en caso contrario. ■ Los datos asociados a cada unidad de descodificacion se eliminan y descodifican instantaneamente mediante el proceso de descodificacion instantanea en el momento de eliminacion de CPB de la unidad de descodificacion.
■ Cada imagen descodificada se coloca en la DPB.
■ Se elimina una imagen descodificada de la DPB cuando ya no es necesaria para la referencia de interprediccion y ya no es necesaria para la salida.
[0226] Como se muestra arriba, cuando un HRD prueba cada particion de cada esquema de particion, basandose en una particion seleccionada de un esquema de particion particular del uno o mas esquemas de particion que no contienen todas las capas del conjunto de capas de salida, se puede aplicar el HRD, un funcionamiento de memoria intermedia de imagenes codificadas (CPB) especifico de particion. Por ejemplo, el HRD puede obtener, a partir de una estructura sintactica de parametros de programacion de flujo de bits (BSP) dentro de la VUl, uno o mas conjuntos de parametros de HRD. En un ejemplo similar, el HRD puede obtener, a partir de una estructura sintactica de BSP dentro del mensaje SEl, uno o mas conjuntos de parametros de HRD. Para cada esquema de particion respectivo del uno o mas esquemas de particion del conjunto de capas de salida, para cada combinacion respectiva en un conjunto de una o mas combinaciones de programas para el esquema de particion respectivo, para cada particion respectiva del esquema de particion respectivo, el HRD puede obtener, a partir de la estructura sintactica de BSP, un elemento sintactico respectivo (por ejemplo, bsp_comb_hrd_idx) especificando un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifica un programa de entregas (por ejemplo, sei_bsp_comb_sched_idx).
[0227] En ejemplos correspondientes, el codificador de video 20 incluye, en una estructura sintactica de BSP dentro de la VUl, uno o mas conjuntos de parametros de HRD. Para cada combinacion respectiva en un conjunto de una o mas combinaciones de programas para un esquema de particion respectivo, para cada particion respectiva del esquema de particion respectivo, el codificador de video 20 puede incluir, en la estructura sintactica de BSP, un elemento sintactico respectivo que especifique un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifica un programa de entregas. En otro ejemplo, el codificador 20 de video incluye, en una estructura sintactica de BSP dentro del mensaje SEl, uno o mas conjuntos de parametros de HRD. Para cada combinacion respectiva en un conjunto de una o mas combinaciones de programas para un esquema de particion respectivo, para cada particion respectiva del esquema de particion respectivo, el codificador de video 20 incluye, en la estructura sintactica de BSP, un elemento sintactico respectivo que especifica un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifica un programa de entregas.
[0228] Ademas, en algunos ejemplos, el Parrafo C.4 de MV-HEVC WD8 y SHVC WD6 se modifica de la forma siguiente:
Se elimina la siguiente frase:
El HRD prueba el flujo de bits en cuanto a conformidad como se especifica en la subclausula C.1.
Se agrega la siguiente frase:
El HRD prueba el subflujo de bits de cada particion de cada esquema de particion en cuanto a conformidad como se especifica en la subclausula C.1.
[0229] Como se indica mas arriba, un dispositivo de procesamiento de video puede ser capaz de determinar si un descodificador de video de multiples capas puede descodificar un flujo de bits basandose en una lista de tripletes de perfil, grado y nivel especificada para el descodificador de multiples capas. El siguiente texto es un ejemplo de como esto puede implementarse.
G.11.3 Capacidades de descodificadores
[0230] Los descodificadores que se ajusten a un conjunto de tripletes de perfil, grado y nivel indicados por (Pi, Ti, Li) para i en el rango de 0 a q - 1, inclusive, donde q es un entero positivo, deberan ser capaces de descodificar todos los subflujos de bits de los conjuntos de capas de salida con al menos un esquema de particion con particiones p para las cuales se aplican todas las condiciones siguientes:
■ Dejar la variable Particionfil para j en el rango de 0 a p - 1. inclusive, donde p es menor o igual a q. denote la jesima particion en el esquema de particion.
■ La union de las capas que estan contenidas en las particiones de la ParticionfQ 1 a la Particion fp-1 1, inclusive, representa todas las capas en el conjunto de capas de salida.
■ Dejar que la variable PartitionAssignmentfjl para j en el rango de 0 a p - 1, inclusive, se utilice para indicar la asignacion de descodificacion de tripletes de perfil, grado V nivel (PPartitionAssianmentni, TPartitionAssignmentfjl, LPartitionAssignmentfjl) a Partitionfjl.
[0231] El valor de PartitionAssignmentni se obtiene de la forma siguiente:
■ Dejar que UnassignedProfileTierLevelTriples sea una matriz de tripletes de perfil, grado y nivel con UnassignedProfileTierLevelTriplesfil es igual (Pi, T i, Li) para i en el rango de 0 a q - 1, inclusive.
■ Se aplica lo siguiente:
■ No habra ninguna entrada en PartitionAssignment
n
i que sea igual a - 1 j en el rango de 0 a p - 1, inclusive.
[0232] La FIG.5A es un diagrama de flujo que ilustra un ejemplo de operacion del codificador de video 20 de acuerdo con una tecnica de esta divulgacion. En el ejemplo de la FIG. 5A, el codificador de video 20 genera un flujo de bits que comprende una representacion codificada de los datos de video (300). El flujo de bits comprende una pluralidad de capas. Como parte de generar el flujo de bits, el codificador de video 20 incluye, en el flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion (302). Para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo especifica un conjunto respectivo de particiones disjuntas cuya union forma un conjunto de capas de salida, en el que cada particion respectiva del conjunto respectivo de particiones disjuntas contiene una o mas capas, el conjunto de capas de salida que consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas.
[0233] En algunos ejemplos, como parte de generar el flujo de bits, para cada particion respectiva de cada esquema de particion respectivo del uno o mas esquemas de particion, el codificador de video 20 puede indicar, en el flujo de bits, un elemento sintactico respectivo que indica un perfil, un grado y un nivel para la particion respectiva.
[0234] Ademas, en algunos ejemplos, el codificador de video 20 puede incluir, en el flujo de bits, elementos sintacticos que indican una pluralidad de conjuntos de capas de salida, con la pluralidad de conjuntos de capas de salida que incluye el primer conjunto de capas de salida. Para cada conjunto de capas de salida respectivo de la pluralidad de conjuntos de capas de salida, el codificador de video 20 puede incluir, en el flujo de bits, elementos sintacticos que indican uno o mas esquemas de particion para el conjunto de capas de salida respectivo.
[0235] En algunos ejemplos, como parte de senalar el uno o mas elementos sintacticos que indican el uno o mas esquemas de particion, para cada esquema de particion respectivo del uno o mas esquemas de particion, para cada particion respectiva del esquema de particion respectivo, para cada capa respectiva del conjunto de capas de salida, el codificador de video 20 puede incluir, en el flujo de bits, un elemento sintactico que indica si la capa respectiva esta incluida en la particion respectiva.
[0236] Ademas, en el ejemplo de la FIG. 5A, el codificador de video 20 emite el flujo de bits (304). Por ejemplo, el codificador de video 20 puede emitir el flujo de bits a una interfaz de salida, tal como la interfaz de salida 22. En algunos ejemplos, el codificador de video 20 puede emitir el flujo de bits a uno o mas medios de almacenamiento de datos legibles por ordenador para su almacenamiento.
[0237] La FIG. 5B es un diagrama de flujo que ilustra un ejemplo de funcionamiento del descodificador de video 30, de acuerdo con una tecnica de esta divulgacion. En el ejemplo de la FIG. 5B, el descodificador de video 30 descodifica un flujo de bits que comprende una representacion codificada de los datos de video, comprendiendo el flujo de bits una pluralidad de capas (320). Como parte de la descodificacion del flujo de bits, el descodificador de video 30 obtiene, a partir del flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion (322). Para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo especifica un conjunto respectivo de particiones disjuntas cuya union forma un conjunto de capas de salida. Cada particion respectiva del conjunto respectivo de particiones disjuntas contiene una o mas de las capas. El conjunto de capas de salida puede consistir en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas. En algunos ejemplos, como parte de obtener el uno o mas elementos sintacticos, para cada esquema de particion respectivo del uno o mas esquemas de particion, para cada particion respectiva del esquema de particion respectivo, para cada capa respectiva del conjunto de capas de salida, el descodificador de video 30 puede obtener, a partir del flujo de bits, un elemento sintactico que indica si la capa respectiva esta incluida en la particion respectiva.
[0238] Ademas, como parte de descodificar el flujo de bits, el descodificador de video 30 descodifica cada una de las particiones de un esquema de particion particular usando diferentes nucleos de procesamiento en una pluralidad de nucleos de hardware, siendo el esquema de particion particular uno de los uno o mas esquemas de particion (324). En algunos ejemplos, como parte de descodificar el flujo de bits, el descodificador de video 30 puede, para cada particion respectiva de cada esquema de particion respectivo del uno o mas esquemas de particion, obtener, a partir del flujo de bits, un elemento sintactico respectivo que indique la informacion de perfil, grado y nivel (PTL) respectiva para la particion respectiva.
[0239] En algunos ejemplos, el descodificador de video 30 puede determinar, basandose en la informacion de PTL para particiones de los esquemas de particion, el esquema de particion particular del uno o mas esquemas de particion. Ademas, en dichos ejemplos, el descodificador de video 30 puede descodificar cada particion respectiva del esquema de particion particular usando uno de los respectivos nucleos de hardware, en el que cada uno de los respectivos nucleos de hardware implementa un descodificador de capa unica respectivo. En algunos ejemplos, al menos un primer nucleo de hardware de la pluralidad de nucleos de hardware soporta un perfil, grado o nivel diferente de un segundo nucleo de hardware de la pluralidad de nucleos de hardware. En otros ejemplos, al menos un primer nucleo de hardware de la pluralidad de nucleos de hardware y un segundo nucleo de hardware diferente de la pluralidad de nucleos de hardware soportan el mismo conjunto de perfiles, grados y niveles.
[0240] En algunos ejemplos, cuando el descodificador de video 30 descodifica el flujo de bits, el descodificador de video 30 obtiene, a partir del flujo de bits, elementos sintacticos que indican una pluralidad de conjuntos de capas de salida, con la pluralidad de conjuntos de capas de salida que incluye el primer conjunto de capas de salida. En dichos ejemplos, para cada conjunto de capas de salida respectivo de la pluralidad de conjuntos de capas de salida, el descodificador de video 30 puede obtener, a partir del flujo de bits, elementos sintacticos que indican uno o mas esquemas de particion para el conjunto de capas de salida respectivo.
[0241] La FIG. 6A es un diagrama de flujo que ilustra un ejemplo de operacion del codificador de video 20 de acuerdo con una tecnica de esta divulgacion. En el ejemplo de la FIG. 6A, el codificador de video 20 genera un flujo de bits que comprende una representacion codificada de los datos de video (350). El flujo de bits comprende una pluralidad de capas. Como parte de generar el flujo de bits, el codificador de video 20 incluye, en el flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida (352). En el
ejemplo de la FIG. 6A, el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas. Ademas, para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa en el conjunto de capas de salida pertenece exactamente a una particion en el respectivo esquema de particion. Ademas, como parte de generar el flujo de bits, para cada esquema de particion respectivo del uno o mas esquemas de particion, el codificador de video 20 incluye, en un mensaje SEI en el flujo de bits o VUI en un VPS en el flujo de bits, un conjunto respectivo de elementos sintacticos (por ejemplo, elementos sintacticos bsp_comb_hrd_idx) que indican conjuntos de parametros de HRD para el esquema de particion respectivo (354). El codificador de video 20 emite el flujo de bits (356). Por ejemplo, el codificador de video 20 puede emitir el flujo de bits a una interfaz de salida, tal como la interfaz de salida 22. En algunos ejemplos, el codificador de video 20 puede emitir el flujo de bits a uno o mas medios de almacenamiento de datos legibles por ordenador para su almacenamiento.
[0242] En algunos ejemplos, como parte de incluir el conjunto respectivo de elementos sintacticos que indican los conjuntos de parametros de HRD para cada uno de los uno o mas esquemas de particion, el codificador de video 20 puede incluir, en una estructura sintactica de parametros de programacion de flujo de bits (BSP) dentro de la VUI. uno o mas conjuntos de parametros de HRD. Ademas, en dichos ejemplos, para cada combinacion respectiva en un conjunto de una o mas combinaciones de programas para el esquema de particion respectivo, para cada particion respectiva del esquema de particion respectivo, el codificador de video 20 puede incluir, en la estructura sintactica de BSP, un elemento sintactico respectivo que especifica un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifica un programa de entregas.
[0243] En algunos ejemplos, como parte de incluir el conjunto respectivo de elementos sintacticos que indican los conjuntos de parametros de HRD para cada uno de los uno o mas esquemas de particion, el codificador de video 20 puede incluir, en una estructura sintactica de parametros de programacion de flujo de bits (BSP) dentro del mensaje SEI, uno o mas conjuntos de parametros de HRD. Ademas, en dichos ejemplos, para cada combinacion respectiva en un conjunto de una o mas combinaciones de programas para el esquema de particion respectivo, para cada particion respectiva del esquema de particion respectivo, el codificador de video 20 puede incluir, en la estructura sintactica de BSP, un elemento sintactico respectivo que especifica un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifica un programa de entregas.
[0244] La FIG. 6B es un diagrama de flujo que ilustra un ejemplo de funcionamiento del descodificador de video 30, de acuerdo con una tecnica de esta divulgacion. En el ejemplo de la FIG. 6B, el descodificador de video 30 obtiene, a partir de un flujo de bits que comprende una representacion codificada de datos de video, uno o mas elementos sintacticos que indican uno o mas esquemas de particion para un conjunto de capas de salida (370). En el ejemplo de la FIG. 6B, el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas. Para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa en el conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo.
[0245] Ademas, en el ejemplo de la FIG. 6B, para cada esquema de particion respectivo del uno o mas esquemas de particion, el descodificador de video 30 obtiene, a partir de un mensaje SEI en el flujo de bits o VUI en un VPS en el flujo de bits, un conjunto respectivo de elementos sintacticos (por ejemplo, elementos sintacticos bsp_comb_hrd_idx) que indican conjuntos de parametros de HRD para el esquema de particion respectivo (372).
[0246] En algunos ejemplos, como parte de obtener un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros de HRD para el esquema de particion respectivo, el descodificador de video 30 obtiene, a partir de una estructura sintactica de parametros de programacion de flujo de bits (BSP) dentro de la VUI, uno o mas conjuntos de parametros de HRD. En dichos ejemplos, para cada combinacion respectiva en un conjunto de una o mas combinaciones de programas para el esquema de particion respectivo, para cada particion respectiva del esquema de particion respectivo, el descodificador de video 30 puede obtener, a partir de la estructura sintactica de BSP, un elemento sintactico respectivo que especifica un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifica un programa de entregas.
[0247] En algunos ejemplos, como parte de obtener un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros de HRD para el esquema de particion respectivo, el descodificador de video 30 obtiene, a partir de una estructura sintactica de parametros de programacion de flujo de bits (BSP) dentro del mensaje SEI, uno o mas conjuntos de parametros de HRD. En dichos ejemplos, para cada combinacion respectiva en un conjunto de una o mas combinaciones de programas para el esquema de particion respectivo, para cada particion respectiva del esquema de particion respectivo, el descodificador de video 30 puede obtener, a partir de la estructura sintactica de BSP, un elemento sintactico respectivo que especifica un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifica un programa de entregas.
[0248] Para cada particion respectiva del esquema de particion respectivo, el descodificador de video 30 prueba, basandose en los parametros de HRD para el esquema de particion respectivo, la particion respectiva en cuanto a
conformidad (374). En algunos ejemplos, como parte de probar los subflujos de bits, el descodificador de video 30 aplica, basandose en una particion seleccionada de un esquema de particion particular del uno o mas esquemas de particion que no contienen todas las capas del conjunto de capas de salida, una CPB especifica de la particion operacion. En algunos ejemplos, probar la conformidad de una particion particular supone que las imagenes descodificadas y otra informacion necesaria de las capas de referencia directa e indirecta de las capas en la particion, y que no estan contenidas en la particion particular, estan disponibles en el momento de descodificar las imagenes de las capas en la particion en particular.
[0249] La FIG. 7 es un diagrama de flujo que ilustra un ejemplo de funcionamiento de un descodificador de video 30, de acuerdo con una tecnica de esta divulgacion. En el ejemplo de la FIG. 7, el descodificador de video 30 determina, basandose en una lista de entradas triples, si el descodificador de video 30 (es decir, un descodificador de video de multiples capas) es capaz de descodificar un flujo de bits que comprende una representacion codificada de datos de video de multiples capas (400). En algunos ejemplos, el numero de entradas triples en la lista es menor o igual que una cantidad de descodificadores de capa unica en los datos de video de multiples capas. En algunos ejemplos, un unico nucleo de hardware del descodificador de video 30 puede descodificar multiples capas. Cada entrada triple respectiva en la lista de entradas triples indica un perfil, un grado y un nivel para un descodificador de capa unica respectivo en el descodificador de video de multiples capas. Basandose en el descodificador de video de multiples capas que es capaz de descodificar el flujo de bits, el descodificador de video 30 descodifica el flujo de bits (402).
[0250] En algunos ejemplos, el descodificador de video 30 obtiene, a partir del flujo de bits, uno o mas elementos sintacticos que indican uno o mas esquemas de particion. Para cada esquema de particion respectivo del uno o mas esquemas de particion, el esquema de particion respectivo especifica un conjunto respectivo de particiones disjuntas cuya union forma un conjunto de capas de salida. Cada particion respectiva del conjunto respectivo de particiones disjuntas contiene una o mas de las capas, consistiendo el conjunto de capas de salida en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas. Como parte de determinar si el descodificador de video de multiples capas es capaz de descodificar el flujo de bits, el descodificador de video 30 puede determinar, basandose en que se satisfaga una condicion, que el descodificador de video de multiples capas es capaz de descodificar el flujo de bits. En dichos ejemplos, la condicion se satisface basandose en que exista un esquema de particion adecuado en el uno o mas esquemas de particion. Ademas, en dichos ejemplos, para cada particion respectiva del esquema de particion adecuado, se puede asignar uno de los descodificadores de capa unica para descodificar la particion respectiva. En algunos ejemplos, como parte de determinar que el descodificador de video de multiples capas es capaz de descodificar el flujo de bits, para cada particion respectiva del esquema de particion adecuado, basandose en que se cumplan las siguientes condiciones, el descodificador de video de multiples capas puede determinar que la particion respectiva se puede asignar a uno de los descodificadores de capa unica: un nivel asociado con el descodificador de capa unica es mayor o igual que un nivel senalado para la particion respectiva, un grado asociado con el descodificador de capa unica es mayor o igual que un grado senalado para la particion respectiva, y un perfil asociado con la particion respectiva es tal que el descodificador de capa unica soporta la descodificacion del perfil.
[0251] En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinacion de estos. Si se implementan en software, las funciones, como una o mas instrucciones o codigo, pueden almacenarse en, o transmitirse por, un medio legible por ordenador o ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos o unos medios de comunicacion que incluyen cualquier medio que facilite la transferencia de un programa informatico desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicacion. De esta manera, los medios legibles por ordenador pueden corresponder en general a (1) unos medios de almacenamiento tangibles legibles por ordenador que son no transitorios, o (2) un medio de comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible a los que se pueda acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para la implementacion de las tecnicas descritas en la presente divulgacion. Un producto de programa informatico puede incluir un medio legible por ordenador.
[0252] A modo de ejemplo, y no de limitacion, dichos medios de almacenamiento legibles por ordenador pueden comprender memoria RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash o cualquier otro medio que pueda usarse para almacenar un codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Ademas, cualquier conexion recibe debidamente la denominacion de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra optica, un par trenzado, una linea de abonado digital (DSL) o tecnologias inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologias inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio. Sin embargo, deberia entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. El termino disco,
tal como se utiliza en el presente documento, incluye un disco compacto (CD), un disco laser, un disco optico, un disco versatil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos habitualmente reproducen datos magneticamente, mientras que otros discos reproducen datos opticamente con laseres. Las combinaciones de lo anterior deberian incluirse tambien dentro del alcance de los medios legibles por ordenador.
[0253] Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados de aplicacion especifica (ASIC), matrices de logicas programables de campo (FPGA) u otros circuitos logicos integrados o discretos equivalentes. Por consiguiente, el termino "procesador", como se usa en el presente documento, puede referirse a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de modulos de hardware y/o software dedicados configurados para la codificacion y la descodificacion, o incorporarse en un codec combinado. Ademas, las tecnicas podrian implementarse completamente en uno o mas circuitos o elementos logicos.
[0254] Las tecnicas de la presente divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un telefono inalambrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, modulos o unidades se describen en la presente divulgacion para enfatizar aspectos funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente su realizacion mediante diferentes unidades de hardware. Mas bien, como se describe mas arriba, se pueden combinar diversas unidades en una unidad de hardware de codec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, incluyendo uno o mas procesadores como se describe mas arriba, juntamente con software y/o firmware adecuados.
[0255] Se han descrito varios ejemplos. Estos y otros ejemplos estan dentro del alcance de las siguientes reivindicaciones.
Claims (12)
1. Un procedimiento para probar la conformidad con una norma de codificacion de video, comprendiendo el procedimiento:
obtener, a partir de un flujo de bits que comprende una representacion codificada de datos de video, uno o mas elementos sintacticos que indican una pluralidad de esquemas de particion diferentes para un conjunto de capas de salida, en el que:
el flujo de bits comprende una pluralidad de capas,
el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas;
para cada esquema de particion respectivo de la pluralidad de esquemas de particion diferentes: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa en el conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y
para cada esquema de particion respectivo de la pluralidad de esquemas de particion diferentes:
obtener, a partir de un mensaje de Informacion de Mejora Suplementario (SEI) en el flujo de bits o informacion de usabilidad de video (VUI) en un conjunto de parametros de video (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y
para cada particion respectiva del esquema de particion respectivo, probar, basandose en los conjuntos de parametros de HRD para los esquemas de particion respectivos, la particion respectiva para la conformidad con la norma de codificacion de video.
2. El procedimiento de la reivindicacion 1, en el que probar la particion respectiva comprende:
basandose en la particion respectiva que no contiene todas las capas del conjunto de capas de salida, aplicar una operacion de memoria intermedia de imagenes codificadas (CPB) especifica de la particion.
3. El procedimiento de la reivindicacion 1, en el que obtener el conjunto respectivo de elementos sintacticos que indican los conjuntos de parametros de HRD para el esquema de particion respectivo comprende:
obtener, a partir de una estructura sintactica de parametros de programacion de flujo de bits (BSP) dentro de la VUI, uno o mas conjuntos de parametros de HRD; y
para cada combinacion respectiva en un conjunto de una o mas combinaciones de esquemas para el esquema de particion respectivo:
para cada particion respectiva del esquema de particion respectivo:
obtener, a partir de la estructura sintactica de BSP, un elemento sintactico respectivo que especifica un conjunto de parametros HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifica un programa de entrega.
4. El procedimiento de la reivindicacion 1, en el que obtener el conjunto respectivo de elementos sintacticos que indican los conjuntos de parametros de HRD para el esquema de particion respectivo comprende:
obtener, a partir de una estructura sintactica de parametros de programacion de flujo de bits (BSP) dentro del mensaje SEI, uno o mas conjuntos de parametros de HRD; y
para cada combinacion respectiva en un conjunto de una o mas combinaciones de programa para el esquema de particion respectivo:
para cada particion respectiva del esquema de particion respectivo:
obtener, a partir de la estructura sintactica de BSP, un elemento sintactico respectivo que especifique un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifique un programa de entrega.
5. El procedimiento de la reivindicacion 1, en el que la conformidad del flujo de bits se define basandose en la conformidad de todas las particiones de cada uno de los uno o mas esquemas de particion.
6. El procedimiento de la reivindicacion 1, en el que probar la conformidad de la particion respectiva supone que las imagenes descodificadas y otra informacion necesaria de las capas de referencia directa e indirecta de las capas en la particion respectiva, y que no estan contenidas en la particion respectiva, estan disponibles en el momento de descodificar las imagenes de las capas en la particion respectiva.
7. Un dispositivo para probar la conformidad de flujo de bits, comprendiendo el dispositivo:
medios para obtener, a partir de un flujo de bits que comprende una representacion codificada de datos de video, uno o mas elementos sintacticos que indican una pluralidad de esquemas de particion diferentes para un conjunto de capas de salida, en el que:
el flujo de bits comprende una pluralidad de capas,
el conjunto de capas de salida consiste en todas las capas de la pluralidad de capas o un subconjunto adecuado de la pluralidad de capas;
para cada esquema de particion respectivo de la pluralidad de esquemas de particion diferentes: el esquema de particion respectivo especifica una division del conjunto de capas de salida en una o mas particiones, en el que cada capa en el conjunto de capas de salida pertenece exactamente a una particion en el esquema de particion respectivo; y
medios para obtener, para cada esquema de particion respectivo de la pluralidad de esquemas de particion diferentes, a partir de un mensaje de Informacion de Mejora Suplementario (SEI) en el flujo de bits o informacion de usabilidad de video (VUI) en un conjunto de parametros de video (VPS) en el flujo de bits, un conjunto respectivo de elementos sintacticos que indican conjuntos de parametros hipoteticos de descodificador de referencia (HRD) para el esquema de particion respectivo; y
medios para probar, basandose en los conjuntos de parametros de HRD para los esquemas de particion respectivos, la particion respectiva para la conformidad con una norma de codificacion de video.
8. El dispositivo de la reivindicacion 7, en el que los medios para probar la particion respectiva comprenden:
medios para aplicar, basandose en la particion respectiva que no contiene todas las capas del conjunto de capas de salida, una operacion de memoria intermedia de imagenes codificadas (CPB) especifica de la particion.
9. El dispositivo de la reivindicacion 7, en el que los medios para obtener el conjunto respectivo de elementos sintacticos que indican los conjuntos de parametros de HRD para el esquema de particion respectivo comprenden:
medios para obtener, a partir de una estructura sintactica de parametros de programacion de flujo de bits (BSP) dentro de la VUI, uno o mas conjuntos de parametros de HRD; y
para cada combinacion respectiva en un conjunto de una o mas combinaciones de programa para el esquema de particion respectivo:
para cada particion respectiva del esquema de particion respectivo:
medios para obtener, a partir de la estructura sintactica de BSP, un elemento sintactico respectivo que especifique un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifique un programa de entrega.
10. El dispositivo de la reivindicacion 7, en el que los medios para obtener el conjunto respectivo de elementos sintacticos que indican los conjuntos de parametros de HRD para el esquema de particion respectivo comprenden:
medios para obtener, a partir de una estructura sintactica de parametros de programacion de flujo de bits (BSP) dentro del mensaje SEI, uno o mas conjuntos de parametros de HRD; y
para cada combinacion respectiva en un conjunto de una o mas combinaciones de programas para el esquema de particion respectivo:
para cada particion respectiva del esquema de particion respectivo:
medios para obtener, a partir de la estructura sintactica de BSP, un elemento sintactico respectivo que especifique un conjunto de parametros de HRD para la particion respectiva en la estructura sintactica de BSP y un elemento sintactico respectivo que especifique un programa de entrega.
11. El dispositivo de la reivindicacion 7, en el que la conformidad del flujo de bits se define basandose en la conformidad de todas las particiones de cada uno de la pluralidad de esquemas de particion diferentes.
12. El dispositivo de la reivindicacion 7, en el que los medios para probar la conformidad de la particion respectiva suponen que las imagenes descodificadas y otra informacion necesaria de las capas de referencia directa e indirecta de las capas en la particion respectiva, estan disponibles en el momento de descodificar las imagenes de las capas en la particion respectiva.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201461987463P | 2014-05-01 | 2014-05-01 | |
| US201461993980P | 2014-05-15 | 2014-05-15 | |
| US14/700,953 US10390087B2 (en) | 2014-05-01 | 2015-04-30 | Hypothetical reference decoder parameters for partitioning schemes in video coding |
| PCT/US2015/028795 WO2015168553A1 (en) | 2014-05-01 | 2015-05-01 | Method and device for testing conformance of hypothetical reference decoder parameters for partitioning schemes in video coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2711535T3 true ES2711535T3 (es) | 2019-05-06 |
Family
ID=54356175
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES15723383T Active ES2711535T3 (es) | 2014-05-01 | 2015-05-01 | Procedimiento y dispositivo para probar la conformidad de parámetros hipotéticos de descodificador de referencia para esquemas de partición en la codificación de vídeo |
| ES15722859.4T Active ES2686699T3 (es) | 2014-05-01 | 2015-05-01 | Procedimiento y dispositivo para descodificar datos de vídeo de múltiples capas determinando la capacidad del descodificador basándose en el perfil, grado y nivel asociados con la partición que contiene una o más capas |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES15722859.4T Active ES2686699T3 (es) | 2014-05-01 | 2015-05-01 | Procedimiento y dispositivo para descodificar datos de vídeo de múltiples capas determinando la capacidad del descodificador basándose en el perfil, grado y nivel asociados con la partición que contiene una o más capas |
Country Status (10)
| Country | Link |
|---|---|
| US (3) | US10390087B2 (es) |
| EP (3) | EP3138292B1 (es) |
| JP (3) | JP6858562B2 (es) |
| KR (3) | KR102384092B1 (es) |
| CN (3) | CN106464935B (es) |
| BR (3) | BR112016025419B1 (es) |
| ES (2) | ES2711535T3 (es) |
| HU (2) | HUE040132T2 (es) |
| MX (2) | MX363421B (es) |
| WO (3) | WO2015168591A1 (es) |
Families Citing this family (63)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10390087B2 (en) | 2014-05-01 | 2019-08-20 | Qualcomm Incorporated | Hypothetical reference decoder parameters for partitioning schemes in video coding |
| US9699480B2 (en) * | 2014-06-13 | 2017-07-04 | Sharp Laboratories Of America, Inc. | Level limits |
| US10264286B2 (en) * | 2014-06-26 | 2019-04-16 | Qualcomm Incorporated | Bitstream conformance constraints in scalable video coding |
| US10283091B2 (en) * | 2014-10-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Buffer optimization |
| CN116193116A (zh) * | 2016-03-30 | 2023-05-30 | 韩国电子通信研究院 | 使用画面划分信息对视频进行编码和解码的方法和设备 |
| CA3025466A1 (en) * | 2016-05-24 | 2017-11-30 | Sharp Kabushiki Kaisha | Systems and methods for signaling scalable video in a media application format |
| US11166027B2 (en) * | 2016-06-10 | 2021-11-02 | Apple Inc. | Content adaptation for streaming |
| KR102390384B1 (ko) * | 2017-03-13 | 2022-04-22 | 에스케이텔레콤 주식회사 | 영상 부호화 또는 복호화하기 위한 장치 및 방법 |
| US11049219B2 (en) | 2017-06-06 | 2021-06-29 | Gopro, Inc. | Methods and apparatus for multi-encoder processing of high resolution content |
| GB2572770B (en) * | 2018-04-09 | 2022-11-02 | Canon Kk | Method and apparatus for encoding or decoding video data with frame portions |
| TWI820196B (zh) | 2018-08-28 | 2023-11-01 | 大陸商北京字節跳動網絡技術有限公司 | 用擴展四叉樹進行分割時的上下文編解碼 |
| EP3788779A4 (en) * | 2018-10-23 | 2022-03-02 | Tencent America LLC | METHOD AND DEVICE FOR VIDEO CODING |
| CN113273202A (zh) * | 2019-01-04 | 2021-08-17 | 华为技术有限公司 | 基于子图像的随机接入 |
| US11381867B2 (en) * | 2019-01-08 | 2022-07-05 | Qualcomm Incorporated | Multiple decoder interface for streamed media data |
| CN113273197B (zh) | 2019-02-03 | 2026-03-13 | 北京字节跳动网络技术有限公司 | 视频块分割模式的信令通知 |
| EP3939279A4 (en) | 2019-03-15 | 2022-08-31 | Beijing Dajia Internet Information Technology Co., Ltd. | SIGNALING LOSSLESS ENCODING IN VIDEO ENCODING |
| WO2020233661A1 (en) | 2019-05-21 | 2020-11-26 | Beijing Bytedance Network Technology Co., Ltd. | Syntax signaling in sub-block merge mode |
| KR20220012356A (ko) * | 2019-06-03 | 2022-02-03 | 노키아 테크놀로지스 오와이 | 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램 |
| MX2021014618A (es) * | 2019-06-03 | 2022-04-06 | Nokia Technologies Oy | Un aparato y un metodo para codificacion y decodificacion de video. |
| US11109067B2 (en) * | 2019-06-26 | 2021-08-31 | Gopro, Inc. | Methods and apparatus for maximizing codec bandwidth in video applications |
| US11228781B2 (en) | 2019-06-26 | 2022-01-18 | Gopro, Inc. | Methods and apparatus for maximizing codec bandwidth in video applications |
| CN114208166B (zh) | 2019-08-10 | 2024-04-09 | 北京字节跳动网络技术有限公司 | 视频比特流中的子图片相关信令通知 |
| EP4018671A4 (en) | 2019-09-19 | 2022-12-07 | Beijing Bytedance Network Technology Co., Ltd. | Deriving reference sample positions in video coding |
| CN117956189A (zh) * | 2019-09-24 | 2024-04-30 | 华为技术有限公司 | 支持空间可适性和snr可适性的ols |
| AU2020354918B2 (en) | 2019-09-24 | 2026-03-05 | Huawei Technologies Co., Ltd. | Disallowing unnecessary layers in multi-layer video bitstreams |
| 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) |
| CN114979663B (zh) | 2019-09-24 | 2023-08-04 | 华为技术有限公司 | 解码器、编码器及其实现的方法 |
| AU2020354925B2 (en) * | 2019-09-24 | 2026-03-12 | Huawei Technologies Co., Ltd. | Signaling of DPB parameters for multi-layer video bitstreams |
| KR102609308B1 (ko) * | 2019-10-02 | 2023-12-05 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스 |
| MX2022003836A (es) | 2019-10-05 | 2022-05-12 | Beijing Bytedance Network Tech Co Ltd | Se?alizacion basada en los niveles de las herramientas de codificacion de video. |
| KR20250093594A (ko) | 2019-10-07 | 2025-06-24 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 서브 비트스트림 추출의 오류 방지 |
| US11265567B2 (en) * | 2019-10-08 | 2022-03-01 | Tencent America LLC | Method for output layer set signaling in scalable video stream |
| CN110677699B (zh) * | 2019-10-10 | 2022-03-08 | 上海依图网络科技有限公司 | 视频流和/或图片流数据的共享方法、装置及电子设备 |
| JP7414980B2 (ja) | 2019-10-13 | 2024-01-16 | 北京字節跳動網絡技術有限公司 | 参照ピクチャリサンプリングと映像コーディングツールとの間の相互作用 |
| KR102871115B1 (ko) | 2019-10-18 | 2025-10-16 | 두인 비전 컴퍼니 리미티드 | 서브픽처들의 파라미터 세트 시그널링에서의 신택스 제약들 |
| US11481863B2 (en) | 2019-10-23 | 2022-10-25 | Gopro, Inc. | Methods and apparatus for hardware accelerated image processing for spherical projections |
| CN115280774B (zh) | 2019-12-02 | 2025-08-19 | 抖音视界有限公司 | 视觉媒体处理的方法、装置及非暂时性计算机可读存储介质 |
| CN120455697A (zh) * | 2019-12-13 | 2025-08-08 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法、解码方法和比特流生成装置 |
| WO2021134047A1 (en) | 2019-12-26 | 2021-07-01 | Bytedance Inc. | Profile tier level parameter set in video coding |
| JP7425204B2 (ja) | 2019-12-26 | 2024-01-30 | バイトダンス インコーポレイテッド | ビデオビットストリームにおける仮想参照デコーダパラメータのシグナリングに対する制約 |
| JP7431330B2 (ja) | 2019-12-26 | 2024-02-14 | バイトダンス インコーポレイテッド | ビデオコーディングにおけるプロファイル、層及びレイヤの指示 |
| JP7422881B2 (ja) | 2019-12-27 | 2024-01-26 | バイトダンス インコーポレイテッド | パラメータセットにおけるサブピクチャシグナリング |
| WO2021129866A1 (en) | 2019-12-27 | 2021-07-01 | Beijing Bytedance Network Technology Co., Ltd. | Signaling of slice types in video pictures headers |
| WO2021137591A1 (ko) * | 2019-12-30 | 2021-07-08 | 엘지전자 주식회사 | Ols dpb 파라미터 인덱스를 포함하는 영상 정보 기반 영상 디코딩 방법 및 그 장치 |
| CN115152233B (zh) | 2019-12-30 | 2025-04-15 | Lg电子株式会社 | 包括dpb管理处理的图像解码方法及其设备 |
| WO2021142364A1 (en) | 2020-01-09 | 2021-07-15 | Bytedance Inc. | Signalling of high level syntax indication |
| BR112022016943A2 (pt) | 2020-02-24 | 2022-10-25 | Bytedance Inc | Método de processamento de vídeo, aparelho para processar dados de vídeo e meios de armazenamento e gravação não transitórios legíveis por computador |
| CN115211044B (zh) * | 2020-03-03 | 2024-10-01 | 字节跳动有限公司 | 使用条带头信令通知控制缩放处理 |
| CN116195256A (zh) * | 2020-03-20 | 2023-05-30 | 寰发股份有限公司 | 图片和视频编解码中以信号通知片和切片分区信息的方法和装置 |
| CN115349254A (zh) | 2020-03-23 | 2022-11-15 | 抖音视界有限公司 | 控制编解码视频中不同级别的去块滤波 |
| US11228776B1 (en) * | 2020-03-27 | 2022-01-18 | Tencent America LLC | Method for output layer set mode in multilayered video stream |
| WO2021201540A1 (ko) * | 2020-03-30 | 2021-10-07 | 엘지전자 주식회사 | Ptl 관련 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체 |
| US11470357B2 (en) * | 2020-04-03 | 2022-10-11 | Sharp Kabushiki Kaisha | Systems and methods for signaling decoding capability information in video coding |
| GB2593776A (en) * | 2020-04-03 | 2021-10-06 | Sony Group Corp | Video data encoding and decoding |
| WO2021246790A1 (ko) * | 2020-06-03 | 2021-12-09 | 엘지전자 주식회사 | 영상/비디오 코딩 시스템에서 일반 제한 정보를 처리하는 방법 및 장치 |
| CN116134821A (zh) | 2020-06-03 | 2023-05-16 | Lg电子株式会社 | 用于在图像/视频编码系统中处理高级语法的方法和设备 |
| CN115917978B (zh) * | 2020-06-08 | 2025-11-14 | 字节跳动有限公司 | 对解码图片缓存的约束 |
| KR102845874B1 (ko) * | 2020-06-09 | 2025-08-14 | 바이트댄스 아이엔씨 | 서브픽처 레벨 및 버퍼링 정보의 시그널링 |
| US11770498B2 (en) | 2020-09-29 | 2023-09-26 | Lemon Inc. | Supplemental enhancement information for multi-layer video streams |
| KR20240068711A (ko) * | 2021-10-08 | 2024-05-17 | 바이트댄스 아이엔씨 | 동영상을 처리하는 방법, 장치 및 매체 |
| EP4583511A1 (en) * | 2022-09-03 | 2025-07-09 | LG Electronics Inc. | Image encoding/decoding method and device for signaling hrd parameters, and computer-readable recording medium onto which bitstream is stored |
| WO2025221836A1 (en) * | 2024-04-19 | 2025-10-23 | Bytedance Inc. | Various high-level syntax improvements in dynamic mesh coding |
| EP4657857A1 (en) * | 2024-05-31 | 2025-12-03 | Beijing Xiaomi Mobile Software Co., Ltd. | Methods for video encoding and video decoding, video encoder and video decoder for supporting multi-layer rgbd video profiles |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8615038B2 (en) * | 2004-12-06 | 2013-12-24 | Nokia Corporation | Video coding, decoding and hypothetical reference decoder |
| US20070230564A1 (en) | 2006-03-29 | 2007-10-04 | Qualcomm Incorporated | Video processing with scalability |
| LT3264780T (lt) | 2007-04-18 | 2020-08-10 | Dolby International Ab | Kodavimo sistemos, kuriose naudojamas papildomas sekos parametras kintamo dydžio vaizdo kodavimui arba kelių vaizdų kodavimui |
| JP5131101B2 (ja) * | 2008-09-09 | 2013-01-30 | 富士通株式会社 | 動画像編集装置および動画像編集プログラム |
| JP5332773B2 (ja) * | 2009-03-18 | 2013-11-06 | ソニー株式会社 | 画像処理装置および方法 |
| US8341168B1 (en) * | 2009-06-04 | 2012-12-25 | Workday, Inc. | System for displaying hierarchical data |
| US9467690B2 (en) | 2010-01-06 | 2016-10-11 | Dolby Laboratories Licensing Corporation | Complexity-adaptive scalable decoding and streaming for multi-layered video systems |
| US20130003855A1 (en) | 2010-01-12 | 2013-01-03 | Lg Electronics Inc. | Processing method and device for video signals |
| CN101795344B (zh) | 2010-03-02 | 2013-03-27 | 北京大学 | 数字全息图像压缩、解码方法及系统、传输方法及系统 |
| PL2665272T3 (pl) | 2011-01-13 | 2021-10-18 | Nec Corporation | Urządzenie dekodujące wideo, sposób dekodowania wideo i program |
| CN103314590B (zh) | 2011-01-13 | 2018-02-27 | 日本电气株式会社 | 视频解码设备、视频解码方法 |
| US9083949B2 (en) | 2011-04-15 | 2015-07-14 | Sk Planet Co., Ltd. | High speed scalable video coding device and method using multi-track video |
| KR20130058584A (ko) | 2011-11-25 | 2013-06-04 | 삼성전자주식회사 | 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치 |
| CN102769747A (zh) | 2012-06-29 | 2012-11-07 | 中山大学 | 一种基于并行迭代的分级分布式视频编解码方法及系统 |
| US9241158B2 (en) * | 2012-09-24 | 2016-01-19 | Qualcomm Incorporated | Hypothetical reference decoder parameters in video coding |
| US9161039B2 (en) | 2012-09-24 | 2015-10-13 | Qualcomm Incorporated | Bitstream properties in video coding |
| BR112015013034A2 (pt) | 2012-12-11 | 2017-07-11 | Sony Corp | dispositivos de codificação e decodificação, e, métodos de codificação usando um dispositivo de codificação e de decodificação usando um dispositivo de decodificação |
| KR102807030B1 (ko) | 2013-01-04 | 2025-05-14 | 지이 비디오 컴프레션, 엘엘씨 | 효율적인 확장가능한 코딩 개념 |
| US10708605B2 (en) | 2013-04-05 | 2020-07-07 | Vid Scale, Inc. | Inter-layer reference picture enhancement for multiple layer video coding |
| US9532067B2 (en) | 2013-04-05 | 2016-12-27 | Sharp Kabushiki Kaisha | Decoding of inter-layer reference picture set and reference picture list construction |
| US20140301463A1 (en) * | 2013-04-05 | 2014-10-09 | Nokia Corporation | Method and apparatus for video coding and decoding |
| WO2014163460A1 (ko) | 2013-04-05 | 2014-10-09 | 삼성전자 주식회사 | 계층 식별자 확장에 따른 비디오 스트림 부호화 방법 및 그 장치, 계층 식별자 확장에 따른 따른 비디오 스트림 복호화 방법 및 그 장치 |
| KR102127281B1 (ko) | 2013-04-08 | 2020-06-26 | 지이 비디오 컴프레션, 엘엘씨 | 효율적인 다-시점/계층 코딩을 허용하는 코딩 개념 |
| CN103338369A (zh) | 2013-06-03 | 2013-10-02 | 江苏省电力公司信息通信分公司 | 基于avs和神经网络的立体视频编码方法 |
| US10070125B2 (en) | 2013-07-31 | 2018-09-04 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
| US10554990B2 (en) | 2013-10-14 | 2020-02-04 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
| US9712837B2 (en) | 2014-03-17 | 2017-07-18 | Qualcomm Incorporated | Level definitions for multi-layer video codecs |
| US10390087B2 (en) | 2014-05-01 | 2019-08-20 | Qualcomm Incorporated | Hypothetical reference decoder parameters for partitioning schemes in video coding |
-
2015
- 2015-04-30 US US14/700,953 patent/US10390087B2/en active Active
- 2015-04-30 US US14/700,982 patent/US9794626B2/en active Active
- 2015-04-30 US US14/701,004 patent/US9712871B2/en active Active
- 2015-05-01 BR BR112016025419-8A patent/BR112016025419B1/pt active IP Right Grant
- 2015-05-01 KR KR1020167032379A patent/KR102384092B1/ko active Active
- 2015-05-01 BR BR112016025107-5A patent/BR112016025107B1/pt active IP Right Grant
- 2015-05-01 EP EP15727103.2A patent/EP3138292B1/en active Active
- 2015-05-01 KR KR1020167032380A patent/KR101984368B1/ko active Active
- 2015-05-01 CN CN201580023086.2A patent/CN106464935B/zh active Active
- 2015-05-01 EP EP15723383.4A patent/EP3138291B1/en active Active
- 2015-05-01 KR KR1020167031513A patent/KR102078896B1/ko active Active
- 2015-05-01 WO PCT/US2015/028841 patent/WO2015168591A1/en not_active Ceased
- 2015-05-01 WO PCT/US2015/028832 patent/WO2015168585A1/en not_active Ceased
- 2015-05-01 MX MX2016013623A patent/MX363421B/es unknown
- 2015-05-01 HU HUE15722859A patent/HUE040132T2/hu unknown
- 2015-05-01 HU HUE15723383A patent/HUE041371T2/hu unknown
- 2015-05-01 ES ES15723383T patent/ES2711535T3/es active Active
- 2015-05-01 JP JP2016564600A patent/JP6858562B2/ja active Active
- 2015-05-01 ES ES15722859.4T patent/ES2686699T3/es active Active
- 2015-05-01 WO PCT/US2015/028795 patent/WO2015168553A1/en not_active Ceased
- 2015-05-01 CN CN201580023267.5A patent/CN106464936B/zh active Active
- 2015-05-01 CN CN201580022120.4A patent/CN106464934B/zh active Active
- 2015-05-01 EP EP15722859.4A patent/EP3138290B1/en active Active
- 2015-05-01 JP JP2016564596A patent/JP6530425B2/ja active Active
- 2015-05-01 BR BR112016025100-8A patent/BR112016025100B1/pt active IP Right Grant
- 2015-05-01 JP JP2016564589A patent/JP6464193B2/ja active Active
- 2015-05-01 MX MX2016013943A patent/MX364115B/es active IP Right Grant
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2711535T3 (es) | Procedimiento y dispositivo para probar la conformidad de parámetros hipotéticos de descodificador de referencia para esquemas de partición en la codificación de vídeo | |
| ES2727814T3 (es) | Estructura sintáctica de parámetros de descodificador hipotético de referencia | |
| ES3040480T3 (en) | Hypothetical reference decoder parameters in video coding | |
| KR101776448B1 (ko) | 비디오 코딩에 있어서의 비-네스팅된 sei 메시지들 | |
| ES2724925T3 (es) | Modelo hipotético de descodificador de referencia y conformidad para imágenes omitidas de acceso aleatorio de capa cruzada | |
| JP6700176B2 (ja) | マルチレイヤビデオコーデックのためのマルチモード抽出のサポート | |
| ES2780688T3 (es) | Señalización para operaciones DPB basadas en un búfer de imágenes subdescodificadas (sub-DPB) en la codificación de vídeo | |
| ES2716852T3 (es) | Formato de archivo para datos de vídeo | |
| ES2874073T3 (es) | Flujo de transporte para el transporte de extensiones de codificación de vídeo | |
| ES2944451T3 (es) | Señalización de identificaciones de subimagen en codificación de vídeo basada en subimagen | |
| ES2711892T3 (es) | Señalización de puntos de operación para el transporte de extensiones de la HEVC |

