ES2633651T3 - Coding of parameter sets and NAL unit headers for video coding - Google Patents
Coding of parameter sets and NAL unit headers for video coding Download PDFInfo
- Publication number
- ES2633651T3 ES2633651T3 ES13700835.5T ES13700835T ES2633651T3 ES 2633651 T3 ES2633651 T3 ES 2633651T3 ES 13700835 T ES13700835 T ES 13700835T ES 2633651 T3 ES2633651 T3 ES 2633651T3
- Authority
- ES
- Spain
- Prior art keywords
- video
- layers
- vps
- encoding
- video data
- 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
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/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un procedimiento de codificación de datos de vídeo, comprendiendo el procedimiento: codificación (104, 122) de un conjunto de parámetros de vídeo, VPS, para una pluralidad de capas de datos de vídeo, en el que cada una de la pluralidad de capas de datos de vídeo se refiere al VPS, y en la que la codificación del VPS comprende: codificación de datos del VPS indicativos de un cierto número de tramas a reordenar en al menos una entre la pluralidad de capas de datos de vídeo, codificación de datos del VPS indicativos de un cierto número de imágenes a almacenar en una memoria intermedia de imágenes descodificadas, DPB, durante la descodificación de la pluralidad de capas de datos de vídeo, y codificación de datos del VPS indicativos de un número máximo de capas temporales en la pluralidad de capas de datos de vídeo; y codificación de (114, 130) la pluralidad de capas de datos de vídeo basándose, al menos en parte, en el VPS.A method of encoding video data, the method comprising: encoding (104, 122) a video parameter set, VPS, for a plurality of layers of video data, wherein each of the plurality of layers of video data refers to the VPS, and wherein the encoding of the VPS comprises: encoding of VPS data indicative of a number of frames to be reordered in at least one of the plurality of video data layers, encoding of VPS data VPS indicative of a certain number of pictures to be stored in a decoded picture buffer, DPB, during decoding of the plurality of video data layers, and encoding of VPS data indicative of a maximum number of temporal layers in the plurality of video data layers; and encoding (114, 130) the plurality of video data layers based, at least in part, on the VPS.
Description
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
DESCRIPCIONDESCRIPTION
Codificacion de conjuntos de parametros y cabeceras de unidad NAL para codificacion de video CAMPO TECNICOCoding of parameter sets and NAL unit headers for video coding TECHNICAL FIELD
Esta divulgacion se refiere a la codificacion de video.This disclosure refers to video encoding.
ANTECEDENTESBACKGROUND
Las capacidades del video digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de difusion digital directa, sistemas de difusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores de tableta, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, los denominados "telefonos inteligentes", dispositivos de videoconferencia, dispositivos de transmision de video y similares. Los dispositivos de video digital implementan tecnicas de codificacion de video, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificacion Avanzada de Video (AVC), la norma de Codificacion de Video de Alta Eficiencia (HEVC), actualmente en desarrollo y las ampliaciones de tales normas. Un reciente borrador de la proxima norma HEVC esta disponible en
http://phenix.int-Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, direct digital broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptops or desktops, tablet computers, e-book readers , digital cameras, digital recording devices, digital media players, video game devices, video game consoles, cell phones or satellite radio, the so-called "smart phones", videoconferencing devices, video transmission devices and the like. Digital video devices implement video coding techniques, such as those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264 / MPEG-4, Part 10, Advanced Video Encoding (AVC), the High Efficiency Video Encoding (HEVC) standard, currently under development and extensions of such standards. A recent draft of the next HEVC standard is available at
http: //phenix.int-
evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G1103-v3.zip. Los dispositivos de video pueden transmitir, recibir, codificar, descodificar y/o almacenar informacion de video digital mas eficazmente, implementando tales tecnicas de codificacion de video.evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G1103-v3.zip. Video devices can transmit, receive, encode, decode and / or store digital video information more efficiently, implementing such video coding techniques.
Las tecnicas de codificacion de video incluyen la prediccion espacial (intra-imagen) y/o la prediccion temporal (entre imagenes) para reducir o eliminar la redundancia intrfnseca en las secuencias de video. Para la codificacion de video basada en bloques, un fragmento de video (por ejemplo, una trama de video o una parte de una trama de video) puede dividirse en bloques de video, que tambien pueden denominarse bloques arbolados, unidades de codificacion (CU) y/o nodos de codificacion. Los bloques de video en un fragmento intracodificado (I) de una imagen son codificados usando la prediccion espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen. Los bloques de video en un fragmento intercodificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen, o la prediccion temporal con respecto a muestras de referencia en otras imagenes de referencia. Las imagenes pueden denominarse tramas y las imagenes de referencia pueden denominarse tramas de referencia.Video coding techniques include spatial prediction (intra-image) and / or temporal prediction (between images) to reduce or eliminate intrinsic redundancy in video sequences. For block-based video coding, a video fragment (for example, a video frame or a part of a video frame) can be divided into video blocks, which can also be referred to as wooded blocks, encoding units (CU) and / or coding nodes. The video blocks in an intracoded fragment (I) of an image are encoded using spatial prediction with respect to reference samples in adjacent blocks of the same image. Video blocks in an intercoded fragment (P or B) of an image can use spatial prediction with respect to reference samples in contiguous blocks of the same image, or temporal prediction with respect to reference samples in other reference images . The images can be called frames and the reference images can be called reference frames.
La prediccion espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de pfxeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con una modalidad de intracodificacion y los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio de pfxeles a un dominio de transformacion, dando como resultado coeficientes de transformacion residuales, los cuales pueden cuantizarse posteriormente. Los coeficientes de transformacion cuantizados, inicialmente dispuestos en una formacion bidimensional, pueden explorarse con el fin de producir un vector unidimensional de coeficientes de transformacion, y puede aplicarse la codificacion por entropfa para lograr aun mas compresion. El documento US 2005/0254575 A1 describe la produccion de una o mas capas del flujo de datos escalable. Las capas se caracterizan por una propiedad de codificacion y el procedimiento incluye senalar las capas con la propiedad de codificacion de tal manera que sean legibles por un descodificador para determinar la propiedad de codificacion sin analizar el flujo de datos escalable. Tambien describe un flujo de bits escalable, en el que al menos dos capas de escalabilidad estan presentes, y cada capa esta caracterizada por un conjunto de al menos una propiedad, como perfil, nivel y un conjunto de al menos un parametro HRD / VBV, que puede ser diferente al de la totalidad del flujo, y en el que dicho conjunto de al menos una propiedad esta senalado para al menos una capa que es diferente al flujo completo. El documento de Jill Boyce y col., "Extensible High Layer Syntax for Scalability" (Sintaxis de Capa Alta Extensible para Escalabilidad), JCTVC-E279, del 22 de marzo de 2011, divulga emplear un conjunto de parametros de dependencia DPS ademas del conjunto de parametros de secuencia SPS. En el DPS se transmiten los mismos parametros para multiples capas y en el SPS se transmiten parametros que son validos solo para una capa especffica. La invencion esta definida en la reivindicacion adjunta, a la cual se deberfa hacer referencia en este punto.Spatial or temporal prediction results in a predictive block for a block to be encoded. Residual data represents pixel differences between the original block to be encoded and the predictive block. An intercoded block is encoded according to a motion vector that points to a block of reference samples that form the predictive block, and residual data indicating the difference between the encoded block and the predictive block. An intracoded block is encoded according to an intracoding modality and residual data. For greater compression, residual data can be transformed from the pixel domain to a transformation domain, resulting in residual transformation coefficients, which can then be quantified. The quantized transformation coefficients, initially arranged in a two-dimensional formation, can be explored in order to produce a one-dimensional vector of transformation coefficients, and entropy coding can be applied to achieve even more compression. US 2005/0254575 A1 describes the production of one or more layers of the scalable data flow. The layers are characterized by an coding property and the procedure includes signaling the layers with the coding property so that they are readable by a decoder to determine the coding property without analyzing the scalable data flow. It also describes a scalable bit stream, in which at least two layers of scalability are present, and each layer is characterized by a set of at least one property, such as profile, level and a set of at least one HRD / VBV parameter, which may be different from that of the entire flow, and in which said set of at least one property is marked for at least one layer that is different from the entire flow. Jill Boyce et al., "Extensible High Layer Syntax for Scalability," JCTVC-E279, dated March 22, 2011, discloses using a set of DPS dependency parameters in addition to the set of SPS sequence parameters. In the DPS the same parameters are transmitted for multiple layers and in the SPS parameters are transmitted that are valid only for a specific layer. The invention is defined in the attached claim, to which reference should be made at this point.
SUMARIOSUMMARY
En general, esta divulgacion describe tecnicas para codificar conjuntos de parametros y unidades de capa de abstraccion de red (NAL) para codificacion de video. Estas tecnicas pueden aplicarse a datos codificados de capa unica, tales como datos de video bidimensionales, asf como a datos de video de codificacion de video escalable (SVC) y datos de video de codificacion de video multivista (MVC). De este modo, los conjuntos de parametros y las unidades NAL pueden ser mutuamente compatibles entre diversos tipos de datos de video. Por ejemplo, unIn general, this disclosure describes techniques for encoding sets of parameters and network abstraction layer units (NAL) for video coding. These techniques can be applied to single-layer encoded data, such as two-dimensional video data, as well as scalable video encoding (SVC) video data and multivist video encoding (MVC) video data. In this way, the parameter sets and NAL units can be mutually compatible between various types of video data. For example, a
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
codificador de video, tal como un codificador de video o descodificador de video, puede codificar un conjunto de parametros de video (VPS) que define parametros para una pluralidad de capas de datos de video. Las capas pueden corresponder, por ejemplo, a capas SVC (que tienen varias velocidades de trama, resoluciones espaciales y/o niveles de calidad) y/o vistas de datos MVC (por ejemplo, secuencias de imagenes de una escena capturada desde varias perspectivas de camara sobre un eje horizontal).Video encoder, such as a video encoder or video decoder, can encode a set of video parameters (VPS) that defines parameters for a plurality of layers of video data. The layers may correspond, for example, to SVC layers (which have various frame rates, spatial resolutions and / or quality levels) and / or MVC data views (for example, image sequences of a scene captured from various perspectives of camera on a horizontal axis).
En un ejemplo, un procedimiento de codificacion de datos de video incluye codificar un conjunto de parametros de video (VPS) para una pluralidad de capas de datos de video, en el que cada una de la pluralidad de capas de datos de video se refiere al VPS y codificar una pluralidad de capas de datos de video basadas al menos en parte en el VPS, y en el que la codificacion del VPS comprende:In one example, a video data encoding procedure includes encoding a set of video parameters (VPS) for a plurality of video data layers, in which each of the plurality of video data layers refers to the VPS and encode a plurality of video data layers based at least in part on the VPS, and in which the VPS encoding comprises:
codificacion de datos del VPS indicativos de un numero maximo de capas temporales en la pluralidad de capas de datos de video.VPS data coding indicative of a maximum number of time layers in the plurality of video data layers.
En otros ejemplos, se proporciona un dispositivo correspondiente al procedimiento anterior y un medio de almacenamiento legible por ordenador que ha almacenado en el instrucciones que, cuando se ejecutan, realizan el procedimiento anterior.In other examples, a device corresponding to the above procedure and a computer readable storage medium is provided which has been stored in the instructions which, when executed, perform the above procedure.
Los detalles de uno o mas ejemplos se exponen en los dibujos adjuntos y en la siguiente descripcion. Otras caracterfsticas, objetos y ventajas resultaran evidentes a partir de la descripcion y los dibujos, y a partir de las reivindicaciones.The details of one or more examples are set forth in the accompanying drawings and in the following description. Other features, objects and advantages will be apparent from the description and drawings, and from the claims.
BREVE DESCRIPCION DE LOS DIBUJOSBRIEF DESCRIPTION OF THE DRAWINGS
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificacion y descodificacion de video de ejemplo que puede utilizar tecnicas para codificar conjuntos de parametros y unidades de capa de abstraccion de red (NAL) para una o mas capas de datos de videoFIG. 1 is a block diagram illustrating an example video coding and decoding system that can use techniques to encode sets of parameters and network abstraction layer units (NAL) for one or more layers of video data
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo del codificador de video 20 que puede implementar las tecnicas de codificacion de conjuntos de parametros y unidades NAL para una o mas capas de datos de video.FIG. 2 is a block diagram illustrating an example of video encoder 20 that can implement the coding techniques of NAL parameter sets and units for one or more layers of video data.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo del descodificador de video 30 que puede implementar tecnicas para codificacion de conjuntos de parametros y unidades NAL para una o mas capas de datos de video.FIG. 3 is a block diagram illustrating an example of video decoder 30 that can implement techniques for encoding sets of parameters and NAL units for one or more layers of video data.
La FIG. 4 es un diagrama conceptual que ilustra un patron de prediccion de MVC a modo de ejemplo.FIG. 4 is a conceptual diagram illustrating an example MVC prediction pattern.
La FIG. 5 es un diagrama conceptual que ilustra un conjunto de parametros de video (VPS) y varios conjuntos de parametros de capa (LPS).FIG. 5 is a conceptual diagram illustrating a set of video parameters (VPS) and several sets of layer parameters (LPS).
La FIG. 6 es un diagrama conceptual que ilustra un ejemplo de un conjunto de parametros de agrupacion (GPS) y relaciones del GPS con otros conjuntos de parametros y cabeceras de fragmentos.FIG. 6 is a conceptual diagram illustrating an example of a set of grouping parameters (GPS) and GPS relationships with other sets of parameters and fragment headers.
La FIG. 7 es un diagrama de flujo que ilustra un ejemplo de procedimiento de codificacion de datos de video de acuerdo con las tecnicas de esta divulgacion.FIG. 7 is a flow chart illustrating an example of a video data encoding procedure according to the techniques of this disclosure.
La FIG. 8 es un diagrama de flujo que ilustra un ejemplo de procedimiento de descodificacion de datos de video de acuerdo con las tecnicas de esta divulgacion.FIG. 8 is a flow chart illustrating an example of a video data decoding procedure according to the techniques of this disclosure.
La FIG. 9 es un diagrama de flujo que ilustra un ejemplo de procedimiento de codificacion de datos de video basandose, al menos en parte, en un cierto numero de capas temporales como se senala en un VPS.FIG. 9 is a flow chart illustrating an example of a video data encoding procedure based, at least in part, on a certain number of time layers as indicated in a VPS.
La FIG. 10 es un diagrama de flujo que ilustra un ejemplo de procedimiento de codificacion de datos de video basandose, al menos en parte, en un cierto numero de imagenes a reordenar en una o mas capas e imagenes a almacenar en una memoria intermedia de imagenes descodificadas.FIG. 10 is a flow chart illustrating an example of a video data coding procedure based, at least in part, on a certain number of images to be rearranged in one or more layers and images to be stored in a buffer of decoded images.
La FIG. 11 es un diagrama de flujo que ilustra un ejemplo de procedimiento de codificacion de datos de video basandose, al menos en parte, en parametros de descodificador de referencia hipoteticos (HRD) senalados en un VPS.FIG. 11 is a flow chart illustrating an example of a video data encoding procedure based, at least in part, on hypothetical reference decoder (HRD) parameters set in a VPS.
La FIG. 12 es un diagrama de flujo que ilustra un ejemplo de procedimiento de codificacion de datos de video basandose, al menos en parte, en datos de ampliacion senalados en un VPS.FIG. 12 is a flowchart illustrating an example of a video data encoding procedure based, at least in part, on expansion data signaled in a VPS.
DESCRIPCION DETALLADADETAILED DESCRIPTION
En general, esta divulgacion describe la codificacion de datos de video usando un conjunto de parametros de videoIn general, this disclosure describes the encoding of video data using a set of video parameters
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
(VPS). Los datos de video pueden clasificarse jerarquicamente como incluyendo una pluralidad de capas, una secuencia de imagenes dentro de una capa dada, una imagen dentro de una secuencia, fragmentos dentro de una imagen y bloques (por ejemplo, macrobloques o unidades de arbol de codificacion) dentro de un fragmento. Pueden usarse conjuntos de parametros de secuencia (SPS) para senalar los parametros cambiantes con poca frecuencia para una secuencia de imagenes, y se pueden usar conjuntos de parametros de imagen (PPS) para senalar los parametros cambiantes con poca frecuencia de las imagenes individuales.(VPS) Video data can be classified hierarchically as including a plurality of layers, a sequence of images within a given layer, an image within a sequence, fragments within an image and blocks (for example, macroblocks or coding tree units) within a fragment Sequence parameter sets (SPS) can be used to signal the changing parameters infrequently for an image sequence, and image parameter sets (PPS) can be used to signal the changing parameters infrequently of the individual images.
De acuerdo con las tecnicas de esta divulgacion, un VPS puede senalar los parametros cambiantes con poca frecuencia para una pluralidad de secuencias a traves de las capas respectivas. Es decir, un VPS puede incluir parametros para un conjunto de secuencias temporalmente coubicadas de capas diferentes. Diferentes capas pueden incluir, por ejemplo, vistas diferentes para datos de video multivista, capas de diferentes calidades, capas de resolucion espacial diferentes, capas escalables temporalmente (es decir, capas que permiten diferentes velocidades de trama) y similares. De esta manera, se puede proporcionar un VPS para una pluralidad de capas diferentes, de manera que el VPS senale los parametros que son comunes a cada una de las capas respectivas (por ejemplo, secuencias respectivas dentro de las capas respectivas). Se puede decir que un flujo de bits incluye cada una de la pluralidad de capas, y las capas respectivas pueden formar flujos secundarios de bits respectivos. Ademas, un flujo secundario de bits puede corresponder a una combinacion de dos o mas capas.In accordance with the techniques of this disclosure, a VPS can signal the changing parameters infrequently for a plurality of sequences across the respective layers. That is, a VPS can include parameters for a set of temporarily co-located sequences of different layers. Different layers may include, for example, different views for multivist video data, different quality layers, different spatial resolution layers, temporarily scalable layers (i.e. layers that allow different frame rates) and the like. In this way, a VPS can be provided for a plurality of different layers, so that the VPS indicates the parameters that are common to each of the respective layers (for example, respective sequences within the respective layers). It can be said that a bit stream includes each of the plurality of layers, and the respective layers can form secondary streams of respective bits. In addition, a secondary bit stream may correspond to a combination of two or more layers.
Esta divulgacion describe varios ejemplos de datos que pueden incluirse en un VPS. Dichos datos pueden incluir, en algunos ejemplos, una indicacion de un cierto numero de subcapas (por ejemplo, un numero maximo de subcapas) dentro de las capas correspondientes. Por ejemplo, un VPS puede incluir datos que senalan un cierto numero de capas temporales y/o un numero maximo de capas temporales (por ejemplo, un identificador de capa temporal mas alto).This disclosure describes several examples of data that can be included in a VPS. Such data may include, in some examples, an indication of a certain number of sub-layers (for example, a maximum number of sub-layers) within the corresponding layers. For example, a VPS may include data that indicates a certain number of time layers and / or a maximum number of time layers (for example, a higher time layer identifier).
Para mencionar otro ejemplo, un VPS puede incluir, adicionalmente o de forma alternativa, datos sustancialmente similares a cualquier dato previamente senalado en un SPS (es decir, senalado en SPS convencionales). De esta manera, cuando las secuencias de dos o mas capas de un flujo de bits incluyen parametros sustancialmente similares o identicos, un codificador de video puede codificar un VPS para senalar parametros para las secuencias de las capas, en lugar de codificar redundantemente dichos datos en SPS respectivos para las diversas secuencias entre las diferentes capas.To mention another example, a VPS may include, additionally or alternatively, data substantially similar to any data previously signaled in an SPS (ie, signaled in conventional SPS). Thus, when the sequences of two or more layers of a bit stream include substantially similar or identical parameters, a video encoder can encode a VPS to signal parameters for the sequences of the layers, instead of redundantly encoding said data in Respective SPS for the various sequences between the different layers.
Un VPS puede, adicionalmente o de forma alternativa, incluir datos que definen informacion de usabilidad de video (VUI), tales como informacion de representacion de video, parametros de descodificador de referencia hipoteticos (HRD) y/o informacion de restriccion del flujo de bits. La informacion de restriccion del flujo de bits puede incluir restricciones en el rango del vector de movimiento, el tamano de la memoria intermedia de imagenes descodificadas (DPB) (por ejemplo, en terminos de un cierto numero de imagenes que se mantendran en la DPB), el numero de tramas de reordenacion (es decir, una indicacion de un cierto numero de tramas a ser reordenadas del orden de descodificacion al orden de visualizacion), tamanos codificados de bloques (por ejemplo, macrobloques (MBs) o unidades de arbol de codificacion) y tamanos codificados de imagenes. Un VPS puede proporcionar datos adicionales para una o mas ampliaciones del VPS, de manera que el VPS pueda ampliarse mediante futuras normas o ampliaciones de la proxima norma HEVC.A VPS may, additionally or alternatively, include data defining video usability information (VUI), such as video representation information, hypothetical reference decoder parameters (HRD) and / or bit flow restriction information . The bit stream restriction information may include restrictions on the range of the motion vector, the size of the decoded image buffer (DPB) (for example, in terms of a certain number of images to be maintained in the DPB) , the number of rearrangement frames (that is, an indication of a certain number of frames to be rearranged from the decoding order to the display order), coded block sizes (e.g., macroblocks (MBs) or coding tree units ) and encoded sizes of images. A VPS can provide additional data for one or more extensions of the VPS, so that the VPS can be extended by future standards or extensions of the next HEVC standard.
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificacion y descodificacion de video de ejemplo 10 que puede utilizar tecnicas para codificar conjuntos de parametros y unidades de capa de abstraccion de red (NAL) para una o mas capas de datos de video. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo fuente 12 que proporciona datos de video codificados, a descodificar en un momento posterior mediante un dispositivo de destino 14. En particular, el dispositivo fuente 12 proporciona los datos de video al dispositivo de destino 14 a traves de un medio legible por ordenador 16. El dispositivo fuente 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, ordenadores plegables (es decir, portatiles), ordenadores de tableta, descodificadores, equipos telefonicos de mano tales como los denominados telefonos “inteligentes”, los denominados paneles “inteligentes”, televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, un dispositivo de transmision de video o similares. En algunos casos, el dispositivo fuente 12 y el dispositivo de destino 14 pueden estar equipados para la comunicacion inalambrica.FIG. 1 is a block diagram illustrating an example video coding and decoding system 10 that can use techniques to encode sets of parameters and network abstraction layer units (NAL) for one or more layers of video data. As shown in FIG. 1, the system 10 includes a source device 12 that provides encoded video data, to be decoded at a later time by a destination device 14. In particular, the source device 12 provides the video data to the destination device 14 through a computer-readable medium 16. The source device 12 and the destination device 14 may comprise any of a wide range of devices, including desktop computers, folding computers (i.e., laptops), tablet computers, decoders, telephone equipment. such as the so-called "smart" phones, the so-called "smart" panels, televisions, cameras, display devices, digital media players, video game consoles, a video transmission device or the like. In some cases, the source device 12 and the destination device 14 may be equipped for wireless communication.
El dispositivo de destino 14 puede recibir los datos de video codificados que se van a descodificar mediante el medio legible por ordenador 16. El medio legible por ordenador 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de video codificados desde el dispositivo fuente 12 al dispositivo de destino 14. En un ejemplo, el medio legible por ordenador 16 puede comprender un medio de comunicacion para permitir al dispositivo fuente 12 transmitir datos de video codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de video codificados pueden ser modulados de acuerdo con una norma de comunicacion, tal como un protocolo de comunicacion inalambrica, y transmitidos al dispositivo de destino 14. El medio de comunicacion puede comprender cualquier medio de comunicacion inalambrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o mas lfneas de transmision ffsica. El medio de comunicacion puede formar parte de una red basada en paquetes, tal como una red de area local, una red de area extensa o una red global tal como Internet. El medio de comunicacion puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser util para facilitar laThe destination device 14 can receive the encoded video data to be decoded by the computer-readable medium 16. The computer-readable medium 16 can comprise any type of media or device capable of moving the encoded video data from the device source 12 to the destination device 14. In one example, the computer-readable medium 16 may comprise a communication means to allow the source device 12 to transmit encoded video data directly to the destination device 14 in real time. The encoded video data may be modulated in accordance with a communication standard, such as a wireless communication protocol, and transmitted to the destination device 14. The communication medium may comprise any wireless or wired communication means, such as a spectrum radio frequency (RF) or one or more physical transmission lines. The communication medium may be part of a packet-based network, such as a local area network, a wide area network or a global network such as the Internet. The communication medium may include routers, switches, base stations or any other equipment that may be useful to facilitate the
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
comunicacion desde el dispositivo fuente 12 al dispositivo de destino 14.communication from source device 12 to destination device 14.
En algunos ejemplos, pueden emitirse datos codificados desde la interfaz de salida 22 hasta un dispositivo de almacenamiento. De forma similar, se puede acceder a los datos codificados del dispositivo de almacenamiento mediante una interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera entre una diversidad de medios de almacenamiento de datos, de acceso distribuido o local, tales como una unidad de disco rfgido, discos Blu-ray, discos DVD, discos CD-ROM, memoria flash, memoria volatil o no volatil, u otros medios adecuados cualesquiera de almacenamiento digital, para almacenar datos de video codificados. En un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de ficheros o a otro dispositivo de almacenamiento intermedio que pueda almacenar los datos de video codificados, generados por el dispositivo fuente 12. El dispositivo de destino 14 puede acceder a datos de video almacenados del dispositivo de almacenamiento, mediante flujo o descarga. El servidor de ficheros puede ser cualquier tipo de servidor capaz de almacenar datos de video codificados y transmitir esos datos de video codificados al dispositivo de destino 14. Los servidores de ficheros a modo de ejemplo incluyen un servidor de Internet (por ejemplo, para una sede en la Red), un servidor del FTP, dispositivos de almacenamiento conectados a la red (NAS) o un controlador de disco local. El dispositivo de destino 14 puede acceder a los datos de video codificado a traves de cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion de Wi-Fi), una conexion por cable (por ejemplo, DSL, modem de cable, etc.), o una combinacion de ambos que sea adecuada para acceder a datos de video codificado, almacenados en un servidor de ficheros. La transmision de datos de video codificados desde el dispositivo de almacenamiento puede ser una transmision por flujo, una transmision de descarga o una combinacion de ambas.In some examples, encoded data may be output from the output interface 22 to a storage device. Similarly, the encoded data of the storage device can be accessed through an input interface. The storage device may include any one of a variety of data storage, distributed or local access media, such as a rigid disk drive, Blu-ray discs, DVD discs, CD-ROM discs, flash memory, volatile memory or non volatile, or any other suitable means of digital storage, for storing encoded video data. In a further example, the storage device may correspond to a file server or other intermediate storage device that can store the encoded video data generated by the source device 12. The destination device 14 can access stored video data of the storage device, by flow or discharge. The file server can be any type of server capable of storing encoded video data and transmitting that encoded video data to the destination device 14. The exemplary file servers include an Internet server (for example, for a headquarters on the Network), an FTP server, network connected storage devices (NAS) or a local disk controller. The destination device 14 can access the encoded video data through any standard data connection, including an Internet connection. This may include a wireless channel (for example, a Wi-Fi connection), a cable connection (for example, DSL, cable modem, etc.), or a combination of both that is suitable for accessing video data encoded, stored on a file server. The transmission of encoded video data from the storage device may be a stream transmission, a download transmission or a combination of both.
Las tecnicas de esta divulgacion no estan limitadas necesariamente a aplicaciones o configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de video, en soporte de cualquiera entre una diversidad de aplicaciones de multimedios, tales como difusiones de television por el aire, transmisiones de television por cable, transmisiones de television por satelite, transmisiones de video por flujo de Internet, tales como el flujo adaptativo dinamico sobre HTTP (DASH), video digital que se codifica en un medio de almacenamiento de datos, descodificacion de video digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para dar soporte a la transmision de video unidireccional o bidireccional, para prestar soporte a aplicaciones tales como la transmision de video, la reproduccion de video, la difusion de video y/o la videotelefonfa.The techniques of this disclosure are not necessarily limited to wireless applications or configurations. The techniques can be applied to video coding, in support of any of a variety of multimedia applications, such as television broadcasts over the air, cable television transmissions, satellite television transmissions, Internet video streams , such as dynamic adaptive flow over HTTP (DASH), digital video that is encoded in a data storage medium, digital video decoding stored in a data storage medium, or other applications. In some examples, the system 10 can be configured to support unidirectional or bidirectional video transmission, to support applications such as video transmission, video playback, video broadcasting and / or videotelephony.
En el ejemplo de la FIG. 1, el dispositivo fuente 12 incluye una fuente de video 18, un codificador de video 20 y una interfaz de salida 22. El dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de video 30 y un dispositivo de visualizacion 32. De acuerdo con esta divulgacion, el codificador de video 20 del dispositivo fuente 12 puede estar configurado para aplicar las tecnicas de codificacion por entropfa conjuntos de parametros y unidades NAL para una o mas capas de datos de video. En otros ejemplos, un dispositivo fuente y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo fuente 12 puede recibir datos de video desde una fuente de video externa 18 como una camara externa. Asimismo, el dispositivo destino 14 puede interactuar con un dispositivo de visualizacion externo, en lugar de incluir un dispositivo de visualizacion integrado.In the example of FIG. 1, the source device 12 includes a video source 18, a video encoder 20 and an output interface 22. The destination device 14 includes an input interface 28, a video decoder 30 and a display device 32. According to this disclosure, the video encoder 20 of the source device 12 may be configured to apply entropy coding techniques sets of NAL parameters and units for one or more layers of video data. In other examples, a source device and a destination device may include other components or arrangements. For example, the source device 12 can receive video data from an external video source 18 as an external camera. Also, the destination device 14 can interact with an external display device, instead of including an integrated display device.
El sistema ilustrado 10 de la figura 1 es simplemente un ejemplo. Las tecnicas para codificar conjuntos de parametros y unidades NAL para una o mas capas de datos de video pueden ser realizadas por cualquier dispositivo de codificacion y/o descodificacion de video digital. Aunque, en general, las tecnicas de esta divulgacion se llevan a cabo mediante un dispositivo de codificacion de video, las tecnicas tambien pueden llevarse a cabo mediante un codificador/descodificador de video, denominado tfpicamente "CODEC". Ademas, las tecnicas de esta divulgacion tambien pueden llevarse a cabo mediante un preprocesador de video. El dispositivo fuente 12 y el dispositivo de destino 14 son simplemente ejemplos de tales dispositivos de codificacion, donde el dispositivo fuente 12 genera datos de video codificados para su transmision al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de manera esencialmente simetrica, de modo que cada uno de los dispositivos 12, 14 incluya componentes de codificacion y de descodificacion de video. Por lo tanto, el sistema 10 puede dar soporte a una transmision de video unidireccional o bidireccional entre los dispositivos de video 12, 14, por ejemplo, para la transmision de video, la reproduccion de video, la radiodifusion de video o la videotelefonfa.The illustrated system 10 of Figure 1 is simply an example. The techniques for encoding sets of NAL parameters and units for one or more layers of video data can be performed by any digital video encoding and / or decoding device. Although, in general, the techniques of this disclosure are carried out by means of a video encoding device, the techniques can also be carried out by means of a video encoder / decoder, typically called "CODEC". In addition, the techniques of this disclosure can also be carried out by a video preprocessor. The source device 12 and the destination device 14 are simply examples of such coding devices, where the source device 12 generates encoded video data for transmission to the destination device 14. In some examples, the devices 12, 14 may function as essentially symmetrical manner, so that each of the devices 12, 14 includes coding and video decoding components. Therefore, the system 10 can support a unidirectional or bidirectional video transmission between video devices 12, 14, for example, for video transmission, video playback, video broadcasting or video telephony.
La fuente de video 18 del dispositivo fuente 12 puede incluir un dispositivo de captura de video, como una camara de video, un archivo de video que contiene video grabado previamente y/o una interfaz de alimentacion de video para recibir video de un proveedor de contenido de video. Como una alternativa adicional, la fuente de video 18 puede generar datos basados en graficos de ordenador como el video de origen, o una combinacion de video en directo, video archivado y video generado por ordenador. En algunos casos, si la fuente de video 18 es una videocamara, el dispositivo fuente 12 y el dispositivo de destino 14 pueden formar los denominados telefonos con camara o videotelefonos. Sin embargo, como se ha mencionado anteriormente, las tecnicas descritas en esta divulgacion pueden ser aplicables a la codificacion de video en general, y pueden aplicarse a aplicaciones inalambricas y/o cableadas. En cada caso, el video grabado, pregrabado o generado por ordenador puede ser codificado por el codificador de video 20. La informacion de video codificada puede ser entonces emitida por la interfaz de salida 22 en un medio legible por ordenador 16.The video source 18 of the source device 12 may include a video capture device, such as a video camera, a video file containing previously recorded video and / or a video feed interface for receiving video from a content provider Of video. As an additional alternative, video source 18 can generate data based on computer graphics such as source video, or a combination of live video, archived video and computer generated video. In some cases, if the video source 18 is a camcorder, the source device 12 and the destination device 14 can form the so-called camera phones or video telephones. However, as mentioned above, the techniques described in this disclosure may be applicable to video coding in general, and may be applied to wireless and / or wired applications. In each case, the recorded, prerecorded or computer generated video can be encoded by the video encoder 20. The encoded video information can then be output by the output interface 22 in a computer-readable medium 16.
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
El medio legible por ordenador 16 puede incluir medios transitorios, tales como una emision inalambrica o una transmision de red cableada, o medios de almacenamiento (es decir, medios de almacenamiento no transitorio), tales como un disco duro, una unidad de memoria flash, un disco compacto, un disco de video digital, un disco Blu- ray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no se muestra) puede recibir datos de video codificados desde el dispositivo fuente 12 y proporcionar los datos de video codificados al dispositivo de destino 14, por ejemplo, mediante transmision por red. De manera similar, un dispositivo informatico de una instalacion de produccion de un medio, como una instalacion de grabacion de discos, puede recibir datos de video codificados desde el dispositivo fuente 12 y producir un disco que contiene los datos de video codificados. Por lo tanto, puede entenderse que el medio legible por ordenador 16 incluye uno o mas medios legibles por ordenador de varias formas, en varios ejemplos.The computer-readable medium 16 may include transient means, such as a wireless broadcast or a wired network transmission, or storage media (i.e. non-transient storage media), such as a hard disk, a flash memory drive, a compact disc, a digital video disc, a Blu-ray disc or other computer-readable media. In some examples, a network server (not shown) can receive encoded video data from the source device 12 and provide the encoded video data to the destination device 14, for example, by network transmission. Similarly, an information device of a media production facility, such as a disc burning facility, can receive encoded video data from the source device 12 and produce a disc containing the encoded video data. Therefore, it can be understood that the computer-readable medium 16 includes one or more computer-readable media in several ways, in several examples.
La interfaz de entrada 28 del dispositivo de destino 14 recibe informacion desde el medio legible por ordenador 16. La informacion del medio legible por ordenador 16 puede incluir informacion sintactica definida por el codificador de video 20, que tambien es usada por el descodificador de video 30, que incluye elementos sintacticos que describen caracterfsticas y/o el procesamiento de bloques y otras unidades codificadas, por ejemplo, grupos de imagenes (GOP). El dispositivo de visualizacion 32 muestra los datos de video descodificados a un usuario y puede comprender cualquiera entre una variedad de dispositivos de visualizacion, tales como un tubo de rayos catodicos (CRT), una pantalla de cristal lfquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.The input interface 28 of the destination device 14 receives information from the computer-readable medium 16. The information of the computer-readable medium 16 may include syntactic information defined by the video encoder 20, which is also used by the video decoder 30 , which includes syntactic elements that describe features and / or the processing of blocks and other encoded units, for example, groups of images (GOP). The display device 32 shows the decoded video data to a user and can comprise any of a variety of display devices, such as a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma screen , a light emitting organic diode (OLED) screen or other display device.
El codificador de video 20 y el descodificador de video 30 pueden funcionar de acuerdo con una norma de compresion de video, tal como la norma de codificacion de video de alta eficacia (HEVC), actualmente en fase de elaboracion, y pueden ajustarse al modelo de prueba HEVC (HM). De forma alternativa, el codificador de video 20 y el descodificador de video 30 pueden funcionar de acuerdo con otras normas privadas o industriales, tales como la norma ITU-T H.264, tambien denominada MPEG -4, Parte 10, codificacion de video avanzada (AVC) o ampliaciones de dichas normas. Sin embargo, las tecnicas de esta divulgacion no estan limitadas a ninguna norma de codificacion particular. Otros ejemplos de normas de codificacion de video incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de video 20 y el descodificador de video 30 pueden estar integrado, cada uno de ellos, con un codificador y descodificador de audio, y pueden incluir unidades adecuadas de multiplexado y demultiplexado, u otro hardware y software, para gestionar la codificacion, tanto de audio como de video, en un flujo de datos comun o en flujos de datos diferentes. Si procede, las unidades de multiplexado y demultiplexado pueden ajustarse al protocolo de multiplexado ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).The video encoder 20 and the video decoder 30 can operate in accordance with a video compression standard, such as the high-efficiency video encoding standard (HEVC), currently under development, and can be adjusted to the model of HEVC test (HM). Alternatively, video encoder 20 and video decoder 30 can operate in accordance with other private or industrial standards, such as ITU-T H.264, also called MPEG -4, Part 10, advanced video encoding (AVC) or extensions of these standards. However, the techniques of this disclosure are not limited to any particular coding standard. Other examples of video coding standards include MPEG-2 and ITU-T H.263. Although not shown in FIG. 1, in some aspects, the video encoder 20 and the video decoder 30 may each be integrated with an audio encoder and decoder, and may include suitable multiplexing and demultiplexing units, or other hardware and software, to manage coding, both audio and video, in a common data stream or in different data streams. If applicable, the multiplexing and demultiplexing units can conform to the ITU H.223 multiplexing protocol or other protocols, such as the user datagram protocol (UDP).
La norma ITU-T H.264 / MPEG-4 (AVC) fue formulada por el Grupo de Expertos en Codificacion de Video de ITU-T (VCEG), junto al Grupo de Expertos en Pelfculas de ISO / IEC (MPEG), como el producto de una asociacion colectiva conocida como el Equipo de Video Conjunto (JVT). En algunos aspectos, las tecnicas descritas en esta divulgacion pueden ser aplicadas a dispositivos que se ajustan en general a la norma H.264. La norma H.264 se describe en la Recomendacion ITU-T H.264, Codificacion de Video Avanzada, para los servicios audiovisuales genericos, por el Grupo de Estudio de la ITU-T, con fecha de marzo de 2005, y que se puede denominar en el presente documento norma H.264 o memoria descriptiva H.264, o la norma o memoria descriptiva H.264/AVC. El Equipo de Video Conjunto (JVT) continua trabajando en ampliaciones para H.264/MPEG-4 AVC.The ITU-T H.264 / MPEG-4 (AVC) standard was formulated by the ITU-T Video Encoding Group of Experts (VCEG), together with the ISO / IEC Group of Experts on Pellets, as the product of a collective association known as the Joint Video Team (JVT). In some aspects, the techniques described in this disclosure can be applied to devices that generally conform to the H.264 standard. The H.264 standard is described in ITU-T Recommendation H.264, Advanced Video Coding, for generic audiovisual services, by the ITU-T Study Group, dated March 2005, and which can be denominate in this document standard H.264 or descriptive memory H.264, or the standard or descriptive memory H.264 / AVC. The Joint Video Team (JVT) continues to work on extensions for H.264 / MPEG-4 AVC.
El codificador de video 20 y el descodificador de video 30 pueden implementarse como cualquiera entre una variedad de circuitos de codificadores adecuados, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados de aplicacion especffica (ASIC), matrices de puertas programables in situ (FPGA), logica discreta, software, hardware, firmware o cualquier combinacion de estos. Cuando las tecnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en unos medios legibles por ordenador no transitorios adecuados, y ejecutar las instrucciones en hardware mediante uno o mas procesadores que realizan las tecnicas de esta divulgacion. Tanto el codificador de video 20 como el descodificador de video 30 pueden estar incluidos en uno o mas codificadores o descodificadores, donde cualquiera de ambos puede estar integrado como parte de un codificador/descodificador (CODEC) combinado en un dispositivo respectivo.The video encoder 20 and the video decoder 30 can be implemented as any one of a variety of suitable encoder circuits, such as one or more microprocessors, digital signal processors (DSP), specific application integrated circuits (ASICs), data matrixes On-site programmable doors (FPGA), discrete logic, software, hardware, firmware or any combination of these. When the techniques are partially implemented in software, a device may store instructions for the software in suitable non-transient computer readable media, and execute the instructions in hardware by one or more processors performing the techniques of this disclosure. Both the video encoder 20 and the video decoder 30 may be included in one or more encoders or decoders, where either of them may be integrated as part of a combined encoder / decoder (CODEC) in a respective device.
El equipo JCT-VC esta trabajando en la elaboracion de la norma HEVC. Las actividades de normalizacion de la HEVC se basan en un modelo en evolucion de un dispositivo de codificacion de video denominado modelo de prueba HEVC (HM). El HM supone varias capacidades adicionales de los dispositivos de codificacion de video respecto a dispositivos existentes de acuerdo con, por ejemplo, la ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modos de codificacion de intraprediccion, el HM puede proporcionar hasta treinta y tres modos de codificacion de intraprediccion.The JCT-VC team is working on the development of the HEVC standard. The normalization activities of the HEVC are based on an evolving model of a video coding device called the HEVC (HM) test model. The HM assumes several additional capabilities of video encoding devices over existing devices according to, for example, ITU-T H.264 / AVC. For example, while the H.264 standard provides nine intrapredicting coding modes, the HM can provide up to thirty-three intrapredicting coding modes.
En general, el modelo de funcionamiento del HM describe que una trama o imagen de video puede dividirse en una secuencia de bloques arbolados o unidades de codificacion de mayor tamano (LCU), que incluyen muestras tanto de luma como de croma. Los datos sintacticos de un flujo de bits pueden definir un tamano para la LCU, que es la mayor unidad de codificacion en lo que respecta al numero de pfxeles. Un fragmento incluye un cierto numero deIn general, the operation model of the HM describes that a video frame or image can be divided into a sequence of wooded blocks or larger size coding units (LCUs), which include both luma and chroma samples. The syntactic data of a bit stream can define a size for the LCU, which is the largest encoding unit in terms of the number of pixels. A fragment includes a certain number of
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
bloques arbolados consecutivos en orden de codificacion. Una trama o imagen de video puede dividirse en uno o mas fragmentos. Cada bloque arbolado puede separarse en unidades de codificacion (CU) de acuerdo con un arbol cuadruple. En general, una estructura de datos de arbol cuadruple incluye un nodo por CU, donde un nodo raiz corresponde al bloque arbolado. Si una CU se divide en cuatro sub-CU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las sub-CU.consecutive wooded blocks in order of coding. A plot or video image can be divided into one or more fragments. Each wooded block can be separated into coding units (CU) according to a quadruple tree. In general, a quadruple tree data structure includes one node per CU, where a root node corresponds to the tree block. If a CU is divided into four sub-CUs, the node corresponding to the CU includes four leaf nodes, each of which corresponds to one of the sub-CUs.
Cada nodo de la estructura de datos de arbol cuadruple puede proporcionar datos sintacticos para la CU correspondiente. Por ejemplo, un nodo en el arbol cuadruple puede incluir un indicador de division, que indica si la CU correspondiente al nodo esta dividida o no en varias sub-CU. Los elementos sintacticos de una CU pueden definirse de manera recursiva y pueden depender de si la CU esta dividida o no en varias sub-CU. Si una CU no esta dividida adicionalmente, se denomina Cu hoja. En esta divulgacion, cuatro sub-CU de una CU hoja tambien se denominaran CU hoja aunque no haya una division explicita de la CU hoja original. Por ejemplo, si una CU con un tamano de 16x16 no se divide adicionalmente, las cuatro sub-CU de tamano 8x8 tambien se denominaran CU hoja aunque la CU de tamano 16x16 no se haya dividido nunca.Each node of the quad tree data structure can provide syntactic data for the corresponding CU. For example, a node in the quad tree can include a division indicator, which indicates whether the CU corresponding to the node is divided or not into several sub-CU. The syntactic elements of a CU can be defined recursively and can depend on whether the CU is divided into several sub-CUs. If a CU is not further divided, it is called Cu sheet. In this disclosure, four sub-CU of a CU sheet will also be called CU sheet although there is no explicit division of the original CU sheet. For example, if a CU with a size of 16x16 is not further divided, the four sub-CU of size 8x8 will also be called a CU sheet although the CU of size 16x16 has never been divided.
Una CU tiene un proposito similar a un macrobloque de la norma H.264, excepto que una CU no tiene una distincion de tamano. Por ejemplo, un bloque arbolado puede dividirse en cuatro nodos secundarios (tambien denominados sub-CU) y cada nodo secundario puede a su vez ser un nodo principal y dividirse en otros cuatro nodos secundarios. Un nodo secundario final, no dividido, denominado un nodo hoja del arbol cuadruple, comprende un nodo de codificacion, tambien denominado CU hoja. Los datos sintacticos asociados a un flujo de bits codificado pueden definir un numero maximo de veces que puede dividirse un bloque arbolado, denominado profundidad de CU maxima, y tambien pueden definir un tamano minimo de los nodos de codificacion. Por consiguiente, un flujo de bits tambien puede definir una minima unidad de codificacion (SCU). Esta divulgacion utiliza el termino "bloque" para referirse a cualquiera entre una CU, PU o TU, en el contexto de HEVC, o a estructuras de datos similares en el contexto de otras normas (por ejemplo, macrobloques y subbloques de los mismos en H.264/AVC).A CU has a purpose similar to a macroblock of the H.264 standard, except that a CU does not have a size distinction. For example, a wooded block can be divided into four secondary nodes (also called sub-CU) and each secondary node can in turn be a main node and be divided into four other secondary nodes. A final, undivided secondary node, called a leaf node of the quadruple tree, comprises a coding node, also called CU leaf. The syntactic data associated with an encoded bit stream can define a maximum number of times that a wooded block can be divided, called maximum CU depth, and can also define a minimum size of the coding nodes. Therefore, a bit stream can also define a minimum coding unit (SCU). This disclosure uses the term "block" to refer to anyone between a CU, PU or TU, in the context of HEVC, or similar data structures in the context of other standards (for example, macroblocks and subblocks thereof in H. 264 / AVC).
Una CU incluye un nodo de codificacion y unidades de prediccion (PU) y unidades de transformada (TU) asociadas al nodo de codificacion. Un tamano de la CU corresponde a un tamano del nodo de codificacion y debe ser de forma cuadrada. El tamano de la CU puede variar desde 8 x 8 pfxeles hasta el tamano del bloque arbolado, con un maximo de 64 x 64 pfxeles o mas. Cada CU puede contener una o mas PU y una o mas TU. Los datos sintacticos asociados a una CU pueden describir, por ejemplo, la division de la CU en una o mas PU. Los modos de division pueden diferir dependiendo de si la CU esta codificada en modo de salto o directo, codificada en modo de intraprediccion o codificada en modo de interprediccion. Las PU pueden dividirse para no tener forma cuadrada. Los datos sintacticos asociados a una CU tambien pueden describir, por ejemplo, la division de la CU en una o mas TU de acuerdo con un arbol cuadruple. Una TU puede tener forma cuadrada o no cuadrada (por ejemplo, rectangular).A CU includes a coding node and prediction units (PU) and transform units (TU) associated with the coding node. A size of the CU corresponds to a size of the coding node and must be square. The size of the CU can vary from 8 x 8 pixels to the size of the wooded block, with a maximum of 64 x 64 pixels or more. Each CU may contain one or more PU and one or more TU. Syntactic data associated with a CU may describe, for example, the division of the CU into one or more PU. The modes of division may differ depending on whether the CU is encoded in skip or direct mode, encoded in intraprediction mode or encoded in interprediction mode. PUs can be divided so as not to have a square shape. The syntactic data associated with a CU can also describe, for example, the division of the CU into one or more TU according to a quad tree. A TU can be square or non-square (for example, rectangular).
La norma HEVC admite transformaciones de acuerdo con las TU, que pueden ser diferentes para diferentes CU. El tamano de las TU tfpicamente se basa en el tamano de las PU de una CU dada definida para una LCU dividida, aunque puede que no siempre sea asf. Las TU presentan tfpicamente el mismo tamano o un tamano mas pequeno que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades mas pequenas mediante una estructura de arbol cuadruple conocida como "arbol cuadruple residual" (RQT). Los nodos hoja del RQT pueden denominarse unidades de transformada (TU). Los valores de diferencias de pfxeles asociados a las TU pueden transformarse para generar coeficientes de transformada, que pueden cuantizarse.The HEVC standard supports transformations according to TU, which may be different for different CU. The size of the TU is typically based on the size of the PUs of a given CU defined for a split LCU, although it may not always be so. TUs typically have the same size or smaller size as PU. In some examples, the residual samples corresponding to a CU can be subdivided into smaller units by a quadruple tree structure known as "residual quadruple tree" (RQT). The leaf nodes of the RQT can be called transform units (TU). Pixel difference values associated with TU can be transformed to generate transform coefficients, which can be quantified.
Una CU hoja puede incluir una o mas unidades de prediccion (PU). En general, una PU representa una zona espacial correspondiente a la totalidad, o una parte de la CU correspondiente, y puede incluir datos para recuperar una muestra de referencia para la PU. Ademas, una PU incluye datos relacionados con la prediccion. Por ejemplo, cuando la PU esta codificada en intramodo, pueden incluirse datos para la PU en un arbol cuadruple residual (RQT), que pueden incluir datos que describen un modo de intraprediccion para una TU correspondiente a la PU. Para mencionar otro ejemplo, cuando la PU esta codificada en intermodo, la PU puede incluir datos que definen uno o mas vectores de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolucion para el vector de movimiento (por ejemplo, precision de pfxeles de un cuarto o precision de pfxeles de un octavo), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imagenes de referencia (por ejemplo, la Lista 0, la Lista 1 o la Lista C) para el vector de movimiento.A CU sheet may include one or more prediction units (PU). In general, a PU represents a space zone corresponding to the whole, or a part of the corresponding CU, and may include data to retrieve a reference sample for the PU. In addition, a PU includes data related to the prediction. For example, when the PU is encoded in intramode, data for the PU may be included in a residual quadruple tree (RQT), which may include data describing an intraprediction mode for a TU corresponding to the PU. To mention another example, when the PU is coded in intermode, the PU may include data defining one or more motion vectors for the PU. The data defining the motion vector for a PU can describe, for example, a horizontal component of the motion vector, a vertical component of the motion vector, a resolution for the motion vector (for example, quarter pixel precision or precision of pixels of one eighth), a reference image that the motion vector points to and / or a list of reference images (for example, List 0, List 1 or List C) for the vector of movement.
Una CU hoja que tiene una o mas PU tambien puede incluir una o mas unidades de transformacion (TU). Las unidades de transformacion pueden especificarse usando una RQT (tambien denominada estructura de arbol cuadruple de TU), como la descrita anteriormente. Por ejemplo, un indicador de division puede indicar si una CU hoja esta dividida en cuatro unidades de transformacion. A continuacion, cada unidad de transformacion puede dividirse adicionalmente en mas sub-TU. Cuando una TU no esta dividida adicionalmente, puede denominarse como TU hoja. En general, en lo que respecta a la intracodificacion, todas las TU hoja que pertenecen a una CU hoja comparten el mismo modo de intraprediccion. Es decir, el mismo modo de intraprediccion se aplica en general para calcular valores predichos para todas las TU de una CU hoja. En lo que respecta a la intracodificacion, un codificador de video puede calcular un valor residual para cada TU hoja usando el modo de intraprediccion, comoA CU sheet that has one or more PUs can also include one or more transformation units (TU). Transformation units can be specified using an RQT (also called TU quadruple tree structure), as described above. For example, a division indicator can indicate if a CU sheet is divided into four transformation units. Next, each transformation unit can be further divided into more sub-TU. When a TU is not further divided, it can be referred to as YOUR sheet. In general, with regard to intracoding, all TU sheets that belong to a CU sheet share the same mode of intraprediction. That is, the same intraprediction mode is generally applied to calculate predicted values for all TUs of a CU sheet. With regard to intracoding, a video encoder can calculate a residual value for each TU sheet using the intraprediction mode, such as
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
una diferencia entre la parte de la CU correspondiente a la TU y el bloque original. Una TU no esta necesariamente limitada al tamano de una PU. De este modo, las TU pueden ser mayores o menores que una PU. En lo que respecta a la intracodificacion, una PU puede estar coubicada con una TU hoja correspondiente para la misma CU. En algunos ejemplos, el tamano maximo de una TU hoja puede corresponder con el tamano de la CU hoja correspondiente.a difference between the part of the CU corresponding to the TU and the original block. A TU is not necessarily limited to the size of a PU. In this way, the TU can be greater or less than a PU. With regard to intracoding, a PU may be co-located with a corresponding TU sheet for the same CU. In some examples, the maximum size of a TU sheet may correspond to the size of the corresponding CU sheet.
Ademas, las TU de las CU hoja tambien pueden asociarse a las estructuras de datos respectivas de arbol cuaternario, denominadas arboles cuaternarios residuales (RQTs) Es decir, una CU hoja puede incluir un arbol cuadruple que indica como la CU hoja esta dividida en varias TU. El nodo rafz de un arbol cuadruple de TU corresponde en general a una CU hoja, mientras que el nodo rafz de un arbol cuadruple de CU corresponde en general a un bloque arbolado (o LCU). Las TU del RQT que no estan divididas se denominan TU hoja. En general, esta divulgacion usa los terminos CU y TU para hacer referencia a una CU hoja y a una TU hoja, respectivamente, a no ser que se indique lo contrario.In addition, the TU of the CU sheet can also be associated with the respective quaternary tree data structures, called residual quaternary trees (RQTs). That is, a CU sheet can include a quadruple tree that indicates how the CU sheet is divided into several TU . The root node of a quadruple tree of TU corresponds in general to a CU leaf, while the root node of a quadruple tree of CU corresponds in general to a wooded block (or LCU). The TU of the RQT that are not divided are called TU sheet. In general, this disclosure uses the terms CU and TU to refer to a CU sheet and a TU sheet, respectively, unless otherwise indicated.
Una secuencia de video incluye tfpicamente una serie de tramas o imagenes de video. Un grupo de imagenes (GOP) comprende en general una serie de una o mas de las imagenes de video. Un GOP puede incluir datos sintacticos en una cabecera del GOP, en una cabecera de una o mas de las imagenes o en otras ubicaciones, que describen un cierto numero de imagenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintacticos de fragmento que describen un modo de codificacion para el fragmento respectivo. Un codificador de video 20 actua tfpicamente sobre bloques de video de fragmentos de video individuales con el fin de codificar los datos de video. Un bloque de video puede corresponder a un nodo de codificacion de una CU. Los bloques de video pueden presentar tamanos fijos o variables y pueden diferir en tamano de acuerdo con una norma de codificacion especificada.A video sequence typically includes a series of video frames or images. A group of images (GOP) generally comprises a series of one or more of the video images. A GOP may include syntactic data in a GOP header, in a header of one or more of the images or in other locations, which describe a certain number of images included in the GOP. Each fragment of an image may include syntactic fragment data that describes a coding mode for the respective fragment. A video encoder 20 typically acts on video blocks of individual video fragments in order to encode the video data. A video block may correspond to a coding node of a CU. Video blocks may have fixed or variable sizes and may differ in size according to a specified coding standard.
En un ejemplo, el HM admite la prediccion en diversos tamanos de PU. Suponiendo que el tamano de una CU particular sea 2Nx2N, el HM admite la intraprediccion en tamanos de PU de 2Nx2N o NxN y la interprediccion en tamanos de PU simetricos de 2Nx2N, 2NxN, Nx2N o NxN. El HM tambien admite la division asimetrica para la interprediccion en tamanos de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la division asimetrica, una direccion de una CU no esta dividida, mientras que la otra direccion esta dividida en 25 % y 75 %. La parte de la CU correspondiente a la division de 25 % esta indicada por una “n” seguida de una indicacion “arriba”, “abajo”, “izquierda” o “derecha”. Asf, por ejemplo, “2NxnU” se refiere a una CU 2Nx2N que esta dividida horizontalmente con una PU 2Nx0,5N encima y una pU 2Nx1,5N debajo.In one example, the HM supports prediction in various PU sizes. Assuming that the size of a particular CU is 2Nx2N, the HM supports intraprediction in PU sizes of 2Nx2N or NxN and interpretation in symmetric PU sizes of 2Nx2N, 2NxN, Nx2N or NxN. The HM also supports asymmetric division for interprediction in PU sizes of 2NxnU, 2NxnD, nLx2N and nRx2N. In the asymmetric division, one address of a CU is not divided, while the other address is divided into 25% and 75%. The part of the CU corresponding to the 25% division is indicated by an “n” followed by an indication “up”, “down”, “left” or “right”. Thus, for example, "2NxnU" refers to a CU 2Nx2N that is divided horizontally with a PU 2Nx0.5N above and a pU 2Nx1.5N below.
En esta divulgacion, "NxN" y "N por N" pueden usarse indistintamente para hacer referencia a las dimensiones de pfxeles de un bloque de video en terminos de dimensiones verticales y horizontales, por ejemplo, 16x16 pfxeles o 16 por 16 pfxeles. En general, un bloque de tamano 16 x 16 tendra 16 pfxeles en la direccion vertical (y = 16) y 16 pfxeles en la direccion horizontal (x = 16). Asimismo, un bloque de tamano NxN presenta en general N pfxeles en una direccion vertical y N pfxeles en una direccion horizontal, donde N representa un valor entero no negativo. Los pfxeles en un bloque pueden estar dispuestos en filas y columnas. Ademas, los bloques no necesitan presentar necesariamente el mismo numero de pfxeles en la direccion horizontal y en la direccion vertical. Por ejemplo, los bloques pueden comprender NxM pfxeles, donde M no es necesariamente igual a N.In this disclosure, "NxN" and "N by N" may be used interchangeably to refer to the pixel dimensions of a video block in terms of vertical and horizontal dimensions, for example, 16x16 pixels or 16 by 16 pixels. In general, a 16 x 16 size block will have 16 pixels in the vertical direction (y = 16) and 16 pixels in the horizontal direction (x = 16). Also, a block of size NxN generally has N pixels in a vertical direction and N pixels in a horizontal direction, where N represents a non-negative integer value. Pixels in a block can be arranged in rows and columns. In addition, the blocks do not necessarily have to present the same number of pixels in the horizontal direction and in the vertical direction. For example, the blocks may comprise NxM pixels, where M is not necessarily equal to N.
Tras la codificacion de intraprediccion o interprediccion mediante las PU de una CU, el codificador de video 20 puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos sintacticos que describen un procedimiento o modo de generacion de datos de pfxeles predictivos en el dominio espacial (tambien denominado como el dominio de pfxeles) y las TU pueden comprender coeficientes en el dominio de transformacion, tras la aplicacion de una transformacion, por ejemplo, una transformacion de coseno discreta (DCT), una transformacion entera, una transformacion de ondfculas o una transformacion conceptualmente similar, a los datos de video residuales. Los datos residuales pueden corresponder a diferencias de pfxeles entre pfxeles de la imagen no codificada y valores de prediccion correspondientes a las PU. El codificador de video 20 puede formar las TU incluyendo los datos residuales para la CU, y a continuacion transformar las TU para generar coeficientes de transformada para la CU.After the coding of intraprediction or interprediction by means of the PU of a CU, the video encoder 20 can calculate residual data for the TU of the CU. PUs may comprise syntactic data describing a method or mode of generating predictive pixel data in the spatial domain (also referred to as the pixel domain) and the TUs may comprise coefficients in the transformation domain, after the application of a transformation , for example, a discrete cosine transformation (DCT), an entire transformation, a transformation of pdfs or a conceptually similar transformation, to residual video data. The residual data may correspond to pixel differences between pixels of the uncoded image and prediction values corresponding to the PUs. The video encoder 20 can form the TU including residual data for the CU, and then transform the TU to generate transform coefficients for the CU.
Tras cualquier transformada para generar coeficientes de transformada, el codificador de video 20 puede realizar la cuantizacion de los coeficientes de transformada. La cuantizacion se refiere en general a un proceso en el que los coeficientes de transformada se cuantizan para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando una compresion adicional. El proceso de cuantizacion puede reducir la profundidad de bits asociada a algunos o la totalidad de los coeficientes. Por ejemplo, un valor de n bits puede redondearse por lo bajo a un valor de m bits durante la cuantizacion, donde n es mayor que m.After any transform to generate transform coefficients, the video encoder 20 can quantify the transform coefficients. Quantization generally refers to a process in which the transform coefficients are quantized to possibly reduce the amount of data used to represent the coefficients, providing additional compression. The quantization process can reduce the bit depth associated with some or all of the coefficients. For example, a value of n bits can be rounded down to a value of m bits during quantization, where n is greater than m.
Despues de la cuantizacion, el codificador de video puede escanear los coeficientes de transformacion, produciendo un vector unidimensional a partir de la matriz bidimensional que incluye los coeficientes de transformada cuantizados. La exploracion puede estar disenada para colocar coeficientes de energfa mas alta (y por lo tanto de menor frecuencia) en la parte frontal de la matriz y para colocar coeficientes de energfa mas bajos (y por lo tanto de mayor frecuencia) en la parte posterior de la matriz. En algunos ejemplos, el codificador de video 20 puede usar un orden de exploracion predefinido para explorar los coeficientes de transformada cuantizados y generar un vector enAfter quantization, the video encoder can scan the transformation coefficients, producing a one-dimensional vector from the two-dimensional matrix that includes the quantized transform coefficients. The scan may be designed to place higher energy coefficients (and therefore of lower frequency) on the front of the matrix and to place lower energy coefficients (and therefore higher frequency) on the back of matrix. In some examples, video encoder 20 can use a predefined scan order to explore quantized transform coefficients and generate a vector in
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
serie que pueda someterse a la codificacion por entropfa. En otros ejemplos, el codificador de video 20 puede realizar una exploracion adaptativa. Despues de explorar los coeficientes de transformada cuantizados para formar un vector unidimensional, el codificador de video 20 puede realizar la codificacion por entropfa del vector unidimensional, por ejemplo, de acuerdo con la codificacion de longitud variable adaptativa de acuerdo con el contexto (CAVLC), la codificacion aritmetica binaria adaptativa de acuerdo con el contexto (CABAC), la codificacion aritmetica binaria adaptativa de acuerdo con el contexto basada en la sintaxis (SBAC), la codificacion por entropfa por division de intervalos de probabilidad (PIPE) u otros procedimientos de codificacion por entropfa. El codificador de video 20 tambien puede realizar la codificacion por entropfa de elementos sintacticos asociados a los datos de video codificados para su uso por el descodificador de video 30 en la descodificacion de los datos de video.series that can undergo entropy coding. In other examples, video encoder 20 can perform an adaptive scan. After exploring the quantized transform coefficients to form a one-dimensional vector, the video encoder 20 can perform the entropy coding of the one-dimensional vector, for example, according to the adaptive variable length coding according to the context (CAVLC), adaptive binary arithmetic coding according to the context (CABAC), adaptive binary arithmetic coding according to the context based on syntax (SBAC), entropy coding by division of probability intervals (PIPE) or other coding procedures by entropy. The video encoder 20 can also perform the entropy coding of syntactic elements associated with the video data encoded for use by the video decoder 30 in decoding the video data.
Para realizar la CABAC, el codificador de video 20 puede asignar un contexto de un modelo contextual a un sfmbolo que se va a transmitir. El contexto puede referirse, por ejemplo, a si los valores contiguos del sfmbolo son distintos de cero o no. Para realizar la CAVLC, el codificador de video 20 puede seleccionar un codigo de longitud variable para un sfmbolo que se va a transmitir. Las palabras de codigo en la VLC pueden construirse de forma que los codigos relativamente mas cortos correspondan a sfmbolos mas probables, mientras que los codigos mas largos correspondan a sfmbolos menos probables. De esta manera, el uso de la VLC puede permitir un ahorro en bits con respecto, por ejemplo, al uso de palabras de codigo de igual longitud para cada sfmbolo que se va a transmitir. La determinacion de la probabilidad puede basarse en un contexto asignado al sfmbolo.To perform the CABAC, the video encoder 20 can assign a context of a contextual model to a symbol to be transmitted. The context may refer, for example, to whether the contiguous values of the symbol are non-zero or not. To perform the CAVLC, the video encoder 20 can select a variable length code for a symbol to be transmitted. The code words in the VLC can be constructed so that the relatively shorter codes correspond to more likely symbols, while the longer codes correspond to less probable symbols. In this way, the use of the VLC can allow saving in bits with respect, for example, to the use of code words of equal length for each symbol to be transmitted. The determination of the probability can be based on a context assigned to the symbol.
De acuerdo con las tecnicas de esta divulgacion, se puede configurar un codificador de video, como un codificador de video 20 o un descodificador de video 30, para codificar un conjunto de parametros de video (VPS) en una o mas capas de datos de video y para codificar una o mas capas de datos de video basandose, al menos en parte, en el VPS. Las tablas 2 y 5, descritas con mas detalle a continuacion, incluyen conjuntos de ejemplos de elementos sintacticos de un VPS. Cada una, o mas, de las capas de datos de video puede referirse al VPS, es decir, al mismo VPS. En otras palabras, el VPS puede aplicarse a todas las capas de un conjunto comun de datos de video, por ejemplo, todas las capas SVC y/o todas las vistas de datos de video MVC.According to the techniques of this disclosure, a video encoder, such as a video encoder 20 or a video decoder 30, can be configured to encode a set of video parameters (VPS) in one or more layers of video data and to encode one or more layers of video data based, at least in part, on the VPS. Tables 2 and 5, described in more detail below, include sets of examples of syntactic elements of a VPS. Each, or more, of the video data layers may refer to the VPS, that is, the VPS itself. In other words, the VPS can be applied to all layers of a common set of video data, for example, all SVC layers and / or all MVC video data views.
El VPS puede incluir diversas categorfas de informacion. Por ejemplo, el VPS puede incluir una descripcion de contador de dimension de muestra (SDCD). Es decir, para cada dimension, el codificador de video puede senalar un conjunto de indices. Las dimensiones posibles incluyen cnt_p: numero de capas prioritarias contenidas en la secuencia de video codificada; cnt_d: cuantas capas de dependencia diferentes en el flujo de bits, multiples capas con la misma resolucion espacial y profundidad de bits pueden pertenecer a diferentes capas de dependencia; cnt_t: cuantas capas temporales en el flujo de bits; cnt_q: numero maximo de capas de calidad para cualquier capa de dependencia en el flujo de bits; y cnt_v: numero maximo de vistas. Los ajustes de profundidad de bits pueden incluir 8 bits o 12 bits y pueden ser diferentes para diferentes componentes de color. Los formatos de muestreo de croma pueden incluir 4:0:0, 4:2:0 y 4:4:4.The VPS can include various categories of information. For example, the VPS may include a description of sample size counter (SDCD). That is, for each dimension, the video encoder can signal a set of indexes. Possible dimensions include cnt_p: number of priority layers contained in the encoded video sequence; cnt_d: how many different dependency layers in the bit stream, multiple layers with the same spatial resolution and bit depth can belong to different dependency layers; cnt_t: how many temporary layers in the bit stream; cnt_q: maximum number of quality layers for any dependency layer in the bit stream; and cnt_v: maximum number of views. Bit depth settings may include 8 bits or 12 bits and may be different for different color components. Chroma sampling formats can include 4: 0: 0, 4: 2: 0 and 4: 4: 4.
El VPS tambien puede incluir un fndice de muestra para la asignacion de caracterfsticas. Si para cada dimension el indicador de caracterfsticas no es igual a un fndice que varfa de 0 al contador de dimensiones de muestra menos 1, se puede introducir un bucle que especifica el indicador de caracterfsticas para cada fndice de caracterfsticas. La asignacion puede incluir, para cada fndice de dependencia, una resolucion espacial especifica con un valor de profundidad de bits especifico y un formato de muestra cromatica especffico. Observese que esto puede omitirse si siempre hay una tabla fija de busqueda en el descodificador, por ejemplo, 0 puede corresponder a 4:2:0, 1 puede corresponder a 4:4:4 y 2 puede corresponder a 4:0:0. La asignacion puede incluir adicionalmente, o de forma alternativa: para cada id / fndice temporal, una velocidad de tramas especifica o velocidad de tramas media; para cada fndice de vista, un id de vista especffico; para cada fndice de profundidad de bits, un par de valores de profundidad de bits especfficos para luma y croma; y para cada formato de muestreo de croma, un indicador de formato de muestreo de croma especffico.The VPS can also include a sample rate for feature assignment. If for each dimension the characteristic indicator is not equal to an index that varies from 0 to the sample dimension counter minus 1, you can enter a loop that specifies the characteristic indicator for each characteristic index. The assignment can include, for each dependency index, a specific spatial resolution with a specific bit depth value and a specific chromatic sample format. Note that this can be omitted if there is always a fixed search table in the decoder, for example, 0 may correspond to 4: 2: 0, 1 may correspond to 4: 4: 4 and 2 may correspond to 4: 0: 0. The assignment may additionally or alternatively include: for each temporary id / index, a specific frame rate or average frame rate; for each view index, a specific view id; for each bit depth index, a pair of specific bit depth values for luma and chroma; and for each chroma sampling format, a specific chroma sampling format indicator.
El VPS tambien puede incluir parametros de control e indicadores de habilitacion / deshabilitacion de herramientas, tales como los siguientes: un pcm_bit_depth_luma_minus1, un pcm_bit_depth_chroma_minus1, un loop_filter_across_slice_flag, un pcm_loop_filter_disable_flag, un temporal_id_nesting_flag, uno o mas elementos sintacticos relacionados con componentes, un chroma_pred_from_luma_enabled_flag, un sample_adaptive_offset_enabled_flag, un adaptive_loop_filter_enabled_flag , y un inter_4x4_enabled_flag.The VPS can also include control parameters and indicators for enabling / disabling tools, such as the following: a pcm_bit_depth_luma_minus1, a pcm_bit_depth_chroma_minus1, a loop_filter_across_slice_flag, a pcm_loop_filter_disable_flag_, un_direct_d_glug, un temporal_dromp_glass, un temporal_dromp_glass, un temporal_dromp_glass sample_adaptive_offset_enabled_flag, an adaptive_loop_filter_enabled_flag, and an inter_4x4_enabled_flag.
El VPS tambien puede incluir una o mas descripciones de punto de operacion. Los puntos de operacion en general describen un subconjunto de un numero total de vistas de datos de video incluidos en un flujo de bits. Un punto de operacion puede incluir un numero particular de vistas dirigidas a la salida, asf como otras vistas que se pueden usar como referencia cuando se descodifican, se emiten o ambas cosas. Un flujo de bits puede incluir uno o mas puntos de operacion descritos por las descripciones de punto de operacion. Las descripciones de punto de operacion pueden incluir informacion que define un cierto numero de puntos de operacion maximos, dependencia entre capas o vistas diferentes, perfil y nivel para cada punto de operacion, velocidad de bits para cada punto de operacion, dependencia entre puntos de operacion, para cada punto de operacion, otras restricciones, para cada punto de operacion, informacion de usabilidad de video (VUI) o parte de VUl, y/o para cada capa o vista, VUI o parte de VUI. Ademas, o de forma alternativa, las descripciones de punto de operacion pueden incluir, para cada punto de operacion, una representacion de unidad de capa de abstraccion de red (NAL) de capa de codificacion de videoThe VPS can also include one or more operating point descriptions. Operation points in general describe a subset of a total number of views of video data included in a bit stream. An operation point can include a particular number of views directed to the output, as well as other views that can be used as a reference when decoding, broadcasting or both. A bit stream may include one or more operation points described by the operation point descriptions. Operation point descriptions may include information defining a certain number of maximum operating points, dependence between layers or different views, profile and level for each operating point, bit rate for each operating point, dependence between operating points. , for each operation point, other restrictions, for each operation point, video usability information (VUI) or part of VUl, and / or for each layer or view, VUI or part of VUI. In addition, or alternatively, the operation point descriptions may include, for each operation point, a network abstraction layer unit (NAL) representation of the video encoding layer
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
(VCL) de punto de operacion. En algunos ejemplos, la representacion de unidad VCL NAL de punto de operacion puede incluir, para cada dimension, tres opciones posibles: (1) un valor de fndice especffico: por ejemplo, para la resolucion espacial, para la profundidad de bits en el formato de muestreo de croma; (2) un rango del valor del fndice: por ejemplo, para capas temporales, de 0 al id de capa temporal mas alta, para capas de calidad, de 0 al id de capa de calidad mas alta; o (3) una lista de valores de fndice, por ejemplo, para vistas, una lista de valores de fndice de vista.(VCL) operating point. In some examples, the VCL NAL unit of operation point representation may include, for each dimension, three possible options: (1) a specific index value: for example, for spatial resolution, for bit depth in the format chroma sampling; (2) a range of the index value: for example, for temporary layers, from 0 to the highest time layer id, for quality layers, from 0 to the highest quality layer id; or (3) a list of index values, for example, for views, a list of view index values.
En algunos ejemplos, el VPS puede incluir datos indicativos de un numero maximo de capas temporales entre capas de un flujo de bits. Es decir, el codificador de video 20 y/o el descodificador de video 30 pueden configurarse para codificar un VPS que incluye datos indicativos de un numero maximo de capas temporales para un flujo de bits correspondiente. Por ejemplo, el codificador de video 20 puede determinar un numero maximo de capas temporales y codificar el VPS para incluir datos que representan el numero maximo determinado de capas temporales, mientras que el descodificador de video 30 puede descodificar el VPS para determinar el numero maximo de capas temporales. El codificador de video 20 y el descodificador de video 30 tambien pueden codificar datos de video del flujo de bits basandose en el numero maximo determinado de capas temporales. Por ejemplo, el numero maximo de capas temporales puede influir en un cierto numero de identificadores temporales que son necesarios para representar las diversas capas temporales. Para mencionar otro ejemplo, el numero maximo de capas temporales puede influir en la manera en la que el codificador de video 20 y el descodificador de video 30 codifican identificadores de una imagen de referencia, por ejemplo, usando valores de conteo de orden de imagen (POC).In some examples, the VPS may include data indicative of a maximum number of time layers between layers of a bit stream. That is, video encoder 20 and / or video decoder 30 can be configured to encode a VPS that includes data indicative of a maximum number of time layers for a corresponding bit stream. For example, the video encoder 20 can determine a maximum number of temporary layers and encode the VPS to include data representing the maximum determined number of temporary layers, while the video decoder 30 can decode the VPS to determine the maximum number of temporary layers The video encoder 20 and the video decoder 30 can also encode video data of the bit stream based on the determined maximum number of time layers. For example, the maximum number of temporary layers may influence a certain number of temporary identifiers that are necessary to represent the various temporal layers. To mention another example, the maximum number of time layers can influence the way in which video encoder 20 and video decoder 30 encode identifiers of a reference image, for example, using image order count values ( POC).
Como otro ejemplo mas, el codificador de video 20 y el descodificador de video 30 pueden configurarse para codificar datos de una capa temporal particular usando solamente datos de referencia actuales e incluyendo la misma capa temporal. En otras palabras, el codificador de video 20 y el descodificador de video 30 pueden estar configurados para evitar codificar datos de una capa temporal particular usando los datos de referencia de una capa temporal superior. De esta manera, se puede asegurar que el descodificador de video 30 descodifica con exactitud datos de video de un conjunto dado de capas temporales incluso despues de la extraccion de flujo de bits secundario. Es decir, si se realiza extraccion de flujo de bits secundario, ciertas capas temporales por encima de la capa mas alta del flujo de bits secundario extrafdo no estaran disponibles como referencia. Mediante la codificacion de datos de cada capa temporal solo con referencia a datos de capas en, o por debajo, de la capa actual se pueden evitar errores que de otro modo podrfan ocurrir como consecuencia de tener datos en una capa particular dependiendo de datos de una capa superior, los cuales se perderfan como resultado de la extraccion de flujo de bits secundario.As another example, video encoder 20 and video decoder 30 can be configured to encode data from a particular time layer using only current reference data and including the same time layer. In other words, video encoder 20 and video decoder 30 may be configured to avoid encoding data from a particular time layer using reference data from an upper time layer. In this way, it can be ensured that the video decoder 30 accurately decodes video data from a given set of time layers even after secondary bit stream extraction. That is, if secondary bitstream extraction is performed, certain temporary layers above the highest layer of the extradited secondary bitstream will not be available as a reference. By encoding data from each time layer only with reference to data from layers in, or below, the current layer can avoid errors that could otherwise occur as a result of having data in a particular layer depending on data from one layer. upper layer, which would be lost as a result of secondary bitstream extraction.
En algunos ejemplos, el VPS, adicionalmente o de forma alternativa, incluye datos indicativos, de cualquiera o ambos, entre un cierto numero de imagenes a reordenar en una o mas capas de un flujo de bits y/o un cierto numero de imagenes a almacenar en una memoria intermedia de imagenes descodificadas (DPB). Como se ha indicado anteriormente, tales datos pueden denominarse informacion de restriccion del flujo de bits. De acuerdo con esto, el dispositivo de destino 14 puede determinar las capacidades del descodificador de video 30 y utilizar la informacion de restriccion del flujo de bits para determinar si el flujo de bits correspondiente es apropiado para ser descodificado por el descodificador de video 30, o si el dispositivo de destino 14 deberfa seleccionar contenido alternativo (por ejemplo, de un proveedor de contenido basado en red, suponiendo que estan disponibles versiones multiples del contenido).In some examples, the VPS, additionally or alternatively, includes indicative data, of either or both, between a certain number of images to be rearranged in one or more layers of a bit stream and / or a certain number of images to be stored. in a buffer of decoded images (DPB). As indicated above, such data may be referred to as bit stream restriction information. Accordingly, the destination device 14 can determine the capabilities of the video decoder 30 and use the bit stream restriction information to determine if the corresponding bit stream is appropriate to be decoded by the video decoder 30, or if the destination device 14 should select alternative content (for example, from a network-based content provider, assuming multiple versions of the content are available).
Ademas, el codificador de video 20 y el descodificador de video 30 pueden utilizar la informacion de restriccion del flujo de bits durante la codificacion de los datos de video. Por ejemplo, el codificador de video 20 puede garantizar que no se viola la informacion de restriccion del flujo de bits. Es decir, suponiendo que la informacion de restriccion del flujo de bits indica que al menos N imagenes deben almacenarse en una DPB, el codificador de video 20 puede asegurar que no mas de N imagenes estan incluidas en cualquier combinacion de una o mas listas de imagenes de referencia en un momento dado . Para mencionar otro ejemplo, suponiendo que la informacion de reordenacion de imagen indica que una imagen debe ser desplazada por, al menos, M imagenes, el codificador de video 20 puede asegurar que ninguna imagen se desplace mas de M imagenes. El cambio de imagenes de esta manera, en general, se corresponde con la diferencia entre el orden de descodificacion y el orden de visualizacion de una imagen. El descodificador de video 30, asimismo, puede utilizar dicha informacion durante la codificacion, por ejemplo, para realizar la gestion DPB, tal como el lavado con DPB. El codificador de video 20 y el descodificador de video 30 pueden tambien utilizar informacion de restriccion del flujo de bits, tal como el numero maximo de imagenes que se van a almacenar en el DPB y/o el numero de imagenes a reordenar, al codificar los valores de identificador de la imagen de referencia.In addition, the video encoder 20 and the video decoder 30 can use the bit stream restriction information during the encoding of the video data. For example, video encoder 20 can ensure that the bit stream restriction information is not violated. That is, assuming that bitstream restriction information indicates that at least N images must be stored in a DPB, video encoder 20 can ensure that no more than N images are included in any combination of one or more image lists. of reference at a given time. To mention another example, assuming that the image reordering information indicates that an image must be displaced by at least M images, the video encoder 20 can ensure that no image moves more than M images. Changing images in this way, in general, corresponds to the difference between the decoding order and the display order of an image. The video decoder 30 can also use this information during encoding, for example, to perform DPB management, such as washing with DPB. Video encoder 20 and video decoder 30 may also use bit stream restriction information, such as the maximum number of images to be stored in the DPB and / or the number of images to be reordered, when encoding the identifier values of the reference image.
En algunos ejemplos, el VPS, adicionalmente o de forma alternativa, incluye datos indicativos de parametros de descodificador de referencia hipoteticos (HRD). Los parametros HRD incluyen, por ejemplo, datos que describen tiempos en los que se deben eliminar datos de una memoria intermedia de imagenes codificadas (CPB). En los descodificadores, tales como el descodificador de video 30, la CPB representa una memoria intermedia en la que se almacenan datos de video codificados hasta que los datos estan listos para la descodificacion. Los descodificadores tales como el descodificador de video 30 pueden incluir tambien una memoria intermedia de imagenes descodificadas (DPB), en el que se almacenan datos de video descodificados, por ejemplo, para usarse como datos de referencia de datos interpredichos y para reordenar imagenes de un orden de descodificacion a un orden deIn some examples, the VPS, additionally or alternatively, includes data indicative of hypothetical reference decoder parameters (HRD). HRD parameters include, for example, data describing times at which data from an encoded image buffer (CPB) should be deleted. In decoders, such as video decoder 30, the CPB represents a buffer in which encoded video data is stored until the data is ready for decoding. Decoders such as video decoder 30 may also include a decoded image buffer (DPB), in which decoded video data is stored, for example, to be used as reference data of inter-claimed data and to reorder images of a decoding order to an order of
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
visualizacion.display.
Los parametros HRD pueden incluir datos que indican cuando se deben eliminar las imagenes particulares de la CPB y descodificarlas. De este modo, el codificador de video 20 puede codificar los parametros de HRD del VPS para indicar cuando las imagenes pueden ser eliminadas de la CPB y descodificadas, mientras que el descodificador de video 30 puede descodificar los parametros de HRD del VPS para determinar cuando eliminar las imagenes de la CPB. Del mismo modo, el codificador de video 20 y el descodificador de video 30 pueden codificar imagenes de acuerdo con los parametros de HRD, por ejemplo, en un orden de codificacion indicado por los parametros de HRD. De esta manera, el codificador de video 20 y/o el descodificador de video 30 pueden configurarse para codificar un VPS que incluye parametros de HRD y para codificar datos de video correspondientes a los VPS basandose, al menos en parte, en los parametros de HRD.The HRD parameters may include data indicating when the particular images of the CPB should be deleted and decoded. Thus, the video encoder 20 can encode the HRD parameters of the VPS to indicate when the images can be removed from the CPB and decoded, while the video decoder 30 can decode the HRD parameters of the VPS to determine when to delete the images of the CPB. Similarly, video encoder 20 and video decoder 30 can encode images according to HRD parameters, for example, in an order of encoding indicated by HRD parameters. In this way, the video encoder 20 and / or the video decoder 30 can be configured to encode a VPS that includes HRD parameters and to encode video data corresponding to the VPS based, at least in part, on the HRD parameters .
El VPS tambien puede incluir datos de ampliacion que indican si el VPS se ha ampliado, por ejemplo, para proporcionar datos de una o mas herramientas de codificacion adicionales. Dichas herramientas de codificacion pueden ser herramientas que son diferentes de las de una norma de codificacion de video correspondiente, tal como, por ejemplo, ITU-T H.264/AVC o la proxima norma HEVC. Ademas, tales herramientas de codificacion pueden requerir datos de configuracion. Estos datos de configuracion pueden proporcionarse en los datos de ampliacion de un VPS. De esta manera, al codificar datos de video usando tales herramientas de codificacion, el codificador de video 20 y/o descodificador de video 30 pueden codificar un VPS que indica si hay datos de ampliacion y, si es asf, datos de ampliacion del VPS. Ademas, cuando tales datos de ampliacion estan presentes, el codificador de video 20 y/o el descodificador de video 30 pueden ejecutar las herramientas de codificacion correspondientes para codificar los datos de video usando los datos de ampliacion.The VPS may also include extension data indicating whether the VPS has been extended, for example, to provide data from one or more additional coding tools. Such coding tools may be tools that are different from those of a corresponding video coding standard, such as, for example, ITU-T H.264 / AVC or the next HEVC standard. In addition, such coding tools may require configuration data. This configuration data can be provided in the expansion data of a VPS. Thus, when encoding video data using such encoding tools, the video encoder 20 and / or video decoder 30 can encode a VPS indicating whether there is enlargement data and, if so, VPS enlargement data. In addition, when such magnification data is present, the video encoder 20 and / or the video decoder 30 can execute the corresponding encoding tools to encode the video data using the amplification data.
Varias normas de codificacion de video definen la sintaxis, la semantica y el proceso de descodificacion correspondientes a los flujos de bits libres de errores, cualquiera de los cuales se ajustan a cierto perfil o nivel. Las normas de codificacion de video en general no especifican el codificador, pero el codificador tiene la tarea de garantizar que los flujos de bits generados sean compatibles con un descodificador. En el contexto de las normas de codificacion de video, un "perfil" corresponde a un subconjunto de algoritmos, caractensticas o herramientas y restricciones que se les aplican. Como se define en la norma H.264, por ejemplo, un "perfil" es un subconjunto de toda la sintaxis del flujo de bits especificada por la norma H.264. Un "nivel" corresponde a las limitaciones del consumo de recursos del descodificador, tales como, por ejemplo, memoria de descodificador y calculo, que estan relacionadas con la resolucion de las imagenes, velocidad de bits y velocidad de procesamiento de bloques. Un perfil puede ser senalado con un valor profile_idc (indicador de perfil), mientras que un nivel puede ser senalado con un valor level_idc (indicador de nivel). De acuerdo con las tecnicas de esta divulgacion, la informacion de perfil y nivel se puede especificar en las descripciones de punto de operacion, tal como se ha analizado anteriormente.Several video coding standards define the syntax, semantics and decoding process corresponding to error-free bit streams, any of which conform to a certain profile or level. Video encoding standards generally do not specify the encoder, but the encoder has the task of ensuring that the generated bit streams are compatible with a decoder. In the context of video coding standards, a "profile" corresponds to a subset of algorithms, features or tools and restrictions that apply to them. As defined in the H.264 standard, for example, a "profile" is a subset of the entire bit stream syntax specified by the H.264 standard. A "level" corresponds to the limitations of decoder resource consumption, such as, for example, decoder memory and calculation, which are related to image resolution, bit rate and block processing speed. A profile can be marked with a profile_idc value (profile indicator), while a level can be marked with a level_idc value (level indicator). In accordance with the techniques of this disclosure, profile and level information can be specified in the operating point descriptions, as discussed above.
En algunos ejemplos, cada capa o vista de un flujo de bits se refiere al conjunto de parametros de video (VPS), y un conjunto de parametros de secuencia de capas (LPS) puede estar activo para cada capa. Un LPS puede mantenerse lo mas ligero posible haciendo referencia al VPS en el diseno. El LPS puede incluir cualquiera o toda la informacion analizada a continuacion. El LPS puede incluir una indicacion de dimension de muestra que indica, para cada dimension, un mdice para cada dimension. Por ejemplo, si en un VPS, se asigna un mdice de resolucion espacial 0 a una caractenstica espacial de 320x240 y se asigna un mdice de resolucion espacial 1 a 640x480, y la capa actual se va a asignar con una resolucion de 640x480, el codificador de video 20 y/o el descodificador de video 30 pueden codificar un elemento sintactico con un valor de 1 para la capa actual. Es decir, el codificador de video 20 puede indicar un valor de 1 para que el elemento sintactico especifique la resolucion de 640 x 480, mientras que el descodificador de video 30 puede determinar que, una capa actual con un elemento sintactico con un valor de 1, tiene una resolucion de 640 x 480, basandose en el valor de 1 del elemento sintactico.In some examples, each layer or view of a bit stream refers to the video parameter set (VPS), and a set of layer sequence parameters (LPS) may be active for each layer. An LPS can be kept as light as possible by referring to the VPS in the design. The LPS may include any or all of the information analyzed below. The LPS may include a sample dimension indication indicating, for each dimension, a index for each dimension. For example, if in a VPS, a spatial resolution index 0 is assigned to a spatial characteristic of 320x240 and a spatial resolution index 1 is assigned to 640x480, and the current layer is to be assigned with a resolution of 640x480, the encoder of video 20 and / or video decoder 30 can encode a syntactic element with a value of 1 for the current layer. That is, the video encoder 20 can indicate a value of 1 for the syntactic element to specify the resolution of 640 x 480, while the video decoder 30 can determine that, a current layer with a syntactic element with a value of 1 , has a resolution of 640 x 480, based on the value of 1 of the syntactic element.
El LPS tambien puede incluir parametros de control e indicadores de habilitacion / deshabilitacion de herramientas. Por ejemplo, los parametros de control e indicadores de habilitacion / deshabilitacion de herramientas pueden incluir un pcm_bit_depth_luma_minus1, un pcm_bit_depth_chroma_minus1, un loop_filter_across_slice_flag, un pcm_loop_filter_disable_flag, uno o mas elementos sintacticos relacionados con componentes, unThe LPS can also include control parameters and tool enable / disable indicators. For example, the control parameters and tool enable / disable indicators can include a pcm_bit_depth_luma_minus1, a pcm_bit_depth_chroma_minus1, a loop_filter_across_slice_flag, a pcm_loop_filter_disable_flag, one or more syntactic elements related to
chroma_pred_from_luma_enabled_flag, un sample_adaptive_offset_enabled_flag, unchroma_pred_from_luma_enabled_flag, a sample_adaptive_offset_enabled_flag, a
adaptive_loop_filter_enabled_flag, y una jerarqrna de unidad de codificacion (CU).adaptive_loop_filter_enabled_flag, and a coding unit (CU) hierarchy.
El LPS puede incluir ademas informacion de otros tipos de conjuntos de parametros aplicables a un fragmento, un grupo de fragmentos, una imagen o varias imagenes. Cada uno de estos conjuntos de parametros puede referirse a un conjunto de parametros de imagen espedfico (PPS).The LPS may also include information on other types of parameter sets applicable to a fragment, a group of fragments, an image or several images. Each of these parameter sets can refer to a set of specific image parameters (PPS).
El codificador de video, tal como el codificador de video 20 y el descodificador de video 30, pueden configurarse para asegurar y/o determinar que un PPS no haga referencia a un LPS o un VPS. Por lo tanto, el codificador de video puede garantizar que cada PPS de un flujo de bits no se refiere a un LPS o un VPS. El analisis de un PPS puede ser independiente. Cuando un PPS incluye uno o mas de los mismos elementos sintacticos que los de un VPS o un LPS, los elementos sintacticos del PPS pueden sobrescribir los del VPS o LPS.The video encoder, such as video encoder 20 and video decoder 30, can be configured to ensure and / or determine that a PPS does not refer to an LPS or a VPS. Therefore, the video encoder can guarantee that each PPS of a bit stream does not refer to an LPS or a VPS. The analysis of a PPS can be independent. When a PPS includes one or more of the same syntactic elements as those of a VPS or an LPS, the syntactic elements of the PPS may overwrite those of the VPS or LPS.
Ademas, se puede configurar un codificador de video para codificar un conjunto de parametros de agrupacion (GPS)In addition, a video encoder can be configured to encode a set of grouping parameters (GPS)
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
que agrupa todos los conjuntos de parametros. El codificador de video puede codificar una pluralidad de diferentes grupos dentro del GPS, cada uno de los cuales tiene identificadores (ids) de GPS individuales. Cada uno de los grupos en el GPS puede incluir una combinacion diferente de conjuntos de parametros. De esta manera, una cabecera de fragmento solo tiene que incluir una referencia a un id de GPS correspondiente y no necesita incluir una indicacion de un tipo de conjunto de parametros. La solicitud de patente provisional estadounidense numero de serie 61/590.702, presentada el 25 de enero de 2012, tambien describe tecnicas en las que se agrupan diferentes tipos de conjuntos de parametros y solo el ID del RBSP de agrupacion de conjunto de parametros se senala en la cabecera del fragmento en mayor detalle.which groups all parameter sets. The video encoder can encode a plurality of different groups within the GPS, each of which has individual GPS identifiers (ids). Each of the groups in the GPS can include a different combination of parameter sets. Thus, a fragment header only has to include a reference to a corresponding GPS id and does not need to include an indication of a type of parameter set. US provisional patent application serial number 61 / 590.702, filed on January 25, 2012, also describes techniques in which different types of parameter sets are grouped and only the RBSP ID of the parameter set grouping is indicated in the header of the fragment in greater detail.
Como se ha analizado anteriormente, el codificador de video, tal como el codificador de video 20 o el descodificador de video 30, puede configurarse para codificar un conjunto de parametros de video y/o un conjunto de parametros de agrupacion. Los ejemplos de un conjunto de parametros de video se analizan con mayor detalle con respecto a la FIG. 5, mientras que los ejemplos de un conjunto de parametros de agrupacion se analizan con mayor detalle con respecto a la FIG. 6.As discussed above, the video encoder, such as video encoder 20 or video decoder 30, can be configured to encode a set of video parameters and / or a set of grouping parameters. Examples of a set of video parameters are analyzed in greater detail with respect to FIG. 5, while the examples of a set of grouping parameters are analyzed in greater detail with respect to FIG. 6.
Ademas, el codificador de video 20 puede enviar datos sintacticos, tales como datos sintacticos basados en bloques, datos sintacticos basados en tramas y datos sintacticos basados en GOP, al descodificador de video 30, por ejemplo, en una cabecera de trama, una cabecera de bloque, una cabecera de fragmento o una cabecera de gOp. Los datos sintacticos de GOP pueden describir un cierto numero de tramas en el GOP respectivo, y los datos sintacticos de trama pueden indicar un modo de codificacion/prediccion usado para codificar la trama correspondiente.In addition, the video encoder 20 can send syntactic data, such as block-based syntactic data, frame-based syntactic data and GOP-based syntactic data, to the video decoder 30, for example, in a frame header, a header of block, a fragment header or a gOp header. Syntactic GOP data can describe a certain number of frames in the respective GOP, and syntactic frame data can indicate a coding / prediction mode used to encode the corresponding frame.
El codificador de video 20 y el descodificador de video 30 pueden implementarse, cada uno, como cualquiera entre una amplia variedad de circuitos codificadores o descodificadores adecuados, segun corresponda, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados especfficos de la aplicacion (ASIC), matrices de compuertas programables en el terreno (FPGA), circuitos de logica discreta, software, hardware, firmware o cualquier combinacion de los mismos. Cada uno del codificador de video 20 y el descodificador de video 30, puede estar incluido en uno o mas codificadores o descodificadores, cada uno de los cuales puede estar integrado como parte de un codificador/descodificador (CODEC) de video combinado. Un dispositivo que incluye el codificador de video 20 y/o el descodificador de video 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicacion inalambrica, tal como un telefono celular.The video encoder 20 and the video decoder 30 can each be implemented as any among a wide variety of suitable encoder or decoder circuits, as appropriate, such as one or more microprocessors, digital signal processors (DSP), integrated circuits application specific (ASIC), field programmable gate matrices (FPGA), discrete logic circuits, software, hardware, firmware or any combination thereof. Each of the video encoder 20 and the video decoder 30 may be included in one or more encoders or decoders, each of which may be integrated as part of a combined video encoder / decoder (CODEC). A device that includes video encoder 20 and / or video decoder 30 may comprise an integrated circuit, a microprocessor and / or a wireless communication device, such as a cell phone.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo del codificador de video 20 que puede implementar tecnicas para la codificacion de conjuntos de parametros y unidades NAL para una o mas capas de datos de video. El codificador de video 20 puede realizar intracodificacion e intercodificacion de bloques de video dentro de fragmentos de video. La intracodificacion se basa en la prediccion espacial para reducir o eliminar la redundancia espacial en el video dentro de una trama o imagen de video dada. La intercodificacion se basa en la prediccion temporal para reducir o eliminar la redundancia temporal en el video dentro de tramas o imagenes adyacentes de una secuencia de video. La intramodalidad (modalidad I) puede referirse a cualquiera de varias modalidades de compresion de base espacial. Los intermodos, tales como la prediccion unidireccional (modo P) o la bi-prediccion (modo B), pueden referirse a cualquiera de varios modos de codificacion de base temporal.FIG. 2 is a block diagram illustrating an example of video encoder 20 that can implement techniques for encoding sets of parameters and NAL units for one or more layers of video data. The video encoder 20 can perform intracoding and intercoding of video blocks within video fragments. Intracoding is based on spatial prediction to reduce or eliminate spatial redundancy in the video within a given frame or video image. Intercoding is based on temporal prediction to reduce or eliminate temporal redundancy in the video within frames or adjacent images of a video sequence. Intramodality (modality I) may refer to any of several spatial base compression modalities. Intermodos, such as unidirectional prediction (P mode) or bi-prediction (B mode), can refer to any of several time base coding modes.
Como se muestra en la FIG. 2, el codificador de video 20 recibe un bloque de video actual dentro de una trama de video a codificar. En el ejemplo de la FIG. 2, el codificador de video 20 incluye una unidad de seleccion de modo 40, una memoria de imagenes de referencia 64, un sumador 50, una unidad de procesamiento de transformacion 52, una unidad de cuantizacion 54 y una unidad de codificacion por entropfa 56. A su vez, la unidad de seleccion de modo 40 incluye una unidad de compensacion de movimiento 44, una unidad de estimacion de movimiento 42, una unidad de intraprediccion 46 y una unidad de division 48. Para la reconstruccion de bloques de video, el codificador de video 20 incluye ademas una unidad de cuantizacion inversa 58, una unidad de transformacion inversa 60 y un sumador 62. Tambien puede incluirse un filtro de desbloqueo (no se muestra en la FIG. 2) para filtrar lfmites de bloque, para eliminar distorsiones de efecto pixelado del video reconstruido. Si se desea, el filtro de desbloqueo filtrara tfpicamente la salida del sumador 62. Tambien pueden usarse filtros adicionales (en bucle o pos-bucle), ademas del filtro de desbloqueo. Dichos filtros no se muestran por razones de brevedad pero, si se desea, pueden filtrar la salida del sumador 50 (tal como un filtro en bucle).As shown in FIG. 2, video encoder 20 receives a current video block within a frame of video to be encoded. In the example of FIG. 2, the video encoder 20 includes a mode selection unit 40, a reference image memory 64, an adder 50, a transformation processing unit 52, a quantization unit 54 and an entropy coding unit 56. In turn, the mode selection unit 40 includes a motion compensation unit 44, a motion estimation unit 42, an intra-prediction unit 46 and a division unit 48. For the reconstruction of video blocks, the encoder Video 20 also includes an inverse quantization unit 58, an inverse transformation unit 60 and an adder 62. An unblocking filter (not shown in FIG. 2) can also be included to filter block limits, to eliminate distortions of Pixelated effect of the reconstructed video. If desired, the unblocking filter will typically filter the output of adder 62. Additional filters (in loop or post-loop) may also be used, in addition to the unblocking filter. Such filters are not shown for reasons of brevity but, if desired, they can filter the output of adder 50 (such as a loop filter).
Durante el proceso de codificacion, el codificador de video 20 recibe una trama o un fragmento de video que va a codificarse. La trama o el fragmento puede estar dividido en multiples bloques de video. La unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 llevan a cabo la codificacion interpredictiva del bloque de video recibido, con respecto a uno o mas bloques de una o mas tramas de referencia, para proporcionar la prediccion temporal. La unidad de intraprediccion 46, como alternativa, puede llevar a cabo la codificacion intrapredictiva del bloque de video recibido, con respecto a uno o mas bloques contiguos de la misma trama o fragmento que el bloque que va a codificarse, para proporcionar la prediccion espacial. El codificador de video 20 puede llevar a cabo multiples pasadas de codificacion, por ejemplo, para seleccionar un modo de codificacion adecuada para cada bloque de datos de video.During the encoding process, the video encoder 20 receives a frame or a video fragment to be encoded. The plot or fragment can be divided into multiple blocks of video. The motion estimation unit 42 and the motion compensation unit 44 perform the interpredictive encoding of the received video block, with respect to one or more blocks of one or more reference frames, to provide the temporal prediction. The intraprediction unit 46, as an alternative, can perform the intrapredictive encoding of the received video block, with respect to one or more contiguous blocks of the same frame or fragment as the block to be encoded, to provide the spatial prediction. The video encoder 20 can carry out multiple encoding passes, for example, to select a suitable encoding mode for each block of video data.
Ademas, la unidad de division 48 puede dividir bloques de datos de video en sub-bloques, basandose en laIn addition, the division unit 48 can divide blocks of video data into sub-blocks, based on the
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
evaluacion de los anteriores esquemas de division en las pasadas de codificacion anteriores. Por ejemplo, la unidad de division 48 puede dividir inicialmente una trama o un fragmento en varias LCU, y dividir cada una de las LCU en varias sub-CU, basandose en un analisis de distorsion de velocidad (por ejemplo, optimizacion de distorsion de velocidad). La unidad de seleccion de modo 40 puede producir ademas una estructura de datos de arbol cuadruple que indica la division de una LCU en varias sub-CU. Las CU de nodos de hojas del arbol cuadruple pueden incluir una o mas PU y una o mas TU.evaluation of the previous division schemes in the previous coding passes. For example, the division unit 48 may initially divide a frame or a fragment into several LCUs, and divide each of the LCUs into several sub-CUs, based on a velocity distortion analysis (for example, velocity distortion optimization ). The mode selection unit 40 can also produce a quad-tree data structure indicating the division of an LCU into several sub-CUs. The CU of leaf nodes of the quad tree may include one or more PU and one or more TU.
La unidad de seleccion de modo 40 puede seleccionar uno de los modos de codificacion, intra o inter, por ejemplo, en funcion de los resultados de error, y proporciona el bloque intracodificado o intercodificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para usarse como una trama de referencia. La unidad de seleccion de modalidad 40 proporciona ademas elementos sintacticos, tales como vectores de movimiento, indicadores de intramodalidad, informacion de division y otra informacion sintactica de este tipo, a la unidad de codificacion por entropfa 56.The mode selection unit 40 may select one of the coding modes, intra or inter, for example, depending on the error results, and provides the resulting intracoded or intercoded block to adder 50 to generate residual block data and to the adder 62 to reconstruct the encoded block to be used as a reference frame. The mode selection unit 40 also provides syntactic elements, such as motion vectors, intramodality indicators, division information and other such syntactic information, to the entropy coding unit 56.
La unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 pueden estar sumamente integradas, pero se ilustran por separado con fines conceptuales. La estimacion de movimiento, realizada por la unidad de estimacion de movimiento 42, es el proceso de generacion de vectores de movimiento, que estiman el movimiento de los bloques de video. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de video dentro de una trama o imagen actual de video, con respecto a un bloque predictivo dentro de una trama de referencia (u otra unidad codificada), con respecto al bloque actual que esta siendo codificado dentro de la trama actual (u otra unidad codificada). Un bloque predictivo es un bloque que se revela como estrechamente coincidente con el bloque a codificar en lo que respecta a la diferencia de pfxeles, que puede determinarse mediante la suma de una diferencia absoluta (SAD), una suma de diferencia de cuadrados (SSD) u otras metricas de diferencia. En algunos ejemplos, el codificador de video 20 puede calcular valores de posiciones de pixel subentero de las imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. Por ejemplo, el codificador de video 20 puede interpolar valores de posiciones de un cuarto de pixel, posiciones de un octavo de pixel u otras posiciones de pixel fraccionarias de la imagen de referencia. Por lo tanto, la unidad de estimacion de movimiento 42 puede realizar una busqueda de movimiento con respecto a las posiciones de pixel completo y a las posiciones de pixel fraccionario, y emitir un vector de movimiento con una precision de pixel fraccionario.The motion estimation unit 42 and the movement compensation unit 44 may be highly integrated, but are illustrated separately for conceptual purposes. The motion estimation, performed by the motion estimation unit 42, is the process of generating motion vectors, which estimate the movement of the video blocks. A motion vector, for example, may indicate the displacement of a PU from a video block within a current video frame or image, relative to a predictive block within a reference frame (or other encoded unit), with with respect to the current block that is being encoded within the current frame (or other encoded unit). A predictive block is a block that is revealed to be closely coincident with the block to be encoded in regards to the pixel difference, which can be determined by the sum of an absolute difference (SAD), a sum of square difference (SSD) or other difference metrics. In some examples, the video encoder 20 can calculate values of sub-pixel pixel positions of the reference images stored in the reference image memory 64. For example, the video encoder 20 can interpolate values of positions of a quarter pixel , positions of an eighth pixel or other fractional pixel positions of the reference image. Therefore, the motion estimation unit 42 can perform a motion search with respect to the full pixel positions and the fractional pixel positions, and emit a motion vector with a fractional pixel precision.
La unidad de estimacion de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video de un fragmento sometido a intercodificacion, comparando la posicion de la PU con la posicion de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse entre una primera lista de imagenes de referencia (lista 0) o una segunda lista de imagenes de referencia (lista 1), cada una de las cuales identifica una o mas imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. La unidad de estimacion de movimiento 42 envfa el vector de movimiento calculado a la unidad de codificacion por entropfa 56 y a la unidad de compensacion de movimiento 44.The motion estimation unit 42 calculates a motion vector for a PU of a video block of an intercoded fragment, comparing the position of the PU with the position of a predictive block of a reference image. The reference image can be selected from a first list of reference images (list 0) or a second list of reference images (list 1), each of which identifies one or more reference images stored in the image memory of reference 64. The motion estimation unit 42 sends the calculated motion vector to the entropy coding unit 56 and to the motion compensation unit 44.
La compensacion de movimiento, llevada a cabo por la unidad de compensacion de movimiento 44, puede implicar capturar o generar el bloque predictivo basandose en el vector de movimiento determinado por la unidad de estimacion de movimiento 42. De nuevo, la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 pueden integrarse funcionalmente, en algunos ejemplos. Tras recibir el vector de movimiento para la PU del bloque de video actual, la unidad de compensacion de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imagenes de referencia. El sumador 50 forma un bloque de video residual restando los valores de pixel del bloque predictivo a los valores de pixel del bloque de video actual que esta siendo codificado, generando valores de diferencia de pixel, como se analiza posteriormente. En general, la unidad de estimacion de movimiento 42 lleva a cabo la estimacion de movimiento con respecto a los componentes de luma, y la unidad de compensacion de movimiento 44 utiliza los vectores de movimiento calculados basandose en los componentes de luma, tanto para los componentes de croma como para los componentes de luma. La unidad de seleccion de modalidad 40 tambien puede generar elementos sintacticos asociados a los bloques de video y al fragmento de video para su uso por parte del descodificador de video 30 a la hora de descodificar los bloques de video del fragmento de video.Motion compensation, performed by the motion compensation unit 44, may involve capturing or generating the predictive block based on the motion vector determined by the motion estimation unit 42. Again, the motion estimation unit 42 and the movement compensation unit 44 can be functionally integrated, in some examples. After receiving the motion vector for the PU of the current video block, the motion compensation unit 44 can locate the predictive block pointed to by the motion vector in one of the reference image lists. Adder 50 forms a residual video block by subtracting the pixel values of the predictive block from the pixel values of the current video block being encoded, generating pixel difference values, as discussed below. In general, the motion estimation unit 42 performs the motion estimation with respect to the luma components, and the motion compensation unit 44 uses the calculated motion vectors based on the luma components, both for the components of chroma as for luma components. The mode selection unit 40 can also generate syntactic elements associated with the video blocks and the video fragment for use by the video decoder 30 when decoding the video blocks of the video fragment.
La unidad de intraprediccion 46 puede intrapredecir un bloque actual, como alternativa a la interprediccion llevada a cabo por la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44, como se ha descrito anteriormente. En particular, la unidad de intraprediccion 46 puede determinar una modalidad de intraprediccion a usar para codificar un bloque actual. En algunos ejemplos, la unidad de intraprediccion 46 puede codificar un bloque actual usando varias modalidades de intraprediccion, por ejemplo, durante diferentes pasadas de codificacion, y la unidad de intraprediccion 46 (o la unidad de seleccion de modalidad 40, en algunos ejemplos) puede seleccionar una modalidad adecuada de intraprediccion a usar entre las modalidades probadas.The intraprediction unit 46 can intra-predict a current block, as an alternative to the interprediction carried out by the motion estimation unit 42 and the movement compensation unit 44, as described above. In particular, the intraprediction unit 46 can determine an intraprediction modality to be used to encode a current block. In some examples, the intraprediction unit 46 may encode a current block using various intraprediction modalities, for example, during different coding passes, and the intraprediction unit 46 (or the mode selection unit 40, in some examples) may select an appropriate intraprediction modality to use among the modalities tested.
Por ejemplo, la unidad de intraprediccion 46 puede calcular valores de velocidad-distorsion usando un analisis de velocidad-distorsion para las diversas modalidades de intraprediccion probadas, y seleccionar la modalidad de intraprediccion que tenga las mejores caracterfsticas de velocidad-distorsion entre las modalidades probadas. El analisis de velocidad-distorsion determina en general una magnitud de distorsion (o errores) entre un bloqueFor example, the intraprediction unit 46 can calculate velocity-distortion values using a velocity-distortion analysis for the various intraprediction modalities tested, and select the intraprediction modality that has the best velocity-distortion characteristics among the modalities tested. The speed-distortion analysis generally determines a magnitude of distortion (or errors) between a block
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
codificado y un bloque original, no codificado, que se codifico para generar el bloque codificado, asf como una velocidad binaria (es decir, un cierto numero de bits) usada para generar el bloque codificado. La unidad de intraprediccion 46 puede calcular proporciones a partir de las distorsiones y velocidades de los diversos bloques codificados para determinar que modalidad de intraprediccion presenta el mejor valor de velocidad-distorsion para el bloque.encoded and an original, uncoded block, which was encoded to generate the encoded block, as well as a bit rate (i.e., a certain number of bits) used to generate the encoded block. The intraprediction unit 46 can calculate proportions from the distortions and speeds of the various coded blocks to determine which intraprediction mode has the best velocity-distortion value for the block.
Despues de seleccionar una modalidad de intraprediccion para un bloque, la unidad de intraprediccion 46 puede proporcionar informacion, indicativa de la modalidad de intraprediccion seleccionada para el bloque, a la unidad de codificacion por entropfa 56. La unidad de codificacion por entropfa 56 puede codificar la informacion que indica la modalidad de intraprediccion seleccionada. El codificador de video 20 puede incluir datos de configuracion de flujo de bits transmitido, que pueden incluir una pluralidad de tablas de indices de modalidades de intraprediccion y una pluralidad de tablas de indices de modalidades de intraprediccion modificadas (tambien denominadas tablas de asignacion de palabras de codigo), definiciones de contextos de codificacion para varios bloques e indicaciones de una modalidad de intraprediccion mas probable, una tabla de indices de modalidades de intraprediccion y una tabla modificada de indices de modalidades de intraprediccion, a usar en cada uno de los contextos.After selecting an intraprediction mode for a block, the intraprediction unit 46 can provide information, indicative of the intraprediction mode selected for the block, to the entropy coding unit 56. The entropy coding unit 56 can encode the information indicating the selected intraprediction modality. The video encoder 20 may include transmitted bitstream configuration data, which may include a plurality of index tables of intraprediction modalities and a plurality of index tables of modified intraprediction modalities (also referred to as word assignment tables of code), definitions of coding contexts for several blocks and indications of a more probable intraprediction modality, a table of indices of intraprediction modalities and a modified table of indices of intraprediction modalities, to be used in each of the contexts.
El codificador de video 20 forma un bloque de video residual restando los datos de prediccion de la unidad de seleccion de modalidad 40 a partir del bloque de video original que esta siendo codificado. El sumador 50 representa el componente o los componentes que realizan esta operacion de resta. La unidad de procesamiento de transformaciones 52 aplica una transformacion, tal como una transformacion discreta del coseno (DCT) o una transformacion conceptualmente similar al bloque residual, generando un bloque de video que comprende valores residuales de coeficientes de transformacion. La unidad de procesamiento de transformaciones 52 puede llevar a cabo otras transformaciones que son conceptualmente similares a la DCT. Tambien podrfan usarse transformaciones de ondfculas, transformaciones de enteros, transformaciones de subbandas u otros tipos de transformaciones.The video encoder 20 forms a residual video block by subtracting the prediction data of the mode selection unit 40 from the original video block being encoded. Adder 50 represents the component or components that perform this subtraction operation. The transformation processing unit 52 applies a transformation, such as a discrete cosine transformation (DCT) or a conceptually similar transformation to the residual block, generating a video block comprising residual values of transformation coefficients. The transformation processing unit 52 may carry out other transformations that are conceptually similar to the DCT. Transformations of ondfculas, transformations of integers, transformations of subbands or other types of transformations could also be used.
En cualquier caso, la unidad de procesamiento de transformaciones 52 aplica la transformacion al bloque residual, generando un bloque de coeficientes de transformacion residuales. La transformacion puede convertir la informacion residual, desde un dominio de valores de pixel a un dominio de transformaciones, como un dominio de frecuencia. La unidad de procesamiento de transformaciones 52 puede enviar los coeficientes de transformacion resultantes a la unidad de cuantizacion 54. La unidad de cuantizacion 54 cuantiza los coeficientes de transformacion para reducir adicionalmente la velocidad de bits. El proceso de cuantizacion puede reducir la profundidad de bits asociada a algunos de, o a todos, los coeficientes. El grado de cuantizacion puede modificarse ajustando un parametro de cuantizacion. En algunos ejemplos, la unidad de cuantizacion 54 puede realizar, a continuacion, una exploracion de la matriz que incluye los coeficientes de transformada cuantizados. De forma alternativa, la unidad de codificacion por entropfa 56 puede realizar la exploracion.In any case, the transformation processing unit 52 applies the transformation to the residual block, generating a block of residual transformation coefficients. The transformation can convert residual information, from a domain of pixel values to a domain of transformations, such as a frequency domain. The transformation processing unit 52 can send the resulting transformation coefficients to the quantization unit 54. The quantization unit 54 quantizes the transformation coefficients to further reduce the bit rate. The quantization process can reduce the bit depth associated with some, or all, of the coefficients. The degree of quantization can be modified by adjusting a quantization parameter. In some examples, the quantization unit 54 can then perform a matrix scan that includes the quantized transform coefficients. Alternatively, the entropy coding unit 56 can perform the scan.
Tras la cuantizacion, la unidad de codificacion por entropfa 56 codifica por entropfa los coeficientes de transformacion cuantizados. Por ejemplo, la unidad de codificacion por entropfa 56 puede llevar a cabo la codificacion de longitud variable adaptativa al contexto (CAVLC), la codificacion aritmetica binaria adaptativa al contexto (CABAC), la codificacion aritmetica binaria adaptativa al contexto y basada en sintaxis (SBAC), la codificacion por entropfa mediante la division en intervalos de probabilidades (PIPE) u otra tecnica de codificacion por entropfa. En el caso de la codificacion por entropfa basada en el contexto, el contexto puede basarse en bloques contiguos. Tras la codificacion por entropfa realizada por la unidad de codificacion por entropfa 56, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, el descodificador de video 30) o archivarse para su posterior transmision o recuperacion.After quantization, the entropy coding unit 56 encodes the quantized transformation coefficients entropy. For example, the entropy coding unit 56 can perform context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), context-adaptive and syntax-based binary arithmetic coding (SBAC) ), entropy coding by dividing into probability intervals (PIPE) or other entropy coding technique. In the case of context-based entropy coding, the context can be based on contiguous blocks. After the entropy coding performed by the entropy coding unit 56, the encoded bit stream can be transmitted to another device (for example, video decoder 30) or archived for later transmission or recovery.
La unidad de cuantizacion inversa 58 y la unidad de transformacion inversa 60 aplican la cuantizacion inversa y la transformacion inversa, respectivamente, para reconstruir el bloque residual en el dominio de pfxeles, por ejemplo, para su uso posterior como un bloque de referencia. La unidad de compensacion de movimiento 44 puede calcular un bloque de referencia anadiendo el bloque residual a un bloque predictivo de una de las tramas de la memoria de imagenes de referencia 64. La unidad de compensacion de movimiento 44 tambien puede aplicar uno o mas filtros de interpolacion al bloque residual reconstruido para calcular valores de pixel subentero y usarlos en la estimacion de movimiento. El sumador 62 anade el bloque residual reconstruido al bloque de prediccion compensado por movimiento, generado por la unidad de compensacion de movimiento 44, para generar un bloque de video reconstruido para su almacenamiento en la memoria de imagenes de referencia 64. El bloque de video reconstruido puede ser usado por la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 como un bloque de referencia para intercodificar un bloque de una trama de video posterior.The inverse quantization unit 58 and the inverse transformation unit 60 apply inverse quantization and inverse transformation, respectively, to reconstruct the residual block in the pixel domain, for example, for later use as a reference block. The motion compensation unit 44 can calculate a reference block by adding the residual block to a predictive block of one of the frames of the reference image memory 64. The motion compensation unit 44 can also apply one or more filters of interpolation to the reconstructed residual block to calculate upstream pixel values and use them in motion estimation. Adder 62 adds the reconstructed residual block to the motion-compensated prediction block, generated by the motion compensation unit 44, to generate a reconstructed video block for storage in the reference image memory 64. The reconstructed video block It can be used by the motion estimation unit 42 and the motion compensation unit 44 as a reference block for intercoding a block of a subsequent video frame.
El codificador de video 20 puede configurarse adicionalmente para codificar un conjunto de parametros de video (VPS), un conjunto de parametros de capa (LPS) y/o un conjunto de parametros de agrupacion, de acuerdo con las tecnicas de esta divulgacion, asf como un conjunto de parametros de secuencia SPS), un conjunto de parametros de imagen (PPS), un conjunto de parametros de adaptacion (APS) u otras estructuras de datos de senalizacion de este tipo. Mas particularmente, la unidad de codificacion por entropfa 56 puede estar configurada para codificar cualquiera de, o todas, estas estructuras de datos. En la medida en que los parametros de estas diversas estructuras de datos pueden afectar al rendimiento de codificacion, la unidad de seleccion de modo 40 puedeThe video encoder 20 can be further configured to encode a set of video parameters (VPS), a set of layer parameters (LPS) and / or a set of grouping parameters, in accordance with the techniques of this disclosure, as well as a set of SPS sequence parameters), a set of image parameters (PPS), a set of adaptation parameters (APS) or other signaling data structures of this type. More particularly, the entropy coding unit 56 may be configured to encode any or all of these data structures. To the extent that the parameters of these various data structures can affect the encoding performance, the mode selection unit 40 can
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
seleccionar parametros apropiados y pasar los parametros a la unidad de codificacion por entropfa 56 para su inclusion dentro, por ejemplo, de un VPS. Un usuario, por ejemplo un administrador, puede seleccionar otros parametros, tales como un cierto numero de capas temporales, un cierto numero de imagenes a reordenar y un cierto numero de imagenes a almacenar en una memoria intermedia de imagenes descodificadas. En otros ejemplos, ciertos parametros, como los parametros HRD, pueden surgir a traves del proceso de codificacion.select appropriate parameters and pass the parameters to the entropy coding unit 56 for inclusion within, for example, a VPS. A user, for example an administrator, can select other parameters, such as a certain number of temporal layers, a certain number of images to be rearranged and a certain number of images to be stored in an intermediate memory of decoded images. In other examples, certain parameters, such as HRD parameters, may arise through the coding process.
La unidad de codificacion por entropfa 56 puede codificar un VPS para incluir cualquiera de, o todos, los diversos tipos de datos descritos en esta divulgacion. El codificador de video 20 tambien puede codificar datos de acuerdo con los parametros del VPS. Mas en particular, el codificador de video 20 puede codificar secuencias de imagenes entre una o mas capas de datos de video a las que corresponde el VPS de acuerdo con los parametros del VPS.The entropy coding unit 56 may encode a VPS to include any or all of the various types of data described in this disclosure. The video encoder 20 can also encode data according to the VPS parameters. More particularly, the video encoder 20 can encode image sequences between one or more layers of video data to which the VPS corresponds according to the VPS parameters.
De esta manera, el codificador de video 20 de la FIG. 2 representa un ejemplo de un codificador de video configurado para codificar un conjunto de parametros de video (VPS) para una o mas capas de datos de video, en el que cada una de una o mas capas de datos de video se refiere al VPS, y codificar una o mas capas de datos de video basandose, al menos en parte, en el VPS.Thus, the video encoder 20 of FIG. 2 represents an example of a video encoder configured to encode a set of video parameters (VPS) for one or more layers of video data, in which each one or more layers of video data refers to the VPS, and encode one or more layers of video data based, at least in part, on the VPS.
Aunque en general se describe con respecto a un codificador de video, la codificacion de un VPS puede ser realizada por otros dispositivos, por ejemplo, un elemento de red de soporte de medios (MANE). Un MANE puede corresponder a un elemento de red entre un dispositivo fuente (como el dispositivo fuente 12 de la FIG. 1) y un dispositivo de destino (como el dispositivo de destino 14). El MANE puede configurarse para codificar un VPS de acuerdo con las tecnicas de esta divulgacion. El MANE puede generar el VPS utilizando datos de otras estructuras de datos recibidas por el MANE, por ejemplo, conjuntos de parametros de secuencia.Although generally described with respect to a video encoder, the encoding of a VPS can be performed by other devices, for example, a media support network element (MANE). A MANE may correspond to a network element between a source device (such as source device 12 of FIG. 1) and a destination device (such as destination device 14). The MANE can be configured to encode a VPS in accordance with the techniques of this disclosure. The MANE can generate the VPS using data from other data structures received by the MANE, for example, sets of sequence parameters.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo del descodificador de video 30 que puede implementar las tecnicas de codificacion de conjuntos de parametros y unidades NAL para una o mas capas de datos de video. En el ejemplo de la FIG. 3, el descodificador de video 30 incluye una unidad de descodificacion por entropfa 70, una unidad de compensacion de movimiento 72, una unidad de intraprediccion 74, una unidad de cuantizacion inversa 76, una unidad transformada inversa 78, una memoria de imagenes de referencia 82 y un sumador 80. La memoria de imagenes de referencia 82 tambien se puede denominar "memoria intermedia de imagenes descodificadas" o DPB. En algunos ejemplos, el descodificador de video 30 puede llevar a cabo una pasada de descodificacion en general recfproca a la pasada de codificacion descrita con respecto al codificador de video 20 (FIG. 2). La unidad de compensacion de movimiento 72 puede generar datos de prediccion basados en vectores de movimiento recibidos desde la unidad de descodificacion por entropfa 70, mientras que la unidad de intraprediccion 74 puede generar datos de prediccion basados en indicadores de modalidad de intraprediccion recibidos desde la unidad de descodificacion por entropfa 70.FIG. 3 is a block diagram illustrating an example of video decoder 30 that can implement the coding techniques of sets of parameters and NAL units for one or more layers of video data. In the example of FIG. 3, the video decoder 30 includes an entropy decoding unit 70, a motion compensation unit 72, an intra-prediction unit 74, an inverse quantization unit 76, an inverse transformed unit 78, a reference image memory 82 and an adder 80. The reference image memory 82 may also be referred to as "decoded image buffer" or DPB. In some examples, the video decoder 30 may perform a decoding pass in general reciprocal to the encoding pass described with respect to the video encoder 20 (FIG. 2). The motion compensation unit 72 can generate prediction data based on motion vectors received from the entropy decoding unit 70, while the intraprediction unit 74 can generate prediction data based on intraprediction mode indicators received from the unit of decoding by entropy 70.
Durante el proceso de descodificacion, el descodificador de video 30 recibe un flujo de bits de video codificado que representa bloques de video de un fragmento de video codificado y elementos sintacticos asociados desde el codificador de video 20. La unidad de descodificacion por entropfa 70 del descodificador de video 30 descodifica por entropfa el flujo de bits para generar coeficientes cuantizados, vectores de movimiento o indicadores de modalidad de intraprediccion y otros elementos sintacticos. La unidad de descodificacion por entropfa 70 remite los vectores de movimiento y otros elementos sintacticos a la unidad de compensacion de movimiento 72. El descodificador de video 30 puede recibir los elementos sintacticos al nivel del fragmento de video y/o el nivel del bloque de video.During the decoding process, the video decoder 30 receives a bit stream of encoded video representing video blocks of an encoded video fragment and associated syntactic elements from the video encoder 20. The entropy decoding unit 70 of the decoder Video 30 decodes the bit stream entropy to generate quantized coefficients, motion vectors or intraprediction mode indicators and other syntactic elements. The entropy decoding unit 70 refers the motion vectors and other syntactic elements to the motion compensation unit 72. The video decoder 30 can receive the syntactic elements at the level of the video fragment and / or the level of the video block .
Cuando el fragmento de video se codifica como un fragmento intracodificado (I), la unidad de intraprediccion 74 puede generar datos de prediccion para un bloque de video del fragmento de video actual, basandose en una modalidad de intraprediccion senalada, y datos de bloques previamente descodificados de la trama o imagen actual. Cuando la trama de video se codifica como un fragmento intercodificado (es decir, B, P o GPB), la unidad de compensacion de movimiento 72 genera bloques predictivos para un bloque de video del fragmento de video actual, basandose en los vectores de movimiento y a otros elementos sintacticos recibidos desde la unidad de descodificacion por entropfa 70. Los bloques predictivos pueden ser generados a partir de una de las imagenes de referencia dentro de una de las listas de imagenes de referencia. El descodificador de video 30 puede construir las listas de tramas de referencia, la Lista 0 y la Lista 1, usando tecnicas de construccion por omision, basandose en las imagenes de referencia almacenadas en la memoria de imagenes de referencia 82.When the video fragment is encoded as an intracoded fragment (I), the intraprediction unit 74 can generate prediction data for a video block of the current video fragment, based on a designated intraprediction mode, and previously decoded block data of the current plot or image. When the video frame is encoded as an intercoded fragment (i.e., B, P or GPB), the motion compensation unit 72 generates predictive blocks for a video block of the current video fragment, based on the motion vectors already other syntactic elements received from the entropy decoding unit 70. Predictive blocks can be generated from one of the reference images within one of the reference image lists. The video decoder 30 can construct the reference frame lists, List 0 and List 1, using default construction techniques, based on the reference images stored in the reference image memory 82.
La unidad de compensacion de movimiento 72 determina la informacion de prediccion para un bloque de video del fragmento de video actual, analizando los vectores de movimiento y otros elementos sintacticos, y usa la informacion de prediccion para generar los bloques predictivos del bloque de video actual que esta siendo descodificado. Por ejemplo, la unidad de compensacion de movimiento 72 usa algunos de los elementos sintacticos recibidos para determinar un modo de prediccion (por ejemplo, intraprediccion o interprediccion), usada para codificar los bloques de video del fragmento de video, un tipo de fragmento de interprediccion (por ejemplo, fragmento B, fragmento P o fragmento GPB), informacion de construccion para una o mas de las listas de imagenes de referencia del fragmento, vectores de movimiento para cada bloque de video intercodificado del fragmento, el estado de interprediccion para cada bloque de video intercodificado del fragmento y otra informacion para descodificar los bloques de video del fragmento de video actual.The motion compensation unit 72 determines the prediction information for a video block of the current video fragment, analyzing the motion vectors and other syntactic elements, and uses the prediction information to generate the predictive blocks of the current video block that It is being decoded. For example, the motion compensation unit 72 uses some of the received syntactic elements to determine a prediction mode (for example, intraprediction or interprediction), used to encode the video blocks of the video fragment, a type of interprediction fragment (for example, fragment B, fragment P or fragment GPB), construction information for one or more of the reference image lists of the fragment, motion vectors for each block of intercoded video of the fragment, the state of interprediction for each block of intercoded video of the fragment and other information to decode the video blocks of the current video fragment.
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
La unidad de compensacion de movimiento 72 tambien puede realizar la interpolacion basandose en filtros de interpolacion. La unidad de compensacion de movimiento 72 puede usar filtros de interpolacion, como los usados por el codificador de video 20 durante la codificacion de los bloques de video, para calcular valores interpolados de pfxeles subenteros de los bloques de referencia. En este caso, la unidad de compensacion de movimiento 72 puede determinar los filtros de interpolacion usados por el codificador de video 20 a partir de los elementos sintacticos recibidos y usar los filtros de interpolacion para generar bloques predictivos.The motion compensation unit 72 can also perform interpolation based on interpolation filters. The motion compensation unit 72 may use interpolation filters, such as those used by the video encoder 20 during the encoding of the video blocks, to calculate interpolated values of upstream pixels of the reference blocks. In this case, the motion compensation unit 72 can determine the interpolation filters used by the video encoder 20 from the received syntactic elements and use the interpolation filters to generate predictive blocks.
La unidad de cuantizacion inversa 76 cuantiza de manera inversa, es decir, descuantiza, los coeficientes de transformacion cuantizados, proporcionados en el flujo de bits y descodificados por la unidad de descodificacion por entropfa 80. El proceso de cuantizacion inversa puede incluir el uso de un parametro de cuantizacion QPY, calculado por el descodificador de video 30 de cada bloque de video en el fragmento de video para determinar un grado de cuantizacion y, asimismo, un grado de cuantizacion inversa que deberfa aplicarse. La unidad de transformacion inversa 78 aplica una transformacion inversa, por ejemplo, una DCT inversa, una transformacion inversa entera o un proceso de transformacion inversa conceptualmente similar a los coeficientes de transformacion con el fin de generar bloques residuales en el dominio de pfxeles.The inverse quantization unit 76 quantifies inversely, that is, it quantifies, the quantized transformation coefficients, provided in the bit stream and decoded by the entropy decoding unit 80. The inverse quantization process may include the use of a QPY quantization parameter, calculated by the video decoder 30 of each video block in the video fragment to determine a degree of quantization and, also, a degree of inverse quantization that should be applied. The inverse transformation unit 78 applies an inverse transformation, for example, an inverse DCT, an entire inverse transformation or an inverse transformation process conceptually similar to the transformation coefficients in order to generate residual blocks in the pixel domain.
Despues de que la unidad de compensacion de movimiento 72 genera el bloque predictivo del bloque de video actual, basandose en los vectores de movimiento y a otros elementos sintacticos, el descodificador de video 30 forma un bloque de video descodificado sumando los bloques residuales procedentes de la unidad de transformacion inversa 78 y los correspondientes bloques predictivos generados por la unidad de compensacion de movimiento 72. El sumador 90 representa el componente o los componentes que llevan a cabo esta operacion de suma. Si se desea, tambien puede aplicarse un filtro de desbloqueo para filtrar los bloques descodificados con el fin de eliminar distorsiones de efecto pixelado. Tambien pueden utilizarse otros filtros de bucle (ya sea en el bucle de codificacion o despues del bucle de codificacion) para suavizar las transiciones de pfxeles, o mejorar de otro modo la calidad del video. Los bloques de video descodificados de una trama o imagen dada son a continuacion almacenados en la memoria de imagenes de referencia 82, que almacena imagenes de referencia usadas para la posterior compensacion de movimiento. La memoria de imagenes de referencia 82 almacena tambien video descodificado para su presentacion posterior en un dispositivo de visualizacion, tal como el dispositivo de visualizacion 32 de la FIG. 1.After the motion compensation unit 72 generates the predictive block of the current video block, based on the motion vectors and other syntactic elements, the video decoder 30 forms a block of decoded video by adding the residual blocks from the unit of inverse transformation 78 and the corresponding predictive blocks generated by the motion compensation unit 72. Adder 90 represents the component or components that carry out this summing operation. If desired, an unblocking filter can also be applied to filter the decoded blocks in order to eliminate pixelated distortions. Other loop filters can also be used (either in the encoding loop or after the encoding loop) to smooth pixel transitions, or otherwise improve video quality. The decoded video blocks of a given frame or image are then stored in the reference image memory 82, which stores reference images used for subsequent motion compensation. The reference image memory 82 also stores decoded video for later presentation in a display device, such as the display device 32 of FIG. one.
De acuerdo con las tecnicas de esta divulgacion, el descodificador de video 30 puede descodificar un conjunto de parametros de video (VPS), un conjunto de parametros de capa (LPS) y/o un conjunto de parametros de agrupacion, de acuerdo con las tecnicas de esta divulgacion, asf como un conjunto de parametros de secuencia (SpS), un conjunto de parametros de imagen (PPS), un conjunto de parametros de adaptacion (APS) u otras estructuras de datos de senalizacion de este tipo. Mas particularmente, la unidad de descodificacion por entropfa 70 puede estar configurada para descodificar cualquiera de, o todas, estas estructuras de datos. Mediante la descodificacion de estas diversas estructuras de datos, la unidad 70 de descodificacion por entropfa puede determinar parametros que se utilizaran para descodificar datos de video correspondientes. Por ejemplo, el descodificador de video 30 puede descodificar secuencias correspondientes de datos de video de una o mas capas utilizando parametros de un VPS descodificado.According to the techniques of this disclosure, the video decoder 30 can decode a set of video parameters (VPS), a set of layer parameters (LPS) and / or a set of grouping parameters, according to the techniques of this disclosure, as well as a set of sequence parameters (SpS), a set of image parameters (PPS), a set of adaptation parameters (APS) or other signaling data structures of this type. More particularly, the entropy decoding unit 70 may be configured to decode any or all of these data structures. By decoding these various data structures, the entropy decoding unit 70 can determine parameters that will be used to decode corresponding video data. For example, video decoder 30 can decode corresponding sequences of video data from one or more layers using parameters of a decoded VPS.
Aunque no se muestra en la FIG. 3, el descodificador de video 30 puede incluir adicionalmente una memoria intermedia de imagenes descodificadas (CPB). Normalmente, la CPB se proporcionarfa de forma ordinaria antes de la unidad 70 de descodificacion por entropfa. De forma alternativa, la CPB puede estar acoplada a la unidad de descodificacion por entropfa 70 para almacenamiento temporal, o a la salida de la unidad de descodificacion por entropfa 70 para almacenar datos descodificados por entropfa hasta que dichos datos se descodifiquen. En general, la CPB almacena datos de video codificados hasta que los datos de video codificados se van a descodificar, por ejemplo, como se indica mediante los parametros de HRD, que el descodificador de video 30 puede extraer de un VPS descodificado. Del mismo modo, otros elementos del descodificador de video 30 pueden estar configurados para descodificar datos de video utilizando, por ejemplo, el VPS. Por ejemplo, el descodificador de video 30 puede descodificar identificadores temporales de imagenes de varias capas temporales, datos que indican un cierto numero de imagenes a reordenar y/o almacenar en la memoria de imagenes de referencia 82 (que representa una DPB).Although not shown in FIG. 3, video decoder 30 may additionally include a buffer of decoded images (CPB). Normally, the CPB would ordinarily be provided before the entropy decoding unit 70. Alternatively, the CPB may be coupled to the entropy decoding unit 70 for temporary storage, or to the output of the entropy decoding unit 70 to store entropy decoded data until said data is decoded. In general, the CPB stores encoded video data until the encoded video data is to be decoded, for example, as indicated by the HRD parameters, that the video decoder 30 can extract from a decoded VPS. Similarly, other elements of the video decoder 30 may be configured to decode video data using, for example, the VPS. For example, video decoder 30 can decode temporary identifiers of images of several temporal layers, data indicating a certain number of images to be rearranged and / or stored in the memory of reference images 82 (representing a DPB).
Ademas, el descodificador de video 30 puede incluir unidades de procesamiento adicionales para procesar datos de video de acuerdo con diversas herramientas de codificacion proporcionadas por ampliaciones de una norma de codificacion de video. De forma alternativa, los elementos existentes del descodificador de video 30 mostrado en la FIG. 3 pueden configurarse para ejecutar las herramientas de codificacion de tales ampliaciones. La unidad de descodificacion por entropfa 70 puede estar configurada para descodificar datos de ampliacion de VPS y proporcionar tales datos de ampliacion a las unidades configuradas para ejecutar las herramientas de codificacion proporcionadas por las ampliaciones.In addition, the video decoder 30 may include additional processing units for processing video data in accordance with various encoding tools provided by extensions of a video encoding standard. Alternatively, the existing elements of the video decoder 30 shown in FIG. 3 can be configured to execute the coding tools of such extensions. The entropy decoding unit 70 may be configured to decode VPS extension data and provide such extension data to the units configured to execute the coding tools provided by the extensions.
De esta manera, el descodificador de video 30 de la FIG. 3 representa un ejemplo de un descodificador de video configurado para codificar un conjunto de parametros de video (VPS) para una o mas capas de datos de video, en el que cada una de una o mas capas de datos de video se refieren al VPS, y codificar una o mas capas de datos de video basandose al menos en parte en el VPS.In this way, the video decoder 30 of FIG. 3 represents an example of a video decoder configured to encode a set of video parameters (VPS) for one or more layers of video data, in which each of one or more layers of video data refers to the VPS, and encode one or more layers of video data based at least in part on the VPS.
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
Aunque en general se describe con respecto a un descodificador de video, la descodificacion de un VPS puede ser realizada por otros dispositivos, por ejemplo, un elemento de red que conoce los medios (MANE). El MANE puede configurarse para descodificar un VPS de acuerdo con las tecnicas de esta divulgacion. El MANE puede generar ademas otros datos del conjunto de parametros, tales como uno o mas conjuntos de parametros de secuencia, utilizando los datos del VPS. De esta manera, el MANE puede proporcionar compatibilidad retrospectiva con las normas anteriores, tales como ITU-T H.264/AVC.Although generally described with respect to a video decoder, the decoding of a VPS can be performed by other devices, for example, a network element that knows the means (MANE). The MANE can be configured to decode a VPS in accordance with the techniques of this disclosure. The MANE can also generate other parameter set data, such as one or more sequence parameter sets, using the VPS data. In this way, MANE can provide retrospective compatibility with previous standards, such as ITU-T H.264 / AVC.
La FIG. 4 es un diagrama conceptual que ilustra un patron de prediccion de la norma MVC a modo de ejemplo. La codificacion de video multivista (MVC) es una ampliacion de ITU-T H.264/AVC. Una tecnica similar puede aplicarse a HEVC. En el ejemplo de la FIG. 4, se ilustran ocho vistas (con ID de vista "S0" a "S7") y se ilustran doce posiciones temporales ("T0" a "T11") para cada vista. Es decir, cada fila de la FIG. 4 corresponde a una vista, mientras que cada columna indica una ubicacion temporal.FIG. 4 is a conceptual diagram illustrating an example pattern of the MVC standard as an example. Multivist video coding (MVC) is an extension of ITU-T H.264 / AVC. A similar technique can be applied to HEVC. In the example of FIG. 4, eight views are illustrated (with view ID "S0" to "S7") and twelve time positions ("T0" to "T11") are illustrated for each view. That is, each row of FIG. 4 corresponds to a view, while each column indicates a temporary location.
Una estructura de prediccion MVC tfpica (que incluye tanto la prediccion entre imagenes dentro de cada vista como la prediccion entre vistas) para la codificacion de video multivista se muestra en la FIG. 4, donde las predicciones se indican mediante flechas, donde el objeto al que se apunta utiliza el objeto desde el que se apunta como referencia de prediccion. En MVC, la prediccion entre vistas es compatible con la compensacion de movimiento de disparidad, que puede utilizar la sintaxis de la compensacion de movimiento H.264/AVC, pero permite utilizar una imagen en una vista diferente como una imagen de referencia.A typical MVC prediction structure (which includes both the prediction between images within each view and the prediction between views) for multivist video coding is shown in FIG. 4, where predictions are indicated by arrows, where the object to which it is pointed uses the object from which it is pointed as a prediction reference. In MVC, the prediction between views is compatible with disparity motion compensation, which can use the H.264 / AVC motion compensation syntax, but allows you to use an image in a different view as a reference image.
La codificacion de dos vistas tambien podrfa ser compatible con MVC, y una de las ventajas de MVC es que un codificador MVC podrfa tomar mas de dos vistas como una entrada de video 3D y un descodificador MVC puede descodificar una representacion multivista. Asf, cualquier renderizador con descodificador MVC puede estar configurado para recibir contenido de video 3D con mas de dos vistas.The coding of two views could also be compatible with MVC, and one of the advantages of MVC is that an MVC encoder could take more than two views as a 3D video input and an MVC decoder can decode a multivist representation. Thus, any MVC decoder renderer can be configured to receive 3D video content with more than two views.
Aunque MVC tiene una denominada vista de base que es descodificable mediante los descodificadores H.264/AVC y el par de vistas estereo podrfa ser compatible tambien con MVC, una ventaja de MVC es que podrfa permitir un ejemplo que usa mas de dos vistas como una entrada de video 3D y descodifica este video 3D representado por las multiples vistas. Un renderizador de un cliente que tiene un descodificador MVC puede esperar contenido de video 3D con varias vistas.Although MVC has a so-called base view that is decodable by H.264 / AVC decoders and the stereo view pair could also be compatible with MVC, an advantage of MVC is that it could allow an example that uses more than two views as a 3D video input and decode this 3D video represented by multiple views. A renderer of a client that has an MVC decoder can expect 3D video content with multiple views.
Un orden de descodificacion tfpico de MVC se denomina codificacion de primera vez. Una unidad de acceso puede incluir imagenes codificadas de todas las vistas para una instancia de tiempo de salida. Por ejemplo, cada una de las imagenes del tiempo T0 puede estar incluida en una unidad de acceso comun, cada una de las imagenes del tiempo T1 puede estar incluida en una segunda unidad de acceso comun, y asf sucesivamente. El orden de descodificacion no es necesariamente identico al orden de salida o de visualizacion.A typical MVC decoding order is called first-time coding. An access unit may include encoded images of all views for an instance of exit time. For example, each of the images of the time T0 may be included in a common access unit, each of the images of the time T1 may be included in a second common access unit, and so on. The decoding order is not necessarily identical to the output or display order.
Las tramas en la FIG. 4 se indican en la interseccion de cada fila y cada columna de la FIG. 4 usando un bloque sombreado que incluye una letra, que designa si la trama correspondiente esta intracodificada (es decir, una trama I), o intercodificada en una direccion (es decir, como una trama P) o en multiples direcciones (es decir, como una trama B). En general, las predicciones se indican mediante flechas, donde la trama a la que se apunta utiliza el objeto desde el que se apunta como referencia de prediccion. Por ejemplo, la trama P de la vista S2 en la ubicacion temporal T0 se predice a partir de la trama I de la vista S0 en la ubicacion temporal T0.The frames in FIG. 4 are indicated at the intersection of each row and each column of FIG. 4 using a shaded block that includes a letter, which designates whether the corresponding frame is intracoded (i.e., a frame I), or intercoded in one direction (i.e., as a P frame) or in multiple addresses (i.e., as a plot B). In general, predictions are indicated by arrows, where the plot to which the object is pointed to is used as the reference reference. For example, frame P of view S2 at temporary location T0 is predicted from frame I of view S0 at temporary location T0.
Al igual que con la codificacion de video de vista unica, las tramas de una secuencia de video de codificacion de video multivista pueden codificarse predictivamente con respecto a las tramas en diferentes ubicaciones temporales. Por ejemplo, la trama B de la vista S0 en la ubicacion temporal T1 tiene una flecha apuntando a la misma desde la trama I de la vista S0 en la ubicacion temporal T0, lo cual indica que la trama B se predice a partir de la trama I. Adicionalmente, sin embargo, en el contexto de la codificacion de video multivista, las tramas pueden predecirse entre vistas. Es decir, un componente de vista puede utilizar los componentes de vista en otras vistas como referencia. En MVC, por ejemplo, la prediccion entre vistas se realiza como si el componente de vista en otra vista es una referencia de interprediccion. Las posibles referencias entre vistas se senalan en la ampliacion de la norma MVC del conjunto de parametros de secuencia (SPS) y pueden ser modificadas por el proceso de construccion de la lista de imagenes de referencia, lo cual habilita el ordenamiento flexible de las referencias de interprediccion o de prediccion entre vistas.As with single view video encoding, frames of a multivist video encoding video sequence can be predictively encoded with respect to frames in different time locations. For example, frame B of view S0 at temporary location T1 has an arrow pointing to it from frame I of view S0 at temporary location T0, which indicates that frame B is predicted from frame I. Additionally, however, in the context of multivist video coding, frames can be predicted between views. That is, a view component can use the view components in other views as a reference. In MVC, for example, the prediction between views is made as if the view component in another view is an interprediction reference. The possible references between views are indicated in the extension of the MVC standard of the sequence parameter set (SPS) and can be modified by the process of constructing the reference image list, which enables the flexible ordering of the reference references. interprediccion or prediction between views.
En la ampliacion de MVC de H.264/AVC, por ejemplo, la prediccion entre vistas es compatible con la compensacion de movimiento de disparidad, que utiliza la sintaxis de la compensacion de movimiento H.264/AVC, pero permite que se utilice una imagen en una vista diferente como imagen de referencia. La codificacion de dos vistas puede ser compatible con MVC, lo cual se denomina en general vistas estereoscopicas. Una de las ventajas de MVC es que un codificador MVC podrfa tomar mas de dos vistas como una entrada de video 3D y un descodificador MVC puede descodificar una representacion multivista. Por lo tanto, un dispositivo de renderizado con un descodificador MVC puede esperar contenidos de video 3D con mas de dos vistas.In the MVC extension of H.264 / AVC, for example, the prediction between views is compatible with disparity motion compensation, which uses the H.264 / AVC motion compensation syntax, but allows a image in a different view as a reference image. The coding of two views can be compatible with MVC, which is generally called stereoscopic views. One of the advantages of MVC is that an MVC encoder could take more than two views as a 3D video input and an MVC decoder can decode a multivist representation. Therefore, a rendering device with an MVC decoder can expect 3D video content with more than two views.
En MVC, se permite la prediccion entre vistas (IVP) entre imagenes en la misma unidad de acceso (es decir, con laIn MVC, prediction between views (IVP) between images in the same access unit is allowed (that is, with the
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
misma instancia de tiempo). Una unidad de acceso es, en general, una unidad de datos que incluye todos los componentes de vista (por ejemplo, todas las unidades NAL) para una instancia temporal comun. Por lo tanto, en MVC, se permite la prediccion entre vistas entre imagenes en la misma unidad de acceso. Cuando se codifica una imagen en una de las vistas no basicas, la imagen puede agregarse a una lista de imagenes de referencia, si esta en una vista diferente pero con la misma instancia de tiempo (por ejemplo, el mismo valor POC y, por lo tanto, en la misma unidad de acceso). Una imagen de referencia de prediccion entre vistas puede ponerse en cualquier posicion de una lista de imagenes de referencia, como es el caso con cualquier imagen de referencia de interprediccion.same time instance). An access unit is, in general, a data unit that includes all view components (for example, all NAL units) for a common temporary instance. Therefore, in MVC, prediction between views between images in the same access unit is allowed. When an image is encoded in one of the non-basic views, the image can be added to a list of reference images, if it is in a different view but with the same time instance (for example, the same POC value and, therefore, both, in the same access unit). A prediction reference image between views can be placed in any position of a reference image list, as is the case with any interprediction reference image.
En el contexto de la codificacion de video multivista hay dos tipos de vectores de movimiento. Uno son vectores de movimiento normales que apuntan a las imagenes de referencia temporales, y el correspondiente modo de interprediccion se denomina una prediccion compensada por movimiento (MCP). El otro son vectores de movimiento de disparidad que apuntan a las imagenes en una vista diferente, y el modo de prediccion entre vistas correspondiente se denomina prediccion compensada por disparidad (DCP).In the context of multivist video coding there are two types of motion vectors. One is normal motion vectors that point to temporal reference images, and the corresponding mode of interprediction is called a motion-compensated prediction (MCP). The other are disparity motion vectors that point to images in a different view, and the corresponding prediction mode between views is called disparity compensated prediction (DCP).
En HEVC convencional, hay dos modos para la prediccion de los parametros de movimiento: uno es el modo de fusion y el otro es la prediccion avanzada del vector de movimiento (AMVP). En el modo de fusion, se construye una lista de candidatos de parametros de movimiento (imagenes de referencia y vectores de movimiento) donde el candidato puede ser de bloques contiguos espaciales o temporales. Los bloques contiguos espacialmente y temporalmente pueden formar una lista de candidatos, es decir, un conjunto de candidatos a partir de los cuales se puede seleccionar informacion de prediccion de movimiento. Por consiguiente, el codificador de video 20 puede codificar los parametros de movimiento elegidos como informacion de prediccion de movimiento codificando un indice en la lista de candidatos. Despues de que el descodificador de video 30 haya descodificado el indice, todos los parametros de movimiento del bloque correspondiente al que el indice apunta pueden ser heredados, en el modo de combinacion.In conventional HEVC, there are two modes for prediction of motion parameters: one is the fusion mode and the other is advanced motion vector prediction (AMVP). In the merge mode, a list of motion parameter candidates (reference images and motion vectors) is constructed where the candidate can be of adjacent spatial or temporal blocks. The spatially and temporarily contiguous blocks can form a list of candidates, that is, a set of candidates from which movement prediction information can be selected. Accordingly, video encoder 20 can encode the motion parameters chosen as motion prediction information by encoding an index in the candidate list. After the video decoder 30 has decoded the index, all motion parameters of the corresponding block to which the index points can be inherited, in the combination mode.
En AMVP, de acuerdo con HEVC convencional, se obtiene una lista de candidatos de predictores de vector de movimiento para cada hipotesis de movimiento basandose en el indice de referencia codificado. Esta lista incluye vectores de movimiento de bloques contiguos que estan asociados con el mismo indice de referencia, asf como un predictor de vector de movimiento temporal que se obtiene basandose en los parametros de movimiento del bloque contiguo del bloque colocalizado en una imagen de referencia temporal. Los vectores de movimiento elegidos se senalan transmitiendo un indice a la lista de candidatos. Ademas, tambien se senalan los valores del indice de referencia y las diferencias del vector de movimiento.In AMVP, according to conventional HEVC, a list of motion vector predictor candidates is obtained for each movement hypothesis based on the coded reference index. This list includes contiguous block motion vectors that are associated with the same reference index, as well as a temporal motion vector predictor that is obtained based on the motion parameters of the contiguous block of the colocalized block in a temporal reference image. The chosen motion vectors are indicated by transmitting an index to the list of candidates. In addition, the values of the reference index and the differences of the motion vector are also indicated.
La FIG. 4 proporciona varios ejemplos de la prediccion entre vistas. Las tramas de la vista S1, en el ejemplo de la FIG. 4, se ilustran como predichas a partir de imagenes en diferentes ubicaciones temporales de la vista S1, asf como predichas entre vistas a partir de tramas de las tramas de vistas S0 y S2 en las mismas ubicaciones temporales. Por ejemplo, la trama B de la vista S1 en la ubicacion temporal T1 se predice a partir de cada una de las tramas B de la vista S1 en las ubicaciones temporales T0 y T2, asf como las tramas B de las vistas S0 y S2 en la ubicacion temporal T1.FIG. 4 provides several examples of prediction between views. The frames of the view S1, in the example of FIG. 4, are illustrated as predicted from images in different temporary locations of the view S1, as well as predicted between views from frames of the view frames S0 and S2 in the same temporary locations. For example, frame B of view S1 at temporary location T1 is predicted from each of frames B of view S1 at temporary locations T0 and T2, as well as frames B of views S0 and S2 in the temporary location T1.
En el ejemplo de la FIG. 4, la letra "B" mayuscula y la "b" minuscula estan concebidas para indicar diferentes relaciones jerarquicas entre las tramas, en lugar de diferentes metodologfas de codificacion. En general, las tramas con "B" mayuscula son relativamente mas altas en la jerarqufa de prediccion que las tramas con "b" minuscula. La FIG. 4 tambien ilustra las variaciones en la jerarqufa de prediccion utilizando diferentes niveles de sombreado, donde las tramas con una mayor magnitud de sombreado (es decir, relativamente mas oscuras) estan mas altas en la jerarqufa de prediccion que aquellas tramas que tienen menos sombreado (es decir, relativamente mas claras). Por ejemplo, todas las tramas I en la FIG. 4 se ilustran con sombreado completo, mientras que las tramas P tienen un sombreado algo mas claro, y las tramas B (y las tramas con b minuscula) tienen diversos niveles de sombreado, pero siempre mas claros que el sombreado de las tramas P y las tramas I.In the example of FIG. 4, the capital letter "B" and the lowercase "b" are designed to indicate different hierarchical relationships between the frames, rather than different coding methodologies. In general, frames with a capital "B" are relatively higher in the prediction hierarchy than frames with a lowercase "b". FIG. 4 also illustrates the variations in the prediction hierarchy using different levels of shading, where frames with a greater magnitude of shading (i.e., relatively darker) are higher in the prediction hierarchy than those frames that have less shading (it is say, relatively clearer). For example, all frames I in FIG. 4 are illustrated with full shading, while the P frames have a somewhat lighter shading, and the B frames (and the lowercase b frames) have different levels of shading, but always lighter than the shading of the P and plots I.
En general, la jerarqufa de prediccion se relaciona con indices del orden de vista, en cuanto a que las tramas relativamente mas altas en la jerarqufa de prediccion deberfan ser descodificadas antes de la descodificacion de tramas que estan relativamente mas bajas en la jerarqufa, de tal modo que esas tramas relativamente mas altas en la jerarqufa se pueden utilizar como tramas de referencia durante la descodificacion de las tramas relativamente mas bajas en la jerarqufa. Un fndice de orden de vista es un fndice que indica el orden de descodificacion de componentes de vista en una unidad de acceso. Los indices de orden de vista estan implfcitos en la ampliacion SPS MVC, como se especifica en el anexo H de H.264/AVC (la enmienda MVC). En el SPS, para cada fndice i, se senala el correspondiente view_id. En algunos ejemplos, la descodificacion de los componentes de vista seguira el orden ascendente del fndice de orden de vista. Si se presentan todas las vistas, los indices de orden de vista se encuentran en un orden consecutivo de 0 a num_views_minus_1.In general, the prediction hierarchy is related to indices of the order of view, in that the relatively higher frames in the prediction hierarchy should be decoded before decoding frames that are relatively lower in the hierarchy, such so those relatively higher frames in the hierarchy can be used as reference frames during decoding of relatively lower frames in the hierarchy. A view order index is an index that indicates the order of decoding of view components in an access unit. The order of view indices are implicit in the SPS MVC extension, as specified in Annex H of H.264 / AVC (the MVC amendment). In the SPS, for each index i, the corresponding view_id is signaled. In some examples, decoding of the view components will follow the ascending order of the view order index. If all views are presented, the view order indices are in a consecutive order from 0 to num_views_minus_1.
De esta manera, las tramas utilizadas como tramas de referencia pueden ser descodificadas antes de la descodificacion de las tramas que se codifican con referencia a las tramas de referencia. Un fndice de orden de vista es un fndice que indica el orden de descodificacion de componentes de vista en una unidad de acceso. Para cada fndice de orden de visualizacion i, se senala el view_id correspondiente. La descodificacion de los componentes de vista sigue el orden ascendente de los indices de orden de vista. Si se presentan todas las vistas, entonces elIn this way, frames used as reference frames can be decoded before decoding frames that are encoded with reference to reference frames. A view order index is an index that indicates the order of decoding of view components in an access unit. For each display order index i, the corresponding view_id is signaled. The decoding of the view components follows the ascending order of the view order indices. If all views are presented, then the
55
1010
15fifteen
20twenty
2525
3030
3535
conjunto de indices de orden de vista puede comprender un conjunto consecutivamente ordenado de cero a uno menos que el numero total de vistas.set of view order indices can comprise a consecutively ordered set from zero to one less than the total number of views.
Para ciertas tramas a niveles iguales de la jerarquia, el orden de descodificacion entre ellas puede no importar. Por ejemplo, la trama I de la vista S0 en la posicion temporal T0 se utiliza como trama de referencia para la trama P de la vista S2 en la posicion temporal T0, que a su vez se utiliza como trama de referencia para la trama P de la vista S4 en la posicion temporal T0. En consecuencia, la trama I de la vista S0 en la posicion temporal T0 deberia descodificarse antes de la trama P de la vista S2 en la posicion temporal T0, la cual deberia descodificarse antes de la trama P de la vista S4 en la posicion temporal T0. Sin embargo, entre las vistas S1 y S3, no importa un orden de descodificacion, porque las vistas S1 y S3 no se basan la una en la otra para la prediccion, sino que se predicen solo a partir de vistas que son mas altas en la jerarquia de prediccion. Ademas, la vista S1 puede descodificarse antes que la vista S4, siempre que la vista S1 sea descodificada despues de las vistas S0 y S2.For certain frames at equal levels in the hierarchy, the order of decoding between them may not matter. For example, frame I of the view S0 in the temporary position T0 is used as a reference frame for the frame P of the view S2 in the temporary position T0, which in turn is used as a reference frame for the frame P of S4 view in temporary position T0. Consequently, the frame I of the view S0 in the temporary position T0 should be decoded before the frame P of the view S2 in the temporary position T0, which should be decoded before the frame P of the view S4 in the temporary position T0 . However, between views S1 and S3, an order of decoding does not matter, because views S1 and S3 are not based on each other for prediction, but are predicted only from views that are higher in the prediction hierarchy. In addition, view S1 can be decoded before view S4, provided that view S1 is decoded after views S0 and S2.
De esta manera, puede utilizarse un ordenamiento jerarquico para describir las vistas S0 a S7. Deje que la notacion SA> SB signifique que la vista SA debe ser descodificada antes que la vista SB. Utilizando esta notacion, S0> S2> S4> S6> S7, en el ejemplo de la FIG. 4. Tambien con respecto al ejemplo de la FIG. 4, S0> S1, S2> S1, S2> S3, S4> S3, S4> S5 y S6> S5. Cualquier orden de descodificacion para las vistas que no viole estos requisitos es posible. En consecuencia, son posibles muchos ordenes de descodificacion diferentes con solo ciertas limitaciones.In this way, a hierarchical order can be used to describe views S0 to S7. Let the SA> SB notation mean that the SA view must be decoded before the SB view. Using this notation, S0> S2> S4> S6> S7, in the example of FIG. 4. Also with respect to the example of FIG. 4, S0> S1, S2> S1, S2> S3, S4> S3, S4> S5 and S6> S5. Any decoding order for views that does not violate these requirements is possible. Consequently, many different decoding orders are possible with only certain limitations.
De acuerdo con las tecnicas de esta divulgacion, cada una de las vistas S0-S7 puede considerarse una capa respectiva de un flujo de bits correspondiente. De este modo, un VPS puede describir parametros del flujo de bits aplicables a cualquiera de, o todas, las vistas S0-S7, mientras que puedan proporcionarse conjuntos de parametros de capas individuales para cualquiera de, o todas, las vistas S0-S7. Ademas, puede proporcionarse un conjunto de parametros de agrupacion para un grupo de conjuntos de parametros, de manera que los fragmentos dentro de las imagenes individuales de las vistas S0-S7 pueden referirse simplemente al identificador de un conjunto de parametros de agrupacion.According to the techniques of this disclosure, each of the S0-S7 views can be considered a respective layer of a corresponding bit stream. Thus, a VPS can describe bitstream parameters applicable to any of, or all, views S0-S7, while sets of individual layer parameters can be provided for any of, or all, views S0-S7. In addition, a set of grouping parameters can be provided for a group of parameter sets, so that fragments within individual images of views S0-S7 can simply refer to the identifier of a set of grouping parameters.
Como se muestra en la FIG. 4, un componente de vista puede utilizar los componentes de vista en otras vistas como referencia. Esto se denomina prediccion entre vistas. En MVC, la prediccion entre vistas se realiza como si el componente de vista en otra vista fuera una referencia de interprediccion. El codificador de video 20 y el descodificador de video 30 pueden codificar las posibles referencias entre vistas en la ampliacion MVC del Conjunto de Parametros de Secuencia (SPS) (como se muestra en el ejemplo de la Tabla 1). El codificador de video 20 y el descodificador de video 30 pueden modificar adicionalmente las posibles referencias entre vistas ejecutando el proceso de construccion de lista de imagenes de referencia, lo cual puede permitir el ordenamiento flexible de las referencias de prediccion entre vistas o interprediccion.As shown in FIG. 4, a view component can use the view components in other views as a reference. This is called prediction between views. In MVC, the prediction between views is made as if the view component in another view was an interprediction reference. The video encoder 20 and the video decoder 30 can encode the possible references between views in the MVC extension of the Sequence Parameter Set (SPS) (as shown in the example in Table 1). The video encoder 20 and the video decoder 30 can additionally modify the possible references between views by executing the process of constructing a reference image list, which may allow the flexible ordering of the prediction references between views or interprediction.
TABLA 1TABLE 1
- seq_parameter_set_mvc_extension( ) { seq_parameter_set_mvc_extension () {
- C Descriptor C Descriptor
- num_views_minus1 num_views_minus1
- 0 ue(v) 0 eu (v)
- para( i = 0; i <= num_views_minus1; i++ ) for (i = 0; i <= num_views_minus1; i ++)
- view_id[ i ] view_id [i]
- 0 ue(v) 0 eu (v)
- para( i = 1; i <= num_views_minus1; i++ ) { for (i = 1; i <= num_views_minus1; i ++) {
- num_anchor_refs_l0[i] num_anchor_refs_l0 [i]
- 0 ue(v) 0 eu (v)
- para( j = 0; j < num_anchor_refs_l0[i]; j++ ) for (j = 0; j <num_anchor_refs_l0 [i]; j ++)
- anchor_ref_l0[ i ][ j ] anchor_ref_l0 [i] [j]
- 0 ue(v) 0 eu (v)
- num_anchor_refs_l1[ i ] num_anchor_refs_l1 [i]
- 0 ue(v) 0 eu (v)
- para( j = 0; j < num_anchor_refs_l1[i]; j++ ) for (j = 0; j <num_anchor_refs_l1 [i]; j ++)
- anchor_ref_l1[ i ][ j ] anchor_ref_l1 [i] [j]
- 0 ue(v) 0 eu (v)
- } }
- para( i = 1; i <= num_views_minus1; i++) { for (i = 1; i <= num_views_minus1; i ++) {
- num_non_anchor_refs_l0[ i ] num_non_anchor_refs_l0 [i]
- 0 ue(v) 0 eu (v)
- para( j = 0; j < num_non_anchor_refs_l0[ i ]; j++ ) for (j = 0; j <num_non_anchor_refs_l0 [i]; j ++)
- non_anchor_ref_l0[i][j] non_anchor_ref_l0 [i] [j]
- 0 ue(v) 0 eu (v)
- num_non_anchor_refs_l1[ i ] num_non_anchor_refs_l1 [i]
- 0 ue(v) 0 eu (v)
- para( j = 0; j < num_non_anchor_refs_l1[ i ]; j++ ) for (j = 0; j <num_non_anchor_refs_l1 [i]; j ++)
- non_anchor_ref_l1[ i ][ j ] non_anchor_ref_l1 [i] [j]
- 0 ue(v) 0 eu (v)
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
- } }
- num_level_values_signaled_minus1 num_level_values_signaled_minus1
- 0 ue(v) 0 eu (v)
- para( i = 0; i <= num_level_values_signaled_minus1; i++ ) { for (i = 0; i <= num_level_values_signaled_minus1; i ++) {
- level_idc[ i ] level_idc [i]
- 0 u(8) 0 u (8)
- num_applicable_ops_minus1[ i ] num_applicable_ops_minus1 [i]
- 0 ue(v) 0 eu (v)
- para( j = 0; j <= num_applicable_ops_minus1[i]; j++ ) { for (j = 0; j <= num_applicable_ops_minus1 [i]; j ++) {
- applicable_op_temporal_id[i][j] applicable_op_temporal_id [i] [j]
- 0 u(3) 0 u (3)
- applicable_op_num_target_views_minus1[ i ][ j ] applicable_op_num_target_views_minus1 [i] [j]
- 0 ue(v) 0 eu (v)
- para( k = 0; k <= applicable_op_num_target_views_minus1[ i ][ j ]; k++ ) for (k = 0; k <= applicable_op_num_target_views_minus1 [i] [j]; k ++)
- applicable_op_target_view_id[ i ][ j ][ k ] applicable_op_target_view_id [i] [j] [k]
- 0 ue(v) 0 eu (v)
- applicable_op_num_views_minus1[ i ][ j ] applicable_op_num_views_minus1 [i] [j]
- 0 ue(v) 0 eu (v)
- } }
- } }
- } }
En la ampliacion SPS MVC mostrada en la Tabla 1, para cada vista, se senala el numero de vistas que se pueden utilizar para formar la lista de imagenes de referencia 0 y la lista de imagenes de referencia 1. La relacion de prediccion para una imagen de anclaje, tal como se senala en la ampliacion SPS MVC, puede ser diferente de la relacion de prediccion para una imagen sin anclaje (senalada en la ampliacion SPS MVC) de la misma vista.In the SPS MVC extension shown in Table 1, for each view, the number of views that can be used to form the reference image list 0 and the reference image list 1 are indicated. The prediction relationship for an image Anchoring, as noted in the SPS MVC magnification, may be different from the prediction ratio for an image without anchoring (noted in the SPS MVC magnification) of the same view.
Entre las normas de codificacion de video 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 (tambien conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones de codificacion de video ajustable a escala (SVC) y de codificacion de video multivista (MVC).Video coding standards include ITU-T H.261, ISO / IEC MPEG-1 Visual, ITU-T H.262 or ISO / IEC MPEG-2 Visual, ITU-T H.263, ISO / IEC MPEG -4 Visual and ITU-T H.264 (also known as ISO / IEC MPEG-4 AVC), including its scaling video scaling (SVC) and multivist video coding (MVC) extensions.
Ademas, existe una nueva norma de codificacion de video, concretamente la Codificacion de Video de Alta Eficiencia (HEVC) que esta siendo desarrollada por el Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) del Grupo de Expertos en Codificacion de Video (VCEG) de ITU-T y el Grupo de Expertos en Imagenes en Movimiento (MPEG) de ISO/IEC. Un reciente Borrador de Trabajo (BT) de la HEVC, y denominado HEVC WD4 en adelante, esta disponible en
http://phenix.int-evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F803-v3.zip, denotado como HEVC WD4d1.In addition, there is a new video coding standard, specifically the High Efficiency Video Coding (HEVC) that is being developed by the Joint Collaboration Team on Video Coding (JCT-VC) of the Group of Experts on Video Coding ( VCEG) of ITU-T and the Group of Experts in Motion Pictures (MPEG) of ISO / IEC. A recent Working Draft (BT) of the HEVC, and referred to as HEVC WD4 onwards, is available at
http://phenix.int-evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F803-v3.zip, denoted as HEVC WD4d1.
El mecanismo de conjunto de parametros de secuencia e imagen desacopla la transmision de informacion que cambia poco frecuentemente de la transmision de datos de bloque codificados. En algunas aplicaciones, los conjuntos de parametros de secuencia e imagen pueden ser transportados "fuera de banda" usando un mecanismo de transporte fiable. Una carga util de secuencia de bytes sin procesar (RBSP) de un conjunto de parametros de imagen puede incluir parametros a los que pueden referirse las unidades de capa de abstraccion de red de fragmento codificado (NAL) de una o mas imagenes codificadas. Una o mas RBSP de un conjunto de parametros de secuencia puede incluir parametros a los que puede referirse una o mas RBSP de un conjunto de parametros de imagen o una o mas unidades NAL de informacion de mejora complementaria (SEI) que contienen un mensaje SEI de periodo de almacenamiento intermedio. Una RBSP de un conjunto de parametros de secuencia puede incluir parametros a los que puede hacer referencia una o mas RBSP de un conjunto de parametros de imagen o una o mas unidades SEI NAL que contienen un mensaje SEI de periodo de almacenamiento intermedio.The sequence and image parameter set mechanism decouples the transmission of information that changes infrequently from the transmission of encoded block data. In some applications, sets of sequence and image parameters can be transported "out of band" using a reliable transport mechanism. An unprocessed byte sequence payload (RBSP) of a set of image parameters may include parameters to which the encoded fragment network (NAL) abstraction layer units of one or more encoded images may refer. One or more RBSP of a set of sequence parameters may include parameters that may be referred to by one or more RBSP of a set of image parameters or one or more NAL units of complementary enhancement information (SEI) that contain a SEI message of Intermediate storage period. An RBSP of a set of sequence parameters may include parameters that may be referenced by one or more RBSP of a set of image parameters or one or more SEI NAL units that contain an intermediate storage period SEI message.
El conjunto de parametros de secuencia puede incluir un conjunto opcional de parametros denominado informacion de usabilidad de video (VUI). La VUI puede incluir las siguientes tres categorfas de informacion opcional: informacion de representacion de video, informacion del descodificador de referencia hipotetica (HRD) e informacion de restriccion del flujo de bits. La informacion de representacion de video incluye la relacion de aspecto, cambios de fase de croma de informacion de transformacion de espacio de color relativos a luma y velocidad de tramas. El HRD incluye parametros de almacenamiento intermedio de video para las secuencias de video codificadas. La informacion de restriccion del flujo de bits incluye restricciones sobre el rango del vector de movimiento, el tamano de la memoria intermedia de imagenes descodificadas (DPB) y el numero de tramas de reordenacion y los tamanos codificados de bloques (por ejemplo, macrobloques o unidades de codificacion (CU)) e imagenes.The sequence parameter set may include an optional set of parameters called video usability information (VUI). The VUI may include the following three categories of optional information: video representation information, hypothetical reference decoder information (HRD) and bitstream restriction information. The video representation information includes the aspect ratio, chroma phase changes of color space transformation information related to luma and frame rate. The HRD includes video buffer parameters for encoded video streams. The bit stream restriction information includes restrictions on the range of the motion vector, the size of the decoded image buffer (DPB) and the number of rearrange frames and the encoded block sizes (e.g., macroblocks or units of coding (CU)) and images.
HEVC WD5 incluye el conjunto de parametros de adaptacion de soporte (APS). El concepto de conjunto de parametros de adaptacion (APS) tambien se puede encontrar en JCTVC-F747, disponible en
http://phenix.int- evry.fr/jct/doc_end_user/documents/6_Torino/wgl11JCTVC-F747-v4.zip.HEVC WD5 includes the set of support adaptation parameters (APS). The concept of adaptation parameter set (APS) can also be found in JCTVC-F747, available at
http: //phenix.int- evry.fr/jct/doc_end_user/documents/6_Torino/wgl11JCTVC-F747-v4.zip.
Se puede utilizar una cabecera de unidad NAL unificada tanto para los flujos de bits HEVC no escalables como paraA unified NAL unit header can be used for both non-scalable HEVC bit streams and for
los flujos de bits escalables que se ajustan a las ampliaciones potenciales escalables o multivista de HEVC. Una cabecera de unidad NAL unificada puede diferir de la cabecera de unidad HEVC NAL actual en los siguientes aspectos: puede haber una longitud de cabecera de unidad NAL fija para una secuencia de video codificada completa, mientras que la longitud puede variar entre secuencias de video codificadas diferentes, y una codificacion 5 eficaz de los elementos sintacticos de escalabilidad en la cabecera de unidad NAL y, cuando un elemento sintactico particular no es necesario, no necesita estar presente. En tal diseno, se puede usar un tipo de unidad NAL o un conjunto de parametros diferente para todo el flujo de bits.the scalable bit streams that fit the scalable or multivist potential extensions of HEVC. A unified NAL unit header may differ from the current NAL HEVC unit header in the following aspects: there may be a fixed NAL unit header length for a complete encoded video sequence, while the length may vary between encoded video sequences different, and an effective coding of the scalability syntactic elements in the NAL unit header and, when a particular syntactic element is not necessary, it does not need to be present. In such a design, a type of NAL unit or a different set of parameters can be used for the entire bit stream.
1010
15fifteen
20twenty
- video_parameter_set_rbsp( ) { video_parameter_set_rbsp () {
- Descriptor Descriptor
- video_para_set_id video_para_set_id
- u(8) u (8)
- // descripcion del contador de dimension de la muestra // description of the sample dimension counter
- cnt_p cnt_p
- u(3) u (3)
- cnt_d cnt_d
- u(3) u (3)
- cnt_t cnt_t
- u(3) u (3)
- cnt_q cnt_q
- u(3) u (3)
- cnt_v cnt_v
- u(4) u (4)
- cnt_f cnt_f
- u(4) u (4)
- // indice de muestra para la asignacion de caracterfsticas // sample index for feature assignment
- para(i = 0; i < cnt_d; i++) { for (i = 0; i <cnt_d; i ++) {
- pic_width_in_luma_samples[ i ] pic_width_in_luma_samples [i]
- ue(v) eu (v)
- pic_height_in_luma_samples[ i ] pic_height_in_luma_samples [i]
- ue(v) eu (v)
- bit_depth_luma_minus8[ i ] bit_depth_luma_minus8 [i]
- ue(v) eu (v)
- bit_depth_chroma_minus8[ i ] bit_depth_chroma_minus8 [i]
- ue(v) eu (v)
- chroma_format_idc[ i ] chroma_format_idc [i]
- u(2) u (2)
- } }
- para( i = 0; i < cnt_t; i++) for (i = 0; i <cnt_t; i ++)
- averge_frame_rate[ i ] averge_frame_rate [i]
- u(16) u (16)
- si( cnt_v > 1) yes (cnt_v> 1)
- para( i=0; i < cnt_v; i++) for (i = 0; i <cnt_v; i ++)
- view_id[ i ] view_id [i]
- ue(v) eu (v)
- // parametros de control e indicadores de habilitacion / deshabilitacion de herramientas // control parameters and tools enable / disable indicators
- log2_max_pic_order_cnt_lsb_minus4 log2_max_pic_order_cnt_lsb_minus4
- ue(v) eu (v)
- chroma_pred_from_luma_enabled_flag chroma_pred_from_luma_enabled_flag
- u(l) u (l)
- loop_filter_across_slice_flag loop_filter_across_slice_flag
- u(l) u (l)
- sample_adaptive_offset_enabled_flag sample_adaptive_offset_enabled_flag
- u(l) u (l)
- adaptive_loop_filter_enabled_flag adaptive_loop_filter_enabled_flag
- u(l) u (l)
- pcm_loop_filter_disable_flag pcm_loop_filter_disable_flag
- u(l) u (l)
- cu_qp_delta_enabled_flag cu_qp_delta_enabled_flag
- u(l) u (l)
La FIG. 5 es un diagrama conceptual que ilustra un conjunto de parametros de video (VPS) y varios conjuntos de parametros de capa (LPS). Las elipses que siguen al segundo LPS de la FIG. 5 pretenden indicar que puede haber cualquier numero N de VPS, donde N es un numero entero. Por ejemplo, cada capa (por ejemplo, cada capa SVC o cada vista MVC) puede tener un LPS correspondiente. Un codificador de video, tal como el codificador de video 20 o el descodificador de video 30, puede configurarse para codificar un VPS y uno o mas LPS, como los ilustrados en la FIG. 5.FIG. 5 is a conceptual diagram illustrating a set of video parameters (VPS) and several sets of layer parameters (LPS). The ellipses that follow the second LPS of FIG. 5 are intended to indicate that there can be any VPS number N, where N is an integer. For example, each layer (for example, each SVC layer or each MVC view) can have a corresponding LPS. A video encoder, such as video encoder 20 or video decoder 30, can be configured to encode a VPS and one or more LPS, as illustrated in FIG. 5.
La Tabla 2 siguiente proporciona un ejemplo de sintaxis de carga util de secuencia de bytes sin procesar (RBSP) para un VPS.Table 2 below provides an example of raw byte sequence payload (RBSP) syntax for a VPS.
TABLA 2TABLE 2
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
- temporal_id_nesting_flag temporary_id_nesting_flag
- u(l) u (l)
- inter_4x4_enabled_flag inter_4x4_enabled_flag
- u(l) u (l)
- operation_point_desription( ) operation_point_desription ()
- vps_extension_flag vps_extension_flag
- u(l) u (l)
- si( vps_extension_flag ) yes (vps_extension_flag)
- mientras( more_rbsp_data( ) ) while (more_rbsp_data ())
- vps_extension_data_flag vps_extension_data_flag
- u(l) u (l)
- rbsp_trailing_bits( ) rbsp_trailing_bits ()
- } }
Los codificadores de video se pueden configurar de tal manera que una secuencia de video codificada (por ejemplo, un flujo de bits que incluya una o mas capas) solo pueda tener un conjunto de parametros de video (VPS) activo . El VPS puede estar encapsulado dentro de una unidad NAL de un tipo particular. Por ejemplo, el nal_unit_type para un VPS RBSP puede ser 10. La semantica de ejemplo para el VPS de la Tabla 2 se describe a continuacion:Video encoders can be configured such that an encoded video sequence (for example, a bit stream that includes one or more layers) can only have one set of active video parameters (VPS). The VPS can be encapsulated within a NAL unit of a particular type. For example, the nal_unit_type for an RBSP VPS can be 10. The sample semantics for the VPS in Table 2 are described below:
En este ejemplo, video_para_set_id identifica un conjunto de parametros de video (VPS) correspondiente.In this example, video_para_set_id identifies a corresponding set of video parameters (VPS).
En este ejemplo, cnt_p especifica el numero maximo de valores de priority_id presentes en la secuencia de video codificada correspondiente.In this example, cnt_p specifies the maximum number of priority_id values present in the corresponding encoded video sequence.
En este ejemplo, cnt_d especifica el numero maximo de capas de dependencia presentes en la secuencia de video codificada correspondiente. Varias vistas con la misma resolucion pueden considerarse como pertenecientes a una misma capa de dependencia. Dos capas de dependencia pueden tener la misma resolucion espacial.In this example, cnt_d specifies the maximum number of dependency layers present in the corresponding encoded video sequence. Several views with the same resolution can be considered as belonging to the same dependency layer. Two layers of dependence can have the same spatial resolution.
En este ejemplo, cnt_t especifica el numero maximo de capas temporales presentes en la secuencia de video codificada.In this example, cnt_t specifies the maximum number of temporal layers present in the encoded video sequence.
En este ejemplo, cnt_q especifica el numero maximo de capas de calidad presentes en una capa de dependencia en la secuencia de video codificada.In this example, cnt_q specifies the maximum number of quality layers present in a dependency layer in the encoded video sequence.
En este ejemplo, cnt_v especifica el numero maximo de vistas presentes en la secuencia de video codificada.In this example, cnt_v specifies the maximum number of views present in the encoded video sequence.
En este ejemplo, cnt_f especifica el numero de bits utilizados para representar el elemento sintaxis reserved_flags en la cabecera de la unidad NAL.In this example, cnt_f specifies the number of bits used to represent the reserved_flags syntax element in the NAL unit header.
En este ejemplo, pic_width_in_luma_samples [i] y pic_height_in_luma_samples [i] especifican, respectivamente, la anchura y la altura de la i-esima resolucion de la capa de dependencia en unidades de muestras de luma.In this example, pic_width_in_luma_samples [i] and pic_height_in_luma_samples [i] specify, respectively, the width and height of the ith resolution of the dependency layer in luma sample units.
En este ejemplo, bit_depth_luma_minus8 [i] mas 8 y bit_depth_chroma_minus8 [i] mas 8 especifica la profundidad de bits de los componentes luma y croma de la i-esima representacion de profundidad de bits.In this example, bit_depth_luma_minus8 [i] plus 8 and bit_depth_chroma_minus8 [i] plus 8 specifies the bit depth of the luma and chroma components of the i-th representation of bit depth.
En este ejemplo, chroma_format_idc [i] especifica el formato de la muestra de croma de la i-esima representacion del formato de la muestra de croma. Por ejemplo, un valor igual a 0 puede indicar 4:2:0; un valor igual a 1 puede indicar 4:4:4, un valor igual a 2 puede indicar 4:2:2 y un valor igual a 3 puede indicar 4:0:0.In this example, chroma_format_idc [i] specifies the chroma sample format of the ith representation of the chroma sample format. For example, a value equal to 0 may indicate 4: 2: 0; a value equal to 1 may indicate 4: 4: 4, a value equal to 2 may indicate 4: 2: 2 and a value equal to 3 may indicate 4: 0: 0.
En este ejemplo, average_frame_rate[i] especifica la velocidad media de la i-esima representacion de la capa temporal en unidades de tramas por 256 segundos.In this example, average_frame_rate [i] specifies the average speed of the ith representation of the time layer in frame units for 256 seconds.
En este ejemplo, view_id[i] especifica el identificador de vista de la i-esima vista, que tiene indice de orden de vista igual a i. Cuando no esta presente, se puede inferir que el valor de view_id[0] es 0. vps_extension_flag igual a 0 especifica que no hay elementos sintacticos vps_extension_data_flag presentes en la estructura de sintaxis RBSP del conjunto de parametros de video. vps_extension_flag puede ser igual a 0 en flujos de bits conforme a la proxima norma HEVC. El valor 1 para vps_extension_flag puede reservarse, por ejemplo, para un uso futuro mediante ITU-T | ISO/IEC. Los descodificadores, como el descodificador de video 30, pueden ignorar todos los datos que siguen al valor 1 para vps_extension_flag en una unidad NAL del conjunto de parametros de video.In this example, view_id [i] specifies the view identifier of the ith view, which has a view order index equal to i. When not present, it can be inferred that the value of view_id [0] is 0. vps_extension_flag equal to 0 specifies that there are no vps_extension_data_flag syntactic elements present in the RBSP syntax structure of the video parameter set. vps_extension_flag can be equal to 0 in bit streams according to the next HEVC standard. The value 1 for vps_extension_flag can be reserved, for example, for future use by ITU-T | ISO / IEC Decoders, such as video decoder 30, can ignore all data that follows the value 1 for vps_extension_flag in a NAL unit of the video parameter set.
En este ejemplo, vps_extension_data_flag puede tener cualquier valor. No afecta a la conformidad con los perfiles especificados en la proxima norma HEVC, pero permite el desarrollo posterior de la proxima norma.In this example, vps_extension_data_flag can have any value. It does not affect compliance with the profiles specified in the next HEVC standard, but allows the further development of the next standard.
Otros elementos sintacticos en el VPS pueden tener la misma semantica que los elementos sintacticos con los mismos nombres en el SPS del borrador de trabajo HEVC actual. Esos elementos sintacticos pueden aplicarse a la secuencia de video codificada que hace referencia a este VPS, a menos que sean sobrescritos por conjuntos deOther syntactic elements in the VPS may have the same semantics as the syntactic elements with the same names in the SPS of the current HEVC work draft. These syntactic elements can be applied to the encoded video sequence that refers to this VPS, unless they are overwritten by sets of
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
parametros de nivel inferior.lower level parameters.
En algunos ejemplos, una senal 3DV_flag puede indicarse adicionalmente en el VPS para indicar si la profundidad esta presente en la secuencia de video codificada.In some examples, a 3DV_flag signal can be additionally indicated in the VPS to indicate if the depth is present in the encoded video sequence.
En algunos ejemplos, los parametros VUI se senalan en el LPS.In some examples, the VUI parameters are signaled in the LPS.
En algunos ejemplos, los elementos sintacticos cnt_p, cnt_t, cnt_d, cnt_q y cnt_v especifican los numeros de bits utilizados para codificar priority_id, temporal_id, dependency_id, quality_id y view_idx, respectivamente, y los numeros maximos de valores priority_id, capas temporales, capas de dependencia, capas de calidad y vistas presentes en las secuencias de video codificadas tambien se pueden senalar en el VPS.In some examples, the syntactic elements cnt_p, cnt_t, cnt_d, cnt_q and cnt_v specify the numbers of bits used to encode priority_id, temporal_id, dependency_id, quality_id and view_idx, respectively, and the maximum numbers of priority_id values, temporal layers, dependency layers , quality layers and views present in the encoded video sequences can also be signaled in the VPS.
En algunos ejemplos, se puede introducir otro tipo de unidad NAL para contener los elementos sintacticos cnt_p, cnt_t, cnt_d, cnt_q, cnt_v y cnt_f. Este nuevo tipo de unidad NAL tambien puede incluir un identificador (ID) y puede hacerse referencia al ID en el VPS.In some examples, another type of NAL unit can be introduced to contain the syntactic elements cnt_p, cnt_t, cnt_d, cnt_q, cnt_v and cnt_f. This new type of NAL unit can also include an identifier (ID) and the ID can be referenced in the VPS.
En algunos ejemplos, los elementos sintacticos deIn some examples, the syntactic elements of
log2_max_pic_order_cnt_lsb_minus4 a inter_4x4_enabled_flag en la Tabla 2 no estan senalados en el VPS, sino que en su lugar, el codificador de video 20 y el descodificador de video 30 pueden codificar estos elementos sintacticos en el LPS.log2_max_pic_order_cnt_lsb_minus4 to inter_4x4_enabled_flag in Table 2 are not signaled in the VPS, but instead, the video encoder 20 and the video decoder 30 can encode these syntactic elements in the LPS.
En algunos ejemplos, la estructura de sintaxis operation_point_desription () de la Tabla 2 no esta incluida en el VPS; en su lugar, el codificador de video 20 y el descodificador de video 30 u otros elementos (por ejemplo, la interfaz de salida 22 y/o la interfaz de entrada 28), pueden codificar el contenido en la estructura de sintaxis de operation_point_description () en un mensaje de informacion de mejora complementaria (SEI).In some examples, the operation_point_desription () syntax structure in Table 2 is not included in the VPS; instead, the video encoder 20 and the video decoder 30 or other elements (for example, the output interface 22 and / or the input interface 28), can encode the content in the syntax structure of operation_point_description () in a complementary improvement information message (SEI).
En algunos ejemplos, el codificador de video 20 y/o el descodificador de video 30 pueden codificar los parametros de informacion de usabilidad de video (VUI) en el VPS. Por ejemplo, un VPS puede incluir datos que especifican informacion de restriccion del flujo de bits, tales como restricciones en el rango de vectores de movimiento, tamano DPB, numero de tramas de reordenamiento y tamanos codificados de bloques (por ejemplo, macrobloques o CU) e imagenes. De esta manera, un VPS puede especificar informacion que indica un tamano DPB requerido para que un descodificador de video (tal como el descodificador de video 30) descodifique adecuadamente un flujo de bits correspondiente, es decir, un flujo de bits que incluya el VPS. Del mismo modo, un VPS puede especificar informacion de reordenacion de imagen, es decir, un cierto numero de imagenes que pueden preceder a una imagen dada en orden de descodificacion y que suceden a la imagen dada en orden de salida (es decir, orden de visualizacion).In some examples, video encoder 20 and / or video decoder 30 may encode video usability information (VUI) parameters in the VPS. For example, a VPS may include data specifying bit flow restriction information, such as restrictions on the range of motion vectors, DPB size, number of reordering frames and coded block sizes (e.g., macroblocks or CU) and images. In this way, a VPS can specify information indicating a DPB size required for a video decoder (such as video decoder 30) to properly decode a corresponding bit stream, that is, a bit stream that includes the VPS. Similarly, a VPS can specify image reordering information, that is, a certain number of images that can precede a given image in decoding order and that happen to the given image in output order (i.e., order of display).
Adicionalmente o de forma alternativa, un VPS puede incluir datos que especifican informacion de descodificador de referencia hipotetica (HRD). Como se ha indicado anteriormente, el codificador de video 20 y/o el descodificador de video 30 pueden codificar (es decir, senalar) los parametros VUI, que pueden incluir informacion HRD en el VPS. Por lo tanto, un VPS puede incluir datos que describen, por ejemplo, puntos de operacion de un flujo de bits correspondiente. Por ejemplo, un VPS puede incluir datos que describen uno o mas de un cierto numero de puntos de operacion maximos, dependencias entre capas o vistas diferentes, informacion de perfil y nivel para cada punto de operacion, representacion de unidad de VCL NAL de punto de operacion para cada punto de operacion, velocidad de bits para cada punto de operacion, dependencia entre puntos de operacion, restricciones para cada punto de operacion, VUI o VUI parcial para cada punto de operacion y/o VUI o VUI parcial para cada capa o vista.Additionally or alternatively, a VPS may include data specifying hypothetical reference decoder (HRD) information. As indicated above, video encoder 20 and / or video decoder 30 can encode (i.e., signal) VUI parameters, which may include HRD information in the VPS. Therefore, a VPS may include data describing, for example, operating points of a corresponding bit stream. For example, a VPS may include data describing one or more of a certain number of maximum operating points, dependencies between layers or different views, profile and level information for each operating point, representation of VCL NAL unit of point of operation for each point of operation, bit rate for each point of operation, dependence between points of operation, restrictions for each point of operation, VUI or partial VUI for each point of operation and / or VUI or partial VUI for each layer or view .
Un VPS tambien puede incluir para cada dimension: un valor de indice especffico, un intervalo de valores de indice o una lista de valores de indice. Por ejemplo, cuando un VPS incluye datos que describen un valor de indice especffico, el valor de fndice puede corresponder, para una resolucion espacial, a la profundidad de bits para el formato de muestreo de croma. Para mencionar otro ejemplo, cuando un VPS incluye un intervalo de valores de fndice, para capas temporales, el intervalo puede comprender desde cero (0) al ID de capa temporal mas alto, y para capas de calidad, el intervalo puede comprender desde cero (0) al ID de capa de calidad mas alto. Como otro ejemplo, cuando un VPS incluye datos que describen una lista de valores de fndice, la lista puede comprender una lista de valores de fndice de vista para multiples vistas.A VPS can also include for each dimension: a specific index value, a range of index values or a list of index values. For example, when a VPS includes data describing a specific index value, the index value may correspond, for a spatial resolution, to the bit depth for the chroma sampling format. To mention another example, when a VPS includes a range of index values, for time layers, the range may range from zero (0) to the highest time layer ID, and for quality layers, the range may range from zero ( 0) to the highest quality layer ID. As another example, when a VPS includes data describing a list of index values, the list may comprise a list of view index values for multiple views.
En algunos ejemplos, el codificador de video 20 puede codificar (es decir, senalar) y el descodificador de video puede descodificar, uno o mas parametros de formato de representacion (anchura, altura, profundidad de bits, etc.) y puede haber diferentes conjuntos de parametros de formato de representacion. Una capa o punto de operacion puede entonces referirse a un fndice de dicho conjunto de parametros de formato de representacion. Un ejemplo del diseno de sintaxis para tal conjunto se muestra en la Tabla 3 siguiente.In some examples, video encoder 20 may encode (i.e., signal) and the video decoder may decode, one or more representation format parameters (width, height, bit depth, etc.) and there may be different sets of representation format parameters. A layer or point of operation can then refer to an index of said set of representation format parameters. An example of the syntax design for such a set is shown in Table 3 below.
TABLA 3TABLE 3
num_rep_formats_minus1num_rep_formats_minus1
ue(v)eu (v)
- para( i = 0; i <= num rep formats minusl; i++ ) { for (i = 0; i <= num rep formats minusl; i ++) {
- pic_width_in_luma_samples[ i ] pic_width_in_luma_samples [i]
- ue(v) eu (v)
- pic_height_in_luma_samples[ i ] pic_height_in_luma_samples [i]
- ue(v) eu (v)
- bit_depth_luma_minus8[ i ] bit_depth_luma_minus8 [i]
- ue(v) eu (v)
- bit_depth_chroma_minus8[ i ] bit_depth_chroma_minus8 [i]
- ue(v) eu (v)
- chroma_format_idc[ i ] chroma_format_idc [i]
- u(2) u (2)
- } }
- para( i = 0; i < cnt_d; i++) { for (i = 0; i <cnt_d; i ++) {
- rep_format_idx[ i ] rep_format_idx [i]
- ue(v) eu (v)
- } }
En algunos ejemplos, en lugar de eso, el ref_format_idx puede senalarse en el conjunto de parametros de capa.In some examples, instead, the ref_format_idx can be signaled in the set of layer parameters.
55
La Tabla 4 siguiente proporciona una sintaxis de ejemplo para las descripciones de punto de operacion.Table 4 below provides an example syntax for the operation point descriptions.
TABLA 4TABLE 4
- operation_points_description( ) { operation_points_description () {
- Descriptor Descriptor
- num_operation_point_minus1 num_operation_point_minus1
- ue(v) eu (v)
- para( i = 0; i <= num_operation_points_minus1; i++ ) { for (i = 0; i <= num_operation_points_minus1; i ++) {
- op_profile_level_idc[ i ] op_profile_level_idc [i]
- u(24) u (24)
- operation_point_id[ i ] operation_point_id [i]
- ue(v) eu (v)
- priority_id[ i ] priority_id [i]
- ue(v) eu (v)
- temporal_id[ i ] temporary_id [i]
- ue(v) eu (v)
- quality_id[ i ] quality_id [i]
- ue(v) eu (v)
- dependency_id[ i] dependency_id [i]
- ue(v) eu (v)
- if (cnt_v > 1) { if (cnt_v> 1) {
- num_target_output_views_minus1[ i ] num_target_output_views_minus1 [i]
- ue(v) eu (v)
- para( j = 0; j <= num_target_output_views_minus1[ i ]; j++ ) for (j = 0; j <= num_target_output_views_minus1 [i]; j ++)
- view_idx[ i ][ j ] view_idx [i] [j]
- ue(v) eu (v)
- } }
- frm_rate_info_present_flag[ i ] frm_rate_info_present_flag [i]
- u(l) u (l)
- avg_bitrate[ i ] avg_bitrate [i]
- u(16) u (16)
- max_bitrate[ i ] max_bitrate [i]
- u(16) u (16)
- max_bitrate_calc_window[ i ] max_bitrate_calc_window [i]
- u(16) u (16)
- constant_frm_rate_idc[ i ] constant_frm_rate_idc [i]
- u(2) u (2)
- si (cnt_v >1) { yes (cnt_v> 1) {
- num_directly_dependent_views[ i ] num_directly_dependent_views [i]
- para( j = 0; j < num directly dependent views[ i ]; j++ ) { for (j = 0; j <num directly dependent views [i]; j ++) {
- directly_dependent_view_idx[ i ][ j ] directly_dependent_view_idx [i] [j]
- } }
- } }
- si (cnt_v > 1) yes (cnt_v> 1)
- para( i = 1; i < cnt_v; i++ ) { for (i = 1; i <cnt_v; i ++) {
- num_ref_views[ i ] num_ref_views [i]
- ue(v) eu (v)
- para( j = 0; j < num_ref_views[i]; j++ ) for (j = 0; j <num_ref_views [i]; j ++)
- ref_view_idx[ i ][ j ] ref_view_idx [i] [j]
- ue(v) eu (v)
55
1010
15fifteen
20twenty
2525
3030
3535
4040
- } }
- } }
A continuacion se analizan ejemplos de la semantica de los elementos sintacticos de la Tabla 4:Examples of the semantics of the syntactic elements of Table 4 are analyzed below:
En este ejemplo, num_operation_point_minus1 mas 1 especifica el numero maximo de puntos de operacion que estan presentes en la secuencia de video codificada y para los cuales la informacion de punto de operacion es senalada por los siguientes elementos sintacticos.In this example, num_operation_point_minus1 plus 1 specifies the maximum number of operating points that are present in the encoded video sequence and for which the operating point information is signaled by the following syntactic elements.
En este ejemplo, op_profile_level_idc [i], operation_point_id [i], priority_id [i], num_target_output_views_minus1 [i], frm_rate_info_present_flag [i], avg_bitrate [i], max_bitrate [i], max_bitrate_calc_window [i], constant_frm_rate_idc [i] y num_directly_dependent_views [I] puede tener la misma semantica que los elementos sintacticos con los mismos nombres en el mensaje SEI de informacion de escalabilidad de H.264.In this example, op_profile_level_idc [i], operation_point_id [i], priority_id [i], num_target_output_views_minus1 [i], frm_rate_info_present_flag [i], avg_bitrate [i], max_bitrate [i], max_bitrate_calc_wid__dec_direct_window [id] [I] can have the same semantics as the syntactic elements with the same names in the H.264 scalability information SEI message.
En este ejemplo, quality_id [i] y dependency_id [i] pueden tener la misma semantica que los elementos sintacticos con los mismos nombres en el mensaje SEI de informacion de escalabilidad de H.264.In this example, quality_id [i] and dependency_id [i] can have the same semantics as the syntactic elements with the same names in the H.264 scalability information SEI message.
En este ejemplo, directly_dependent_view_idx[i][j] especifica el indice de vista de la j-esima vista de la cual depende directamente la vista de salida de destino del punto de operacion actual en la representacion del punto de operacion actual.In this example, directly_dependent_view_idx [i] [j] specifies the view index of the jth view on which the target output view of the current operating point directly represents the current operating point.
En este ejemplo, num_ref_views[i] especifica el numero de componentes de vista para la prediccion entre vistas en la lista de imagenes de referencia inicial RefPicList0 y RefPicList1 en los componentes de vista de descodificacion con indice de orden de vista igual a i. En este ejemplo, el valor de las vistas num_ref[i] no sera mayor que Min (15, num_views_minus1). En algunos ejemplos, el valor de num_ref_views[0] es igual a 0.In this example, num_ref_views [i] specifies the number of view components for prediction between views in the initial reference image list RefPicList0 and RefPicList1 in decoding view components with view order index equal to i. In this example, the value of the num_ref [i] views will not be greater than Min (15, num_views_minus1). In some examples, the value of num_ref_views [0] is equal to 0.
En este ejemplo, ref_view_idx[i][j] especifica el indice de orden de vista del j-esimo componente de vista para la prediccion entre vistas en la lista de imagenes de referencia inicial RefPicList0 y RefPicList1 en la descodificacion de un componente de vista con indice de orden de vista igual a i. En este ejemplo, el valor de ref_view_idx[i][j] estara en el rango de 0 a 31, inclusive.In this example, ref_view_idx [i] [j] specifies the view order index of the jth view component for prediction between views in the initial reference image list RefPicList0 and RefPicList1 in decoding a view component with order of view index equal to i. In this example, the value of ref_view_idx [i] [j] will be in the range of 0 to 31, inclusive.
En algunos ejemplos, como alternativa, algunos de los elementos sintacticos del mensaje SEI de informacion de escalabilidad (por ejemplo, como se describe en H.264), por ejemplo, los elementos sintacticos relacionados con la informacion de dependencia de capa, se pueden incluir en la estructura de sintaxis operation_points_description() de la Tabla 4.In some examples, as an alternative, some of the syntactic elements of the SEI scalability information message (for example, as described in H.264), for example, the syntactic elements related to the layer dependency information, may be included in the operation_points_description () syntax structure of Table 4.
En algunos ejemplos, el codificador de video 20 y/o el descodificador de video 30 pueden codificar (es decir, senalar) algunos parametros VUI en la estructura de sintaxis operation_points_description() de la Tabla 4.In some examples, video encoder 20 and / or video decoder 30 may encode (i.e., signal) some VUI parameters in the operation_points_description () syntax structure of Table 4.
La Tabla 5 siguiente proporciona una sintaxis alternativa para un conjunto de parametros de video:Table 5 below provides an alternative syntax for a set of video parameters:
TABLA 5TABLE 5
- video_parameter_set_rbsp( ) { video_parameter_set_rbsp () {
- Descriptor Descriptor
- video_parameter_set_id video_parameter_set_id
- ue(v) eu (v)
- num_temporal_layers_minus1 num_temporal_layers_minus1
- u(3) u (3)
- para ( i = 0; i <= num_temporal_layers_minus1; i++ ) { for (i = 0; i <= num_temporal_layers_minus1; i ++) {
- profile_idc[ i ] profile_idc [i]
- u(8) u (8)
- reserved_zero_8bits[ i ] /* equal to 0 */ reserved_zero_8bits [i] / * equal to 0 * /
- u(8) u (8)
- level_idc[i ] level_idc [i]
- u(8) u (8)
- } }
- bit_depth_luma_minus8 bit_depth_luma_minus8
- ue(v) eu (v)
- bit_depth_chroma_minus8 bit_depth_chroma_minus8
- ue(v) eu (v)
- chroma_format_idc chroma_format_idc
- u(2) u (2)
- pic_width_in_luma_samples pic_width_in_luma_samples
- ue(v) eu (v)
- pic_height_in_luma_samples pic_height_in_luma_samples
- ue(v) eu (v)
- pic_cropping_flag pic_cropping_flag
- u(1) u (1)
- si( pic_cropping_flag ) { yes (pic_cropping_flag) {
- pic_crop_left_offset pic_crop_left_offset
- ue(v) eu (v)
- pic_crop_right_offset pic_crop_right_offset
- ue(v) eu (v)
- pi c_c rop_top_offset pi c_c rop_top_offset
- ue(v) eu (v)
- pic_crop_botto m_offs et pic_crop_botto m_offs et
- ue(v) eu (v)
- } }
- temporal_id_nesting_flag temporary_id_nesting_flag
- u(1) u (1)
- bit_equal_to_one /* igual a 1 */ bit_equal_to_one / * equal to 1 * /
- u(1) u (1)
- extension_type /* igual a 0 para 3DV */ extension_type / * equal to 0 for 3DV * /
- ue(v) eu (v)
- num_layers_minus2 num_layers_minus2
- ue(v) eu (v)
- num_rep_formats_minus1 num_rep_formats_minus1
- ue(v) eu (v)
- para( i = 1; i <= num_rep_formats_minus1; i++) { for (i = 1; i <= num_rep_formats_minus1; i ++) {
- bit_depth_luma_minus8[ i ] bit_depth_luma_minus8 [i]
- ue(v) eu (v)
- bit_depth_chroma_minus8[ i ] bit_depth_chroma_minus8 [i]
- ue(v) eu (v)
- chroma_format_idc[ i ] chroma_format_idc [i]
- u(2) u (2)
- pic_width_in_luma_samples[ i ] pic_width_in_luma_samples [i]
- ue(v) eu (v)
- pic_height_in_luma_samples[ i ] pic_height_in_luma_samples [i]
- ue(v) eu (v)
- pic_cropping_flag[ i ] pic_cropping_flag [i]
- u(1) u (1)
- si( pic_cropping_flag[ i ] ) { yes (pic_cropping_flag [i]) {
- pic_crop_left_offset[ i ] pic_crop_left_offset [i]
- ue(v) eu (v)
- pic_crop_right_offset[ i ] pic_crop_right_offset [i]
- ue(v) eu (v)
- pic_crop_top_offset[ i ] pic_crop_top_offset [i]
- ue(v) eu (v)
- pic_crop_bottom_offset[ i ] pic_crop_bottom_offset [i]
- ue(v) eu (v)
- } }
- } }
- para( i = 1; i <= num_layers_minus1; i++ ) { for (i = 1; i <= num_layers_minus1; i ++) {
- rep_format_idx[ i ] rep_format_idx [i]
- ue(v) eu (v)
- si( extension_type = = 1) { yes (extension_type = = 1) {
- dependency_id[ i ] dependency_id [i]
- ue(v) eu (v)
- quality_id[ i ] quality_id [i]
- ue(v) eu (v)
- num_directly_dependent_layers[ i ] num_directly_dependent_layers [i]
- ue(v) eu (v)
- para( j = 0; j < num_directly_dependency_layers[ i ]; j++ ) for (j = 0; j <num_directly_dependency_layers [i]; j ++)
- delta_reference_layer_id_minus1[ i ][ j ] delta_reference_layer_id_minus1 [i] [j]
- ue(v) eu (v)
- } }
- } }
- nu m_short_term_ref_pic_sets nu m_short_term_ref_pic_sets
- ue(v) eu (v)
- para( i = 0; i < num_short_term_ref_pic_sets; i++) for (i = 0; i <num_short_term_ref_pic_sets; i ++)
- short_term_ref_pic_set( i ) short_term_ref_pic_set (i)
- si ( extension_type = =0 ) yes (extension_type = = 0)
- view_dependency( ) view_dependency ()
- num_additional_profiles_levels_minus1 num_additional_profiles_levels_minus1
- ue(v) eu (v)
- para(i = 0; i <= num_additional_profiles_levels_minus1; i++) { for (i = 0; i <= num_additional_profiles_levels_minus1; i ++) {
- additional_profile_idc[ i ] additional_profile_idc [i]
- u(8) u (8)
- additional_reserved_zero_8bits[ i ] /* igual a 0 */ additional_reserved_zero_8bits [i] / * equal to 0 * /
- u(8) u (8)
- additional_level_idc[ i ] additional_level_idc [i]
- u(8) u (8)
- num_applicable_operation_points_minus1[ i ] num_applicable_operation_points_minus1 [i]
- ue(v) eu (v)
- para(j = 0; j <= num_applicable_operation_points[ i ]; j++) { for (j = 0; j <= num_applicable_operation_points [i]; j ++) {
55
1010
15fifteen
20twenty
2525
3030
3535
- temporal_id[ i ][ j ] temporary_id [i] [j]
- ue(v) eu (v)
- layer_id[ i ][ j ] layer_id [i] [j]
- ue(v) eu (v)
- si( extension_type = = 0 ) { /* Siempre verdadero para 3DV */ yes (extension_type = = 0) {/ * Always true for 3DV * /
- depth_included_flag depth_included_flag
- u(1) u (1)
- num_target_output_views_minus1[ i ][ j ] num_target_output_views_minus1 [i] [j]
- ue(v) eu (v)
- para( k = 0; k < num target output views minus1[ i ][ j ]; k++ ) for (k = 0; k <num target output views minus1 [i] [j]; k ++)
- layer_id[ i ][ j ][ k ] layer_id [i] [j] [k]
- ue(v) eu (v)
- } }
- si no (extension_type = = 1) if not (extension_type = = 1)
- layer_id[ i ][ j ] layer_id [i] [j]
- ue(v) eu (v)
- } }
- } }
- vps_vu i_para mete rs_p resent_flag vps_vu i_para mete rs_p resent_flag
- u(1) u (1)
- si(vps_vui_parameters_present_flag) yes (vps_vui_parameters_present_flag)
- vps_vui_parameters( ) vps_vui_parameters ()
- vps_extension_flag vps_extension_flag
- u(1) u (1)
- si(vps_extension_flag) yes (vps_extension_flag)
- mientras(more_rbsp_data( ) ) while (more_rbsp_data ())
- vps_exte nsion_d ata_fl a g vps_exte nsion_d ata_fl a g
- u(1) u (1)
- rbsp_trailing_bits( ) rbsp_trailing_bits ()
- } }
Ejemplos de la semantica para la sintaxis del conjunto de parametros de video de la Tabla 5 se analizan continuacion. En general, los elementos sintacticos nombrados de forma similar que no se analizan a continuacion pueden tener la misma semantica como se ha analizado anteriormente con respecto a la Tabla 2. La semantica para los otros elementos sintacticos puede ser la siguiente:Examples of the semantics for the syntax of the video parameter set in Table 5 are discussed below. In general, similarly named syntactic elements that are not analyzed below may have the same semantics as discussed above with respect to Table 2. The semantics for the other syntactic elements may be as follows:
En este ejemplo, bit_equal_to_one es igual a 1 (es decir, un valor binario "1").In this example, bit_equal_to_one is equal to 1 (that is, a binary value "1").
En este ejemplo, extention_type igual a 0 indica que puede haber capas multivista en el flujo de bits. En este ejemplo, extension_type igual a 1 especifica que varias capas de dependencia y/o calidad pueden estar presentes en el flujo de bits.In this example, extention_type equal to 0 indicates that there may be multivist layers in the bit stream. In this example, extension_type equal to 1 specifies that several layers of dependency and / or quality may be present in the bit stream.
En este ejemplo, num_rep_formats_minus1 mas 1 especifica el numero maximo de formatos de representacion de conjuntos diferentes compatibles con este conjunto de parametros de video; un formato de representacion incluye la profundidad de bits y el formato de croma (es decir, los conjuntos de valores de bit_depth_luma_minus8, bit_depth_chroma_minus8 y chroma_format_idc), informacion sobre la resolucion de imagen y la ventana de recorte en la secuencia de video codificada. El valor del num_rep_formats_minus1 puede estar en la gama entre 0 y X, inclusive. El codificador de video 20 y el descodificador de video 30 pueden codificar el conjunto de profundidad de bits y el formato de croma para la capa base mediante bit_depth_luma_minus8, bit_depth_chroma_minus8 y chroma_format_idc y los conjuntos de profundidad de bits y formato de croma son senalados para capas de realce mediante el siguiente conjunto de elementos sintacticos bit_depth_luma_minus8[i], bit_depth_chroma_minus8[i] y chroma_format_idc[i].In this example, num_rep_formats_minus1 plus 1 specifies the maximum number of representation formats of different sets compatible with this set of video parameters; A representation format includes the bit depth and chroma format (that is, the value sets of bit_depth_luma_minus8, bit_depth_chroma_minus8 and chroma_format_idc), information on image resolution and the crop window in the encoded video sequence. The value of num_rep_formats_minus1 can be in the range between 0 and X, inclusive. Video encoder 20 and video decoder 30 can encode the bit depth set and chroma format for the base layer by bit_depth_luma_minus8, bit_depth_chroma_minus8 and chroma_format_idc and the bit depth and chroma format sets are signaled for layers of enhance using the following set of syntactic elements bit_depth_luma_minus8 [i], bit_depth_chroma_minus8 [i] and chroma_format_idc [i].
El codificador de video 20 y el descodificador de video 30 pueden codificar el primer conjunto de formato de representacion mediante muestras bit_depth_luma_minus8, bit_depth_chroma_minus8, chroma_format_idc, pic_width_in_luma, pic_height_in_luma_samples, pic_cropping_flag, pic_crop_left_offset, pic_crop_right_offset, pic_crop_top_offset y pic_crop_bottom_offset.The video encoder 20 and the video decoder 30 can encode the first set of rendering format by samples bit_depth_luma_minus8, bit_depth_chroma_minus8, chroma_format_idc, pic_width_in_luma, pic_height_in_luma_samples, pic_cropping_flag_ piccropset_ piccropset_ piccropset_ piccropset_ piccropset_ piccropset_ piccropset_ pic_roprop_pict_program_set_program_set_pict_program_set_pict_program_set_program_set_pict_program_set_process_picture
En este ejemplo, bit_depth_luma_minus8 i], bit_depth_chroma_minus8[i] y chroma_format_idc[i] especifican, respectivamente, el i-esimo conjunto de valores bit_depth_luma_minus8, bit_depth_chroma_minus8 y chroma_format_idc en la secuencia de video codificada.In this example, bit_depth_luma_minus8 i], bit_depth_chroma_minus8 [i] and chroma_format_idc [i] specify, respectively, the i-th set of values bit_depth_luma_minus8, bit_depth_chroma_minus8 and chroma_format_idc encoded in the sequence of video.
En este ejemplo, pic_width_in_luma_samples[i] yIn this example, pic_width_in_luma_samples [i] and
pic_height_in_luma_samples[i] especifican, respectivamente, la anchura y la altura de cada imagen descodificada en unidades de muestras de luma utilizando el i-esimo formato de representacion.pic_height_in_luma_samples [i] specify, respectively, the width and height of each decoded image in luma sample units using the ith representation format.
55
1010
15fifteen
20twenty
2525
3030
3535
4040
En este ejemplo, pic_cropping_flag [i] pic_crop_left_offset [i], pic_crop_right_offset [i], pic_crop_top_offset [i] y pic_crop_bottom_offset [i] especifican, para el i-esimo conjunto de formato de representacion, las muestras de las imagenes en la secuencia de video codificada que se emiten desde el proceso de descodificacion, en terminos de una region rectangular especificada en coordenadas de imagen para la salida.In this example, pic_cropping_flag [i] pic_crop_left_offset [i], pic_crop_right_offset [i], pic_crop_top_offset [i] and pic_crop_bottom_offset [i] specify, for the ith set of rendering format, the samples of the images in the video sequence encoded that are emitted from the decoding process, in terms of a rectangular region specified in image coordinates for the output.
En este ejemplo, rep_format_idx [i] especifica el indice de valores para el conjunto de profundidad de bits adicional y el formato de croma que se aplica a la capa con layer_id igual a i. Los valores de bit_depth_luma_minus8, bit_depth_chroma_minus8 y chroma_format_idc para la capa con layer_id igual a i pueden ser iguales a bit_depth_luma_minus8 [rep_format_idx[i]], bit_depth_chroma_minus8 [rep_format_idx[i]] y chroma_format_idc [rep_format_idx[i]], respectivamente. El valor de rep_format_idx[i] estara en la gama entre 0 y X, inclusive.In this example, rep_format_idx [i] specifies the value index for the additional bit depth set and chroma format that is applied to the layer with layer_id equal to i. The values of bit_depth_luma_minus8, bit_depth_chroma_minus8 and chroma_format_idc for the layer with layer_id equal to i can be equal to bit_depth_luma_minus8 [rep_format_idx [i]], bit_depth_chroma_minus8 [rep_format_ida] The value of rep_format_idx [i] will be in the range between 0 and X, inclusive.
En este ejemplo, dependency_id[i] especifica un identificador de dependencia para la capa con layer_id igual a i. dependency_id[i] puede estar en el rango de 0 a X inclusive. Cuando no esta presente, se puede inferir que dependency_id[i] que es 0. Cuando num_directly_dependent_layers[i] es mayor que 0, dependency_id[i] puede ser igual o mayor que el identificador de dependencia de cualquier capa de la cual dependa la capa con layer_id igual a i.In this example, dependency_id [i] specifies a dependency identifier for the layer with layer_id equal to i. dependency_id [i] can be in the range of 0 to X inclusive. When not present, it can be inferred that dependency_id [i] which is 0. When num_directly_dependent_layers [i] is greater than 0, dependency_id [i] can be equal to or greater than the dependency identifier of any layer on which the layer depends with layer_id equal to i.
En este ejemplo, quality_id[i] especifica un identificador de igualdad para la capa con layer_id igual a i. quality_id[i] puede estar en el rango de 0 a X inclusive. Cuando no esta presente, se puede inferir que quality_id [i] es 0. Cuando num_directly_dependent_layers[i] es mayor que 0, quality_id[i] puede ser igual o mayor que el identificador de calidad de cualquier capa de la cual dependa la capa con layer_id igual a i y que tenga un identificador de dependencia igual a dependency_id[i].In this example, quality_id [i] specifies an equality identifier for the layer with layer_id equal to i. quality_id [i] can be in the range of 0 to X inclusive. When not present, it can be inferred that quality_id [i] is 0. When num_directly_dependent_layers [i] is greater than 0, quality_id [i] can be equal to or greater than the quality identifier of any layer on which the layer depends on layer_id equal to and that has a dependency identifier equal to dependency_id [i].
En este ejemplo, num_short_term_ref_pic_sets especifica el numero de conjuntos de imagenes de referencia a corto plazo que se especifican en el conjunto de parametros de video. El valor de num_short_term_ref_pic_sets puede estar en la gama entre 0 y 64, inclusive.In this example, num_short_term_ref_pic_sets specifies the number of short-term reference image sets that are specified in the video parameter set. The value of num_short_term_ref_pic_sets can be in the range between 0 and 64, inclusive.
En este ejemplo, depth_included_flag igual a 1 indica que el punto de operacion 3DV actual contiene profundidad. En este ejemplo, depth_included_flag igual a 0 indica que el punto de operacion 3DV actual no contiene profundidad.In this example, depth_included_flag equal to 1 indicates that the current 3DV operating point contains depth. In this example, depth_included_flag equal to 0 indicates that the current 3DV operating point does not contain depth.
La sintaxis de ejemplo para el elemento de dependencia de vista de la Tabla 5 se proporciona en la Tabla 6 siguiente:The sample syntax for the view dependency element of Table 5 is provided in the following Table 6:
TABLA 6TABLE 6
- view_dependency( ) { view_dependency () {
- num_views_minus1 num_views_minus1
- ue(v) eu (v)
- para( i = 0; i <= num_views_minus1; i++ ) for (i = 0; i <= num_views_minus1; i ++)
- view_id[ i ] view_id [i]
- ue(v) eu (v)
- para( i = 1; i <= num_views_minus1; i++ ) { for (i = 1; i <= num_views_minus1; i ++) {
- num_ref_views[ i ] num_ref_views [i]
- para( j = 0; j < num ref views[ i ]; j++ ) for (j = 0; j <num ref views [i]; j ++)
- ref_view_idx[ i ][ j ] ref_view_idx [i] [j]
- ue(v) eu (v)
- inter_view_texture_flag[ i ][ j ] inter_view_texture_flag [i] [j]
- u(1) u (1)
- } }
- } }
- } }
La Tabla 7 siguiente define un ejemplo de un conjunto de datos en los que la dependencia de vista de cada vista no basica se senala directamente en el nivel de secuencia.Table 7 below defines an example of a data set in which the view dependency of each non-basic view is directly signaled at the sequence level.
TABLA 7TABLE 7
- para( i = 1; i <= num views minus1; i++ ) { for (i = 1; i <= num views minus1; i ++) {
- num_ref_views[ i ] num_ref_views [i]
- ue(v) eu (v)
- para( j = 0; j < num ref views[ i ]; j++ ______)_____________________________ for (j = 0; j <num ref views [i]; j ++ ______) _____________________________
- ref_view_idx[ i ][ j ] ref_view_idx [i] [j]
- ue(v) eu (v)
- } }
En este ejemplo, num_ref_views[i] especifica el numero de componentes de vista para la prediccion entre vistas en la lista de imagenes de referencia inicial RefPicListO y RefPicListl en los componentes de vista de descodificacion con fndice de orden de vista igual a i. En este ejemplo, el valor de num_ref_views[i] no es mayor que Min(15, 5 num_views_minus1). En este ejemplo, el valor de num_ref_views[0] es igual a 0.In this example, num_ref_views [i] specifies the number of view components for the prediction between views in the initial reference image list RefPicListO and RefPicListl in the decoding view components with view order index equal to i. In this example, the value of num_ref_views [i] is not greater than Min (15, 5 num_views_minus1). In this example, the value of num_ref_views [0] is equal to 0.
En este ejemplo, ref_view_idx[i][j] especifica el fndice de orden de vista del j-esimo componente de vista para la prediccion entre vistas en la lista de imagenes de referencia inicial RefPicListO y RefPicListl en la descodificacion de un componente de vista con fndice de orden de vista igual a i. En este ejemplo, el valor de ref_view_idx[i][j] esta en 10 el rango de 0 a 31, inclusive.In this example, ref_view_idx [i] [j] specifies the view order index of the jth view component for prediction between views in the initial reference image list RefPicListO and RefPicListl in decoding a view component with order of view index equal to i. In this example, the value of ref_view_idx [i] [j] is in the range of 0 to 31, inclusive.
15fifteen
Como se ha indicado anteriormente, puede usarse un tipo particular de unidad NAL (por ejemplo, tipo de unidad NAL 10) para encapsular un conjunto de parametros de video. La sintaxis de la unidad NAL puede modificarse como se muestra en el ejemplo de la Tabla 8 siguiente.As indicated above, a particular type of NAL unit (for example, type of NAL unit 10) can be used to encapsulate a set of video parameters. The syntax of the NAL unit can be modified as shown in the example in Table 8 below.
TABLA 8TABLE 8
- nal_unit( NumBytesInNALunit ) { nal_unit (NumBytesInNALunit) {
- Descriptor Descriptor
- forbidden_zero_bit forbidden_zero_bit
- f(1) f (1)
- nal_ref_flag nal_ref_flag
- u(1) u (1)
- nal_unit_type nal_unit_type
- u(6) u (6)
- NumBytesInRBSP = 0 NumBytesInRBSP = 0
- nalUnitHeaderBytes = 1 nalUnitHeaderBytes = 1
- si( nal_unit_type != 10 ) {// no unidad VPS NAL yes (nal_unit_type! = 10) {// no VPS NAL unit
- si( cnt_p > 1 ) yes (cnt_p> 1)
- id de prioridad priority id
- u(v) u (v)
- si(cnt_t> 1) yes (cnt_t> 1)
- temporal_id temporary_id
- u(v) u (v)
- reserved_one_bit reserved_one_bit
- u(1) u (1)
- si( cnt_d > 1 ) yes (cnt_d> 1)
- dependency_id dependency_id
- u(v) u (v)
- si( cnt_q > 1 ) yes (cnt_q> 1)
- quality_id quality_id
- u(v) u (v)
- reserved_one_bit reserved_one_bit
- u(1) u (1)
- si( cnt_v > 1 ) yes (cnt_v> 1)
- view_idx view_idx
- u(v) u (v)
- si( cnt_f ) yes (cnt_f)
- reserved_flags reserved_flags
- u(v) u (v)
- m = Ceil( log2(cnt_p) )+ Ceil(log2(cnt_t) ) + Ceil( log2(cnt_d) ) + Ceil(log2(cnt_q) ) + Ceil( log2(cnt v) ) + cnt f + 2 m = Ceil (log2 (cnt_p)) + Ceil (log2 (cnt_t)) + Ceil (log2 (cnt_d)) + Ceil (log2 (cnt_q)) + Ceil (log2 (cnt v)) + cnt f + 2
- si( ( ( m + 7 >> 3) << 3) - m ) yes (((m + 7 >> 3) << 3) - m)
- bits reservados reserved bits
- u(v) u (v)
- nalUnitHeaderBytes += ( ( m + 7 ) >> 3) nalUnitHeaderBytes + = ((m + 7) >> 3)
- } }
- para( i = nalUnitHeaderBytes; i < NumBytesInNALunit; i++ ) { for (i = nalUnitHeaderBytes; i <NumBytesInNALunit; i ++) {
- si( i + 2 < NumBytesInNALunit && next_bits(24) = = 0x000003 ) { yes (i + 2 <NumBytesInNALunit && next_bits (24) = = 0x000003) {
- rbsp_byte[ NumBytesInRBSP++ ] rbsp_byte [NumBytesInRBSP ++]
- b(8) b (8)
- rbsp_byte[ NumBytesInRBSP++ ] rbsp_byte [NumBytesInRBSP ++]
- b(8) b (8)
- i+=2 i + = 2
55
1010
15fifteen
20twenty
2525
3030
3535
- emulation_prevention_three_byte /* igual a 0x03 */ emulation_prevention_three_byte / * equal to 0x03 * /
- f(8) f (8)
- si no if not
- rbsp_byte[ NumBytesInRBSP++ ] rbsp_byte [NumBytesInRBSP ++]
- b(8) b (8)
- } }
- } }
En este ejemplo, se anaden elementos dentro de la instruccion "si(nal_unit_type!=10)", en relacion con la sintaxis de la unidad NAL convencional. En este ejemplo, el numero de bits utilizados para senalar los elementos sintacticos priority_id, temporal_id, dependency_id, quality_id y view_idx es Ceil(log2 (cnt_p)), Ceil(log2 (cnt_t)), Ceil(log2 (cnt_d)), Ceil(log2(cnt_q)) y Ceil(log2(cnt_v)), respectivamente. Del mismo modo, en este ejemplo, cuando cualquiera de los elementos sintacticos priority_id, temporal_id, dependency_id, quality_id y view_idx no esta presente, se deduce que el valor de ese elemento sintactico es igual a 0.In this example, elements are added within the instruction "yes (nal_unit_type! = 10)", in relation to the syntax of the conventional NAL unit. In this example, the number of bits used to flag the priority_id, temporal_id, dependency_id, quality_id and view_idx syntactic elements is Ceil (log2 (cnt_p)), Ceil (log2 (cnt_t)), Ceil (log2 (cnt_d)), Ceil ( log2 (cnt_q)) and Ceil (log2 (cnt_v)), respectively. Similarly, in this example, when any of the priority_id, temporal_id, dependency_id, quality_id and view_idx syntactic elements is not present, it follows that the value of that syntactic element is equal to 0.
Excepto como se ha definido anteriormente con respecto al numero de bits y las inferencias que pueden dibujarse, la semantica para los elementos sintacticos de la Tabla 8 puede definirse de la forma siguiente. La semantica de priority_id, dependency_id y quality_id puede ser tal como se define en la ampliacion SVC de ITU-T H.264/AVC. La semantica de temporal_id puede ser como se define en WD4 de HEVC. En este ejemplo, reserved_one_bit es igual a 1. El valor 0 para reserved_one_bit puede ser especificado por futuras ampliaciones de la norma HEVC. Los descodificadores, tales como el descodificador de video 30, pueden configurarse para ignorar el valor de reserved_one_bit.Except as defined above with respect to the number of bits and inferences that can be drawn, the semantics for the syntactic elements of Table 8 can be defined as follows. The semantics of priority_id, dependency_id and quality_id can be as defined in the SVC extension of ITU-T H.264 / AVC. The semantic of temporary_id can be as defined in WD4 of HEVC. In this example, reserved_one_bit is equal to 1. The value 0 for reserved_one_bit can be specified by future extensions of the HEVC standard. Decoders, such as video decoder 30, can be configured to ignore the value of reserved_one_bit.
En este ejemplo, view_idx especifica el indice de orden de vista para una vista. La semantica de view_idx puede ser la misma que el elemento sintactico "indice de orden de vista" tal como se especifica en la ampliacion MVC de ITU-T H.264/AVC.In this example, view_idx specifies the view order index for a view. The view_idx semantics can be the same as the "view order index" syntactic element as specified in the MVC extension of ITU-T H.264 / AVC.
En este ejemplo, cada bit de reserved_flags es igual a 1. Otros valores para reserved_flags pueden ser especificados por futuras ampliaciones de la proxima norma HEVC. Los descodificadores, tales como el descodificador de video 30, pueden configurarse para ignorar el valor de reserved_flags, a menos que esten configurados para funcionar de acuerdo con una ampliacion que asigne semantica a bits de reserved_flags. En este ejemplo, el numero de bits utilizados para representar reserved_flags es reserved_flags_len.In this example, each bit of reserved_flags is equal to 1. Other values for reserved_flags may be specified by future extensions of the next HEVC standard. Decoders, such as video decoder 30, can be configured to ignore the value of reserved_flags, unless they are configured to operate according to an extension that allocates semantically to bits of reserved_flags. In this example, the number of bits used to represent reserved_flags is reserved_flags_len.
En este ejemplo, cada bit de reserved_bits es igual a 1. Otros valores para reserved_bits pueden ser especificados por la ampliacion futura de la proxima norma HEVC. Los descodificadores, tales como el descodificador de video 30, pueden configurarse para ignorar el valor de reserved_bits, de nuevo a menos que esten configurados de acuerdo con dicha ampliacion futura. El numero de bits utilizados para representar reserved_bits, en este ejemplo, es ((m+7 >> 3) << 3) -m.In this example, each bit of reserved_bits is equal to 1. Other values for reserved_bits can be specified by the future extension of the next HEVC standard. The decoders, such as video decoder 30, can be configured to ignore the value of reserved_bits, again unless they are configured according to such future expansion. The number of bits used to represent reserved_bits, in this example, is ((m + 7 >> 3) << 3) -m.
La Tabla 9 siguiente proporciona una sintaxis de ejemplo para un conjunto de parametros de capa. Se puede usar la misma sintaxis para cada uno de los LPS de la FIG. 5, en algunos ejemplos.Table 9 below provides an example syntax for a set of layer parameters. The same syntax can be used for each of the LPS of FIG. 5, in some examples.
TABLA 9TABLE 9
- layer_para_set( ) { layer_para_set () {
- Descriptor Descriptor
- depth_flag depth_flag
- u(1) u (1)
- layer_para_set_id layer_para_set_id
- ue(v) eu (v)
- vps_id vps_id
- ue(v) eu (v)
- // cu hierarchy {{ // cu hierarchy {{
- log2_min_coding_block_size_minus3 log2_min_coding_block_size_minus3
- ue(v) eu (v)
- log2_diff_max_min_coding_block_size log2_diff_max_min_coding_block_size
- ue(v) eu (v)
- log2_min_transform_block_size_minus2 log2_min_transform_block_size_minus2
- ue(v) eu (v)
- log2_diff_max_min_transform_block_size log2_diff_max_min_transform_block_size
- ue(v) eu (v)
- log2_min_pcm_coding_block_size_minus3 log2_min_pcm_coding_block_size_minus3
- ue(v) eu (v)
- max_transform_hierarchy_depth_inter max_transform_hierarchy_depth_inter
- ue(v) eu (v)
- max_transform_hierarchy_depth_intra max_transform_hierarchy_depth_intra
- ue(v) eu (v)
- // jerarqufa de cu }} // hierarchy of cu}}
- pcm_bit_depth_luma_minus1 pcm_bit_depth_luma_minus1
- u(4) u (4)
55
1010
15fifteen
20twenty
2525
- pcm_bit_depth_chroma_minus1 pcm_bit_depth_chroma_minus1
- u(4) u (4)
- loop_filter_across_slice_flag loop_filter_across_slice_flag
- u(1) u (1)
- sample_adaptive_offset_enabled_flag sample_adaptive_offset_enabled_flag
- u(1) u (1)
- adaptive_loop_filter_enabled_flag adaptive_loop_filter_enabled_flag
- u(1) u (1)
- pcm_loop_filter_disable_flag pcm_loop_filter_disable_flag
- u(1) u (1)
- cu_qp_delta_enabled_flag cu_qp_delta_enabled_flag
- u(1) u (1)
- // componentes // components
- num_tile_columns_minus1 num_tile_columns_minus1
- ue(v) eu (v)
- num_tile_rows_minus1 num_tile_rows_minus1
- ue(v) eu (v)
- si (num_tile_columns_minus1 != 0 || num_tile_rows_minus1 0) { yes (num_tile_columns_minus1! = 0 || num_tile_rows_minus1 0) {
- tile_boundary_independence_idc tile_boundary_independence_idc
- u(1) u (1)
- uniform_spacing_idc uniform_spacing_idc
- u(1) u (1)
- si (uniform_spacing_idc != 1) { yes (uniform_spacing_idc! = 1) {
- para (i=0; i<num_tile_columns_minus1 ; i++) for (i = 0; i <num_tile_columns_minus1; i ++)
- anchura de columna[i] column width [i]
- ue(v) eu (v)
- para (i=0; i <num_tile_rows_minus1; i++) for (i = 0; i <num_tile_rows_minus1; i ++)
- row_height[i] row_height [i]
- ue(v) eu (v)
- } }
- } }
- lps_extension_flag lps_extension_flag
- u(1) u (1)
- si( lps_extension_flag ) yes (lps_extension_flag)
- mientras( more_rbsp_data( ) ) while (more_rbsp_data ())
- lps_exte nsion_d ata_fl ag lps_exte nsion_d ata_fl ag
- u(1) u (1)
- rbsp_trailing_bits( ) rbsp_trailing_bits ()
- } }
A continuacion se describen ejemplos de la semantica para la sintaxis LPS de la Tabla 9. Diferentes capas (por ejemplo, diferentes vistas en MVC o diferentes capas en SVC) pueden referirse a diferentes LPS. Diferentes capas de calidad en una misma capa de dependencia pueden compartir el mismo LPS. Diferentes capas temporales en una misma capa de dependencia pueden compartir el mismo LPS. De forma alternativa, diferentes vistas pueden referirse a un mismo LPS y diferentes capas de dependencia pueden referirse a un mismo LPS.Examples of the semantics for the LPS syntax in Table 9 are described below. Different layers (for example, different views in MVC or different layers in SVC) may refer to different LPS. Different quality layers in the same dependency layer can share the same LPS. Different temporary layers in the same dependency layer can share the same LPS. Alternatively, different views may refer to the same LPS and different dependency layers may refer to the same LPS.
En este ejemplo, depth_flag igual a 1 especifica que el LPS se aplica a las representaciones de profundidad identificadas por los valores de temporal_id, dependency_id, quality_id y view_idx de la unidad LPS NAL. Depth_flag igual a 0 especifica que el LPS se aplica a las representaciones de textura identificadas por los valores de temporal_id, dependency_id, quality_id y view_idx de la unidad LPS NAL.In this example, depth_flag equal to 1 specifies that the LPS is applied to the depth representations identified by the values of temporal_id, dependency_id, quality_id and view_idx of the LPS NAL unit. Depth_flag equal to 0 specifies that the LPS applies to texture representations identified by the values of temporal_id, dependency_id, quality_id and view_idx of the LPS NAL unit.
En este ejemplo, layer_para_set_id especifica el id del conjunto de parametros de capa actual (LPS). Diferentes conjuntos de parametros de capa con los mismos valores de dependency_id y view_idx, respectivamente, comparten un espacio de valor para layer_para_set_id, lo cual significa que diferentes LPS con diferentes combinaciones de depencey_id y view_idx pueden tener el mismo valor de layer_para_set_id.In this example, layer_para_set_id specifies the id of the current layer parameter set (LPS). Different sets of layer parameters with the same dependency_id and view_idx values, respectively, share a value space for layer_para_set_id, which means that different LPS with different combinations of depencey_id and view_idx can have the same value of layer_para_set_id.
De forma alternativa, todos los LPS pueden compartir el espacio de un valor, lo cual significa que cada LPS tiene un valor distinto de layer_para_set_id.Alternatively, all LPS can share the space of a value, which means that each LPS has a different value than layer_para_set_id.
En este ejemplo, vps_id identifica el conjunto de parametros de video al que se refiere este conjunto de parametros de capa.In this example, vps_id identifies the set of video parameters to which this set of layer parameters refers.
En este ejemplo, lps_extension_flag igual a 0 especifica que no hay elementos sintacticos lps_extension_data_flag presentes en la estructura de sintaxis RBSP del conjunto de parametros de capa. En este ejemplo, lps_extension_flag puede ser igual a 0 en flujos de bits que se ajustan a la proxima norma HEVC. El valor 1 paraIn this example, lps_extension_flag equal to 0 specifies that there are no lps_extension_data_flag syntax elements present in the RBSP syntax structure of the layer parameter set. In this example, lps_extension_flag can be equal to 0 in bit streams that conform to the next HEVC standard. The value 1 for
55
1010
15fifteen
20twenty
2525
3030
3535
lps_extension_flag esta reservado para un uso futuro por ITU-T | ISO/IEC. Los descodificadores, como el descodificador de video 30, pueden ignorar todos los datos que siguen al valor 1 para lps_extension_flag en una unidad NAL de conjunto de parametros de capa.lps_extension_flag is reserved for future use by ITU-T | ISO / IEC Decoders, such as video decoder 30, can ignore all data that follows the value 1 for lps_extension_flag in a NAL unit of layer parameter set.
En este ejemplo, lps_extension_data_flag puede tener cualquier valor y no afecta la conformidad con los perfiles especificados en la proxima norma HEVC.In this example, lps_extension_data_flag can have any value and does not affect compliance with the profiles specified in the next HEVC standard.
Otros elementos sintacticos pueden tener la misma semantica que los elementos sintacticos con los mismos nombres en el SPS de la HEVC WD, pero aplicando solo a las imagenes que se refieren a este LPS.Other syntactic elements may have the same semantics as the syntactic elements with the same names in the SPS of the HEVC WD, but applying only to the images that refer to this LPS.
Un LPS puede estar contenido en una unidad NAL cuya cabecera puede definirse de acuerdo con la Tabla 8 anterior. Los siguientes elementos sintacticos tienen la siguiente semantica ligeramente modificada cuando estan asociadas con un LPS.An LPS can be contained in a NAL unit whose header can be defined in accordance with Table 8 above. The following syntactic elements have the following slightly modified semantics when associated with an LPS.
En este ejemplo, priority_id es igual al valor minimo de los valores priority_id de todas las unidades NAL que se refieren a este LPS.In this example, priority_id is equal to the minimum value of the priority_id values of all NAL units that refer to this LPS.
En este ejemplo, temporal_id es igual al valor minimo del temporal_id de todas las unidades NAL que se refieren a este LPS.In this example, temporal_id is equal to the minimum value of temporal_id of all NAL units that refer to this LPS.
En este ejemplo, dependency_id es igual al dependency_id de todas las unidades NAL que se refieren a este LPS.In this example, dependency_id is equal to the dependency_id of all NAL units that refer to this LPS.
En este ejemplo, quality_id es igual al valor minimo de quality_id de todas las unidades NAL que se refieren a este LPS.In this example, quality_id is equal to the minimum value of quality_id of all NAL units that refer to this LPS.
En este ejemplo, v_idx es el indice de vista del LPS actual. Todas las imagenes que se refieren a este LPS pueden tener un id de vista de view_id [v_idx].In this example, v_idx is the view index of the current LPS. All images that refer to this LPS can have a view id of view_id [v_idx].
De forma alternativa, los elementos sintacticos anteriores pueden senalarse directamente en la tabla de sintaxis del conjunto de parametros de capa, como se muestra en el ejemplo de la Tabla 10. Se puede disenar una tabla de sintaxis mas detallada de acuerdo con la Tabla 9 siguiente. En este caso, esos elementos sintacticos no estan en la cabecera de unidad NAL del LPS y el analisis del LPS puede depender del VPS con un ID igual a vps_id.Alternatively, the above syntactic elements can be directly signaled in the syntax table of the layer parameter set, as shown in the example in Table 10. A more detailed syntax table can be designed in accordance with Table 9 below. . In this case, these syntactic elements are not in the NAL unit header of the LPS and the analysis of the LPS may depend on the VPS with an ID equal to vps_id.
TABLA 10TABLE 10
- layer_para_set( ) { layer_para_set () {
- Descriptor Descriptor
- vps_id vps_id
- u(8) u (8)
- si( cnt_p > 1 ) yes (cnt_p> 1)
- priority_id priority_id
- u(v) u (v)
- si( cnt_t > 1 ) yes (cnt_t> 1)
- temporal_id temporary_id
- u(v) u (v)
- reserved_one_bit reserved_one_bit
- u(1) u (1)
- si( cnt_d > 1 ) yes (cnt_d> 1)
- dependency_id dependency_id
- u(v) u (v)
- si( cnt_q > 1 ) yes (cnt_q> 1)
- quality_id quality_id
- u(v) u (v)
- si( cnt_v > 1 ) yes (cnt_v> 1)
- view_idx view_idx
- u(v) u (v)
- depth_flag depth_flag
- u(1) u (1)
- layer_para_set_id layer_para_set_id
- ue(v) eu (v)
- // jerarqufa de cu { { // hierarchy of cu {{
- rbsp_trailing_bits( ) rbsp_trailing_bits ()
- } }
Un LPS, en este caso, no necesita tener una cabecera de unidad NAL duplicando los elementos sintacticos anteriores. Suponiendo que el tipo de unidad NAL de una unidad NAL que encapsula un LPS es, por ejemplo, 5, laAn LPS, in this case, does not need to have a NAL unit header duplicating the previous syntactic elements. Assuming that the type of NAL unit of an NAL unit that encapsulates an LPS is, for example, 5, the
sintaxis de cabecera de unidad NAL puede modificarse ligeramente como se muestra en la Tabla 11, que anade la excepcion "&& nal_unit_type! = 5" en la instruccion "if" de la Tabla 8:NAL unit header syntax can be modified slightly as shown in Table 11, which adds the exception "&& nal_unit_type! = 5" in the "if" instruction of Table 8:
55
TABLA 11TABLE 11
- nal_unit( NumBytesInNALunit ) { nal_unit (NumBytesInNALunit) {
- Descriptor Descriptor
- forbidden_zero_bit forbidden_zero_bit
- f(1) f (1)
- nal_ref_flag nal_ref_flag
- u(1) u (1)
- nal_unit_type nal_unit_type
- u(6) u (6)
- NumBytesInRBSP = 0 NumBytesInRBSP = 0
- nalUnitHeaderBytes = 1 nalUnitHeaderBytes = 1
- si( nal_unit_type != 10 && nal_unit_type !=5 ) { // no unidad VPS NAL yes (nal_unit_type! = 10 && nal_unit_type! = 5) {// no VPS NAL unit
- si( cnt_p > 1 ) yes (cnt_p> 1)
- priority_id priority_id
- u(v) u (v)
- si( cnt_t > 1 ) yes (cnt_t> 1)
- temporal_id temporary_id
- u(v) u (v)
- reserved_one_bit reserved_one_bit
- u(1) u (1)
- si( cnt_d > 1 ) yes (cnt_d> 1)
- dependency_id dependency_id
- u(v) u (v)
- si( cnt_q > 1 ) yes (cnt_q> 1)
- quality_id quality_id
- u(v) u (v)
- reserved_one_bit reserved_one_bit
- u(1) u (1)
- si( cnt_v > 1 ) yes (cnt_v> 1)
- view_idx view_idx
- u(v) u (v)
- si( cnt_f ) yes (cnt_f)
- reserved_flags reserved_flags
- u(v) u (v)
- m = Ceil( log2(cnt_p))+ Ceil( log2(cnt_t) ) + Ceil( log2(cnt_d) ) + Ceil( log2(cnt_q) ) + Ceil( log2(cnt v) ) + cnt f + 2 m = Ceil (log2 (cnt_p)) + Ceil (log2 (cnt_t)) + Ceil (log2 (cnt_d)) + Ceil (log2 (cnt_q)) + Ceil (log2 (cnt v)) + cnt f + 2
- si( ((m + 7 >> 3) << 3 ) - m) yes (((m + 7 >> 3) << 3) - m)
- reserved_bits reserved_bits
- u(v) u (v)
- nalUnitHeaderBytes += ( ( m + 7 ) >> 3 ) nalUnitHeaderBytes + = ((m + 7) >> 3)
- } }
- para( i = nalUnitHeaderBytes; i < NumBytesInNALunit; i++ ) { for (i = nalUnitHeaderBytes; i <NumBytesInNALunit; i ++) {
- si( i + 2 < NumBytesInNALunit && next_bits( 24 ) = = 0x000003 ) { yes (i + 2 <NumBytesInNALunit && next_bits (24) = = 0x000003) {
- rbsp_byte[ NumBytesInRBSP++ ] rbsp_byte [NumBytesInRBSP ++]
- b(8) b (8)
- rbsp_byte[ NumBytesInRBSP++ ] rbsp_byte [NumBytesInRBSP ++]
- b(8) b (8)
- i += 2 i + = 2
- emulation_prevention_three_byte /* igual a 0x03 */ emulation_prevention_three_byte / * equal to 0x03 * /
- f(8) f (8)
- } si no } if not
- rbsp_byte[ NumBytesInRBSP++ ] rbsp_byte [NumBytesInRBSP ++]
- b(8) b (8)
- } }
- } }
En otros ejemplos, el codificador de video 20 y el descodificador de video 30 pueden codificar los elementos sintacticos relacionados con las caracterfsticas escalables usando codificacion de longitud fija, como se muestra en el ejemplo de la Tabla 12 siguiente.In other examples, video encoder 20 and video decoder 30 can encode syntactic elements related to scalable features using fixed length encoding, as shown in the example in Table 12 below.
TABLA 12TABLE 12
layer_para_set( ) {layer_para_set () {
DescriptorDescriptor
55
1010
15fifteen
20twenty
2525
3030
3535
- vps_id vps_id
- u(8) u (8)
- priority_id priority_id
- u(5) u (5)
- temporal_id temporary_id
- u(3) u (3)
- dependency_id dependency_id
- u(3) u (3)
- quality_id quality_id
- u(3) u (3)
- view_idx view_idx
- u(8) u (8)
- layer_para_set_id layer_para_set_id
- ue(v) eu (v)
- // jerarqufa de cu { { // hierarchy of cu {{
La Tabla 13 siguiente proporciona un ejemplo de sintaxis para un conjunto de parametros de imagen (PPS) de acuerdo con las tecnicas de esta divulgacion. En este ejemplo, el conjunto de parametros de imagen no necesita senalar un "seq_parameter_set_id", contrariamente al PPS de HEVC convencional.Table 13 below provides an example of syntax for a set of image parameters (PPS) according to the techniques of this disclosure. In this example, the image parameter set does not need to signal a "seq_parameter_set_id", contrary to the conventional HEVC PPS.
TABLA 13TABLE 13
- pic_parameter_set_rbsp( ) { pic_parameter_set_rbsp () {
- Descriptor Descriptor
- pic_parameter_set_id pic_parameter_set_id
- ue(v) eu (v)
- pps_extension_flag pps_extension_flag
- u(1) u (1)
- si( pps_extension_flag) yes (pps_extension_flag)
- mientras( more_rbsp_data( ) ) while (more_rbsp_data ())
- pps_extens ion_d ata_fl ag pps_extens ion_d ata_fl ag
- u(1) u (1)
- rbsp_trailing_bits( ) rbsp_trailing_bits ()
- } }
A continuacion se describen ejemplos de la semantica para el PPS de la Tabla 13.Examples of semantics for the PPS in Table 13 are described below.
En este ejemplo, pps_extension_flag igual a 0 especifica que no hay elementos sintacticos pps_extension_data_flag presentes en la estructura de sintaxis RBSP del conjunto de parametros de imagen. En este ejemplo, pps_extension_flag es igual a 0 en flujos de bits que cumplen con la proxima norma HEVC. El valor 1 para pps_extension_flag esta reservado para un uso futuro por ITU-T | ISO/IEC. Los descodificadores, como el descodificador de video 30, pueden ignorar todos los datos que siguen al valor 1 para pps_extension_flag en una unidad NAL del conjunto de parametros de imagen.In this example, pps_extension_flag equal to 0 specifies that there are no pps_extension_data_flag syntax elements present in the RBSP syntax structure of the image parameter set. In this example, pps_extension_flag is equal to 0 in bit streams that meet the next HEVC standard. The value 1 for pps_extension_flag is reserved for future use by ITU-T | ISO / IEC Decoders, such as video decoder 30, can ignore all data that follows the value 1 for pps_extension_flag in a NAL unit of the image parameter set.
En este ejemplo, pps_extension_data_flag puede tener cualquier valor. No afecta necesariamente a la conformidad con los perfiles especificados en la proxima norma HEVC. La semantica para valores de pps_extension_data_flag puede asignarse en desarrollos adicionales de la norma HEVC o ampliaciones de la norma sin entrar en conflicto con las tecnicas de esta divulgacion.In this example, pps_extension_data_flag can have any value. It does not necessarily affect compliance with the profiles specified in the next HEVC standard. The semantics for pps_extension_data_flag values can be assigned in further developments of the HEVC standard or extensions of the standard without conflict with the techniques of this disclosure.
En las tecnicas de esta divulgacion, no es necesario senalar en el PPS ningun id del conjunto de parametros de secuencia o id del conjunto de parametros de capa. Algunos otros elementos sintacticos en PPS se pueden mover a LPS. Es decir, el codificador de video 20 y/o el descodificador de video 30 pueden configurarse para codificar uno o mas LPS incluyendo datos similares a los elementos sintacticos mostrados en la Tabla 13.In the techniques of this disclosure, it is not necessary to indicate in the PPS any id of the set of sequence parameters or id of the set of layer parameters. Some other syntactic elements in PPS can be moved to LPS. That is, video encoder 20 and / or video decoder 30 can be configured to encode one or more LPS including data similar to the syntactic elements shown in Table 13.
La FIG. 6 es un diagrama conceptual que ilustra un ejemplo de un conjunto de parametros de agrupacion (GPS) y relaciones del GPS con otros conjuntos de parametros y cabeceras de fragmentos. En este ejemplo, los otros conjuntos de parametros incluyen LPS, SPS, PPS, conjuntos de parametros de adaptacion (APS) de tipo 0 (por ejemplo, APS que senalan parametros de filtro adaptativo de bucle (ALF)), APS de tipo 1 (por ejemplo, APS que senalan una matriz de cuantizacion) y otros conjuntos de parametros. En este ejemplo, el GPS incluye una pluralidad de grupos diferentes, cada uno de los cuales tiene un ID de GPS unico (tambien denominado ID de grupo), en el que cada grupo indica uno particular de cada uno de los diversos conjuntos de parametros mediante el ID de un conjunto de parametros. De esta manera, las cabeceras de fragmento solo necesitan especificar un group_id para especificar cada uno de los conjuntos de parametros correspondientes al grupo que tiene ese group_id.FIG. 6 is a conceptual diagram illustrating an example of a set of grouping parameters (GPS) and GPS relationships with other sets of parameters and fragment headers. In this example, the other sets of parameters include LPS, SPS, PPS, adaptation parameter sets (APS) of type 0 (for example, APS that indicate adaptive loop filter parameters (ALF)), APS of type 1 ( for example, APS that indicates a quantization matrix) and other sets of parameters. In this example, the GPS includes a plurality of different groups, each of which has a unique GPS ID (also called group ID), in which each group indicates a particular one of each of the various parameter sets by the ID of a set of parameters. In this way, fragment headers only need to specify a group_id to specify each of the parameter sets corresponding to the group that has that group_id.
Las tablas 14 y 15 siguientes proporcionan ejemplos alternatives de sintaxis para un conjunto de parametros de agrupacion RBSP.Tables 14 and 15 below provide alternative examples of syntax for a set of RBSP grouping parameters.
55
TABLA 14TABLE 14
- group_para_set_rbsp() { group_para_set_rbsp () {
- Descriptor Descriptor
- number signaled_para_set_groups_minus1 number signaled_para_set_groups_minus1
- ue(v) eu (v)
- para( i = 0; i<= number signaled para set groups minus1; i++ ) { for (i = 0; i <= number signaled for set groups minus1; i ++) {
- para_set_group_id[ i ] para_set_group_id [i]
- ue(v) eu (v)
- lps_id[ i ] lps_id [i]
- ue(v) eu (v)
- pps_id[ i ] pps_id [i]
- ue(v) eu (v)
- para (j= 0; j< numParaSetTypes; j++) for (j = 0; j <numParaSetTypes; j ++)
- para_set_type_id[ i ] [ j ] para_set_type_id [i] [j]
- } }
- gps_exte nsion_flag gps_exte nsion_flag
- u(1) u (1)
- si( gps_extension_flag ) yes (gps_extension_flag)
- mientras( more_rbsp_data( ) ) while (more_rbsp_data ())
- gps_exte nsion_d ata_fl ag gps_exte nsion_d ata_fl ag
- u(1) u (1)
- rbsp_trailing_bits( ) rbsp_trailing_bits ()
- } }
TABLA 15TABLE 15
- group_para_set_rbsp( ) { group_para_set_rbsp () {
- Descriptor Descriptor
- number_signaled_para set_groups_minus1 number_signaled_para set_groups_minus1
- ue(v) eu (v)
- para( i = 0; i<= number signaled para set groups minus1; i++ ) { for (i = 0; i <= number signaled for set groups minus1; i ++) {
- para_set_roup_id[ i ] para_set_roup_id [i]
- ue(v) eu (v)
- lps_id[ i ] lps_id [i]
- ue(v) eu (v)
- pps_id[ i ] pps_id [i]
- ue(v) eu (v)
- aps_id[ i ] aps_id [i]
- ue(v) eu (v)
- } }
- gps_exte nsion_flag gps_exte nsion_flag
- u(1) u (1)
- si( gps_extension_flag ) yes (gps_extension_flag)
- mientras( more_rbsp_data( ) ) while (more_rbsp_data ())
- gps_exte nsion_d ata_fl ag gps_exte nsion_d ata_fl ag
- u(1) u (1)
- rbsp_trailing_bits( ) rbsp_trailing_bits ()
- } }
10 Los codificadores de video, tales como el codificador de video 20 y el descodificador de video 30, pueden configurarse para codificar un conjunto de parametros de agrupacion de acuerdo con, por ejemplo, la Tabla 14 o la Tabla 15. A continuacion se proporcionan ejemplos de semantica para la sintaxis de los conjuntos de parametros de agrupacion.10 Video encoders, such as video encoder 20 and video decoder 30, can be configured to encode a set of grouping parameters according to, for example, Table 14 or Table 15. Examples are given below. of semantics for the syntax of the grouping parameter sets.
15 En este ejemplo, number_signalled_para_set_groups_minus1 mas 1 especifica el numero de grupos de parametros senalados. Este valor puede estar en la gama entre 0 y 30, inclusive.15 In this example, number_signalled_para_set_groups_minus1 plus 1 specifies the number of groups of flagged parameters. This value can be in the range between 0 and 30, inclusive.
En este ejemplo, para_set_group_id[ i ] especifica el ID del i-esimo grupo de conjuntos de parametros senalados. El valor de para_set_group_id[ i ] estara en la gama entre 0 y 31, inclusive.In this example, para_set_group_id [i] specifies the ID of the ith set group of set parameters. The value of para_set_group_id [i] will be in the range between 0 and 31, inclusive.
En este ejemplo, para_set_type_id [ i ] [ j ] especifica el ID del j-esimo tipo del conjunto de parametros para el i-esimoIn this example, para_set_type_id [i] [j] specifies the ID of the jth type of the parameter set for the i-th
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
grupo del conjuntos de parametros.group of parameter sets.
En este ejemplo, lps_id [ i ] indica el id del conjunto de parametros de capa al que hace referenda el grupo de conjuntos de parametros con un id de grupo de para_set_group_id [ i ]. Los valores de dependency_id y view_idx de un LPS con layer_para_set_id igual a lps_id [ i ] pueden ser identicos a los valores de dependency_id y view_idx, respectivamente, de la unidad NAL del grupo de conjuntos de parametros.In this example, lps_id [i] indicates the id of the layer parameter set referenced by the group of parameter sets with a group id of para_set_group_id [i]. The dependency_id and view_idx values of an LPS with layer_para_set_id equal to lps_id [i] can be identical to the dependency_id and view_idx values, respectively, of the NAL unit of the parameter set group.
Los valores de dependency_id y view_idx de un conjunto de parametros RBSP estan presentes en la cabecera de unidad NAL de esta RBSP en los ejemplos de las Tablas 14 y 15 y los valores de dependency_id y view_idx de un LPS pueden estar presentes en la cabecera de unidad NAL de este LPS o en la tabla de sintaxis del LPS.The dependency_id and view_idx values of a set of RBSP parameters are present in the NAL unit header of this RBSP in the examples in Tables 14 and 15 and the dependency_id and view_idx values of an LPS may be present in the unit header NAL of this LPS or in the LPS syntax table.
De forma alternativa, los valores de dependency_id y view_idx de un LPS con layer_para_set_id igual a lps_id[i] pueden no ser identicos a los valores de dependency_id y view_idx, respectivamente, de la unidad NAL del grupo de conjuntos de parametros.Alternatively, the dependency_id and view_idx values of an LPS with layer_para_set_id equal to lps_id [i] may not be identical to the dependency_id and view_idx values, respectively, of the NAL unit of the parameter set group.
En este ejemplo, pps_id[ i ] indica el id del conjunto de parametros de imagen al que hace referencia el grupo de conjuntos de parametros con un id de grupo de para_set_group_id [ i ].In this example, pps_id [i] indicates the id of the image parameter set referenced by the parameter set group with a group id of para_set_group_id [i].
En este ejemplo, aps_id [ i ] indica el id del conjunto de parametros de adaptacion al que hace referencia el grupo de conjuntos de parametros con un id de grupo de para_set_group_id [ i ].In this example, aps_id [i] indicates the id of the adaptation parameter set referenced by the parameter set group with a group id of para_set_group_id [i].
En este ejemplo, gps_extension_flag igual a 0 especifica que no hay elementos sintacticos gps_extension_data_flag presentes en la estructura de sintaxis RBSP de la agrupacion de conjunto de parametros. Gps_extension_flag puede ser igual a 0 en flujos de bits que cumplen con la proxima norma HEVC. El valor 1 para gps_extension_flag puede estar reservado para un uso futuro por parte de ITU-T | ISO/IEC. Los descodificadores, como el descodificador de video 30, pueden ignorar todos los datos que siguen al valor 1 para gps_extension_flag en la unidad NAL de la agrupacion del conjunto de parametros. En general, gps_extension_data_flag puede tener cualquier valor. No tiene por que afectar a la conformidad con los perfiles especificados en la proxima norma HEVC.In this example, gps_extension_flag equal to 0 specifies that there are no gps_extension_data_flag syntax elements present in the RBSP syntax structure of the parameter set pool. Gps_extension_flag can be equal to 0 in bit streams that meet the next HEVC standard. The value 1 for gps_extension_flag may be reserved for future use by ITU-T | ISO / IEC Decoders, such as video decoder 30, can ignore all data that follows the value 1 for gps_extension_flag in the NAL unit of the parameter set pool. In general, gps_extension_data_flag can have any value. It does not have to affect compliance with the profiles specified in the next HEVC standard.
En algunos ejemplos, para_set_type_id [ i ] [ j ] puede en lugar de eso ser aps_id [ i ] [ j ], con similar semantica aaps_id [ i ] como se ha descrito anteriormente.In some examples, para_set_type_id [i] [j] may instead be aps_id [i] [j], with similar semantics aaps_id [i] as described above.
Como se muestra en la FIG. 6, en lugar de referirse al ID del conjunto de parametros de imagen en la cabecera de fragmento, de acuerdo con las tecnicas de esta divulgacion, la cabecera de fragmento puede referirse a un ID del grupo de conjuntos de parametros, haciendo referencia indirectamente a un LPS, un PPS y un APS de cada tipo (por ejemplo, APS que proporcionan parametros ALF y matrices de cuantizacion).As shown in FIG. 6, instead of referring to the ID of the set of image parameters in the fragment header, according to the techniques of this disclosure, the fragment header may refer to an ID of the group of parameter sets, indirectly referring to a LPS, a PPS and an APS of each type (for example, APS that provide ALF parameters and quantization matrices).
Un codificador de video puede activar un conjunto de parametros de video o unos conjuntos de parametros de capa cuando una unidad VCL NAL (que contiene un fragmento codificado) se refiere al conjunto de parametros, indirectamente, por ejemplo, basandose en el principio de diseno H.264/AVC.A video encoder can activate a set of video parameters or sets of layer parameters when a VCL NAL unit (containing a coded fragment) refers to the set of parameters, indirectly, for example, based on the design principle H .264 / AVC.
En algunos ejemplos, los conjuntos de parametros pueden ser activados por un tipo especffico de unidad NAL en lugar de por un fragmento codificado. Por ejemplo, un tipo de unidad NAL de este tipo especffico (unidad de NAL de activacion de conjuntos de parametros), si esta presente en el flujo de bits, puede activar uno y exactamente uno, VPS. En varias alternativas, ademas, tal tipo de unidad NAL puede activar al menos un LPS. Ademas, dicho tipo de unidad NAL puede activar al menos un PPS. Ademas, dicho tipo de unidad NAL puede activar al menos un APS. Una unidad NAL de activacion de conjuntos de parametros puede ser un conjunto de parametros de agrupacion RBSP. Una unidad NAL de activacion de conjuntos de parametros (PSA) puede ser aplicable a una secuencia de video codificada. Una unidad PSA NAL puede considerarse una unidad NAL no VCL, es decir, no es directamente relevante para un codificador de video. La sintaxis de cabecera de unidad NAL de la unidad PSA NAL puede ser la misma que una unidad VAL NAL.In some examples, parameter sets can be activated by a specific type of NAL unit instead of by an encoded fragment. For example, a specific type of NAL unit (parameter set activation NAL unit), if present in the bit stream, can activate one and exactly one, VPS. In several alternatives, moreover, such a NAL unit can activate at least one LPS. In addition, said type of NAL unit can activate at least one PPS. In addition, said type of NAL unit can activate at least one APS. An NAL unit of parameter set activation may be a set of RBSP grouping parameters. A NAL parameter set activation unit (PSA) may be applicable to an encoded video sequence. A PSA NAL unit can be considered a non-VCL NAL unit, that is, it is not directly relevant to a video encoder. The NAL unit header syntax of the PSA NAL unit can be the same as a VAL NAL unit.
En algunos ejemplos, una unidad PSA NAL, si esta presente en una unidad de acceso, puede preceder a la primera unidad VAL NAL de la unidad de acceso. Puede haber al menos una unidad PSA NAL en la primera unidad de acceso de una secuencia de video codificada, por ejemplo, una imagen IDR. Multiples unidades PSA NAL en la misma secuencia de video codificada pueden contener el mismo id de VPS; por lo tanto, no es necesario activar diferentes conjuntos de parametros de video dentro de la misma secuencia de video codificada. Una unidad PSA NAL, si esta presente en una unidad de acceso, puede preceder a cualquier unidad LPS, PPS, APS o SEI NAL, si esta presente. Una unidad VPS NAL, si esta presente en una unidad de acceso, puede preceder a cualquier unidad LPS, PPS, APS o SEI NAL, si esta presente. En varias alternativas, ademas, una unidad PSA NAL, si esta presente en una unidad de acceso, puede preceder a una unidad VPS NAL, si esta presente.In some examples, a PSA NAL unit, if present in an access unit, may precede the first VAL NAL unit of the access unit. There may be at least one PSA NAL unit in the first access unit of an encoded video sequence, for example, an IDR image. Multiple PSA NAL units in the same encoded video stream may contain the same VPS id; therefore, it is not necessary to activate different sets of video parameters within the same encoded video sequence. A PSA NAL unit, if present in an access unit, can precede any LPS, PPS, APS or SEI NAL unit, if present. A VPS NAL unit, if present in an access unit, can precede any LPS, PPS, APS or SEI NAL unit, if present. In several alternatives, in addition, a PSA NAL unit, if present in an access unit, may precede a VPS NAL unit, if present.
En algunos ejemplos, los codificadores de video, tales como el codificador de video 20 y el descodificador de video 30, pueden configurarse para utilizar la sintaxis de la Tabla 16 para un conjunto de parametros de secuencia (SPS), en oposicion a la sintaxis SPS convencional de, por ejemplo, la HEVC.In some examples, video encoders, such as video encoder 20 and video decoder 30, can be configured to use the syntax of Table 16 for a set of sequence parameters (SPS), as opposed to SPS syntax conventional of, for example, the HEVC.
zeze
- U)n A
- Beu-;u3S3jd-s3!d~(3J-iLiJ3i.-Buo| Beu-; u3S3jd-s3! D ~ (3J-iLiJ3i.-Buo |
- (U)n (A
- Be u-p31 q e u 3-^xt>-j 3^u | Be u-p31 q e u 3- ^ xt> -j 3 ^ u |
- ( 0 = = £snu!LU_0Z!s_>joo|q_6Lupoo_u!LU_2:6o| )|s (0 = = £ snu! LU_0Z! S_> joo | q_6Lupoo_u! LU_2: 6o |) | s
- (U)n (A
- BBU-6uqs3U-p!-|BJodLU3i BBU-6uqs3U-p! - | BJodLU3i
- (U)n (A
- 6e|j-3|qes!p-J3iiw-doo|-iuod 6e | j-3 | qes! P-J3iiw-doo | -iuod
- (6e|i_p0|qeu0_Luod )|s (6e | i_p0 | qeu0_Luod) | s
- (U)n (A
- Be |i-ao j | s-u !-i0oo-i| b Be | i-ao j | s-u! -i0oo-i | b
- ( 6B|i_p0|qeu0_j0im_doo|_0AqdepB )|s (6B | i_p0 | qeu0_j0im_doo | _0AqdepB) | s
- (U)n (A
- BB|i_p3|qBU3_J3J|!i_doO|_3A!jdBpB BB | i_p3 | qBU3_J3J |! I_doO | _3A! JdBpB
- U)n A
- Bb u-p01 qB u 0-i0sy o-0A qd b pB-0| d lu b s Bb u-p01 qB u 0-i0sy o-0A qd b pB-0 | d lu b s
- (U)n (A
- BB|i_p0|qBU3_30jjpBnb_3JBnbs_uou BB | i_p0 | qBU3_30jjpBnb_3JBnbs_uou
- (U)n (A
- BB|i-p0|qBU0-suoq!^iBd_uoqoLU-oui0LULuAsB BB | i-p0 | qBU0-suoq! ^ IBd_uoqoLU-oui0LULuAsB
- (U)n (A
- BBU-p0|qBU0-s0O!|s-ssojoB-j0im-doo|-b0s BBU-p0 | qBU0-s0O! | S-ssojoB-j0im-doo | -b0s
- (U)n (A
- BBU-p0|qBU0-sdB_U!-j0im-Bu!>|oo|q0p BBU-p0 | qBU0-sdB_U! -J0im-Bu!> | Oo | q0p
- U)n A
- BBU-p0|qBU0_BLun|-LuoJi-p0jd-BLUojqo BBU-p0 | qBU0_BLun | -LuoJi-p0jd-BLUojqo
- BBy-0|qBU0-iS!|-Bu!|BOS BBy-0 | qBU0-iS! | -Bu! | BOS
- (A)en (A) in
- EJ}U!-q}d3p-Aq3JEJ3!q-iujojsuEJ}-XEiu EJ} U! -Q} d3p-Aq3JEJ3! Q-iujojsuEJ} -XEiu
- (A)en (A) in
- J3jU!_qjd0p_AqojBJ3!q_LUJO:isuBJj_XBLU J3jU! _Qjd0p_AqojBJ3! Q_LUJO: isuBJj_XBLU
- { {
- (A)en (A) in
- 0Z!S->|oo|q-Bu!poo-LUod-U!LU-XBLU-y!p-3Bo| 0Z! S-> | oo | q-Bu! Poo-LUod-U! LU-XBLU-y! P-3Bo |
- (A)en (A) in
- gsnu!LU-0Z!s->|oo|q-Bu!poo-Luod-u!LU-3Bo| gsnu! LU-0Z! s-> | oo | q-Bu! poo-Luod-u! LU-3Bo |
- } ( 6B|i_p0|qBU0_LUod )|s } (6B | i_p0 | qBU0_LUod) | s
- (A)en (A) in
- 3Z!S_>|30|q_lUJ0JSUEJ}_U!lU_XElU_.y!P_260| 3Z! S_> | 30 | q_lUJ0JSUEJ} _U! LU_XElU_.y! P_260 |
- (A)en (A) in
- 3snu!LU-0Z!s->|oo|q-LUJOisuBJi-u!LU-3Bo| 3snu! LU-0Z! S-> | oo | q-LUJOisuBJi-u! LU-3Bo |
- (A)en (A) in
- 3Z|s_>|oo|q_Bu!poo_u!LU_XBLU_:y!p_2Bo| 3Z | s_> | oo | q_Bu! Poo_u! LU_XBLU_: y! P_2Bo |
- (A)en (A) in
- gsnu!LU-0Z!S->|oo|q-Bu!poo-U!LU-3Bo| gsnu! LU-0Z! S-> | oo | q-Bu! poo-U! LU-3Bo |
- (U)n (A
- BBU-iU0S0jd-uoqBoy!poLU-siS!| BBU-iU0S0jd-uoqBoy! PoLU-siS! |
- (6B|.}_S}S!|_3!d_.}0J_p0}3LqS0J )|S (6B |.} _ S} S! | _3! D _.} 0J_p0} 3LqS0J) | S
- U)n A
- BB|i_sjS!|_O!d_i3J_p0jO!JjS3J BB | i_sjS! | _O! D_i3J_p0jO! JjS3J
- { {
- (A)en (A) in
- [ | ]j0sb0jou!-Aou01b|-xblu [| ] j0sb0jou! -Aou01b | -xblu
- (A)en (A) in
- [ | ]so!d-j0pjo0j-Lunu [| ] so! d-j0pjo0j-Lunu
- (A)en (A) in
- [ | ]BuN0ijnq-o!d-o0p-XBLU [| ] BuN0ijnq-o! D-o0p-XBLU
- } ( ++| 1 |,snu!iu—sjbAbi-|BJodiu0}—XBiu => \ lo = \ )BJBd } (++ | 1 |, snu! Iu — sjbAbi- | BJodiu0} —XBiu => \ lo = \) BJBd
- (A)en (A) in
- ^snu!LU-qs|-iuo-j0pjo-o!d-XELU-3Bo| ^ snu! LU-qs | -iuo-j0pjo-o! d-XELU-3Bo |
- (U)n (A
- BBU-ssBdAq-iuBnbsuBJi_oj0z-A-0Luuddb BBU-ssBdAq-iuBnbsuBJi_oj0z-A-0Luuddb
- { {
- (fr)n (fr) n
- |,snu!LU-BLUOjqo-qid0p-i!q-LUod |, snu! LU-BLUOjqo-qid0p-i! q-LUod
- (fr)n (fr) n
- |,snu!LU-BLun|-qid0p-i!q-Luod |, snu! LU-BLun | -qid0p-i! q-Luod
- } ( 6B|i_p0|qBU0_LUod )|s } (6B | i_p0 | qBU0_LUod) | s
- U)n A
- Be y-p0| q b u 0-lu od Be y-p0 | q b u 0-lu od
- (A)en (A) in
- xpj-JBLUJO^-d0J xpj-JBLUJO ^ -d0J
- (A)en (A) in
- P!_J0S_J0J0LUBJBd—O0pjA P! _J0S_J0J0LUBJBd — O0pjA
- jojduosaQ jojduosaQ
- } () B!ou0no0s_0p_soJi0LUBJBd_0p_ojunruoo_0p_dsqj } () B! Ou0no0s_0p_soJi0LUBJBd_0p_ojunruoo_0p_dsqj
91. vnavi91. vnavi
zuos-zo-euzuos-zo-eu
sesoozei.3sesoozei.3
- tiles_or_entropy_coding_sync_idc tiles_or_entropy_coding_sync_idc
- u(2) u (2)
- si( tiles_or_entropy_coding_sync_idc = = 1 ) { yes (tiles_or_entropy_coding_sync_idc = = 1) {
- num_tile_columns_minus1 num_tile_columns_minus1
- ue(v) eu (v)
- num_tile_rows_minus1 num_tile_rows_minus1
- ue(v) eu (v)
- uniform_spacing_flag uniform_spacing_flag
- u(1) u (1)
- si( !uniform_spacing_flag ) { yes (! uniform_spacing_flag) {
- para( i = 0; i < num_tile_columns_minus1; i++ ) for (i = 0; i <num_tile_columns_minus1; i ++)
- column_width[ i ] column_width [i]
- ue(v) eu (v)
- para( i = 0; i < num_tile_rows_minus1; i++ ) for (i = 0; i <num_tile_rows_minus1; i ++)
- row_height[ i ] row_height [i]
- ue(v) eu (v)
- } }
- loop_filter_ac ross_ti les_e nabled_flag loop_filter_ac ross_ti les_e nabled_flag
- u(1) u (1)
- } }
- vui_parameters_present_flag vui_parameters_present_flag
- u(1) u (1)
- si( vui_parameters_present_flag ) yes (vui_parameters_present_flag)
- vui_parameters( ) vui_parameters ()
- sps_extension_flag sps_extension_flag
- u(1) u (1)
- si( sps_extension_flag ) yes (sps_extension_flag)
- mientras( more_rbsp_data( ) ) while (more_rbsp_data ())
- s ps_exte nsion_d ata_fl ag s ps_exte nsion_d ata_fl ag
- u(1) u (1)
- rbsp_trailing_bits( ) rbsp_trailing_bits ()
- } }
El ejemplo SPS de la Tabla 16 elimina profile_idc, reserved_zero_8bits, level_idc, chroma_format_idc, separate_colour_plane_flag y correspondiente condicional "si", max_temporal_layers_minus1, pic_width_in_luma_samples, pic_height_in_luma_samples, pic_cropping_flag, pic_crop_left_offset, 5 pic_crop_right_offset, pic_crop_top_offset, y pic_crop_bottom_offset y la correspondiente instruccion condicional "si", bit_depth_luma_minus8, bit_depth_chroma_minus8 , num_short_term_ref_pic_sets y short_term_ref_pic_set(i) y la correspondiente instruccion condicional "si" de la sintaxis SPS convencional. Ademas, el ejemplo SPS de la Tabla 16 anade un video_parameter_set_id y rep_format_idx. La semantica para los demas elementos sintacticos restantes puede ser la misma que se define en la HEVC convencional. La semantica para los elementos anadidos 10 video_parameter_set_id y rep_format_idx se puede definir de la siguiente manera:The SPS example of Table 16 removes profile_idc, reserved_zero_8bits, level_idc, chroma_format_idc, separate_colour_plane_flag and corresponding conditional "if" max_temporal_layers_minus1, pic_width_in_luma_samples, pic_height_in_luma_samples, pic_cropping_flag, pic_crop_left_offset, 5 pic_crop_right_offset, pic_crop_top_offset and pic_crop_bottom_offset and the corresponding conditional statement "if" bit_depth_luma_minus8, bit_depth_chroma_minus8, num_short_term_ref_pic_sets and short_term_ref_pic_set (i) and the corresponding conditional instruction "yes" of the conventional SPS syntax. In addition, the SPS example in Table 16 adds a video_parameter_set_id and rep_format_idx. The semantics for the remaining remaining syntactic elements may be the same as defined in the conventional HEVC. The semantics for the added elements 10 video_parameter_set_id and rep_format_idx can be defined as follows:
En este ejemplo, video_parameter_set_id identifica el conjunto de parametros de video (VPS) al que hace referencia el SPS actual. De forma alternativa, video_parameter_set_id no necesita ser senalado y puede usarse un GPS para vincular un SPS a un VPS especifico.In this example, video_parameter_set_id identifies the set of video parameters (VPS) referenced by the current SPS. Alternatively, video_parameter_set_id does not need to be signaled and a GPS can be used to link an SPS to a specific VPS.
15fifteen
En este ejemplo, rep_format_idx especifica el indice del formato de representacion senalado en el conjunto de parametros de video a los que se hace referencia.In this example, rep_format_idx specifies the index of the representation format indicated in the set of video parameters referenced.
Como otra alternativa, la Tabla 17 proporciona otro ejemplo de sintaxis para un conjunto de parametros de 20 agrupacion. Se supone que, en este ejemplo, el elemento sintactico del ID de conjunto de parametros de video no esta presente en la sintaxis de SPS, como se ha descrito anteriormente.As another alternative, Table 17 provides another example of syntax for a set of 20 grouping parameters. It is assumed that, in this example, the syntactic element of the video parameter set ID is not present in the SPS syntax, as described above.
TABLA 17TABLE 17
- group_para_set_rbsp( ) { group_para_set_rbsp () {
- Descriptor Descriptor
- gps_is gps_is
- ue(v) eu (v)
- vps_id vps_id
- ue(v) eu (v)
- sps_id sps_id
- ue(v) eu (v)
- pps_id pps_id
- ue(v) eu (v)
- nu m_ref_aps_ids nu m_ref_aps_ids
- ue(v) eu (v)
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
- para( i = 0; i < num ref aps ids; i++ ) { for (i = 0; i <num ref aps ids; i ++) {
- ref_aps_id[ i ] ref_aps_id [i]
- ue(v) eu (v)
- ref_aps_param_type[ i ] ref_aps_param_type [i]
- ue(v) eu (v)
- } }
- gps_exte nsion_flag gps_exte nsion_flag
- u(1) u (1)
- si( gps_extension_flag ) yes (gps_extension_flag)
- mientras( more_rbsp_data( ) ) while (more_rbsp_data ())
- g p s_exte nsion_d ata_fl a g g p s_exte nsion_d ata_fl a g
- u(1) u (1)
- rbsp_trailing_bits( ) rbsp_trailing_bits ()
- } }
La semantica para los elementos sintacticos de la Tabla 17 puede definirse de la forma siguiente:The semantics for the syntactic elements of Table 17 can be defined as follows:
En este ejemplo, gps_id especifica el identificador de un conjunto de parametros de grupo (GPS).In this example, gps_id specifies the identifier of a set of group parameters (GPS).
En este ejemplo, vps_id especifica el identificador del conjunto de parametros de video al que hace referencia el GPS.In this example, vps_id specifies the identifier of the set of video parameters referenced by GPS.
En este ejemplo, sps_id especifica el identificador del conjunto de parametros de secuencia al que hace referencia el GPS.In this example, sps_id specifies the identifier of the sequence parameter set referenced by the GPS.
En este ejemplo, pps_id especifica el identificador del conjunto de parametros de secuencia de imagenes al que hace referencia el GPS.In this example, pps_id specifies the identifier of the set of image sequence parameters referenced by the GPS.
En este ejemplo, num_ref_aps_ids especifica el numero de los siguientes elementos sintacticos ref_aps_id [ i ]. El valor de num_ref_aps_ids puede estar en la gama entre 0 y 4, inclusive.In this example, num_ref_aps_ids specifies the number of the following syntactic elements ref_aps_id [i]. The value of num_ref_aps_ids can be in the range between 0 and 4, inclusive.
En este ejemplo, ref_aps_id [ i ] identifica el i-esimo conjunto de parametros de adaptacion al que hace referencia el conjunto de parametros de grupo.In this example, ref_aps_id [i] identifies the ith set of adaptation parameters referenced by the group parameter set.
El mismo valor de la ref_aps_id [ i ] puede estar presente en el bucle mas de una vez y, por lo tanto, se puede hacer referencia a mas de un tipo de parametros APS de la misma APS por parte del mismo GPS y puede aplicarse a los fragmentos codificados en relacion con el GPS .The same value of ref_aps_id [i] can be present in the loop more than once and, therefore, reference can be made to more than one type of APS parameters of the same APS by the same GPS and can be applied to the fragments encoded in relation to the GPS.
En este ejemplo, ref_aps_param_type [ i ] especifica el tipo de los parametros APS incluidos en el i-esimo conjunto de parametros de adaptacion al que hace referencia el conjunto de parametros de grupo. El valor de ref_aps_parame_type[ i ] puede estar en la gama entre 0 y 3, inclusive. Los valores de 0 a 3, inclusive, para ref_aps_parame_type[ i ] corresponden a los tipos de parametro APS de la lista de escalado, filtro de desbloqueo, desviacion de adaptacion de muestra (SAO) y ALF, respectivamente. Los valores de ref_aps_parame_type [ i ] para dos valores cualesquiera diferentes de i no seran identicos, en algunos ejemplos.In this example, ref_aps_param_type [i] specifies the type of APS parameters included in the i-th set of adaptation parameters referenced by the group parameter set. The value of ref_aps_parame_type [i] can be in the range between 0 and 3, inclusive. Values from 0 to 3, inclusive, for ref_aps_parame_type [i] correspond to the APS parameter types of the scaling list, unblocking filter, sample adaptation deviation (SAO) and ALF, respectively. The values of ref_aps_parame_type [i] for any two values other than i will not be identical, in some examples.
En este ejemplo, gps_extension_flag igual a 0 especifica que no hay elementos sintacticos gps_extension_data_flag presentes en la estructura de sintaxis RBSP de agrupacion del conjunto de parametros. gps_extension_flag puede ser igual a 0 en flujos de bits que cumplen con la proxima norma HEVC. El valor 1 para gps_extension_flag puede estar reservado para un uso futuro por parte de ITU-T | ISO/IEC. Los descodificadores, como el descodificador de video 30, pueden ignorar todos los datos que siguen al valor 1 para gps_extension_flag en la unidad NAL de la agrupacion del conjunto de parametros.In this example, gps_extension_flag equal to 0 specifies that there are no gps_extension_data_flag syntax elements present in the RBSP syntax structure for grouping the parameter set. gps_extension_flag can be equal to 0 in bit streams that comply with the next HEVC standard. The value 1 for gps_extension_flag may be reserved for future use by ITU-T | ISO / IEC Decoders, such as video decoder 30, can ignore all data that follows the value 1 for gps_extension_flag in the NAL unit of the parameter set pool.
En este ejemplo, gps_extension_data_flag puede tener cualquier valor. No tiene por que afectar la conformidad con los perfiles especificados en la proxima norma HEVC.In this example, gps_extension_data_flag can have any value. It does not have to affect compliance with the profiles specified in the next HEVC standard.
Los codificadores de video, tales como el codificador de video 20 y el descodificador de video 30, pueden aplicar el siguiente proceso para activar conjuntos de parametros para flujos de bits de una sola capa o de una sola vista, cuando el GPS se especifica de acuerdo con la Tabla 17 o se ajusta sustancialmente al ejemplo de la Tabla 17.Video encoders, such as video encoder 20 and video decoder 30, can apply the following process to activate parameter sets for single-layer or single-view bit streams, when GPS is specified according with Table 17 or substantially conforms to the example in Table 17.
Una RBSP de un conjunto de parametros de adaptacion puede incluir parametros a los que pueden referirse indirectamente las unidades NAL de fragmento codificado de una o mas imagenes codificadas a traves de uno o mas conjuntos de parametros de grupo a los que hacen referencia las unidades NAL de fragmento codificado. Cada RBSP de un conjunto de parametros de adaptacion puede considerarse inicialmente no activa al comienzo delAn RBSP of a set of adaptation parameters may include parameters to which the NAL units of encoded fragment of one or more images encoded through one or more sets of group parameters referred to by the NAL units of reference can indirectly refer to. coded fragment Each RBSP of a set of adaptation parameters may initially be considered non-active at the beginning of the
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
funcionamiento del proceso de descodificacion. Como maximo una RBSP de un conjunto de parametros de adaptacion puede considerarse activa para cada tipo de parametros APS en cualquier momento dado durante el funcionamiento del proceso de descodificacion, y la activacion de cualquier RBSP de un conjunto de parametros de adaptacion particular para un tipo particular de parametros APS da como resultado la desactivacion de la RBSP de un conjunto de parametros de adaptacion previamente activa (si existe) para ese tipo particular de parametros APS.operation of the decoding process. At most one RBSP of a set of adaptation parameters can be considered active for each type of APS parameters at any given time during the operation of the decoding process, and the activation of any RBSP of a particular set of adaptation parameters for a particular type of APS parameters results in the deactivation of the RBSP of a set of previously active adaptation parameters (if any) for that particular type of APS parameters.
Cuando una RBSP de un conjunto de parametros de adaptacion (con un valor particular de aps_id) no esta activa para un tipo particular de parametros de APS y se hace referencia a la misma indirectamente por parte de una unidad nAl de fragmento codificado para ese tipo particular de parametros APS (usando ese valor de aps_id) a traves de un conjunto de parametros de grupo al que hace referencia la unidad NAL de fragmento codificado, puede activarse para ese tipo particular de parametros APS. Esta RBSP del conjunto de parametros de adaptacion se denomina RBSP del conjunto de parametros de adaptacion activa para ese tipo particular de parametros APS hasta que se desactiva por la activacion de otra RBSP de un conjunto de parametros de adaptacion para ese tipo particular de parametros APS. Una RBSP de un conjunto de parametros de adaptacion, con ese valor particular de aps_id, puede estar disponible para el proceso de descodificacion antes de su activacion.When an RBSP of a set of adaptation parameters (with a particular value of aps_id) is not active for a particular type of APS parameters and is referenced indirectly by a nAl fragment unit encoded for that particular type of APS parameters (using that value of aps_id) through a set of group parameters referenced by the encoded fragment NAL unit, can be activated for that particular type of APS parameters. This RBSP of the set of adaptation parameters is called RBSP of the set of active adaptation parameters for that particular type of APS parameters until it is deactivated by the activation of another RBSP of a set of adaptation parameters for that particular type of APS parameters. An RBSP of a set of adaptation parameters, with that particular value of aps_id, may be available for the decoding process before activation.
Una RBSP de un conjunto de parametros de imagen puede incluir parametros a los que las unidades NAL de fragmento codificadas de una o mas imagenes codificadas pueden referirse indirectamente a traves de uno o mas conjuntos de parametros de grupo a los que hacen referencia las unidades NAL de fragmento codificado. Cada RBSP de un conjunto de parametros de imagen puede considerarse inicialmente como activa al comienzo del funcionamiento del proceso de descodificacion. A lo sumo una RBSP de un conjunto de parametros de imagen puede considerarse activa en cualquier momento dado durante el funcionamiento del proceso de descodificacion, y la activacion de cualquier RBSP de un conjunto de parametros de imagen especffica da como resultado la desactivacion de la RBSP de un conjunto de parametros de imagen previamente activa (si la hubiera).An RBSP of a set of image parameters may include parameters to which the encoded fragment NAL units of one or more encoded images may indirectly refer to through one or more sets of group parameters referred to by the NAL units of coded fragment Each RBSP of a set of image parameters may initially be considered active at the beginning of the decoding process operation. At most one RBSP of a set of image parameters can be considered active at any given time during the operation of the decoding process, and the activation of any RBSP of a set of specific image parameters results in the deactivation of the RBSP of a set of previously active image parameters (if any).
Cuando una RBSP de un conjunto de parametros de imagen (con un valor particular de pic_parameter_set_id) no esta activa y se hace referencia a la misma indirectamente por parte de una unidad NAL de fragmento codificado (utilizando ese valor de pic_parameter_set_id) a traves de un conjunto de parametros de grupo al que se hace referencia parte de la unidad NAL de fragmento codificado, puede activarse. Esta RBSP de un conjunto de parametros de imagen se denomina RBSP del conjunto de parametros de imagen activa hasta que se desactiva mediante la activacion de otra RBSP de un conjunto de parametros de imagen. Una RBSP de un conjunto de parametros de imagen, con ese valor particular de pic_parameter_set_id, puede estar disponible para el proceso de descodificacion antes de su activacion.When an RBSP of a set of image parameters (with a particular value of pic_parameter_set_id) is not active and is referenced indirectly by a coded fragment NAL unit (using that pic_parameter_set_id value) through a set of group parameters referred to in part of the encoded fragment NAL unit, can be activated. This RBSP of a set of image parameters is called RBSP of the set of active image parameters until it is deactivated by activating another RBSP of a set of image parameters. An RBSP of a set of image parameters, with that particular value of pic_parameter_set_id, may be available for the decoding process before activation.
Cualquier conjunto de parametros de imagen NAL que contenga el valor de pic_parameter_set_id para la RBSP de conjunto de parametros de imagen activa para una imagen codificada puede tener el mismo contenido que el de la RBSP de conjunto de parametros de imagen activa para la imagen codificada a menos que siga la ultima unidad VCL NAL de la imagen codificada y preceda a la primera unidad VCL NAL de otra imagen codificada.Any set of NAL image parameters that contain the value of pic_parameter_set_id for the active image parameter set RBSP for an encoded image can have the same content as that of the active image parameter set RBSP for the image encoded unless follow the last VCL NAL unit of the encoded image and precede the first VCL NAL unit of another encoded image.
Una RBSP de un conjunto de parametros de secuencia puede incluir parametros a los que pueden referirse indirectamente las unidades NAL de fragmento codificado de una o mas imagenes codificadas a traves de uno o mas conjuntos de parametros de grupo a los que hacen referencia las unidades NAL de fragmento codificado o puede hacerse referencia a la misma por parte de una o mas unidades SEI NAL que contengan un mensaje SEI de perfodo de almacenamiento intermedio. Cada RBSP de un conjunto de parametros de secuencia puede considerarse inicialmente no activa al comienzo del funcionamiento del proceso de descodificacion. A lo sumo una RBSP de un conjunto de parametros de secuencia puede considerarse activa en cualquier momento dado durante el funcionamiento del proceso de descodificacion, y la activacion de cualquier RBSP de un conjunto de parametros de secuencia especffica da como resultado la desactivacion de la RBSP de un conjunto de parametros de secuencia previamente activa (si la hubiera).An RBSP of a set of sequence parameters may include parameters to which the NAL units of encoded fragment of one or more images encoded through one or more sets of group parameters referred to by the NAL units of reference can indirectly refer to. encoded fragment or reference may be made thereto by one or more SEI NAL units containing a buffer storage SEI message. Each RBSP of a set of sequence parameters may initially be considered non-active at the beginning of the decoding process operation. At most one RBSP of a set of sequence parameters can be considered active at any given time during the operation of the decoding process, and the activation of any RBSP of a set of specific sequence parameters results in the deactivation of the RBSP of a set of previously active sequence parameters (if any).
Cuando una RBSP de un conjunto de parametros de secuencia (con un valor particular de seq_parameter_set_id) no esta ya activa y se hace referencia a la mismo indirectamente por parte de una unidad NAL de fragmento codificado a traves de un conjunto de parametros de grupo al que hace referencia la unidad NAL de fragmento codificado (utilizando ese valor de seq_parameter_set_id) o se hace referencia a la misma por parte de una unidad SEI NAL que contiene un mensaje SEI de perfodo de almacenamiento intermedio (que utiliza ese valor de seq_parameter_set_id), puede ser activada. Esta RBSP del conjunto de parametros de secuencia se denomina RBSP del conjunto de parametros de secuencia activa hasta que se desactiva mediante la activacion de otra RBSP de un conjunto de parametros de secuencia. Una RBSP de un conjunto de parametros de secuencia, con ese valor particular de seq_parameter_set_id y contenida dentro de una unidad de acceso con temporal_id igual a 0, puede estar disponible para el proceso de descodificacion antes de su activacion. Una RBSP de un conjunto de parametros de secuencia activada permanecera activa durante la secuencia entera de video codificado.When an RBSP of a set of sequence parameters (with a particular value of seq_parameter_set_id) is no longer active and is referenced indirectly by a coded fragment NAL unit through a set of group parameters to which refers to the encoded fragment NAL unit (using that value of seq_parameter_set_id) or referenced to it by a NAL SEI unit that contains a buffer storage SEI message (which uses that value of seq_parameter_set_id), can be activated This RBSP of the sequence parameter set is called RBSP of the active sequence parameter set until it is deactivated by activating another RBSP of a sequence parameter set. An RBSP of a set of sequence parameters, with that particular value of seq_parameter_set_id and contained within an access unit with temporary_id equal to 0, may be available for the decoding process before activation. An RBSP of a set of activated sequence parameters will remain active during the entire encoded video sequence.
Una RBSP de un conjunto de parametros de video puede incluir parametros a los que pueden referirse indirectamente las unidades NAL de fragmento codificado de una o mas imagenes codificadas a traves de uno o mas conjuntos de parametros de grupo a los que hacen referencia las unidades NAL de fragmento codificado, o puede hacerse referencia a los mismos por parte de una o mas unidades SEI NAL que contienen un mensaje SEI deAn RBSP of a set of video parameters may include parameters to which the NAL units of encoded fragment of one or more images encoded through one or more sets of group parameters referred to by the NAL units of reference may refer indirectly. encoded fragment, or reference may be made thereto by one or more SEI NAL units containing a SEI message of
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
periodo de almacenamiento intermedio. Cada RBSP de un conjunto de parametros de video puede considerarse inicialmente no activa al comienzo del funcionamiento del proceso de descodificacion. A lo sumo una RBSP de un conjunto de parametros de video puede considerarse activa en cualquier momento dado durante el funcionamiento del proceso de descodificacion, y la activacion de cualquier RBSP de un conjunto de parametros de video especffica da como resultado la desactivacion de la RBSP de un conjunto de parametros de video previamente activa (si la hubiera).Intermediate storage period. Each RBSP of a set of video parameters may initially be considered non-active at the beginning of the decoding process operation. At most one RBSP of a set of video parameters can be considered active at any given time during the operation of the decoding process, and the activation of any RBSP of a set of specific video parameters results in the deactivation of the RBSP of a set of previously active video parameters (if any).
Cuando una RBSP de un conjunto de parametros de video (con un valor particular de video_parameter_set_id) no esta ya activa y se hace referencia a la misma indirectamente por parte de una unidad NAL de fragmento codificado a traves de un conjunto de parametros de grupo al que hace referencia la unidad NAL de fragmento codificado (utilizando ese valor de video_parameter_set_id) o se hace referencia a la misma por parte de una unidad SEI NAL que contiene un mensaje SEI de periodo de almacenamiento intermedio (que usa ese valor de video_parameter_set_id), puede activarse. Esta RBSP del conjunto de parametros de video se denomina RBSP del conjunto de parametros de video activa hasta que se desactiva mediante la activacion de otra RBSP del conjunto de parametros de video. Una RBSP de un conjunto de parametros de video, con ese valor particular de video_parameter_set_id y contenido dentro de una unidad de acceso con temporal_id igual a 0, estara disponible para el proceso de descodificacion antes de su activacion. Una RBSP de un conjunto de parametros de video activada permanecera activa durante la secuencia entera de video codificado.When an RBSP of a set of video parameters (with a particular value of video_parameter_set_id) is no longer active and is referenced indirectly by a coded fragment NAL unit through a set of group parameters to which refers to the encoded fragment NAL unit (using that video_parameter_set_id value) or referenced to it by a NAL SEI unit that contains an intermediate storage period SEI message (using that video_parameter_set_id value), can be activated . This RBSP of the video parameter set is called RBSP of the active video parameter set until it is deactivated by activating another RBSP of the video parameter set. An RBSP of a set of video parameters, with that particular value of video_parameter_set_id and contained within an access unit with temporary_id equal to 0, will be available for the decoding process before its activation. An RBSP of a set of activated video parameters will remain active during the entire encoded video sequence.
Cualquier unidad de NAL de conjunto de parametros de secuencia que contenga el valor de seq_parameter_set_id para la RBSP del conjunto de parametros de secuencia activa para una secuencia de video codificado puede tener el mismo contenido que el de la RBSP del conjunto de parametros de secuencia activos para la secuencia de video codificada, a menos que siga a la ultima unidad de acceso de la secuencia de video codificada y preceda a la primera unidad de VCL NAL y a la primera unidad de SEI NAL que contiene un mensaje de SEI de periodo de almacenamiento intermedio (cuando este presente) de otra secuencia de video codificada.Any NAL unit of sequence parameter set that contains the value of seq_parameter_set_id for the RBSP of the active sequence parameter set for an encoded video sequence may have the same content as that of the RBSP of the active sequence parameter set for the encoded video sequence, unless it follows the last access unit of the encoded video sequence and precedes the first VCL NAL unit and the first NAL SEI unit that contains an intermediate storage period SEI message ( when present) from another encoded video stream.
Cualquier unidad de NAL del conjunto de parametros de video que contenga el valor de video_parameter_set_id para la RBSP del conjunto de parametros de video activa para una secuencia de video codificada puede tener el mismo contenido que el de la RBSP de conjunto de parametros de video activa para la secuencia de video codificada, a menos que siga a la ultima unidad de acceso de la secuencia de video codificada y pueda preceder a la primera unidad de VCL NAL y a la primera unidad de SEI NAL que contiene un mensaje de SEI de periodo de almacenamiento intermedio (cuando este presente) de otra secuencia de video codificada.Any NAL unit in the video parameter set that contains the value of video_parameter_set_id for the RBSP of the active video parameter set for an encoded video sequence can have the same content as that of the RBSP of active video parameter set for the encoded video stream, unless it follows the last access unit of the encoded video stream and can precede the first VCL NAL unit and the first NAL SEI unit that contains an intermediate storage period SEI message (when present) of another encoded video sequence.
Todas las restricciones que se expresan en la relacion entre los valores de los elementos sintacticos (y los valores de las variables derivadas de esos elementos sintacticos) en conjuntos de parametros de video, conjuntos de parametros de secuencia, conjuntos de parametros de imagen y conjuntos de parametros de adaptacion y otros elementos sintacticos son expresiones de restricciones que pueden aplicarse solamente a los conjuntos de parametros de video activos, al conjunto de parametros de secuencia activos, al conjunto de parametros de imagen activos y al conjunto de parametros de adaptacion activos para cada tipo particular de parametros APS. Si existe cualquier RBSP de un conjunto de parametros de video que no este activada en el flujo de bits, sus elementos sintacticos pueden tener valores que se ajusten a las restricciones especificadas si se activaron por referencia en un flujo de bits que se ajusta de otro modo. Si existe cualquier RBSP de un conjunto de parametros de secuencia que no este activada en el flujo de bits, sus elementos sintacticos pueden tener valores que se ajusten a las restricciones especificadas si se activaron por referencia en un flujo de bits que se ajusta de otro modo. Si existe cualquier RBSP de un conjunto de parametros de imagen que no este nunca activada en el flujo de bits, sus elementos sintacticos pueden tener valores que se ajusten a las restricciones especificadas si se activaron por referencia en un flujo de bits que se ajusta de otro modo. Si existe cualquier RBSP de conjunto de parametros de adaptacion que no este nunca activada en el flujo de bits, sus elementos sintacticos pueden tener valores que se ajusten a las restricciones especificadas si se activaron por referencia en un flujo de bits que se ajusta de otro modo.All restrictions expressed in the relationship between the values of the syntactic elements (and the values of the variables derived from those syntactic elements) in video parameter sets, sequence parameter sets, image parameter sets and image sets adaptation parameters and other syntactic elements are expressions of restrictions that can be applied only to the sets of active video parameters, the set of active sequence parameters, the set of active image parameters and the set of active adaptation parameters for each type Particular of APS parameters. If there is any RBSP of a set of video parameters that is not activated in the bit stream, its syntactic elements may have values that conform to the specified restrictions if they were activated by reference in a bit stream that is otherwise set . If there is any RBSP of a set of sequence parameters that is not activated in the bit stream, its syntactic elements may have values that conform to the specified restrictions if they were activated by reference in a bit stream that is otherwise set . If there is any RBSP of a set of image parameters that is never activated in the bit stream, its syntactic elements may have values that conform to the specified constraints if they were activated by reference in a bit stream that fits another mode. If there is any adaptation parameter set RBSP that is never activated in the bit stream, its syntactic elements may have values that conform to the specified restrictions if they were activated by reference in a bit stream that is otherwise set .
Durante el funcionamiento del proceso de descodificacion, pueden considerarse en efecto los valores de los parametros del conjunto de parametros de video activos, el conjunto de parametros de secuencia activos, el conjunto de parametros de imagen activos y el conjunto de parametros de adaptacion activos para cada tipo de parametros APS. Para la interpretacion de los mensajes SEI, pueden considerarse en efecto los valores de los parametros del conjunto de parametros de video, conjunto de parametros de secuencia, conjunto de parametros de imagen y conjunto de parametros de adaptacion que estan activos para el funcionamiento del proceso de descodificacion para las unidades VCL NAL de la imagen codificada en la misma unidad de acceso a menos que se especifique lo contrario en la semantica de mensajes SEI.During the operation of the decoding process, the values of the parameters of the set of active video parameters, the set of active sequence parameters, the set of active image parameters and the set of active adaptation parameters for each operation can be considered in effect type of APS parameters. For the interpretation of the SEI messages, the values of the parameters of the video parameter set, sequence parameter set, image parameter set and adaptation parameter set that are active for the operation of the process can be considered decoding for the VCL NAL units of the image encoded in the same access unit unless otherwise specified in the SEI message semantics.
La FIG. 7 es un diagrama de flujo que ilustra un ejemplo de procedimiento para la codificacion de datos de video de acuerdo con las tecnicas de esta divulgacion. Aunque se describe con respecto al codificador de video 20, debe entenderse que otros dispositivos de codificacion de video pueden configurarse para llevar a cabo el procedimiento de la FIG. 7.FIG. 7 is a flowchart illustrating an example procedure for encoding video data in accordance with the techniques of this disclosure. Although described with respect to video encoder 20, it should be understood that other video encoding devices can be configured to perform the procedure of FIG. 7.
Inicialmente, en este ejemplo, el codificador de video 20 recibe un flujo de bits que incluye una o mas capas de datos de video sin procesar (100). Por ejemplo, la fuente de video 18 (FIG. 1) puede proporcionar datos de videoInitially, in this example, video encoder 20 receives a bit stream that includes one or more layers of raw video data (100). For example, video source 18 (FIG. 1) can provide video data
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
multivista al codificador de video 20. De forma alternativa, el codificador de video 20, o un preprocesador del mismo, puede dividir un flujo de bits de video sin procesar en una pluralidad de diversas capas, por ejemplo, capas de resolucion espacial, capas de calidad, capas temporales o similares. En otros ejemplos mas, un flujo de bits puede dividirse en una combinacion de varias capas, por ejemplo, cualquier combinacion de vistas, capas de resolucion espacial, capas de calidad, capas temporales o similares.multivist to video encoder 20. Alternatively, video encoder 20, or a preprocessor thereof, can divide a stream of unprocessed video bits into a plurality of various layers, for example, spatial resolution layers, layers of quality, temporary layers or similar. In other examples, a bit stream can be divided into a combination of several layers, for example, any combination of views, spatial resolution layers, quality layers, time layers or the like.
El codificador de video 20 puede determinar uno o mas parametros comunes para secuencias correspondientes entre un conjunto de capas (102). Las secuencias correspondientes pueden ser secuencias que tienen posiciones temporales correspondientes en diferentes capas. Es decir, una primera secuencia, que tiene un tiempo de inicio (en terminos de tiempo de visualizacion) de T1 y un tiempo de finalizacion (de nuevo en terminos de tiempo de visualizacion) de T2, y una segunda secuencia, que tambien tiene un tiempo de inicio de T1 y un tiempo de terminacion de T2, se puede decir que se corresponden entre si. En particular, la primera secuencia puede formar parte de una primera capa y la segunda secuencia puede formar parte de una segunda capa diferente. Una "secuencia" puede incluir una serie de imagenes consecutivas en orden de descodificacion, por ejemplo, comenzando con una imagen de actualizacion de descodificacion instantanea (IDR) y terminando inmediatamente antes de una imagen IDR posterior en el orden de descodificacion. En general, los parametros pueden corresponder a un conjunto de secuencias correspondientes de una o mas capas, por ejemplo, N capas, donde N es un numero entero. El codificador de video 20 puede entonces codificar un VPS que incluye datos para los parametros determinados (104). Por ejemplo, el codificador de video 20 puede codificar un VPS correspondiente a uno de los ejemplos de la Tabla 2 o de la Tabla 5.The video encoder 20 can determine one or more common parameters for corresponding sequences between a set of layers (102). The corresponding sequences can be sequences that have corresponding temporal positions in different layers. That is, a first sequence, which has a start time (in terms of display time) of T1 and an end time (again in terms of display time) of T2, and a second sequence, which also has a T1 start time and a T2 end time, it can be said that they correspond to each other. In particular, the first sequence may be part of a first layer and the second sequence may be part of a different second layer. A "sequence" may include a series of consecutive images in decoding order, for example, beginning with an instant decoding update image (IDR) and ending immediately before a subsequent IDR image in the decoding order. In general, the parameters may correspond to a set of corresponding sequences of one or more layers, for example, N layers, where N is an integer. The video encoder 20 can then encode a VPS that includes data for the determined parameters (104). For example, video encoder 20 can encode a VPS corresponding to one of the examples in Table 2 or Table 5.
El codificador de video 20 tambien puede determinar parametros comunes para una secuencia dentro de una capa (106). La secuencia puede comprender una de las secuencias correspondientes a otras secuencias en otras capas para las que se codifico el VPS. El codificador de video 20 puede codificar un conjunto de parametros de secuencia (SPS) que incluye los parametros comunes para la secuencia (108). Por lo tanto, debe entenderse que el VPS y el SPS son estructuras de datos separadas y que corresponden a diferentes tipos de datos de video. Mientras que un VPS puede corresponder a un conjunto de secuencias correspondientes entre una pluralidad de capas, el SPS corresponde a una secuencia en una capa. El SPS puede ajustarse sustancialmente a un SPS de H.264/AVC, el SPS de H.264/AVC ampliado por MVC (ilustrado en la Tabla 1 anterior), la proxima norma HEVC, o el ejemplo de la Tabla 16 descrito anteriormente. Ademas, el codificador de video 20 puede codificar un conjunto de parametros de imagen (PPS) para una imagen en la secuencia (110). El PPS puede ajustarse sustancialmente a un SPS de H.264/AVC, la proxima norma HEVC, o el ejemplo de la Tabla 13 descrito anteriormente. Aunque el procedimiento de la FIG. 7 muestra la codificacion de solo un PPS, debe entenderse que se pueden codificar multiples PPS. Una o mas imagenes pueden referirse al mismo PPS.The video encoder 20 can also determine common parameters for a sequence within a layer (106). The sequence may comprise one of the sequences corresponding to other sequences in other layers for which the VPS was encoded. The video encoder 20 can encode a set of sequence parameters (SPS) that includes the common parameters for the sequence (108). Therefore, it should be understood that VPS and SPS are separate data structures and correspond to different types of video data. While a VPS may correspond to a set of corresponding sequences between a plurality of layers, the SPS corresponds to a sequence in one layer. The SPS can substantially conform to an SPS of H.264 / AVC, the SPS of H.264 / AVC extended by MVC (illustrated in Table 1 above), the next HEVC standard, or the example of Table 16 described above. In addition, video encoder 20 can encode a set of image parameters (PPS) for an image in the sequence (110). The PPS can substantially conform to an SPS of H.264 / AVC, the next HEVC standard, or the example in Table 13 described above. Although the procedure of FIG. 7 shows the coding of only one PPS, it should be understood that multiple PPS can be encoded. One or more images may refer to the same PPS.
El codificador de video 20 puede determinar entonces si la capa reciente para la que se codifico un SPS y un PPS es la ultima capa (112). Si la ultima capa todavfa no se ha tratado (ramificacion "NO" de 112), el codificador de video 20 puede seleccionar una capa siguiente y codificar un SPS y uno o mas PPS para la siguiente capa, por ejemplo, de acuerdo con los pasos 106-110. Despues de que se haya tratado la ultima capa (ramificacion "SI" de 112), el codificador de video 20 puede codificar datos de video de las diversas capas basandose en los datos de los VPS, SPS y PPS. Diversos ejemplos de codificacion de datos de video basados, al menos en parte, en un VPS se describen con mayor detalle a continuacion con respecto a las FIGs. 9-12.The video encoder 20 can then determine if the recent layer for which an SPS was encoded and a PPS is the last layer (112). If the last layer has not yet been treated ("NO" branch of 112), video encoder 20 can select a next layer and encode an SPS and one or more PPS for the next layer, for example, according to the steps 106-110. After the last layer ("SI" branch of 112) has been treated, the video encoder 20 can encode video data of the various layers based on the VPS, SPS and PPS data. Various examples of encoding video data based, at least in part, on a VPS are described in more detail below with respect to FIGs. 9-12.
Aunque no se muestra en el ejemplo de la FIG. 7, en algunos ejemplos, el codificador de video 20 puede codificar adicionalmente uno o mas LPS y/o uno o mas GPS, como se ha descrito anteriormente. Los LPS pueden ajustarse sustancialmente a los ejemplos de la Tabla 9, Tabla 10 o Tabla 12, mientras que el GPS puede ajustarse sustancialmente a los ejemplos de la Tabla 14, Tabla 15 o Tabla 17. En tales ejemplos, el codificador de video 20 codifica los datos de video tambien basandose, al menos en parte, en los LPS y/o los GPS.Although not shown in the example of FIG. 7, in some examples, video encoder 20 may additionally encode one or more LPS and / or one or more GPS, as described above. The LPS can substantially conform to the examples in Table 9, Table 10 or Table 12, while the GPS can substantially conform to the examples in Table 14, Table 15 or Table 17. In such examples, video encoder 20 encodes video data also based, at least in part, on LPS and / or GPS.
De esta manera, el procedimiento de la FIG. 7 representa un ejemplo de un procedimiento que incluye codificar un conjunto de parametros de video (VPS) para una o mas capas de datos de video, en el que cada una de una o mas capas de datos de video se refiere al vPs, y codificar una o mas capas de datos de video basandose, al menos en parte, en el VPS.Thus, the procedure of FIG. 7 represents an example of a procedure that includes encoding a set of video parameters (VPS) for one or more layers of video data, in which each one or more layers of video data refers to the vPs, and encoding one or more layers of video data based, at least in part, on the VPS.
La FIG. 8 es un diagrama de flujo que ilustra un ejemplo de procedimiento de descodificacion de datos de video de acuerdo con las tecnicas de esta divulgacion. Aunque se describe con respecto al descodificador de video 30, debe entenderse que otros dispositivos de descodificacion de video pueden configurarse para llevar a cabo el procedimiento de la FIG. 8.FIG. 8 is a flow chart illustrating an example of a video data decoding procedure according to the techniques of this disclosure. Although described with respect to video decoder 30, it should be understood that other video decoding devices can be configured to perform the procedure of FIG. 8.
Inicialmente, el descodificador de video 30 recibe un flujo de bits que incluye un VPS, uno o mas SPS, y uno o mas PPS para capas de datos de video codificados (120). El descodificador de video 30 puede entonces descodificar el VPS, que incluye parametros comunes para secuencias correspondientes entre una o mas capas (122). Del mismo modo, el descodificador de video 30 puede descodificar un conjunto de parametros de secuencia que incluye parametros comunes para una secuencia de una capa (124). Ademas, el descodificador de video 30 puede descodificar un conjunto de parametros de imagen que incluye parametros para una imagen de la secuencia (126). Como se ha analizado anteriormente, una o mas imagenes pueden referirse al mismo PPS y, por lo tanto, losInitially, video decoder 30 receives a bit stream that includes a VPS, one or more SPS, and one or more PPS for coded video data layers (120). The video decoder 30 can then decode the VPS, which includes common parameters for corresponding sequences between one or more layers (122). Similarly, video decoder 30 can decode a set of sequence parameters that includes common parameters for a single layer sequence (124). In addition, video decoder 30 can decode a set of image parameters that includes parameters for an image of the sequence (126). As discussed above, one or more images may refer to the same PPS and, therefore, the
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
parametros del PPS pueden considerarse comunes a una o mas imageries. Del mismo modo, el descodificador de video 30 puede descodificar una pluralidad de PPS para la secuencia, aunque no se muestra en la FIG. 8.PPS parameters can be considered common to one or more imageries. Similarly, video decoder 30 can decode a plurality of PPS for the sequence, although it is not shown in FIG. 8.
Ademas, el descodificador de video 30 puede determinar si la capa mas reciente era la ultima capa a tratar (128). Si la capa mas reciente no era la ultima capa (ramificacion "NO" de 128), el descodificador de video 30 puede proceder a descodificar un SPS y uno o mas PPS para una capa posterior de acuerdo con las etapas 124 y 126. Por otra parte, si la capa mas reciente era la ultima capa (ramificacion "YES" de 128), el descodificador de video 30 puede proceder a descodificar datos de video de las capas basandose en los VPS, SPS y PPS (130). Ejemplos de datos de video de codificacion basados, al menos en parte, en un VPS se analizan con mayor detalle con respecto a las FIGs. 9-12.In addition, video decoder 30 can determine if the most recent layer was the last layer to be treated (128). If the most recent layer was not the last layer ("NO" branch of 128), the video decoder 30 may proceed to decode an SPS and one or more PPS for a subsequent layer according to steps 124 and 126. On the other On the other hand, if the most recent layer was the last layer ("YES" branch of 128), the video decoder 30 can proceed to decode video data of the layers based on the VPS, SPS and PPS (130). Examples of encoding video data based, at least in part, on a VPS are analyzed in greater detail with respect to FIGs. 9-12.
Aunque no se muestra en el ejemplo de la FIG. 8, en algunos ejemplos, el descodificador de video 30 puede descodificar adicionalmente uno o mas LPS y/o uno o mas GPS, como se ha descrito anteriormente. Los LPS pueden ajustarse sustancialmente a los ejemplos de la Tabla 9, Tabla 10 o Tabla 12, mientras que el GPS puede ajustarse sustancialmente a los ejemplos de la Tabla 14, Tabla 15 o Tabla 17. En tales ejemplos, el descodificador de video 30 descodifica los datos de video basandose tambien, al menos en parte, en los LPS y/o los GPS.Although not shown in the example of FIG. 8, in some examples, video decoder 30 may additionally decode one or more LPS and / or one or more GPS, as described above. The LPS can substantially conform to the examples in Table 9, Table 10 or Table 12, while the GPS can substantially conform to the examples in Table 14, Table 15 or Table 17. In such examples, the video decoder 30 decodes video data also based, at least in part, on LPS and / or GPS.
De esta manera, el procedimiento de la FIG. 8 representa un ejemplo de un procedimiento que incluye codificar un conjunto de parametros de video (VPS) para una o mas capas de datos de video, en el que cada una de una o mas capas de datos de video se refiere al VPS y codifica una o mas capas de datos de video basandose al menos en parte en el VPS.Thus, the procedure of FIG. 8 represents an example of a procedure that includes encoding a set of video parameters (VPS) for one or more layers of video data, in which each one or more layers of video data refers to the VPS and encodes a or more layers of video data based at least in part on the VPS.
La FIG. 9 es un diagrama de flujo que ilustra un ejemplo de procedimiento de codificacion de datos de video basandose, al menos en parte, en un cierto numero de capas temporales como se senala en un VPS. El procedimiento de la FIG. 9 puede ser realizado por el codificador de video 20 y/o el descodificador de video 30. Para los propositos del ejemplo, el procedimiento de la FIG. 9 se describe con respecto al descodificador de video 30.FIG. 9 is a flow chart illustrating an example of a video data encoding procedure based, at least in part, on a certain number of time layers as indicated in a VPS. The procedure of FIG. 9 can be performed by video encoder 20 and / or video decoder 30. For the purposes of the example, the procedure of FIG. 9 is described with respect to video decoder 30.
En este ejemplo, el descodificador de video 30 codifica (es decir, descodifica) un VPS que indica un cierto numero de capas temporales en datos de video (150), por ejemplo, de una o mas capas a las que corresponde el VPS. Por ejemplo, el descodificador de video 30 puede descodificar "cnt_t" como se describe con respecto a la Tabla 2 anterior. Para mencionar otro ejemplo, el descodificador de video 30 puede descodificar num_temporal_layers_minus1, como se describe con respecto a la Tabla 5 anterior.In this example, the video decoder 30 encodes (ie decodes) a VPS indicating a certain number of time layers in video data (150), for example, of one or more layers to which the VPS corresponds. For example, video decoder 30 can decode "cnt_t" as described with respect to Table 2 above. To mention another example, video decoder 30 can decode num_temporal_layers_minus1, as described with respect to Table 5 above.
Basandose en esta indicacion, en este ejemplo, el descodificador de video 30 descodifica identificadores temporales para cada una de las capas temporales (152). Del mismo modo, el descodificador de video 30 puede determinar los valores de identificador de la imagen de referencia basandose en el numero de capas temporales (154). Por ejemplo, el descodificador de video 30 puede configurarse para determinar que, para una imagen actual en la capa N, la imagen actual no usara imagenes en o sobre la capa N+1 como referencia. Por lo tanto, el descodificador video 30 puede determinar identificadores para posibles imagenes de referencia en capas en o debajo de la capa N. Ademas, el descodificador de video 30 puede descodificar datos de imagenes en la capa temporal N usando datos de referencia de capas hasta (e incluyendo) la capa N (156) . Por lo tanto, la FIG. 9 representa un ejemplo de un procedimiento que incluye codificacion de datos de un VPS indicativo de un numero maximo de capas temporales en una o mas capas de datos de video y codificacion de una o mas capas basandose, al menos en parte, en el VPS.Based on this indication, in this example, video decoder 30 decodes temporary identifiers for each of the time layers (152). Similarly, the video decoder 30 can determine the identifier values of the reference image based on the number of time layers (154). For example, video decoder 30 can be configured to determine that, for a current image in the N layer, the current image will not use images in or on the N + 1 layer as a reference. Therefore, video decoder 30 can determine identifiers for possible reference images in layers at or below layer N. In addition, video decoder 30 can decode image data in time layer N using reference data from layers to (and including) layer N (156). Therefore, FIG. 9 represents an example of a procedure that includes data coding of a VPS indicative of a maximum number of time layers in one or more video data layers and coding of one or more layers based, at least in part, on the VPS.
La FIG. 10 es un diagrama de flujo que ilustra un ejemplo de procedimiento de codificacion de datos de video basandose, al menos en parte, en un cierto numero de imagenes a reordenar en una o mas capas e imagenes a almacenar en una memoria intermedia de imagenes descodificadas. El procedimiento de la FIG. 10 puede ser realizado por el codificador de video 20 y/o descodificador de video 30. Para los propositos del ejemplo, el procedimiento de la FIG. 10 se describe con respecto al descodificador de video 30.FIG. 10 is a flow chart illustrating an example of a video data coding procedure based, at least in part, on a certain number of images to be rearranged in one or more layers and images to be stored in a buffer of decoded images. The procedure of FIG. 10 can be performed by video encoder 20 and / or video decoder 30. For the purposes of the example, the procedure of FIG. 10 is described with respect to video decoder 30.
En este ejemplo, el descodificador de video 30 descodifica un VPS que indica un cierto numero de imagenes a reordenar en una o mas capas de datos de video y un cierto numero de imagenes a almacenar en una memoria intermedia de imagenes descodificadas (por ejemplo, memoria de imagenes de referencia 82) en un momento dado (160). Por ejemplo, el descodificador de video 30 puede descodificar un elemento sintactico del VPS que corresponde sustancialmente a num_reorder_pics como se describe con respecto a la Tabla 16 anterior y/o informacion de restriccion del flujo de bits que especifica un tamano de DPB. En otros ejemplos, el VPS podrfa incluir solamente uno u otro, y no necesariamente ambos, del numero de imagenes a reordenar y del numero de imagenes que se van a almacenar en la memoria intermedia de imagenes descodificadas. El descodificador de video 30 puede entonces gestionar la memoria intermedia de imagenes descodificadas (por ejemplo, la memoria de imagenes de referencia 82) basandose en el numero de imagenes que se van a reordenar y/o almacenar (162). Por ejemplo, el descodificador de video 30 puede eliminar imagenes de la memoria 82 de la imagen de referencia cuando se almacena mas que el numero de imagenes a almacenar en la memoria 82 de imagenes de referencia.In this example, video decoder 30 decodes a VPS that indicates a certain number of images to be reordered in one or more layers of video data and a certain number of images to be stored in a buffer of decoded images (e.g., memory of reference images 82) at a given time (160). For example, video decoder 30 can decode a VPS syntactic element that substantially corresponds to num_reorder_pics as described with respect to Table 16 above and / or bitstream restriction information that specifies a DPB size. In other examples, the VPS could include only one or the other, and not necessarily both, of the number of images to be reordered and the number of images to be stored in the buffer of decoded images. The video decoder 30 can then manage the buffer of decoded images (for example, reference image memory 82) based on the number of images to be reordered and / or stored (162). For example, video decoder 30 can delete images from memory 82 of the reference image when more than the number of images to be stored in memory 82 of reference images is stored.
El descodificador de video 30 tambien puede determinar los valores de identificador de la imagen de referencia basandose en el numero de imagenes en la DPB (es decir, en la memoria de imagenes de referencia 82) (164). Ademas, el descodificador de video 30 puede descodificar datos de imagenes basandose en los valores deThe video decoder 30 can also determine the identifier values of the reference image based on the number of images in the DPB (ie, in the reference image memory 82) (164). In addition, video decoder 30 can decode image data based on the values of
55
1010
15fifteen
20twenty
2525
3030
3535
4040
45Four. Five
50fifty
5555
6060
6565
identificador de la imagen de referencia (166). De este modo, el procedimiento de la FIG. 10 representa un ejemplo de un procedimiento que incluye la codificacion de datos de un VPS indicativo de un cierto numero de imagenes a almacenar en una memoria intermedia de imagenes descodificadas (DPB) durante la descodificacion de una o mas capas y un procedimiento que incluye la codificacion de datos de un VPS indicativo de un cierto numero de tramas a reordenar en al menos una de una o mas capas.reference image identifier (166). Thus, the procedure of FIG. 10 represents an example of a procedure that includes the encoding of data from a VPS indicative of a certain number of images to be stored in a decoded image buffer (DPB) during decoding of one or more layers and a procedure that includes encoding of data from a VPS indicative of a certain number of frames to be rearranged in at least one of one or more layers.
La FIG. 11 es un diagrama de flujo que ilustra un ejemplo de procedimiento de codificacion de datos de video basandose, al menos en parte, en parametros de descodificador de referencia hipoteticos (HRD) senalados en un VPS. El procedimiento de la FIG. 11 puede ser realizado por el codificador de video 20 y/o el descodificador de video 30. Para los propositos del ejemplo, el procedimiento de la FIG. 11 se describe con respecto al descodificador de video 30.FIG. 11 is a flow chart illustrating an example of a video data encoding procedure based, at least in part, on hypothetical reference decoder (HRD) parameters set in a VPS. The procedure of FIG. 11 can be performed by video encoder 20 and / or video decoder 30. For the purposes of the example, the procedure of FIG. 11 is described with respect to video decoder 30.
En este ejemplo, el descodificador de video 30 descodifica un VPS que indica los parametros HRD (170). El descodificador de video 30 puede determinar adicionalmente los tiempos de extraccion para las imagenes de una memoria intermedia de imagenes codificadas (CPB) basandose en los parametros HRD (172). El descodificador de video 30 puede a continuacion eliminar datos de la CPB basandose en los tiempos de eliminacion determinados (174), y descodificar los datos eliminados de la CPB. Del mismo modo, el procedimiento de la FIG. 11 representa un ejemplo de un procedimiento que incluye la codificacion de datos de un vPs indicativo de uno o mas parametros de descodificador de referencia hipotetico (HRD) y codificacion de datos de una o mas capas basandose en los parametros de HDR.In this example, video decoder 30 decodes a VPS indicating the HRD parameters (170). The video decoder 30 can additionally determine the extraction times for the images of an encoded image buffer (CPB) based on the HRD parameters (172). The video decoder 30 can then delete data from the CPB based on the determined elimination times (174), and decode the data deleted from the CPB. Similarly, the procedure of FIG. 11 represents an example of a procedure that includes data coding of a vPs indicative of one or more hypothetical reference decoder (HRD) parameters and data coding of one or more layers based on the HDR parameters.
La FIG. 12 es un diagrama de flujo que ilustra un ejemplo de procedimiento de codificacion de datos de video basandose, al menos en parte, en datos de ampliacion senalados en un VPS. El procedimiento de la FIG. 12 puede ser realizado por el codificador de video 20 y/o descodificador de video 30. Para los propositos del ejemplo, el procedimiento de la FIG. 12 se describe con respecto al descodificador de video 30.FIG. 12 is a flowchart illustrating an example of a video data encoding procedure based, at least in part, on expansion data signaled in a VPS. The procedure of FIG. 12 can be performed by video encoder 20 and / or video decoder 30. For the purposes of the example, the procedure of FIG. 12 is described with respect to video decoder 30.
El descodificador de video 30, en este ejemplo, descodifica datos de un VPS indicando si el VPS incluye datos de ampliacion (180). Por ejemplo, el descodificador de video 30 puede descodificar un vps_extension_flag del VPS. El descodificador de video 30 determina entonces si los datos indican que el VPS incluye datos de ampliacion (182). Si los datos indican que el VPS incluye datos de ampliacion (ramificacion "SI" de 182), el descodificador de video 30 codifica datos de ampliacion VPS para una o mas herramientas de codificacion de ampliacion (184) y descodifica datos de video usando las herramientas de codificacion de ampliacion y datos de ampliacion 186). Por otra parte, si los datos indican que el VPS no incluye datos de ampliacion (ramificacion "NO" de 182), el descodificador de video 30 puede descodificar los datos de video usando herramientas de codificacion convencionales (188). De esta manera, el procedimiento de la FIG. 12 representa un ejemplo de un procedimiento que incluye codificacion de datos de un VPS indicativo de si el VPS incluye una ampliacion mas alla de una norma correspondiente y cuando el VPS incluye la ampliacion, datos para la ampliacion, asf como codificacion de datos de video basandose en los datos de ampliacion del VPS.The video decoder 30, in this example, decodes data from a VPS indicating whether the VPS includes extension data (180). For example, video decoder 30 can decode a vps_extension_flag of the VPS. The video decoder 30 then determines whether the data indicates that the VPS includes extension data (182). If the data indicates that the VPS includes extension data ("SI" branch of 182), the video decoder 30 encodes VPS extension data for one or more extension coding tools (184) and decodes video data using the tools of extension coding and extension data 186). On the other hand, if the data indicates that the VPS does not include extension data ("NO" branch of 182), the video decoder 30 can decode the video data using conventional coding tools (188). Thus, the procedure of FIG. 12 represents an example of a procedure that includes data coding of a VPS indicative of whether the VPS includes an extension beyond a corresponding standard and when the VPS includes the extension, data for the extension, as well as video data coding based in the VPS extension data.
Debe reconocerse que, dependiendo del ejemplo, ciertos actos o sucesos de cualquiera de las tecnicas descritas en el presente documento pueden realizarse en una secuencia distinta, pueden anadirse, fundirse u omitirse por completo (por ejemplo, no todos los actos o sucesos descritos son necesarios para la puesta en practica de las tecnicas). Ademas, en ciertos ejemplos, los actos o sucesos pueden realizarse simultaneamente, por ejemplo, mediante el procesamiento de multiples hebras, el procesamiento de interrupciones o multiples procesadores, en lugar de secuencialmente.It should be recognized that, depending on the example, certain acts or events of any of the techniques described herein may be performed in a different sequence, may be added, merged or omitted altogether (for example, not all of the acts or events described are necessary for the implementation of the techniques). In addition, in certain examples, acts or events can be performed simultaneously, for example, by processing multiple threads, processing interrupts or multiple processors, rather than sequentially.
En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinacion de los mismos. Si se implementan en software, las funciones, como una o mas instrucciones o codigo, pueden almacenarse en, o transmitirse por, un medio legible por ordenador, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como medios de almacenamiento de datos o medios de comunicacion que incluyen cualquier medio que facilite la transferencia de un programa informatico desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicacion. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles y legibles por ordenador, que sean no transitorios, o (2) un medio de comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualesquiera medios disponibles a los que se puede acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para implementar las tecnicas descritas en la presente divulgacion. Un producto de programa informatico puede incluir un medio legible por ordenador.In one or more examples, the described functions can be implemented in hardware, software, firmware or any combination thereof. If implemented in software, functions, such as one or more instructions or code, can be stored in, or transmitted by, a computer-readable medium, and executed through a hardware-based processing unit. Computer readable media may include computer readable storage media, which correspond to a tangible media such as data storage media or communication media that include any media that facilitates the transfer of a computer program from one location to another, by example, according to a communication protocol. In this way, the computer-readable media can correspond, in general, to (1) tangible and computer-readable storage media, which are non-transient, or (2) a communication medium such as a signal or a carrier wave. The data storage means may be any available means that can be accessed from one or more computers or one or more processors to retrieve instructions, code and / or data structures to implement the techniques described in the present disclosure. A computer program product may include a computer readable medium.
A modo de ejemplo, y no de limitacion, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash o cualquier otro medio que pueda utilizarse para almacenar codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Ademas, cualquier conexion recibe adecuadamente la denominacion de medios legibles por ordenador. Por ejemplo, si las instrucciones se transmiten desde una sede de la Red, un servidor u otra fuenteBy way of example, and not limitation, such computer-readable storage media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory or any other other means that can be used to store the desired program code in the form of instructions or data structures and which can be accessed by a computer. In addition, any connection properly receives the name of computer readable media. For example, if the instructions are transmitted from a network headquarters, a server or other source
55
1010
15fifteen
20twenty
2525
3030
3535
4040
remota usando un cable coaxial, un cable de fibra optica, un par trenzado, una linea de abonado digital (DSL) o tecnologfas inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologfas inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio. Sin embargo, deberfa entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco de laser, el disco optico, el disco versatil digital (DVD), el disco flexible y el disco Blu-ray, donde algunos discos normalmente reproducen datos de manera magnetica, mientras que otros discos reproducen los datos de manera optica con laser. Las combinaciones de lo anterior tambien deberfan incluirse dentro del alcance de los medios legibles por ordenador.remote using a coaxial cable, an optical fiber cable, a twisted pair, a digital subscriber line (DSL) or wireless technologies such as infrared, radio and microwave, then the coaxial cable, the fiber optic cable, the twisted pair, DSL or wireless technologies such as infrared, radio and microwave are included in the definition of the medium. However, it should be understood that computer readable storage media and data storage media do not include connections, carrier waves, signals or other transient media, but instead are geared towards tangible non-transient storage media. The discs, as used herein, include the compact disc (CD), the laser disc, the optical disc, the digital versatile disc (DVD), the flexible disc and the Blu-ray disc, where some discs normally they reproduce data magnetically, while other discs reproduce the data optically with laser. Combinations of the above should also be included within the scope of computer readable media.
Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especfficos de la aplicacion (ASIC), formaciones logicas programables en el terreno (FPGA) u otros circuitos logicos integrados o discretos equivalentes. Por consiguiente, el termino "procesador", como se usa en el presente documento, puede referirse a cualquier estructura anterior o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de modulos de hardware y/o software especfficos configurados para la codificacion y la descodificacion, o incorporarse en un codec combinado. Ademas, las tecnicas podrfan implementarse completamente en uno o mas circuitos o elementos logicos.The instructions can be executed by one or more processors, such as one or more digital signal processors (DSP), general purpose microprocessors, application specific integrated circuits (ASIC), field programmable logic formations (FPGA) or others integrated or discrete logic circuits equivalent. Accordingly, the term "processor", as used herein, may refer to any previous structure or to any other structure suitable for the implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within specific hardware and / or software modules configured for encoding and decoding, or incorporated into a combined codec. In addition, the techniques could be fully implemented in one or more circuits or logic elements.
En otros ejemplos mas, esta divulgacion contempla un medio legible por ordenador que comprende una estructura de datos almacenada en el mismo, en el que la estructura de datos incluye un flujo de bits codificado consistente con esta divulgacion. En particular, el flujo de bits codificado puede incluir una o mas capas de datos de video y un parametro de video (VPS) para las una o mas capas de datos de video, en el que cada una de las una o mas capas de datos de video se refiere al VPS y una o mas capas de datos de video se codifican basandose, al menos en parte, en el VPS.In other examples, this disclosure contemplates a computer-readable medium comprising a data structure stored therein, in which the data structure includes an encoded bit stream consistent with this disclosure. In particular, the encoded bit stream may include one or more layers of video data and a video parameter (VPS) for the one or more layers of video data, in which each of the one or more layers of data Video refers to the VPS and one or more layers of video data are encoded based, at least in part, on the VPS.
Las tecnicas de la presente divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un telefono inalambrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En la presente divulgacion se describen varios componentes, modulos o unidades para enfatizar aspectos funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente la realizacion mediante diferentes unidades de hardware. Mas bien, como se ha descrito anteriormente, pueden combinarse diversas unidades en una unidad de hardware de codec, o ser proporcionadas por una coleccion de unidades de hardware interoperativas, incluyendo uno o mas procesadores, como se ha descrito anteriormente, conjuntamente con el software y/o firmware adecuado.The techniques of the present disclosure can be implemented in a wide variety of devices or devices, including a wireless telephone, an integrated circuit (IC) or a set of IC (for example, a chipset). In the present disclosure several components, modules or units are described to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require the realization by different hardware units. Rather, as described above, various units can be combined in a codec hardware unit, or provided by a collection of interoperable hardware units, including one or more processors, as described above, in conjunction with the software and / or appropriate firmware.
Se han descrito diversos ejemplos. Estos y otros ejemplos estan dentro del alcance de las siguientes reivindicaciones.Various examples have been described. These and other examples are within the scope of the following claims.
Claims (9)
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261586777P | 2012-01-14 | 2012-01-14 | |
US201261586777P | 2012-01-14 | ||
US201261587070P | 2012-01-16 | 2012-01-16 | |
US201261587070P | 2012-01-16 | ||
US201261588629P | 2012-01-19 | 2012-01-19 | |
US201261588629P | 2012-01-19 | ||
US201261637195P | 2012-04-23 | 2012-04-23 | |
US201261637195P | 2012-04-23 | ||
US201261637774P | 2012-04-24 | 2012-04-24 | |
US201261637774P | 2012-04-24 | ||
US201313738377 | 2013-01-10 | ||
US13/738,377 US9451252B2 (en) | 2012-01-14 | 2013-01-10 | Coding parameter sets and NAL unit headers for video coding |
PCT/US2013/021227 WO2013106705A2 (en) | 2012-01-14 | 2013-01-11 | Coding parameter sets and nal unit headers for video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2633651T3 true ES2633651T3 (en) | 2017-09-22 |
Family
ID=48779946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13700835.5T Active ES2633651T3 (en) | 2012-01-14 | 2013-01-11 | Coding of parameter sets and NAL unit headers for video coding |
Country Status (19)
Country | Link |
---|---|
US (1) | US9451252B2 (en) |
EP (1) | EP2803193B1 (en) |
JP (1) | JP6117243B2 (en) |
KR (1) | KR101760165B1 (en) |
CN (1) | CN104054345B (en) |
AU (1) | AU2013207799B2 (en) |
BR (1) | BR112014017159B1 (en) |
CA (1) | CA2860776C (en) |
DK (1) | DK2803193T3 (en) |
ES (1) | ES2633651T3 (en) |
HU (1) | HUE032097T2 (en) |
IL (1) | IL233228A (en) |
MY (1) | MY167149A (en) |
PH (1) | PH12014501447B1 (en) |
RU (1) | RU2633117C2 (en) |
SG (2) | SG11201403325SA (en) |
SI (1) | SI2803193T1 (en) |
TW (1) | TWI517692B (en) |
WO (1) | WO2013106705A2 (en) |
Families Citing this family (138)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9264760B1 (en) * | 2011-09-30 | 2016-02-16 | Tribune Broadcasting Company, Llc | Systems and methods for electronically tagging a video component in a video package |
US20130114710A1 (en) * | 2011-11-08 | 2013-05-09 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding video by prediction using reference picture list, and method and apparatus for decoding video by performing compensation using reference picture list |
US9451252B2 (en) | 2012-01-14 | 2016-09-20 | Qualcomm Incorporated | Coding parameter sets and NAL unit headers for video coding |
KR20130116782A (en) | 2012-04-16 | 2013-10-24 | 한국전자통신연구원 | Scalable layer description for scalable coded video bitstream |
WO2013162450A1 (en) * | 2012-04-24 | 2013-10-31 | Telefonaktiebolaget L M Ericsson (Publ) | Encoding and deriving parameters for coded multi-layer video sequences |
GB2501535A (en) * | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
US9602827B2 (en) | 2012-07-02 | 2017-03-21 | Qualcomm Incorporated | Video parameter set including an offset syntax element |
CN104335587B (en) * | 2012-07-04 | 2018-06-19 | 英特尔公司 | Filter parameter between the view of 3 D video decoding is reused |
KR102180470B1 (en) * | 2012-07-06 | 2020-11-19 | 삼성전자주식회사 | Method and apparatus for multi-layer video encoding, method and apparatus for multi-layer video decoding |
US9992490B2 (en) * | 2012-09-26 | 2018-06-05 | Sony Corporation | Video parameter set (VPS) syntax re-ordering for easy access of extension parameters |
CA2885408C (en) * | 2012-09-28 | 2021-11-30 | Sony Corporation | Image processing device and method |
PL2901688T3 (en) * | 2012-09-28 | 2020-05-18 | Nokia Technologies Oy | An apparatus and a method for video coding and decoding |
US20150237372A1 (en) * | 2012-10-08 | 2015-08-20 | Samsung Electronics Co., Ltd. | Method and apparatus for coding multi-layer video and method and apparatus for decoding multi-layer video |
US9936196B2 (en) * | 2012-10-30 | 2018-04-03 | Qualcomm Incorporated | Target output layers in video coding |
KR20140087971A (en) | 2012-12-26 | 2014-07-09 | 한국전자통신연구원 | Method and apparatus for image encoding and decoding using inter-prediction with multiple reference layers |
US9848202B2 (en) * | 2012-12-28 | 2017-12-19 | Electronics And Telecommunications Research Institute | Method and apparatus for image encoding/decoding |
US10219006B2 (en) * | 2013-01-04 | 2019-02-26 | Sony Corporation | JCTVC-L0226: VPS and VPS_extension updates |
US10419778B2 (en) | 2013-01-04 | 2019-09-17 | Sony Corporation | JCTVC-L0227: VPS_extension with updates of profile-tier-level syntax structure |
US10349074B2 (en) * | 2013-04-05 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding multi-layer video using decoded picture buffers which operate identically |
US9591321B2 (en) | 2013-04-07 | 2017-03-07 | Dolby International Ab | Signaling change in output layer sets |
SG10201913551WA (en) | 2013-04-07 | 2020-03-30 | Dolby Int Ab | Signaling change in output layer sets |
US20140307803A1 (en) | 2013-04-08 | 2014-10-16 | Qualcomm Incorporated | Non-entropy encoded layer dependency information |
WO2015008464A1 (en) * | 2013-07-14 | 2015-01-22 | Sharp Kabushiki Kaisha | Video parameter set signaling |
US9100631B2 (en) * | 2013-08-05 | 2015-08-04 | Cable Television Laboratories, Inc. | Dynamic picture quality control |
US9426465B2 (en) * | 2013-08-20 | 2016-08-23 | Qualcomm Incorporated | Sub-PU level advanced residual prediction |
CN104427323B (en) * | 2013-08-23 | 2016-08-10 | 鸿富锦精密工业(深圳)有限公司 | Three dimensional image processing method based on the degree of depth |
US20150078457A1 (en) * | 2013-09-13 | 2015-03-19 | Qualcomm Incorporated | Representation format signaling in multi-layer video coding |
CN105612745A (en) * | 2013-10-08 | 2016-05-25 | 夏普株式会社 | Image decoding device, image coding device, and coded data |
MY178305A (en) * | 2013-10-11 | 2020-10-07 | Vid Scale Inc | High level syntax for hevc extensions |
EP3056007A4 (en) * | 2013-10-11 | 2017-05-24 | Sharp Kabushiki Kaisha | Color information and chromaticity signaling |
US20160269740A1 (en) * | 2013-10-12 | 2016-09-15 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding multilayer video, and method and apparatus for decoding multilayer video |
CN105723712B (en) * | 2013-10-14 | 2019-06-28 | 韩国电子通信研究院 | Image coding/decoding method and equipment based on multilayer |
JP6336058B2 (en) | 2013-10-14 | 2018-06-06 | マイクロソフト テクノロジー ライセンシング,エルエルシー | Features of base color index map mode for video and image encoding and decoding |
RU2654129C2 (en) | 2013-10-14 | 2018-05-16 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Features of intra block copy prediction mode for video and image coding and decoding |
EP3058735B1 (en) * | 2013-10-14 | 2019-05-08 | Nokia Technologies Oy | Multi-layer hypothetical reference decoder |
EP3058736B1 (en) | 2013-10-14 | 2019-02-27 | Microsoft Technology Licensing, LLC | Encoder-side options for intra block copy prediction mode for video and image coding |
US9936207B2 (en) * | 2013-10-14 | 2018-04-03 | Qualcomm Incorporated | Indication of parallel processing in video coding |
WO2015056566A1 (en) * | 2013-10-15 | 2015-04-23 | ソニー株式会社 | Image processing device and method |
CA2924501C (en) | 2013-11-27 | 2021-06-22 | Mediatek Singapore Pte. Ltd. | Method of video coding using prediction based on intra picture block copy |
US9854270B2 (en) * | 2013-12-19 | 2017-12-26 | Qualcomm Incorporated | Device and method for scalable coding of video information |
CN104754358B (en) * | 2013-12-27 | 2019-02-19 | 中兴通讯股份有限公司 | The generation of code stream and processing method, apparatus and system |
CN105075251B (en) * | 2014-01-02 | 2016-11-23 | 维迪奥股份有限公司 | Utilize the video encoding/decoding method of covering, device and the system of auxiliary picture |
RU2669005C2 (en) | 2014-01-03 | 2018-10-05 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Block vector prediction in video and image coding/decoding |
US10390034B2 (en) | 2014-01-03 | 2019-08-20 | Microsoft Technology Licensing, Llc | Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area |
US9794558B2 (en) * | 2014-01-08 | 2017-10-17 | Qualcomm Incorporated | Support of non-HEVC base layer in HEVC multi-layer extensions |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
US10567804B2 (en) | 2014-01-08 | 2020-02-18 | Qualcomm Incorporated | Carriage of HEVC extension bitstreams and buffer model with MPEG-2 systems |
US9774881B2 (en) * | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
US11284103B2 (en) | 2014-01-17 | 2022-03-22 | Microsoft Technology Licensing, Llc | Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning |
US10542274B2 (en) | 2014-02-21 | 2020-01-21 | Microsoft Technology Licensing, Llc | Dictionary encoding and decoding of screen content |
CA2939431C (en) | 2014-03-04 | 2020-09-22 | Microsoft Techology Licensing, Llc | Block flipping and skip mode in intra block copy prediction |
EP3117612A1 (en) * | 2014-03-14 | 2017-01-18 | VID SCALE, Inc. | Systems and methods for rgb video coding enhancement |
US20150264099A1 (en) * | 2014-03-14 | 2015-09-17 | Sharp Laboratories Of America, Inc. | Systems and methods for constraining a bitstream |
JP6150134B2 (en) * | 2014-03-24 | 2017-06-21 | ソニー株式会社 | Image encoding apparatus and method, image decoding apparatus and method, program, and recording medium |
US9402083B2 (en) * | 2014-04-24 | 2016-07-26 | Vidyo, Inc. | Signaling conformance points using profile space |
EP3138293A4 (en) | 2014-04-29 | 2017-05-24 | Microsoft Technology Licensing, LLC | Encoder-side decisions for sample adaptive offset filtering |
KR102413529B1 (en) | 2014-06-19 | 2022-06-24 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Unified intra block copy and inter prediction modes |
US9930340B2 (en) * | 2014-06-20 | 2018-03-27 | Qualcomm Incorporated | Systems and methods for selectively performing a bitstream conformance check |
US10123028B2 (en) * | 2014-09-17 | 2018-11-06 | Mediatek Inc. | Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method |
WO2016049839A1 (en) | 2014-09-30 | 2016-04-07 | Microsoft Technology Licensing, Llc | Rules for intra-picture prediction modes when wavefront parallel processing is enabled |
US10306269B2 (en) * | 2014-10-10 | 2019-05-28 | Qualcomm Incorporated | Operation point for carriage of layered HEVC bitstream |
US20160112724A1 (en) * | 2014-10-15 | 2016-04-21 | Qualcomm Incorporated | Hrd descriptor and buffer model of data streams for carriage of hevc extensions |
JP6690536B2 (en) * | 2015-01-09 | 2020-04-28 | ソニー株式会社 | Image processing apparatus, image processing method, and program |
WO2016123001A1 (en) | 2015-01-27 | 2016-08-04 | Dolby International Ab | Predictive image encoding and decoding with pixel group based quantization |
US9591325B2 (en) | 2015-01-27 | 2017-03-07 | Microsoft Technology Licensing, Llc | Special case handling for merged chroma blocks in intra block copy prediction mode |
US10148969B2 (en) * | 2015-02-11 | 2018-12-04 | Qualcomm Incorporated | Of sample entry and operation point signalling in a layered video file format |
US11418812B2 (en) * | 2015-02-11 | 2022-08-16 | Qualcomm Incorporated | Placement of parameter sets and sync samples in video coding |
CN106664405B (en) | 2015-06-09 | 2020-06-09 | 微软技术许可有限责任公司 | Robust encoding/decoding of escape-coded pixels with palette mode |
US20170006283A1 (en) * | 2015-06-30 | 2017-01-05 | Microsoft Technology Licensing, Llc | Computationally efficient sample adaptive offset filtering during video encoding |
WO2017008263A1 (en) | 2015-07-15 | 2017-01-19 | Mediatek Singapore Pte. Ltd. | Conditional binary tree block partitioning structure |
US10547860B2 (en) * | 2015-09-09 | 2020-01-28 | Avago Technologies International Sales Pte. Limited | Video coding with trade-off between frame rate and chroma fidelity |
US10003822B2 (en) * | 2016-02-10 | 2018-06-19 | Primacomp, Inc. | Error-resilient coder of image sequences and video |
US11563938B2 (en) | 2016-02-15 | 2023-01-24 | Qualcomm Incorporated | Geometric transforms for filters for video coding |
JP6969541B2 (en) * | 2016-04-12 | 2021-11-24 | ソニーグループ株式会社 | Transmitter and transmission method |
US10356800B2 (en) * | 2016-05-09 | 2019-07-16 | Qualcomm Incorporated | Scalable numerology with symbol boundary alignment for uniform and non-uniform symbol duration in wireless communication |
US10271069B2 (en) | 2016-08-31 | 2019-04-23 | Microsoft Technology Licensing, Llc | Selective use of start code emulation prevention |
US10506230B2 (en) * | 2017-01-04 | 2019-12-10 | Qualcomm Incorporated | Modified adaptive loop filter temporal prediction for temporal scalability support |
WO2018198487A1 (en) * | 2017-04-25 | 2018-11-01 | Sharp Kabushiki Kaisha | Systems and methods for signaling quality information for regions in virtual reality applications |
KR102435881B1 (en) | 2017-05-26 | 2022-08-24 | 에스케이텔레콤 주식회사 | Apparatus and Method for Video Encoding or Decoding |
US11218697B2 (en) * | 2017-05-26 | 2022-01-04 | Sk Telecom Co., Ltd. | Apparatus and method for video encoding or decoding supporting various block sizes |
US10986349B2 (en) | 2017-12-29 | 2021-04-20 | Microsoft Technology Licensing, Llc | Constraints on locations of reference blocks for intra block copy prediction |
WO2019172202A1 (en) * | 2018-03-05 | 2019-09-12 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | Coding device and coding method |
WO2019234609A1 (en) | 2018-06-05 | 2019-12-12 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between ibc and bio |
TWI739120B (en) | 2018-06-21 | 2021-09-11 | 大陸商北京字節跳動網絡技術有限公司 | Unified constrains for the merge affine mode and the non-merge affine mode |
CN110636300B (en) | 2018-06-21 | 2022-07-29 | 北京字节跳动网络技术有限公司 | Sub-block motion vector inheritance between color components |
US10628276B2 (en) | 2018-06-29 | 2020-04-21 | International Business Machines Corporation | Unit test framework for testing code in a gateway service |
CN108898321B (en) * | 2018-07-09 | 2021-08-24 | 西北工业大学 | Semantic template-based method for acquiring standard conflict parameters of manufacturing technical problem |
CN110944193B (en) | 2018-09-24 | 2023-08-11 | 北京字节跳动网络技术有限公司 | Weighted bi-prediction in video encoding and decoding |
JP7324841B2 (en) | 2018-11-10 | 2023-08-10 | 北京字節跳動網絡技術有限公司 | Video data processing method, apparatus, storage medium and storage method |
CN113056920B (en) * | 2018-11-22 | 2024-05-24 | 北京字节跳动网络技术有限公司 | Coordination method of inter prediction based on subblocks |
US10812818B2 (en) | 2018-12-14 | 2020-10-20 | Tencent America LLC | Network abstraction unit layer type classes in network abstraction layer unit header |
EP3900346A4 (en) | 2018-12-31 | 2022-05-18 | Huawei Technologies Co., Ltd. | Support of adaptive resolution change in video coding |
CN113243110A (en) * | 2018-12-31 | 2021-08-10 | 华为技术有限公司 | Explicit address indication in video coding |
CN113396582B (en) | 2019-02-01 | 2024-03-08 | 北京字节跳动网络技术有限公司 | Interaction between loop shaping and palette modes |
WO2020156526A1 (en) | 2019-02-01 | 2020-08-06 | Beijing Bytedance Network Technology Co., Ltd. | Interactions between in-loop reshaping and inter coding tools |
WO2020176635A1 (en) * | 2019-02-27 | 2020-09-03 | Futurewei Technologies, Inc. | Adaptation parameter set identifier value spaces in video coding |
US11395006B2 (en) * | 2019-03-06 | 2022-07-19 | Tencent America LLC | Network abstraction layer unit header |
CN113574889B (en) | 2019-03-14 | 2024-01-12 | 北京字节跳动网络技术有限公司 | Signaling and syntax of loop shaping information |
EP3941065A4 (en) * | 2019-03-15 | 2022-05-18 | Lg Electronics Inc. | Method and device for signaling information on chroma format |
EP3925216A4 (en) * | 2019-03-23 | 2022-06-15 | Beijing Bytedance Network Technology Co., Ltd. | Restrictions on adaptive-loop filtering parameter sets |
CN113796074A (en) * | 2019-03-25 | 2021-12-14 | 联发科技股份有限公司 | Method and apparatus for quantization matrix calculation and representation for video coding and decoding |
US11917143B2 (en) * | 2019-04-03 | 2024-02-27 | Lg Electronics Inc. | Adaptive loop filter-based video or image coding |
US20220210403A1 (en) * | 2019-04-15 | 2022-06-30 | Lg Electronics Inc. | Scaling list parameter-based video or image coding |
WO2020216380A1 (en) * | 2019-04-26 | 2020-10-29 | Beijing Bytedance Network Technology Co., Ltd. | Prediction of parameters for in-loop reshaping |
WO2020228691A1 (en) * | 2019-05-12 | 2020-11-19 | Beijing Bytedance Network Technology Co., Ltd. | Signaling for reference picture resampling |
MX2021014277A (en) * | 2019-05-24 | 2022-01-06 | Digital Insights Inc | Video coding method and apparatus using adaptive parameter set. |
US11032548B2 (en) * | 2019-06-24 | 2021-06-08 | Tencent America LLC | Signaling for reference picture resampling |
WO2021027774A1 (en) | 2019-08-10 | 2021-02-18 | Beijing Bytedance Network Technology Co., Ltd. | Subpicture dependent signaling in video bitstreams |
JP7481430B2 (en) | 2019-08-13 | 2024-05-10 | 北京字節跳動網絡技術有限公司 | Motion Accuracy in Subblock-Based Inter Prediction |
EP4024858A4 (en) | 2019-08-29 | 2023-10-04 | LG Electronics Inc. | Cross-component adaptive loop filtering-based image coding apparatus and method |
WO2021052506A1 (en) | 2019-09-22 | 2021-03-25 | Beijing Bytedance Network Technology Co., Ltd. | Transform unit based combined inter intra prediction |
AU2020354883A1 (en) * | 2019-09-24 | 2022-04-21 | Huawei Technologies Co., Ltd. | Signaling of picture header in video coding |
CN114424571A (en) | 2019-09-24 | 2022-04-29 | 华为技术有限公司 | Encoder, decoder and corresponding methods |
WO2021061530A1 (en) * | 2019-09-24 | 2021-04-01 | Futurewei Technologies, Inc. | Ols for spatial and snr scalability |
CN114902679A (en) * | 2019-12-13 | 2022-08-12 | 松下电器(美国)知识产权公司 | Encoding device, decoding device, encoding method, and decoding method |
EP4062634A4 (en) * | 2019-12-26 | 2022-12-28 | ByteDance Inc. | Constraints on signaling of hypothetical reference decoder parameters in video bitstreams |
WO2021134015A1 (en) | 2019-12-26 | 2021-07-01 | Bytedance Inc. | Profile, tier and layer indication in video coding |
EP4066495A4 (en) | 2019-12-26 | 2023-02-01 | ByteDance Inc. | Profile tier level parameter set in video coding |
US11343524B2 (en) * | 2019-12-27 | 2022-05-24 | Tencent America LLC | Method for adaptation parameter set reference and constraints in coded video stream |
EP4066386A4 (en) | 2019-12-27 | 2023-01-25 | ByteDance Inc. | Subpicture signaling in video coding |
US11356698B2 (en) | 2019-12-30 | 2022-06-07 | Tencent America LLC | Method for parameter set reference constraints in coded video stream |
CN117395441A (en) | 2020-01-09 | 2024-01-12 | 字节跳动有限公司 | Processing of padding data units in a video stream |
RU2730422C1 (en) * | 2020-01-14 | 2020-08-21 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Московский автомобильно-дорожный государственный технический университет (МАДИ) | Method of spatial coding and transmission of digital information |
US20230050232A1 (en) * | 2020-01-15 | 2023-02-16 | Lg Electronics Inc. | In-loop filtering-based image coding apparatus and method |
WO2021145726A1 (en) * | 2020-01-15 | 2021-07-22 | 엘지전자 주식회사 | Adaptive loop filtering-based image coding apparatus and method |
WO2021145725A1 (en) * | 2020-01-15 | 2021-07-22 | 엘지전자 주식회사 | Image coding device and method based on filtering-related information signaling |
CN115023953A (en) * | 2020-02-04 | 2022-09-06 | 华为技术有限公司 | Encoder, decoder and corresponding methods indicating high level syntax |
US20230064234A1 (en) * | 2020-02-06 | 2023-03-02 | Interdigital Patent Holdings, Inc. | Systems and methods for encoding a deep neural network |
EP4104438A4 (en) * | 2020-03-11 | 2023-08-16 | Beijing Bytedance Network Technology Co., Ltd. | Adaptive loop filtering |
US11509920B2 (en) * | 2020-03-27 | 2022-11-22 | Tencent America LLC | Indication of max sublayer numbers in multilayered video stream |
CN115299046A (en) | 2020-04-01 | 2022-11-04 | 寰发股份有限公司 | Method and device for transmitting slice segmentation information in image and video coding and decoding |
JP2023524201A (en) * | 2020-04-21 | 2023-06-09 | ドルビー ラボラトリーズ ライセンシング コーポレイション | Semantics for Constraint Handling and Conformance Testing in Video Coding |
CN115699733A (en) | 2020-05-21 | 2023-02-03 | 字节跳动有限公司 | Signaling inter-layer reference pictures in video coding and decoding |
US11431998B2 (en) | 2020-05-22 | 2022-08-30 | Tencent America LLC | Systems and methods for decoding based on inferred video parameter sets |
WO2021242716A1 (en) * | 2020-05-26 | 2021-12-02 | Bytedance Inc. | Identification of inter-layer reference pictures in coded video |
CN115699769A (en) | 2020-05-31 | 2023-02-03 | 抖音视界有限公司 | Constraint signaling using generic constraint information syntax elements |
US11770549B2 (en) * | 2020-06-10 | 2023-09-26 | Sony Group Corporation | Video data encoding and decoding circuity applying constraint data |
US20240205394A1 (en) * | 2021-04-23 | 2024-06-20 | Bytedance Inc. | Method, device, and medium for video processing |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7302490B1 (en) | 2000-05-03 | 2007-11-27 | Microsoft Corporation | Media file format to support switching between multiple timeline-altered media streams |
US20040006575A1 (en) | 2002-04-29 | 2004-01-08 | Visharam Mohammed Zubair | Method and apparatus for supporting advanced coding formats in media files |
EP1385337A1 (en) | 2002-07-22 | 2004-01-28 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for storing and transmitting audio-visual data |
WO2004030369A1 (en) | 2002-09-27 | 2004-04-08 | Videosoft, Inc. | Real-time video coding/decoding |
US7724818B2 (en) | 2003-04-30 | 2010-05-25 | Nokia Corporation | Method for coding sequences of pictures |
US20050254575A1 (en) | 2004-05-12 | 2005-11-17 | Nokia Corporation | Multiple interoperability points for scalable media coding and transmission |
KR20050113501A (en) | 2004-05-29 | 2005-12-02 | 삼성전자주식회사 | Syntax parser for a h.264 video decoder |
DE102004042819A1 (en) | 2004-09-03 | 2006-03-23 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for generating a coded multi-channel signal and apparatus and method for decoding a coded multi-channel signal |
US9560367B2 (en) | 2004-09-03 | 2017-01-31 | Nokia Technologies Oy | Parameter set and picture header in video coding |
US20060233247A1 (en) | 2005-04-13 | 2006-10-19 | Visharam Mohammed Z | Storing SVC streams in the AVC file format |
US8208564B2 (en) | 2005-06-24 | 2012-06-26 | Ntt Docomo, Inc. | Method and apparatus for video encoding and decoding using adaptive interpolation |
WO2007042914A1 (en) | 2005-10-11 | 2007-04-19 | Nokia Corporation | Efficient decoded picture buffer management for scalable video coding |
EP1999967A2 (en) | 2006-03-29 | 2008-12-10 | Thomson Licensing | Multi-view video coding method and device |
AU2007232607B2 (en) | 2006-03-30 | 2010-09-16 | Lg Electronics Inc. | A method and apparatus for decoding/encoding a video signal |
EP1985121A4 (en) | 2006-11-17 | 2010-01-13 | Lg Electronics Inc | Method and apparatus for decoding/encoding a video signal |
EP2418851A3 (en) | 2006-12-21 | 2012-05-23 | Thomson Licensing | Methods and apparatus for improved signaling using high level syntax for multi-view video coding and decoding |
JP5535646B2 (en) * | 2007-01-05 | 2014-07-02 | トムソン ライセンシング | Virtual reference decoder for scalable video coding |
EP1994721A4 (en) | 2007-01-12 | 2013-09-25 | Univ Kyung Hee Univ Ind Coop Group | Packet format of network abstraction layer unit, and algorithm and apparatus for video encoding and decoding using the format, qos control algorithm and apparatus for ipv6 label switching using the format |
CN101669367A (en) | 2007-03-02 | 2010-03-10 | Lg电子株式会社 | A method and an apparatus for decoding/encoding a video signal |
US8548261B2 (en) | 2007-04-11 | 2013-10-01 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding multi-view image |
US20090003431A1 (en) | 2007-06-28 | 2009-01-01 | Lihua Zhu | Method for encoding video data in a scalable manner |
PL2528341T3 (en) | 2007-04-18 | 2017-10-31 | Dolby Int Ab | Coding system using supplemental sequence parameter set for scalable video coding or multi-view coding |
EP2198620A2 (en) * | 2007-10-05 | 2010-06-23 | Thomson Licensing | Methods and apparatus for incorporating video usability information (vui) within a multi-view video (mvc) coding system |
US20090187960A1 (en) * | 2008-01-17 | 2009-07-23 | Joon Hui Lee | IPTV receiving system and data processing method |
US8891619B2 (en) | 2008-06-16 | 2014-11-18 | Dolby Laboratories Licensing Corporation | Rate control model adaptation based on slice dependencies for video coding |
US20100132007A1 (en) | 2008-11-25 | 2010-05-27 | Cisco Technology, Inc. | Accelerating channel change time with external picture property markings |
US8683515B2 (en) | 2008-11-25 | 2014-03-25 | Cisco Technology, Inc. | Receiver for accelerating channel change time |
EP2392138A4 (en) | 2009-01-28 | 2012-08-29 | Nokia Corp | Method and apparatus for video coding and decoding |
US9036705B2 (en) | 2009-03-13 | 2015-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Technique for bringing encoded data items into conformity with a scalable coding protocol |
KR20120013966A (en) | 2009-05-01 | 2012-02-15 | 톰슨 라이센싱 | Reference picture lists for 3dv |
US9774882B2 (en) | 2009-07-04 | 2017-09-26 | Dolby Laboratories Licensing Corporation | Encoding and decoding architectures for format compatible 3D video delivery |
US8462797B2 (en) | 2009-11-30 | 2013-06-11 | Alcatel Lucent | Method of priority based transmission of wireless video |
US9094658B2 (en) | 2010-05-10 | 2015-07-28 | Mediatek Inc. | Method and apparatus of adaptive loop filtering |
JP5752268B2 (en) | 2011-01-14 | 2015-07-22 | ヴィディオ・インコーポレーテッド | High layer syntax for temporal scalability |
US9113172B2 (en) | 2011-01-14 | 2015-08-18 | Vidyo, Inc. | Techniques for describing temporal coding structure |
WO2012122246A1 (en) | 2011-03-10 | 2012-09-13 | Vidyo, Inc. | Dependency parameter set for scalable video coding |
CA2829335A1 (en) | 2011-03-10 | 2012-09-13 | Vidyo, Inc. | Parameter set maintenance in video coding |
CN103416002B (en) | 2011-03-10 | 2015-04-01 | 维德约股份有限公司 | Render-orientation information in video bitstream |
US9635355B2 (en) | 2011-07-28 | 2017-04-25 | Qualcomm Incorporated | Multiview video coding |
US10237565B2 (en) | 2011-08-01 | 2019-03-19 | Qualcomm Incorporated | Coding parameter sets for various dimensions in video coding |
US20130094774A1 (en) * | 2011-10-13 | 2013-04-18 | Sharp Laboratories Of America, Inc. | Tracking a reference picture based on a designated picture on an electronic device |
US20130114694A1 (en) | 2011-11-08 | 2013-05-09 | Qualcomm Incorporated | Parameter set groups for coded video data |
WO2013106521A2 (en) | 2012-01-10 | 2013-07-18 | Vidyo, Inc. | Techniques for layered video encoding and decoding |
US9451252B2 (en) | 2012-01-14 | 2016-09-20 | Qualcomm Incorporated | Coding parameter sets and NAL unit headers for video coding |
EP2838264A4 (en) | 2012-04-23 | 2016-01-06 | Samsung Electronics Co Ltd | Method for encoding multiview video using reference list for multiview video prediction and device therefor, and method for decoding multiview video using refernece list for multiview video prediction and device therefor |
US9602827B2 (en) | 2012-07-02 | 2017-03-21 | Qualcomm Incorporated | Video parameter set including an offset syntax element |
US20140218473A1 (en) | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
US20140307803A1 (en) | 2013-04-08 | 2014-10-16 | Qualcomm Incorporated | Non-entropy encoded layer dependency information |
-
2013
- 2013-01-10 US US13/738,377 patent/US9451252B2/en active Active
- 2013-01-11 SI SI201330712T patent/SI2803193T1/en unknown
- 2013-01-11 SG SG11201403325SA patent/SG11201403325SA/en unknown
- 2013-01-11 HU HUE13700835A patent/HUE032097T2/en unknown
- 2013-01-11 DK DK13700835.5T patent/DK2803193T3/en active
- 2013-01-11 TW TW102101271A patent/TWI517692B/en active
- 2013-01-11 JP JP2014552328A patent/JP6117243B2/en active Active
- 2013-01-11 BR BR112014017159-9A patent/BR112014017159B1/en active IP Right Grant
- 2013-01-11 EP EP13700835.5A patent/EP2803193B1/en active Active
- 2013-01-11 MY MYPI2014701914A patent/MY167149A/en unknown
- 2013-01-11 RU RU2014133415A patent/RU2633117C2/en active
- 2013-01-11 AU AU2013207799A patent/AU2013207799B2/en active Active
- 2013-01-11 KR KR1020147022571A patent/KR101760165B1/en active IP Right Grant
- 2013-01-11 WO PCT/US2013/021227 patent/WO2013106705A2/en active Search and Examination
- 2013-01-11 ES ES13700835.5T patent/ES2633651T3/en active Active
- 2013-01-11 CA CA2860776A patent/CA2860776C/en active Active
- 2013-01-11 SG SG10201605700SA patent/SG10201605700SA/en unknown
- 2013-01-11 CN CN201380005237.2A patent/CN104054345B/en active Active
-
2014
- 2014-06-18 IL IL233228A patent/IL233228A/en active IP Right Grant
- 2014-06-23 PH PH12014501447A patent/PH12014501447B1/en unknown
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2633651T3 (en) | Coding of parameter sets and NAL unit headers for video coding | |
ES2647948T3 (en) | Reuse of parameter sets for video encoding | |
JP7404373B2 (en) | Video encoders, video decoders, and corresponding methods | |
ES2663444T3 (en) | Encoding timing information for video encoding | |
ES2895270T3 (en) | MCTS-EIS SEI message encoding of an access unit | |
ES2656908T3 (en) | Parallel Processing for Video Encoding | |
ES2707890T3 (en) | Video encoding of multiple visualizations | |
ES2715980T3 (en) | Coding of count values of the order of images that identify long-term reference frames | |
KR20210135307A (en) | Encoders, decoders, and corresponding methods | |
KR101822247B1 (en) | Video parameter set for hevc and extensions | |
ES2657494T3 (en) | Random access and signaling of long-term reference images in video coding | |
ES2686936T3 (en) | MVC-based 3DVC codec that supports internal display motion prediction (IVMP) mode | |
ES2613003T3 (en) | Signaling of clock pulse obtaining information for video timing in video encoding | |
ES2884723T3 (en) | Signaling regions of interest and gradual decoding update in video encoding | |
ES2730876T3 (en) | Target output layers in video encoding | |
ES2736312T3 (en) | Long-term reference image signaling for video coding | |
ES2684546T3 (en) | Video encoding with enhanced random access point image behaviors | |
ES2696723T3 (en) | Design of the POC value for multilayer video coding | |
KR20220053676A (en) | Signaling of subpicture ID in subpicture based video coding | |
BR112016029356B1 (en) | METHOD FOR DECODING AND ENCODING AND DEVICE FOR DECODING VIDEO DATA IN ACCORDANCE WITH A HIGH EFFICIENCY VIDEO CODING (HEVC) STANDARD | |
BR112016013141B1 (en) | POC VALUE DESIGN FOR MULTILAYER VIDEO CODING |