ES2842082T3 - Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa - Google Patents
Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa Download PDFInfo
- Publication number
- ES2842082T3 ES2842082T3 ES14723962T ES14723962T ES2842082T3 ES 2842082 T3 ES2842082 T3 ES 2842082T3 ES 14723962 T ES14723962 T ES 14723962T ES 14723962 T ES14723962 T ES 14723962T ES 2842082 T3 ES2842082 T3 ES 2842082T3
- Authority
- ES
- Spain
- Prior art keywords
- type
- unit
- abstraction layer
- network abstraction
- syntax element
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/187—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/188—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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 procesamiento de datos de vídeo, comprendiendo el procedimiento: recibir (140) un flujo de bits de datos de vídeo codificados, en el que el flujo de bits comprende al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red, y una unidad de acceso codificada, en el que la unidad de acceso codificada comprende una pluralidad de imágenes; determinar (142) un valor del elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas, y en el que el elemento de sintaxis se señaliza en una posición de una unidad de capa de abstracción de red (NAL) cuya descodificación de entropía no se necesita para interpretar el elemento de sintaxis; y como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas: determinar (144) el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso; determinar (146) si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo; y como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, establecer (148) un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red.
Description
DESCRIPCIÓN
Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa
[0001] La presente solicitud reivindica la prioridad de la solicitud provisional de EE. UU. n.° 61/813.120, presentada el 17 de abril de 2013.
CAMPO TÉCNICO
[0002] La divulgación se refiere a la codificación y la compresión de vídeo.
ANTECEDENTES
[0003] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, ordenadores de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos móviles o de radio por satélite, los denominados "teléfonos inteligentes", dispositivos de videoconferencia, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, parte 10, codificación avanzada de vídeo (AVC), ITU-T H.265, la norma de codificación de vídeo de alta eficacia (HEVC) actualmente en elaboración y las ampliaciones de dichas normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente implementando dichas técnicas de compresión de vídeo.
[0004] Las técnicas de compresión de vídeo realizan predicción espacial (intraimagen) y/o predicción temporal (interimagen) para reducir o eliminar la redundancia intrínseca a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un segmento de vídeo (es decir, una trama de vídeo o una parte de una trama de vídeo) se puede dividir en bloques de vídeo, que también se pueden denominar bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo de un segmento intracodificado (I) de una imagen se codifican usando predicción espacial con respecto a unas muestras de referencia de bloques vecinos en la misma imagen. Los bloques de vídeo de un segmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a unas muestras de referencia de bloques vecinos en la misma imagen o predicción temporal con respecto a unas muestras de referencia en otras imágenes de referencia. Las imágenes se pueden denominar tramas, y las imágenes de referencia se pueden denominar tramas de referencia.
[0005] La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que se va a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se va a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificación y los datos residuales. Para una compresión adicional, los datos residuales se pueden transformar desde el dominio del píxel a un dominio de la transformada, dando como resultado coeficientes de transformada residuales, que a continuación se pueden cuantificar. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, se pueden explorar para generar un vector unidimensional de coeficientes de transformada, y se puede aplicar codificación de entropía para lograr aún más compresión.
[0006] El documento de YK Wang et al.: "AHG9: On cross-layer alignments in HEVC 3DV and scalable extensions" propone una alineación entre capas de tipos de imágenes IRAP en la que se requiere que todas las imágenes IRAP de una AU tengan el mismo tipo de unidad NAL.
BREVE EXPLICACIÓN
[0007] En general, la divulgación describe técnicas para indicaciones de alineación entre capas de tipos de imágenes de manera que la indicación es fácilmente accesible por diferentes entidades en sistemas de transmisión y aplicación de medios cuando los tipos de imágenes entre capas pueden no estar alineados dentro de la unidad de acceso.
[0008] En un ejemplo, la divulgación está dirigida a un procedimiento que incluye recibir un flujo de bits de datos de vídeo codificados, en el que el flujo de bits comprende al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red y una unidad de acceso codificada, en el que la unidad de acceso codificada comprende una pluralidad de imágenes; determinar un valor del elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas, y en el que el elemento de sintaxis está señalado en una posición en una unidad de capa de abstracción de red cuya descodificación de entropía no se necesita para interpretar el elemento de sintaxis; y, como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas, determinar el primer tipo de unidad de capa de abstracción de red para una
imagen de la unidad de acceso, determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo; y, como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, establecer un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red.
[0009] En algunos ejemplos, se puede establecer un tipo de unidad de capa de abstracción de red para cualquier imagen de capa de referencia, directa y/o indirecta, que pertenezca a la unidad de acceso.
[0010] En otro ejemplo, la divulgación se dirige a un aparato para procesar vídeo, comprendiendo el aparato medios para recibir un flujo de bits de datos de vídeo codificados, en el que el flujo de bits comprende al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red y una unidad de acceso codificada, en el que la unidad de acceso codificada comprende una pluralidad de imágenes, medios para determinar un valor del elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas, y en el que el elemento de sintaxis se señaliza en una posición en una unidad de capa de abstracción de red que cuya descodificación de entropía no se necesita para interpretar el elemento de sintaxis; y medios para determinar el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas; medios para determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo; y medios para establecer un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo. En algunos ejemplos, se puede establecer un tipo de unidad de capa de abstracción de red para cualquier imagen de capa de referencia, directa y/o indirecta, que pertenezca a la unidad de acceso.
[0011] En otro ejemplo, la divulgación se dirige a un medio de almacenamiento legible por ordenador que almacena instrucciones que, cuando se ejecutan, hacen que uno o más procesadores de un dispositivo para procesar datos de vídeo realicen el procedimiento de cualquiera de las reivindicaciones 1-7.
[0012] Los detalles de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características, objetivos y ventajas de la divulgación resultarán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0013]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo que puede utilizar las técnicas descritas en la presente divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo que puede implementar las técnicas descritas en la presente divulgación.
La FIG. 3 es un diagrama de bloques que ilustra un descodificador de vídeo de ejemplo que puede implementar las técnicas descritas en la presente divulgación.
La FIG. 4 es un diagrama de bloques que ilustra una red de ejemplo en la que se pueden implementar uno o más aspectos de la presente divulgación.
La FIG. 5 es un diagrama de flujo que ilustra una técnica de descodificación de ejemplo de acuerdo con una o más técnicas descritas en la presente divulgación.
La FIG. 6 es un diagrama de flujo que ilustra una técnica de codificación de ejemplo de acuerdo con una o más técnicas descritas en la presente divulgación.
DESCRIPCIÓN DETALLADA
[0014] Esta divulgación describe unos procedimientos para indicar la alineación de tipos de imágenes entre capas para la codificación de vídeo multicapa. Más específicamente, se divulgan unos procedimientos para indicaciones de alineación entre capas de tipos de imágenes IRAP, tipos de imágenes anteriores, tipos de imágenes posteriores, tipos de imágenes TSA y tipos de imágenes STSA. También se describen diversos dispositivos, sistemas, medios legibles por ordenador que usan los procedimientos.
[0015] Las normas de codificación de vídeo incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4
AVC), incluyendo sus ampliaciones de codificación de vídeo escalable (SVC) y de codificación de vídeo multivista (MVC), e ITU-T H.265.
[0016] La SVC y la MVC no requieren una alineación entre capas de los tipos de imágenes definidos en las capas y muchos tipos de imágenes definidos en la HEVC no están definidos en la AVC/SVC/MVC. Actualmente, en SHVC WD1 y MV-HEVC WD3, no es necesario que las imágenes CRA estén alineadas entre capas. Que no se requiera la alineación de tipos de imágenes entre capas puede ser beneficioso para algunas situaciones de casos de uso. Por ejemplo, que no se requiera la alineación de imágenes CRA será beneficioso en situaciones que requieren acceso aleatorio frecuente con una eficacia en capas más bajas mayor que en capas más altas, o acceso aleatorio frecuente con una eficacia en capas más altas mayor que en capas más bajas. En estos casos, la alineación entre capas de tipos de imágenes puede no permitir el uso eficaz de imágenes en las capas lo que puede resultar en una pérdida de eficacia de codificación o un incremento de retardos de acceso aleatorio.
[0017] El SHVC WD1 y el MV-HEVC WD3 actualmente requieren alineación entre capas de imágenes BLA y no requieren alineación entre capas de imágenes IDR, imágenes RASL, imágenes RADL, imágenes TSA e imágenes STSA. Es posible que futuras versiones de SHVC y MV-HEVC permitan imágenes IDR no alineadas entre capas por la misma razón que para las imágenes CRA.
[0018] En algunos ejemplos, este documento puede suponer algunos conceptos de imagen (codificada), unidad de acceso (AU), IRAP a U, secuencia de vídeo codificado (CVS) y flujo de bits, aunque los procedimientos también se aplican si algunos de estos supuestos se cambian. A lo largo de esta divulgación, una imagen (codificada) puede ser similar a la definición de imagen actual (codificada), donde una imagen codificada es equivalente a una representación de capa en SVC, una componente de vista en MVC y una componente de vista de textura o profundidad en MVC+D. Una unidad de acceso puede ser similar a una unidad de acceso como en SVC y MVC, que consiste en todas las imágenes codificadas asociadas con el mismo tiempo de salida y sus unidades no VCL NAL asociadas. Una unidad de acceso IRAP puede ser una unidad de acceso en la que todas las imágenes codificadas son imágenes IRAP. Una CVS puede ser una secuencia de unidades de acceso que consiste, por orden de descodificación, en una unidad de acceso IRAP con NoRaslOutputFlag igual a 1, seguida de cero o más unidades de acceso que no son unidades de acceso IRAP con NoRaslOutputFlag igual a 1, incluyendo todas las unidades de acceso posteriores hasta, pero sin incluir, cualquier unidad de acceso posterior que sea una unidad de acceso IRAP con NoRaslOutputFlag igual a 1. Un flujo de bits puede ser una secuencia de bits, en forma de un flujo de unidades NAL o un flujo de bytes, que forma la representación de una o más CVS, y la primera unidad de acceso del flujo de bits puede ser una unidad de acceso IRAP.
[0019] A pesar de las ventajas mencionadas anteriormente para permitir tipos de imágenes no alineadas entre capas, tales como imágenes CRA e imágenes IDR, sin embargo, si un flujo de bits está codificado con uno o más o todos los tipos de imágenes alineados entre capas, puede ser beneficioso para entidades de sistema, tales como servidores y elementos de red con reconocimiento de medios (MANE), también conocidos como pasarelas de medios inteligentes, conocer y usar esta información.
[0020] Por ejemplo, si a un MANE se le informa que las imágenes CRA o IDR están alineadas entre capas, entonces no es necesario esperar la recepción de todas las imágenes de una unidad de acceso y analizarlas y a continuación determinar que la unidad de acceso actual proporciona accesibilidad aleatoria completa a todas las capas y por tanto se puede usar para un acceso aleatorio simple a cualquier conjunto de capas, empalme con cualquier conjunto de capas y cambio a cualquier capa.
[0021] Por lo tanto, sería deseable proporcionar mecanismos para indicaciones de alineación entre capas de tipos de imágenes de manera que la indicación sea fácilmente accesible por diferentes entidades en los sistemas de transmisión y aplicación de medios. Además, puede ser deseable diseñar dichos mecanismos de una manera que no requiera descodificación de entropía u otro análisis asociado con la descompresión de vídeo, ya que los elementos de red (tal como un MANE) pueden no realizar descodificación de entropía u otro análisis asociado con la descompresión de vídeo.
[0022] En general, un elemento de sintaxis (por ejemplo, una marca denominada vps_cross_layer irap_align) para indicar una alineación entre capas de un tipo de imagen en particular o un conjunto de tipos de imagen en particular se señala en el VPS (por ejemplo en las ampliaciones de VPS, tales como el VPS), y el elemento de sintaxis se puede diseñar e interpretar con una determinada semántica. En algunos ejemplos, cuando se señala que el elemento de sintaxis es igual a 0, se pueden aplicar o no restricciones de flujo de bits, tales como las que se enumeran a continuación. En otras palabras, en algunos ejemplos, si el elemento de sintaxis es igual a 0, entonces dentro de una CVS que se refiere al VPS, todas las unidades VCL NAL de cada AU pueden tener o no el mismo valor de nal_unit_type. En otros ejemplos, si el elemento de sintaxis es igual a 0, entonces dentro de una CVS que se refiere al VPS, todas las unidades VCL NAL de un intervalo específico de unidades VCL NAL pueden tener o no el mismo valor de nal_unit_type.
[0023] En algunos ejemplos, cuando el elemento de sintaxis es igual a 1, dentro de una CVS que se refiere al VPS, cuando el nal_unit_type de una unidad VCL NAL de una AU es igual a un tipo en particular de tipo de unidad NAL (o
un valor que es uno de un conjunto en particular de valores de tipo de unidad NAL), todas las unidades VCL NAL de la AU tienen el mismo valor de nal_unit_type. En algunos ejemplos, cuando el elemento de sintaxis es igual a 1, dentro de una CVS que se refiere al VPS, cada imagen de referencia de la misma unidad de acceso tiene el mismo valor de nal_unit_type que la imagen inicialmente referenciada.
[0024] En algunos ejemplos, el elemento de sintaxis puede ser igual a 1, lo que puede especificar que dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una AU está en el intervalo de BLA_W_l P...RSV_IRAP_VCL23 (16 a 23, inclusive), todas las unidades VCL de la AU tienen el mismo valor de nal_unit_type. Específicamente, cuando el elemento de sintaxis es igual a 1, se puede aplicar una restricción de flujo de bits. La restricción de flujo de bits puede ser en el sentido de que, cuando una imagen de una AU tenga nal_unit_type nutA en el intervalo de BlA_W_LP...RSV_IRAP_VCL23 (16 a 23, inclusive), cualquier otra imagen de la misma unidad de acceso deberá tener nal_unit_type igual a nutA. En algunos ejemplos, cuando el elemento de sintaxis es igual a 1, dentro de una CVS que se refiere al VPS, cada imagen de referencia de la misma unidad de acceso tiene el mismo valor de nal_unit_type que la imagen inicialmente referenciada.
[0025] De forma alternativa, en ejemplos donde el elemento de sintaxis puede ser igual a 0, dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una AU está en el intervalo de BLA_W_LP...RSV_IRAP_VCL23, todas las unidades VCL NAL de la AU pueden o pueden no tener el mismo valor de nal _unit_type. Este procedimiento se puede aplicar de forma independiente por sí mismo o junto con los procedimientos descritos en los otros ejemplos.
[0026] En algunos ejemplos, el elemento de sintaxis puede ser igual a 1, lo que puede especificar que dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una AU es igual a IDR_W_RADL o IDR_N_LP (19 o 20), todas las unidades VCL de la AU tienen el mismo valor de nal_unit_type. Específicamente, cuando el elemento de sintaxis es igual a 1, se puede aplicar una restricción de flujo de bits. La restricción de flujo de bits puede ser en el sentido de que, cuando una imagen de una AU tenga nal_unit_type nutA igual a IDR_W_RADL o IDR_N_LP (19 o 20), cualquier otra imagen de la misma unidad de acceso deberá tener nal_unit_type igual a nutA. En algunos ejemplos, cuando el elemento de sintaxis es igual a 1, dentro de una CVS que se refiere al VPS, cada imagen de referencia de la misma unidad de acceso tiene el mismo valor de nal_unit_type que la imagen inicialmente referenciada.
[0027] De forma alternativa, en ejemplos donde el elemento de sintaxis puede ser igual a 0, dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una Au es igual a IDR W RADL o IDR_N_LP (19 o 20), todas las unidades VCL NAL de la AU pueden tener o no el mismo valor de nal _unit_type. Este procedimiento se puede aplicar de forma independiente por sí mismo o junto con los procedimientos descritos en los otros ejemplos.
[0028] En algunos ejemplos, el elemento de sintaxis puede ser igual a 1, lo que puede especificar que dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una AU está en el intervalo de TRAIL_N...RSV_VCL31 (0 a 31, inclusive), todas las unidades VCL de la AU tienen el mismo valor de nal _unit_type. Específicamente, cuando el elemento de sintaxis es igual a 1, se puede aplicar una restricción de flujo de bits. La restricción de flujo de bits puede ser en el sentido de que, cuando una imagen de una AU tenga nal_unit_type nutA en el intervalo de TRAIL_N...RSV_VCL31 (0 a 31, inclusive), cualquier otra imagen de la misma unidad de acceso deberá tener nal_unit_type igual a nutA. En algunos ejemplos, cuando el elemento de sintaxis es igual a 1, dentro de una CVS que se refiere al VPS, cada imagen de referencia de la misma unidad de acceso tiene el mismo valor de nal_unit_type que la imagen inicialmente referenciada.
[0029] De forma alternativa, en ejemplos donde el elemento de sintaxis puede ser igual a 0, dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una AU está en el intervalo de TRAIL_N...RSV_VCL31 (0 a 31, inclusive), todas las unidades VCL NAL de la AU pueden tener o no el mismo valor de nal _unit_type. Este procedimiento se puede aplicar de forma independiente por sí mismo o junto con los procedimientos descritos en los otros ejemplos.
[0030] En algunos ejemplos, el elemento de sintaxis puede ser igual a 1, lo que puede especificar que dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una AU está en el intervalo de BLA W_LP...BLA_N_LP (16 a 18, inclusive), todas las unidades VCL de la AU tienen el mismo valor de nal_unit_type. Específicamente, cuando el elemento de sintaxis es igual a 1, se puede aplicar una restricción de flujo de bits. La restricción de flujo de bits puede ser en el sentido de que, cuando una imagen de una AU tenga nal_unit_type nutA en el intervalo de BLA_W_LP...BLA_N_LP (16 a 18, inclusive), cualquier otra imagen de la misma unidad de acceso deberá tener nal_unit_type igual a nutA. En algunos ejemplos, cuando el elemento de sintaxis es igual a 1, dentro de una CVS que se refiere al VPS, cada imagen de referencia de la misma unidad de acceso tiene el mismo valor de nal_unit_type que la imagen inicialmente referenciada.
[0031] De forma alternativa, en ejemplos donde el elemento de sintaxis puede ser igual a 0, dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una AU está en el intervalo de BLA_W_LP...BLA_N_LP (16 a 18, inclusive), todas las unidades VCL NAL de la AU pueden tener o no el mismo valor de nal _unit_type. Este procedimiento se puede aplicar de forma independiente por sí mismo o junto con los
procedimientos descritos en los otros ejemplos.
[0032] En algunos ejemplos, el elemento de sintaxis puede ser igual a 1, lo que puede especificar que dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una AU es igual a c Ra _NUT (21), todas las unidades VCL de la AU tienen el mismo valor de nal_unit_type. Específicamente, cuando el elemento de sintaxis es igual a 1, se puede aplicar una restricción de flujo de bits. La restricción de flujo de bits puede ser en el sentido de que, cuando una imagen de una AU tenga nal_unit_type nutA igual a CRA_NUT (21), cualquier otra imagen de la misma unidad de acceso deberá tener nal_unit_type igual a nutA. En algunos ejemplos, cuando el elemento de sintaxis es igual a 1, dentro de una CVS que se refiere al VPS, cada imagen de referencia de la misma unidad de acceso tiene el mismo valor de nal_unit_type que la imagen inicialmente referenciada.
[0033] De forma alternativa, en ejemplos donde el elemento de sintaxis puede ser igual a 0, dentro de una CVS que se refiere al VPS, cuando nal_unit_type de una unidad VCL NAL de una AU está en el intervalo de es igual a CRA NUT (21), todas las unidades VCL NAL de la AU pueden tener o no el mismo valor de nal_unit_type. Este procedimiento se puede aplicar de forma independiente por sí mismo o junto con los procedimientos descritos en los otros ejemplos.
[0034] En algunos ejemplos, el elemento de sintaxis se puede señalar en un mensaje SEI o en el SPS. Puede ser ventajoso que el elemento de sintaxis se señale en una posición de una unidad NAL que no necesite descodificación de entropía para acceder al elemento de sintaxis, por ejemplo, antes de cualquier elemento de sintaxis sometido a codificación de entropía (por ejemplo, sometido a codificación ue(v)), o después de algunos elementos de sintaxis sometidos a codificación de entropía, pero el análisis de este elemento de sintaxis no necesita analizar esos elementos de sintaxis sometidos a codificación de entropía, por ejemplo, al principio de la sintaxis de ampliación de VPS.
[0035] Además de los ejemplos presentados anteriormente, nal_unit_type se puede comparar con otros valores o intervalos para determinar si se puede aplicar una restricción de flujo de bits. Por ejemplo, el valor en particular del tipo de unidad NAL puede ser rA d L_N (6). Como otro ejemplo, el conjunto en particular de valores de tipo de unidad NAL puede ser RASd_N y RASD R (6 y 7). Como otro ejemplo más, el conjunto en particular de valores de tipo de unidad NAL puede ser RADL N, RADL R, RASL N y RASL R (6, 7, 8 y 9).
[0036] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo 10 de ejemplo que puede utilizar las técnicas descritas en la presente divulgación. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que genera datos de vídeo codificados que un dispositivo de destino 14 va a descodificar en un momento posterior. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera de una amplia gama de dispositivos, incluyendo ordenadores de escritorio, ordenadores plegables (es decir, portátiles), ordenadores de tableta, descodificadores, aparatos telefónicos tales como los denominados teléfonos "inteligentes", los denominados paneles "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión continua de vídeo o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicación inalámbrica.
[0037] El dispositivo de destino 14 puede recibir los datos de vídeo codificados que se van a descodificar por medio de un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo que puede trasladar los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicación para permitir que el dispositivo de origen 12 transmita los datos de vídeo codificados directamente a un dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados se pueden modular de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitir al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o alámbrica, tal como un espectro de radiofrecuencia (RF) o una o más líneas físicas de transmisión. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global, tal como Internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que puede ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[0038] De forma alternativa, los datos codificados se pueden facilitar desde la interfaz de salida 22 a un dispositivo de almacenamiento 32. De forma similar, se puede acceder a los datos codificados del dispositivo de almacenamiento 32 desde una interfaz de entrada. El dispositivo de almacenamiento 32 puede incluir cualquiera de una variedad de medios de almacenamiento de datos de acceso distribuido o local, tales como una unidad de disco duro, unos discos Blu-ray, unos DVD, unos CD-ROM, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo de almacenamiento 32 puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que puede contener el vídeo codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados en el dispositivo de almacenamiento 32 por medio de transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor que pueda almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Los servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, unos dispositivos de
almacenamiento conectados a red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión wifi), una conexión alámbrica (por ejemplo, DSL, módem de cable, etc.) o una combinación de ambas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento 32 puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas.
[0039] Las técnicas de la presente divulgación no están limitadas necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como radiodifusiones de televisión a través del aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones continuas de vídeo, por ejemplo, por medio de Internet, codificación de vídeo digital para su almacenamiento en un medio de almacenamiento de datos, descodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 puede estar configurado para admitir una transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión continua de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
[0040] En el ejemplo de la FIG. 1, el dispositivo de origen 12 incluye una fuente de vídeo 18, un codificador de vídeo 20 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/desmodulador (módem) y/o un transmisor. En el dispositivo de origen 12, la fuente de vídeo 18 puede incluir una fuente tal como un dispositivo de captación de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contiene un vídeo captado previamente, una interfaz de vídeo para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de gráficos por ordenador como el vídeo de origen, o una combinación de dichas fuentes. Como ejemplo, si la fuente de vídeo 18 es una videocámara, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, las técnicas descritas en la presente divulgación pueden ser aplicables a la codificación de vídeo en general, y se pueden aplicar a aplicaciones inalámbricas y/o alámbricas.
[0041] El codificador de vídeo 12 puede codificar el vídeo captado, precaptado o generado por ordenador. Los datos de vídeo codificados se pueden transmitir directamente al dispositivo de destino 14 por medio de la interfaz de salida 22 del dispositivo de origen 20. Los datos de vídeo codificados se pueden almacenar también (o de forma alternativa) en el dispositivo de almacenamiento 32 para un posterior acceso por el dispositivo de destino 14 u otros dispositivos, para su descodificación y/o reproducción.
[0042] El dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de vídeo 30 y un dispositivo de visualización 31. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de vídeo codificados a través del enlace 16. Los datos de vídeo codificados comunicados a través del enlace 16, o proporcionados en el dispositivo de almacenamiento 32, pueden incluir una variedad de elementos de sintaxis generados por el codificador de vídeo 20 para su uso por un descodificador de vídeo, tal como el descodificador de vídeo 30, en la descodificación de los datos de vídeo. Dichos elementos de sintaxis se pueden incluir con los datos de vídeo codificados transmitidos en un medio de comunicación, almacenar en un medio de almacenamiento o almacenar en un servidor de archivos.
[0043] El dispositivo de visualización 31 puede estar integrado en, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también estar configurado para interconectarse con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 31 visualiza los datos de vídeo descodificados ante un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0044] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con una norma de compresión de vídeo, tal como la norma de codificación de vídeo de alta eficacia (HEVC), actualmente en elaboración, y pueden cumplir con el modelo de prueba de HEVC (HM). De forma alternativa, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con otras normas privadas o industriales, tales como la norma ITU-T H.264, denominada de forma alternativa MPEG-4, parte 10, codificación avanzada de vídeo (AVC), o ampliaciones de dichas normas. Sin embargo, las técnicas de la presente divulgación no se limitan a ninguna norma de codificación en particular. Otros ejemplos de normas de compresión de vídeo incluyen MPEG-2, ITU-T H.263 e ITU-T H.265.
[0045] Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar integrados cada uno en un codificador y un descodificador de audio, y pueden incluir unidades MUX-DEMUX apropiadas, u otro hardware y software, para ocuparse de la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si es aplicable, en algunos ejemplos, las unidades MUX-DEMUX se pueden ajustar al protocolo de multiplexador ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0046] Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 pueden estar implementados como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas están implementadas parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio no transitorio legible por ordenador adecuado y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de la presente divulgación. Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 pueden estar incluidos en uno o más codificadores o descodificadores, de los que cualquiera puede estar integrado como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo. Asimismo, el sistema 10, que incluye el dispositivo de origen 12, el dispositivo de destino 14, el enlace 16 y el dispositivo de almacenamiento 32 puede estar incluido en un solo dispositivo, tal como un teléfono inalámbrico, un ordenador personal, una tableta o similares.
[0047] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar configurados para implementar técnicas de la presente divulgación. Por ejemplo, en algunos ejemplos, el codificador de vídeo 20 puede estar configurado para codificar una unidad de acceso, en el que la unidad de acceso comprende una pluralidad de imágenes, generar un elemento de sintaxis para indicar una alineación entre capas de la unidad de acceso, generar un primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso, y facilitar un flujo de bits, en el que el flujo de bits comprende al menos la unidad de acceso codificada, el elemento de sintaxis y el primer tipo de unidad de capa de abstracción de red. Además, en algunos ejemplos, el descodificador de vídeo 30 puede estar configurado para recibir un flujo de bits, en el que el flujo de bits comprende al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red y una unidad de acceso codificada, en el que la unidad de acceso codificada comprende una pluralidad de imágenes, determinar un valor del elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas, como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas, determinar el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso, determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo, y, como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, establecer un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red.
[0048] El JCT-VC está trabajando en la elaboración de la norma HEVC. Las actividades de normalización de la HEVC se basan en un modelo en evolución de un dispositivo de codificación de vídeo, denominado modelo de prueba de HEVC (HM). El HM supone varias capacidades adicionales de los dispositivos de codificación de vídeo con respecto a los dispositivos existentes de acuerdo con, por ejemplo, la norma ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modos de codificación de intrapredicción, e1HM puede proporcionar hasta treinta y tres modos de codificación de intrapredicción.
[0049] En general, el modelo de trabajo del HM describe que una trama o imagen de vídeo se puede dividir en una secuencia de bloques de árbol o unidades de codificación más grandes (LCU), que incluyen tanto muestras de luma como de croma. Un bloque de árbol tiene un propósito similar al de un macrobloque de la norma H.264. Un segmento incluye un número de bloques de árbol consecutivos en orden de codificación. Una trama o imagen de vídeo se puede dividir en uno o más segmentos. Cada bloque de árbol se puede partir en unidades de codificación (CU) de acuerdo con un árbol cuaternario. Por ejemplo, un bloque de árbol, como un nodo raíz del árbol cuaternario, se puede partir en cuatro nodos hijo, y cada nodo hijo puede ser, a su vez, un nodo padre y partirse en otros cuatro nodos hijo. Un nodo hijo final, no partido, como un nodo hoja del árbol cuaternario, comprende un nodo de codificación, es decir, un bloque de vídeo codificado. Los datos de sintaxis asociados a un flujo de bits codificado pueden definir un número máximo de veces que se puede partir un bloque de árbol, y también pueden definir un tamaño mínimo de los nodos de codificación.
[0050] Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas al nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y debe tener forma cuadrada. El tamaño de la CU puede variar desde 8x8 píxeles hasta el tamaño del bloque de árbol, con un máximo de 64x64 píxeles o más. Cada Cu puede contener una o más PU y una o más TU. Los datos de sintaxis asociados a una CU pueden describir, por ejemplo, la división de la CU en una o más PU. Los modos de división pueden diferir dependiendo de si la Cu está codificada en modo directo o de salto, codificada en modo de intrapredicción o codificada en modo de interpredicción. Las PU se pueden dividir para tener una forma no cuadrada. Los datos de sintaxis asociados a una CU también pueden describir, por ejemplo, la división de la CU en una o más TU de acuerdo con un árbol cuaternario. Una TU puede tener una forma cuadrada o no cuadrada.
[0051] La norma HEVC permite transformadas de acuerdo con las TU, que pueden ser diferentes para CU diferentes. El tamaño de las TU está basado típicamente en el tamaño de las PU dentro de una CU dada definida para una LCU dividida, aunque puede que no sea siempre así. Las TU son típicamente del mismo tamaño o más pequeñas que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU se pueden subdividir en
unidades más pequeñas usando una estructura de árbol cuaternario conocida como "árbol cuaternario residual" (RQT). Los nodos hoja del RQT se pueden denominar unidades de transformada (TU). Los valores de diferencia de píxeles asociados a las TU se pueden transformar para generar coeficientes de transformada, que se pueden cuantificar.
[0052] En general, una PU incluye datos relacionados con el procedimiento de predicción. Por ejemplo, cuando la PU se codifica en modo intra, la PU puede incluir datos que describen un modo de intrapredicción para la PU. Como otro ejemplo, cuando la PU se codifica en modo inter, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, una componente horizontal del vector de movimiento, una componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, precisión de un cuarto de píxel o precisión de un octavo de píxel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imágenes de referencia (por ejemplo, lista 0, lista 1 o lista C) para el vector de movimiento.
[0053] En general, una TU se usa para los procedimientos de transformada y cuantificación. Una CU dada que tiene una o más PU también puede incluir una o más unidades de transformada (TU). Después de la predicción, el codificador de vídeo 20 puede calcular valores residuales correspondientes a la PU. Los valores residuales comprenden valores de diferencia de píxeles que se pueden transformar en coeficientes de transformada, cuantificar y explorar usando las TU, para generar coeficientes de transformada en serie para la codificación de entropía. La presente divulgación usa típicamente el término "bloque de vídeo" para referirse a un nodo de codificación de una CU. En algunos casos específicos, la presente divulgación también puede usar el término "bloque de vídeo" para referirse a un bloque de árbol, es decir, una LCU o una CU, que incluye un nodo de codificación y unas PU y TU.
[0054] Una secuencia de vídeo incluye típicamente una serie de tramas o imágenes de vídeo. Un grupo de imágenes (GOP) comprende, en general, una serie de una o más de las imágenes de vídeo. Un GOP puede incluir datos de sintaxis en una cabecera del GOP, una cabecera de una o más de las imágenes, o en otras ubicaciones, que describen un número de imágenes incluidas en el GOP. Cada segmento de una imagen puede incluir datos de sintaxis de segmento que describen un modo de codificación para el segmento respectivo. El codificador de vídeo 20 opera típicamente en bloques de vídeo dentro de segmentos de vídeo individuales para codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden tener tamaños fijos o variables y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
[0055] Como ejemplo, el HM admite la predicción en diversos tamaños de PU. Si se supone que el tamaño de una CU en particular es de 2Nx2N, el HM admite la intrapredicción en tamaños de PU de 2Nx2N o NxN, así como la interpredicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. E1 HM también admite la división asimétrica para la interpredicción en tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la división asimétrica, una dirección de una CU no está dividida, mientras que la otra dirección está dividida entre un 25 % y un 75 %. La parte de la CU correspondiente a la división del 25 % está indicada por una "n" seguida de una indicación de "arriba", "abajo", "izquierda" o "derecha". Así pues, por ejemplo, "2NxnU" se refiere a una CU de 2Nx2N que está separada horizontalmente, con una PU de 2Nx0,5N encima y una PU de 2Nx1,5N debajo.
[0056] En la presente divulgación, "NxN" y "N por N" se pueden usar de manera intercambiable para hacer referencia a las dimensiones de píxeles de un bloque de vídeo en términos de dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 16x16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Asimismo, un bloque de NxN tiene en general N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles de un bloque se pueden disponer en filas y columnas. Además, no es necesario que los bloques tengan necesariamente en la dirección horizontal el mismo número de píxeles que en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
[0057] Después de la codificación de intrapredicción o interpredicción usando las PU de una CU, el codificador de vídeo 20 puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos de píxeles en el dominio espacial (también denominado dominio del píxel) y las TU pueden comprender coeficientes en el dominio de la transformada después de la aplicación de una transformada, por ejemplo, una transformada discreta de coseno (DCT), una transformada de enteros, una transformada de wavelet o una transformada conceptualmente similar a los datos de vídeo residuales. Los datos residuales pueden corresponder a diferencias de píxeles entre píxeles de la imagen no codificada y valores de predicción correspondientes a las PU. El codificador de vídeo 20 puede formar las TU, incluyendo los datos residuales para la CU y, a continuación, transformar las TU para generar coeficientes de transformada para la CU.
[0058] Después de cualquier transformada para generar coeficientes de transformada, el codificador de vídeo 20 puede realizar la cuantificación de los coeficientes de transformada. La cuantificación se refiere, en general, a un procedimiento en el que unos coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando compresión adicional. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos, o con la totalidad, de los coeficientes. Por ejemplo, un valor de n bits se puede redondear a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que
m.
[0059] En algunos ejemplos, el codificador de vídeo 20 puede usar un orden de exploración predefinido para explorar los coeficientes de transformada cuantificados, para generar un vector en serie que se puede someter a codificación de entropía. En otros ejemplos, el codificador de vídeo 20 puede realizar una exploración adaptativa. Después de explorar los coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador de vídeo 20 puede realizar la codificación de entropía del vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC), la codificación aritmética binaria adaptativa al contexto basada en la sintaxis (SBAC), la codificación de entropía por división de intervalos de probabilidad (PIPE) u otra metodología de codificación de entropía. El codificador de vídeo 20 también puede realizar la codificación de entropía de los elementos de sintaxis asociados a los datos de vídeo codificados, para su uso por el descodificador de vídeo 30 en la descodificación de los datos de vídeo.
[0060] Para realizar la CABAC, el codificador de vídeo 20 puede asignar un contexto, dentro de un modelo de contexto, a un símbolo que se va a transmitir. El contexto se puede referir, por ejemplo, a si los valores vecinos del símbolo son distintos de cero o no. Para realizar la CAVLC, el codificador de vídeo 20 puede seleccionar un código de longitud variable para un símbolo que se va a transmitir. Las palabras de código en la VLC se pueden construir de modo que códigos relativamente más cortos correspondan a símbolos más probables, mientras que códigos más largos correspondan a símbolos menos probables. De esta manera, el uso de VLC puede lograr un ahorro en bits con respecto, por ejemplo, al uso de palabras de código de igual longitud para cada símbolo que se va a transmitir. La determinación de la probabilidad puede estar basada en un contexto asignado al símbolo.
[0061] El codificador de vídeo 20 puede comprender diversos componentes que realizan técnicas de la presente divulgación. Por ejemplo, el codificador de vídeo 20 puede comprender una unidad de codificación de entropía. La unidad de codificación de entropía puede realizar técnicas de la presente divulgación. Por ejemplo, en algunos ejemplos, la unidad de codificación de entropía puede generar un elemento de sintaxis para indicar la alineación entre capas de una unidad de acceso. En algunos ejemplos, la unidad de codificación de entropía también puede generar un primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso. Estas etapas también se pueden realizar mediante otros componentes. Por ejemplo, la interfaz de salida 22 puede comprender una unidad de posprocesamiento que puede realizar estas etapas.
[0062] El descodificador de vídeo 30 puede comprender diversos componentes que realizan técnicas de la presente divulgación. Por ejemplo, el descodificador de vídeo 30 puede comprender una unidad de descodificación de entropía. En algunos ejemplos, la unidad de descodificación de entropía puede determinar un valor del elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas. La unidad de descodificación de entropía también puede determinar el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas. La unidad de descodificación de entropía puede determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo. Además, como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, la unidad de descodificación de entropía puede establecer un tipo de unidad de capa de abstracción de red para que todas las demás imágenes de la unidad de acceso codificada sean iguales al valor del primer tipo de unidad de capa de abstracción de red. Estas etapas también se pueden realizar mediante otros dispositivos. Por ejemplo, en algunos ejemplos, la interfaz de entrada 28 puede comprender un dispositivo de red que puede realizar estas etapas.
[0063] En un ejemplo, la divulgación se dirige a un procedimiento que incluye recibir un flujo de bits, en el que el flujo de bits comprende al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red, y una unidad de acceso codificada, en el que la unidad de acceso codificada comprende una pluralidad de imágenes, determinar un valor de un elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas, como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas, determinar un primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso, determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo, y, como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, establecer un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red.
[0064] La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo que puede implementar las técnicas descritas en la presente divulgación. El codificador de vídeo 20 puede estar configurado para proporcionar vídeo a la entidad de posprocesamiento 27, que es otro dispositivo de ejemplo que puede implementar las técnicas descritas en la presente divulgación. La entidad de posprocesamiento 27 pretende representar un ejemplo de entidad de vídeo, tal como un elemento de red con reconocimiento de medios (MANE), un dispositivo de empalme/edición u otro dispositivo intermedio que puede procesar datos de vídeo codificados del codificador de vídeo 20. En algunos casos, la entidad de posprocesamiento puede ser un ejemplo de entidad de red. En algunos sistemas de codificación de vídeo, la entidad de posprocesamiento 27 y el codificador de vídeo 20 pueden formar parte de dispositivos
separados, mientras que, en otros casos, el mismo dispositivo que comprende el codificador de vídeo 20 puede realizar la funcionalidad descrita con respecto a la entidad de posprocesamiento 27. En algunos ejemplos, el codificador de vídeo 20 puede facilitar un flujo de bits a la entidad de posprocesamiento 27, y el flujo de bits puede comprender al menos una unidad de acceso codificada, un elemento de sintaxis y un primer tipo de unidad de capa de abstracción de red.
[0065] La entidad de posprocesamiento 27 puede realizar técnicas de la presente divulgación. Por ejemplo, en algunos ejemplos, la entidad de posprocesamiento 27 puede generar un elemento de sintaxis para indicar alineación entre capas de una unidad de acceso. En algunos ejemplos, la entidad de posprocesamiento 27 también puede generar un primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso.
[0066] En un ejemplo, la entidad de posprocesamiento 27 puede recibir una unidad de acceso codificada. Si la unidad de acceso codificada se ha codificado usando alineación entre capas, la entidad de posprocesamiento 27 puede generar un elemento de sintaxis para indicar que se ha usado alineación entre capas. La entidad de posprocesamiento 27 también puede generar un primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso que, si está en un intervalo predeterminado, puede indicar que todas las imágenes de la unidad de acceso se deben descodificar usando el mismo tipo de unidad de capa de abstracción de red.
[0067] El codificador de vídeo 20 puede realizar una intracodificación y una intercodificación de bloques de vídeo dentro de segmentos de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de una trama o imagen de vídeo dada. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de tramas o imágenes contiguas de una secuencia de vídeo. El modo intra (modo I) se puede referir a cualquiera de varios modos de compresión espacial. Los modos inter, tales como la predicción unidireccional (modo P) o la bipredicción (modo B), se pueden referir a cualquiera de varios modos de compresión temporal.
[0068] En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye una unidad de división 35, una unidad de predicción 41, una unidad de filtro 63, una memoria de imágenes de referencia 64, un sumador 50, una unidad de procesamiento de transformada 52, una unidad de cuantificación 54 y una unidad de codificación de entropía 56. La unidad de predicción 41 incluye una unidad de estimación de movimiento 42, una unidad de compensación de movimiento 44 y una unidad de procesamiento de intrapredicción 46. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye también una unidad de cuantificación inversa 58, una unidad de procesamiento de transformada inversa 60 y un sumador 62. La unidad de filtro 63 pretende representar uno o más filtros de bucle tales como un filtro de eliminación de bloques, un filtro de bucle adaptativo (ALF) y un filtro de desplazamiento adaptativo a muestras (SAO). Aunque la unidad de filtro 63 que se muestra en la FIG. 2 es un filtro dentro de bucle, en otras configuraciones, la unidad de filtro 63 se puede implementar como un filtro posbucle.
[0069] Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe datos de vídeo, y la unidad de división 35 divide los datos en bloques de vídeo. Esta división también puede incluir una división en segmentos, mosaicos u otras unidades mayores, así como una división en bloques de vídeo, por ejemplo, de acuerdo con una estructura de árbol cuaternario de LCU y CU. El codificador de vídeo 20 ilustra en general los componentes que codifican bloques de vídeo dentro de un segmento de vídeo que se va a codificar. El segmento se puede dividir en múltiples bloques de vídeo (y, posiblemente, en conjuntos de bloques de vídeo denominados mosaicos). La unidad de procesamiento de predicción 41 puede seleccionar uno de una pluralidad de posibles modos de codificación, tal como uno de una pluralidad de modos de intracodificación o uno de una pluralidad de modos de intercodificación, para el bloque de vídeo actual en base a resultados de error (por ejemplo, la velocidad de codificación y el nivel de distorsión). La unidad de procesamiento de predicción 41 puede proporcionar el bloque intra- o intercodificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para su uso como imagen de referencia.
[0070] La unidad de procesamiento de intrapredicción 46, situada dentro de la unidad de procesamiento de predicción 41, puede realizar una codificación intrapredictiva del bloque de vídeo actual con respecto a uno o más bloques vecinos en la misma trama o segmento que el bloque actual que se va a codificar, para proporcionar compresión espacial. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 dentro de la unidad de procesamiento de predicción 41 realizan la codificación interpredictiva del bloque de vídeo actual con respecto a uno o más bloques predictivos en una o más imágenes de referencia, para proporcionar compresión temporal.
[0071] La unidad de estimación de movimiento 42 puede estar configurada para determinar el modo de interpredicción para un segmento de vídeo de acuerdo con un patrón predeterminado para una secuencia de vídeo. El patrón predeterminado puede designar segmentos de vídeo de la secuencia como segmentos P, segmentos B o segmentos GPB. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar altamente integradas, pero se ilustran por separado con propósitos conceptuales. La estimación de movimiento, realizada por la unidad de estimación de movimiento 42, es el proceso de generación de vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una trama o imagen de vídeo actual con respecto a un
bloque predictivo dentro de una imagen de referencia.
[0072] Un bloque predictivo es un bloque que se considera que coincide estrechamente con la PU del bloque de vídeo que se va a codificar en términos de diferencia de píxeles, que se puede determinar mediante una suma de diferencia absoluta (SAD), una suma de diferencia al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones de píxel subentero de imágenes de referencia almacenadas en la memoria de imágenes de referencia 64. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones fraccionarias de píxel de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento con respecto a las posiciones de píxel completo y a las posiciones de píxel fraccionario, y facilitar un vector de movimiento con una precisión de píxel fraccionario.
[0073] La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de vídeo en un segmento intercodificado, comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia se puede seleccionar de una primera lista de imágenes de referencia (lista 0) o de una segunda lista de imágenes de referencia (lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en una memoria de imágenes de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación de entropía 56 y a la unidad de compensación de movimiento 44.
[0074] La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar extraer o generar el bloque predictivo en base al vector de movimiento determinado mediante estimación de movimiento, realizando posiblemente interpolaciones con una precisión de subpíxel. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El codificador de vídeo 20 forma un bloque de vídeo residual restando valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxeles. Los valores de diferencia de píxeles forman datos residuales para el bloque, y pueden incluir componentes de diferencia de luma y de croma. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de compensación de movimiento 44 también puede generar elementos de sintaxis asociados con los bloques de vídeo y el segmento de vídeo para su uso por el descodificador de vídeo 30 en la descodificación de los bloques de vídeo del segmento de vídeo.
[0075] La unidad de intrapredicción 46 puede intrapredecir un bloque actual, como alternativa a la interpredicción llevada a cabo por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se describe anteriormente. En particular, la unidad de intrapredicción 46 puede determinar un modo de intrapredicción que se va a usar para codificar un bloque actual. En algunos ejemplos, la unidad de intrapredicción 46 puede codificar un bloque actual usando diversos modos de intrapredicción, por ejemplo, durante pases de codificación separados, y la unidad de intrapredicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo de intrapredicción apropiado para usar de entre los modos probados. Por ejemplo, la unidad de intrapredicción 46 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción probados, y seleccionar el modo de intrapredicción que tenga las mejores características de velocidad-distorsión entre los modos probados. El análisis de velocidad-distorsión determina en general una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado que se ha codificado para generar el bloque codificado, así como una velocidad de bits (es decir, un número de bits) usada para generar el bloque codificado. La unidad de intrapredicción 46 puede calcular proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar qué modo de intrapredicción presenta el mejor valor de velocidaddistorsión para el bloque.
[0076] En cualquier caso, tras seleccionar un modo de intrapredicción para un bloque, la unidad de intrapredicción 46 puede proporcionar información que indica el modo de intrapredicción seleccionado para el bloque a la unidad de codificación de entropía 56. La unidad de codificación de entropía 56 puede codificar la información que indica el modo de intrapredicción seleccionado de acuerdo con las técnicas de la presente divulgación. El codificador de vídeo 20 puede incluir, en el flujo de bits transmitido, datos de configuración, que pueden incluir una pluralidad de tablas de índices de modo de intrapredicción y una pluralidad de tablas de índices de modo de intrapredicción modificados (también denominadas tablas de correlación de palabras de código), definiciones de contextos de codificación para diversos bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índices de modo de intrapredicción y una tabla de índices de modo de intrapredicción modificados para su uso para cada uno de los contextos.
[0077] Después de que la unidad de procesamiento de predicción 41 genere el bloque predictivo para el bloque de vídeo actual, ya sea por medio de interpredicción o intrapredicción, el codificador de vídeo 20 forma un bloque de vídeo residual restando el bloque predictivo al bloque de vídeo actual. Los datos de vídeo residuales del bloque residual se pueden incluir en una o más TU y aplicar a la unidad de procesamiento de transformada 52. La unidad de procesamiento de transformada 52 transforma los datos de vídeo residuales en coeficientes de transformada residuales usando una transformada, tal como una transformada discreta de coseno (DCT) o una transformada
conceptualmente similar. La unidad de procesamiento de transformada 52 puede convertir los datos de vídeo residuales de un dominio del píxel a un dominio de la transformada, tal como un dominio de la frecuencia.
[0078] La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir aún más la velocidad de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos, o con la totalidad, de los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 puede realizar a continuación una exploración de la matriz que incluye los coeficientes de transformada cuantificados. De forma alternativa, la unidad de codificación de entropía 56 puede realizar la exploración.
[0079] Después de la cuantificación, la unidad de codificación de entropía 56 realiza la codificación de entropía de los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación de entropía 56 puede realizar una codificación de longitud variable adaptativa al contexto (CAVLC), una codificación aritmética binaria adaptativa al contexto (CABAC), una codificación aritmética binaria adaptativa al contexto basada en la sintaxis (SBAc ), una codificación de entropía por división de intervalos de probabilidad (PIPE) u otra metodología o técnica de codificación de entropía. Después de la codificación de entropía por la unidad de codificación de entropía 56, el flujo de bits se puede transmitir al descodificador de vídeo 30, o archivar para una posterior transmisión o recuperación por el descodificador de vídeo 30. La unidad de codificación de entropía 56 también puede realizar la codificación de entropía de los vectores de movimiento y los otros elementos de sintaxis para el segmento de vídeo actual que se está codificando. La unidad de codificación de entropía 56 puede realizar técnicas de la presente divulgación. Por ejemplo, en algunos ejemplos, la unidad de codificación de entropía 56 puede generar un elemento de sintaxis para indicar la alineación entre capas de una unidad de acceso. En algunos ejemplos, la unidad de codificación de entropía 56 también puede generar un primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso. Los elementos de sintaxis generados, sin embargo, se pueden generar de tal manera que se asegura la capacidad de analizar o interpretar los elementos de sintaxis (por ejemplo, mediante un MANE) sin necesidad de realizar una descodificación de entropía o una descompresión completa del flujo de bits. Por ejemplo, los elementos de sintaxis específicos que se pueden analizar sin necesidad de realizar una descodificación de entropía o una descompresión completa del flujo de bits se pueden codificar con códigos de longitud fija u otras técnicas que no requieren capacidades de descodificación de entropía. Estas etapas también se pueden realizar mediante otros componentes. Por ejemplo, la unidad de posprocesamiento 27 puede realizar estas etapas.
[0080] La unidad de cuantificación inversa 58 y la unidad de procesamiento de transformada inversa 60 aplican una cuantificación inversa y una transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio del píxel para un uso posterior como bloque de referencia de una imagen de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles de subentero, para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción con compensación de movimiento, generado por la unidad de compensación de movimiento 44 para generar un bloque de referencia para su almacenamiento en la memoria de imágenes de referencia 64. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden usar el bloque de referencia como bloque de referencia para realizar una interpredicción de un bloque en una trama o imagen de vídeo posterior.
[0081] De esta manera, el codificador de vídeo 20 de la FIG. 2 representa un ejemplo de codificador de vídeo configurado para implementar una o más de las técnicas expuestas en el presente documento. Por ejemplo, el codificador de vídeo 20 puede estar configurado para codificar una unidad de acceso, en el que la unidad de acceso comprende una pluralidad de imágenes, generar un elemento de sintaxis para indicar la alineación entre capas de la unidad de acceso, generar un primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso y facilitar un flujo de bits, en el que el flujo de bits comprende al menos la unidad de acceso codificada, el elemento de sintaxis y el primer tipo de unidad de capa de abstracción de red.
[0082] La FIG. 3 es un diagrama de bloques que ilustra un descodificador de vídeo de ejemplo que puede implementar las técnicas descritas en la presente divulgación. En el ejemplo de la FIG. 3, el descodificador de vídeo 30 incluye una unidad de descodificación de entropía 80, una unidad de procesamiento de predicción 81, una unidad de cuantificación inversa 86, una unidad de transformada inversa 88, un sumador 90, una unidad de filtro 91 y una memoria de imágenes de referencia 92. La unidad de procesamiento de predicción 81 incluye una unidad de compensación de movimiento 82 y una unidad de procesamiento de intrapredicción 84. En algunos ejemplos, el descodificador de vídeo 30 puede realizar un pase de descodificación en general recíproco al pase de codificación descrito con respecto al codificador de vídeo 20 de la FIG. 2.
[0083] Durante el procedimiento de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo, que representa bloques de vídeo de un segmento de vídeo codificado y elementos de sintaxis asociados, desde el codificador de vídeo 20. El descodificador de vídeo 30 puede recibir el flujo de bits de vídeo desde una entidad de red 29. La entidad de red 29 puede ser, por ejemplo, un servidor, un MANE, un editor/empalmador de vídeo u otro
dispositivo de este tipo configurado para implementar una o más de las técnicas descritas anteriormente. La entidad de red 29 puede incluir o no un codificador de vídeo, tal como el codificador de vídeo 20. La entidad de red 29 puede implementar algunas de las técnicas descritas en la presente divulgación, antes de que la entidad de red 29 transmita el flujo de bits de vídeo al descodificador de vídeo 30. En algunos sistemas de descodificación de vídeo, la entidad de red 29 y el descodificador de vídeo 30 pueden formar parte de dispositivos separados, mientras que, en otros casos, el mismo dispositivo que comprende el descodificador de vídeo 30 puede realizar la funcionalidad descrita con respecto a la entidad de red 29. En algunos ejemplos, el flujo de bits comprende al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red y una unidad de acceso codificada.
[0084] La entidad de red 29 puede determinar otros aspectos del flujo de bits. En algunos ejemplos, la entidad de red 29 puede determinar un valor del elemento de sintaxis, en la que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas. La entidad de red 29 también puede determinar el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas. La entidad de red 29 puede determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo. Además, como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, la entidad de red 29 puede establecer un tipo de unidad de capa de abstracción de red para que todas las demás imágenes de la unidad de acceso codificada sean iguales al valor del primer tipo de unidad de capa de abstracción de red.
[0085] En un ejemplo, la entidad de red 29 puede recibir un flujo de bits desde el codificador de vídeo 20 o la unidad de posprocesamiento 27, como se representa en la FIG. 2. El flujo de bits puede comprender al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red y una unidad de acceso codificada. La entidad de red 29 puede leer el elemento de sintaxis y el primer tipo de unidad de capa de abstracción de red, ambos de los cuales se pueden añadir al flujo de bits fuera del proceso de codificación de entropía y se pueden descodificar fuera del proceso de descodificación de entropía. La entidad de red 29 puede determinar un valor para el elemento de sintaxis. Si el elemento de sintaxis es igual a un valor que indica que se ha usado alineación entre capas para codificar la unidad de acceso, la entidad de red 29 puede determinar un valor para el primer tipo de unidad de capa de abstracción de red para ver si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado indicado en una restricción de flujo de bits. Si el primer tipo de unidad de capa de abstracción de red está en el intervalo predeterminado, entonces la entidad de red 29 puede establecer un tipo de unidad de capa de abstracción de red para que todas las demás imágenes sean iguales al primer tipo de unidad de capa de abstracción de red.
[0086] La realización de estas etapas en la entidad de red 29 puede tener numerosas ventajas. Por ejemplo, si se informa a la entidad de red 29 que las imágenes CRA o IDR están alineadas entre capas, no es necesario esperar la recepción de todas las imágenes de una unidad de acceso y analizarlas, y entonces una determinación de que la unidad de acceso actual proporciona accesibilidad aleatoria completa a todas las capas se puede usar, por tanto, para un acceso aleatorio simple a cualquier conjunto de capas, un empalme con cualquier conjunto de capas y un cambio a cualquier capa. Además, realizar esta etapa fuera del proceso de codificación de entropía y descodificación de entropía puede permitir que un dispositivo externo determine estas características sin realizar ninguna operación de codificación o una descompresión completa, mejorando de este modo la eficacia del sistema en su conjunto.
[0087] La unidad de descodificación de entropía 80 del descodificador de vídeo 30 realiza la descodificación de entropía del flujo de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de descodificación de entropía 80 reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad de procesamiento de predicción 81. El descodificador de vídeo 30 puede recibir los elementos de sintaxis a nivel de segmento de vídeo y/o a nivel de bloque de vídeo.
[0088] La unidad de descodificación de entropía 80 puede determinar otros aspectos del flujo de bits. En algunos ejemplos, la unidad de descodificación de entropía 80 puede determinar un valor del elemento de sintaxis, en la que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas. La unidad de descodificación de entropía 80 también puede determinar el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas. La unidad de descodificación de entropía 80 puede determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo. Además, como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, la unidad de descodificación de entropía 80 puede establecer un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red. Sin embargo, el elemento de sintaxis y el primer tipo de unidad de capa de abstracción de red se pueden generar en el proceso de codificación de tal manera que se asegura la capacidad de analizar o interpretar los elementos de sintaxis (por ejemplo, mediante un MANE) sin necesidad de realizar una descodificación de entropía o una descompresión completa del flujo de bits. Por ejemplo, los elementos de sintaxis específicos que se pueden analizar sin necesidad de realizar una descodificación de entropía o una descompresión completa del flujo de bits se pueden codificar con códigos de longitud fija u otras técnicas que no requieren capacidades de descodificación de entropía. En estos ejemplos, el
dispositivo de red 29 puede realizar estas etapas.
[0089] Cuando el segmento de vídeo se codifica como un segmento intracodificado (I), la unidad de procesamiento de intrapredicción 84 de la unidad de procesamiento de predicción 81 puede generar datos de predicción para un bloque de vídeo del segmento de vídeo actual en base a un modo de intrapredicción señalizado y datos de bloques previamente descodificados de la trama o imagen actual. Cuando la trama de vídeo se codifica como un segmento intercodificado (es decir, B, P o GPB), la unidad de compensación de movimiento 82 de la unidad de procesamiento de predicción 81 genera bloques predictivos para un bloque de vídeo del segmento de vídeo actual en base a los vectores de movimiento y en otros elementos de sintaxis recibidos desde la unidad de descodificación de entropía 80. Los bloques predictivos se pueden generar a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El descodificador de vídeo 30 puede construir las listas de tramas de referencia, lista 0 y lista 1, usando técnicas de construcción predeterminadas en base a imágenes de referencia almacenadas en la memoria de imágenes de referencia 92.
[0090] La unidad de compensación de movimiento 82 determina información de predicción para un bloque de vídeo del segmento de vídeo actual, analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para generar los bloques predictivos para el bloque de vídeo actual que se está descodificando. Por ejemplo, la unidad de compensación de movimiento 82 usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, de intra- o interpredicción) usado para codificar los bloques de vídeo del segmento de vídeo, un tipo de segmento de interpredicción (por ejemplo, un segmento B, un segmento P o un segmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento, vectores de movimiento para cada bloque de vídeo intercodificado del segmento, un estado de interpredicción para cada bloque de vídeo intercodificado del segmento y otra información para descodificar los bloques de vídeo del segmento de vídeo actual.
[0091] La unidad de compensación de movimiento 82 también puede realizar una interpolación basada en filtros de interpolación. La unidad de compensación de movimiento 82 puede usar filtros de interpolación como los usados por el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles de subentero de bloques de referencia. En este caso, la unidad de compensación de movimiento 82 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 a partir de los elementos de sintaxis recibidos y usar los filtros de interpolación para generar bloques predictivos.
[0092] La unidad de cuantificación inversa 86 realiza la cuantificación inversa, es decir, la descuantificación, de los coeficientes de transformada cuantificados proporcionados en el flujo de bits y descodificados por la unidad de descodificación de entropía 80. El procedimiento de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el codificador de vídeo 20 para cada bloque de vídeo del segmento de vídeo para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa que se debe aplicar. La unidad de procesamiento de transformada inversa 88 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de enteros inversa o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada para generar bloques residuales en el dominio del píxel.
[0093] Después de que la unidad de compensación de movimiento 82 genere el bloque predictivo para el bloque de vídeo actual en base a los vectores de movimiento y a otros elementos de sintaxis, el descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales de la unidad de procesamiento de transformada inversa 88 a los correspondientes bloques predictivos generados por la unidad de compensación de movimiento 82. El sumador 90 representa el componente o los componentes que realizan esta operación de suma. Si se desea, también se pueden usar filtros de bucle (en el bucle de codificación o bien después del bucle de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad de vídeo. La unidad de filtro 91 pretende representar uno o más filtros de bucle tales como un filtro de eliminación de bloques, un filtro de bucle adaptativo (ALF) y un filtro de desplazamiento adaptativo a muestras (SAO). Aunque la unidad de filtro 91 que se muestra en la FIG. 3 es un filtro dentro de bucle, en otras configuraciones, la unidad de filtro 91 se puede implementar como un filtro posbucle. Los bloques de vídeo descodificados de una trama o imagen dada se almacenan a continuación en la memoria de imágenes de referencia 92, que almacena imágenes de referencia usadas para una posterior compensación de movimiento. La memoria de imágenes de referencia 92 también almacena vídeo descodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 31 de la FIG. 1.
[0094] De esta manera, el descodificador de vídeo 30 de la FIG. 3 representa un ejemplo de descodificador de vídeo configurado para implementar una o más de las técnicas expuestas en el presente documento. Por ejemplo, el descodificador de vídeo 30 puede estar configurado para recibir un flujo de bits, en el que el flujo de bits comprende al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red y una unidad de acceso codificada, en el que la unidad de acceso codificada comprende una pluralidad de imágenes, determinar un valor del elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas, como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas, determinar el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso, determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo y, como respuesta a una determinación de que el primer tipo de unidad
de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, establecer un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red.
[0095] La FIG. 4 es un diagrama de bloques que ilustra una red de ejemplo en la que se pueden implementar uno o más aspectos de la presente divulgación. La FIG. 4 es un diagrama de bloques que ilustra un conjunto de ejemplo de dispositivos que forman parte de la red 100. En este ejemplo, la red 100 incluye los dispositivos de encaminamiento 104A, 104B (dispositivos de encaminamiento 104) y el dispositivo de transcodificación 106. Los dispositivos de encaminamiento 104 y el dispositivo de transcodificación 106 pretenden representar un pequeño número de dispositivos que pueden formar parte de la red 100. Otros dispositivos de red, tales como conmutadores, concentradores, pasarelas, cortafuegos, puentes y otros dispositivos de ese tipo también pueden estar incluidos dentro de la red 100. Además, se pueden proporcionar dispositivos de red adicionales a lo largo de un trayecto de red entre un dispositivo servidor 102 y un dispositivo cliente 108. El dispositivo servidor 102 puede corresponder a un dispositivo de origen 12 (FIG. 1), mientras que el dispositivo cliente 108 puede corresponder a un dispositivo de destino 14 (FIG.
1), en algunos ejemplos.
[0096] En general, los dispositivos de encaminamiento 104 implementan uno o más protocolos de encaminamiento para intercambiar datos de red a través de la red 100. En algunos ejemplos, los dispositivos de encaminamiento104 pueden estar configurados para realizar operaciones de proxy o de caché. Por lo tanto, en algunos ejemplos, los dispositivos de encaminamiento 104 se pueden denominar dispositivos proxy. En general, los dispositivos de encaminamiento 104 ejecutan protocolos de encaminamiento para descubrir rutas a través de la red 100. Al ejecutar dichos protocolos de encaminamiento, un dispositivo de encaminamiento 104B puede descubrir una ruta de red desde sí mismo hasta el dispositivo servidor 102 por medio del dispositivo de encaminamiento 104A.
[0097] Uno o más de los dispositivos de encaminamiento 104 pueden comprender un MANE que usa uno o más aspectos de la presente divulgación. En algunos ejemplos, uno o más de los dispositivos de encaminamiento 104 pueden determinar un valor del elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas. Uno o más de los dispositivos de encaminamiento 104 también pueden determinar el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas. Uno o más de los dispositivos de encaminamiento 104 pueden determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo. Además, como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, uno o más de los dispositivos de encaminamiento 104 pueden establecer un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red. Estas etapas también se pueden realizar mediante otros dispositivos. Por ejemplo, en algunos ejemplos, el dispositivo de red 29 puede realizar estas etapas.
[0098] Las técnicas de la presente divulgación se pueden implementar mediante dispositivos de red, tales como los dispositivos de encaminamiento 104 y el dispositivo de transcodificación 106, pero también se pueden implementar mediante un dispositivo cliente 108. De esta manera, los dispositivos de encaminamiento 104, el dispositivo de transcodificación 106 y el dispositivo cliente 108 representan ejemplos de dispositivos configurados para realizar las técnicas de la presente divulgación. Por otro lado, los dispositivos de la FIG. 1 y el codificador 20 ilustrado en la FIG.
2 y el descodificador 30 ilustrado en la FIG. 3 son también dispositivos ejemplares que pueden estar configurados para realizar las técnicas de la presente divulgación.
[0099] La FIG. 5 es un diagrama de flujo que ilustra una técnica de procesamiento de ejemplo de acuerdo con una o más técnicas descritas en la presente divulgación. En esta técnica, un dispositivo de vídeo, tal como la entidad de red 29, o la unidad de descodificación de entropía 80 del descodificador de vídeo 30, puede recibir un flujo de bits (140). En algunos ejemplos, el flujo de bits puede contener al menos un elemento de sintaxis, un primer tipo de capa de abstracción de red y una unidad de acceso codificada.
[0100] El dispositivo de vídeo puede determinar un valor del elemento de sintaxis en el flujo de bits (142). El elemento de sintaxis puede incluir una indicación de que la unidad de acceso codificada se ha codificado usando alineación entre capas. Como respuesta a la indicación por el elemento de sintaxis de que la unidad de acceso codificada se ha codificado usando alineación entre capas, el dispositivo de vídeo puede determinar un valor para el primer tipo de unidad de capa de abstracción de red (144). El dispositivo de vídeo puede determinar si el valor del primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo (146). Como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, el dispositivo de vídeo puede establecer un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red (148).
[0101] La FIG. 6 es un diagrama de flujo que ilustra una técnica de codificación de ejemplo de acuerdo con una o más técnicas descritas en la presente divulgación. En esta técnica, un dispositivo de codificación de vídeo, tal como la unidad de codificación de entropía 56 del codificador de vídeo 20, puede codificar una unidad de acceso (160). Un
dispositivo de vídeo, tal como la unidad de posprocesamiento 27 o la unidad de codificación de entropía 56 del codificador de vídeo 20, puede generar un elemento de sintaxis (162). El elemento de sintaxis puede ser una indicación de que la unidad de acceso se ha codificado usando alineación entre capas. El dispositivo de vídeo puede generar un primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso (164). El dispositivo de vídeo puede facilitar a continuación un flujo de bits, en el que el flujo de bits comprende al menos la unidad de acceso codificada, el elemento de sintaxis y el primer tipo de unidad de capa de abstracción de red (166).
[0102] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, software, firmware o en cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en o transmitir a través de un medio legible por ordenador, como una o más instrucciones o código, y ejecutar mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos, o unos medios de comunicación que incluyen cualquier medio que facilita la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles legibles por ordenador que son no transitorios o a (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones y estructuras de código y/o de datos para la implementación de las técnicas descritas en la presente divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0103] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se puede usar para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que se puede acceder mediante un ordenador. Asimismo, cualquier conexión recibe apropiadamente la denominación de medio legible por ordenador. Por ejemplo, si se transmiten instrucciones desde un sitio web, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o unas tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, se debe entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales ni otros medios transitorios, sino que, en su lugar, se refieren a medios de almacenamiento tangibles no transitorios. El término disco, como se usa en el presente documento, incluye disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde los discos flexibles reproducen normalmente datos magnéticamente, mientras que los demás discos reproducen datos ópticamente con láseres. Las combinaciones de los anteriores también se deben incluir dentro del alcance de los medios legibles por ordenador.
[0104] Las instrucciones se pueden ejecutar mediante uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. En consecuencia, el término "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de módulos de hardware y/o de software dedicados configurados para la codificación y la descodificación, o incorporar en un códec combinado. Asimismo, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0105] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En la presente divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no se requiere necesariamente su realización mediante diferentes unidades de hardware. En su lugar, como se describe anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar mediante un grupo de unidades de hardware interoperativas, que incluye uno o más procesadores como se describe anteriormente, junto con software y/o firmware adecuados.
[0106] Se han descrito diversos ejemplos de la divulgación. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.
Claims (10)
1. Un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento:
recibir (140) un flujo de bits de datos de vídeo codificados, en el que el flujo de bits comprende al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red, y una unidad de acceso codificada, en el que la unidad de acceso codificada comprende una pluralidad de imágenes;
determinar (142) un valor del elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas, y en el que el elemento de sintaxis se señaliza en una posición de una unidad de capa de abstracción de red (NAL) cuya descodificación de entropía no se necesita para interpretar el elemento de sintaxis; y
como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas:
determinar (144) el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso;
determinar (146) si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo; y
como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo, establecer (148) un tipo de unidad de capa de abstracción de red para todas las demás imágenes de la unidad de acceso codificada para que sea igual al valor del primer tipo de unidad de capa de abstracción de red.
2. El procedimiento de la reivindicación 1, en el que el elemento de sintaxis es una marca.
3. El procedimiento de la reivindicación 1, en el que el elemento de sintaxis está incluido en un conjunto de parámetros de vídeo (VPS), una ampliación de v Ps , un mensaje de información de mejora suplementaria (SEI), o un conjunto de parámetros de secuencia (SPS).
4. El procedimiento de la reivindicación 1, en el que el elemento de sintaxis se codifica con una longitud fija.
5. El procedimiento de la reivindicación 1, en el que el elemento de sintaxis está situado en una unidad de capa de abstracción de red (NAL) antes de cualquier elemento codificado con una longitud variable; o
en el que el elemento de sintaxis está situado en una unidad de capa de abstracción de red (NAL) después de algunos elementos codificados con una longitud variable y al principio de un conjunto de elementos de ampliación VPS; o
en el que el elemento de sintaxis está situado en una unidad de capa de abstracción de red (NAL) dentro de un conjunto de elementos de sintaxis de ampliación, después de algunos elementos codificados con una longitud variable pero antes de cualquier elemento codificado con una longitud variable de los elementos de sintaxis de ampliación.
6. El procedimiento de la reivindicación 1, en el que se aplica una restricción de flujo de bits cuando el elemento de sintaxis indica una alineación entre capas, comprendiendo la restricción de flujo de bits que el primer tipo de unidad de capa de abstracción de red tiene un valor de un intervalo que incluye, inclusivamente, unos números de 0 a 31 y que cada una de otras imágenes de la unidad de acceso tiene un tipo de unidad de capa de abstracción de red igual al primer tipo de unidad de capa de abstracción de red; o
en el que se aplica una restricción de flujo de bits cuando el elemento de sintaxis indica una alineación entre capas, comprendiendo la restricción de flujo de bits que el primer tipo de unidad de capa de abstracción de red tiene un valor de un intervalo que incluye, inclusivamente, unos números de 16 a 23 y que cada una de otras imágenes de la unidad de acceso tiene un tipo de unidad de capa de abstracción de red igual al primer tipo de unidad de capa de abstracción de red; o
en el que se aplica una restricción de flujo de bits cuando el elemento de sintaxis indica una alineación entre capas, comprendiendo la restricción de flujo de bits que el primer tipo de unidad de capa de abstracción de red tiene un valor de un intervalo que incluye, inclusivamente, unos números de 19 a 20 y que cada una de otras imágenes de la unidad de acceso tiene un tipo de unidad de capa de abstracción de red igual al primer tipo de unidad de capa de abstracción de red; o
en el que se aplica una restricción de flujo de bits cuando el elemento de sintaxis indica una alineación entre capas, comprendiendo la restricción de flujo de bits que el primer tipo de unidad de capa de abstracción de red
tiene un valor de un intervalo que incluye, inclusivamente, unos números de 16 a 18 y que cada una de otras imágenes de la unidad de acceso tiene un tipo de unidad de capa de abstracción de red igual al primer tipo de unidad de capa de abstracción de red; o
en el que se aplica una restricción de flujo de bits cuando el elemento de sintaxis indica una alineación entre capas, comprendiendo la restricción de flujo de bits que el primer tipo de unidad de capa de abstracción de red tiene un valor igual a 21 y que cada una de otras imágenes de la unidad de acceso tiene un tipo de unidad de capa de abstracción de red igual al primer tipo de unidad de capa de abstracción de red.
7. El procedimiento de la reivindicación 1, en el que se aplican tres restricciones de flujo de bits en combinación, comprendiendo las tres restricciones de flujo de bits:
una primera restricción de flujo de bits que comprende que el primer tipo de unidad de capa de abstracción de red tiene un valor de un intervalo que incluye, inclusivamente, unos números de 0 a 31 y que cada una de otras imágenes de la unidad de acceso tiene un tipo de unidad de capa de abstracción de red igual al primer tipo de unidad de capa de abstracción de red;
una segunda restricción de flujo de bits que comprende que el primer tipo de unidad de capa de abstracción de red tiene un valor de un intervalo que incluye, inclusivamente, unos números de 16 a 23 y que cada una de otras imágenes de la unidad de acceso tiene un tipo de unidad de capa de abstracción de red igual al primer tipo de unidad de capa de abstracción de red; y
una tercera restricción de flujo de bits que comprende que el primer tipo de unidad de capa de abstracción de red tiene un valor de un intervalo que incluye, inclusivamente, unos números de 19 a 20 y que cada una de otras imágenes de la unidad de acceso tiene un tipo de unidad de capa de abstracción de red igual al primer tipo de unidad de capa de abstracción de red.
8. Un aparato para procesar vídeo, comprendiendo el aparato:
medios para recibir un flujo de bits de datos de vídeo codificados, en el que el flujo de bits comprende al menos un elemento de sintaxis, un primer tipo de unidad de capa de abstracción de red y una unidad de acceso codificada, en el que la unidad de acceso codificada comprende una pluralidad de imágenes;
medios para determinar un valor del elemento de sintaxis, en el que el elemento de sintaxis incluye una indicación de si la unidad de acceso se ha codificado usando alineación entre capas, y en el que el elemento de sintaxis se señaliza en una posición de una unidad de capa de abstracción de red (NAL) cuya descodificación de entropía no se necesita para interpretar el elemento de sintaxis;
medios para determinar el primer tipo de unidad de capa de abstracción de red para una imagen de la unidad de acceso como respuesta a una determinación de que el elemento de sintaxis indica alineación entre capas;
medios para determinar si el primer tipo de unidad de capa de abstracción de red es igual a un valor de un intervalo predeterminado de valores de tipo; y
medios para establecer un tipo de unidad de capa de abstracción de red para que todas las demás imágenes de la unidad de acceso codificada sean iguales al valor del primer tipo de unidad de capa de abstracción de red como respuesta a una determinación de que el primer tipo de unidad de capa de abstracción de red es igual a un valor del intervalo predeterminado de valores de tipo.
9. El dispositivo de la reivindicación 8, en el que el dispositivo es un descodificador de vídeo, o un elemento de red con reconocimiento de medios.
10. Un medio de almacenamiento legible por ordenador con instrucciones almacenadas en el mismo que, al ejecutarse, hacen que uno o más procesadores de un dispositivo para procesar datos de vídeo realicen el procedimiento de cualquiera de las reivindicaciones 1-7.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361813120P | 2013-04-17 | 2013-04-17 | |
US14/254,400 US9602822B2 (en) | 2013-04-17 | 2014-04-16 | Indication of cross-layer picture type alignment in multi-layer video coding |
PCT/US2014/034523 WO2014172549A1 (en) | 2013-04-17 | 2014-04-17 | Indication of cross-layer picture type alignment in multi-layer video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2842082T3 true ES2842082T3 (es) | 2021-07-12 |
Family
ID=51728982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES14723962T Active ES2842082T3 (es) | 2013-04-17 | 2014-04-17 | Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa |
Country Status (7)
Country | Link |
---|---|
US (3) | US9602822B2 (es) |
EP (1) | EP2987324B1 (es) |
JP (1) | JP6363172B2 (es) |
KR (1) | KR102221569B1 (es) |
CN (3) | CN108718414B (es) |
ES (1) | ES2842082T3 (es) |
WO (1) | WO2014172549A1 (es) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9602822B2 (en) | 2013-04-17 | 2017-03-21 | Qualcomm Incorporated | Indication of cross-layer picture type alignment in multi-layer video coding |
US9525883B2 (en) * | 2013-07-15 | 2016-12-20 | Qualcomm Incorporated | Cross-layer alignment of intra random access point pictures |
CN106303673B (zh) * | 2015-06-04 | 2021-01-22 | 中兴通讯股份有限公司 | 码流对齐、同步处理方法及发送、接收终端和通信*** |
US10623755B2 (en) * | 2016-05-23 | 2020-04-14 | Qualcomm Incorporated | End of sequence and end of bitstream NAL units in separate file tracks |
US20190394494A1 (en) * | 2017-02-20 | 2019-12-26 | Sony Corporation | Image processing apparatus and method |
US10812818B2 (en) * | 2018-12-14 | 2020-10-20 | Tencent America LLC | Network abstraction unit layer type classes in network abstraction layer unit header |
KR20240064016A (ko) * | 2019-03-11 | 2024-05-10 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 혼합된 nal 유닛 유형 픽처 제약 |
US11418779B2 (en) * | 2019-06-11 | 2022-08-16 | Qualcomm Incorporated | Clipping indices coding for adaptive loop filter in video coding |
CN115299063A (zh) | 2020-02-27 | 2022-11-04 | 抖音视界有限公司 | 变换跳过残差编解码 |
CN115918083A (zh) * | 2020-04-15 | 2023-04-04 | 抖音视界有限公司 | 子比特流提取 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7415069B2 (en) * | 2003-12-09 | 2008-08-19 | Lsi Corporation | Method for activation and deactivation of infrequently changing sequence and picture parameter sets |
US7885337B2 (en) * | 2004-08-23 | 2011-02-08 | Qualcomm Incorporated | Efficient video slicing |
FR2899758A1 (fr) * | 2006-04-07 | 2007-10-12 | France Telecom | Procede et dispositif de codage de donnees en un flux scalable |
BRPI0714564B1 (pt) * | 2006-07-20 | 2020-09-15 | Interdigital Vc Holdings, Inc | Método e aparelho para escalabilidade de visualização por sinalização em codificação de multivisualização em vídeo, estrutura de sinal de vídeo para codificação de vídeo e mídia de armazenagem |
CN101523920B (zh) * | 2006-10-16 | 2013-12-04 | 汤姆森许可贸易公司 | 在视频操作期间使用网络抽象层单元以信号方式指示即时解码刷新的方法 |
EP2129129B1 (en) * | 2006-11-14 | 2013-09-18 | Qualcomm Incorporated | Systems and methods for channel switching |
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 |
US20090003431A1 (en) * | 2007-06-28 | 2009-01-01 | Lihua Zhu | Method for encoding video data in a scalable manner |
JP2010527216A (ja) * | 2007-05-16 | 2010-08-05 | トムソン ライセンシング | マルチビュー・ビデオ符号化(mvc)情報の符号化においてスライス群を使用する方法及び装置 |
EP2174502A2 (en) * | 2007-06-26 | 2010-04-14 | Nokia Corporation | System and method for indicating temporal layer switching points |
US8483282B2 (en) * | 2007-10-12 | 2013-07-09 | Qualcomm, Incorporated | Entropy coding of interleaved sub-blocks of a video block |
US8332736B2 (en) * | 2007-11-29 | 2012-12-11 | Texas Instruments Incorporated | Decoder with resiliency to handle errors in a received data stream |
US20100091841A1 (en) * | 2008-10-07 | 2010-04-15 | Motorola, Inc. | System and method of optimized bit extraction for scalable video coding |
FR2940736B1 (fr) * | 2008-12-30 | 2011-04-08 | Sagem Comm | Systeme et procede de codage video |
RU2550552C2 (ru) * | 2009-04-28 | 2015-05-10 | Панасоник Корпорэйшн | Способ декодирования изображений и устройство декодирования изображений |
US20120075436A1 (en) * | 2010-09-24 | 2012-03-29 | Qualcomm Incorporated | Coding stereo video data |
JP5752268B2 (ja) * | 2011-01-14 | 2015-07-22 | ヴィディオ・インコーポレーテッド | 時間スケーラビリティのための高いレイヤのシンタックス |
WO2012105265A1 (en) * | 2011-02-03 | 2012-08-09 | Panasonic Corporation | Systems and methods for encoding and decoding video which support compatibility functionality to legacy video players |
US20130170561A1 (en) * | 2011-07-05 | 2013-07-04 | Nokia Corporation | Method and apparatus for video coding and decoding |
US10237565B2 (en) * | 2011-08-01 | 2019-03-19 | Qualcomm Incorporated | Coding parameter sets for various dimensions in video coding |
KR101715784B1 (ko) * | 2012-04-16 | 2017-03-13 | 노키아 테크놀로지스 오와이 | 비디오 코딩 방법 및 장치 |
US9532055B2 (en) * | 2012-04-16 | 2016-12-27 | Microsoft Technology Licensing, Llc | Constraints and unit types to simplify video random access |
WO2013165311A1 (en) | 2012-05-03 | 2013-11-07 | Telefonaktiebolaget L M Ericsson (Publ) | Identifying leading pictures in video coding |
US9992490B2 (en) | 2012-09-26 | 2018-06-05 | Sony Corporation | Video parameter set (VPS) syntax re-ordering for easy access of extension parameters |
US20140218473A1 (en) | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
US9807421B2 (en) * | 2013-04-05 | 2017-10-31 | Sharp Kabushiki Kaisha | NAL unit type restrictions |
US9591321B2 (en) | 2013-04-07 | 2017-03-07 | Dolby International Ab | Signaling change in output layer sets |
EP2975848A4 (en) * | 2013-04-12 | 2016-10-26 | Samsung Electronics Co Ltd | METHOD FOR MULTILAYER VIDEO CODING FOR DIRECT ACCESS AND DEVICE THEREFOR AND METHOD FOR MULTILAYER VIDEO DECODING FOR DIRECT ACCESS AND DEVICE THEREFOR |
US9602822B2 (en) | 2013-04-17 | 2017-03-21 | Qualcomm Incorporated | Indication of cross-layer picture type alignment in multi-layer video coding |
EP3058733B1 (en) * | 2013-10-14 | 2017-01-04 | Telefonaktiebolaget LM Ericsson (publ) | Picture order count alignment in scalble video |
-
2014
- 2014-04-16 US US14/254,400 patent/US9602822B2/en active Active
- 2014-04-17 CN CN201810777272.0A patent/CN108718414B/zh active Active
- 2014-04-17 CN CN201480021964.2A patent/CN105122798B/zh active Active
- 2014-04-17 EP EP14723962.8A patent/EP2987324B1/en active Active
- 2014-04-17 JP JP2016509101A patent/JP6363172B2/ja active Active
- 2014-04-17 ES ES14723962T patent/ES2842082T3/es active Active
- 2014-04-17 KR KR1020157032643A patent/KR102221569B1/ko active IP Right Grant
- 2014-04-17 CN CN201810777292.8A patent/CN108718415B/zh active Active
- 2014-04-17 WO PCT/US2014/034523 patent/WO2014172549A1/en active Application Filing
-
2017
- 2017-02-06 US US15/425,738 patent/US9712832B2/en active Active
- 2017-02-06 US US15/425,676 patent/US9712831B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2987324A1 (en) | 2016-02-24 |
CN108718415A (zh) | 2018-10-30 |
US20170171549A1 (en) | 2017-06-15 |
CN105122798A (zh) | 2015-12-02 |
US9712831B2 (en) | 2017-07-18 |
US9602822B2 (en) | 2017-03-21 |
JP6363172B2 (ja) | 2018-07-25 |
US9712832B2 (en) | 2017-07-18 |
KR102221569B1 (ko) | 2021-02-26 |
EP2987324B1 (en) | 2020-10-07 |
CN108718414A (zh) | 2018-10-30 |
JP2016521503A (ja) | 2016-07-21 |
KR20160002924A (ko) | 2016-01-08 |
CN105122798B (zh) | 2018-08-10 |
US20140314140A1 (en) | 2014-10-23 |
CN108718415B (zh) | 2021-03-26 |
US20170171550A1 (en) | 2017-06-15 |
CN108718414B (zh) | 2021-06-18 |
WO2014172549A1 (en) | 2014-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2842082T3 (es) | Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa | |
ES2611349T3 (es) | Codificación de Indicador de bloque codificado (CBF) para el formato de muestra 4:2:2 en codificación de vídeo | |
KR102210792B1 (ko) | 잔차 차동 펄스 코드 변조 (dpcm) 확장들 및 변환 스킵, 회전 및 스캔들과의 조화 | |
ES2973247T3 (es) | Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo | |
KR101825262B1 (ko) | B 슬라이스에서의 예측 유닛의 단방향성 인터 예측으로의 제한 | |
ES2952256T3 (es) | Modelado de contexto eficiente de memoria | |
ES2648312T3 (es) | Relleno de píxeles de borde para intra-predicción en codificación de vídeo | |
ES2744235T3 (es) | Actualizaciones de conjuntos de parámetros en la codificación de vídeo | |
BR112018006408B1 (pt) | Predição intra de vídeo melhorada usando combinação de predição dependente de posição para codificação de vídeo | |
US9525883B2 (en) | Cross-layer alignment of intra random access point pictures | |
ES2810202T3 (es) | Adaptación de transmisión continua basada en imágenes de acceso aleatorio limpio (CRA) | |
ES2886344T3 (es) | Predicción residual generalizada para codificación de vídeo escalable y codificación de vídeo 3D | |
ES2780686T3 (es) | Tipo de dependencia entre vistas en MV-HEVC | |
ES2703342T3 (es) | Selección de imagen de referencia | |
ES2856099T3 (es) | Señalización mejorada de identificadores de capa para puntos de operación de un codificador de vídeo | |
KR20140130466A (ko) | B 슬라이스에서의 예측 유닛의 단방향성 인터 예측으로의 제한 | |
KR20150076235A (ko) | 비디오 코딩을 위한 참조 화상 상태 | |
WO2014008136A1 (en) | Signaling of long-term reference pictures for video coding |