ES2874073T3 - Flujo de transporte para el transporte de extensiones de codificación de vídeo - Google Patents
Flujo de transporte para el transporte de extensiones de codificación de vídeo Download PDFInfo
- Publication number
- ES2874073T3 ES2874073T3 ES15745046T ES15745046T ES2874073T3 ES 2874073 T3 ES2874073 T3 ES 2874073T3 ES 15745046 T ES15745046 T ES 15745046T ES 15745046 T ES15745046 T ES 15745046T ES 2874073 T3 ES2874073 T3 ES 2874073T3
- Authority
- ES
- Spain
- Prior art keywords
- operation point
- syntax elements
- profile
- stratum
- level
- 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
- 238000012545 processing Methods 0.000 claims abstract description 110
- 238000000034 method Methods 0.000 claims abstract description 79
- 238000013507 mapping Methods 0.000 claims abstract 5
- 230000011664 signaling Effects 0.000 claims description 24
- 238000013500 data storage Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 12
- NWONKYPBYAMBJT-UHFFFAOYSA-L zinc sulfate Chemical compound [Zn+2].[O-]S([O-])(=O)=O NWONKYPBYAMBJT-UHFFFAOYSA-L 0.000 claims 1
- 230000033001 locomotion Effects 0.000 description 48
- 241000023320 Luma <angiosperm> Species 0.000 description 43
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 43
- 230000002123 temporal effect Effects 0.000 description 27
- 238000003860 storage Methods 0.000 description 23
- 239000013598 vector Substances 0.000 description 23
- 238000013139 quantization Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 16
- 239000012634 fragment Substances 0.000 description 14
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 13
- 230000002776 aggregation Effects 0.000 description 13
- 238000004220 aggregation Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- PEIBAWRLFPGPAT-UHFFFAOYSA-N 1-(diazomethyl)pyrene Chemical compound C1=C2C(C=[N+]=[N-])=CC=C(C=C3)C2=C2C3=CC=CC2=C1 PEIBAWRLFPGPAT-UHFFFAOYSA-N 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 8
- 230000001965 increasing effect Effects 0.000 description 7
- 238000005192 partition Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- LEGNTRAAJFCGFF-UHFFFAOYSA-N 2-(diazomethyl)-9h-fluorene Chemical compound C1=CC=C2C3=CC=C(C=[N+]=[N-])C=C3CC2=C1 LEGNTRAAJFCGFF-UHFFFAOYSA-N 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- 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/146—Data rate or code amount at the encoder output
-
- 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/184—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 bits, e.g. of the compressed video stream
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
-
- 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/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
-
- 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/234381—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 altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Un procedimiento para procesar un flujo de transporte MPEG-2 para el transporte de datos de vídeo multicapa, el procedimiento comprendiendo: obtener, a partir de un primer HEVC_extension_descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel en los que cada perfil define un conjunto de herramientas de codificación para su uso por parte de un codificador de vídeo y cada nivel define un conjunto de restricciones de valores asociados con cada conjunto de elementos de sintaxis y cada estrato define una categoría de restricciones dentro de cada nivel, y en el que cada conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel comprende elementos de sintaxis que especifican la información de perfil, estrato y nivel respectivo; obtener, a partir del primer descriptor o un segundo HEVC_extension_descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación en el que cada punto de operación define un conjunto de unidades NAL asociadas con el flujo de transporte MPEG-2, en el que el primer descriptor y el segundo descriptor están en una tabla de mapa de programa del flujo de transporte MPEG-2 y cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de una pluralidad de puntos de operación; y para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, determinar, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo para la capa respectiva determinada desde el primer o segundo HEVC_extension_descriptor examinando datos en el descriptor HEVC_extension que comprende datos que definen un número de puntos de operación asociados con cada conjunto de elementos de sintaxis de punto de operación y datos que definen un número de capas asociadas con cada punto de operación y un índice de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación y mapeo de la información de perfil, estrato y nivel a cada índice de cada perfil respectivo, estrato y nivel que se asigna a cada capa dentro de cada punto de operación utilizando los datos que definen el número de operación puntos asociados con cada conjunto de elementos de sintaxis de punto de operación y los datos que definen el número de capas dentro de cada punto de operación, cuál de los conjuntos de elementos de sintaxis de perfil, estrato y nivel especifica la información de perfil, estrato y nivel asignada a la capa respectiva del punto de operación respectivo, estando el elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, teniendo el punto de operación respectivo una pluralidad de capas; y decodificar los datos de vídeo usando el índice determinado de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación.
Description
DESCRIPCIÓN
Flujo de transporte para el transporte de extensiones de codificación de vídeo
[0001] Esta solicitud reivindica el beneficio de la Solicitud de patente provisional de EE. UU. n.° 62/025432, presentada el miércoles, 16 de julio de 2014,
CAMPO TÉCNICO
[0002] Esta divulgación se refiere al procesamiento de vídeo.
ANTECEDENTES
[0003] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, que incluye televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, ordenadores de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, radioteléfonos celulares o por satélite, los llamados "teléfonos inteligentes", dispositivos de teleconferencia por vídeo, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, 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, codificación de vídeo avanzada (AVC), la norma de codificación de vídeo de alta eficacia (HEVC) y extensiones de dichas normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, decodificar y/o almacenar información de vídeo digital más eficazmente implementando dichas técnicas de compresión de vídeo.
[0004] Las técnicas de compresión de vídeo realizan predicción espacial (intraimagen) y/o predicción temporal (interimagen) para reducir o eliminar la redundancia inherente a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo (es decir, una trama de vídeo o una parte de una trama de vídeo) puede dividirse en bloques de vídeo. Los bloques de vídeo en un sector intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a unas muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un sector intercodificado (P o B) de una imagen pueden usar la predicción espacial con respecto a unas muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a unas muestras de referencia en otras imágenes de referencia. Las imágenes se pueden denominar tramas, y las imágenes de referencia se pueden denominar tramas de referencia.
[0005] La predicción espacial o temporal dan como resultado un bloque predictivo para un bloque que se va a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se va 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 intracodificación y con los datos residuales. Para una compresión adicional, los datos residuales se pueden transformar desde el dominio del píxel a un dominio de la transformada, dando como resultado unos coeficientes residuales, que a continuación se pueden cuantificar. Los coeficientes cuantificados, inicialmente dispuestos en una matriz bidimensional, se pueden escanear para generar un vector unidimensional de coeficientes, y se puede aplicar codificación por entropía para conseguir todavía más compresión.
[0006] Se puede generar un flujo de bits de codificación de múltiples visualizaciones codificando visualizaciones, por ejemplo, desde múltiples perspectivas. Se han desarrollado algunas normas de vídeo tridimensionales (3D) que hacen uso de aspectos de codificación de múltiples visualizaciones. Por ejemplo, diferentes visualizaciones pueden transmitir visualizaciones del ojo izquierdo y derecho para soportar vídeo en 3D. De forma alternativa, algunos procesos de codificación de vídeo 3D pueden aplicar la denominada codificación de múltiples visualizaciones más codificación en profundidad. En la codificación de múltiples visualizaciones más profundidad, un flujo de bits de vídeo 3D puede contener no solo componentes de visualización de textura, sino también componentes de visualización de profundidad. Por ejemplo, cada visualización puede comprender un componente de visualización de textura y un componente de visualización de profundidad.
BREVE EXPLICACIÓN
[0007] Entre las técnicas de esta divulgación se incluyen técnicas relacionadas con los flujos MPEG-2 para el transporte de datos de vídeo multicapa. Por ejemplo, técnicas particulares de esta divulgación se relacionan con flujos de transporte MPEG-2 para el transporte de extensiones de codificación de vídeo de alta eficiencia (HEVC), como HEVC de múltiples visualizaciones (MV-HEVC), HEVC tridimensional (3D-HEVC) y HEVC escalable (SHVC). De acuerdo con algunas técnicas de esta divulgación, un descriptor que incluye elementos
de sintaxis que indican índices de capa de elementos de programa que deben estar presentes en el orden de decodificación antes de decodificar un elemento de programa actual también incluye una indicación de si el elemento de programa actual mejora una velocidad de tramas de un flujo de bits. De acuerdo con una o más técnicas adicionales de esta divulgación, un descriptor para un programa incluye elementos de sintaxis que especifican conjuntos de información de perfil, estrato y nivel (PTL) y también incluye elementos de sintaxis que indican cuál de los conjuntos de información de PTL se aplica a capas particulares de puntos de operación.
[0008] En un ejemplo, esta divulgación describe un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento: obtener, a partir de un primer descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis de PTL, con cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que comprende elementos de sintaxis que especifican la información de PTL respectiva, estando el primer descriptor en un flujo de transporte; obtener, a partir del primer descriptor o un segundo descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación, donde cada conjunto de elementos de sintaxis de puntos de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación especifica un punto de operación respectivo de una pluralidad de puntos de operación; y para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, determinar, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo en la operación respectiva conjunto de elementos de sintaxis de puntos, cuál de los conjuntos de elementos de sintaxis de PTL especifica la información de PTL asignada a la capa respectiva, teniendo el punto de operación respectivo una pluralidad de capas.
[0009] En otro ejemplo, esta divulgación describe un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento: señalar, en un primer descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis de PTL, con cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que comprende elementos de sintaxis que especifican la información de PTL respectiva, estando el primer descriptor en un flujo de transporte; y señalar, en el primer descriptor o un segundo descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación, en el que: cada conjunto de elementos de sintaxis de puntos de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación especifica un punto de operación respectivo de la pluralidad de puntos de operación, y para cada capa respectiva del punto de operación respectivo, el elemento de sintaxis de punto de operación respectivo incluye un elemento de sintaxis respectivo que identifica un conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que especifican la información de PTL asignada a la capa respectiva del punto de operación respectivo, teniendo el punto de operación respectivo una pluralidad de capas.
[0010] En otro ejemplo, esta divulgación describe un dispositivo para procesar datos de vídeo, comprendiendo el dispositivo: un medio de almacenamiento de datos configurado para almacenar datos de vídeo codificados, y uno o más procesadores configurados para: obtener, a partir de un primer descriptor para un programa que comprende uno o más flujos elementales que comprenden los datos de vídeo codificados, una pluralidad de conjuntos de elementos de sintaxis de PTL, con cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que comprende elementos de sintaxis que especifican la información de PTL respectiva, estando el primer descriptor en un flujo de transporte; obtener, del primer descriptor o un segundo descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación, en el que cada conjunto de elementos de sintaxis de puntos de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación especifica un punto de operación respectivo de una pluralidad de puntos de operación; y para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, determinar, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de puntos de operación respectivos, cuál de los conjuntos de elementos de sintaxis de PTL especifica la información de PTL asignada a la capa respectiva, teniendo el punto de operación respectivo una pluralidad de capas.
[0011] En otro ejemplo, esta divulgación describe un dispositivo para procesar datos de vídeo, comprendiendo el dispositivo: un medio de almacenamiento de datos configurado para almacenar datos de vídeo codificados, y uno o más procesadores configurados para: señalar, en un primer descriptor para un programa que comprende uno o más flujos elementales que comprenden los datos de vídeo codificados, una pluralidad de conjuntos de elementos de sintaxis de PTL, con cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que comprende elementos de sintaxis que especifican la información de PTL respectiva, estando el primer descriptor en un flujo de transporte; y señalar, en el primer descriptor o un segundo descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de punto de operación, en el que: cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica
un punto de operación respectivo de la pluralidad de puntos de operación, y para cada capa respectiva del punto de operación respectivo, el elemento de sintaxis de punto de operación respectivo incluye un elemento de sintaxis respectivo que identifica un conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que especifican la información de PTL asignada a la capa respectiva del punto de operación respectivo, teniendo el punto de operación respectivo una pluralidad de capas.
[0012] En otro ejemplo, esta divulgación describe un dispositivo para procesar datos de vídeo, comprendiendo el dispositivo: medios para obtener, a partir de un primer descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis de PTL, con cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que comprende elementos de sintaxis que especifican la información de PTL respectiva, estando el primer descriptor en un flujo de transporte; medios para obtener, a partir del primer descriptor o un segundo descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación, en los que cada conjunto de elementos de sintaxis de puntos de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación especifica un punto de operación respectivo de una pluralidad de puntos de operación; y para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, medios para determinar, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, cuál de los conjuntos de elementos de sintaxis de PTL especifica la información de PTL asignada a la capa respectiva, teniendo el punto de operación respectivo una pluralidad de capas.
[0013] En otro ejemplo, esta divulgación describe un dispositivo para procesar datos de vídeo, comprendiendo el dispositivo: medios para señalar, en un primer descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis de PTL, con cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que comprende elementos de sintaxis que especifican la información de PTL respectiva, estando el primer descriptor en un flujo de transporte; y medios para señalar, en el primer descriptor o un segundo descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación, en el que: cada conjunto de elementos de sintaxis de puntos de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación especifica un punto de operación respectivo de la pluralidad de puntos de operación, y para cada capa respectiva del punto de operación respectivo, el elemento de sintaxis de punto de operación respectivo incluye un elemento de sintaxis respectivo que identifica un conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que especifican la información de PTL asignada a la capa respectiva del punto de operación respectivo, teniendo el punto de operación respectivo una pluralidad de capas.
[0014] En otro ejemplo, esta divulgación describe un medio de almacenamiento de datos legible por ordenador que tiene instrucciones almacenadas en el mismo que, cuando se ejecutan, hacen que uno o más procesadores de un dispositivo de procesamiento de vídeo: obtengan, a partir de un primer descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis de PTL, con cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que comprende elementos de sintaxis que especifican la información de PTL respectiva, estando el primer descriptor en un flujo de transporte; obtengan, a partir del primer descriptor o un segundo descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación, en el que cada conjunto de elementos de sintaxis de puntos de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación especifica un punto de operación respectivo de una pluralidad de puntos de operación; y para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, determinen, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo en la operación respectiva conjunto de elementos de sintaxis de puntos, cuál de los conjuntos de elementos de sintaxis de PTL especifica la información de PTL asignada a la capa respectiva, teniendo el punto de operación respectivo una pluralidad de capas.
[0015] En otro ejemplo, esta divulgación describe un medio de almacenamiento de datos legible por ordenador que tiene instrucciones almacenadas en el mismo que, cuando se ejecutan, hacen que uno o más procesadores de un dispositivo de procesamiento de vídeo: señalen, en un primer descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis de PTL, con cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que comprende elementos de sintaxis que especifican la información de PTL respectiva, estando el primer descriptor en un flujo de transporte; y señalen, en el primer descriptor o un segundo descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de punto de operación, en el que: cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de la pluralidad de puntos de
operación, y para cada capa respectiva del punto de operación respectivo, el elemento de sintaxis de punto de operación respectivo incluye un elemento de sintaxis respectivo que identifica un conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que especifican la información de PTL asignada a la capa respectiva del punto de operación respectivo, teniendo el punto de operación respectivo una pluralidad de capas.
[0016] Los detalles de uno o más ejemplos de divulgación se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características, objetos y ventajas resultarán evidentes a partir de la descripción y los dibujos y las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0017]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación de vídeo de ejemplo que puede utilizar unas técnicas descritas en esta divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo.
La FIG. 3 es un diagrama de bloques que ilustra un decodificador de vídeo de ejemplo.
La FIG. 4A es un diagrama de flujo que ilustra un primer ejemplo de operación para procesar datos de vídeo, de acuerdo con una técnica de esta divulgación.
La FIG. 4B es un diagrama de flujo que ilustra un segundo ejemplo de operación para procesar datos de vídeo, de acuerdo con una técnica de esta divulgación.
La FIG. 5A es un diagrama de flujo que ilustra un tercer ejemplo de operación para procesar datos de vídeo, de acuerdo con una técnica de esta divulgación.
La FIG. 5B es un diagrama de flujo que ilustra un cuarto ejemplo de operación para procesar datos de vídeo, de acuerdo con una técnica de esta divulgación.
DESCRIPCIÓN DETALLADA
[0018] La codificación de vídeo de alta eficiencia (HEVC) es una norma de codificación de vídeo estandarizada recientemente. HEVC multicapa es un término que se refiere a las extensiones de HEVC que soporten varias capas. HEVC de múltiples visualizaciones (MV-HEVC), HEVC tridimensional (3D-HEVC) y HEVC escalable (Sh VC) son ejemplos de tipos de HEVC multicapa. En MV-HEVC y 3D-HEVC, diferentes capas pueden corresponder a diferentes visualizaciones. SHVC proporciona una capa base y capas de mejora. Las capas de mejora pueden proporcionar mejoras a la velocidad de tramas o la calidad de imagen de la capa base.
[0019] Algunas imágenes dentro de una capa pueden decodificarse sin referencia a otras imágenes dentro de la misma capa. Por lo tanto, las unidades de capa de abstracción de red (NAL) que encapsulan datos de determinadas imágenes de una capa pueden eliminarse del flujo de bits sin afectar la decodificación de otras imágenes de la capa. La eliminación de unidades NAL que encapsulan datos de tales imágenes puede reducir la velocidad de tramas del flujo de bits. Un subconjunto de imágenes dentro de una capa que puede decodificarse sin referencia a otras imágenes dentro de la capa puede denominarse en el presente documento "subcapa" o "subcapa temporal".
[0020] La especificación de sistemas MPEG-2 describe cómo los flujos de datos de multimedia comprimidos (vídeo y/o audio) se pueden multiplexar junto con otros datos para formar un solo flujo de datos adecuado para su transmisión o almacenamiento digital. HEVC y HEVC multicapa son tipos de ejemplo de datos de vídeo que pueden multiplexarse para formar un flujo de datos en la especificación de sistemas MPEG-2. La especificación de sistemas MPEG-2 define los conceptos de un flujo de programas y un flujo de transporte. Los flujos de programas están predispuestos para el almacenamiento y visualización de un solo programa de un servicio de almacenamiento digital. En general, un flujo de programas está diseñado para su uso en entornos sin errores. En contraste, los flujos de transporte están concebidos para la entrega simultánea de una serie de programas por canales potencialmente propensos a errores. Los flujos de programas y los flujos de transporte incluyen paquetes de flujos elementales en paquetes (PES). Los paquetes PES de flujos de programas y flujos de transporte pertenecen a uno o más flujos elementales. Un flujo elemental es un componente único codificado digitalmente (posiblemente HEVC o comprimido en HEVC multicapa) de un programa. Por ejemplo, la parte codificada de vídeo o audio del programa puede ser un flujo elemental.
[0021] Un flujo de transporte puede incluir uno o más descriptores que transmiten información adicional sobre
un programa o flujos elementales de un programa. Los descriptores pueden incluir, por ejemplo, parámetros de codificación de vídeo, parámetros de codificación de audio, información de identificación de idioma, información de escaneo y recorrido, detalles de acceso condicional, información de derechos de autor, etc. Un radiodifusor u otro usuario puede definir descriptores privados adicionales si es necesario. En los flujos elementales de componentes relacionados con el vídeo, los descriptores pueden incluir uno o más descriptores de jerarquía. El descriptor de jerarquía proporciona información para identificar los elementos de programa que contienen componentes de flujos de vídeo, de audio y privados, codificados jerárquicamente. Los flujos privados pueden incluir metadatos, como un flujo de información específica del programa. En general, un elemento de programa es uno de los datos o flujos elementales incluidos en un programa (es decir, un flujo elemental componente del programa). En los flujos de transporte MPEG-2, los elementos del programa suelen estar empaquetados. En los flujos de programas MPEG-2, los elementos del programa no están empaquetados.
[0022] Los descriptores están separados de los datos de vídeo codificados. Por lo tanto, un dispositivo, como un elemento de red compatible con los medios (MANE), puede utilizar un descriptor para realizar diversas funciones en flujos de transporte y flujos de programas sin decodificar o analizar datos de vídeo codificados. Por ejemplo, si los datos de vídeo se codifican usando HEVC, no es necesario configurar el dispositivo para decodificar datos de vídeo codificados en HEVC para usar el descriptor para realizar funciones particulares en transmisiones de transporte o de programa. Por ejemplo, el dispositivo puede utilizar los descriptores como parte de un proceso para determinar si reenviar elementos de programa particulares a un dispositivo de destino.
[0023] Cada subcapa temporal respectiva de cada capa respectiva de un programa puede corresponder a un componente de programa diferente (por ejemplo, flujo elemental) del programa. Como se indicó anteriormente, los descriptores pueden incluir descriptores de jerarquía. Cada descriptor de jerarquía respectivo proporciona información sobre un componente de programa correspondiente y, por lo tanto, una subcapa temporal respectiva. Por ejemplo, un descriptor de jerarquía puede incluir un elemento de sintaxis que especifica una subcapa temporal integrada necesaria para decodificar la subcapa temporal correspondiente al descriptor de jerarquía. Además, el descriptor de jerarquía puede incluir elementos de sintaxis que especifiquen si la subcapa temporal correspondiente proporciona escalabilidad temporal (por ejemplo, aumenta la velocidad de tramas) en relación con la subcapa temporal integrada, proporciona escalabilidad espacial (por ejemplo, aumenta la resolución de la imagen) en relación con la subcapa temporal incorporada, proporciona escalabilidad de calidad (por ejemplo, mejora la calidad o la fidelidad de la señal a ruido) en relación con la subcapa temporal incorporada, etc. Un descriptor de jerarquía no indica si la decodificación de la subcapa temporal correspondiente depende de la decodificación de los componentes del programa correspondientes a diferentes capas.
[0024] Además del uno o más descriptores de jerarquía, los descriptores señalados en un flujo de programas o transporte MPEG-2 pueden incluir uno o más descriptores de extensión de jerarquía. Cada descriptor de extensión de jerarquía puede proporcionar información adicional con respecto a un componente de programa correspondiente y, por lo tanto, una subcapa temporal respectiva. A diferencia de un descriptor de jerarquía, un descriptor de extensión de jerarquía puede indicar qué capas se requiere decodificar para decodificar con éxito la subcapa temporal correspondiente al descriptor de extensión de jerarquía.
[0025] Un descriptor de extensión de jerarquía no identifica qué subcapa temporal, si la hay, se necesita para decodificar la subcapa temporal correspondiente al descriptor de extensión de jerarquía. En otras palabras, un descriptor de extensión de jerarquía no puede describir la dependencia temporal. Por lo tanto, los descriptores de jerarquía se utilizan para describir solo la dependencia temporal, mientras que otros tipos de dependencia se describen utilizando descriptores de extensión de jerarquía. Como resultado, la interpretación de los descriptores de extensión de jerarquía depende de los descriptores de jerarquía. En otras palabras, es posible que un dispositivo no pueda determinar completamente qué otros componentes del programa deben decodificarse para decodificar el componente del programa correspondiente a un descriptor de extensión de jerarquía. Por lo tanto, no se puede utilizar un descriptor de extensión de jerarquía sin la existencia de un descriptor de jerarquía correspondiente.
[0026] Las técnicas particulares de esta divulgación pueden romper la dependencia de los descriptores de extensión de jerarquía de los descriptores de jerarquía. Por lo tanto, de acuerdo con una técnica de esta divulgación, un dispositivo puede usar un descriptor de extensión de jerarquía sin la existencia de un descriptor de jerarquía correspondiente. Por ejemplo, un dispositivo informático puede determinar si un elemento de programa actual mejora (por ejemplo, aumenta) la velocidad de tramas de un flujo de bits. En este ejemplo, el dispositivo informático puede incluir, en un descriptor correspondiente al elemento de programa actual (por ejemplo, un descriptor de extensión de jerarquía), elementos de sintaxis que indican índices de capa de elementos de programa a los que se debe acceder y que deben estar presentes en el orden de decodificación, antes de decodificar el elemento del programa actual. El descriptor puede estar en un flujo de transporte. En otros ejemplos, el descriptor está en un flujo de programas o en otro lugar. En este ejemplo, el dispositivo informático incluye, en el descriptor correspondiente al elemento de programa actual, una indicación de si el elemento de programa actual mejora la velocidad de tramas del flujo de bits.
[0027] Además de los descriptores de jerarquía y los descriptores de extensión de la jerarquía, los descriptores de un flujo de programas o transporte pueden incluir descriptores de puntos de operación HEVC y descriptores de extensión HEVC. Un descriptor de punto de operación HEVC incluye información que describe un punto de operación. Un punto de operación es un subconjunto de unidades NAL de un flujo de bits. Un punto de operación puede definirse mediante un conjunto de identificadores de capa y un identificador temporal máximo. En algunos casos, un punto de operación consta de cada unidad NAL de un flujo de bits que pertenece a una de las capas identificadas y que tiene un identificador temporal menor o igual que el identificador temporal máximo.
[0028] Tanto los descriptores de puntos de operación HEVC como los descriptores de extensión HEVC incluyen elementos de sintaxis que indican información de perfil, estrato y nivel (PTL). En general, un "perfil" de una norma de codificación de vídeo es un subconjunto de las características y herramientas presentes en la norma de codificación de vídeo. En otras palabras, un perfil define qué herramientas de codificación se pueden utilizar. Por ejemplo, para un codificador de vídeo, un perfil puede ser un conjunto de herramientas de codificación que el codificador de vídeo puede usar para generar flujos de bits codificados que se ajusten a dicho perfil. Para un decodificador de vídeo, un perfil puede significar el conjunto de herramientas de codificación que el decodificador de vídeo debe tener para poder decodificar flujos de bits que se dice que se ajustan al perfil.
[0029] Un nivel es un conjunto definido de restricciones sobre los valores que pueden tomar los elementos de sintaxis y las variables de una norma de codificación de vídeo. Un estrato es una categoría específica de restricciones de nivel impuestas a los valores de los elementos de sintaxis en el flujo de bits o valores de variables, donde las restricciones de nivel están contenidas dentro de un estrato y un decodificador que se ajuste a un cierto estrato y nivel sería capaz de decodificar todos los flujos de bits conforme al mismo estrato o el estrato más bajo de ese nivel o cualquier nivel por debajo de ese nivel. Por lo tanto, un nivel de un estrato es un conjunto específico de restricciones impuestas sobre los valores de los elementos de sintaxis en el flujo de bits o las variables utilizadas en la decodificación del flujo de bits.
[0030] Como se indicó anteriormente, tanto los descriptores de puntos de operación HEVC como los descriptores de extensión HEVC incluyen elementos de sintaxis que indican información PTL. Sin embargo, la señalización de la información PTL en los descriptores de puntos de operación HEVC y los descriptores de extensión HEVC no está alineada con cómo se señala la información PTL en el nivel de códec, por ejemplo, en SHVC y MV-HEVC. Por ejemplo, a nivel de códec, a cada capa incluida en un punto de operación se le asigna su propia información de PTL. Sin embargo, este no es el caso de los descriptores de puntos de operación HEVC y los descriptores de extensión HEVC.
[0031] Las técnicas adicionales de esta divulgación pueden alinear la señalización de la información de PTL en dichos descriptores con la señalización de la información de PTL a nivel de códec. Por ejemplo, técnicas particulares de esta divulgación pueden especificar, en un descriptor correspondiente a un programa (por ejemplo, un descriptor de extensión HEVC), información PTL para cada capa respectiva de un conjunto de puntos de operación del programa. En un ejemplo, un dispositivo informático señala, en un descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis PTL. El descriptor puede estar en un flujo de transporte. En este ejemplo, para cada capa respectiva de cada punto de operación respectivo de una pluralidad de puntos de operación del programa, el dispositivo informático u otro dispositivo puede asignar información de PTL respectiva a la capa respectiva del punto de operación respectivo. Además, en este ejemplo, el dispositivo informático señala, en el descriptor del programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación. En este ejemplo, cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de la pluralidad de puntos de operación. En este ejemplo, para cada capa respectiva del punto de operación respectivo, el elemento de sintaxis de punto de operación respectivo incluye un elemento de sintaxis respectivo que identifica un conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que especifican la información de PTL respectiva asignada a la capa respectiva del punto de operación respectivo.
[0032] La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de sistema de codificación de vídeo 10 que puede utilizar las técnicas de esta divulgación. Como se usa en el presente documento, el término "codificador de vídeo" se refiere genéricamente tanto a codificadores de vídeo como a decodificadores de vídeo. En esta divulgación, los términos "codificación de vídeo" o "codificación" pueden referirse genéricamente a codificación de vídeo o decodificación de vídeo.
[0033] Como se muestra en la FIG. 1, el sistema de codificación de vídeo 10 incluye un dispositivo de origen 12 y un dispositivo de destino 14. El dispositivo de origen 12 genera datos de vídeo codificados. Por consiguiente, el dispositivo de origen 12 puede denominarse dispositivo de codificación de vídeo o aparato de codificación de vídeo. El dispositivo de destino 14 puede decodificar los datos de vídeo codificados generados por el dispositivo de origen 12. Por consiguiente, el dispositivo de destino 14 puede denominarse dispositivo
de decodificación de vídeo o aparato de decodificación de vídeo. El dispositivo de origen 12 y el dispositivo de destino 14 pueden ser ejemplos de dispositivos de codificación de vídeo o aparatos de codificación de vídeo.
[0034] El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender una amplia gama de dispositivos, incluyendo ordenadores de escritorio, dispositivos informáticos móviles, ordenadores tipo notebook (por ejemplo, ordenadores portátiles), ordenadores tipo tableta, decodificadores, equipos telefónicos manuales tales como los llamados teléfonos "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, ordenadores de coche, equipos de videoconferencia o similares.
[0035] El dispositivo de destino 14 puede recibir datos de vídeo codificados desde el dispositivo de origen 12 a través de un canal 16. El canal 16 puede comprender uno o más medios o dispositivos capaces de desplazar los datos de vídeo codificados desde el dispositivo de origen 12 hasta el dispositivo de destino 14. En un ejemplo, el canal 16 puede comprender uno o más medios de comunicación que permiten que el dispositivo de origen 12 transmita datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. En este ejemplo, el dispositivo de origen 12 puede modular los datos de vídeo codificados de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y puede transmitir los datos de vídeo modulados al dispositivo de destino 14. El uno o más medios de comunicación pueden incluir medios de comunicación inalámbrica y/o alámbrica, tal como un espectro de radiofrecuencia (RF) o una o más líneas físicas de transmisión. El uno o más medios de comunicación pueden formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global (por ejemplo, Internet). El uno o más medios de comunicación puede incluir enrutadores, conmutadores, estaciones base u otro equipo que facilite la comunicación desde el dispositivo de origen 12 hasta el dispositivo de destino 14.
[0036] En otro ejemplo, el canal 16 puede incluir un medio de almacenamiento que almacena datos de vídeo 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 acceso a disco o acceso a tarjeta. El medio de almacenamiento puede incluir una variedad de medios de almacenamiento de datos de acceso local, tales como discos Blu-ray, DVD, CD-ROM, memoria flash, u otros medios de almacenamiento digitales adecuados para almacenar datos de vídeo codificados.
[0037] En otro ejemplo, el canal 16 puede incluir a un servidor de archivos u otro dispositivo de almacenamiento intermedio que almacene datos de vídeo codificados generados por el dispositivo de origen 12. En este ejemplo, el dispositivo de destino 14 puede acceder a datos de vídeo codificados almacenados en el servidor de archivos u otro dispositivo de almacenamiento intermedio mediante transmisión continua o descarga. El servidor de archivos puede ser un tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir los datos de vídeo codificados al dispositivo de destino 14. Entre los servidores de archivos de ejemplo se incluye servidores web (por ejemplo, para un sitio web), servidores de protocolo de transferencia de ficheros (FTP), dispositivos de almacenamiento conectados a la red (NAS) y unidades de disco local.
[0038] El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de una conexión de datos estándar, como una conexión a Internet. Entre los tipos de conexiones de datos de ejemplo puede incluirse un canal inalámbrico (por ejemplo, conexiones wifi), conexiones alámbricas (por ejemplo, línea de subscriptores digitales (DSL), módem de cable, etc.), o combinaciones de ambos que sean adecuadas para acceder a los datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el servidor de archivos puede ser una transmisión continua, una transmisión de descarga o una combinación de las mismas.
[0039] Las técnicas de esta divulgación no se limitan a las aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo en soporte de una variedad de aplicaciones multimedia, tales como radiodifusiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones continuas de vídeo, por ejemplo, por Internet, codificación de datos de vídeo para almacenamiento en un medio de almacenamiento de datos, decodificación de datos de vídeo almacenados en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema de codificación de vídeo 10 puede estar configurado para soportar una transmisión de vídeo unidireccional o bidireccional para soportar aplicaciones tales como transmisión continua de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
[0040] La FIG. 1 es simplemente un ejemplo y las técnicas de esta divulgación pueden aplicarse a configuraciones de codificación de vídeo (por ejemplo, codificación de vídeo o decodificación de vídeo) que no necesariamente incluyen ninguna comunicación de datos entre los dispositivos de codificación y decodificación. En otros ejemplos, los datos se recuperan de una memoria local, se transmiten a través de una red o similares. Un dispositivo de codificación de vídeo puede codificar y almacenar datos en la memoria y/o un dispositivo de decodificación de vídeo puede recuperar y decodificar datos de la memoria. En muchos ejemplos, la codificación y decodificación se realiza mediante dispositivos que no se comunican entre sí, sino que simplemente codifican datos en la memoria y/o recuperan y decodifican datos de la memoria.
[0041] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye la fuente de vídeo 18, el codificador de vídeo 20 y la interfaz de salida 22. En algunos ejemplos, la interfaz de salida 22 puede incluir un modulador/demodulador (módem) y/o un transmisor. La fuente de vídeo 18 puede incluir un dispositivo de captura de vídeo, por ejemplo, una cámara de vídeo, un archivo de vídeo que contiene datos de vídeo capturados previamente, una interfaz de alimentación de vídeo para recibir datos de vídeo de un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de vídeo, o una combinación de dichas fuentes de datos de vídeo.
[0042] El codificador de vídeo 20 puede codificar datos de vídeo de la fuente de vídeo 18. En algunos ejemplos, el dispositivo de origen 12 transmite directamente los datos de vídeo codificados al dispositivo de destino 14 a través de la interfaz de salida 22. En otros ejemplos, los datos de vídeo codificados también pueden almacenarse en un medio de almacenamiento o un servidor de archivos para el acceso posterior del dispositivo de destino 14 para decodificar y/o reproducir.
[0043] En el ejemplo de la FIG. 1, el dispositivo de destino 14 incluye una interfaz de entrada 28, un decodificador de vídeo 30 y un dispositivo de visualización 32. En algunos ejemplos, la interfaz de entrada 28 incluye un receptor y/o un módem. La interfaz de entrada 28 puede recibir datos de vídeo codificados por el canal 16. El decodificador de vídeo 30 puede decodificar datos de vídeo codificados. El dispositivo de visualización 32 puede visualizar los datos de vídeo decodificados. El dispositivo de visualización 32 puede estar integrado o puede ser externo al dispositivo de destino 14. El dispositivo de visualización 32 puede comprender múltiples dispositivos de visualización, como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0044] El codificador de vídeo 20 y el decodificador de vídeo 30 pueden estar implementados como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), lógica discreta, hardware o cualquier combinación de los mismos. Si las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio de almacenamiento no transitorio legible por ordenador adecuado y puede ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cualquiera de los anteriores (incluido hardware, software, una combinación de hardware y software, etc.) puede considerarse uno o más procesadores. Cada uno de entre el codificador de vídeo 20 y el decodificador de vídeo 30 puede estar incluido en uno o más codificadores o decodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/decodificador combinado (CÓDEC) en un dispositivo respectivo.
[0045] Esta divulgación puede referirse en general al codificador de vídeo 20 que "señala" cierta información a otro dispositivo, tal como el decodificador de vídeo 30. El término "señalización" puede referirse en general a la comunicación de valores para elementos de sintaxis y/u otros datos usados para decodificar los datos de vídeo comprimidos. Dicha comunicación puede ocurrir en tiempo real o casi real. De forma alternativa, dicha comunicación puede ocurrir durante un período de tiempo, como podría ocurrir al almacenar elementos de sintaxis en un medio de almacenamiento legible por ordenador en un flujo de bits codificado en el momento de la codificación, que luego puede ser recuperado por un dispositivo de decodificación en cualquier momento después de almacenarse en este medio.
[0046] En algunos ejemplos, el codificador de vídeo 20 y el decodificador de vídeo 30 funcionan de acuerdo con una norma de compresión de vídeo, como la Organización Internacional de Normalización (ISO)/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG- 4 AVC), incluida su extensión de codificación de vídeo escalable (SVC), la extensión de codificación de vídeo de múltiples visualizaciones (MVC) y la extensión de vídeo tridimensional (3DV) basada en MVC. En algunos casos, cualquier flujo de bits que se ajuste a la extensión 3DV basada en MVC de H.264/AVC siempre contiene un flujo secundario de bits que cumple con la extensión MVC de H.264/AVC. Además, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar de acuerdo con una extensión de codificación 3DV para H.264/AVC (es decir, 3DV basado en AVC) que está actualmente en desarrollo. En otros ejemplos, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar de acuerdo con el Sector de Normalización de Telecomunicaciones de la Unión Internacional de Telecomunicaciones (ITU-T) H.261, la Organización Internacional de Normalización (ISO)/Comisión Electrotécnica Internacional (IEC), Grupo de Expertos en Imágenes en Movimiento (MPEG)-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual e ITU-T H.264, ISO/IEC Visual. En otras palabras, entre las normas de codificación de vídeo se incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), incluidas sus extensiones de codificación de vídeo escalable (SVC) y de codificación de vídeo de múltiples visualizaciones (MVC).
[0047] En otros ejemplos, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar de acuerdo con la codificación de vídeo de alta eficiencia (HEVC) desarrollada por el equipo de colaboración conjunta sobre codificación de vídeo (JCT-VC) del Grupo de expertos en codificación de vídeo del ITU-T
(VCEG) e ISO/Grupo de Expertos en Cinematografía IEC (MPEG). HEVC puede denominarse "Reo. ITU-T H.265 | ISO/IEC 23008-2." Un borrador de memoria descriptiva HEVC, denominado en adelante HEVC WD, está disponible en http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip. Una versión de HEVC, denominada en adelante "HEVC Versión 1", está disponible en https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-H.265-201304-S!!PDF-E&type=items. El JCT-VC también está desarrollando una extensión escalable de HEVC, denominada SHVC. Un borrador de trabajo (WD) reciente de SHVC y denominado SHVC WD3 en adelante, está disponible en http://phenix.itsudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1008-v3.zip. Un borrador de trabajo reciente (WD) de la extensión de rango de HEVC, está disponible en http://phenix.intevry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1005-v3.zip.
[0048] Además, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar de acuerdo con la codificación de vídeo escalable, la codificación de múltiples visualizaciones y las extensiones 3DV para HEVC que se encuentran actualmente en desarrollo. La extensión de codificación de vídeo escalable de HEVC puede denominarse SHVC. El JCT-3V también está desarrollando la extensión de múltiples visualizaciones de HEVC, MV-HEVC. Un Borrador de Trabajo (WD) reciente de MV-HEVC, denominado MV-HEVC WD5 en adelante, está disponible en http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E-1004-v6.zip. La extensión 3DV de HEVC puede denominarse 3DV basado en HEVC o 3D-HEVC. Un borrador de trabajo reciente (WD) de la extensión 3D de HEVC, 3D-HEVC, está disponible en http://phenix.intevry.frjct2/doc_end_user/documents/5_V1/JCT3V-E1001-v3.zip.
[0049] En HEVC y otras especificaciones de codificación de vídeo, una secuencia de vídeo en general incluye una serie de imágenes. Las imágenes también pueden denominarse "tramas". Una imagen puede incluir tres matrices de muestra, denominadas Sl , SCb y SCr. Sl es una matriz bidimensional (es decir, un bloque) de muestras de luma. SCb es una matriz bidimensional de muestras de crominancia Cb. SCr es una matriz bidimensional de muestras de crominancia Cr. Las muestras de crominancia también pueden denominarse en el presente documento muestras de "crominancia". En otros casos, una imagen puede ser monocromática y solo puede incluir una serie de muestras de luma.
[0050] Para generar una representación codificada de una imagen, el codificador de vídeo 20 puede generar un conjunto de unidades de árbol de codificación (CTU). Cada una de las CTU puede comprender un bloque de árbol de codificación de muestras de luma, dos bloques de árbol de codificación correspondientes de muestras de croma y estructuras de sintaxis utilizadas para codificar las muestras de los bloques de árbol de codificación. En imágenes monocromas o imágenes que tienen tres planos de color distintos, una CTU puede comprender un solo bloque de árbol de codificación y estructuras de sintaxis utilizadas para codificar las muestras del bloque de árbol de codificación. Un bloque de árbol de codificación puede ser un bloque de muestras NxN. Una CTU también puede denominarse "bloque de árbol" o "unidad de codificación más grande" (LCU). Las CTU de HEVC pueden ser ampliamente análogas a los macrobloques de otras normas, como H.264/AVC. Sin embargo, una CTU no está necesariamente limitada a un tamaño particular y puede incluir una o más unidades de codificación (CU). Un fragmento puede incluir un número entero de CTU ordenadas consecutivamente en un orden de exploración de trama.
[0051] Para generar una CTU codificada, el codificador de vídeo 20 puede realizar de forma recursiva una partición de cuatro árboles en los bloques de árbol de codificación de una CTU para dividir los bloques de árbol de codificación en bloques de codificación, de ahí el nombre "unidades de árbol de codificación". Un bloque de codificación es un bloque de muestras NxN. Una CU puede comprender un bloque de codificación de muestras de luma y dos bloques de codificación 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 de sintaxis utilizadas para codificar las muestras de la codificación. bloques. En imágenes monocromas o imágenes que tienen tres planos de color distintos, una CU puede comprender un solo bloque de codificación y estructuras de sintaxis utilizadas para codificar las muestras del bloque de codificación.
[0052] El codificador de vídeo 20 puede dividir un bloque de codificación de una CU en uno o más bloques de predicción. Un bloque de predicción es un bloque de muestras rectangular (es decir, cuadrado o no cuadrado) en el que se aplica la misma predicción. Una unidad de predicción (PU) de una CU puede comprender un bloque de predicción de muestras de luma, dos bloques de predicción correspondientes de muestras de croma y estructuras de sintaxis utilizadas para predecir los bloques de predicción. En imágenes monocromas o imágenes que tienen tres planos de color distintos, una PU puede comprender un solo bloque de predicción y estructuras de sintaxis utilizadas para predecir el bloque de predicción. El codificador de vídeo 20 puede generar bloques de luma, Cb y Cr predictivo para los bloques de predicción luma, Cb y Cr de cada PU de la CU.
[0053] El codificador de vídeo 20 puede usar intrapredicción o interpredicción para generar los bloques predictivos para una PU. Si el codificador de vídeo 20 usa interpredicción para generar los bloques predictivos de una PU, el codificador de vídeo 20 puede generar los bloques predictivos de la PU basándose en muestras decodificadas de la imagen asociada con la PU. En esta divulgación, la frase "basándose en" puede indicar
"basándose al menos en parte en". Si el codificador de vídeo 20 usa la interpredicción para generar los bloques predictivos de una PU, el codificador de vídeo 20 puede generar los bloques predictivos de la PU basándose en muestras decodificadas de una o más imágenes distintas de la imagen asociada con la PU.
[0054] Para soportar la interpredicción, el codificador de vídeo 20 puede generar una o más listas de imágenes de referencia. Estas listas de imágenes de referencia pueden denominarse RefPicListO y RefPicList1. En algunos ejemplos, el codificador de vídeo 20 puede generar diferentes listas de imágenes de referencia para diferentes imágenes o diferentes cortes de imágenes. Por lo tanto, diferentes PU de diferentes imágenes y/o cortes pueden asociarse con diferentes versiones de RefPicListO y RefPicList1.
[0055] Además, cuando el codificador de vídeo 20 usa la predicción mutua para generar un bloque predictivo de una PU, el codificador de vídeo puede señalar información de movimiento para la PU. La información de movimiento puede incluir un índice de referencia para la PU y un vector de movimiento para la PU. El índice de referencia para la PU puede indicar una posición, dentro de una de las listas de imágenes de referencia asociadas con la PU, de una imagen de referencia. El vector de movimiento para la PU puede indicar un desplazamiento espacial entre un bloque de predicción de la PU y una ubicación de referencia en la imagen de referencia. El codificador de vídeo 20 puede usar muestras de la imagen de referencia asociada con la ubicación de referencia para generar un bloque predictivo para la PU. Debido a que la PU puede estar asociada con dos imágenes de referencia, la PU puede tener dos índices de referencia y dos vectores de movimiento. Por lo tanto, una PU puede tener un índice de referencia RefPicListO y un índice de referencia RefPicList1. El índice de referencia RefPicListO de la PU indica una imagen de referencia en la versión de RefPicListO de la PU. El índice de referencia RefPicList1 de la PU indica una imagen de referencia en la versión de RefPicList1 de la PU. De manera similar, la PU puede tener un vector de movimiento RefPicListO y un vector de movimiento RefPicList1. El vector de movimiento RefPicListO de la PU puede indicar una ubicación de referencia en una imagen de referencia en la versión de RefPicListO de la PU. El vector de movimiento RefPicList1 de la PU puede indicar una ubicación de referencia en una imagen de referencia en la versión de la PU de RefPicList1.
[0056] El codificador de vídeo 20 puede señalar los índices de referencia de una PU y los vectores de movimiento en un flujo de bits. En otras palabras, el codificador de vídeo 20 puede incluir, en el flujo de bits, datos que indiquen los índices de referencia de la PU y los vectores de movimiento. El decodificador de vídeo 30 puede reconstruir las versiones de la PU de RefPicListO y/o RefPicList1 y puede utilizar los índices de referencia de la PU y los vectores de movimiento para determinar uno o más bloques predictivos para la PU. El decodificador de vídeo 30 puede usar los bloques predictivos para la PU, junto con los datos residuales, para decodificar muestras.
[0057] Después de que el codificador de vídeo 20 genera un bloque predictivo para una PU de una CU, el codificador de vídeo 20 puede generar un bloque residual para la CU. Cada muestra de un bloque residual de una CU puede indicar una diferencia entre una muestra en un bloque predictivo de una PU de la CU y una muestra correspondiente en uno de los bloques de codificación de la CU. Por ejemplo, el codificador de vídeo 20 puede generar bloques de luma predictivos para una o más PU de una CU, el codificador de vídeo 20 puede generar un bloque residual de luma para la CU. Cada muestra en el bloque residual luma de la CU indica una diferencia entre una muestra luma en uno de los bloques luma predictivos de la CU y una muestra correspondiente en el bloque de codificación luma original de la CU. Además, el codificador de vídeo 20 puede generar un bloque residual Cb para la CU. Cada muestra en el bloque residual Cb de la CU puede indicar una diferencia entre una muestra Cb en uno de los bloques Cb predictivos de la CU y una muestra correspondiente en el bloque de codificación Cb original de la CU. El codificador de vídeo 20 también puede generar un bloque residual de Cr para la CU. Cada muestra en el bloque residual Cr de la CU puede indicar una diferencia entre una muestra Cr en uno de los bloques Cr predictivos de la CU y una muestra correspondiente en el bloque de codificación Cr original de la CU.
[0058] Además, el codificador de vídeo 20 puede usar la partición de árbol cuádruple para descomponer los bloques residuales (por ejemplo, bloques residuales luma, Cb y Cr) de una CU en uno o más bloques de transformada (por ejemplo, transformada luma, Cb y Cr). Un bloque de transformada puede ser un bloque rectangular (por ejemplo, cuadrado o no cuadrado) de muestras en el que se aplica la misma transformada. Una unidad de transformada (TU) de una CU puede ser un bloque de transformada de muestras de luma, dos bloques de transformada correspondientes de muestras de croma y estructuras de sintaxis utilizadas para transformar las muestras de bloque de transformada. Por lo tanto, cada TU de una CU puede estar asociada a un bloque de transformada de luma, un bloque de transformada de Cb y un bloque de transformada de Cr. El bloque de transformada de luma asociado a la TU puede ser un subbloque del bloque residual de luma de la CU. El bloque de transformada de Cb puede ser un subbloque del bloque residual de Cb de la CU. El bloque de transformada de Cr puede ser un subbloque del bloque residual de Cr de la CU. En imágenes monocromas o imágenes que tienen tres planos de color distintos, una TU puede comprender un solo bloque de transformada y estructuras de sintaxis utilizadas para transformar las muestras del bloque de transformada.
[0059] El codificador de vídeo 20 puede aplicar una o más transformadas a un bloque de transformada de una TU para generar un bloque de coeficientes para la TU. Un bloque de coeficientes puede ser una matriz
bidimensional de coeficientes de transformada. Un coeficiente de transformada puede ser una cantidad escalar. Por ejemplo, el codificador de vídeo 20 puede aplicar una o más transformadas a un bloque de transformada luma de una TU para generar un bloque de coeficiente luma para la TU. El codificador de vídeo 20 puede aplicar una o más transformadas a un bloque de transformada Cb de una TU para generar un bloque de coeficientes Cb para la TU. El codificador de vídeo 20 puede aplicar una o más transformadas a un bloque de transformada Cr de una TU para generar un bloque de coeficiente Cr para la TU.
[0060] Después de generar un bloque de coeficientes (por ejemplo, un bloque de coeficientes luma, un bloque de coeficientes Cb o un bloque de coeficientes Cr), el codificador de vídeo 20 puede cuantificar el bloque de coeficientes. La cuantificación en general se refiere a un proceso en el que unos coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes de transformada, proporcionando una compresión adicional. Después de que el codificador de vídeo 20 cuantifique un bloque de coeficientes, el codificador de vídeo 20 puede codificar por entropía elementos de sintaxis que indican los coeficientes de transformada cuantificados. Por ejemplo, el codificador de vídeo 20 puede realizar una codificación aritmética binaria adaptada al contexto (CABAC) en los elementos de sintaxis que indican los coeficientes de transformada cuantificados.
[0061] El codificador de vídeo 20 puede generar un flujo de bits que incluye un flujo de bits que forma una representación de imágenes codificadas y datos asociados. El término "flujo de bits" puede ser un término colectivo utilizado para referirse a un flujo de unidades de capa de abstracción de red (NAL) (por ejemplo, una secuencia de unidades NAL) o un flujo de bytes (por ejemplo, una encapsulación de un flujo de unidades NAL que contiene prefijos de código de inicio y unidades NAL como se especifica en el Anexo B de la norma HEVC). Una unidad NAL es una estructura de sintaxis que contiene una indicación del tipo de datos en la unidad NAL y bytes que contienen esos datos en forma de carga útil de secuencia de bytes sin procesar (RBSP) intercalados según sea necesario con bits de prevención de emulación. Cada una de las unidades NAL puede incluir una cabecera de unidad NAL y puede encapsular una RBSP. La cabecera de la unidad NAL puede incluir un elemento de sintaxis que indica un código de tipo de unidad NAL. El código de tipo de unidad NAL especificado por la cabecera de unidad NAL de una unidad NAL indica el tipo de unidad NAL. Un RBSP puede ser una estructura de sintaxis que contiene un número entero de bytes que está encapsulado dentro de una unidad NAL. En algunos casos, una RBSP incluye cero bits.
[0062] Los diferentes tipos de unidades NAL pueden encapsular diferentes tipos de RBSP. Por ejemplo, un primer tipo de unidad NAL puede encapsular una RBSP para un conjunto de parámetros de imagen (PPS), un segundo tipo de unidad NAL puede encapsular una RBSP para un fragmento codificado, un tercer tipo de unidad NAL puede encapsular una RBSP para SEI, etcétera. Las unidades NAL que encapsulan las RBSP para datos de codificación de vídeo (a diferencia de las RBSP para conjuntos de parámetros y mensajes SEI) pueden denominarse unidades NAL de capa de codificación de vídeo (VCL). Las unidades NAL que contienen conjuntos de parámetros (por ejemplo, VPS, SPS, PPS, etc.) pueden denominarse unidades NAL de conjuntos de parámetros.
[0063] El decodificador de vídeo 30 puede recibir un flujo de bits generado por el codificador de vídeo 20. Además, el decodificador de vídeo 30 puede analizar el flujo de bits para obtener elementos de sintaxis del flujo de bits. El decodificador de vídeo 30 puede reconstruir las imágenes de los datos de vídeo basándose al menos en parte en los elementos de sintaxis obtenidos del flujo de bits. El proceso para reconstruir los datos de vídeo puede ser en general recíproco al proceso realizado por el codificador de vídeo 20. Por ejemplo, el decodificador de vídeo 30 puede utilizar vectores de movimiento de PU para determinar bloques predictivos para las PU de una CU actual. Además, el decodificador de vídeo 30 puede cuantificar de forma inversa los bloques de coeficientes asociados con las TU de la CU actual. El decodificador de vídeo 30 puede realizar transformadas inversas en los bloques de coeficientes para reconstruir bloques de transformada asociados con las TU de la CU actual. El decodificador de vídeo 30 puede reconstruir los bloques de codificación de la CU actual añadiendo las muestras de los bloques predictivos para las PU de la CU actual a las muestras correspondientes de los bloques de transformada de las TU de la CU actual. Reconstruyendo los bloques de codificación para cada CU de una imagen, el decodificador de vídeo 30 puede reconstruir la imagen.
[0064] En la codificación de múltiples visualizaciones, puede haber múltiples visualizaciones de la misma escena desde diferentes puntos de visualización. En el contexto de la codificación de múltiples visualizaciones, el término "unidad de acceso" puede usarse para referirse al conjunto de imágenes que corresponden a la misma instancia de tiempo. Por lo tanto, los datos de vídeo pueden conceptualizarse como una serie de unidades de acceso que ocurren a lo largo del tiempo. Un "componente de visualización'' puede ser una representación codificada de una visualización en una única unidad de acceso. En esta divulgación, una "visualización" puede referirse a una secuencia de componentes de visualización asociados con el mismo identificador de visualización. En algunos ejemplos, un componente de visualización puede ser un componente de visualización de textura (es decir, una imagen de textura) o un componente de visualización de profundidad (es decir, una imagen de profundidad).
[0065] La codificación de múltiples visualizaciones soporta la predicción entre visualizaciones. La predicción
entre visualizaciones es similar a la predicción entre visualizaciones utilizada en HEVC y puede utilizar los mismos elementos de sintaxis. Sin embargo, cuando un codificador de vídeo realiza una predicción entre visualizaciones en una unidad de vídeo actual (como una PU), el codificador de vídeo 20 puede usar, como imagen de referencia, una imagen que está en la misma unidad de acceso que la unidad de vídeo actual, pero en una visualización diferente. En contraste, la interpredicción convencional solo usa imágenes en diferentes unidades de acceso como imágenes de referencia.
[0066] En la codificación de múltiples visualizaciones, una visualización puede denominarse ''visualización base" si un decodificador de vídeo (por ejemplo, un decodificador de vídeo 30) puede decodificar imágenes en la visualización sin referencia a imágenes en cualquier otra visualización. Al codificar una imagen en una de las visualizaciones no base, un codificador de vídeo (como el codificador de vídeo 20 o el decodificador de vídeo 30) puede agregar una imagen a una lista de imágenes de referencia si la imagen está en una visualización diferente pero dentro de la misma instancia de tiempo (es decir, unidad de acceso) que la imagen que el codificador de vídeo está codificando actualmente. Como otras imágenes de referencia entre predicciones, el codificador de vídeo puede insertar una imagen de referencia de predicción entre visualizaciones en cualquier posición de una lista de imágenes de referencia.
[0067] Por ejemplo, las unidades NAL pueden incluir cabeceras (es decir, cabeceras de unidad NAL) y cargas útiles (por ejemplo, RBSP). Las cabeceras de la unidad NAL pueden incluir elementos de sintaxis nuh_reserved_zero_6bits. Las unidades NAL tienen elementos de sintaxis nuh_layer_id, que también pueden denominarse elementos de sintaxis nuh_reserved_zero_6bit, especificando que diferentes valores pertenecen a diferentes "capas" de un flujo de bits. Por lo tanto, en la codificación de múltiples visualizaciones, 3DV o SVC, el elemento de sintaxis nuh_layer_id de la unidad NAL especifica un identificador de capa (es decir, un ID de capa) de la unidad NAL. El elemento de sintaxis de identificación de la capa nuh de una unidad NAL es igual a 0 si la unidad NAL se relaciona con una capa base en codificación de múltiples visualizaciones, codificación 3DV o SVC. Los datos de una capa base de un flujo de bits pueden decodificarse sin referencia a los datos de cualquier otra capa del flujo de bits. Si la unidad NAL no se relaciona con una capa base en codificación de múltiples visualizaciones, 3DV o SVC, el elemento de sintaxis nuh_layer_id puede tener un valor distinto de cero. En la codificación de múltiples visualizaciones y la codificación 3DV, diferentes capas de un flujo de bits pueden corresponder a diferentes visualizaciones. En SVC, las capas distintas de la capa base pueden denominarse "capas de mejora" y pueden proporcionar información que mejore la calidad visual de los datos de vídeo decodificados a partir del flujo de bits.
[0068] Además, algunas imágenes dentro de una capa pueden decodificarse sin referencia a otras imágenes dentro de la misma capa. Por lo tanto, las unidades NAL que encapsulan datos de determinadas imágenes de una capa pueden eliminarse del flujo de bits sin afectar a la decodificación de otras imágenes de la capa. La eliminación de unidades NAL que encapsulan datos de tales imágenes puede reducir la velocidad de tramas del flujo de bits. Un subconjunto de imágenes dentro de una capa que puede decodificarse sin referencia a otras imágenes dentro de la capa puede denominarse en el presente documento "subcapa" o "subcapa temporal".
[0069] Las unidades NAL pueden incluir elementos de sintaxis temporal_id. El elemento de sintaxis temporal_id de una unidad NAL especifica un identificador temporal de la unidad NAL. El identificador temporal de una unidad NAL identifica una subcapa con la que está asociada la unidad NAL. Por lo tanto, cada subcapa de un flujo de bits puede asociarse con un identificador temporal diferente. Si el identificador temporal de una primera unidad NAL es menor que el identificador temporal de una segunda unidad NAL, los datos encapsulados por la primera unidad NAL pueden decodificarse sin referencia a los datos encapsulados por la segunda unidad NAL.
[0070] Un flujo de bits puede estar asociado con una pluralidad de puntos de operación. Cada punto de operación de un flujo de bits está asociado con un conjunto de identificadores de capa (es decir, un conjunto de valores nuh_reserved_zero_6bits) y un identificador temporal. El conjunto de identificadores de capa se puede denotar como OpLayerIdSet y el identificador temporal se puede denotar como TemporalID. Si el identificador de capa de una unidad NAL está en el conjunto de identificadores de capa de un punto de operación y el identificador temporal de la unidad NAL es menor o igual que el identificador temporal del punto de operación, la unidad NAL está asociada con el punto de operación. Una representación de punto de operación es un subconjunto de flujo de bits que está asociado con un punto de operación. La representación del punto de operación puede incluir cada unidad NAL que está asociada con el punto de operación. En algunos ejemplos, la representación del punto de operación no incluye unidades VCL NAL que no están asociadas con el punto de operación.
[0071] Un elemento de red sensible a los medios (MANE) 17 puede aplicar una reducción del flujo de bits a un flujo de bits HEVC que está codificado con múltiples subcapas. MANE 17 puede comprender varios tipos de dispositivos informáticos, cada uno de los cuales puede comprender uno o más procesadores y medios de almacenamiento de datos. En cualquier punto del flujo de bits, MANE 17 puede comenzar a eliminar unidades NAL de subcapas superiores (es decir, subcapas asociadas con identificadores temporales superiores)
basándose en el hecho de que las imágenes en las subcapas inferiores (es decir, subcapas asociadas con identificadores temporales inferiores) siguen siendo decodificables porque el proceso de decodificación de las imágenes en las subcapas inferiores no depende de las unidades NAL de las subcapas superiores. La acción de eliminar todas las unidades NAL con identificadores temporales superiores a un cierto valor puede denominarse conmutación descendente temporal. Siempre puede ser posible una conmutación descendente temporal.
[0072] El término "conmutación ascendente temporal" puede referirse a la acción de comenzar a reenviar unidades NAL de una determinada subcapa que no se ha reenviado hasta ese punto. La conmutación ascendente temporal solo puede ser posible si ninguna de las imágenes de la capa a la que se conmuta depende de ninguna imagen de la misma subcapa antes del punto del flujo de bits en el que se realizó la conmutación. Por lo tanto, el término "punto de conmutación de subcapa temporal" puede referirse a una imagen que no depende de ninguna otra imagen que esté en la misma subcapa que la imagen y que precede a la imagen en el orden de decodificación.
[0073] HEVC y otras normas de codificación de vídeo especifican perfiles, estratos y niveles. Los perfiles, estratos y niveles especifican restricciones en los flujos de bits y, por lo tanto, límites en las capacidades necesarias para decodificar los flujos de bits. Los perfiles, estratos y niveles también pueden usarse para indicar puntos de interoperabilidad entre implementaciones de decodificadores individuales. Cada perfil especifica un subconjunto de características y herramientas algorítmicas presentes en una norma de codificación de vídeo. No es necesario que los codificadores de vídeo utilicen todas las funciones soportadas en un perfil. Cada nivel de un estrato puede especificar un conjunto de límites sobre los valores que pueden tener los elementos de sintaxis y las variables. Se puede utilizar el mismo conjunto de definiciones de estrato y nivel con todos los perfiles, pero las implementaciones individuales pueden soportar un estrato diferente y dentro de un estrato un nivel diferente para cada perfil soportado. Para cualquier perfil dado, un nivel de un estrato puede corresponder en general a una carga de procesamiento de decodificador particular y a una capacidad de memoria. Las capacidades de los decodificadores de vídeo se pueden especificar en términos de la capacidad de decodificar secuencias de vídeo que se ajusten a las restricciones de perfiles, estratos y niveles particulares. Para cada uno de esos perfiles, también se puede expresar el estrato y el nivel soportados para ese perfil. Es posible que algunos decodificadores de vídeo no puedan decodificar perfiles, estratos o niveles particulares.
[0074] En HEVC, los perfiles, estratos y niveles pueden ser señalados por la estructura de sintaxis proflle_tier_level(). La estructura de sintaxis profile_tier_level() puede incluirse en un VPS y/o un SPS. La estructura de sintaxis profile_tier_level() puede incluir un elemento de sintaxis general_profile_idc, un elemento de sintaxis general_tier_flag y un elemento de sintaxis general_level_idc. El elemento general_profile_idc_syntax puede indicar un perfil al que se ajusta una secuencia de vídeo codificada (CVS). El elemento de sintaxis general_tier_flag puede indicar un contexto de nivel para la interpretación del elemento de sintaxis general_level_idc. El elemento de sintaxis general_level_idc puede indicar un nivel al que se ajusta un CVS. Se pueden reservar otros valores para estos elementos de sintaxis.
[0075] Las capacidades de los decodificadores de vídeo se pueden especificar en términos de la capacidad de decodificar secuencias de vídeo que se ajusten a las restricciones de perfiles, estratos y niveles. Para cada uno de esos perfiles, también se puede expresar el estrato y el nivel soportados para ese perfil. En algunos ejemplos, los decodificadores de vídeo no infieren que un valor reservado del elemento de sintaxis general_profile_idc entre los valores especificados en HEVC indique capacidades intermedias entre los perfiles especificados. Sin embargo, los decodificadores de vídeo pueden inferir que un valor reservado del elemento de sintaxis general_level_idc asociado con un valor particular del elemento de sintaxis de indicador de estrato general entre los valores especificados en HEVC indica capacidades intermedias entre los niveles especificados del estrato.
[0076] La especificación de sistemas MPEG-2 describe cómo los flujos de datos de multimedia comprimidos (vídeo y/o audio) se pueden multiplexar junto con otros datos para formar un solo flujo de datos adecuado para su transmisión o almacenamiento digital. Una especificación de MPEG-2 TS es la recomendación ITU-T H.222.0, versión de junio de 2012 (en adelante, "H.222.0"), en la que se proporciona el soporte de extensiones AVC y AVC. La enmienda de MPEG-2 TS para la HEVC ha sido desarrollada. El documento más reciente es "Text of ISO/IEC 13818-1: 2013 / Final Draft Amendment 3 - Transport of HEVC video over MPEG-2 Systems", en el documento de MPEG w13656, julio de 2013 (en adelante, "FDAM 3"). Recientemente, se ha iniciado la enmienda de MPEG-2 TS para el transporte de HEVC en capas. El más reciente documento es "Text of ISO/IEC 13818-1:2013 / Study of PDAM 7 - Carriage of Layered HeVc ", en el documento MPEG w14562, julio de 2014, (en adelante "Study of PDAM 7").
[0077] En la especificación de sistemas MPEG-2, un flujo elemental es un componente único codificado digitalmente (posiblemente comprimido en MPEG) de un programa. Por ejemplo, la parte codificada de vídeo o audio del programa puede ser un flujo elemental. Un flujo elemental se convierte primero en un flujo elemental empaquetado (PES) antes de ser multiplexado en un flujo de programas o flujo de transporte. Dentro del mismo programa, se utiliza un identificador de flujo para distinguir los paquetes de PES que pertenecen a un flujo
elemental o a otro.
[0078] En la especificación de sistemas MPEG-2, los flujos de programas y los flujos de transporte son dos múltiplex alternativos destinados a diferentes aplicaciones. Los flujos de programas están predispuestos para el almacenamiento y visualización de un solo programa de un servicio de almacenamiento digital. Los flujos de programas están diseñados principalmente para su uso en entornos sin errores porque los flujos de programas pueden ser susceptibles a errores.
[0079] Un flujo de programas comprende los flujos elementales que pertenecen al flujo de programas y típicamente contiene paquetes de longitud variable. En un flujo de programas, los paquetes de PES que se obtienen de los flujos elementales contribuyentes se organizan en "cajetillas". Una cajetilla comprende una cabecera de cajetilla, una cabecera de sistema optativo y cualquier número de paquetes de PES, tomados de cualquiera de los flujos elementales contribuyentes, en cualquier orden. La cabecera del sistema contiene una breve explicación de las características del flujo del programa, tales como: su máxima velocidad de datos; el número de flujos elementales contribuyentes de audio y vídeo; información adicional de temporización. Un decodificador puede usar la información contenida en una cabecera del sistema para determinar si el decodificador es capaz de decodificar el flujo del programa o no.
[0080] El flujo de transporte está concebido principalmente para la entrega simultánea de una serie de programas por canales potencialmente propensos a errores. Un flujo de transporte es un multiplex ideado para aplicaciones de múltiples programas, tales como la radiodifusión, de modo que un solo flujo de transporte pueda alojar muchos programas independientes. Un flujo de transporte comprende una sucesión de paquetes de transporte. En algunos casos, cada uno de los paquetes de transporte tiene una longitud de 188 bytes. El uso de paquetes cortos de longitud fija significa que los flujos de transporte no son tan susceptibles a errores como los flujos de programas. Además, a cada paquete de transporte de 188 octetos de largo se le puede dar protección adicional contra errores procesando el paquete de transporte a través de un proceso estándar de protección contra errores, tal como la codificación de Reed-Solomon. La mejora de la capacidad de recuperación ante errores del flujo de transporte significa que un paquete de transporte tiene una mejor posibilidad de sobrevivir a los canales propensos a errores, como los canales que se encuentran en un entorno de radiodifusión. Podría parecer que el flujo de transporte es claramente el mejor de los dos multiplexados, con su mayor capacidad de recuperación a errores y su capacidad para transportar muchos programas simultáneos. Sin embargo, el flujo de transporte es un multiplex más sofisticado que el flujo de programas y, por consiguiente, es más difícil de crear y de demultiplexar.
[0081] El primer byte de un paquete de transporte es un byte de sincronización que, en algunos casos, es 0x47. Un solo flujo de transporte puede llevar muchos programas diferentes, comprendiendo cada uno de ellos muchos flujos elementales empaquetados. Se utiliza un campo de identificador de paquete (PID) para distinguir los paquetes de transporte que contienen los datos de un flujo elemental de los que llevan los datos de otros flujos elementales. En algunos casos, el PID es de 13 bits. Es responsabilidad del multiplexor garantizar que a cada flujo elemental se le conceda un valor de PID único. El último octeto de un paquete de transporte es un campo de recuento de continuidad. Se incrementa el campo de recuento de continuidad entre los paquetes de transporte sucesivos que pertenecen al mismo flujo elemental. Esto puede permitir que un decodificador detecte la pérdida o ganancia de un paquete de transporte y pueda ocultar los errores que de lo contrario podrían obtenerse como resultado de tal suceso.
[0082] Aunque está claro basándose en un valor PID a qué flujo elemental pertenece un paquete de transporte, existe la necesidad de que el decodificador sepa qué flujos elementales pertenecen a qué programa. Por consiguiente, un flujo de transporte comprende información específica del programa (PSI) para especificar explícitamente las relaciones entre los programas y los flujos elementales componentes.
[0083] La información específica del programa puede incluir una o más tablas de mapas de programas (PMT). Cada programa transportado en un flujo de transporte tiene una tabla de mapa de programas asociada. La PMT proporciona detalles sobre el programa y los flujos elementales que forman el programa. Por ejemplo, hay un programa con el número 3 y el programa contiene vídeo con PID 33, audio en inglés con PID 57 y audio en chino con PID 60. Una PMT puede incluir detalles sobre más de un programa.
[0084] La tabla básica de mapas de programa puede incluir algunos de los muchos descriptores especificados dentro de la especificación de los sistemas MPEG-2. Dichos descriptores transmiten información adicional sobre un programa o sus flujos elementales de componentes. Los descriptores pueden incluir parámetros de codificación de vídeo, parámetros de codificación de audio, identificación de idioma, información de escaneo y recorrido, detalles de acceso condicional, información de derechos de autor, etc. Un radiodifusor u otro usuario puede definir descriptores privados adicionales si es necesario. Tal como se analiza en detalle en otro sitio de esta divulgación, en los flujos elementales de componentes relacionados con el vídeo, también puede haber un descriptor de jerarquía, que proporciona información para identificar los elementos de programa que contienen componentes de flujos de vídeo, audio y privados codificados jerárquicamente.
[0085] Además de la PMT, la PSI puede incluir un mapa de flujo de programas (PSM). El PSM proporciona una descripción de los flujos elementales en un flujo de programas y las relaciones de los flujos elementales entre sí. Cuando se transporta en un flujo de transporte, el mapa de flujo del programa no se modifica. El PSM está presente como un paquete de PES cuando el valor de stream_id es 0xBC.
[0086] Además, la PSI puede incluir una tabla de asociación de programas (PAT). La tabla de asociación de programas incluye una lista completa de todos los programas disponibles en un flujo de transporte. En algunos ejemplos, PAT siempre tiene el valor PID 0. Cada programa se enumera junto con el valor de PID de los paquetes de transporte que contienen la tabla de mapas de programa del programa. La PSI también puede incluir una tabla de información de red (NIT) y una tabla de acceso condicional (CAT). El número de programa cero, especificado en la PAT, apunta a la NIT. La NIT es opcional y, cuando está presente, proporciona información sobre una red física que lleva el flujo de transporte, tal como las frecuencias de canal, los detalles del transpondedor del satélite, las características de modulación, el originador del servicio, el nombre del servicio y los detalles de las redes alternativas disponibles. Si se codifica cualquier flujo elemental dentro de un flujo de transporte, debe estar presente un CAT. La CAT proporciona detalles de los uno o más sistemas de aleatorización en uso y proporciona los valores de PID de los paquetes de transporte que contienen la información de administración y prestaciones de acceso condicional. El formato de esta información no se especifica en la especificación de Sistemas MPEG-2.
[0087] En el flujo de transporte MPEG-2, un descriptor de jerarquía está diseñado para señalar la jerarquía de los subflujos de bits en diferentes flujos elementales. El descriptor de jerarquía proporciona información para identificar los elementos de programa que contienen componentes de flujos de vídeo, de audio y privados, codificados jerárquicamente. (Consulte la Tabla 2-49 a continuación)
Tabla 2-49 - Descriptor de jerarquía
[0088] En la Tabla 2-49, temporal_scalability_flag es un indicador de 1 bit, que cuando se fija en "0", indica que el elemento de programa asociado mejora la frecuencia de tramas del flujo de bits resultante del elemento de programa al que hace referencia el índice hierarchy_embedded_layer. El valor de '1' para este indicador está reservado.
[0089] spatial_scalability_flag es un indicador de 1 bit que, cuando se fija en "0", indica que el elemento de programa asociado mejora la resolución espacial del flujo de bits resultante del elemento de programa al que hace referencia el hierarchy_embedded_layer_index. El valor de '1' para este indicador está reservado.
[0090] quality_scalability_flag: un indicador de 1 bit que, cuando se fija en "0", indica que el elemento de programa asociado mejora la calidad de la relación señal / ruido (SNR) o la fidelidad del flujo de bits resultante del elemento de programa al que hace referencia el hierarchy_embedded _layer_index. El valor de '1' para este indicador está reservado.
[0091] hierarchy_type indica un tipo de jerarquía. La relación jerárquica entre la capa jerárquica asociada y su capa integrada en la jerarquía se define en la Tabla 2-50, que se presenta a continuación. Si la escalabilidad se aplica en más de una dimensión, hierarchy_type se fijará al valor de "8" ("Escalabilidad combinada"), y los indicadores temporal_scalability_flag, spatial_scalability_flag y quality_scalability_flag se fijarán de la forma
correspondiente. Para los subflujos de vídeo de MVC, hierarchy_type shall se fijará al valor de "9" ("subflujo de vídeo de MVC") y los indicadores temporal_scalability_flag, spatial_scalability_flag y quality_scalability_flag se fijarán a "1". Para los subflujos de visualización base de MVC, hierarchy_type se fijará al valor de 15' y los indicadores temporal_scalability_flag, spatial_scalability_flag y 1 uality_scalability_flag se fijarán a "1".
[0092] hierarchy_layer_index: es un campo de 6 bits que define un índice único del elemento de programa asociado en una tabla de jerarquías de capas de codificación. Los índices serán únicos dentro de una sola definición de programa. Para subflujos de bits de vídeo de flujos de vídeo de la AVC que son conformes a uno o más perfiles definidos en el Anexo G de la Rec. ITU-T H.264 | ISO/CEI 14496-10, este es el índice de elemento de programa, que se asigna de manera que el orden del flujo de bits sea correcto si las representaciones de dependencia de SVC asociadas de los subflujos de bits de vídeo de la misma unidad de acceso se vuelven a ensamblar en orden creciente del hierarchy_layer_index. Para los subflujos de bits de vídeo de la MVC de flujos de vídeo de la AVC que son conformes a uno o más perfiles definidos en el Anexo H de la Rec. ITU-T H.264 | ISO/CEI 14496-10, este es el índice de elemento de programa, que se asigna de manera que el orden del flujo de bits será correcto si los subconjuntos de componentes de visualización de MVC asociados de los subflujos de bits de vídeo de MVC de la misma unidad de acceso se vuelven a ensamblar en orden creciente de hierarchy_layer_index.
[0093] tref_present_flag es un indicador de 1 bit que, cuando se fija en "0", indica que el campo TREF puede estar presente en las cabeceras de paquetes de PES en el flujo elemental asociado. El valor de '1' para este indicador está reservado.
[0094] El índice hierarchy_embedded_layer es un campo de 6 bits que define el hierarchy_layer_index del elemento de programa al cual es necesario acceder y que debe estar presente en orden de decodificación antes de decodificar el flujo elemental asociado con este hierarchy_descriptor. El índice hierarchy_embedded_layer no está definido si el valor hierarchy_type es 15.
[0095] hierarchy_channel es un campo de 6 bits que indica el número de canal previsto para el elemento de programa asociado en un conjunto ordenado de canales de transmisión. El canal de transmisión más robusto está definido por el valor más bajo de este campo con respecto a la definición general de la jerarquía de transmisión. Un determinado hierarchy_channel puede ser asignado al mismo tiempo a varios elementos de programa.
Tabla 2-50 - Valores de campo Hierarchy_type
[0096] En MPEG-2 TS, un descriptor de extensión de jerarquía puede proporcionar información adicional con respecto a un componente de programa correspondiente y, por lo tanto, una subcapa temporal respectiva. Por ejemplo, cuando está presente un descriptor de extensión de jerarquía, el descriptor de extensión de jerarquía se utiliza para especificar la dependencia de las capas presentes en diferentes flujos elementales. A diferencia de un descriptor de jerarquía, un descriptor de extensión de jerarquía puede indicar qué capas se requiere decodificar para decodificar con éxito la subcapa temporal correspondiente al descriptor de extensión de jerarquía. La Tabla 7-3, a continuación, indica una sintaxis de un descriptor de extensión de jerarquía, como se especifica en FDAM 3.
Tabla 7-3
[0097] En la tabla 7-3 anterior, extension_dimens¡on_b¡ts es un campo de 16 bits que indica la posible mejora del elemento de programa asociado proveniente de la capa base, resultante del elemento de programa de la capa con el identificador de capa nuh igual a 0. La asignación de los bits a las dimensiones de mejora es la siguiente.
Tabla 7-4 - Semántica de extensión dimensión bits
El i-ésimo bit de extension_dimension_bits que es igual a 1 indica que está presente la dimensión de mejora correspondiente.
[0098] hierarchy_layer_index: es un campo de 6 bits que define un índice único del elemento de programa asociado en una tabla de jerarquías de capas de codificación. Los índices serán únicos dentro de una sola definición de programa. Para subflujos de bits de vídeo de flujos de vídeo de HEVC que son conformes a uno o más perfiles definidos en el Anexo G o H de la Rec. ITU-T H.265 | ISO/IEC 23008-2, este es el índice de elemento de programa, que se asigna de manera que el orden del flujo de bits sea correcto si las capas de dependencia asociadas de los subflujos de bits de vídeo de la misma unidad de acceso se vuelven a ensamblar en orden creciente del hierarchy_layer_index.
[0099] tref_present_flag un indicador de 1 bit que, cuando se fija en "0", indica que el campo TREF puede estar presente en las cabeceras de paquetes de PES en el flujo elemental asociado. El valor de '1' para este indicador está reservado.
[0100] nuh_layer_id es un campo de 6 bits que especifica el nuh_layer_id más alto de las unidades NAL en el flujo elemental asociado con este hierarchy_extension_descriptor().
[0101] temporal_id es un campo de 3 bits que especifica el TemporalId más alto de las unidades NAL en el flujo elemental asociado con este hierarchy_extension_descriptor().
[0102] num_embedded_layers es un campo de 6 bits que especifica el número de elementos de programa dependientes directos al que se debe acceder y que debe estar presente en el orden de decodificación antes de decodificar el flujo elemental asociado a este hierarchy_extension_descriptor().
[0103] hierarchy_ext_embedded_layer_index es un campo de 6 bits que define el hierarchy_layer_index del elemento de programa al que se debe acceder y que debe estar presente en el orden de decodificación antes de decodificar el flujo elemental asociado a este hierarchy_extension_descriptor. Este campo está indefinido si el valor de tipo_jerarquía es 15.
[0104] hierarchy_channel es un campo de 6 bits que indica el número de canal previsto para el elemento de programa asociado en un conjunto ordenado de canales de transmisión. El canal de transmisión más robusto está definido por el valor más bajo de este campo con respecto a la definición general de la jerarquía de transmisión. Un determinado hierarchy_channel puede ser asignado al mismo tiempo a varios elementos de programa. En otros ejemplos, los elementos de sintaxis del descriptor de jerarquía pueden tener una semántica diferente.
[0105] En el Estudio de PDAM 7, un descriptor de extensión de jerarquía (es decir, un hierarchy_extension_descriptor) no puede describir la dependencia temporal. En lugar de eso, los descriptores de extensión de jerarquía se diseñaron para usarse junto con un descriptor de jerarquía (por ejemplo, un descriptor de jerarquía) de tal manera que el descriptor de jerarquía se usa para describir solo la dependencia temporal, mientras que otros tipos de dependencia se describen usando descriptores de extensión de jerarquía. Este diseño de descriptores de extensión de jerarquía y descriptores de jerarquía crea una dependencia tal que no se puede utilizar un descriptor de extensión de jerarquía sin la existencia de un descriptor de jerarquía.
[0106] Las técnicas particulares de esta divulgación pueden abordar esta dependencia. Por ejemplo, puede incluirse una indicación en un descriptor de extensión de jerarquía para indicar escalabilidad temporal. Por ejemplo, el descriptor de extensión de la jerarquía puede incluir una indicación de si un elemento de programa mejora la velocidad de tramas de un flujo de bits. En algunos ejemplos, la indicación de escalabilidad temporal puede ser parte de un elemento de sintaxis extension_dimension_bits de un descriptor de extensión de jerarquía. Esto se puede hacer actualizando la semántica del elemento de sintaxis extension_dimension_bits para soportar la descripción de la escalabilidad temporal de la siguiente manera: cuando los 16 bits del elemento de sintaxis extension_dimension_bits son iguales a 0, indica mejora temporal. Por ejemplo, que todos los bits del elemento de sintaxis (por ejemplo, extension_dimension_bits) sean iguales a un valor particular (por ejemplo, 0) indica que un elemento de programa mejora la velocidad de tramas de un flujo de bits.
[0107] Un descriptor de extensión de jerarquía puede indicar escalabilidad temporal de otras formas. Por ejemplo, uno de los bits reservados del elemento de sintaxis extension_dimension_bits puede usarse para indicar la escalabilidad temporal. Por ejemplo, un solo bit de un elemento de sintaxis (por ejemplo, extension_dimension_bits) puede indicar si un elemento de programa mejora la velocidad de tramas de un flujo de bits. En un ejemplo, se agrega un bit al elemento de sintaxis de bits de extensión_dimensión de modo que el elemento de sintaxis de bits de dimensión_extensión ahora tiene 17 bits. En este ejemplo, el bit adicional indica escalabilidad temporal. Por ejemplo, un elemento de sintaxis (por ejemplo, extension_dimension_bits) puede constar de 17 bits y un último bit del elemento de sintaxis puede indicar si un elemento de programa mejora la velocidad de tramas de un flujo de bits.
[0108] Por lo tanto, de acuerdo con un ejemplo de esta divulgación, un dispositivo de procesamiento de vídeo, como MANE 17 o un dispositivo de origen 12, puede determinar si un elemento de programa actual mejora la velocidad de tramas de un flujo de bits. El elemento de programa actual puede incluir datos de vídeo codificados. Un dispositivo de procesamiento de vídeo puede ser o comprender un dispositivo configurado para procesar datos de vídeo, como un dispositivo de codificación de vídeo, un dispositivo de decodificación de vídeo, un dispositivo de vídeo intermedio como MANE, un dispositivo de transmisión continua de vídeo, un dispositivo informático que genera archivos que contienen datos de vídeo codificado, u otro tipo de dispositivo. En este ejemplo, el dispositivo de procesamiento de vídeo puede incluir, en un descriptor (por ejemplo, un descriptor de extensión de jerarquía) correspondiente al elemento de programa actual, elementos de sintaxis (por ejemplo, elementos de sintaxis hierarchy_ext_embedded_layer_index) que indican índices de capa de elementos de programa a los que se debe acceder y estar presente en el orden de decodificación antes de decodificar el elemento de programa actual. En este ejemplo, el dispositivo de procesamiento de vídeo puede incluir, en el descriptor correspondiente al elemento de programa actual, una indicación de si el elemento de programa actual mejora la velocidad de tramas del flujo de bits. En algunos ejemplos, cada uno de los elementos del programa corresponde a una subcapa temporal respectiva.
[0109] En un ejemplo correspondiente, un dispositivo de procesamiento de vídeo, como MANE 17 o el dispositivo de destino 14, puede determinar, basándose en elementos de sintaxis (por ejemplo, elementos de sintaxis hierarchy_ext_embedded_layer_index) en un descriptor (por ejemplo, un descriptor de extensión de jerarquía) correspondiente a un elemento de programa actual, elementos de programa a los que se debe acceder y que están presentes en el orden de decodificación antes de decodificar el elemento de programa
actual. En este ejemplo, el dispositivo de procesamiento de vídeo puede determinar, basándose en una indicación en el descriptor correspondiente al elemento de programa actual, si el elemento de programa actual mejora la velocidad de tramas de un flujo de bits. En este ejemplo, el flujo de bits puede obtenerse como resultado de un conjunto de uno o más elementos de programa a los que es necesario acceder y deben estar presentes en el orden de decodificación antes de decodificar el elemento de programa actual.
[0110] En el estudio de PDAM 7, tanto los descriptores de puntos de operación HEVC (por ejemplo, un hevc_operation_point_descriptor) como los descriptores de extensión HEVC (por ejemplo, un hevc_extension_descriptor) proporcionan medios para señalar la información del punto de operación. Tal información de punto de operación incluye la señalización de información de perfil, estrato y nivel (PTL). Sin embargo, la señalización de información PTL para puntos de operación en descriptores de punto de operación HEVC y descriptores de extensión HEVC no está alineada con la señalización de información PTL en el nivel de códec, es decir, en normas SHVC y MV-HEVC. En el nivel de códec, a cada capa que se incluye en un punto de operación se le asigna su propia información de PTL.
[0111] Las técnicas adicionales de esta divulgación pueden abordar este problema. Por ejemplo, de acuerdo con una técnica de esta divulgación, los puntos de operación y la información de PTL se señalan de la forma siguiente. Una lista de conjuntos de información de PTL, cada uno de los cuales incluye información de PTL, se señala en un descriptor para un programa. Una lista de puntos de operación que están disponibles para un programa también se señala en un descriptor. En algunos ejemplos, el descriptor que incluye la lista de puntos de operación es un descriptor diferente del descriptor que contiene la lista de conjuntos de información de PTL. En otros ejemplos, el descriptor que incluye la lista de puntos de operación es el mismo descriptor que el descriptor que contiene la lista de conjuntos de información de PTL. A cada capa incluida en un punto de operación como capa a decodificar (es decir, incluida en el subflujo de bits utilizado para decodificar el punto de operación) se le asigna un índice que hace referencia a un conjunto de información PTL. En otros ejemplos, a cada capa incluida en un punto de operación como capa de salida se le asigna un índice que hace referencia a un conjunto de información de PTL.
[0112] Por lo tanto, de acuerdo con un ejemplo de esta divulgación, un dispositivo de procesamiento de vídeo, como el dispositivo de origen 12, MANE 17 u otro dispositivo, puede señalar, en un descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis PTL. El uno o más flujos elementales pueden comprender datos de vídeo codificados. Para cada capa respectiva de cada punto de operación respectivo de una pluralidad de puntos de operación del programa, el dispositivo de procesamiento de vídeo puede asignar información de PTL respectiva a la capa respectiva del punto de operación respectivo. Además, el dispositivo de procesamiento de vídeo puede señalar, en el descriptor del programa u otro descriptor del programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación. En este ejemplo, cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de la pluralidad de puntos de operación. Además, en este ejemplo, para cada capa respectiva del punto de operación respectivo, el elemento de sintaxis de punto de operación respectivo incluye un elemento de sintaxis respectivo que identifica un conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que especifican la información de PTL respectiva asignada a la capa respectiva del punto de operación respectivo.
[0113] En un ejemplo correspondiente, un dispositivo de procesamiento de vídeo, tal como MANE 17, el dispositivo de destino 14 u otro dispositivo, puede obtener, a partir de un descriptor de un programa que puede comprender uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis PTL. En este ejemplo, cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que comprenden elementos de sintaxis que especifican la información de PTL respectiva. Además, en este ejemplo, el dispositivo de procesamiento de vídeo puede obtener, a partir del descriptor del programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación. En este ejemplo, cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de una pluralidad de puntos de operación. Además, en este ejemplo, para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, el dispositivo de procesamiento de vídeo puede determinar, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, cuál de los conjuntos de elementos de sintaxis de PTL especifica la información de PTL asignada a la capa respectiva.
[0114] La agregación de flujos elementales de un punto de operación descrita en la subcláusula 2.17.4 del estudio de PDAM 7 puede resumirse de la forma siguiente. Si se señala un punto de operación, ya sea en hevc_operation_point_descriptor o en hevc_extension_descriptor, se establece una lista de capas HEVC para un punto de operación basándose en los flujos elementales o la lista de capas descrita para el punto de operación en el descriptor. De lo contrario, si ni hevc_operation_point_descriptor ni hevc_extension_descriptor
están presentes, cada flujo elemental se considera como un punto de operación y la lista de capas HEVC se establece basándose en hierarchy_descriptor o hierarchy_extension_descriptor. De lo contrario, se describe una lista predeterminada de puntos de operación en la Tabla Amd 7-5 del Estudio de PDAM 7. Tabla Amd. 7 5 se reproduce a continuación.
Tabla Amd7-5 - Lista de capas HEVC por defecto si no se utilizan descriptores de jerarquía
[0115] El procedimiento anterior para la agregación de corrientes elementales puede tener al menos los siguientes problemas. En un primer problema con el procedimiento anterior para la agregación de flujos elementales, cuando no está presente ningún descriptor para el punto de operación, se supone que cada flujo elemental es un punto de operación. Esto puede tener un problema de compatibilidad con versiones anteriores de Hattori et al., "Text of iSo /IEC 13818-1:2013/FDAM 5 - Transport of MVC depth video sub-bitstream and support for HEVC low delay coding mode", ISO/IEC JTC1/SC29/WG11, MPEG2014/N14315, abril de 2014, Valencia, ES (en adelante, "Amendment 5 of ISO/IEC 13818-1:2013"). En la enmienda 5 de ISO/IEC 13818-1: 2013, un subflujo de vídeo temporal HEVC junto con todo su subconjunto de vídeo tempora1HEVC asociado se considera como un punto de operación. En otras palabras, un flujo elemental que solo mejora el aspecto temporal de su flujo elemental de referencia no se considera otro punto de operación. Por lo tanto, cuando no hay un descriptor para el punto de operación, solo un flujo elemental con el tipo de flujo 0x24, 0x27 y 0x29 debe considerarse como un punto de operación por sí mismo, mientras que los flujos elementales con el tipo de flujo 0x25, 0x28 y 0x2A deben considerarse como parte de punto de operación que está asociado con el flujo elemental con los tipos 0x24, 0x27 y 0x29 que mejoran esos flujos elementales. En el estudio de PDAM7, el tipo 0x24 indica un flujo de vídeo HEVC o un subflujo de vídeo temporal HEVC o una subpartición de base HEVC. Además, en el estudio de PDAM7, el tipo 0x27 indica una subpartición de mejora HEVC que incluye TemporalId 0 de un flujo de vídeo HEVC conforme a uno o más perfiles definidos en el anexo G de la Rec. ITU-T. H.265 | ISO/IEC 23008-2. Además, en el estudio de PDAM7, el tipo 0x28 indica una subpartición de mejora temporal HEVC de un flujo de vídeo HEVC que se ajusta a uno o más perfiles definidos en el anexo G de la Rec. ITU-T. H.265 | ISO/IEC 23008-2. En el estudio de PDAM8, el tipo 0x29 indica una subpartición de mejora HEVC que incluye TemporalId 0 de un flujo de vídeo HEVC conforme a uno o más perfiles definidos en el anexo H de la Rec. ITU-T. H.265 | ISO/IEC 23008-2. En el estudio de PDAM 7, el tipo 0x2A indica una subpartición de mejora temporal HEVC de un flujo de vídeo HEVC que se ajusta a uno o más perfiles definidos en el anexo H de la Rec. ITU-T. H.265 | ISO/IEC 23008-2.
[0116] En un segundo problema con el procedimiento anterior para la agregación de flujos elementales, se propone que hevc_operation_point_descriptor y hevc _extension_descriptor sean reemplazados por el nuevo hevc_extension_descriptor. En consecuencia, también debe actualizarse el descriptor para la agregación del flujo elemental de un punto de operación. Como se define en el Estudio de PDAM 7, la agregación de componentes de la capa HEVC puede ser la concatenación de todos los componentes de la capa HEVC con el mismo tiempo de salida de todas las subparticiones HEVC indicadas en una lista de capas HEVC en el orden indicado por la lista de capas HEVC, lo que resulta en una unidad de acceso válida como se define en el Anexo F de la Rec. ITU-T H.265 | ISO/IEC 23008 -2
[0117] De acuerdo con una técnica de esta divulgación, la agregación del flujo elemental puede modificarse de la forma siguiente. Si el descriptor que transporta la información del punto de operación está presente para un programa, se establece una lista de capas HEVC para cada punto de operación descrito en el descriptor basándose en la información para el punto de operación y contendrá las capas que se incluyen para el punto de operación. De lo contrario, si el descriptor que lleva la información del punto de operación no está presente para un programa, cada flujo elemental ESi con el tipo de flujo 0x24, 0x27 y 0x29 corresponde a un único punto de operación objetivo OPi. La agregación de capas incluidas en el ESi y los flujos elementales señalados por el elemento de sintaxis hierarchy_ext_embedded_layer_index del descriptor hierarchy_extension para el ESi,
si está presente, ordenados de acuerdo con el orden creciente de LayerId, dan como resultado la lista de capas HEVC. Si el flujo elemental señalado por hierarchy_ext_embedded_layer_index tiene más dependencias, estas dependencias se antepondrán de manera recursiva.
[0118] Esta divulgación describe mejoras para el diseño de flujo de transporte (TS) MPEG-2 para el transporte de extensiones HEVC. En el presente documento se proporciona una breve explicación de las técnicas de esta divulgación, con una implementación detallada de algunas técnicas proporcionadas en secciones posteriores. Algunas de estas técnicas se pueden aplicar de forma independiente y algunas de ellas se pueden aplicar en combinación.
[0119] La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo 20 de ejemplo. La FIG. 2 se proporciona con fines explicativos y no debe considerarse una limitación de las técnicas como se ejemplifica y describe ampliamente en esta divulgación. A efectos de explicación, esta divulgación describe el codificador de vídeo 20 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otras normas o procedimientos de codificación.
[0120] En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una unidad de procesamiento de predicción 100, una unidad de generación residual 102, una unidad de procesamiento de transformada 104, una unidad de cuantificación 106, una unidad de cuantificación inversa 108, una unidad de procesamiento de transformada inversa 110, una unidad de reconstrucción 112, una unidad de filtro 114, un búfer de imágenes decodificadas 116 y una unidad de codificación por entropía 118. La unidad de procesamiento de predicción 100 incluye una unidad de procesamiento de interpredicción 120 y una unidad de procesamiento de intrapredicción 126. La unidad de procesamiento de interpredicción 120 incluye una unidad de estimación de movimiento 122 y una unidad de compensación de movimiento 124. En otros ejemplos, el codificador de vídeo 20 puede incluir más, menos o diferentes componentes funcionales.
[0121] En algunos ejemplos, el codificador de vídeo 20 puede incluir además una memoria de datos de vídeo 121. La memoria de datos de vídeo 121 puede almacenar datos de vídeo para ser codificados por los componentes del codificador de vídeo 20. Los datos de vídeo almacenados en la memoria de datos de vídeo 121 pueden obtenerse, por ejemplo, de la fuente de vídeo 18. El búfer de imágenes decodificadas 116 puede ser una memoria de imágenes de referencia que almacena datos de vídeo de referencia para su uso en la codificación de datos de vídeo mediante el codificador de vídeo 20, por ejemplo, en modos de intra o intercodificación. La memoria de datos de vídeo 121 y el búfer de imágenes decodificadas 116 pueden estar formadas por cualquiera de una variedad de dispositivos de memoria, como la memoria dinámica de acceso aleatorio (DRAM), que incluye DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM), u otros tipos de dispositivos de memoria. La memoria de datos de vídeo 121 y el búfer de imágenes decodificadas 116 pueden ser proporcionadas por el mismo dispositivo de memoria o dispositivos de memoria separados. En varios ejemplos, la memoria de datos de vídeo 121 puede estar en chip con otros componentes del codificador de vídeo 20, o fuera de chip en relación con esos componentes.
[0122] El codificador de vídeo 20 puede recibir datos de vídeo. El codificador de vídeo 20 puede codificar cada CTU en un fragmento de una imagen de los datos de vídeo. El codificador de vídeo 20 puede codificar las CU de una CTU para generar representaciones codificadas de las CU (es decir, CU codificadas). Como parte de la codificación de una CU, la unidad de procesamiento de predicción 100 puede dividir los bloques de codificación asociados con la CU entre una o más PU de la CU. Por lo tanto, cada PU puede asociarse con un bloque de predicción de luma y los correspondientes bloques de predicción de crominancia. El codificador de vídeo 20 y el decodificador de vídeo 30 pueden soportar PU que tienen varios tamaños. El tamaño de una CU puede referirse al tamaño del bloque de codificación de luma de la CU y el tamaño de una PU puede referirse al tamaño de un bloque de predicción de luma de la PU. Suponiendo que el tamaño de una CU particular es 2Nx2N, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden soportar tamaños de PU de 2Nx2N o NxN para la intrapredicción, y tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N, NxN o similares para la interpredicción. El codificador de vídeo 20 y el decodificador de vídeo 30 también pueden soportar particiones asimétricas para tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N para la interpredicción.
[0123] La unidad de procesamiento de interpredicción 120 puede generar datos predictivos para una PU realizando la interpredicción en cada PU de una CU. Los datos predictivos para la PU pueden incluir bloques predictivos de la PU e información de movimiento para la PU. La unidad de procesamiento de interpredicción 120 puede realizar diferentes operaciones para una PU de una CU dependiendo de si la PU está en un fragmento I, un fragmento P o un fragmento B. En un corte en I, todas las UPP son intrapredichas. Por lo tanto, si la PU está en un fragmento I, la unidad de procesamiento de interpredicción 120 no realiza la interpredicción en la PU.
[0124] Si una PU está en un fragmento P, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia en una lista de imágenes de referencia (por ejemplo, "RefPicListO") para una región de referencia para la PU. La región de referencia para la PU puede ser una región, dentro de una imagen de referencia, que contiene las muestras que más se corresponden con los bloques de predicción de la PU. La
unidad de estimación de movimiento 122 puede generar un índice de referencia que indica una posición en RefPicListO de la imagen de referencia que contiene la región de referencia para la PU. Además, la unidad de estimación de movimiento 122 puede generar un vector de movimiento que indica un desplazamiento espacial entre un bloque de codificación de la PU y una ubicación de referencia asociada con la región de referencia. Por ejemplo, el vector de movimiento puede ser un vector bidimensional que proporciona un desplazamiento de las coordenadas en la imagen actual a las coordenadas en una imagen de referencia. La unidad de estimación de movimiento 122 puede generar el índice de referencia y el vector de movimiento como información de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar los bloques predictivos de la PU basándose en muestras reales o interpoladas en la ubicación de referencia indicada por el vector de movimiento de la PU.
[0125] Si una PU está en un corte B, la unidad de estimación de movimiento 122 puede realizar una predicción única o una predicción doble para la PU. Para realizar una predicción única para la PU, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia de RefPicListO o una segunda lista de imágenes de referencia ("RefPicList1") para una región de referencia para la PU. La unidad de estimación de movimiento 122 puede generar, como información de movimiento de la PU, un índice de referencia que indica una posición en RefPicListO o RefPicList1 de la imagen de referencia que contiene la región de referencia, un vector de movimiento que indica un desplazamiento espacial entre un bloque de predicción de la PU y una ubicación de referencia asociada con la región de referencia, y uno o más indicadores de dirección de predicción que indican si la imagen de referencia está en RefPicListO o RefPicList1. La unidad de compensación de movimiento 124 puede generar los bloques predictivos de la PU basándose, al menos en parte, en muestras reales o interpoladas en la ubicación de referencia indicada por el vector de movimiento de la PU.
[0126] Para realizar la interpredicción bidireccional para una PU, la unidad de estimación de movimiento 122 puede buscar las imágenes de referencia en RefPicListO para una región de referencia para la PU y también puede buscar las imágenes de referencia en RefPicList1 para otra región de referencia para la PU. La unidad de estimación de movimiento 122 puede generar índices de referencia que indiquen posiciones en RefPicListO y RefPicList1 de las imágenes de referencia que contienen las regiones de referencia. Además, la unidad de estimación de movimiento 122 puede generar vectores de movimiento que indiquen desplazamientos espaciales entre las ubicaciones de referencia asociadas con las regiones de referencia y un bloque de predicción de la PU. La información de movimiento de la PU puede incluir los índices de referencia y los vectores de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar los bloques predictivos de la PU basándose, al menos en parte, en muestras reales o interpoladas en las ubicaciones de referencia indicadas por los vectores de movimiento de la PU.
[0127] La unidad de procesamiento de intrapredicción 126 puede generar datos predictivos para una PU realizando una intrapredicción en la PU. Los datos predictivos para la PU pueden incluir bloques predictivos para la PU y varios elementos de sintaxis. La unidad de procesamiento de intrapredicción 126 puede realizar intrapredicción en PU en los fragmentos I, los fragmentos P y los fragmentos B.
[0128] Para realizar la intrapredicción en una PU, la unidad de procesamiento de intrapredicción 126 puede usar múltiples modos de intrapredicción para generar múltiples conjuntos de bloques predictivos para la PU. Cuando se realiza una interpredicción usando un modo de intrapredicción particular, la unidad 126 de procesamiento de interpredicción 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 predicción de la PU, suponiendo un orden de codificación de izquierda a derecha, de arriba a abajo para PU, CU y CTU. La unidad de procesamiento de intrapredicción 126 puede usar varios números de modos de intrapredicción, por ejemplo, 33 modos de intrapredicción direccionales. En algunos ejemplos, el número de modos de intrapredicción puede depender del tamaño de los bloques de predicción de la PU.
[0129] La unidad de procesamiento de predicción 100 puede seleccionar los datos predictivos para las PU de una CU entre los datos predictivos generados por la unidad de procesamiento de interpredicción 120 para las PU o los datos predictivos generados por la unidad de procesamiento de intrapredicción 126 para las PU. En algunos ejemplos, la unidad de procesamiento de predicción 100 selecciona los datos predictivos para las PU de la CU basándose en métricas de velocidad/distorsión de los conjuntos de datos predictivos. Los bloques predictivos de los datos predictivos seleccionados pueden denominarse en el presente documento bloques predictivos seleccionados.
[0130] La unidad de generación residual 102 puede generar, basándose en los bloques de codificación (por ejemplo, bloques de codificación luma, Cb y Cr) de una CU y los bloques predictivos seleccionados (por ejemplo, bloques predictivos luma, Cb y Cr) de las PU de la CU, bloques residuales (por ejemplo, bloques residuales luma, Cb y Cr) de la CU. Por ejemplo, la unidad de generación residual 102 puede generar los bloques residuales de la CU de modo que cada muestra en los bloques residuales tenga un valor igual a una diferencia entre una muestra en un bloque de codificación de la CU y una muestra correspondiente en un bloque predictivo seleccionado correspondiente. de una PU de la CU.
[0131] La unidad de procesamiento de transformada 104 puede realizar particiones de cuatro árboles para dividir los bloques residuales de una CU en bloques de transformada asociados con las TU de la CU. Por lo tanto, una TU puede asociarse con un bloque de transformada luma y dos bloques de transformada croma correspondientes. Los tamaños y posiciones de los bloques de transformada luma y croma de las TU de una CU pueden basarse o no en los tamaños y posiciones de los bloques de predicción de las PU de la CU.
[0132] La unidad de procesamiento de transformada 104 puede generar bloques de coeficientes de transformada para cada TU de una CU aplicando una o más transformadas a los bloques de transformada de la TU. La unidad de procesamiento de transformada 104 puede aplicar varias transformadas a un bloque de transformada asociado con una TU. Por ejemplo, la unidad de procesamiento de transformada 104 puede aplicar una transformada de coseno discreta (DCT), una transformada direccional o una transformada conceptualmente similar a un bloque de transformada. En algunos ejemplos, la unidad de procesamiento de transformada 104 no aplica transformadas a un bloque de transformada. En tales ejemplos, el bloque de transformada puede tratarse como un bloque de coeficiente de transformada.
[0133] La unidad de cuantificación 106 puede cuantificar los coeficientes de transformada en un bloque de coeficientes. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos o la totalidad de los coeficientes de transformada. Por ejemplo, un coeficiente de transformada de n bits puede redondearse hacia abajo a un coeficiente de transformada de m bits durante la cuantificación, donde n es mayor que m. La unidad de cuantificación 106 puede cuantificar un bloque de coeficientes asociado con una TU de una CU basándose en un valor de parámetro de cuantificación (QP) asociado con la CU. El codificador de vídeo 20 puede ajustar el grado de cuantificación aplicado a los bloques de coeficientes asociados con una CU ajustando el valor de QP asociado con la CU. La cuantificación puede introducir pérdida de información, por lo que los coeficientes de transformada cuantificados pueden tener una precisión menor que los originales.
[0134] La unidad de cuantificación inversa 108 y la unidad de procesamiento de transformada inversa 110 pueden aplicar cuantificación inversa y transformadas inversas a un bloque de coeficientes, respectivamente, para reconstruir un bloque residual del bloque de coeficientes. La unidad de reconstrucción 112 puede añadir el bloque residual reconstruido a las muestras correspondientes de uno o más bloques predictivos generados por la unidad de procesamiento de predicción 100 para producir un bloque de transformada reconstruido asociado con una TU. Reconstruyendo bloques de transformada para cada TU de una CU de esta manera, el codificador de vídeo 20 puede reconstruir los bloques de codificación de la CU.
[0135] La unidad de filtro 114 puede realizar una o más operaciones de desbloqueo para reducir las distorsiones de bloqueo en los bloques de codificación asociados con una CU. El búfer de imágenes decodificadas 116 puede almacenar los bloques de codificación reconstruidos después de que la unidad de filtro 114 realice una o más operaciones de desbloqueo en los bloques de codificación reconstruidos. La unidad de procesamiento de interpredicción 120 puede usar una imagen de referencia que contiene los bloques de codificación reconstruidos para realizar la predicción entre PU de otras imágenes. Además, la unidad de procesamiento de intrapredicción 126 puede usar bloques de codificación reconstruidos en el búfer de imágenes decodificadas 116 para realizar la intrapredicción en otras PU en la misma imagen que la CU.
[0136] La unidad de codificación por entropía 118 puede recibir datos de otros componentes funcionales del codificador de vídeo 20. Por ejemplo, la unidad de codificación por entropía 118 puede recibir bloques de coeficientes de la unidad de cuantificación 106 y puede recibir elementos de sintaxis de la unidad de procesamiento de predicción 100. La unidad de codificación por entropía 118 puede realizar una o más operaciones de codificación por entropía sobre los datos para generar datos codificados por entropía. Por ejemplo, la unidad de codificación por entropía 118 puede realizar una operación CABAC, una operación CAVLC, una operación de codificación de longitud de variable a variable (V2V), una operación de codificación aritmética binaria adaptativa al contexto (SBAC) basada en la sintaxis, una operación de codificación por entropía de partición de intervalo de probabilidad (PIPE), una operación de codificación Exponencial-Golomb u otro tipo de operación de codificación por entropía en los datos. El codificador de vídeo 20 puede generar un flujo de bits que incluye datos codificados en entropía generados por la unidad de codificación por entropía 118.
[0137] La FIG. 3 es un diagrama de bloques que ilustra un decodificador de vídeo 30 de ejemplo. La FIG. 3 se proporciona con fines explicativos y no se limita a las técnicas que se ejemplifican y describen ampliamente en esta divulgación. A efectos de explicación, esta divulgación describe el decodificador de vídeo 30 en el contexto de la codificación HEVC. Sin embargo, las técnicas de esta divulgación pueden ser aplicables a otras normas o procedimientos de codificación.
[0138] En el ejemplo de la FIG. 3, el decodificador de vídeo 30 incluye una unidad de decodificación por entropía 150, una unidad de procesamiento de predicción 152, una unidad de cuantificación inversa 154, una unidad de procesamiento de transformada inversa 156, una unidad de reconstrucción 158, una unidad de filtro 160 y un búfer de imágenes decodificadas 162. La unidad de procesamiento de predicción 152 incluye una
unidad de compensación de movimiento 164 y una unidad de procesamiento de intrapredicción 166. En otros ejemplos, el decodificador de vídeo 30 puede incluir más, menos o diferentes componentes funcionales.
[0139] En algunos ejemplos, el decodificador de vídeo 30 puede incluir además una memoria de datos de vídeo. La memoria de datos de vídeo puede almacenar datos de vídeo, tales como un flujo de bits de vídeo codificado, para ser decodificados por los componentes del decodificador de vídeo 30. Los datos de vídeo almacenados en la memoria de datos de vídeo pueden obtenerse, por ejemplo, del canal 16, por ejemplo, de una fuente de vídeo local, como una cámara, a través de la comunicación de datos de vídeo en red por cable o inalámbrica, o accediendo a medios físicos de almacenamiento de datos. La memoria de datos de vídeo puede formar un búfer de imágenes codificadas (CPB) 151 y un búfer de imágenes decodificadas 162. CPB 151 almacena datos de vídeo codificados de un flujo de bits de vídeo codificado. El búfer de imágenes decodificadas 162 puede ser una memoria de imágenes de referencia que almacena datos de vídeo de referencia para usar en la decodificación de datos de vídeo mediante el decodificador de vídeo 30, por ejemplo, en modos de intra o intercodificación. CBP 151 y el búfer de imágenes decodificadas 162 pueden estar formadas por cualquiera de una variedad de dispositivos de memoria, tales como DRAM, incluyendo SDRAM, MRAM, RRAM u otros tipos de dispositivos de memoria. El CPB 151 y el búfer de imágenes decodificadas 162 pueden ser proporcionadas por el mismo dispositivo de memoria o dispositivos de memoria separados. En varios ejemplos, la memoria de datos de vídeo puede estar en chip con otros componentes del decodificador de vídeo 30, o fuera de chip en relación con esos componentes.
[0140] CPB 151 puede recibir y almacenar datos de vídeo codificados (por ejemplo, unidades NAL) de un flujo de bits. La unidad de decodificación por entropía 150 puede recibir unidades NAL de CPB 151 y analizar las unidades NAL para obtener elementos de sintaxis del flujo de bits. La unidad de decodificación por entropía 150 puede decodificar elementos de sintaxis codificados por entropía en las unidades NAL. La unidad de procesamiento de predicción 152, la unidad de cuantificación inversa 154, la unidad de procesamiento de transformada inversa 156, la unidad de reconstrucción 158 y la unidad de filtro 160 pueden generar datos de vídeo decodificados basándose en los elementos de sintaxis obtenidos del flujo de bits.
[0141] Las unidades NAL del flujo de bits pueden incluir unidades NAL de fragmento codificado. Como parte de la decodificación del flujo de bits, la unidad de decodificación por entropía 150 puede analizar y decodificar por entropía elementos de sintaxis de las unidades NAL de fragmento codificado. Cada uno de los fragmentos codificados puede incluir una cabecera de fragmento y datos de fragmento. La cabecera del sector puede contener elementos de sintaxis pertenecientes a un sector.
[0142] Además de decodificar elementos de sintaxis del flujo de bits, el decodificador de vídeo 30 puede realizar una operación de decodificación en una CU. Al realizar la operación de decodificación en una CU, el decodificador de vídeo 30 puede reconstruir bloques de codificación de la CU.
[0143] Como parte de la realización de una operación de decodificación en una CU, la unidad de cuantificación inversa 154 puede cuantificar de forma inversa, es decir, descuantificar, bloques de coeficientes asociados con las TU de la CU. La unidad de cuantificación inversa 154 puede usar un valor QP asociado con la CU de la TU para determinar un grado de cuantificación y, de igual forma, un grado de cuantificación inversa para que se aplique la unidad de cuantificación inversa 154. Es decir, la relación de compresión, es decir, la relación entre el número de bits utilizados para representar la secuencia original y la comprimida, puede controlarse ajustando el valor del QP utilizado al cuantificar los coeficientes de transformada. La relación de compresión también puede depender del procedimiento de codificación por entropía empleado.
[0144] Después de que la unidad de cuantificación inversa 154 cuantifique inversamente un bloque de coeficientes, la unidad de procesamiento de transformada inversa 156 puede aplicar una o más transformadas inversas al bloque de coeficientes para generar un bloque residual asociado con la TU. Por ejemplo, la unidad de procesamiento de transformada inversa 156 puede aplicar una DCT inversa, una transformada entera inversa, una transformada Karhunen-Loeve inversa (KLT), una transformada rotacional inversa, una transformada direccional inversa u otra transformada inversa al bloque de coeficientes.
[0145] Si se codifica una PU usando intrapredicción, la unidad de procesamiento de intrapredicción 166 puede realizar intrapredicción para generar bloques predictivos para la PU. La unidad de procesamiento de intrapredicción 166 puede usar un modo de intrapredicción para generar los bloques predictivos (por ejemplo, bloques predictivos luma, Cb y Cr) para la PU basándose en los bloques de predicción de las PU vecinas espacialmente. La unidad de procesamiento de intrapredicción 166 puede determinar el modo de intrapredicción para la PU basándose en uno o más elementos de sintaxis decodificados del flujo de bits.
[0146] La unidad de procesamiento de predicción 152 puede construir una primera lista de imágenes de referencia (RefPicListO) y una segunda lista de imágenes de referencia (RefPicList1) basándose en elementos de sintaxis extraídos del flujo de bits. Además, si se codifica una PU usando interpredicción, la unidad de decodificación por entropía 150 puede obtener información de movimiento para la PU. La unidad de compensación de movimiento 164 puede determinar, basándose en la información de movimiento de la PU,
una o más regiones de referencia para la PU. La unidad de compensación de movimiento 164 puede generar, basándose en muestras en el uno o más bloques de referencia para la PU, bloques predictivos (por ejemplo, bloques predictivos luma, Cb y Cr) para la PU.
[0147] La unidad de reconstrucción 158 puede utilizar los valores residuales de los bloques de transformada (por ejemplo, bloques de transformada luma, Cb y Cr) de las TU de una CU y los bloques predictivos (por ejemplo, bloques luma, Cb y Cr) de las PU de la CU, es decir, datos de intrapredicción o datos de interpredicción, según sea aplicable, para reconstruir los bloques de codificación (por ejemplo, bloques de codificación luma, Cb y Cr) de la CU. Por ejemplo, la unidad de reconstrucción 158 puede agregar muestras de los bloques de transformada (por ejemplo, bloques de transformada luma, Cb y Cr) a las muestras correspondientes de los bloques predictivos (por ejemplo, bloques predictivos luma, Cb y Cr) para reconstruir los bloques de codificación (por ejemplo, bloques de codificación luma, Cb y Cr) de la CU.
[0148] La unidad de filtro 160 puede realizar una operación de desbloqueo para reducir las distorsiones de bloqueo asociadas con los bloques de codificación (por ejemplo, bloques de codificación luma, Cb y Cr) de la CU. El decodificador de vídeo 30 puede almacenar los bloques de codificación (por ejemplo, bloques de codificación luma, Cb y Cr) de la CU en el búfer de imágenes decodificadas 162. El búfer de imágenes decodificadas 162 puede proporcionar imágenes de referencia para compensación de movimiento subsiguiente, interpredicción y presentación en un dispositivo de visualización, tal como el dispositivo 32 de visualización de la FIG. 1. Por ejemplo, el decodificador de vídeo 30 puede realizar, basándose en los bloques (por ejemplo, bloques luma, Cb y Cr) en el búfer de imágenes decodificadas 162, operaciones de intrapredicción o interpredicción en PU de otras CU. De esta manera, el decodificador de vídeo 30 puede extraer, del flujo de bits, niveles de coeficiente de transformada del bloque de coeficiente de luma significativo, cuantificar inversamente los niveles de coeficiente de transformada, aplicar una transformada a los niveles de coeficiente de transformada para generar un bloque de transformada, generar, basado al menos en parte en el bloque de transformada, un bloque de codificación, y dar salida al bloque de codificación para su visualización.
[0149] La siguiente sección de esta divulgación describe detalles de implementación de ejemplo de técnicas particulares de esta divulgación. En la siguiente sección, el texto subrayado indica texto agregado.
[0150] Como se mencionó anteriormente, se puede incluir una indicación en un descriptor de extensión de jerarquía para indicar la escalabilidad temporal. Por ejemplo, el descriptor de extensión de la jerarquía puede incluir una indicación de si un elemento de programa mejora la velocidad de tramas de un flujo de bits. Tabla Amd. 7-3, a continuación, es una tabla de sintaxis de ejemplo de descriptor de extensión de jerarquía para adaptarse a la escalabilidad temporal.
Tabla Amd. 7-3 - Descriptor de extensión de jerarquía
[0151] En el ejemplo de Tabla Amd. 7-3, el indicador no_temporal_scalability es un indicador de 1 bit que, cuando se fija en "0", indica que el elemento de programa asociado mejora la frecuencia de tramas del flujo de bits resultante del elemento de programa al que hace referencia el hierarchy_embedded_layer_index. El valor de '1' para este indicador está reservado. La semántica de otros elementos de sintaxis del hierarchy_extension_descriptor puede seguir siendo la misma que se indicó anteriormente. Por lo tanto, en
algunos ejemplos, la indicación de si el elemento de programa actual mejora la frecuencia de tramas de un flujo de bits puede consistir en un indicador de 1 bit separado de un elemento de sintaxis que indica mejoras del elemento de programa actual, en relación con una capa base.
[0152] En otro ejemplo para indicar la escalabilidad temporal en un descriptor de extensión de jerarquía, la semántica de extension_dimension_bits se actualiza de la siguiente manera:
extension_d¡mension_b¡ts - Un campo de 16 bits que indica la posible mejora del elemento de programa asociado proveniente de la capa base, resultante del elemento de programa de la capa con nuh_layer_id igual a 0. Cuando extension dimension bitses igual a 0, indica que el elemento de programa asociado mejora la frecuencia de tramas del flujo de bits resultante de los elementos de programa a los que hace referencia el hierarchy embedded layer index
[0153] Por lo tanto, en algunos ejemplos de esta divulgación, la indicación de si el elemento de programa actual mejora la frecuencia de tramas de un flujo de bits puede ser parte de un elemento de sintaxis (por ejemplo, extension_dimens¡on_b¡ts) que indica mejoras del elemento de programa actual, en relación con una capa base. Además, en algunos de tales ejemplos, que todos los bits del elemento de sintaxis sean iguales a un valor particular (por ejemplo, 0) indica que el elemento de programa actual mejora la frecuencia de tramas del flujo de bits.
[0154] En otro ejemplo que indica escalabilidad temporal en un descriptor de extensión de jerarquía, uno de los bits reservados del elemento de sintaxis extension_dimension_bits se usa para indicar escalabilidad temporal. Por lo tanto, en algunos ejemplos de esta divulgación, un solo bit de un elemento de sintaxis (por ejemplo, extension_dimension_bits) indica si un elemento de programa actual mejora la frecuencia de tramas de un flujo de bits. Este ejemplo puede implementarse cambiando la Tabla 7-4 que se muestra a continuación en la Tabla Amd. 7-4:
Tabla Amd. 7-4 - Semántica de los bits de dimensión de extensión
[0155] Como se indicó anteriormente, las técnicas particulares de esta divulgación proporcionan indicación, en un descriptor, de información de PTL para cada capa de un punto de operación. Estas técnicas se pueden implementar de varias formas. Por ejemplo, la señalización del punto de operación y la información de PTL pueden implementarse usando un descriptor de extensión HEVC que incluye la sintaxis mostrada en la tabla siguiente.
Descriptor de extensión HEVC
[0156] En la tabla anterior, num_profile_tier_level es un campo de 8 bits que especifica el número de estructuras de perfil, estrato y nivel especificadas por este descriptor. Así, en algunos ejemplos, un dispositivo de procesamiento de vídeo puede determinar, basándose en un elemento de sintaxis (por ejemplo, num_profile_tier_level) en el descriptor del programa, el número de conjuntos de elementos de sintaxis de PTL en la pluralidad de conjuntos de elementos de sintaxis de PTL. De manera similar, en algunos ejemplos, un dispositivo de procesamiento de vídeo puede señalar, en el primer descriptor del programa, un elemento de sintaxis (por ejemplo, num_profile_tier_level) que indica el número de conjuntos de elementos de sintaxis de PTL en la pluralidad de conjuntos de elementos de sintaxis de PTL.
[0157] profile_space es un campo de 2 bits que especifica el contexto para la interpretación de profile_idc para todos los valores de i en el rango de 0 a 31, inclusive. En este ejemplo, no se asignarán valores a profile_space distintos de los especificados en el anexo A o en la subcláusula G.11 o en la subcláusula H.11 de la Rec. ITU-T H.265 | ISO/IEC 23008-2. Otros valores de profile_idc están reservados para uso futuro por ITU-T | ISO/IEC.
[0158] El indicador de estrato es un campo de 1 bit que especifica el contexto de estrato para la interpretación de level_idc como se especifica en el anexo A o la subcláusula G.11 o la subcláusula H.11 de la Rec. ITU-T H.265 | ISO/IEC 23008-2.
[0159] profile_idc es un campo de 5 bits que, cuando profile_space es igual a 0, indica un perfil al que el CVS resultante de la agregación de la capa HEVC de la subpartición HEVC incluida en el punto de operación especificado y todas las subparticiones HEVC de las cuales depende esta sub -partición conforme se especifica en el Anexo A o en la Rec. ITU-T H.265 | ISO/IEC 23008-2. No se asignarán valores a profile_idc distintos de los especificados en el anexo A o G.11 o H.11 de la Rec. ITU-T H.265 | ISO/IEC 23008-2. Otros valores de profile_idc están reservados para uso futuro por ITU-T | ISO/IEC.
[0160] profile_compatibility_indication, progress_source_flag, interlaced_source_flag, non_packed_constraint_flag, frame_only_constraint_flag, reservado_zero_44bits, level_idc - Cuando el descriptor de vídeo de extensión HEVC se aplica a una subpartición de mejora HEVC, estos campos se codificarán de acuerdo con la semántica definida en Rec. ITU-T H.265 | ISO/IEC 23008-2 para
general_profile_space, general_tier_flag, general_profile_idc, general_profile_compatibility_flag[i], general_progressive_source_flag, general_interlaced_source_flag, general_non_packed_constraint_flag, general_frame_only_constraint_flag, general_reserved_zero_44bits, general_level_idc, respectivamente, para la correspondiente subpartición HEVC, y el flujo de vídeo HEVC resultante de la agregación capa HEVC de la subpartición HEVC a la que está asociado el descriptor de vídeo HEVC con todas las subparticiones HEVC de las que depende esta subpartición se ajustará a la información señalada por estos campos.
[0161] level_ idc es un campo de 8 bits que indica un nivel al que el CVS se ajusta como se especifica en el anexo A, G.11 o H.11 de la Rec. ITU-T H.265 | ISO/IEC 23008-2. level_idc no se asignarán valores de idc de nivel distintos de los especificados en el anexo A, G. 11 o H.11 de la Rec. ITU-T H.265 | ISO/IEC 23008-2. Otros valores de level_idc están reservados para uso futuro por ITU-T | ISO/IEC.
[0162] Por lo tanto, en algunos ejemplos, un dispositivo de procesamiento de vídeo puede determinar, basándose en un elemento de sintaxis de perfil respectivo (por ejemplo, profile_idc) en el conjunto de elementos de sintaxis de PTL respectivo, un perfil al que se ajusta una secuencia de vídeo codificada. Además, el dispositivo de procesamiento de vídeo puede determinar, basándose en un elemento de sintaxis de estrato respectivo (por ejemplo, tier_flag) en el conjunto de elementos de sintaxis de PTL respectivo, un contexto para la interpretación de un elemento de sintaxis de indicador de nivel respectivo (por ejemplo, level_idc) en el conjunto de elementos de sintaxis de PTL respectiva. En tales ejemplos, el dispositivo de procesamiento de vídeo puede determinar, basándose en el elemento de sintaxis del indicador de nivel respectivo en el conjunto de elementos de sintaxis de PTL respectivo, un nivel al que se ajusta la secuencia de vídeo codificada.
[0163] De manera similar, en algunos ejemplos, para cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL, un dispositivo de procesamiento de vídeo puede señalar, en el conjunto de elementos de sintaxis de PTL respectivo, un elemento de sintaxis de perfil respectivo (por ejemplo, perfil_idc) especificando un perfil al que se ajusta una secuencia de vídeo codificada. Además, el dispositivo de procesamiento de vídeo puede señalar, en el respectivo conjunto de elementos de sintaxis de PTL, un elemento de sintaxis de estrato respectivo (por ejemplo, tier_flag). El elemento de sintaxis de estrato respectivo puede especificar un contexto para la interpretación de un elemento de sintaxis de indicador de nivel respectivo (por ejemplo, level_idc) en el conjunto de elementos de sintaxis de PTL respectivo. En tales ejemplos, el dispositivo de procesamiento de vídeo puede señalar, en el respectivo conjunto de elementos de sintaxis de PTL, el respectivo elemento de sintaxis de indicador de nivel. El elemento de sintaxis del indicador de nivel respectivo puede indicar un nivel al que se ajusta una secuencia de vídeo codificada.
[0164] num_operation_points es un campo de 8 bits que especifica el número de puntos operativos descritos en este descriptor. Por lo tanto, en algunos ejemplos, un dispositivo de procesamiento de vídeo puede determinar, basándose en un elemento de sintaxis (por ejemplo, num_operation_points) en el descriptor, el número de conjuntos de elementos de sintaxis de puntos de operación en la pluralidad de conjuntos de elementos de sintaxis de puntos de operación. De manera similar, en algunos ejemplos, un dispositivo de procesamiento de vídeo puede señalar un elemento de sintaxis (por ejemplo, num_operation_points) en el descriptor que indica el número de conjuntos de elementos de sintaxis de puntos de operación en la pluralidad de conjuntos de elementos de sintaxis de puntos de operación. En otros ejemplos, el elemento de sintaxis puede determinarse basándose en un elemento de sintaxis en un descriptor separado de un descriptor que incluye los conjuntos de elementos de sintaxis de PTL. Asimismo, en algunos ejemplos, un dispositivo de procesamiento de vídeo puede señalar este elemento de sintaxis en un descriptor separado de un descriptor que incluye los conjuntos de elementos de sintaxis de PTL.
[0165] max_temporal_id es un campo de 3 bits que especifica el TemporalId más alto de las unidades NAL de las capas en el i-ésimo punto de operación.
[0166] num_layers_in_operation_point es un campo de 6 bits que especifica el número de capas que se incluyen en el i-ésimo punto de operación. Así, en algunos ejemplos, para cada conjunto de elementos de sintaxis de punto de operación respectivo de una pluralidad de conjuntos de elementos de sintaxis de punto de operación, un dispositivo de procesamiento de vídeo puede señalar el número de capas del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo. De manera similar, en algunos ejemplos, para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, el dispositivo de procesamiento de vídeo puede determinar, basándose en un elemento de sintaxis (por ejemplo, num_layers_in_operation_point) en un descriptor, el número de capas del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo. En otros ejemplos, el elemento de sintaxis (por ejemplo, num_layers_in_operation_point) se puede señalar en un descriptor separado del descriptor que incluye los conjuntos de elementos de sintaxis de PTL.
[0167] layer_id_included es un campo de 6 bits que especifica el nuh_layer_id de la capa que se incluye en el i-ésimo punto de operación.
[0168] output_layer_flag es un campo de 1 bit que, cuando se le asigna el valor "1" indica que una capa con nuh_layer_id igual a layer_id_included es una capa de salida cuando se decodifica el i-ésimo punto de operación. Cuando a output_layer_flag se le asigna el valor "0", la capa con nuh_layer id igual a layer_id_included no es una capa de salida cuando se decodifica el i-ésimo punto de operación.
[0169] ptl_ index es un campo de 8 bits que especifica el índice de perfil, estrato y nivel que se asigna a la jésima capa en el i-ésimo punto de operación.
[0170] average_bitrate es un campo de 16 bits que indica la velocidad de transmisión de bits media, en 1000 bits por segundo, del flujo de vídeo en capas HEVC correspondiente al i-ésimo punto de operación.
[0171] maximum_bitrate es un campo de 16 bits que indica la velocidad de bits máxima, en kbit por segundo, del flujo de vídeo en capas HEVC correspondiente al i-ésimo punto de operación.
[0172] constant_frame_rate_mode es un campo de 1 bit que especifica cómo se interpreta el frame_rate como se especifica a continuación.
[0173] frame_rate es un campo de 15 bits que indica la máxima velocidad de imagen del flujo de vídeo en capas HEVC correspondiente al i-ésimo punto de operación. Si constant_frame_rate_mode es igual a 0, frame_rate se mide en tramas por segundo. De lo contrario, si constant_frame_rate_mode es igual a 1, la frecuencia de tramas se mide en tramas por 1,001 segundos.
[0174] Por lo tanto, en algunos ejemplos, para cada conjunto de elementos de sintaxis de punto de operación respectivo de una pluralidad de conjuntos de elementos de sintaxis de punto de operación, un dispositivo de procesamiento de vídeo puede señalar un primer elemento de sintaxis respectivo (por ejemplo, max_temporal_id) especificando un identificador temporal máximo del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo. Además, el dispositivo de procesamiento de vídeo puede señalar un segundo elemento de sintaxis respectivo (por ejemplo, velocidad de transmisión de bits media) que especifica una velocidad de transmisión de bits media del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo. El dispositivo de procesamiento de vídeo también puede señalar un tercer elemento de sintaxis respectivo (por ejemplo, velocidad de transmisión de bits máxima) especificando una velocidad de transmisión de bits máxima del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo. El dispositivo de procesamiento de vídeo puede señalar un cuarto elemento de sintaxis respectivo (por ejemplo, frame_rate) especificando una frecuencia de imágenes máxima de un flujo de vídeo en capas de codificación de vídeo de alta eficiencia (HEVC) correspondiente al punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo.
[0175] De manera similar, en algunos ejemplos, para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, un dispositivo de procesamiento de vídeo puede determinar, basándose en un primer elemento de sintaxis respectivo (por ejemplo, max_temporal_id) en el elemento de sintaxis de punto de operación respectivo set, un identificador temporal máximo del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo. El dispositivo de procesamiento de vídeo también puede determinar, basándose en un segundo elemento de sintaxis respectivo (por ejemplo, average_bit_rate) en el conjunto de elementos de sintaxis de punto de operación respectivo, una velocidad de transmisión de bits media del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo. Además, el dispositivo de procesamiento de vídeo puede determinar, basándose en un tercer elemento de sintaxis respectivo (por ejemplo, maximum_bit_rate) en el conjunto de elementos de sintaxis de punto de operación respectivo, una velocidad de transmisión de bits máxima del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo. Además, el dispositivo de procesamiento de vídeo puede determinar, basándose en un cuarto elemento de sintaxis respectivo (por ejemplo, frame_rate) en el conjunto de elementos de sintaxis de punto de operación respectivo, una velocidad de imagen máxima de un flujo de vídeo en capas de codificación de vídeo de alta eficiencia (HEVC) correspondiente al respectivo punto de operación especificado por el conjunto de elementos de sintaxis de punto de operación respectivo.
[0176] Como se indicó anteriormente, las técnicas particulares de esta divulgación modifican la agregación del flujo elemental. De acuerdo con algunos ejemplos, la lista de capas HEVC para uno o más puntos de operación se especifica de la siguiente manera: Si la tabla de mapa del programa (PMT) contiene un descriptor hevc_extension, con la agregación de capas que se señala incluida en el punto de operación por el elemento de sintaxis layer_id_included, ordenadas de acuerdo con el valor creciente del valor de LayerId, da como resultado la lista de capas HEVC. De lo contrario, cada flujo elemental ESi con el tipo de flujo 0x24, 0x27 y 0x29 corresponde a un único punto de operación objetivo OP. La agregación de capas incluidas en el ES i y los flujos elementales señalados por el elemento de sintaxis jerarquía_ext_embedded_layer_index del
descriptor_extensión_jerarquía para el ESi, si está presente, ordenados de acuerdo con el orden creciente de Layerld, dan como resultado la lista de capas HEVC. Si el ES señalado por hierarchy_ext_embedded_layer_index tiene más dependencias, estas dependencias se antepondrán de manera recursiva. Cada flujo elemental ESj con tipo de flujo 0x25, 0x28 o 0x2A se considera parte del flujo elemental asociado al punto de operación que mejora.
[0177] La FIG. 4A es un diagrama de flujo que ilustra un primer ejemplo de operación para procesar datos de vídeo, de acuerdo con una técnica de esta divulgación. Los diagramas de flujo de esta divulgación son ejemplos. Otros ejemplos de acuerdo con las técnicas de esta divulgación pueden incluir más, menos o diferentes acciones. Además, en algunos ejemplos, las acciones pueden realizarse en diferentes órdenes o en paralelo.
[0178] En el ejemplo de la FIG. 4A, un dispositivo de procesamiento de vídeo, como MANE 17, dispositivo de origen 12 u otro dispositivo, determina si un elemento de programa actual mejora la frecuencia de tramas de un flujo de bits (400). En el ejemplo de la FIG. 4A, el flujo de bits puede resultar de un conjunto de uno o más elementos de programa a los que es necesario acceder y estar presentes en el orden de decodificación antes de decodificar el elemento de programa actual.
[0179] Además, el dispositivo de procesamiento de vídeo incluye, en un descriptor correspondiente al elemento de programa actual, elementos de sintaxis que indican índices de capa de los elementos de programa a los que se debe acceder y estar presentes en el orden de decodificación antes de decodificar el elemento de programa actual (402). El dispositivo de procesamiento de vídeo incluye, en el descriptor correspondiente al elemento de programa actual, una indicación de si el elemento de programa actual mejora la frecuencia de tramas del flujo de bits (404).
[0180] La FIG. 4B es un diagrama de flujo que ilustra un segundo ejemplo de operación para procesar datos de vídeo, de acuerdo con una técnica de esta divulgación. En el ejemplo de la FIG. 4B, un dispositivo de procesamiento de vídeo, como MANE 17, dispositivo de destino 14 u otro dispositivo, determina, basándose en elementos de sintaxis en un descriptor correspondiente a un elemento de programa actual, elementos de programa a los que se debe acceder y que deben estar presentes en el orden de decodificación antes decodificar el elemento de programa actual (450).
[0181] Además, el dispositivo de procesamiento de vídeo determina, basándose en una indicación en el descriptor correspondiente al elemento de programa actual, si el elemento de programa actual mejora la frecuencia de tramas de un flujo de bits (452). En el ejemplo de la FIG. 4B, el flujo de bits resulta de un conjunto de uno o más elementos de programa a los que es necesario acceder y estar presentes en el orden de decodificación antes de decodificar el elemento de programa actual.
[0182] La FIG. 5A es un diagrama de flujo que ilustra un tercer ejemplo de operación para procesar datos de vídeo, de acuerdo con una técnica de esta divulgación. El funcionamiento de la FIG. 5A se puede realizar junto con la operación de ejemplo de la FIG. 4A. En el ejemplo de la FIG. 5A, un dispositivo de procesamiento de vídeo, tal como el dispositivo de origen 12, MANE 17, u otro dispositivo, señala, en un descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis PTL (500).
[0183] Además, el dispositivo de procesamiento de vídeo señala, en el descriptor o en un descriptor diferente (por ejemplo, un primer o segundo descriptor) para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación (504). En el ejemplo de la FIG. 5A, cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de la pluralidad de puntos de operación. Para cada capa respectiva del punto de operación respectivo, el conjunto de elementos de sintaxis de punto de operación respectivo incluye un elemento de sintaxis respectivo que identifica un conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL que especifican la información de PTL asignada a la capa respectiva del punto de operación respectivo. El punto de operación respectivo puede tener una pluralidad de capas. El primer y/o el segundo descriptor pueden estar en un flujo de transporte. En otros ejemplos, los descriptores primero y/o segundo están en un flujo de programas o en otro lugar.
[0184] La FIG. 5B es un diagrama de flujo que ilustra un cuarto ejemplo de operación para procesar datos de vídeo, de acuerdo con una técnica de esta divulgación. El funcionamiento de la FIG. 5B se puede realizar junto con la operación de ejemplo de la FIG. 4B.
[0185] En el ejemplo de la FIG. 5B, un dispositivo de procesamiento de vídeo, tal como MANE 17, dispositivo de destino 14 u otro dispositivo, obtiene, a partir de un descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis PTL (550). Cada conjunto de elementos de sintaxis de PTL respectivo de la pluralidad de conjuntos de elementos de sintaxis de PTL comprende elementos de sintaxis que especifican la información de PTL respectiva. Además, el dispositivo de
procesamiento de vídeo obtiene, del descriptor u otro descriptor (por ejemplo, un primer o segundo descriptor) para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación (552). Cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de una pluralidad de puntos de operación. El primer y/o el segundo descriptor pueden estar en un flujo de transporte. En otros ejemplos, los descriptores primero y/o segundo están en un flujo de programas o en otro lugar.
[0186] Para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, el dispositivo de procesamiento de vídeo determina, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, cuál de los conjuntos de elementos de sintaxis de PTL especifica la información de PTL asignada a la capa respectiva (554). El punto de operación respectivo puede tener una pluralidad de capas.
[0187] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en, o transmitir a través de, un medio legible por ordenador como una o más instrucciones o código, y ejecutar 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 medios de comunicación que incluyen cualquier medio que facilita la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador en general pueden corresponder a (1) medios de almacenamiento tangibles legibles por ordenador que no son transitorios o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder mediante uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0188] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otros dispositivos de almacenamiento en disco óptico, almacenamiento en disco magnético u otros tipos de almacenamiento magnético, memoria flash o cualquier otro medio que se puede usar para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que se puede acceder mediante un ordenador. Además, cualquier conexión se denomina apropiadamente medio legible por ordenador. Por ejemplo, si se transmiten instrucciones desde un sitio web, un servidor o cualquier otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o unas tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, se debería entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que en su lugar están dirigidos a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen discos compactos (CD), discos láser, discos ópticos, discos versátiles digitales (DVD), discos flexibles y discos Blu-ray, de los cuales los discos flexibles habitualmente reproducen datos magnéticamente, mientras que los demás discos reproducen datos ópticamente con láseres. Las combinaciones de los anteriores también deberían estar incluidos dentro del alcance de los medios legibles por ordenador.
[0189] Las instrucciones se pueden ejecutar mediante uno o más procesadores, tales como uno o más DSP, microprocesadores de propósito general, ASIC, FPGA u otros circuitos lógicos integrados o discretos equivalentes. En consecuencia, el término "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de módulos de hardware y/o software dedicados, configurados para codificar y decodificar, o incorporar en un códec combinado. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de módulos de hardware y/o software dedicados, configurados para procesar datos de vídeo, como los de un MANE. Además, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0190] Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un dispositivo de comunicación inalámbrica (por ejemplo, un terminal inalámbrico), un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). Por ejemplo, un dispositivo para procesar datos de vídeo puede comprender un circuito integrado que comprende un decodificador de vídeo configurado para decodificar los datos de vídeo codificados, un microprocesador que comprende un decodificador de vídeo configurado para decodificar los datos de vídeo codificados, un teléfono inalámbrico que
comprende un decodificador de vídeo configurado para decodificar los datos de vídeo codificados, etc. En esta divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de los dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En su lugar, como se ha descrito anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar mediante un grupo de unidades de hardware interoperativas, que incluyen uno o más procesadores como se ha descrito anteriormente, junto con software y/o firmware adecuados.
[0191] Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.
Claims (1)
- REIVINDICACIONES1. Un procedimiento para procesar un flujo de transporte MPEG-2 para el transporte de datos de vídeo multicapa, el procedimiento comprendiendo:obtener, a partir de un primer HEVC_extension_descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel en los que cada perfil define un conjunto de herramientas de codificación para su uso por parte de un codificador de vídeo y cada nivel define un conjunto de restricciones de valores asociados con cada conjunto de elementos de sintaxis y cada estrato define una categoría de restricciones dentro de cada nivel, y en el que cada conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel comprende elementos de sintaxis que especifican la información de perfil, estrato y nivel respectivo;obtener, a partir del primer descriptor o un segundo HEVC_extension_descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación en el que cada punto de operación define un conjunto de unidades NAL asociadas con el flujo de transporte MPEG-2, en el que el primer descriptor y el segundo descriptor están en una tabla de mapa de programa del flujo de transporte MPEG-2 y cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de una pluralidad de puntos de operación; ypara cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, determinar, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo para la capa respectiva determinada desde el primer o segundo HEVC_extension_descriptor examinando datos en el descriptor HEVC_extension que comprende datos que definen un número de puntos de operación asociados con cada conjunto de elementos de sintaxis de punto de operación y datos que definen un número de capas asociadas con cada punto de operación y un índice de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación y mapeo de la información de perfil, estrato y nivel a cada índice de cada perfil respectivo, estrato y nivel que se asigna a cada capa dentro de cada punto de operación utilizando los datos que definen el número de operación puntos asociados con cada conjunto de elementos de sintaxis de punto de operación y los datos que definen el número de capas dentro de cada punto de operación, cuál de los conjuntos de elementos de sintaxis de perfil, estrato y nivel especifica la información de perfil, estrato y nivel asignada a la capa respectiva del punto de operación respectivo, estando el elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, teniendo el punto de operación respectivo una pluralidad de capas; ydecodificar los datos de vídeo usando el índice determinado de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación.2. El procedimiento de la reivindicación 1, que comprende además:para cada conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel:determinar, basándose en un elemento de sintaxis de perfil respectivo en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un perfil al que se ajusta una secuencia de vídeo codificada; determinar, basándose en un elemento de sintaxis de estrato respectivo en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un contexto para la interpretación de un elemento de sintaxis de indicador de nivel respectivo en el conjunto de elementos de sintaxis de nivel, estrato y perfil respectivo; ydeterminar, basándose en el elemento de sintaxis del indicador de nivel respectivo en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un nivel al que se ajusta la secuencia de vídeo codificada.3. El procedimiento de la reivindicación 1, que comprende además:determinar, basándose en un elemento de sintaxis en el primer descriptor para el programa, el número de conjuntos de elementos de sintaxis de perfil, estrato y nivel en la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel y/o que comprende además:determinar, basándose en un elemento de sintaxis en el primer descriptor o en el segundo descriptor, el número de conjuntos de elementos de sintaxis de puntos de operación en la pluralidad de conjuntos de elementos de sintaxis de puntos de operación y/o en el que obtener la pluralidad de conjuntos de elementos de sintaxis de puntos de operación comprende:para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, determinar, basándose en un elemento de sintaxis en el primer descriptor o el segundo descriptor, el número de capas del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo.4. El procedimiento de la reivindicación 1, que comprende además:para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación:determinar, basándose en un primer elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, un identificador temporal máximo del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo;determinar, basándose en un segundo elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, una velocidad de transmisión de bits media del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo;determinar, basándose en un tercer elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, una velocidad de transmisión de bits máxima del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo; ydeterminar, basándose en un cuarto elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, una velocidad de imagen máxima de un flujo de vídeo en capas de codificación de vídeo de alta eficiencia, HEVC, correspondiente al punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo.5. Un procedimiento para procesar un flujo de transporte MPEG-2 para el transporte de datos de vídeo multicapa, con el procedimiento que comprende:señalar, en un primer HEVC_extension_descriptor para un programa que comprende uno o más flujos elementales, una pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel en los que cada perfil define un conjunto de herramientas de codificación para su uso por parte de un codificador de vídeo y cada nivel define un conjunto de restricciones de valores asociados con cada conjunto de elementos de sintaxis y cada estrato define una categoría de restricciones dentro de cada nivel, con cada conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel que comprende elementos de sintaxis que especifican la información de perfil, estrato y nivel respectivo; yseñalar, en el primer descriptor o en un segundo HEVC_extension_descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación donde cada punto de operación define un conjunto de unidades NAL asociadas con el flujo de transporte MPEG-2, en el que:el primer descriptor y el segundo descriptor están en una tabla de mapa de programa del flujo de transporte MPEG-2, con cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación que especifica un punto de operación respectivo de la pluralidad de puntos de operación, ypara cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, determinar, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo para la capa respectiva determinada desde el primer o segundo HEVC_extension_descriptor examinando datos en el descriptor HEVC_extension que comprende datos que definen un número de puntos de operación asociados con cada conjunto de elementos de sintaxis de punto de operación y datos que definen un número de capas asociadas con cada punto de operación y un índice de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación y mapeo de la información de perfil, estrato y nivel a cada índice de cada perfil respectivo, estrato y nivel que se asigna a cada capa dentro de cada punto de operación utilizando los datos que definen el número de puntos de operación asociados con cada conjunto de elementos de sintaxis de punto de operación y los datos que definen el número de capas dentro de cada punto de operación, cuál de los conjuntos de elementos de sintaxis de perfil, estrato y nivel especifica la información de perfil, estrato y nivel asignada a la capa respectiva del punto de operación respectivo, estando el elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, teniendo el punto de operación respectivo una pluralidad de capas; ycodificar los datos de vídeo usando el índice determinado de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación.6. El procedimiento de la reivindicación 5, en el que la señalización de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel comprende:para cada conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel:señalar, en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un elemento de sintaxis de perfil respectivo que especifica un perfil al que se ajusta una secuencia de vídeo codificada;señalar, en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un elemento de sintaxis de estrato respectivo, especificando el elemento de sintaxis de estrato respectivo un contexto para la interpretación de un elemento de sintaxis de indicador de nivel respectivo en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo; yseñalar, en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, el elemento de sintaxis de indicador de nivel respectivo, indicando el elemento de sintaxis de indicador de nivel respectivo un nivel al que se ajusta la secuencia de vídeo codificada.7. El procedimiento de la reivindicación 5, que comprende además:señalar, en el primer descriptor del programa, un elemento de sintaxis que indica el número de conjuntos de elementos de sintaxis de perfil, estrato y nivel en la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel y/o que comprende además:señalar, en el primer descriptor o el segundo descriptor, un elemento de sintaxis que indica el número de conjuntos de elementos de sintaxis de puntos de operación en la pluralidad de conjuntos de elementos de sintaxis de puntos de operación y/o en el que señalar de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación comprende:para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, señalar el número de capas del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo.8. El procedimiento de la reivindicación 5, en el que la señalización de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación comprende: para cada conjunto de elementos de sintaxis de puntos de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación:señalar un primer elemento de sintaxis respectivo que especifica un identificador temporal máximo del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo;señalar un segundo elemento de sintaxis respectivo que especifica una velocidad de transmisión de bits media del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo;señalar un tercer elemento de sintaxis respectivo que especifica una velocidad de transmisión de bits máxima del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo; yseñalar un cuarto elemento de sintaxis respectivo que especifica una velocidad de imagen máxima de un flujo de vídeo en capas de codificación de vídeo de alta eficiencia, HEVC, correspondiente al punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo.9. Un dispositivo para procesar un flujo de transporte MPEG-2 para el transporte de datos de vídeo multicapa, el dispositivo comprende:medios para obtener, a partir de un primer HEVC_extension_descriptor para un programa que comprende uno o más flujos elementales que comprenden los datos de vídeo codificados, una pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel en los que cada perfil define un conjunto de herramientas de codificación para su uso por parte de un codificador de vídeo y cada nivel define un conjunto de restricciones de valores asociados con cada conjunto de elementos de sintaxis y cada estrato define una categoría de restricciones dentro de cada nivel, y en el que cada conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel comprende elementos de sintaxis que especifican la información de perfil, estrato y nivel respectivo;medios para obtener, a partir del primer descriptor o un segundo HEVC_extension_descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de punto de operación en los que cada punto de operación define un conjunto de unidades NAL asociadas con el flujo de transporte MPEG-2, en el que el primer descriptor y el segundo el descriptor están en una tabla de mapa de programa del flujo de transporte MPEG-2 y cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de una pluralidad de puntos de operación; y para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, medios para determinar, para cada capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo para la capa respectiva determinada a partir del primer o segundo HEVC_extension_descriptor examinando datos en el HEVC_extension_descriptor que comprende datos que definen un número de puntos de operación asociados con cada conjunto de elementos de sintaxis de punto de operación y datos que definen un número de capas asociadas con cada punto de operación y un índice de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación y mapeando la información de perfil, estrato y nivel a cada índice de cada perfil respectivo, estrato y nivel que se asigna a cada capa dentro de cada punto de operación utilizando los datos que definen el número de puntos de operación asociados con cada conjunto de elementos de sintaxis de punto de operación y los datos que definen el número de capas dentro de cada punto de operación, cuál de los conjuntos de elementos de sintaxis de perfil, estrato y nivel especifica la información de perfil, estrato y nivel asignada a la capa respectiva del punto de operación respectivo, estando el elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, teniendo el punto de operación respectivo una pluralidad de capas; ydecodificar los datos de vídeo usando el índice determinado de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación.10. El dispositivo de la reivindicación 9, configurado además para:para cada conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel:determinar, basándose en un elemento de sintaxis de perfil respectivo en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un perfil al que se ajusta una secuencia de vídeo codificada;determinar, basándose en un elemento de sintaxis de nivel respectivo en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un contexto para la interpretación de un elemento de sintaxis de indicador de nivel respectivo en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo; ydeterminar, basándose en el elemento de sintaxis del indicador de nivel respectivo en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un nivel al que se ajusta la secuencia de vídeo codificada y/o en el que el dispositivo está configurado además para:determinar, basándose en un elemento de sintaxis en el primer descriptor del programa, el número de conjuntos de elementos de sintaxis de perfil, estrato y nivel en la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel y/o, en el que el dispositivo está configurado además para:determinar, basándose en un elemento de sintaxis en el primer descriptor o en el segundo descriptor, el número de conjuntos de elementos de sintaxis de punto de operación en la pluralidad de conjuntos de elementos de sintaxis de punto de operación y/o en el que el medio de señalización está configurado adicionalmente de tal manera que, como parte de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación, el uno o los procesadores:p a ra ca d a co n ju n to de e le m e n to s de s in ta x is de pu n to de o p e ra c ió n resp ec tivo de la p lu ra lid ad de co n ju n to s de e le m e n to s de s in ta x is de pun to de o p e ra c ió n , se ñ a la r e l nú m ero de ca p a s de l pu n to de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo.11. El dispositivo de la reivindicación 9, en el que el dispositivo está configurado además para:para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación:determinar, basándose en un primer elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, un identificador temporal máximo del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo;determinar, basándose en un segundo elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, una velocidad de transmisión de bits media del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo;determinar, basándose en un tercer elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, una velocidad de transmisión de bits máxima del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo; ydeterminar, basándose en un cuarto elemento de sintaxis respectivo en el conjunto de elementos de sintaxis de punto de operación respectivo, una velocidad máxima de imagen de una secuencia de vídeo en capas de codificación de vídeo de alta eficiencia, HEVC, correspondiente al punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo y/o en el que el dispositivo comprende al menos uno de:un circuito integrado que comprende un decodificador de vídeo configurado para decodificar los datos de vídeo codificados;un microprocesador que comprende un decodificador de vídeo configurado para decodificar los datos de vídeo codificados; oun teléfono inalámbrico que comprende un decodificador de vídeo configurado para decodificar imágenes usando los datos de vídeo codificados y una pantalla configurada para mostrar las imágenes decodificadas y/o en el que uno o más procesadores están configurados para decodificar los datos de vídeo codificados, con el dispositivo que comprende además una pantalla configurada para mostrar los datos de vídeo decodificados.12. Un dispositivo para procesar un flujo de transporte MPEG-2 para el transporte de datos de vídeo multicapa, el dispositivo comprende:medios para señalar, en un primer HEVC_extension_descriptor para un programa que comprende uno o más flujos elementales que comprenden los datos de vídeo codificados, una pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel en los que cada perfil define un conjunto de herramientas de codificación para su uso por parte de un codificador de vídeo y cada nivel define un conjunto de restricciones de valores asociados con cada conjunto de elementos de sintaxis y cada estrato define una categoría de restricciones dentro de cada nivel, y en el que cada elemento de sintaxis de perfil, estrato y nivel respectivo de la pluralidad de conjuntos elementos de sintaxis de perfil, estrato y nivel comprende elementos de sintaxis que especifican la información de perfil, estrato y nivel respectivo; ymedios para señalar, en el primer descriptor o en un segundo HEVC_extension_descriptor para el programa, una pluralidad de conjuntos de elementos de sintaxis de puntos de operación, en los que:el primer descriptor y el segundo descriptor están en una tabla de mapa de programa del flujo de transporte MPEG-2 ycada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación especifica un punto de operación respectivo de la pluralidad de puntos de operación, ypa ra c a d a co n ju n to de e le m e n to s de s in ta x is de pu n to de op e ra c ió n resp ec tivo de la p lu ra lid ad de co n ju n to s de e le m e n to s de s in ta x is de pu n to de o p e ra c ión , m ed io s pa ra d e te rm in a r, pa ra cad a capa respectiva del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo, basándose en un elemento de sintaxis respectivo para la capa respectiva determinada a partir del primer o segundo HEVC_extension_descriptor examinando datos en el HEVC_extension_descriptor que comprende datos que definen un número de puntos de operación asociados con cada conjunto de elementos de sintaxis de punto de operación y datos que definen un número de capas asociadas con cada punto de operación y un índice de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación y mapeando la información de perfil, estrato y nivel a cada índice de cada perfil, estrato y nivel respectivo que se asigna a cada capa dentro de cada punto de operación utilizando los datos que definen el número de puntos de operación asociados con cada conjunto de elementos de sintaxis de punto de operación y los datos que definen el número de capas dentro de cada punto de operación, cuál de los conjuntos de elementos de sintaxis de perfil, estrato y nivel especifica la información de perfil, estrato y nivel asignada a la capa respectiva del punto de operación respectivo, estando el elemento de sintaxis respectivo en el respectivo conjunto de elementos de sintaxis de punto de operación, teniendo el punto de operación respectivo una pluralidad de capas; ycodificar los datos de vídeo usando el índice determinado de cada perfil, estrato y nivel respectivo que se asigna a cada capa en cada punto de operación.13. El dispositivo de la reivindicación 12, en el que los medios de señalización están configurados de manera que, como parte de la señalización de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel, los medios de señalización:para cada conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo de la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel:señalar, en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un elemento de sintaxis de perfil respectivo que especifica un perfil al que se ajusta una secuencia de vídeo codificada;señalar, en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, un elemento de sintaxis de estrato respectivo, especificando el elemento de sintaxis de estrato respectivo un contexto para la interpretación de un elemento de sintaxis indicador de nivel respectivo en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo; yseñalar, en el conjunto de elementos de sintaxis de perfil, estrato y nivel respectivo, el elemento de sintaxis de indicador de nivel respectivo, el elemento de sintaxis de indicador de nivel respectivo que indica un nivel al que se ajusta la secuencia de vídeo codificada y/o en el que el medio de señalización está configurado para:señalar, en el primer descriptor del programa, un elemento de sintaxis que indica el número de conjuntos de elementos de sintaxis de perfil, estrato y nivel en la pluralidad de conjuntos de elementos de sintaxis de perfil, estrato y nivel y/o en el que el medio de señalización está configurado para:señalar, en el primer descriptor o el segundo descriptor, un elemento de sintaxis que indica el número de conjuntos de elementos de sintaxis de punto de operación en la pluralidad de conjuntos de elementos de sintaxis de punto de operación y/o en el que el medio de señalización está configurado de tal manera que, como parte de la señalización de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación, los medios de señalización:para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación, señalar el número de capas del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo y/o en el que el medio de señalización está configurado de tal manera que, como parte de la señalización de la pluralidad de conjuntos de elementos de sintaxis de puntos de operación, los medios de señalización:para cada conjunto de elementos de sintaxis de punto de operación respectivo de la pluralidad de conjuntos de elementos de sintaxis de punto de operación:señalar un primer elemento de sintaxis respectivo que especifica un identificador temporal máximo del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo;se ñ a la r un se g u n d o e le m e n to de s in ta x is resp ec tivo que e s p e c ific a u n a ve lo c id a d de tra n sm is ió n de bits media del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo;señalar un tercer elemento de sintaxis respectivo que especifica una velocidad de transmisión de bits máxima del punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo; yseñalar un cuarto elemento de sintaxis respectivo que especifica una velocidad de imagen máxima de un flujo de vídeo en capas de codificación de vídeo de alta eficiencia, HEVC, correspondiente al punto de operación respectivo especificado por el conjunto de elementos de sintaxis de punto de operación respectivo.14. El dispositivo de la reivindicación 12, en el que el dispositivo comprende al menos uno de:un circuito integrado;un microprocesador;o un teléfono inalámbrico.15. Un medio de almacenamiento de datos legible por ordenador que tiene instrucciones almacenadas en el mismo que, cuando se ejecutan, hacen que uno o más procesadores de un dispositivo de procesamiento de vídeo ejecuten el procedimiento según cualquiera de las reivindicaciones 1 a 8.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462025432P | 2014-07-16 | 2014-07-16 | |
US14/800,480 US9998765B2 (en) | 2014-07-16 | 2015-07-15 | Transport stream for carriage of video coding extensions |
PCT/US2015/040717 WO2016011234A1 (en) | 2014-07-16 | 2015-07-16 | Transport stream for carriage of video coding extensions |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2874073T3 true ES2874073T3 (es) | 2021-11-04 |
Family
ID=55075696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES15745046T Active ES2874073T3 (es) | 2014-07-16 | 2015-07-16 | Flujo de transporte para el transporte de extensiones de codificación de vídeo |
Country Status (10)
Country | Link |
---|---|
US (2) | US20160021375A1 (es) |
EP (1) | EP3170309B1 (es) |
JP (1) | JP6452798B2 (es) |
KR (1) | KR101968425B1 (es) |
CN (1) | CN106664447B (es) |
AU (1) | AU2015289591A1 (es) |
BR (1) | BR112017000251A2 (es) |
ES (1) | ES2874073T3 (es) |
TW (2) | TWI679880B (es) |
WO (2) | WO2016011237A1 (es) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160021375A1 (en) | 2014-07-16 | 2016-01-21 | Qualcomm Incorporated | Transport stream for carriage of video coding extensions |
US10306269B2 (en) | 2014-10-10 | 2019-05-28 | Qualcomm Incorporated | Operation point for carriage of layered HEVC bitstream |
US10419768B2 (en) * | 2016-03-30 | 2019-09-17 | Qualcomm Incorporated | Tile grouping in HEVC and L-HEVC file formats |
WO2020166643A1 (ja) | 2019-02-15 | 2020-08-20 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法、および復号方法 |
CN115398912A (zh) | 2020-02-29 | 2022-11-25 | 抖音视界有限公司 | 自适应参数集的语法元素的约束 |
CN115804092A (zh) * | 2020-05-22 | 2023-03-14 | 抖音视界有限公司 | 通用约束标志的信令 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU732452B2 (en) | 1997-04-01 | 2001-04-26 | Sony Corporation | Image encoder, image encoding method, image decoder, image decoding method, and distribution media |
KR20120083747A (ko) * | 2011-01-18 | 2012-07-26 | 삼성전자주식회사 | 방송통신 융합형 서비스를 위한 전송 방법 및 장치 |
WO2012122330A1 (en) * | 2011-03-10 | 2012-09-13 | Vidyo, Inc. | Signaling number of active layers in video coding |
EP2834970B1 (en) | 2012-04-06 | 2017-07-05 | Vidyo, Inc. | Level signaling for layered video coding |
US20140079116A1 (en) * | 2012-09-20 | 2014-03-20 | Qualcomm Incorporated | Indication of interlaced video data for video coding |
US9432664B2 (en) * | 2012-09-28 | 2016-08-30 | Qualcomm Incorporated | Signaling layer identifiers for operation points in video coding |
JPWO2014050597A1 (ja) | 2012-09-28 | 2016-08-22 | シャープ株式会社 | 画像復号装置 |
JP6126234B2 (ja) | 2012-11-12 | 2017-05-10 | エルジー エレクトロニクス インコーポレイティド | 信号送受信装置及び信号送受信方法 |
WO2014084108A1 (ja) * | 2012-11-30 | 2014-06-05 | ソニー株式会社 | 画像処理装置および方法 |
US10419778B2 (en) * | 2013-01-04 | 2019-09-17 | Sony Corporation | JCTVC-L0227: VPS_extension with updates of profile-tier-level syntax structure |
US20140301463A1 (en) * | 2013-04-05 | 2014-10-09 | Nokia Corporation | Method and apparatus for video coding and decoding |
CA2908853C (en) | 2013-04-08 | 2019-01-15 | Arris Technology, Inc. | Signaling for addition or removal of layers in video coding |
US10567804B2 (en) | 2014-01-08 | 2020-02-18 | Qualcomm Incorporated | Carriage of HEVC extension bitstreams and buffer model with MPEG-2 systems |
US20160021375A1 (en) | 2014-07-16 | 2016-01-21 | Qualcomm Incorporated | Transport stream for carriage of video coding extensions |
-
2015
- 2015-07-15 US US14/800,498 patent/US20160021375A1/en not_active Abandoned
- 2015-07-15 US US14/800,480 patent/US9998765B2/en active Active
- 2015-07-16 KR KR1020177001331A patent/KR101968425B1/ko active IP Right Grant
- 2015-07-16 WO PCT/US2015/040721 patent/WO2016011237A1/en active Application Filing
- 2015-07-16 AU AU2015289591A patent/AU2015289591A1/en not_active Abandoned
- 2015-07-16 CN CN201580038256.4A patent/CN106664447B/zh active Active
- 2015-07-16 TW TW104123187A patent/TWI679880B/zh not_active IP Right Cessation
- 2015-07-16 JP JP2017500958A patent/JP6452798B2/ja not_active Expired - Fee Related
- 2015-07-16 TW TW104123189A patent/TWI643491B/zh not_active IP Right Cessation
- 2015-07-16 EP EP15745046.1A patent/EP3170309B1/en active Active
- 2015-07-16 ES ES15745046T patent/ES2874073T3/es active Active
- 2015-07-16 BR BR112017000251A patent/BR112017000251A2/pt not_active IP Right Cessation
- 2015-07-16 WO PCT/US2015/040717 patent/WO2016011234A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20160021375A1 (en) | 2016-01-21 |
BR112017000251A2 (pt) | 2017-11-14 |
US9998765B2 (en) | 2018-06-12 |
TW201615018A (en) | 2016-04-16 |
WO2016011237A1 (en) | 2016-01-21 |
TW201615016A (en) | 2016-04-16 |
CN106664447B (zh) | 2019-06-11 |
TWI679880B (zh) | 2019-12-11 |
TWI643491B (zh) | 2018-12-01 |
WO2016011234A1 (en) | 2016-01-21 |
EP3170309B1 (en) | 2021-03-10 |
US20160021398A1 (en) | 2016-01-21 |
JP2017525276A (ja) | 2017-08-31 |
AU2015289591A1 (en) | 2017-01-12 |
CN106664447A (zh) | 2017-05-10 |
EP3170309A1 (en) | 2017-05-24 |
KR101968425B1 (ko) | 2019-04-11 |
KR20170032311A (ko) | 2017-03-22 |
JP6452798B2 (ja) | 2019-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2898663T3 (es) | Perfil, capa, nivel para la 0-ésima capa de salida establecida en la codificación de vídeo | |
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 | |
KR102383621B1 (ko) | Hrd 디스크립터 및 hevc 확장판들의 캐리지를 위한 데이터 스트림들의 버퍼 모델의 설계 | |
ES2741777T3 (es) | Punto operativo para el transporte de flujos de bits en capas de la HEVC | |
ES2902675T3 (es) | Diseño de señalización de entrada de muestra y de punto de operación en un formato de archivo de vídeo estratificado | |
ES2765462T3 (es) | Diseños de formato de archivo de vídeo multicapa | |
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 | |
ES2634100T3 (es) | Extensión de vídeo tridimensional de cabecera de fragmento para predicción de cabecera de fragmento | |
KR102122110B1 (ko) | Mpeg-2 시스템들에 의한 hevc 확장판 비트스트림들 및 버퍼 모델의 운반 | |
DK2904798T3 (en) | VIDEO DATA FILE FORMAT | |
ES2874073T3 (es) | Flujo de transporte para el transporte de extensiones de codificación de vídeo | |
ES2903013T3 (es) | Capas de referencia de señalización para la predicción del color 3D para la escalabilidad de la gama de color | |
ES2711892T3 (es) | Señalización de puntos de operación para el transporte de extensiones de la HEVC | |
BR112016008953B1 (pt) | Condução de dados de fluxo de bits com extensão- padrão de codificação de vídeo com o uso de sistemas de mpeg-2 | |
BR112017007298B1 (pt) | Método e dispositivo para processamento de um fluxo de bits incluindo dados de vídeo de codificação de vídeo de alta eficiência, hevc, e memória legível por computador |