ES2684546T3 - Codificación de vídeo con comportamientos de imagen de punto de acceso aleatorio mejorados - Google Patents

Codificación de vídeo con comportamientos de imagen de punto de acceso aleatorio mejorados Download PDF

Info

Publication number
ES2684546T3
ES2684546T3 ES13759642.5T ES13759642T ES2684546T3 ES 2684546 T3 ES2684546 T3 ES 2684546T3 ES 13759642 T ES13759642 T ES 13759642T ES 2684546 T3 ES2684546 T3 ES 2684546T3
Authority
ES
Spain
Prior art keywords
images
image
bla
cra
cpb
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
Application number
ES13759642.5T
Other languages
English (en)
Inventor
Ye-Kui Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2684546T3 publication Critical patent/ES2684546T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento: recibir (170) un flujo de bits que representa una pluralidad de imágenes incluyendo una o más imágenes de acceso aleatorio limpio (CRA) que tienen un tipo de unidad NAL que indica una imagen CRA con imágenes etiquetadas para descarte (TFD) asociadas, o una o más imágenes de acceso de enlace interrumpido (BLA) que tienen un tipo de unidad NAL que indica una imagen BLA con imágenes TFD asociadas, en el que las imágenes TFD son imágenes principales no descodificables; recibir (172), desde un medio externo, un mensaje que indica si las imágenes TFD de al menos una de las una o más imágenes CRA o una o más imágenes BLA fueron descartadas por los medios externos, y por lo tanto si usar un conjunto alternativo de parámetros de memoria de intermedia de imágenes codificada (CPB) para al menos una de las una o más imágenes CRA o una o más de las imágenes BLA; establecer (174) una variable definida para indicar un conjunto de parámetros de CPB para al menos una de las una o más imágenes CRA o una o más imágenes BLA, basándose en el mensaje recibido, de modo que la variable indique el conjunto alternativo de parámetros CPB cuando las imágenes TFD fueron descartadas por los medios externos; y seleccionar el conjunto alternativo de parámetros de CPB para la al menos una de las una o más imágenes CRA o las una o más imágenes BLA cuando la variable indica el conjunto alternativo de parámetros de CPB, o seleccionar un conjunto predeterminado de parámetros de CPB para la al menos una de las una o más imágenes CRA o las una o más imágenes BLA cuando la variable no indica el conjunto alternativo de parámetros de CPB.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCIÓN
Codificación de vídeo con comportamientos de imagen de punto de acceso aleatorio mejorados CAMPO TÉCNICO
[0001] Esta divulgación se refiere en general al procesamiento de datos de vídeo y, más particularmente, a imágenes de acceso aleatorio usadas en datos de vídeo.
ANTECEDENTES
[0002] Las capacidades del vídeo digital pueden incorporarse a una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión digital directa, 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 celulares o de radio por satélite, los denominados "teléfonos inteligentes", dispositivos de videoconferencia, dispositivos de transmisión de flujo de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de codificació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), la norma de Codificación de Vídeo de Alta Eficiencia (HEVC), actualmente en desarrollo, y las ampliaciones de tales normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente, implementando tales técnicas de codificación de vídeo.
[0003] Las técnicas de codificación de vídeo incluyen la predicción espacial (intra-imagen) y/o la predicción temporal (entre imágenes) para reducir o eliminar la redundancia intrínseca en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo (por ejemplo, una trama de vídeo o una parte de una trama de vídeo) puede dividirse en bloques de vídeo, que también pueden denominarse bloques arbolados, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un fragmento intra-codificado (I) de una imagen se codifican mediante predicción espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen. Los bloques de vídeo en un fragmento inter-codificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen, o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse tramas, y las imágenes de referencia pueden denominarse tramas de referencia.
[0004] 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 a codificar y el bloque predictivo. Un bloque inter-codificado 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 intra-codificado se codifica de acuerdo con un modo de intra- codificación y los datos residuales. Para una mayor compresión, los datos residuales pueden transformarse desde el dominio de los píxeles al dominio de las transformaciones, dando como resultado unos coeficientes de transformación residuales, que posteriormente se pueden cuantificar. Los coeficientes de transformación cuantificados, dispuestos inicialmente en una matriz bidimensional, pueden explorarse con el fin de generar un vector unidimensional de coeficientes de transformación, y puede aplicarse la codificación por entropía para lograr aún más compresión.
SUMARIO
[0005] En general, esta divulgación describe las técnicas para proporcionar un mejor soporte de imágenes de punto de acceso aleatorio (RAP), incluyendo imágenes de acceso aleatorio limpio (CRA) e imágenes de acceso de enlace interrumpido (BLA), en la codificación de vídeo. En algunos casos, las imágenes RAP pueden denominarse de forma alternativa imágenes de punto de acceso intra-aleatorio (IRAP). En particular, esta divulgación describe técnicas para la selección de parámetros de memoria intermedia de imágenes codificadas (CPB) usadas para definir una CPB para un dispositivo de codificación de vídeo para imágenes CRA o imágenes BLA en un flujo de bits de vídeo. Se puede usar un conjunto predeterminado o un conjunto alternativo de parámetros de CPB para definir la CPB. Si se usa el conjunto predeterminado cuando debería haberse seleccionado el conjunto alternativo, la CPB puede desbordarse.
[0006] En un ejemplo, la divulgación se refiere a un procedimiento de procesamiento de datos de vídeo que comprende recibir un flujo de bits que representa una pluralidad de imágenes que incluye una o más de las imágenes CRA o imágenes BLA, y la recepción de un mensaje que indica si se debe utilizar un conjunto alternativo de parámetros de CPB para al menos una de las imágenes CRA o las imágenes BLA. El procedimiento comprende además establecer una variable definida para indicar el conjunto de parámetros de CPB para una de las imágenes CRA o las imágenes BLA basándose en el mensaje recibido, y seleccionar el conjunto de parámetros de CPB para una de las imágenes CRA o las imágenes BLA basándose en la variable para la imagen.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0007] En otro ejemplo, la divulgación se refiere a un dispositivo de codificación de vídeo para el procesamiento de datos de vídeo, comprendiendo el dispositivo una CPB configurada para almacenar los datos de vídeo, y uno o más procesadores configurados para recibir un flujo de bits que representa una pluralidad de imágenes que incluye una o más imágenes CRA o imágenes BLA, recibir un mensaje que indique si se debe usar un conjunto alternativo de parámetros de CPB para al menos una de las imágenes CRA o las imágenes BLA, ajustar una variable definida para indicar el conjunto de parámetros de CPB para uno de las imágenes CRA o imágenes BLA basándose en el mensaje recibido, y seleccionar el conjunto de parámetros de CPB para una de las imágenes CRA o las imágenes BLA basándose en la variable para la imagen.
[0008] En un ejemplo adicional, la divulgación se refiere a un dispositivo de codificación de vídeo para el procesamiento de datos de vídeo, comprendiendo el dispositivo medios para recibir un flujo de bits que representa una pluralidad de imágenes que incluyen una o más de las imágenes CRA o imágenes BLA, medios para recibir una mensaje que indica si se debe usar un conjunto alternativo de parámetros de CPB para al menos una de las imágenes CRA o BLA, medios para establecer una variable definida para indicar el conjunto de parámetros de CPB para una de las imágenes CRA o las imágenes BLA basándose en el mensaje recibido, y medios para seleccionar el conjunto de parámetros de CPB para una de las imágenes CRA o las imágenes BLA basándose en la variable para la imagen.
[0009] En un ejemplo adicional, la divulgación se refiere a un medio legible por ordenador que comprende instrucciones para el procesamiento de datos de vídeo; las instrucciones, cuando se ejecutan, hacen que uno o más procesadores reciban un flujo de bits que representa una pluralidad de imágenes que incluye una o más de imágenes CRA o imágenes BLA, recibir un mensaje que indique si utilizar un conjunto alternativo de parámetros de CPB para al menos una de las imágenes CRA o las imágenes BLA, establecer una variable definida para indicar el conjunto de parámetros de CPB para una de las imágenes CRA o las imágenes BLA basándose en el mensaje recibido, y seleccionar el conjunto de parámetros de CPB para una de las imágenes CRA o las imágenes BLA basándose en la variable para la imagen.
[0010] Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características, objetivos y ventajas resultarán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0011]
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 esta divulgación.
La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo a modo de ejemplo que puede implementar las técnicas descritas en esta divulgación.
La FIG. 3 es un diagrama de bloques que ilustra un descodificador de vídeo a modo de ejemplo que puede implementar las técnicas descritas en esta divulgación.
La FIG. 4 es un diagrama de bloques que ilustra un dispositivo de destino de ejemplo configurado para funcionar de acuerdo con un descodificador de referencia hipotético (HRD).
La FIG. 5 es un diagrama de flujo que ilustra una operación de ejemplo para seleccionar un conjunto de parámetros de memoria intermedia de imágenes codificadas (CPB) basándose en una variable que indica el conjunto de parámetros de CPB para una imagen de punto de acceso aleatorio (RAP) particular en un flujo de bits.
La FIG. 6 es un diagrama de flujo que ilustra una operación de ejemplo de establecer un tipo de unidad de abstracción de capa de red (NAL) para una imagen de RAP particular basándose en una variable que indica el conjunto de parámetros de CPB para la imagen.
La FIG. 7 es un diagrama de flujo que ilustra una operación de ejemplo de seleccionar un conjunto de parámetros de CPB para una imagen de RAP particular basándose en un tipo de unidad de NAL para la imagen y una variable que indica el conjunto de parámetros de CPB para la imagen.
La FIG. 8 es un diagrama de flujo que ilustra una operación de ejemplo para seleccionar un conjunto de parámetros de CPB basándose en una variable definida para indicar un tipo de unidad de abstracción de capa de red (NAL) para una imagen de RAP particular en un flujo de bits.
La FIG. 9 es un diagrama de bloques que ilustra un conjunto a modo de ejemplo de dispositivos que forman parte de una red.
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCIÓN DETALLADA
[0012] Esta divulgación describe las técnicas para proporcionar un mejor soporte de imágenes de punto de acceso aleatorio (RAP), incluyendo imágenes de acceso aleatorio limpio (CRA) e imágenes de acceso de enlace interrumpido (BLA), en la codificación de vídeo. En algunos casos, las imágenes RAP pueden denominarse de forma alternativa imágenes de punto de acceso intra-aleatorio (IRAP). En particular, esta divulgación describe técnicas para la selección de parámetros de memoria intermedia de imágenes codificadas (CPB) usadas para definir una CPB para un dispositivo de codificación de vídeo para imágenes CRA o imágenes BLA en un flujo de bits de vídeo. Un descodificador de referencia hipotético (HRD) se basa en los parámetros de HRD, que incluyen información de período de memoria intermedia e información de temporización de imagen. La información de período de almacenamiento en memoria intermedia define los parámetros de CPB, a saber, los retardos iniciales de eliminación de CPB y las desviaciones iniciales de retardo de eliminación de CPB. Se puede usar un conjunto predeterminado o un conjunto alternativo de parámetros de CPB para definir la CPB basándose en el tipo de imagen utilizada para inicializar el HRD. Si se usa el conjunto predeterminado cuando debería haberse seleccionado el conjunto alternativo, la CPB en un dispositivo de codificación de vídeo que se ajusta al HRD puede desbordarse.
[0013] De acuerdo con las técnicas, un dispositivo de codificación de vídeo recibe un flujo de bits que representa una pluralidad de imágenes que incluye una o más imágenes CRA o imágenes BLA, y también recibe un mensaje que indica si se debe utilizar un conjunto alternativo de parámetros de CPB para cada una de las imágenes CRA o las imágenes BLA. El mensaje puede recibirse desde un medio externo, tal como un medio de procesamiento incluido en un servidor de transmisión, un elemento de red intermedio u otra entidad de red.
[0014] El dispositivo de codificación de vídeo establece una variable definida para indicar el conjunto de parámetros de CPB para una determinada de las imágenes CRA o las imágenes BLA basándose en el mensaje recibido. El dispositivo de codificación de vídeo a continuación selecciona el conjunto de parámetros de CPB para la imagen CRA o la imagen BLA dada basándose en la variable para la imagen. El conjunto seleccionado de parámetros de CPB se aplica a una CPB incluida en un codificador de vídeo o descodificador de vídeo para garantizar que la CPB no se desborde durante la codificación de vídeo. En algunos casos, el dispositivo de codificación de vídeo puede establecer un tipo de unidad de capa de abstracción de red (NAL) para la imagen CRA o la imagen BLA dada. El dispositivo de codificación de vídeo puede establecer el tipo de unidad NAL para la imagen como se señala, o el dispositivo de codificación de vídeo puede establecer el tipo de unidad NAL basándose en la variable de la imagen. El dispositivo de codificación de vídeo puede seleccionar el conjunto de parámetros de CPB para la imagen dada basándose en el tipo de unidad NAL y la variable de la imagen.
[0015] La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de sistema de codificación y descodificación de vídeo 10 que puede utilizar las técnicas descritas en esta divulgación. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que proporciona datos de vídeo codificados, a descodificar en un momento posterior mediante un dispositivo de destino 14. En particular, el dispositivo de origen 12 proporciona los datos de vídeo al dispositivo de destino 14 mediante un medio legible por ordenador 16. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, ordenadores plegables (es decir, portátiles), ordenadores de tableta, descodificadores, equipos 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, un dispositivo 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.
[0016] El dispositivo de destino 14 puede recibir los datos de vídeo codificados a descodificar mediante el medio legible por ordenador 16. El medio legible por ordenador 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el medio legible por ordenador 16 puede comprender un medio de comunicación que habilita el dispositivo de origen 12 para transmitir datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados pueden modularse de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse 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 de transmisión física. 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 routers, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[0017] En algunos ejemplos, pueden emitirse datos codificados desde la interfaz de salida 22 hasta un dispositivo de almacenamiento. De forma similar, se puede acceder a los datos codificados del dispositivo de almacenamiento mediante una interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera entre una diversidad de medios de almacenamiento de datos, de acceso distribuido o local, tales como una unidad de disco duro, discos Blu- ray, discos DVD, discos CD-ROM, memoria flash, memoria volátil o no volátil u otros medios adecuados cualesquiera de almacenamiento digital para almacenar datos de vídeo codificados. En un ejemplo adicional, el
5
10
15
20
25
30
35
40
45
50
55
60
65
dispositivo de almacenamiento puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento en memoria intermedia que pueda almacenar los datos de vídeo codificados generados por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados del dispositivo de almacenamiento mediante transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Ejemplos de servidores de archivos incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectado en red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados mediante 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 Wi-Fi), una conexión alámbrica (por ejemplo, DSL, módem de cable, etc.), o una combinación de ambos 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 puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas.
[0018] Las técnicas de esta divulgación no están limitadas necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas pueden aplicarse a la codificación de vídeo como soporte a cualquiera de una diversidad de aplicaciones multimedia, tales como radiodifusiones de televisión por el aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones continuas de vídeo por Internet, tales como el flujo adaptativo dinámico sobre HTTP (DASH), el vídeo digital que se codifica en un medio de almacenamiento de datos, la descodificación de vídeo digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para admitir la transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como la transmisión continua de vídeo, la reproducción de vídeo, la radiodifusión de vídeo y/o la videotelefonía.
[0019] 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. El dispositivo de destino 14 incluye una interfaz de entrada 28, un descodificador de vídeo 30 y un dispositivo de visualización 32. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen 12 puede recibir datos de vídeo desde una fuente de vídeo externa 18, tal como una cámara externa. Asimismo, el dispositivo de destino 14 puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
[0020] El sistema 10 ilustrado de la FIG. 1 es simplemente un ejemplo. Las técnicas de esta divulgación pueden realizarse mediante cualquier dispositivo de codificación y/o descodificación de vídeo digital. Aunque en general las técnicas son realizadas por un dispositivo de codificación de vídeo, las técnicas también pueden ser realizadas por un codificador/descodificador de vídeo, típicamente denominado un "CODEC". Además, las técnicas de esta divulgación también pueden llevarse a cabo mediante un pre-procesador de vídeo. El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de dichos dispositivos de codificación en los que el dispositivo de origen 12 genera datos de vídeo codificados para su transmisión al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de manera esencialmente simétrica, de modo que cada uno de los dispositivos 12, 14 incluya componentes de codificación y de descodificación de vídeo. Por lo tanto, el sistema 10 puede admitir una transmisión de vídeo unidireccional o bidireccional entre los dispositivos de vídeo 12, 14, por ejemplo, para la transmisión continua de vídeo, la reproducción de vídeo, la radiodifusión de vídeo o la videotelefonía.
[0021] La fuente de vídeo 18 del dispositivo de origen 12 puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo grabado previamente y/o una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenidos de vídeo. De forma alternativa adicional, la fuente de vídeo 18 puede generar datos, basándose en gráficos por ordenador, como el vídeo de origen, o una combinación de vídeo en directo, vídeo archivado y vídeo generado por ordenador. En algunos casos, 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, como se ha mencionado anteriormente, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general, y pueden aplicarse a aplicaciones inalámbricas y/o alámbricas. En cada caso, el vídeo capturado, pre-capturado o generado por ordenador puede codificarse mediante el codificador de vídeo 20. La información de vídeo codificada puede entonces emitirse mediante la interfaz de salida 22 hacia un medio legible por ordenador 16.
[0022] El medio legible por ordenador 16 puede incluir medios transitorios, tales como una radiodifusión inalámbrica o una transmisión de red alámbrica, o medios de almacenamiento (es decir, medios de almacenamiento no transitorio), tales como un disco duro, una unidad de memoria flash, un disco compacto, un disco de vídeo digital, un disco Blu-ray u otros medios legibles por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo de origen 12 y proporcionar los datos de vídeo codificados al dispositivo de destino 14, por ejemplo, mediante transmisión por red. De manera similar, un dispositivo informático de una instalación de producción de un medio, tal como una instalación de grabación de discos, puede recibir datos de vídeo codificados desde el dispositivo de origen 12 y producir un disco que contiene los datos de vídeo
5
10
15
20
25
30
35
40
45
50
55
60
65
codificados. Por lo tanto, puede entenderse que el medio legible por ordenador 16 incluye uno o más medios legibles por ordenador de varias formas, en varios ejemplos.
[0023] La interfaz de entrada 28 del dispositivo de destino 14 recibe información desde el medio legible por ordenador 16. La información del medio legible por ordenador 16 puede incluir información sintáctica definida por el codificador de vídeo 20, que también se usa por el descodificador de vídeo 30, que incluye elementos sintácticos que describen características y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, grupos de imágenes (GOP). El dispositivo de visualización 32 muestra los datos de vídeo descodificados a un usuario, y puede comprender cualquiera de diversos dispositivos de visualización, tales como un tubo de rayos catódicos (CRT), 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.
[0024] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con una norma de codificación de vídeo, tal como la norma de codificación de vídeo de alta eficacia (HEVC), actualmente en fase de desarrollo, y pueden ajustarse al modelo de prueba de la 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, de forma alternativa denominada MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC), o ampliaciones de dichas normas. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de codificación de vídeo incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la FIG. 1, en algunos aspectos, cada uno del codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar integrados con un codificador y un descodificador de audio, y pueden incluir unidades MUX-DEMUX apropiadas, u otro tipo de hardware y software, para gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos independientes. Si procede, las unidades MUX- DEMUX pueden ajustarse al protocolo de multiplexación ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0025] La norma ITU-T H.264/MPEG-4 (AVC) fue formulada por el Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T, junto al Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC, como el producto de una asociación colectiva conocida como el Equipo de Vídeo Conjunto (JVT). En algunos aspectos, las técnicas descritas en esta divulgación pueden aplicarse a dispositivos que se ajustan en general a la norma H.264. La norma H.264 se describe en la Recomendación de la ITU-T H.264, Codificación Avanzada de Vídeo para servicios audiovisuales genéricos, por el Grupo de Estudio de la ITU-T, y con fecha de marzo de 2005, que puede denominarse en el presente documento norma H.264 o memoria descriptiva H.264, o norma o memoria descriptiva H.264/AVC. El Equipo Mixto de Vídeo (JVT) continúa trabajando en ampliaciones de H.264/MPEG-4 AVC.
[0026] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden implementarse, cada uno, como cualquiera entre 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), formaciones de puertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de estos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio, legible por ordenador, y ejecutar las instrucciones en hardware mediante uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno del codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar incluidos en uno o más codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CODEC) combinado en un dispositivo respectivo.
[0027] El equipo JCT-VC está trabajando en el desarrollo de la norma HEVC. Los esfuerzos de normalización de 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 respecto a dispositivos existentes de acuerdo, por ejemplo, a la norma ITU-T H.264/AVC. Por ejemplo, mientras que la norma H.264 proporciona nueve modos de codificación de intra-predicción, el HM puede proporcionar hasta treinta y tres modos de codificación de intra-predicción.
[0028] En general, el modelo de funcionamiento del HM describe que una trama o imagen de vídeo puede dividirse en una secuencia de bloques arbolados o unidades de codificación de máximo tamaño (LCU), que incluyen muestras tanto de luma como de croma. Los datos sintácticos dentro de un flujo de bits pueden definir un tamaño para la LCU, que es la máxima unidad de codificación en lo que respecta al número de píxeles. Un fragmento incluye un cierto número de bloques arbolados consecutivos en orden de codificación. Una trama o imagen de vídeo puede dividirse en uno o más fragmentos. Cada bloque arbolado puede dividirse en unidades de codificación (CU) de acuerdo con un árbol cuádruple. En general, una estructura de datos de árbol cuádruple incluye un nodo por CU, con un nodo raíz correspondiente al bloque arbolado. Si una CU se divide en cuatro sub-CU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las sub-CU.
[0029] Cada nodo de la estructura de datos de árbol cuádruple puede proporcionar datos sintácticos para la CU correspondiente. Por ejemplo, un nodo en el árbol cuádruple puede incluir un indicador de división, que indica si la CU correspondiente al nodo está dividida o no en varias sub-CU. Los elementos sintácticos para una CU pueden
5
10
15
20
25
30
35
40
45
50
55
60
65
definirse de manera recursiva y pueden depender de si la CU está dividida en varias sub-CU. Si una CU no está dividida adicionalmente, se denomina CU hoja. En esta divulgación, cuatro sub-CU de una CU hoja también se denominarán CU hojas incluso aunque no haya una división explícita de la CU hoja original. Por ejemplo, si una CU con un tamaño de 16x16 no se divide adicionalmente, las cuatro sub-CU de tamaño 8x8 también se denominarán CU hojas aunque la CU de tamaño 16x16 no se haya dividido nunca.
[0030] Una CU tiene un propósito similar a un macrobloque de la norma H.264, excepto que una CU no tiene una distinción de tamaño. Por ejemplo, un bloque arbolado puede dividirse en cuatro nodos secundarios (también denominados sub-CU) y cada nodo secundario puede a su vez ser un nodo principal y dividirse en otros cuatro nodos secundarios. Un nodo secundario final, no dividido, denominado un nodo hoja del árbol cuádruple, comprende un nodo de codificación, también denominado CU hoja. Los datos sintácticos asociados a un flujo de bits codificado pueden definir un número máximo de veces que puede dividirse un bloque arbolado, denominado profundidad de CU máxima, y también pueden definir un tamaño mínimo de los nodos de codificación. Por consiguiente, un flujo de bits también puede definir una unidad de codificación de mínimo tamaño (SCU). Esta divulgación utiliza el término "bloque" para referirse a cualquiera de una CU, PU o TU, en el contexto de la HEVC, o a estructuras de datos similares en el contexto de otras normas (por ejemplo, macrobloques y subbloques de los mismos en la norma H.264/AVC).
[0031] Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformación (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 ser de forma cuadrada. El tamaño de la CU puede variar desde 8x8 píxeles hasta el tamaño del bloque arbolado, 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 sintácticos 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 basándose en si la CU está codificada en modo de salto o directo, codificada en modo de intra-predicción o codificada en modo de inter-predicción. Las PU pueden dividirse para tener forma no cuadrada. Los datos sintácticos 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 cuádruple. Una TU puede tener forma cuadrada o no cuadrada (por ejemplo, rectangular).
[0032] La norma HEVC admite transformaciones de acuerdo con las TU, que pueden ser diferentes para diferentes CU. El tamaño de las TU típicamente se basa en el tamaño de las PU de una CU dada, definida para una LCU dividida, aunque puede que no siempre sea así. Las TU son típicamente del mismo tamaño o de un tamaño más pequeño que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades más pequeñas mediante una estructura de árbol cuádruple conocida como "árbol cuádruple residual" (RQT). Los nodos hoja del RQT pueden denominarse unidades de transformación (TU). Los valores de diferencias de píxeles, asociados a las TU, pueden transformarse para generar coeficientes de transformación, que pueden cuantificarse.
[0033] Una CU hoja puede incluir una o más unidades de predicción (PU). En general, una PU representa una zona espacial correspondiente a la totalidad, o a una parte, de la CU correspondiente, y puede incluir datos para recuperar una muestra de referencia para la PU. Además, una PU incluye datos relacionados con la predicción. Por ejemplo, cuando la PU está codificada en modo intra, pueden incluirse datos para la PU en un árbol cuádruple residual (RQT), que pueden incluir datos que describen un modo de intra-predicción para una TU correspondiente a la PU. Como otro ejemplo, cuando la PU está codificada en modo inter, la PU puede incluir datos que definen uno o más vectores 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, la Lista 0, la Lista 1 o la Lista C) para el vector de movimiento.
[0034] Una CU hoja que tiene una o más PU también puede incluir una o más unidades de transformación (TU). Las unidades de transformación pueden especificarse usando un RQT (también denominado estructura de árbol cuádruple de TU), como se ha analizado anteriormente. Por ejemplo, un indicador de división puede indicar si una CU hoja está dividida en cuatro unidades de transformación. A continuación, cada unidad de transformación puede dividirse adicionalmente en más sub-TU. Cuando una TU no se divide adicionalmente, puede denominarse una TU hoja. En general, en lo que respecta a la intra-codificación, todas las TU hoja que pertenecen a una CU hoja comparten el mismo modo de intra-predicción. Es decir, el mismo modo de intra-predicción se aplica en general para calcular valores predichos para todas las TU de una CU hoja. En lo que respecta a la intra-codificación, un codificador de vídeo puede calcular un valor residual para cada TU hoja usando el modo de intra-predicción, como una diferencia entre la parte de la CU correspondiente a la TU y el bloque original. Una TU no está necesariamente limitada al tamaño de una PU. De este modo, las TU pueden ser mayores o menores que una PU. En lo que respecta a la intra-codificación, una PU puede estar coubicada con una TU hoja correspondiente para la misma CU. En algunos ejemplos, el tamaño máximo de una TU hoja puede corresponder al tamaño de la CU hoja correspondiente.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0035] Además, las TU de las CU hojas también pueden asociarse a las respectivas estructuras de datos de árbol cuádruple, denominadas árboles cuádruples residuales (RQT). Es decir, una CU hoja puede incluir un árbol cuádruple que indica cómo la CU hoja está dividida en varias TU. El nodo raíz de un árbol cuádruple de TU corresponde en general a una CU hoja, mientras que el nodo raíz de un árbol cuádruple de CU corresponde en general a un bloque arbolado (o LCU). Las TU del RQT que no están divididas se denominan TU hojas. En general, esta divulgación usa los términos CU y TU para hacer referencia a una CU hoja y a una TU hoja, respectivamente, a no ser que se indique lo contrario.
[0036] Una secuencia de vídeo incluye habitualmente 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 sintácticos en una cabecera del GOP, en una cabecera de una o más de las imágenes o en otras ubicaciones, que describen un cierto número de imágenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintácticos de fragmento que describen un modo de codificación para el fragmento respectivo. Un codificador de vídeo 20 actúa típicamente sobre bloques de vídeo dentro de fragmentos de vídeo individuales con el fin de 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 presentar tamaños fijos o variables y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
[0037] Como ejemplo, el HM presta soporte a la predicción en diversos tamaños de PU. Suponiendo que el tamaño de una CU particular es 2Nx2N, el HM admite intra-predicción en tamaños de PU de 2Nx2N o NxN e inter-predicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. El HM también admite la división asimétrica para la inter-predicció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 en el 25 % y el 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 tamaño 2Nx2N que está dividida horizontalmente con una PU de tamaño 2Nx0,5N encima y una PU de tamaño 2Nx1,5N debajo.
[0038] En esta divulgación, "NxN" y "N por N" pueden usarse indistintamente 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 tamaño 16x16 tendrá 16 píxeles en la dirección vertical (y = 16) y 16 píxeles en la dirección horizontal (x = 16). Asimismo, un bloque de tamaño NxN presenta, 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 en un bloque pueden disponerse en filas y columnas. Además, no es necesario que los bloques presenten necesariamente el mismo número de píxeles en la dirección horizontal y en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
[0039] Tras la codificación de intra-predicción o inter-predicción mediante las PU de una CU, el codificador de vídeo 20 puede calcular los datos residuales para las TU de la CU. Las PU pueden comprender datos sintácticos que describen un procedimiento o modo de generación de datos de píxeles predictivos en el dominio espacial (también denominado el dominio de píxeles) y las TU pueden comprender coeficientes en el dominio de transformación, tras la aplicación de una transformación, por ejemplo, una transformación de coseno discreta (DCT), una transformación entera, una transformación de ondículas o una transformación 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 los 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 transformación para la CU.
[0040] Tras cualquier transformación para generar coeficientes de transformación, el codificador de vídeo 20 puede realizar la cuantificación de los coeficientes de transformación. La cuantificación se refiere, en general, a un proceso en el que los coeficientes de transformación 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 la totalidad de los coeficientes. Por ejemplo, un valor de n bits puede redondearse a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m,
[0041] Después de la cuantificación, el codificador de vídeo puede recorrer los coeficientes de transformación, produciendo un vector unidimensional a partir de la matriz bidimensional que incluye los coeficientes de transformación cuantificados. La exploración puede estar diseñada para colocar los coeficientes de energía más alta (y por lo tanto de menor frecuencia) en la parte frontal de la matriz y para colocar los coeficientes de energía más baja (y por lo tanto de mayor frecuencia) en la parte posterior de la matriz. En algunos ejemplos, el codificador de vídeo 20 puede usar un orden de exploración predefinido para explorar los coeficientes de transformación cuantificados, para producir un vector en serie que pueda ser codificado por entropía. En otros ejemplos, el codificador de vídeo 20 puede realizar una exploración adaptativa. Después de explorar los coeficientes de transformación cuantificados para formar un vector unidimensional, el codificador de vídeo 20 puede realizar la codificación por entropía del vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptable al contexto (CAVLC), la codificación aritmética binaria adaptable al contexto (CABAC), la codificación aritmética binaria adaptable al contexto basada en la sintaxis (SBAC), la codificación por entropía por división de
5
10
15
20
25
30
35
40
45
50
55
60
65
intervalos de probabilidad (PIPE) u otros procedimientos de codificación por entropía. El codificador de vídeo 20 también puede realizar la codificación por entropía de los elementos sintácticos 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.
[0042] Para realizar la CABAC, el codificador de vídeo 20 puede asignar un contexto dentro de un modelo contextual a un símbolo que se va a transmitir. El contexto puede referirse, por ejemplo, a si los valores contiguos 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 pueden construirse de tal manera que los códigos relativamente más cortos correspondan a símbolos más probables, mientras que los códigos más largos correspondan a símbolos menos probables. De esta manera, el uso de la 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 basarse en un contexto asignado al símbolo.
[0043] Además, el codificador de vídeo 20 puede enviar datos sintácticos, tales como datos sintácticos basándose en bloques, datos sintácticos basándose en tramas y datos sintácticos basándose en GOP, al descodificador de vídeo 30, por ejemplo, en una cabecera de trama, una cabecera de bloque, una cabecera de fragmento o una cabecera de GOP. Los datos sintácticos de GOP pueden describir un cierto número de tramas en el respectivo GOP, y los datos sintácticos de trama pueden indicar un modo de codificación/predicción utilizado para codificar la trama correspondiente.
[0044] El codificador de vídeo 20 y el descodificador de vídeo 30 pueden implementarse, cada uno, como cualquiera entre una amplia variedad de circuitos de codificadores o descodificadores adecuados, según corresponda, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), formaciones de puertas programables en el terreno (FPGA), circuitos de lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cada uno del codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar incluidos en uno o más codificadores o descodificadores, cada uno de los cuales puede estar integrado como parte de un codificador/descodificador (CODEC) de vídeo combinado. Un dispositivo que incluye el codificador de vídeo 20 y/o el descodificador de vídeo 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
[0045] Las normas de codificación de vídeo pueden incluir una especificación de un modelo de almacenamiento en memoria intermedia de vídeo. En AVC y HEVC, se hace referencia al modelo de almacenamiento en memoria intermedia como un descodificador de referencia hipotético (HRD), que incluye un modelo de almacenamiento en memoria intermedia de una memoria intermedia de imágenes codificadas (CPB) y una memoria intermedia de imágenes descodificadas (DPB) incluida en el codificador de vídeo 20 y/o el descodificador de vídeo 30, y los comportamientos de CPB y DPB están matemáticamente especificados. El HRD impone directamente restricciones sobre temporización, tamaños de almacén temporal y velocidades de bits diferentes, e impone indirectamente restricciones sobre características y estadísticas de flujos de bits. Un conjunto completo de parámetros de HRD incluye cinco parámetros básicos: el retardo inicial de eliminación de la CPB, el tamaño de la CPB, la velocidad de transmisión de bits, el retardo inicial de salida de la DPB y el tamaño de la DPB. En la AVC y la HEVC, la conformidad del flujo de bits y la conformidad del descodificador se especifican como partes de la especificación del HRD. Aunque se denomina como un tipo de descodificador, HRD normalmente se necesita en el lado del codificador para garantizar la conformidad del flujo de bits, es decir, la conformidad del flujo de bits generado por el codificador con los requisitos del descodificador, aunque típicamente no es necesario en el lado del descodificador.
[0046] En los modelos de HRD de la AVC y la HEVC, la descodificación o la eliminación de la CPB está basada en unidades de acceso, y se supone que la descodificación de imágenes es instantánea. En aplicaciones prácticas, si un descodificador en conformidad sigue estrictamente los tiempos de descodificación señalados, por ejemplo, en los mensajes de información de mejora complementaria (SEI) de temporización de imágenes, para iniciar la descodificación de unidades de acceso, entonces el momento más temprano posible para emitir una imagen descodificada específica es igual al momento de descodificación de esa imagen específica, más el tiempo necesario para descodificar esa imagen específica. A diferencia de los modelos AVC y HEVC HRD, el tiempo necesario para descodificar una imagen en el mundo real no es igual a cero. Los términos "instantánea" e "instantáneamente" como se usan a lo largo de toda esta divulgación pueden referirse a cualquier duración de tiempo que puede asumirse como instantánea en uno o más modelos de codificación o un aspecto idealizado de uno cualquiera o más modelos de codificación, con el entendimiento de que esto puede variar de ser "instantánea" en un sentido físico o literal. Por ejemplo, para los fines de esta divulgación, una función o proceso puede considerarse nominalmente "instantáneo" si tiene lugar en o dentro de un margen práctico de un tiempo los más temprano posible hipotético o idealizado para la función o proceso a realizar. La sintaxis y nombres de las variables como se usan en el presente documento pueden entenderse en algunos ejemplos de acuerdo con su significado dentro del modelo HEVC.
[0047] Las siguientes descripciones del funcionamiento del descodificador de referencia hipotético (HRD) a modo de ejemplo, el funcionamiento a modo de ejemplo de una memoria intermedia de imágenes codificadas, la temporización a modo de ejemplo de una llegada de flujo de bits, la temporización a modo de ejemplo de la eliminación de la unidad de descodificación, la descodificación a modo de ejemplo de una unidad de descodificación, el funcionamiento a modo de ejemplo de una memoria intermedia de imágenes descodificadas, la eliminación a
5
10
15
20
25
30
35
40
45
50
55
60
65
modo de ejemplo de las imágenes de una memoria intermedia de imágenes descodificadas, la salida de imagen a modo de ejemplo, y el marcado y almacenamiento actuales a modo de ejemplo de imágenes descodificadas se proporcionan para ilustrar ejemplos del codificador de vídeo 20 y/o el descodificador de vídeo 30 que pueden configurarse para almacenar una o más unidades de descodificación de datos de vídeo en una memoria intermedia de imágenes, obtener un tiempo de eliminación de memoria intermedia respectivo para las una o más unidades de descodificación, eliminar las unidades de descodificación de la memoria intermedia de imágenes de acuerdo con el tiempo de eliminación de memoria intermedia obtenido para cada una de las unidades de descodificación, y codificar los datos de vídeo correspondientes a las unidades de descodificación eliminadas, entre otras funciones. Las operaciones pueden definirse o realizarse de manera diferente, en otros ejemplos. De esta manera, el codificador de vídeo 20 y/o el descodificador de vídeo 30 pueden estar configurados para funcionar de acuerdo con los diversos ejemplos de operaciones HRD que se describen a continuación.
[0048] El HRD se puede inicializar en cualquiera de los mensajes de información de mejora complementaria (SEI) del período de almacenamiento en memoria intermedia. Antes de la inicialización, la CPB puede estar vacía. Después de la inicialización, el HRD puede no inicializarse de nuevo por los posteriores mensajes SEI del periodo de almacenamiento en memoria intermedia. La unidad de acceso que se asocia al mensaje SEI del periodo de almacenamiento en memoria intermedia que inicializa la CPB puede denominarse como la unidad de acceso 0. La memoria intermedia de imágenes descodificadas puede contener memorias intermedias de almacenamiento de imágenes. Cada una de las memorias intermedias de almacenamiento de imágenes puede contener una imagen descodificada que se marca como "usada para referencia" o se guarda para una salida futura. Antes de la inicialización, la DPB puede estar vacía.
[0049] El HRD (por ejemplo, el codificador de vídeo 20 y/o descodificador de vídeo 30) puede funcionar de la siguiente manera. Los datos asociados con las unidades de descodificación que fluyen hacia la CPB de acuerdo con un programa de llegada especificado pueden ser entregados por un planificador de flujo hipotético (HSS). En un ejemplo, los datos asociados a cada unidad de descodificación pueden eliminarse y descodificarse instantáneamente por el proceso de descodificación instantánea en los tiempos de eliminación de CPB. Cada imagen descodificada puede colocarse en la DPB. Una imagen descodificada puede eliminarse de la DPB por último en el tiempo de salida de DPB o el momento en que ya no sea necesario para una referencia inter-predicción.
[0050] El HRD se basa en los parámetros de HRD, incluyendo los parámetros de CPB de retardo de eliminación de CPB inicial y desviación de retardo de eliminación de CPB inicial. En algunos casos, los parámetros de HRD pueden determinarse basándose en un tipo de imagen utilizada para inicializar el HRD. En el caso de acceso aleatorio, el HRD puede inicializarse con una imagen de punto de acceso aleatorio (RAP), como una imagen de acceso aleatorio limpio (CRA) o una imagen de acceso de enlace interrumpido (BLA). En algunos casos, las imágenes RAP pueden denominarse de forma alternativa imágenes de punto de acceso intra-aleatorio (IRAP). Por ejemplo, se puede usar un conjunto alternativo de parámetros de CPB cuando el HRD se inicializa con una imagen BLA que no tiene imágenes principales no descodificables asociadas, también denominadas imágenes etiquetadas para descarte (TFD) o imágenes principales omitidas de acceso aleatorio (RASL), en el flujo de bits. De lo contrario, el conjunto predeterminado de parámetros de CPB se usa para el HRD. Si se utiliza un conjunto predeterminado de parámetros de CPB cuando debería haberse seleccionado el conjunto alternativo, la CPB puede desbordarse.
[0051] En algunos ejemplos, una imagen CRA o una imagen BLA dada puede tener asociada imágenes TFD en un flujo de bits original y las imágenes TFD pueden eliminarse del flujo de bits original de un medio externo. Los medios externos pueden comprender un medio de procesamiento incluido en un servidor de transmisión, un elemento de red intermedio u otra entidad de red. Sin embargo, los medios externos pueden ser incapaces de cambiar el tipo señalado de la imagen CRA o la imagen BLA dada para reflejar la eliminación de las imágenes TFD asociadas. En este caso, el conjunto predeterminado de parámetros de CPB se puede seleccionar basándose en el tipo señalado de la imagen CRA o la imagen BLA en el flujo de bits original. Esto puede provocar un desbordamiento de CPB porque las imágenes TFD fueron eliminadas por medios externos de tal manera que la imagen ya no tiene imágenes TFD asociadas y el conjunto alternativo de parámetros de CPB debe usarse para el HRD.
[0052] Esta divulgación describe las técnicas para la selección de los parámetros de CPB utilizados para definir una CPB para el codificador de vídeo 20 y/o descodificador de vídeo 30 para las imágenes CRA o imágenes BLA en un flujo de bits de vídeo. De acuerdo con las técnicas, el descodificador de vídeo 30 recibe un flujo de bits que representa una pluralidad de imágenes que incluyen una o más imágenes CRA o imágenes BLA, y también recibe un mensaje que indica si usar un conjunto alternativo de parámetros de CPB para al menos una de las imágenes CRA o las imágenes BLA. El mensaje puede recibirse desde un medio externo, tal como un medio de procesamiento incluido en un servidor de transmisión, un elemento de red intermedio u otra entidad de red.
[0053] El descodificador de vídeo 30 establece una variable definida para indicar el conjunto de parámetros de CPB para una imagen CRA o una imagen BLA dada basándose en el mensaje recibido. El descodificador de vídeo 30 a continuación selecciona el conjunto de parámetros de CPB para una imagen CRA o una imagen BLA dada basándose en la variable para la imagen. En algunos casos, el descodificador de vídeo 30 puede establecer un tipo de unidad de capa abstracción de red (NAL) para la imagen CRA o la imagen BLA dada, y puede seleccionar el
5
10
15
20
25
30
35
40
45
50
55
60
65
conjunto de parámetros de CPB para la imagen dada basándose en el tipo de unidad NAL y la variable para la imagen.
[0054] El conjunto seleccionado de parámetros de CPB se aplica a una CPB incluida en descodificador de vídeo 30 para asegurar que la CPB no se desbordará durante la descodificación de vídeo. El codificador de vídeo 20 puede configurarse para realizar una operación similar y aplicar el conjunto seleccionado de parámetros de CPB a una CPB incluida en el codificador de vídeo 20 para asegurar que la CPB incluida en el codificador de vídeo 20 no se desborde durante la codificación de vídeo y que la CPB incluida en el descodificador de vídeo 30 no se desborde al recibir un flujo de bits codificado generado por el codificador de vídeo 20.
[0055] La FIG. 2 es un diagrama de bloques que ilustra un codificador de vídeo 20 de ejemplo que puede implementar las técnicas descritas en esta divulgación. El codificador de vídeo 20 puede realizar la intra-codificación y la inter-codificación de bloques de vídeo dentro de fragmentos de vídeo. La intra-codificació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 adyacentes de una secuencia de vídeo. El modo intra (modo I) puede referirse a cualquiera de varios modos de codificación de base espacial. Los modos inter, tales como la predicción unidireccional (modo P) o la bi-predicción (modo B), pueden referirse a cualquiera de varios modos de codificación de base temporal.
[0056] Como se muestra en la FIG. 2, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de una trama de vídeo a codificar. En el ejemplo de la FIG. 2, el codificador de vídeo 20 incluye la unidad de selección de modo 40, sumador 50, unidad de procesamiento de transformación 52, unidad de cuantificación 54, unidad de codificación por entropía 56, memoria intermedia de imágenes descodificadas (DPB) 64 y memoria intermedia de imágenes codificadas (CPB) 66. A su vez, la unidad de selección de modo 40 incluye una unidad de compensación de movimiento 44, una unidad de estimación de movimiento 42, una unidad de procesamiento de intra-predicción 46 y una unidad de división 48. 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 transformación inversa 60 y un sumador 62. También puede incluirse un filtro de desbloqueo (no se muestra en la FIG. 2) para filtrar límites de bloque, para eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de desbloqueo filtrará habitualmente la salida del sumador 62. También pueden usarse filtros adicionales (en bucle o post-bucle), además del filtro de desbloqueo. Dichos filtros no se muestran por razones de brevedad pero, si se desea, pueden filtrar la salida del sumador 50 (tal como un filtro en bucle).
[0057] Durante el proceso de codificación, el codificador de vídeo 20 recibe una trama o un fragmento de vídeo que va a codificarse. La trama o el fragmento pueden estar divididos en múltiples bloques de vídeo. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 llevan a cabo la codificación inter- predictiva del bloque de vídeo recibido con respecto a uno o más bloques en una o más tramas de referencia, para proporcionar la predicción temporal. La unidad de procesamiento de intra-predicción 46, de forma alternativa, puede llevar a cabo la codificación intra-predictiva del bloque de vídeo recibido, con respecto a uno o más bloques contiguos de la misma trama o fragmento que el bloque que va a codificarse, para proporcionar predicción espacial. El codificador de vídeo 20 puede llevar a cabo múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación adecuado para cada bloque de datos de vídeo.
[0058] Además, la unidad de división 48 puede dividir bloques de datos de vídeo en sub-bloques, basándose en la evaluación de los anteriores esquemas de división en las pasadas de codificación anteriores. Por ejemplo, la unidad de división 48 puede dividir inicialmente una trama o un fragmento en varias LCU, y dividir cada una de las LCU en varias sub-CU, basándose en un análisis de distorsión de velocidad (por ejemplo, optimización de distorsión de velocidad). La unidad de selección de modo 40 puede producir además una estructura de datos de árbol cuádruple que indica la división de una LCU en varias sub-CU. Las CU de nodos de hojas del árbol cuádruple pueden incluir una o más PU y una o más TU.
[0059] La unidad de selección de modo 40 puede seleccionar uno de los modos de codificación, intra o inter, por ejemplo, basándose en los resultados de errores, y proporciona el bloque intra-codificado o inter-codificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para su uso como una trama de referencia. La unidad de selección de modo 40 proporciona además elementos sintácticos, tales como vectores de movimiento, indicadores de modo intra, información de división y otra información sintáctica de este tipo, a la unidad de codificación por entropía 56.
[0060] 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 fines 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 de 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 trama de referencia (u otra unidad codificada), con respecto al bloque actual que se está codificando dentro de la trama actual (u otra unidad codificada). Un bloque predictivo es un bloque que se revela como
5
10
15
20
25
30
35
40
45
50
55
60
65
estrechamente coincidente con el bloque a codificar en lo que respecta a la diferencia de píxeles, lo cual puede determinarse mediante la suma de una diferencia absoluta (SAD), una suma de diferencia de cuadrados (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones de píxeles sub-enteras de imágenes de referencia almacenadas en la DPB 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 de píxel fraccionarias de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento en relación con las posiciones de píxeles completas y las posiciones de píxeles fraccionarias, y generar un vector de movimiento con una precisión de píxel fraccionaria.
[0061] La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de vídeo en un fragmento inter-codificado, comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse a partir de una primera lista de imágenes de referencia (Lista 0) o 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 la DPB 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44.
[0062] La compensación de movimiento, llevada a cabo por la unidad de compensación de movimiento 44, puede implicar capturar o generar el bloque predictivo basándose en el vector de movimiento determinado por la unidad de estimación de movimiento 42. De nuevo, la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden integrarse funcionalmente, en algunos ejemplos. 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 sumador 50 forma un bloque de vídeo residual restando los valores de píxel del bloque predictivo a los valores de píxel del bloque de vídeo actual que se está codificando, generando valores de diferencia de píxel, como se analiza posteriormente. En general, la unidad de estimación de movimiento 42 lleva a cabo la estimación de movimiento con respecto a los componentes de luma, y la unidad de compensación de movimiento 44 utiliza los vectores de movimiento calculados basándose en los componentes de luma, tanto para los componentes de croma como para los componentes de luma. La unidad de selección de modo 40 también puede generar elementos sintácticos asociados con los bloques de vídeo y el fragmento de vídeo para su uso por el descodificador de vídeo 30 para descodificar los bloques de vídeo del fragmento de vídeo.
[0063] La unidad de procesamiento de intra-predicción 46 puede intra-predecir un bloque actual, de forma alternativa a la inter-predicción llevada a cabo por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se ha descrito anteriormente. En particular, la unidad de procesamiento de intra-predicción 46 puede determinar un modo de intra-predicción a usar para codificar un bloque actual. En algunos ejemplos, la unidad de procesamiento de intra-predicción 46 puede codificar un bloque actual usando varios modos de intra-predicción, por ejemplo, durante diferentes pases de codificación, y la unidad de procesamiento de intra-predicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo adecuado de intra-predicción para utilizar a partir de los modos probados.
[0064] Por ejemplo, la unidad de procesamiento de intra-predicción 46 puede calcular valores de distorsión de velocidad usando un análisis de distorsión de velocidad para los diversos modos de intra-predicción probados, y seleccionar el modo de intra-predicción que tenga las mejores características de distorsión de velocidad entre los modos probados. El análisis de distorsión de velocidad determina en general una magnitud de distorsión (o de errores) entre un bloque codificado y un bloque original, no codificado, que se codificó para generar el bloque codificado, así como una velocidad binaria (es decir, un número de bits) usada para generar el bloque codificado. La unidad de procesamiento de intra-predicción 46 puede calcular razones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar qué modo de intra-predicción presenta el mejor valor de distorsión de velocidad para el bloque.
[0065] Después de seleccionar un modo de intra-predicción para un bloque, la unidad de procesamiento de intra- predicción 46 puede proporcionar información, indicativa del modo de intra-predicción seleccionado para el bloque, a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información indicando el modo de intra-predicción seleccionado. El codificador de vídeo 20 puede incluir datos de configuración en el flujo de bits transmitido, que pueden incluir una pluralidad de tablas de índices de modos de intra-predicción y una pluralidad de tablas de índices de modos de intra-predicción modificadas (también denominadas tablas de asignación de palabras de código), definiciones de contextos de codificación para varios bloques e indicaciones del modo de intra-predicción más probable, una tabla de índices de modos de intra-predicción y una tabla de índices de modos de intra-predicción modificadas a utilizar para cada uno de los contextos.
[0066] El codificador de vídeo 20 forma un bloque de vídeo residual restando los datos de predicción, de la unidad de selección de modo 40, del bloque de vídeo original que está codificado. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad de procesamiento de transformación 52 aplica una transformación, tal como una transformación discreta del coseno (DCT) o una transformación conceptualmente similar, al bloque residual, generando un bloque de vídeo que comprende valores residuales de coeficientes de
5
10
15
20
25
30
35
40
45
50
55
60
65
transformación. La unidad de procesamiento de transformación 52 puede llevar a cabo otras transformaciones que son conceptualmente similares a la DCT. También podrían usarse transformaciones de ondículas, transformaciones de enteros, transformaciones de subbandas u otros tipos de transformaciones. En cualquier caso, la unidad de procesamiento de transformación 52 aplica la transformación al bloque residual, generando un bloque de coeficientes de transformación residuales. La transformación puede convertir la información residual desde un dominio de valores de píxel a un dominio de transformaciones, tal como un dominio de frecuencia. La unidad de procesamiento de transformación 52 puede enviar los coeficientes de transformación resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformación para reducir adicionalmente la velocidad binaria. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o la totalidad de los coeficientes. El grado de cuantificación puede modificarse 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 transformación cuantificados. De forma alternativa, la unidad de codificación por entropía 56 puede llevar a cabo la exploración.
[0067] Tras la cuantificación, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de transformación cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede llevar a cabo la codificación de longitud variable adaptable al contexto (CAVLC), la codificación aritmética binaria adaptable al contexto (CABAC), la codificación aritmética binaria adaptable al contexto y basada en sintaxis (SBAC), la codificación por entropía mediante la división en intervalos de probabilidades (PIPE) u otra técnica de codificación por entropía. En el caso de la codificación por entropía basada en el contexto, el contexto puede basarse en bloques contiguos. Tras la codificación por entropía de la unidad de codificación por entropía 56, el flujo de bits codificado puede almacenarse temporalmente o almacenarse más o menos temporalmente en la CPB 66, transmitirse a otro dispositivo (por ejemplo, descodificador de vídeo 30) o archivarse para su posterior transmisión o recuperación.
[0068] La unidad de cuantificación inversa 58 y la unidad de procesamiento de transformación inversa 60 aplican la cuantificación inversa y la transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio del píxel, por ejemplo, para su posterior uso como bloque 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 tramas de la DPB 64. 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 fraccionarios para su uso en la estimación de movimiento. El sumador 62 agrega el bloque residual reconstruido al bloque de predicción de movimiento compensado por movimiento producido por la unidad de compensación de movimiento 44 para producir un bloque de vídeo reconstruido para almacenamiento en la DPB 64. El bloque de vídeo reconstruido puede utilizarse por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para inter-codificar un bloque en una trama de vídeo siguiente.
[0069] La DPB 64 puede ser o puede estar incluida en un dispositivo de almacenamiento de datos, como cualquier memoria permanente o volátil capaz de almacenar datos, como una memoria de acceso aleatorio dinámica síncrona (SDRAM), una memoria de acceso aleatorio dinámica incorporada (eDRAM) o una memoria estática de acceso aleatorio (SRAM). La DPB 64 puede funcionar de acuerdo con cualquier combinación de comportamientos de ejemplo de memoria intermedia de imágenes codificadas y/o memoria intermedia de imágenes descodificadas descritos en esta divulgación. Por ejemplo, el codificador de vídeo 20 puede configurarse para funcionar de acuerdo con un descodificador de referencia hipotético (HRD). En este caso, la DPB 64 incluida en el codificador de vídeo 20 puede definirse mediante los parámetros de HRD, que incluyen los parámetros de CPB y los parámetros de DPB, de acuerdo con un modelo de almacenamiento en memoria intermedia del HRD.
[0070] Del mismo modo, la CPB 66 puede ser o puede estar incluida en un dispositivo de almacenamiento de datos tal como cualquier memoria permanente o volátil capaz de almacenar datos, como la memoria de acceso aleatorio dinámica síncrona (SDRAM), memoria dinámica de acceso aleatorio dinámica incorporada (eDRAM), o memoria de acceso aleatorio estática (SRAM). Aunque se muestra que forma parte del codificador de vídeo 20, en algunos ejemplos, la CPB 66 puede formar parte de un dispositivo, unidad o módulo externo al codificador de vídeo 20. Por ejemplo, la CPB 66 puede formar parte de una unidad de planificador de flujo, por ejemplo, un planificador de entrega o un planificador de flujo hipotético (HSS) externo al codificador de vídeo 20. En el caso en que el codificador de vídeo 20 está configurado para funcionar según un HRD, la CPB 66 incluida en el codificador de vídeo 20 puede definirse mediante parámetros de HRD, incluidos los parámetros de CPB de retardo y desviación de eliminación de CPB inicial, de acuerdo con un modelo de almacenamiento en memoria intermedia del HRD.
[0071] De acuerdo con las técnicas de esta divulgación, el codificador de vídeo 20 puede aplicar ya sea un conjunto predeterminado o un conjunto alternativo de parámetros de CPB a la CPB 66 para asegurar que la CPB 66 no se desborde durante la codificación de los datos de vídeo, y que una CPB incluida en el descodificador de vídeo 30 no se desborde al recibir un flujo de bits codificado generado por el codificador de vídeo 20. Si se usa el conjunto predeterminado cuando se debería haber seleccionado el conjunto alternativo, la CPB 66 se incluye en el codificador de vídeo 20 o la CPB incluida en el descodificador de vídeo 30 puede desbordarse. La selección de los parámetros de CPB apropiados es principalmente un problema cuando se utiliza una imagen de punto de acceso aleatorio (RAP), como una imagen de acceso aleatorio limpio (CRA) o una imagen de acceso de enlace interrumpido (BLA),
5
10
15
20
25
30
35
40
45
50
55
60
65
para inicializar el HRD. Las técnicas, por lo tanto, pueden proporcionar un mejor soporte de imágenes RAP en codificación de vídeo.
[0072] El codificador de vídeo 20 puede configurarse para recibir un flujo de bits que representa una pluralidad de imágenes que incluye una o más imágenes CRA o imágenes BLA, y también recibe un mensaje que indica si usar un conjunto alternativo de parámetros de CPB para al menos una de las imágenes CRA o las imágenes BLA. En algunos casos, el flujo de bits puede recibirse en una parte de descodificación del codificador de vídeo 20, es decir, la unidad de cuantificación inversa 58 y la unidad de procesamiento de transformación inversa 60, directamente desde una parte de codificación del codificador de vídeo 20, por ejemplo, la unidad de codificación por entropía 56 o CPB 66. El mensaje puede recibirse desde un medio externo, tal como un medio de procesamiento incluido en un servidor de transmisión, un elemento de red intermedio u otra entidad de red.
[0073] El codificador de vídeo 20 establece una variable definida para indicar el conjunto de parámetros de CPB para una imagen CRA o una imagen BLA dada basándose en el mensaje recibido. El codificador de vídeo 20 a continuación selecciona el conjunto de parámetros de CPB para la imagen CRA o la imagen BLA dada basándose en la variable para la imagen. El codificador de vídeo 20 aplica el conjunto seleccionado de parámetros de CPB a CPB 66 incluido en el codificador de vídeo 20 para asegurar que la CPB 66 no se desborde durante la codificación de vídeo, y para asegurar que una CPB incluida en el descodificador de vídeo 30 no se desborde al recibir un flujo de bits codificado generado por codificador de vídeo 20. En algunos casos, el codificador de vídeo 20 puede establecer un tipo de unidad de capa de abstracción de red (NAL) para la imagen CRA o la imagen BLA dada, y puede seleccionar el conjunto de parámetros de CPB para la imagen dada basándose en el tipo de unidad NAL y la variable para la imagen. El proceso de selección de parámetros de CPB para imágenes RAP se describe con más detalle con respecto al descodificador de vídeo 30 de la FIG. 3.
[0074] La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de descodificador de vídeo 30 que puede implementar las técnicas descritas en esta divulgación. En el ejemplo de la FIG. 3, el descodificador de vídeo 30 incluye una unidad de descodificación por entropía 70, una unidad de procesamiento de predicción 71 que incluye la unidad de compensación de movimiento 72 y una unidad de procesamiento de intra-predicción 74, una unidad de cuantificación inversa 76, una unidad de procesamiento de transformación inversa 78, un sumador 80, una memoria intermedia de imágenes codificadas (CPB) 68, y un descodificador de imágenes descodificadas (DPB) 82. En algunos ejemplos, el descodificador de vídeo 30 puede realizar un pase de descodificación en general recíproca al pase de codificación descrito con respecto al codificador de vídeo 20 de la FIG. 2.
[0075] Durante el proceso de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo codificado, que representa los bloques de vídeo de un fragmento de vídeo codificado y elementos sintácticos asociados, desde el codificador de vídeo 20. El descodificador de vídeo 30 puede recibir el flujo de bits de vídeo codificados desde una entidad de red 29. La entidad de red 29 puede ser, por ejemplo, ser un servidor de transmisión, un elemento de red compatible con medios (MANE), un editor/empalmador de vídeo, un elemento de red intermedio u otro dispositivo configurado para implementar una o más de las técnicas descritas anteriormente. La entidad de red 29 puede incluir un medio externo configurado para realizar las técnicas de esta divulgación. Como se describió anteriormente, algunas de las técnicas descritas en esta divulgación pueden ser implementadas por la entidad de red 29 antes de que la entidad de red 29 transmita el flujo de bits de vídeo codificado 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 ser partes de dispositivos separados, mientras que en otros casos, la funcionalidad descrita con respecto a la entidad de red 29 puede ser realizada por el mismo dispositivo que comprende el descodificador de vídeo 30.
[0076] Antes de la descodificación por entropía mediante la unidad de descodificación por entropía 70, el flujo de bits se puede almacenar en memoria intermedia o almacenarse más o menos temporalmente en la CPB 68. La unidad de descodificación por entropía 70 del descodificador de vídeo 30 a continuación descodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intra-predicción y otros elementos sintácticos. La unidad de descodificación por entropía 70 remite los vectores de movimiento y otros elementos sintácticos a la unidad de compensación de movimiento 72. El descodificador de vídeo 30 puede recibir los elementos sintácticos en el nivel del fragmento de vídeo y/o el nivel del bloque de vídeo.
[0077] Cuando el fragmento de vídeo se codifica como un fragmento intra-codificado (I), la unidad de procesamiento de intra-predicción 74 puede generar datos de predicción para un bloque de vídeo del fragmento de vídeo actual, basándose en un modo de intra-predicción señalado, y datos de bloques previamente descodificados de la trama o imagen actual. Cuando la trama de vídeo se codifica como un fragmento inter-codificado (es decir, B o P), la unidad de compensación de movimiento 72 genera bloques predictivos para un bloque de vídeo del fragmento de vídeo actual basándose en los vectores de movimiento y en otros elementos sintácticos recibidos de la unidad de descodificación por entropía 70. Los bloques predictivos pueden generarse 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, la Lista 0 y la Lista 1, usando técnicas de construcción por omisión, basándose en las imágenes de referencia almacenadas en la DPB 82.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0078] La unidad de compensación de movimiento 72 determina la información de predicción para un bloque de vídeo del fragmento de vídeo actual, analizando los vectores de movimiento y otros elementos sintácticos, y usa la información de predicción para generar los bloques predictivos del bloque de vídeo actual que está siendo descodificado. Por ejemplo, la unidad de compensación de movimiento 72 usa algunos de los elementos sintácticos recibidos para determinar un modo de predicción (por ejemplo, intra-predicción o inter-predicción), usada para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de inter-predicción (por ejemplo, fragmento B o fragmento P), información de construcción para una o más de las listas de imágenes de referencia del fragmento, vectores de movimiento para cada bloque de vídeo inter-codificado del fragmento, el estado de interpredicción para cada bloque de vídeo inter-codificado del fragmento y otra información, para descodificar los bloques de vídeo en el fragmento de vídeo actual.
[0079] La unidad de compensación de movimiento 72 también puede realizar la interpolación basándose en filtros de interpolación. La unidad de compensación de movimiento 72 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 fraccionarios de bloques de referencia. En este caso, la unidad de compensación de movimiento 72 puede determinar los filtros de interpolación utilizados por el codificador de vídeo 20 a partir de los elementos sintácticos recibidos y utilizar los filtros de interpolación para generar bloques predictivos.
[0080] La unidad de cuantificación inversa 76 cuantifica de manera inversa, es decir, descuantifica, los coeficientes de transformación cuantificados, proporcionados en el flujo de bits y descodificados por la unidad de descodificación por entropía 70. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QPy, calculado por el descodificador de vídeo 30 para cada bloque de vídeo en el fragmento de vídeo para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa que debería aplicarse. La unidad de procesamiento de transformación inversa 78 aplica una transformación inversa, por ejemplo una DCT inversa, una transformación inversa entera o un proceso de transformación inversa conceptualmente similar, a los coeficientes de transformación, con el fin de generar bloques residuales en el dominio de píxeles.
[0081] Después de que la unidad de compensación de movimiento 72 genera el bloque predictivo para el bloque de vídeo actual, basándose en los vectores de movimiento y otros elementos sintácticos, el descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales procedentes de la unidad de transformación inversa 78 a los correspondientes bloques predictivos generados por la unidad de compensación de movimiento 72. El sumador 90 representa el componente o los componentes que llevan a cabo esta operación de suma. Si se desea, también puede aplicarse un filtro de desbloqueo para filtrar los bloques descodificados con el fin de eliminar distorsiones de efecto pixelado. También pueden utilizarse otros filtros de bucle (ya sea en el bucle de codificación o después del bucle de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad del vídeo. Los bloques de vídeo descodificados en una trama o imagen dada son a continuación almacenados en la DPB 82, que almacena imágenes de referencia usadas para la posterior compensación de movimiento. La DPB 82 almacena también vídeo descodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la FIG. 1.
[0082] La DPB 82 puede ser o puede estar incluida en un dispositivo de almacenamiento de datos, como cualquier memoria permanente o volátil capaz de almacenar datos, como una memoria de acceso aleatorio dinámica síncrona (SDRAM), una memoria de acceso aleatorio dinámica incorporada (eDRAM) o una memoria estática de acceso aleatorio (SRAM). La DPB 82 puede funcionar de acuerdo con cualquier combinación de comportamientos de ejemplo de memoria intermedia de imágenes codificadas y/o memoria intermedia de imágenes descodificadas descritos en esta divulgación. Por ejemplo, el descodificador de vídeo 30 puede configurarse para funcionar de acuerdo con un descodificador de referencia hipotético (HRD). En este caso, el descodificador de vídeo 30 puede descodificar los parámetros de HRD, incluidos los parámetros de CPB y los parámetros de DPB, usados para definir DPB 82 de acuerdo con un modelo de almacenamiento en memoria intermedia del HRD.
[0083] Del mismo modo, la CPB 68 puede ser o puede estar incluida en un dispositivo de almacenamiento de datos tal como cualquier memoria permanente o volátil capaz de almacenar datos, como la memoria de acceso aleatorio dinámica síncrona (SDRAM), memoria dinámica de acceso aleatorio dinámica incorporada (eDRAM), o memoria de acceso aleatorio estática (SRAM). Aunque se muestra que forma parte del descodificador de vídeo 30, en algunos ejemplos, la CPB 68 puede formar parte de un dispositivo, unidad o módulo externo al descodificador de vídeo 30. Por ejemplo, la CPB 68 puede formar parte de una unidad de planificación de flujo, por ejemplo, un planificador de entrega o un planificador de flujo hipotético (HSS) externo al descodificador de vídeo 30. En el caso en que el descodificador de vídeo 30 está configurado para funcionar de acuerdo con un HRD, el descodificador de vídeo 30 puede descodificar los parámetros de HRD, incluyendo los parámetros de CPB del retardo y desviación inicial de la CPB, usados para definir la CPB 68 de acuerdo con un modelo de memoria intermedia del HRD.
[0084] De acuerdo con las técnicas esta divulgación, el descodificador de vídeo 30 puede aplicar ya sea un conjunto predeterminado o un conjunto alternativo de parámetros de la CPB a la CPB 68 para asegurar que la CPB 68 no se desborde durante la descodificación de los datos de vídeo. Si el conjunto predeterminado se usa cuando debería haberse seleccionado el conjunto alternativo, la CPB 68, incluido un descodificador de vídeo 30 configurado para funcionar de acuerdo con el HRD, puede desbordarse. La selección de los parámetros de CPB apropiados es
5
10
15
20
25
30
35
40
45
50
55
60
65
principalmente un problema cuando se utiliza una imagen de punto de acceso aleatorio (RAP), como una imagen de acceso aleatorio limpio (CRA) o una imagen de acceso de enlace interrumpido (BLA), para inicializar el HRD. Las técnicas, por lo tanto, pueden proporcionar un mejor soporte de imágenes RAP en codificación de vídeo.
[0085] El descodificador de vídeo 30 recibe un flujo de bits que representa una pluralidad de imágenes que incluyen una o más imágenes CRA o imágenes BLA, y también recibe un mensaje que indica si usar un conjunto alternativo de parámetros de CPB para al menos una de las imágenes CRA o imágenes BLA. El mensaje puede recibirse desde la entidad de red 29 u otro medio externo, tal como un medio de procesamiento incluido en un servidor de transmisión o un elemento de red intermedio.
[0086] El descodificador de vídeo 30 establece una variable definida para indicar el conjunto de parámetros de CPB para una imagen CRA o una imagen BLA dada basándose en el mensaje recibido. El dispositivo de codificación de vídeo a continuación selecciona el conjunto de parámetros de CPB para la imagen CRA o la imagen BLA dada basándose en la variable para la imagen. El descodificador de vídeo 30 aplica el conjunto seleccionado de parámetros de CPB a CPB 68 para asegurar que la CPB 68 no se desborde durante la descodificación de vídeo. En algunos casos, el descodificador de vídeo 30 puede establecer un tipo de unidad de capa de abstracción de red (NAL) para la imagen CRA o la imagen BLA dada. El descodificador de vídeo 30 puede establecer el tipo de unidad NAL para la imagen como se señala, o puede establecer el tipo de unidad NAL basándose en la variable para la imagen. El descodificador de vídeo 30 puede a continuación seleccionar el conjunto de parámetros de CPB para la imagen dada basándose en el tipo de unidad NAL y la variable para la imagen.
[0087] En general, esta divulgación describe técnicas para proporcionar un soporte mejorado de imágenes RAP, incluyendo procedimientos mejorados de selección de los parámetros de HRD para imágenes RAP, y el manejo de una imagen CRA como una imagen BLA. Como se ha descrito anteriormente, entre las normas de codificación de vídeo se incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones de codificación de vídeo ajustable a escala (SVC) y de codificación de vídeo multivista (MVC). Además, existe una nueva norma de codificación de vídeo, concretamente la Codificación de Vídeo de Alta Eficiencia (HEVC) que está siendo desarrollada por el Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de ITU-T y el Grupo de Expertos en Imágenes en Movimiento (MPEG) de ISO/IEC. Un borrador de trabajo (WD) reciente de hEvC (en lo sucesivo denominado HEVC WD8) se describe en el documento JCTVC-J1003_d7, Bross et al., "Borrador 8 de memoria descriptiva textual de codificación de vídeo de alta eficiencia (HEVC)", Equipo de colaboración conjunta sobre codificación de vídeo (JCT- VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 10.a reunión: Estocolmo, Suecia, 11-20 de julio de 2012, que, a partir del 20 de septiembre de 2012, está disponible en
http://phenix.intevry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip.
[0088] El acceso aleatorio se refiere a una descodificación de un flujo de bits de vídeo a partir de una imagen codificada que no es la primera imagen codificada en el flujo de bits. Se necesita acceso aleatorio a un flujo de bits en muchas aplicaciones de vídeo, como radiodifusión y transmisión, por ejemplo, para que los usuarios sintonicen un programa en cualquier momento, para alternar entre diferentes canales, para saltar a partes específicas del vídeo o para cambiar a un flujo de bits diferente para la adaptación de flujo de la velocidad de transmisión de bits, velocidad de tramas, resolución espacial y similares. Esta característica se habilita insertando imágenes de acceso aleatorio o puntos de acceso aleatorios muchas veces en intervalos regulares, en el flujo de bits de vídeo.
[0089] El acoplamiento de flujo de bits se refiere a la concatenación de dos o más flujos de bits o partes de los mismos. Por ejemplo, un primer flujo de bits puede ser anexado por un segundo flujo de bits, posiblemente con algunas modificaciones a uno o ambos flujos de bits para generar un flujo de bits empalmado. La primera imagen codificada en el segundo flujo de bits también se conoce como el punto de empalme. Por lo tanto, las imágenes después del punto de empalme en el flujo de bits empalmado se originaron a partir del segundo flujo de bits, mientras que las imágenes anteriores al punto de empalme en el flujo de bits empalmado se originaron a partir del primer flujo de bits.
[0090] El empalme de flujos de bits se realiza mediante empalmadores de flujos de bits. Los empalmadores de flujos de bits suelen ser ligeros y mucho menos inteligentes que los codificadores. Por ejemplo, pueden no estar equipados con capacidades de codificación y descodificación por entropía. La conmutación de flujo de bits se puede usar en entornos de transmisión adaptable. Una operación de conmutación de flujo de bits a una imagen determinada en el flujo de bits conmutado es efectivamente una operación de empalme de flujo de bits en la que el punto de empalme es el punto de conmutación de flujo de bits, es decir, la primera imagen del flujo de bits conmutado.
[0091] Las imágenes de actualización de descodificación instantánea (IDR) tal como se especifica en AVC o HEVC se pueden usar para acceso aleatorio. Sin embargo, dado que las imágenes que siguen una imagen IDR en orden de descodificación no pueden usar imágenes descodificadas antes de la imagen IDR como referencia, los flujos de bits que dependen de imágenes IDR para acceso aleatorio pueden tener una eficiencia de codificación significativamente menor. Para mejorar la eficiencia de codificación, el concepto de imágenes de acceso aleatorio
5
10
15
20
25
30
35
40
45
50
55
60
65
limpio (CRA) se introdujo en HEVC para permitir a imágenes que siguen a una imagen CRA en orden de descodificación, pero la preceden en orden de salida usar imágenes descodificadas antes de la imagen CRA como imágenes de referencia.
[0092] Las imágenes que siguen a una imagen CRA en orden de descodificación, pero preceden a la imagen CRA en orden de salida, se denominan imágenes principales asociadas con la imagen CRA o imágenes principales de la imagen CRA. Las imágenes principales de una imagen CRA se pueden descodificar correctamente si la descodificación comienza desde una imagen IDR o CRA antes de la imagen CRA actual. Las imágenes principales de una imagen CRA pueden no ser descodificables cuando se produce un acceso aleatorio desde la imagen CRA actual. Las imágenes principales, por lo tanto, típicamente se descartan durante la descodificación de acceso aleatorio. Para evitar la propagación de errores de imágenes de referencia que pueden no estar disponibles dependiendo de dónde se inicia la descodificación, todas las imágenes que siguen a una imagen CRA tanto en orden de descodificación como en orden de salida no deben usar ninguna imagen que preceda a la imagen CRA en orden de descodificación u orden de salida, lo cual incluye las imágenes principales, como imágenes de referencia.
[0093] El concepto de imágenes de acceso de enlace interrumpido (BLA) se introdujo aún más en HEVC después de la introducción de las imágenes CRA y se basa en el concepto de imágenes CRA. Una imagen BLA se origina típicamente a partir de un empalme de flujo de bits en la posición de una imagen CRA y, en el flujo de bits empalmado, la imagen CRA del punto de empalme se cambia a una imagen BLA. Las imágenes IDR, las imágenes CRA y las imágenes BLA se denominan colectivamente imágenes de puntos de acceso aleatorio (RAP) o imágenes de puntos de acceso intra-aleatorio (IRAP).
[0094] A continuación se indica un análisis de las principales diferencias entre las imágenes BLA y las imágenes CRA. Para una imagen CRA, las imágenes principales asociadas se pueden descodificar correctamente si la descodificación comienza desde una imagen RAP antes de la imagen CRA en orden de descodificación, y pueden descodificarse no correctamente cuando se produce un acceso aleatorio desde la imagen CRA (es decir, cuando comienza la descodificación desde la imagen CRA, o en otras palabras, cuando la imagen CRA es la primera imagen en el flujo de bits). Para una imagen BLA, las imágenes principales asociadas pueden ser no descodificables en todos los casos, incluso cuando la descodificación comienza desde una imagen RAP antes de la imagen BLA en orden de descodificación.
[0095] Para una imagen CRA o BLA particular, algunas de las imágenes principales asociadas son correctamente descodificables incluso cuando la imagen CRA o BLA es la primera imagen en el flujo de bits. Estas imágenes principales se denominan imágenes principales descodificables (DLP) y otras imágenes principales se denominan imágenes principales no descodificables (NLP). En algunos casos, los DLP pueden denominarse de forma alternativa imágenes de principales descodificables de acceso aleatorio (RADL). Los NLP se denominan imágenes etiquetadas para descarte (TFD) en HEVC WD8. En otros casos, las NLP pueden denominarse, de forma alternativa, imágenes principales omitidas de acceso aleatorio (RASL). Para los fines de esta divulgación, los términos "imágenes principales no descodificables", "imágenes TFD" e "imágenes RASL" pueden usarse indistintamente.
[0096] En HEVC WD8, el descodificador de referencia hipotético (HRD) se especifica en el anexo C. El HRD se basa en los parámetros de HRD, que pueden proporcionarse en el flujo de bits en la estructura sintáctica hrd_parameters() incluida en el conjunto de parámetros de vídeo (VPS) y/o el conjunto de parámetros de secuencia (SPS), los mensajes de información de mejora suplementaria (SEI) del período de memoria intermedia y el mensaje SEI de temporización de imagen. El mensaje SEI de período de almacenamiento en memoria intermedia incluye principalmente parámetros de CPB, a saber, retardos de eliminación de memoria de intermedia de imágenes codificadas (CPB) iniciales y desviaciones de retardo de eliminación de CPB iniciales. Se pueden proporcionar dos conjuntos de parámetros de CPB, a los que se hace referencia como conjunto predeterminado señalado por los elementos sintácticos initial_cpb_removal_delay[] e initial_cpb_removal_delay_offset[], y el conjunto alternativo, señalado por los elementos sintácticos initial_alt_cpb_removal_delay[] e initial_alt_cpb_removal_delay_offset[].
[0097] Cuando sub_pic_cpb_params_present_flag es igual a 0, y rap_cpb_params_present_flag es igual a 1, se aplica lo siguiente. El descodificador de vídeo 30 usa el conjunto alternativo de parámetros de CPB para definir la CPB 68 cuando el HRD se inicializa con una imagen BLA que no tiene imágenes TFD asociadas en el flujo de bits. Una imagen BLA que no tiene imágenes principales no descodificables asociadas tiene un nal_unit_type que indica una imagen BLA con imágenes principales descodificables, por ejemplo, BLA_W_DLP, o indica una imagen BLA sin imágenes principales, por ejemplo, BLA_N_LP. Si, en cambio, se utiliza el conjunto predeterminado, la CPB puede desbordarse. Cuando el HRD se inicializa con una imagen CRA o una imagen BLA que tiene imágenes TFD asociadas, el descodificador de vídeo 30 usa el conjunto predeterminado de parámetros de CPB para definir la CPB 68. Una imagen BLA que tiene imágenes TFD asociadas tiene un nal_unit_type que indica una imagen BLA con imágenes principales no descodificables, por ejemplo, BLA_W_TFD. Esto se refleja en el siguiente texto en la subcláusula C.2.1 de HEVC WD8:
[0098] Las variables InitCpbRemovalDelay[SchedSelIdx] e
5
10
15
20
25
30
35
40
45
50
55
60
65
InitCpbRemovalDelayOffset[SchedSelIdx] se establecen de la siguiente manera.
- Si cualquiera de las siguientes condiciones es verdadera, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] se establecen en los valores de la correspondiente initial_alt_cpb_removal_delay[SchedSelIdx] e initial_alt_cpb_removal_delay_offset[SchedSelIdx], respectivamente, del mensaje SEI del período de almacenamiento en memoria intermedia asociado:
- La unidad de acceso 0 es una unidad de acceso BLA para la cual la imagen codificada tiene nal_unit_type igual a BLA_W_DLP o BLA_N_LP, y el valor de rap_cpb_params_present_flag del mensaje SEI de período de almacenamiento en memoria intermedia asociado es igual a 1;
- SubPicCpbFlag es igual a 1.
- De lo contrario, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] se establecen en los valores del initial_cpb_removal_delay[SchedSelIdx] e initial_cpb_removal_delay_offset[SchedSelIdx], del mensaje SEI del período de almacenamiento en memoria intermedia asociado.
Como se puede ver desde arriba, la selección de qué conjunto de parámetros de CPB usar determinada puede basarse en el valor de nal_unit_type de la imagen.
[0099] HEVC WD8 también incluye el siguiente texto en la subcláusula 8.1 para el manejo de como una imagen BLA.
[0100] Cuando la imagen actual es una imagen CRA, se aplica lo siguiente.
- Si hay medios externos no especificados en esta memoria intermedia disponibles para establecer la variable HandleCraAsBlaFlag a un valor, HandleCraAsBlaFlag se establece en el valor proporcionado por los medios externos.
- De lo contrario, el valor de HandleCraAsBlaFlag se establece en 0.
[0101] Cuando HandleCraAsBlaFlag es igual a 1, se aplica lo siguiente durante los procesos de análisis y descodificación para cada unidad NAL de fragmento codificado:
- El valor de nal_unit_type está establecido en BLA_W_TFD.
- El valor de no_output_of_prior_pics_flag está establecido en 1.
En HEVC WD8, una imagen CRA tiene nal_unit_type igual a CRA_NUT en la cabecera de la unidad NAL de sus fragmentos codificados, y puede tener imágenes TFD e imágenes DLP asociadas.
[0102] Los siguientes problemas están asociados con los procedimientos existentes para la selección de parámetros de CPB para imágenes CRA, imágenes BLA e imágenes CRA manejadas como imágenes BLA. El primer problema está relacionado con la selección de parámetros de CPB para imágenes CRA y BLA. Las imágenes CRA pueden tener imágenes TFD asociadas. Cuando una imagen CRA tiene imágenes TFD asociadas en el flujo de bits original, pero las imágenes TFD asociadas son descartadas por un servidor de transmisión o un elemento de red intermedio, para permitir la selección del conjunto apropiado de parámetros de CPB, es decir, el conjunto alternativo, la entidad de red 29 u otro medio externo debe cambiar la imagen CRA a una imagen BLA antes de enviarla al descodificador de vídeo 30. Sin embargo, la entidad de red 29 puede no ser capaz de hacer esto. En tales situaciones, la selección del conjunto apropiado de desviación y retardo de eliminación de CPB inicial no puede ser exitosa, lo cual puede ocasionar un desbordamiento de la CPB 68 o no se pueden descartar las imágenes TFD, lo cual da como resultado un desperdicio de ancho de banda o baja calidad de vídeo.
[0103] El segundo problema está asociado con el manejo de una imagen CRA como una imagen BLA. Las imágenes CRA pueden tener imágenes TFD asociadas. Cuando una imagen CRA tiene imágenes TFD asociadas en el flujo de bits original, pero las imágenes TFD asociadas son descartadas por la entidad de red 29 u otro medio externo, tal como un medio de procesamiento incluido en el servidor de transmisión o un elemento de red intermedio, el medio externo indica manejar la imagen CRA como una imagen BLA. Como se especifica en HEVC WD8, el descodificador de vídeo 30 a continuación establece el valor de un nal_unit_type para indicar una imagen BLA con imágenes principales no descodificables, por ejemplo, BLA_W_TFD, lo cual da como resultado el uso del conjunto predeterminado de parámetros de CPB y consecuentemente la CPB 68 puede desbordarse.
[0104] Las técnicas de esta divulgación proporcionan comportamientos de imagen RAP mejorados capaces de eliminar o evitar los problemas descritos anteriormente. De acuerdo con las técnicas, se definen variables y los
correspondiente
respectivamente,
para una imagen
una imagen CRA
5
10
15
20
25
30
35
40
45
50
55
60
valores de las variables pueden establecerse mediante la entidad de red 29 u otro medio externo, como un medio de procesamiento incluido en el servidor de transmisión, el elemento de red intermedio u otra entidad de red, fuera del alcance de la especificación de codificación de vídeo. En un ejemplo, una variable puede especificar si se usa un conjunto alternativo de parámetros de CPB, y qué tipo de unidad NAL se usa cuando una imagen CRA se maneja como una imagen BLA. En otro ejemplo, una variable puede especificar el valor de tipo de unidad NAL que se utilizará para una imagen particular, de la cual puede obtenerse si se usa el conjunto predeterminado o alternativo de parámetros de CPB.
[0105] En las siguientes secciones, las técnicas mencionadas anteriormente se describen con mayor detalle. Los subrayados pueden indicar adiciones relacionadas con HEVC WD8 y pueden indicar eliminaciones relacionadas con HEVC WD8.
[0106] En un ejemplo, el descodificador de vídeo 30 recibe un flujo de bits que representa una pluralidad de imágenes que incluye una o más imágenes CRA o imágenes BLA. El descodificador de vídeo 30 también recibe un mensaje de la entidad de red 29 que indica si se usa un conjunto alternativo de parámetros de CPB para al menos una de las imágenes CRA o las imágenes BLA. El descodificador de vídeo 30 establece una variable definida para indicar el conjunto de parámetros de CPB para una imagen CRA o imagen BLA dada basándose en el mensaje recibido. El descodificador de vídeo 30 a continuación selecciona el conjunto de parámetros de CPB para una imagen CRA o una imagen BLA dada basándose en la variable para la imagen.
[0107] De acuerdo con este ejemplo, puede definirse una variable UseAltCpbParamsFlag para cada imagen BLA o CRA. El valor de esta variable lo establece la entidad de red 29 o algún otro medio externo a 0 o 1. Si tal medio externo no está disponible, el descodificador de vídeo 30 puede establecer el valor de la variable en 0.
[0108] En este caso, el texto de la subcláusula 8.1 de HEVC WD8, que se cita más arriba, puede reemplazarse por lo siguiente:
Cuando la imagen actual es una imagen BLA que tiene nal unit type igual a BLA W TFD o es una imagen CRA, se aplica lo siguiente.
- Si algunos medios externos no especificados en esta memoria descriptiva están disponibles para establecer la variable UseAltCpbParamsFlag en un valor, UseAltCpbParamsFlag se establece en el valor proporcionado por los medios externos.
- De lo contrario, el valor de UseAltCpbParamsFlag se establece en 0.
[0109] Cuando la imagen actual es una imagen CRA, se aplica lo siguiente.
- Si hay medios externos no especificados en esta memoria intermedia disponibles para establecer la variable HandleCraAsBlaFlag a un valor, HandleCraAsBlaFlag se establece en el valor proporcionado por los medios externos.
- De lo contrario, el valor de HandleCraAsBlaFlag se establece en 0.
[0110] Cuando la imagen actual es una imagen CRA y HandleCraAsBlaFlag es igual a 1, se aplica lo siguiente durante los procesos de análisis y descodificación para cada unidad NAL de fragmento codificado, y la imagen CRA se considera una imagen BLA y la unidad de acceso CRA se considera una unidad de acceso BLA:
- Si UseAltCpbParamsFlag es igual a 0, el valor de nal_unit_type se establece en BLA_W_TFD. De lo contrario, el valor de nal_unit_type se establece en BLA_W_DLP.
- El valor de no_output_of_prior_pics_flag está establecido en 1.
Además, el texto de la subcláusula C.2.1 de HEVC WD8, citado anteriormente, se puede reemplazar por el siguiente:
Las variables InitCpbRemovalDelay[SchedSelIdx] e
InitCpbRemovalDelayOffset[SchedSelIdx] se establecen de la siguiente manera.
- Si una de las siguientes condiciones es verdadera,
InitCpbRemovalDelay[SchedSelIdx] e
5
10
15
20
25
30
35
40
InitCpbRemovalDelayOffset[SchedSelIdx] se establecen en los valores de los ¡nit¡al_alt_cpb_removal_delay[SchedSelIdx] e initial_alt_cpb_removal_delay_offset[SchedSelIdx]
correspondientes, respectivamente, del mensaje SEI del período de almacenamiento en memoria intermedia asociado:
- La unidad de acceso 0 es una unidad de acceso BLA para la cual la imagen codificada tiene nal_unit_type igual a BLA_W_DLP o BLA_N_LP, y el valor de rap_cpb_params_present_flag del mensaje SEI de período de almacenamiento en memoria intermedia asociado es igual a 1;
- La unidad de acceso 0 es una unidad de acceso BLA para la cual la imagen codificada tiene nal unit type igual a BLA W TFD o es una unidad de acceso CRA, UseAltCpbParamsFlag es igual a 1, y el valor de rap cpb params present flag del mensaje SEI de período de almacenamiento en memoria intermedia asociado es igual a 1;
- SubPicCpbFlag es igual a 1.
- De lo contrario, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] se establecen en los valores de los initial_cpb_removal_delay[SchedSelIdx] e initial_cpb_removal_delay_offset[SchedSelIdx], correspondientes, respectivamente, del mensaje SEI del período de almacenamiento en memoria intermedia asociado.
[0111] La entidad de red 29 u otro medio externo configurado para establecer el valor de UseAltCpbParamsFlag puede funcionar de la siguiente manera. La entidad de red 29 puede enviar un mensaje a un descodificador de vídeo 30 o a un receptor que contiene el descodificador de vídeo 30. El mensaje puede indicar que, para una imagen BLA o CRA particular, tenía imágenes TFD asociadas, pero las imágenes TFD asociadas se descartaron y, por lo tanto, debería utilizarse el conjunto alternativo de parámetros de CPB. Al recibir dicho mensaje, el descodificador de vídeo 30 puede establecer el valor de UseAltCpbParamsFlag para la imagen BLA o CRA particular en 1. Si el BLA o CRA particular no tenía imágenes TFD, o si tenía imágenes TFD que no fueron descartadas, entonces no es necesario enviar ningún mensaje o se envía un mensaje para indicar al descodificador de vídeo 30 que establezca el valor de UseAltCpbParamsFlag para la imagen BLA o CRA particular en 0.
[0112] En algunos casos, el descodificador de vídeo 30 puede establecer un tipo de unidad de capa de abstracción de red (NAL) para la imagen CRA o la imagen BLA dada, y puede seleccionar el conjunto de parámetros de CPB para la imagen dada basada en el tipo de unidad NAL y la variable para la imagen. Como ejemplo adicional, en lugar de usar solo un tipo de unidad NAL que indique una imagen CRA general, por ejemplo, CRA_NUT, las técnicas de esta divulgación permiten el uso de tres tipos diferentes de unidades NAL que respectivamente indican una imagen CRA con imágenes principales no descodificables, por ejemplo, CRA_W_TFD, indican una imagen CRA con imágenes principales descodificables, por ejemplo, CRA_W_DLP, e indican una imagen CRA sin imágenes principales, por ejemplo, CRA_N_LP. En este caso, la tabla 7-1 en HEVC WD8 y las notas debajo de la tabla se modifican como se muestra a continuación.
Tabla 7-1 - Códigos de tipo de unidad NAL y clases de tipo de unidad NAL
nal_unit_type
Nombre de nal_unit_type Contenido de la unidad de NAL y estructura sintáctica RBSP Clase de tipo de unidad de NAL
0
UNSPEC0 Sin especificar no VCL
1,2
TRAIL_R, TRAIL_N Fragmento codificado de una imagen posterior no TSA ni STSA slice_layer_rbsp( ) VCL
3, 4
TSA_R, TSA_N Fragmento codificado de una imagen TSA slice_layer_rbsp( ) VCL
5, 6
STSA_R,STSA_N Fragmento codificado de una imagen de STSA slice_layer_rbsp( ) VCL
7, 8, 9
BLA_W_TFD Fragmento codificado de una imagen BLA slice_layer_rbsp( ) VCL
BLA_W_DLP
BLA_N_LP
10, 11
IDR_W_LP Fragmento codificado de una imagen I DR slice_layer_rbsp( ) VCL
IDR_N_LP
nal_unit_type
Nombre de nal_unit_type Contenido de la unidad de NAL y estructura sintáctica RBSP Clase de tipo de unidad de NAL
12, 13, 14
CRA W TFD Fragmento codificado de una imagen CRA slice_layer_rbsp( ) VCL
CRA W DLP
CRA N LP
15
DLP_NUT Fragmento codificado de una imagen DLP slice_layer_rbsp( ) VCL
16
TFD_NUT Fragmento codificado de una imagen TFD slice_layer_rbsp( ) VCL
17..22
RSV VCL17..RSV VCL22 Reservado VCL
23..24
RSV NVCL23..RSV NVCL24 Reservado no VCL
25
VPS_NUT Conjunto de parámetros de vídeo video_parameter_ _set _rbsp( ) no VCL
26
SPS_NUT Conjunto de parámetros de secuencia seq_parameter_set _rbsp( ) no VCL
27
PPS_NUT Conjunto de parámetros de imagen pic_parameter_set_rbsp( ) no VCL
28
AUD_NUT Limitador de la unidad de acceso access_ unit_delimiter_rbsp( ) no VCL
29
EOS_NUT Fin de la secuencia end_of_seq_rbsp( ) no VCL
30
EOB_NUT Fin del flujo de bits end_of_bitstream _rbsp( ) no VCL
31
FD_NUT Datos de relleno filler_data_rbsp( ) no VCL
32
SFI_NUT Información de mejora suplementaria (SEI) sei_rbsp( ) no VCL
33..47
RSV NVCL33.. RSV_NVCL47 Reservado no VCL
48..63
UNSPEC48.. UNSPEC63 Sin especificar no VCL
NOTA 3 - Una imagen CRA con un nal_unit_type igual a CRA_W_TFD puede tener imágenes TFD asociadas, o imágenes DLP asociadas, o ambas presentes en el flujo de bits. Una imagen CRA que tiene nal_unit_type igual a CRA_W_DLP no tiene imágenes tFd asociadas presentes en el flujo de bits, pero puede tener imágenes DLP asociadas en el flujo de bits. Una imagen CRA que tiene nal_unit_type igual a CRA_N_LP no tiene imágenes principales asociadas presentes en el flujo de bits. NOTA 4 - Una imagen BLA que tenga un nal_unit_type igual a BLA_W_TFD puede tener imágenes TFD asociadas, o imágenes DLP asociadas, o ambas presentes en el flujo de bits. Una imagen BLA que tiene nal_unit_type igual a BLA_W_DLP no tiene imágenes TFD asociadas presentes en el flujo de bits, pero puede tener imágenes DLP asociadas en el flujo de bits. Una imagen BLA que tiene nal_unit_type igual a BLA_N_LP no tiene imágenes principales asociadas presentes en el flujo de bits. NOTA 5 - Una imagen IDR que tiene nal_unit_type igual a IDR_N_LP no tiene imágenes principales asociadas presentes en el flujo de bits. Una imagen IDR que tiene nal_unit_type igual a IDR_W_DLP no tiene imágenes TFD asociadas presentes en el flujo de bits, pero puede tener imágenes DLP asociadas en el flujo de bits.
[0113] Además, similar al primer ejemplo descrito anteriormente, se define una variable UseAItCpbParamsFlag para cada imagen BLA o CRA. El valor de esta variable lo establece la entidad de red 29 u otro medio externo, ya sea 0 o 1. Si tal medio externo no está disponible, el descodificador de vídeo 30 puede establecer el valor de la variable en
5 0.
[0114] En este caso, el texto de la subcláusula 8.1 de HEVC WD8, citado anteriormente, puede ser reemplazado por el siguiente:
10 Cuando la imagen actual es una imagen BLA que tiene nal unit type igual a BLA W TFD o es una imagen CRA que tiene nal unit type igual a CRA W TFD, se aplica lo siguiente.
5
10
15
20
25
30
35
40
45
50
55
60
65
Si algunos medios externos no especificados en esta memoria descriptiva están disponibles para establecer la variable UseAltCpbParamsFlag en un valor, UseAltCpbParamsFlag se establece en el valor proporcionado por los medios externos.
De lo contrario, el valor de UseAltCpbParamsFlag se establece en 0.
Cuando la imagen actual es una imagen CRA, se aplica lo siguiente.
Si hay medios externos no especificados en esta memoria intermedia disponibles para establecer la variable HandleCraAsBlaFlag a un valor, HandleCraAsBlaFlag se establece en el valor proporcionado por los medios externos.
De lo contrario, el valor de HandleCraAsBlaFlag se establece en 0.
Cuando la imagen actual es una imagen CRA y HandleCraAsBlaFlag es igual a 1, se aplica lo siguiente durante los procesos de análisis y descodificación para cada unidad NAL de fragmento codificado, y la imagen CRA se considera como una imagen BLA y la unidad de acceso CRA se considera como una unidad de acceso BLA:
- Si el valor de nal_unit_type es igual a CRA_W_TFD, el valor de nal_unit_type está establecido en BLA_W_TFD. De lo contrario, si el valor de nal_unit_type es igual a CRA_W_DLP, el valor de nal_unit_type se establece en BLA_W_DLP. De lo contrario, el valor de nal_unit_type se establece en BLA_N_LP.
- El valor de no_output_of_prior_pics_flag está establecido en 1.
Además, el texto de la subcláusula C.2.1 de HEVC WD8, citado anteriormente, puede ser reemplazado por el siguiente:
Las variables InitCpbRemovalDelay[SchedSelIdx] e
InitCpbRemovalDelayOffset[SchedSelIdx] se establecen de la siguiente manera.
- Si una de las siguientes condiciones es verdadera,
InitCpbRemovalDelay[SchedSelIdx] e
InitCpbRemovalDelayOffset[SchedSelIdx] se establecen en los valores de los initial_alt_cpb_removal_delay[SchedSelIdx] e initial_alt_cpb_removal_delay_offset[SchedSelIdx]
correspondientes, respectivamente, del mensaje SEI del período de almacenamiento en memoria intermedia asociado:
- La unidad de acceso 0 es una unidad de acceso BLA para la cual la imagen codificada tiene nal_unit_type igual a BLA_W_DLP o BLA_N_LP, y el valor de rap_cpb_params_present_flag del mensaje SEI de período de almacenamiento en memoria intermedia asociado es igual a 1;
- La unidad de acceso 0 es una unidad de acceso CRA para la cual la imagen codificada tiene un nal unit type igual a CRA W DLP o CRA N LP, y el valor de rap cpb params present flag del mensaje SEI del período de almacenamiento en memoria intermedia asociado es igual a 1;
- La unidad de acceso 0 es una unidad de acceso BLA para la cual la imagen codificada tiene un nal unit type igual a BLA W TFD o es una unidad de acceso CRA para la cual la imagen codificada tiene nal unit type igual a CRA W TFD, UseAltCpbParamsFlag es igual a 1, y el valor de rap cpb params present flag del mensaje SEI del período de almacenamiento en memoria intermedia asociado es igual a 1;
- SubPicCpbFlag es igual a 1.
- De lo contrario, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] se establecen en los valores de los initial_cpb_removal_delay[SchedSelIdx] e initial_cpb_removal_delay_offset[SchedSelIdx], correspondientes, respectivamente, del mensaje SEI del período de almacenamiento en memoria intermedia asociado.
[0115] La entidad de red 29 u otro medio externo configurado para establecer el valor de UseAltCpbParamsFlag puede funcionar de la siguiente manera. La entidad de red 29 puede enviar un mensaje al descodificador de vídeo 30 o a un receptor que contiene el descodificador de vídeo 30. El mensaje puede indicar que, para una imagen BLA o CRA particular, tenía imágenes TFD asociadas, pero las imágenes TFD asociadas se descartaron y, por lo tanto,
5
10
15
20
25
30
35
40
45
50
55
60
65
debería utilizarse el conjunto alternativo de parámetros de CPB. Tras la recepción de dicho mensaje, el descodificador de vídeo 30 puede establecer el valor de UseAltCpbParamsFlag para la imagen BLA o CRA particular en 1. Si el BLA o CRA particular no tenía imágenes TFD, o tenía una imagen TFD pero no descartada, entonces no es necesario enviar ningún mensaje o se envía un mensaje para indicar al descodificador de vídeo 30 que establezca el valor de UseAltCpbParamsFlag para la imagen bLa o CRA particular a 0.
[0116] En otro ejemplo, descodificador de vídeo 30 recibe un flujo de bits que representa una pluralidad de imágenes que incluye una o más imágenes CRA o imágenes BLA, y también recibe un mensaje de la entidad de red 29 que indica un tipo de unidad NAL para al menos una de las imágenes CRA o las imágenes BLA. El descodificador de vídeo 30 establece una variable definida para indicar el tipo de unidad NAL para una imagen CRA o imagen BLA dada basándose en el mensaje recibido. El descodificador de vídeo 30 a continuación establece el tipo de unidad NAL para la imagen CRA o la imagen BLA dada, y selecciona el conjunto de parámetros de CPB para la imagen dada basándose en el tipo de unidad NAL.
[0117] De acuerdo con este ejemplo, se puede definir una variable UseThisNalUnitType para cada imagen CRA o BLA. El valor de esta variable lo establece la entidad de red 29 o algún otro medio externo. Si tal medio externo no está disponible, el descodificador de vídeo 30 puede establecer el valor de la variable en nal_unit_type de la imagen CRA o BLA. En algunos ejemplos, los valores posibles para esta variable son CRA_NUT, BLA_W_TFD, BLA_W_DLP y BLA_N_LP. En otros ejemplos, los valores posibles de esta variable pueden incluir otros nal_unit_types configurados para indicar una imagen CRA general, una imagen BLA con imágenes principales no descodificables, una imagen BLA con imágenes principales descodificables y una imagen BLA sin imágenes principales.
[0118] En este caso, el texto de la subcláusula 8.1 de HEVC WD8, que se cita más arriba, puede reemplazarse por lo siguiente:
Cuando la imagen actual es una imagen BLA o CRA, se aplica lo siguiente.
- Si hay medios externos no especificados en esta memoria intermedia disponibles para establecer la variable UseThisNalUnitType en un valor, UseThisNalUnitType se establece en el valor proporcionado por los medios externos. Para una imagen BLA con nal_unit_type igual a BLA_N_LP, los medios externos solo pueden establecer UseThisNalUnitType en BLA_N_LP; para una imagen BLA con nal_unit_type igual a BLA_W_DLP, los medios externos solo pueden establecer UseThisNalUnitType en BLA_W_DLP o BLA_N_LP; para una imagen BLA con nal_unit_type igual a BLA_W_TFD, los medios externos solo pueden establecer UseThisNalUnitType en uno de BLA_W_TFD, BLA_W_DLP y BLA_N_LP; para una imagen BLA, los medios externos nunca deben establecer UseThisNalUnitType para indicar una imagen CRA o cualquier otro tipo de imagen; para una imagen CRA, los medios externos pueden establecer UseThisNalUnitType en uno de CRA_NUT, BLA_W_TFD, BLA_W_DLP y BLA_N_LP, no en ningún otro valor.
- De lo contrario, el valor de UseThisNalUnitType se establece en nal_unit_type de la imagen actual.
[0119] Cuando la imagen actual es una imagen CRA o BLA, se aplica lo siguiente durante los procesos de análisis y descodificación para cada unidad NAL de fragmento codificado:
- El valor de nal_unit_type está establecido en UseThisNalUnitType, y la imagen actual o unidad de acceso se considera como una imagen CRA o BLA o unidad de acceso de acuerdo con el valor de nal_unit_type igual a UseThisNalUnitType.
- El valor de no_output_of_prior_pics_flag se establece en 1 si la imagen actual era una imagen CRA antes del paso anterior y se ha convertido en una imagen BLA.
No es necesario cambiar el texto en la subcláusula C.2.1 de HEVC WD8, que se cita arriba.
[0120] Como un ejemplo adicional, en lugar de utilizar solamente un tipo de unidad NAL que indica una imagen CRA general, por ejemplo, CRA_NUT, las técnicas de esta divulgación permiten el uso de tres tipos de unidades NAL diferentes que indican respectivamente una imagen CRA con imágenes principales no descodificables, por ejemplo, CRA_W_TFD, indican una imagen CRA con imágenes principales descodificables, por ejemplo, CRA_W_DLP, e indican una imagen CRA sin imágenes principales, por ejemplo, CRA_N_LP. En este caso, la tabla 7-1 en HEVC WD8 y las notas debajo de la tabla se cambian como se describió anteriormente.
[0121] Además, de forma similar al segundo ejemplo descrito anteriormente, se define una variable UseThisNalUnitType para cada imagen CRA o BLA. El valor de esta variable lo establece la entidad de red 29 u otro medio externo. Si tal medio externo no está disponible, el descodificador de vídeo 30 puede establecer el valor de la variable en nal_unit_type de la imagen CRA o BLA. En algunos ejemplos, los valores posibles para esta variable son CRA_W_TFD, CRA_W_DLP, CRA_N_LP, BLA_W_TFD, BLA_W_DLP y BLA_N_LP. En otros ejemplos, los valores posibles de esta variable pueden incluir otros nal_unit_types configurados para indicar una imagen CRA con
5
10
15
20
25
30
35
40
45
50
55
60
65
imágenes principales no descodificables, una imagen CRA con imágenes principales descodificables, una imagen CRA sin imágenes principales, una imagen BLA con imágenes principales no descodificables, una imagen BLA con imágenes principales descodificables y una imagen BLA sin imágenes principales.
[0122] En este caso, el texto de la subcláusula 8.1 de HEVC WD8, citado anteriormente, puede ser reemplazado por el siguiente:
Cuando la imagen actual es una imagen BLA o CRA, se aplica lo siguiente.
- Si hay medios externos no especificados en esta memoria intermedia disponibles para establecer la variable UseThisNalUnitType en un valor, UseThisNalUnitType se establece en el valor proporcionado por los medios externos.
Para una imagen BLA con nal_unit_type igual a BLA_N_LP, los medios externos solo pueden establecer UseThisNalUnitType en BLA_N_LP; para una imagen BLA con nal_unit_type igual a BLA_W_DLP, los medios externos solo pueden establecer UseThisNalUnitType en BLA_W_DLP o BLA_N_LP; para una imagen BLA con nal_unit_type igual a BLA_W_TFD, los medios externos solo pueden establecer UseThisNalUnitType en uno de BLA_W_TFD, BLA_W_DLP y BLA_N_LP; para una imagen BLA, los medios externos nunca deben establecer UseThisNalUnitType para indicar una imagen CRA ni ningún otro tipo de imagen.
Para una imagen CRA con nal_unit_type igual a CRA_N_LP, los medios externos solo pueden establecer UseThisNalUnitType en CRA_N_LP o BLA_N_LP; para una imagen CRA con nal_unit_type igual a CRA_W_DLP, los medios externos solo pueden establecer UseThisNalUnitType en CRA_W_DLP, CRA_N_LP, BLA_W_DLP o BLA_N_LP; para una imagen CRA con nal_unit_type igual a CRA_W_TFD, los medios externos solo pueden establecer UseThisNalUnitType en CRA_W_TfD, CRA_W_DLP, CRA_N_LP, BLA_W_TFD, BLA_W_DLP o BLA_N_LP.
- De lo contrario, el valor de UseThisNalUnitType se establece en nal_unit_type de la imagen actual.
[0123] Cuando la imagen actual es una imagen CRA o BLA, se aplica lo siguiente durante los procesos de análisis y descodificación para cada unidad NAL de fragmento codificado:
- El valor de nal_unit_type está establecido en UseThisNalUnitType, y la imagen actual o unidad de acceso se considera como una imagen CRA o BLA o unidad de acceso de acuerdo con el valor de nal_unit_type igual a UseThisNalUnitType.
- El valor de no_output_of_prior_pics_flag se establece en 1 si la imagen actual era una imagen CRA antes del paso anterior y se ha convertido en una imagen BLA.
[0124] Además, el texto de la subcláusula C.2.1 de HEVC WD8, citado anteriormente, puede ser reemplazado por el siguiente:
Las variables InitCpbRemovalDelay[SchedSelIdx] e
InitCpbRemovalDelayOffset[SchedSelIdx] se establecen de la siguiente manera.
- Si una de las siguientes condiciones es verdadera,
InitCpbRemovalDelay[SchedSelIdx] e
InitCpbRemovalDelayOffset[SchedSelIdx] se establecen en los valores de los initial_alt_cpb_removal_delay[SchedSelIdx] e initial_alt_cpb_removal_delay_offset[SchedSelIdx]
correspondientes, respectivamente, del mensaje SEI del período de almacenamiento en memoria intermedia asociado:
- La unidad de acceso 0 es una unidad de acceso BLA para la cual la imagen codificada tiene nal_unit_type igual a BLA_W_DLP o BLA_N_LP, y el valor de rap_cpb_params_present_flag del mensaje SEI de período de almacenamiento en memoria intermedia asociado es igual a 1;
- La unidad de acceso 0 es una unidad de acceso CRA para la cual la imagen codificada tiene un nal unit type igual a CRA W DLP o CRA N LP, y el valor de rap cpb params present flag del mensaje SEI del período de almacenamiento en memoria intermedia asociado es igual a 1;
- SubPicCpbFlag es igual a 1.
- De lo contrario, InitCpbRemovalDelay[SchedSelIdx] e InitCpbRemovalDelayOffset[SchedSelIdx] se establecen en los valores de los initial_cpb_removal_delay[SchedSelIdx] e
5
10
15
20
25
30
35
40
45
50
55
60
65
initial_cpb_removal_delay_offset[SchedSelIdx], correspondientes, respectivamente, del mensaje SEI del
período de almacenamiento en memoria intermedia asociado.
[0125] La FIG. 4 es un diagrama de bloques que ilustra un dispositivo de destino de ejemplo 100 configurado para funcionar de acuerdo con un descodificador de referencia hipotético (HRD). En este ejemplo, el dispositivo de destino 100 incluye la interfaz de entrada 102, el planificador de flujo 104, la memoria intermedia de imágenes codificadas 106, el descodificador de vídeo 108, la memoria intermedia de imágenes descodificadas (DPB) 110, la unidad de representación 112, y la interfaz de salida 114. El dispositivo de destino 100 puede corresponder sustancialmente al dispositivo de destino 14 de la FIG. 1. La interfaz de entrada 102 puede comprender cualquier interfaz de entrada capaz de recibir un flujo de bits codificado de datos de vídeo y puede corresponder sustancialmente a la interfaz de entrada 28 de la FIG. 1. Por ejemplo, la interfaz de entrada 102 puede comprender un receptor, un módem, una interfaz de red, como una interfaz inalámbrica o inalámbrica, una memoria o interfaz de memoria, una unidad para leer datos de un disco, como una interfaz de unidad óptica o interfaz de medios magnéticos u otro componente de interfaz.
[0126] La interfaz de entrada 102 puede recibir un flujo de bits codificados que incluye datos de vídeo y proporcionar el flujo de bits al planificador de flujo 104. El planificador de flujo 104 extrae unidades de datos de vídeo, tales como unidades de acceso y/o unidades de descodificación, del flujo de bits y almacena las unidades extraídas en la CPB 106. De esta manera, el planificador de flujo 104 representa una implementación de ejemplo de un planificador de flujo hipotético (HSS). La CPB 106 puede adaptarse sustancialmente a la CPB 68 de la FIG. 3, excepto que, como se muestra en la FIG. 4, la CPB 106 está separada del descodificador de vídeo 108. La CPB 106 puede estar separada o integrada como parte del descodificador de vídeo 108 en diferentes ejemplos.
[0127] El descodificador de vídeo 108 incluye la DPB 110. El descodificador de vídeo 108 puede adaptarse sustancialmente al descodificador de vídeo 30 de las FIGs. 1 y 3. La DPB 110 puede adaptarse sustancialmente a la DPB 82 de la FIG. 3. Por lo tanto, el descodificador de vídeo 108 puede descodificar unidades de descodificación de CPB 106. Además, el descodificador de vídeo 108 puede emitir imágenes descodificadas desde DPB 110. El descodificador de vídeo 108 puede transmitir imágenes de salida a la unidad de representación 112. La unidad de representación 112 puede recortar imágenes y a continuación pasar las imágenes recortadas a la interfaz de salida 114. La interfaz de salida 114, a su vez, puede proporcionar las imágenes recortadas a un dispositivo de visualización, que puede adaptarse sustancialmente al dispositivo de visualización 32 de la FIG. 1.
[0128] El dispositivo de visualización puede formar parte de dispositivo de destino 100, o puede estar acoplado de forma comunicativa al dispositivo de destino 100. Por ejemplo, el dispositivo de visualización puede comprender una pantalla, pantalla táctil, proyector, u otra unidad de visualización integrada con el dispositivo de destino 100, o puede comprender una pantalla independiente, tal como un televisor, monitor, proyector, pantalla táctil u otro dispositivo que está acoplado en comunicación al dispositivo de destino 100. El acoplamiento comunicativo puede comprender un acoplamiento con cable o inalámbrico, tal como mediante un cable coaxial, cable de vídeo compuesto, cable de vídeo componente, un cable de interfaz multimedia de alta definición (HDMI), una radiodifusión de radio-frecuencia, u otro acoplamiento con cable o inalámbrico.
[0129] La FIG. 5 es un diagrama de flujo que ilustra una operación de ejemplo para seleccionar un conjunto de parámetros de memoria intermedia de imágenes codificadas (CPB) basándose en una variable que indica el conjunto de parámetros de CPB para una imagen de punto de acceso aleatorio (RAP) particular en un flujo de bits. La operación ilustrada se describe con respecto al descodificador de vídeo 30 de la FIG. 3 que incluye CPB 68. En otros ejemplos, se puede realizar una operación similar mediante el codificador de vídeo 20 de la FIG. 2 que incluye CPB 66, dispositivo de destino 100 de la FIG. 4 que incluye la CPB 106 y el descodificador de vídeo 108, u otros dispositivos que incluyen codificadores de vídeo o descodificadores de vídeo con CPB configurados para funcionar de acuerdo con las operaciones de HRD.
[0130] El descodificador de vídeo 30 recibe un flujo de bits que incluye una o más imágenes CRA o imágenes BLA (120). Junto con el flujo de bits, el descodificador de vídeo 30 también recibe un mensaje que indica si se usa un conjunto alternativo de parámetros de CPB para una de las imágenes CRA o BLA (122) particular. Más específicamente, el descodificador de vídeo 30 puede recibir el mensaje de un medio externo, tal como la entidad de red 29, que es capaz de descartar imágenes TFD asociadas con la imagen particular, y también es capaz de informar al descodificador de vídeo 30 cuando las imágenes TFD han sido descartadas.
[0131] Por ejemplo, cuando la imagen particular tenía imágenes TFD en una salida de flujo de bits original del codificador de vídeo 20 y las imágenes TFD han sido descartadas por los medios externos, el mensaje recibido por el descodificador de vídeo 30 indica usar el conjunto alternativo de parámetros de CPB para la imagen particular. Como otro ejemplo, cuando la imagen particular no tenía imágenes TFD en la salida del flujo de bits original del codificador de vídeo 20 o la imagen particular tenía imágenes TFD en el flujo de bits original y las imágenes TFD no han sido descartadas por los medios externos, el mensaje recibido por el descodificador de vídeo 30 no indica el uso del conjunto alternativo de parámetros de CPB para la imagen particular. En este caso, ya sea el conjunto predeterminado o el conjunto alternativo de parámetros CPB se puede usar para una de las imágenes CRA o las imágenes BLA basándose en el tipo de unidad NAL de la imagen.
5
10
15
20
25
30
35
40
45
50
55
60
65
[0132] El descodificador de vídeo 30 establece una variable, por ejemplo, UseAItCpbParamsFlag, definida para indicar un conjunto de parámetros de CPB para la imagen particular basándose en el mensaje recibido (124). Por ejemplo, el descodificador de vídeo 30 puede establecer UseAltCpbParamsFlag igual a 1 cuando el mensaje recibido indique el conjunto alternativo de parámetros de CPB para la imagen particular. Por el contrario, el descodificador de vídeo 30 puede establecer UseAltCpbParamsFlag igual a 0 cuando el mensaje recibido no indique explícitamente el conjunto alternativo de parámetros de CPB para la imagen particular. En algunos casos, el descodificador de vídeo 30 puede no recibir un mensaje para al menos una de las imágenes CRA o las imágenes BLA. El descodificador de vídeo 30 puede a continuación establecer UseAltCpbParamsFlag igual a 0.
[0133] El descodificador de vídeo 30 a continuación establece un tipo de unidad NAL para la imagen particular (126). En algunos casos, el descodificador de vídeo 30 puede establecer el tipo de unidad NAL para la imagen particular como se señala en el flujo de bits. En otros casos, el descodificador de vídeo 30 puede establecer el tipo de unidad NAL para la imagen particular basándose al menos en parte en la variable para la imagen. La operación de selección del tipo de unidad NAL se describe con más detalle a continuación con respecto a la FIG. 6. El descodificador de vídeo 30 selecciona el conjunto predeterminado o el conjunto alternativo de parámetros de CPB para la imagen particular basándose en el tipo de unidad NAL y la variable para la imagen particular (128). En particular, el descodificador de vídeo 30 selecciona el conjunto predeterminado de parámetros de CPB para uno o más tipos de unidad NAL cuando la variable no indica el conjunto alternativo de parámetros de CPB, y selecciona el conjunto alternativo de parámetros de CPB para uno o más tipos de unidad NAL cuando la variable indica el conjunto alternativo de parámetros de CPB y para uno o más tipos de unidades de NAL diferentes. La operación de selección del conjunto de parámetros de CPB se describe con más detalle a continuación con respecto a la FIG. 7.
[0134] La FIG. 6 es un diagrama de flujo que ilustra una operación de ejemplo de establecer un tipo de unidad de abstracción de capa de red (NAL) para una imagen de RAP particular basándose en una variable que indica el conjunto de parámetros de CPB para la imagen. La operación ilustrada se describe con respecto al descodificador de vídeo 30 de la FIG. 3 que incluye CPB 68. En otros ejemplos, se puede realizar una operación similar mediante el codificador de vídeo 20 de la FIG. 2 que incluye CPB 66, dispositivo de destino 100 de la FIG. 4 que incluye la CPB 106 y el descodificador de vídeo 108, u otros dispositivos que incluyen codificadores de vídeo o descodificadores de vídeo con CPB configurados para funcionar de acuerdo con las operaciones de HRD.
[0135] El descodificador de vídeo 30 recibe un flujo de bits que incluye una o más imágenes CRA o imágenes BLA (150). El descodificador de vídeo 30 recibe un mensaje que indica si se usa un conjunto alternativo de parámetros de CPB para una imagen CRA o imagen BLA particular (152). El descodificador de vídeo 30 establece una variable definida para indicar un conjunto de parámetros de CPB para la imagen particular basándose en el mensaje recibido (154).
[0136] Cuando la imagen particular es una imagen BLA (rama NO de 156), el descodificador de vídeo 30 establece el tipo de unidad NAL para la imagen BLA particular como se señala en el flujo de bits (158). Cuando la imagen particular es una imagen CRA (rama SÍ de 156) y cuando las imágenes CRA no se manejan como una imagen BLA (rama NO de 160), el descodificador 30 también establece el tipo de unidad NAL para la imagen CRA particular como se indica en el flujo de bits (158).
[0137] Convencionalmente, cuando una imagen CRA se maneja como una imagen BLA, el tipo de unidad NAL para la imagen CRA se establece para indicar una imagen BLA con imágenes principales no descodificables, por ejemplo, BLA_W_TFD, lo cual da como resultado la selección del conjunto predeterminado de los parámetros de CPB para la imagen. En algunos casos, la imagen puede no tener imágenes tFd asociadas y el uso del conjunto predeterminado de parámetros de CPB puede provocar el desbordamiento de la CPB. De acuerdo con las técnicas de esta divulgación, cuando la imagen particular es una imagen CRA (rama SÍ de 156) y la imagen CRA se maneja como una imagen BLA (rama SI de 160), el descodificador 30 establece el tipo de unidad NAL para la imagen CRA particular basándose en la variable para la imagen particular.
[0138] Por ejemplo, cuando la variable no indica explícitamente el conjunto alternativo de parámetros de CPB (rama NO de 162), el descodificador de vídeo 30 establece el tipo de unidad NAL para la imagen particular para indicar una imagen BLA con imágenes principales no descodificables, por ejemplo, bLa_W_TFD, lo cual indica que la imagen particular tiene imágenes TFD asociadas (164). En este caso, el conjunto predeterminado de parámetros de CPB se seleccionará apropiadamente para la imagen particular. Cuando la variable indica el conjunto alternativo de parámetros de CPB (rama SÍ de 162), el descodificador de vídeo 30 establece el tipo de unidad NAL para la imagen particular para indicar una imagen BLA con imágenes principales descodificables, por ejemplo, BLA_W_DLP, lo cual indica que la imagen particular no tiene imágenes TFd asociadas (166). En este caso, el conjunto alternativo de parámetros de CPB se seleccionará apropiadamente para la imagen particular. De esta forma, las técnicas garantizan que la CPB del descodificador de vídeo no se desbordarán debido al uso de los parámetros de CPB inapropiados.
[0139] La FIG. 7 es un diagrama de flujo que ilustra una operación de ejemplo de seleccionar un conjunto de parámetros de CPB para una imagen de RAP particular basándose en un tipo de unidad de NAL para la imagen y
5
10
15
20
25
30
35
40
45
50
55
60
65
una variable que indica el conjunto de parámetros de CPB para la imagen. La operación ilustrada se describe con respecto al descodificador de vídeo 30 de la FIG. 3 que incluye CPB 68. En otros ejemplos, se puede realizar una operación similar mediante el codificador de vídeo 20 de la FIG. 2 que incluye CPB 66, dispositivo de destino 100 de la FIG. 4 que incluye la CPB 106 y el descodificador de vídeo 108, u otros dispositivos que incluyen codificadores de vídeo o descodificadores de vídeo con CPB configurados para funcionar de acuerdo con las operaciones de HRD.
[0140] El descodificador de vídeo 30 recibe un flujo de bits que incluye una o más imágenes CRA o imágenes BLA (170). El descodificador de vídeo 30 recibe un mensaje que indica si se usa un conjunto alternativo de parámetros de CPB para una imagen CRA o imagen BLA particular (172). El descodificador de vídeo 30 establece una variable definida para indicar un conjunto de parámetros de CPB para la imagen particular basándose en el mensaje recibido (174). El descodificador de vídeo 30 a continuación establece un tipo de unidad NAL para la imagen particular (176). Como se ha descrito anteriormente con respecto a la FIG. 6, el descodificador de vídeo 30 puede establecer el tipo de unidad NAL para la imagen particular como se señala en el flujo de bits, o puede establecer el tipo de unidad NAL para la imagen particular basándose en la variable para la imagen.
[0141] Cuando la imagen particular es una imagen BLA que tiene un tipo de unidad NAL que indica una imagen BLA con imágenes principales descodificables, por ejemplo, BLA_W_DLP, o indica una imagen BLA sin imágenes principales, por ejemplo, BLA_N_LP, lo cual indica que la imagen particular no tiene imágenes TFD asociadas (rama SÍ de 178), el descodificador de vídeo 30 selecciona el conjunto alternativo de parámetros de CPB para la imagen particular basándose en el tipo de unidad NAL (180). Convencionalmente, el conjunto predeterminado de parámetros de CPB se usa para cualquier imagen CRA o imágenes BLA con imágenes de TFD asociadas, por ejemplo, BLA_W_TFD. En algunos casos, sin embargo, las imágenes TFD asociadas con la imagen particular en el flujo de bits original pueden descartarse antes de que el flujo de bits alcance un descodificador de vídeo. A continuación, el descodificador de vídeo utiliza los parámetros de CPB predeterminados basándose en el tipo de unidad NAL, incluso cuando la imagen ya no tiene imágenes TFD asociadas, lo cual puede ocasionar el desbordamiento de la CPB.
[0142] Según las técnicas de esta divulgación, cuando la imagen particular es una imagen CRA o una imagen BLA que tiene un tipo de unidad NAL que indica una imagen BLA con imágenes principales no descodificables, por ejemplo, BLA_W_TFD, lo cual indica que la imagen particular tiene imágenes TFD asociadas (rama SÍ de 182), el descodificador de vídeo 30 selecciona el conjunto de parámetros de CPB a usar para la imagen particular basándose en la variable para la imagen particular. Por ejemplo, cuando la variable no indica explícitamente el conjunto alternativo de parámetros de CPB (rama NO de 184), el descodificador de vídeo 30 selecciona el conjunto predeterminado de parámetros de CPB para la imagen particular basándose en la variable (186). Cuando la variable indica el conjunto alternativo de parámetros de CPB (rama SÍ de 184), el descodificador de vídeo 30 selecciona el conjunto alternativo de parámetros de CPB para la imagen particular basándose en la variable (188). De esta forma, las técnicas garantizan que la CPB del descodificador de vídeo no se desbordarán debido al uso de los parámetros de CPB inapropiados.
[0143] La FIG. 8 es un diagrama de flujo que ilustra una operación de ejemplo para seleccionar un conjunto de parámetros de CPB basándose en una variable definida para indicar un tipo de unidad de abstracción de capa de red (NAL) para una imagen de RAP particular en un flujo de bits. La operación ilustrada se describe con respecto al descodificador de vídeo 30 de la FIG. 3 que incluye CPB 68. En otros ejemplos, se puede realizar una operación similar mediante el codificador de vídeo 20 de la FIG. 2 que incluye CPB 66, dispositivo de destino 100 de la FIG. 4 que incluye la CPB 106 y el descodificador de vídeo 108, u otros dispositivos que incluyen codificadores de vídeo o descodificadores de vídeo con CPB configurados para funcionar de acuerdo con las operaciones de HRD.
[0144] El descodificador de vídeo 30 recibe un flujo de bits que incluye una o más imágenes CRA o imágenes BLA (190). Junto con el flujo de bits, el descodificador de vídeo 30 también recibe un mensaje que indica un tipo de unidad NAL para una imagen CRA o BLA particular (192). Más específicamente, el descodificador de vídeo 30 puede recibir el mensaje de un medio externo, tal como la entidad de red 29, que es capaz de descartar imágenes TFD asociadas con la imagen particular, y también es capaz de informar al descodificador de vídeo 30 cuando las imágenes TFD han sido descartadas.
[0145] Por ejemplo, cuando la imagen particular tenía imágenes TFD en una salida de flujo de bits original del codificador de vídeo 20 y las imágenes TFD han sido descartadas por los medios externos, el mensaje recibido por el descodificador de vídeo 30 puede indicar un tipo de unidad NAL que indica una imagen BLA con imágenes principales descodificables, por ejemplo, BLA_W_DLP, o indica una imagen BLA sin imágenes principales, por ejemplo, BLA_N_LP, para la imagen particular. Como otro ejemplo, cuando la imagen particular tenía imágenes TFD en el flujo de bits original y las imágenes TFD no han sido descartadas por los medios externos, el mensaje recibido por el descodificador 30 puede indicar un tipo de unidad NAL que indica una imagen BLA con imágenes principales no descodificables, por ejemplo, BLA_W_tFd, para una de las imágenes CRA o las imágenes BLA.
[0146] El descodificador de vídeo 30 establece una variable, por ejemplo, UseThisNalUnitType, definida para indicar un tipo de unidad NAL para la imagen particular basándose en el mensaje recibido (194). Por ejemplo, el descodificador de vídeo 30 puede establecer UseThisNalUnitType igual al tipo de unidad NAL indicado por el mensaje recibido para la imagen particular. En algunos casos, el descodificador de vídeo 30 puede no recibir un

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    mensaje para al menos una de las imágenes CRA o las imágenes BLA. El descodificador de vídeo 30 puede entonces establecer UseThisNalUnitType igual al tipo de unidad NAL señalado para la imagen particular en el flujo de bits. El descodificador de vídeo 30 establece un tipo de unidad NAL para la imagen particular basándose en la variable (196). El descodificador de vídeo 30 a continuación selecciona el conjunto predeterminado o el conjunto alternativo de parámetros de CPB para la imagen particular basándose en el tipo de unidad NAL para la imagen particular (198).
    [0147] La FIG. 9 es un diagrama de bloques que ilustra un conjunto a modo de ejemplo de dispositivos que forman parte de la red 200. En este ejemplo, la red 200 incluye los dispositivos de encaminamiento 204A, 204B (dispositivos de encaminamiento 204) y el dispositivo de trans-codificación 206. Los dispositivos de encaminamiento 204 y el dispositivo de trans-codificación 206 están concebidos para representar un pequeño número de dispositivos que pueden formar parte de la red 200. 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 200. Además, pueden proporcionarse dispositivos de red adicionales a lo largo de un trayecto de red entre el dispositivo servidor 202 y el dispositivo cliente 208. El dispositivo servidor 202 puede corresponder al dispositivo de origen 12 de la FIG. 1, mientras que el dispositivo cliente 208 puede corresponder al dispositivo de destino 14 de la FIG. 1, en algunos ejemplos.
    [0148] En general, los dispositivos de encaminamiento 204 implementan uno o más protocolos de encaminamiento para intercambiar datos de red a través de la red 200. En algunos ejemplos, los dispositivos de encaminamiento 204 pueden estar configurados para realizar operaciones de proxy o de memoria caché. Por lo tanto, en algunos ejemplos, los dispositivos de encaminamiento 204 pueden denominarse dispositivos proxy. En general, los dispositivos de encaminamiento 204 ejecutan protocolos de encaminamiento para descubrir rutas a través de la red 200. Al ejecutar tales protocolos de encaminamiento, el dispositivo de encaminamiento 204B puede descubrir una ruta de red desde sí mismo hasta el dispositivo servidor 202, mediante el dispositivo de encaminamiento 204A.
    [0149] Las técnicas de esta divulgación pueden ser implementadas por dispositivos de red tales como los dispositivos de encaminamiento 204 y el dispositivo de trans-codificación 206, pero también pueden ser implementadas por el dispositivo cliente 208. De esta manera, los dispositivos de enrutamiento 204, el dispositivo de trans-codificación 206 y el dispositivo cliente 208 representan ejemplos de dispositivos configurados para realizar las técnicas de esta divulgación, incluyendo las técnicas enumeradas en la parte de REIVINDICACIONES de esta divulgación. Además, los dispositivos de la FIG. 1, y el codificador mostrado en la FIG. 2 y el descodificador mostrado en la FIG. 3 son también dispositivos a modo de ejemplo que se pueden configurar para realizar las técnicas de esta divulgación, incluyendo las técnicas enumeradas en la parte de REIVINDICACIONES de esta divulgación.
    [0150] Debe reconocerse que, dependiendo del ejemplo, ciertos actos o sucesos de cualquiera de las técnicas descritas en el presente documento pueden realizarse en una secuencia distinta, pueden agregarse, fusionarse u omitirse por completo (por ejemplo, no todos los actos o sucesos descritos son necesarios para la puesta en práctica de las técnicas). Además, en ciertos ejemplos, los actos o sucesos pueden realizarse simultáneamente, por ejemplo, mediante el procesamiento de múltiples hilos, el procesamiento de interrupciones o múltiples procesadores, en lugar de secuencialmente.
    [0151] En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de estos. Si se implementan en software, las funciones, como una o más instrucciones o código, pueden almacenarse en, y transmitirse por, un medio legible por ordenador, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos o unos medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde 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) unos medios de almacenamiento tangibles legibles por ordenador que son no transitorios, o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
    [0152] 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 de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda utilizarse para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe debidamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o 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 se incluyen
    en la definición de medio. Sin embargo, debería entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. El término disco, tal como se utiliza en el presente documento, incluye un disco compacto (CD), un disco láser, un 5 disco óptico, un disco versátil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos habitualmente emiten datos magnéticamente, mientras que otros discos emiten datos ópticamente con láseres. Las combinaciones de los anteriores deberían incluirse también dentro del alcance de los medios legibles por ordenador.
    [0153] Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales como uno o más procesadores 10 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. Por consiguiente, el término "procesador", como se usa en el presente documento, puede referirse 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 puede 15 proporcionarse dentro de módulos de hardware y/o software dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Además, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
    [0154] Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, 20 que incluyen un teléfono inalámbrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de
    chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse por medio de un grupo de 25 unidades de hardware interoperativas, que incluyen uno o más procesadores como los descritos anteriormente, conjuntamente con software y/o firmware adecuados.
    [0155] Se han descrito varios ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.
    1.
    10
    15
    20
    25
  2. 2.
    30
  3. 3.
    35
  4. 4.
    40
    45
    50
  5. 5.
    55
  6. 6.
    60
  7. 7.
    REIVINDICACIONES
    Un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento:
    recibir (170) un flujo de bits que representa una pluralidad de imágenes incluyendo una o más imágenes de acceso aleatorio limpio (CRA) que tienen un tipo de unidad NAL que indica una imagen CRA con imágenes etiquetadas para descarte (TFD) asociadas, o una o más imágenes de acceso de enlace interrumpido (BLA) que tienen un tipo de unidad NAL que indica una imagen BLA con imágenes TFD asociadas, en el que las imágenes TFD son imágenes principales no descodificables;
    recibir (172), desde un medio externo, un mensaje que indica si las imágenes TFD de al menos una de las una o más imágenes CRA o una o más imágenes BLA fueron descartadas por los medios externos, y por lo tanto si usar un conjunto alternativo de parámetros de memoria de intermedia de imágenes codificada (CPB) para al menos una de las una o más imágenes CRA o una o más de las imágenes BLA;
    establecer (174) una variable definida para indicar un conjunto de parámetros de CPB para al menos una de las una o más imágenes CRA o una o más imágenes BLA, basándose en el mensaje recibido, de modo que la variable indique el conjunto alternativo de parámetros CPB cuando las imágenes TFD fueron descartadas por los medios externos; y
    seleccionar el conjunto alternativo de parámetros de CPB para la al menos una de las una o más imágenes CRA o las una o más imágenes BLA cuando la variable indica el conjunto alternativo de parámetros de CPB, o seleccionar un conjunto predeterminado de parámetros de CPB para la al menos una de las una o más imágenes CRA o las una o más imágenes BLA cuando la variable no indica el conjunto alternativo de parámetros de CPB.
    El procedimiento según la reivindicación 1, que comprende además inicializar un descodificador de referencia hipotético (HRD) usando la al menos una de las una o más imágenes CRA o las una o más imágenes BLA y parámetros HRD asociados, en el que los parámetros HRD incluyen el conjunto seleccionado de parámetros CPB.
    El procedimiento según la reivindicación 1, que comprende además establecer un tipo de unidad de capa de abstracción de red (NAL) para la al menos una de las una o más imágenes CRA o las una o más imágenes BLA, en el que se selecciona uno de un conjunto predeterminado de parámetros de CPB o el conjunto alternativo de parámetros de CPB comprende seleccionar uno de un conjunto predeterminado de parámetros de CPB o el conjunto alternativo de parámetros de CPB para la al menos una de las una o más imágenes CRA o las una o más imágenes BLA basándose en el tipo de unidad NAL y el valor de la variable.
    El procedimiento según la reivindicación 3, en el que la al menos una de las una o más imágenes CRA o las una o más imágenes BLA comprende una imagen CRA que se maneja como una imagen BLA, y en el que establecer el tipo de unidad NAL comprende establecer el tipo de unidad NAL para la imagen CRA manejada como la imagen BLA basándose en el valor de la variable, en la que establecer el tipo de unidad NAL para la imagen CRA manejada como la imagen BLA preferentemente comprende:
    basándose en el valor de la variable que indica el uso del conjunto alternativo de parámetros de CPB, establecer el tipo de unidad NAL para la imagen CRA manejada como la imagen BLA para indicar una imagen BLA con imágenes principales descodificables asociadas; y
    basándose en el valor de la variable UseAltCpbParamsFlag que no indica el uso del conjunto alternativo de parámetros de CPB, establecer el tipo de unidad NAL para la imagen CRA manejada como la imagen BLA para indicar una imagen BLA con imágenes TFD asociadas.
    El procedimiento según la reivindicación 3, en el que la al menos una de las una o más imágenes CRA o las una o más imágenes BLA comprende una imagen CRA, y en el que establecer el tipo de unidad NAL comprende establecer el tipo de unidad NAL para que la imagen CRA indique una imagen CRA general, o para indicar una de entre una imagen CRA con imágenes TFD asociadas, una imagen CRA con imágenes principales descodificables, o una imagen CRA sin imágenes principales como se señala en el flujo de bits.
    El procedimiento según la reivindicación 1, en el que cada uno de los conjuntos predeterminados de parámetros de CPB y el conjunto alternativo de parámetros de CPB incluye retardo de eliminación de CPB iniciales y desviaciones de retardo de eliminación de CPB iniciales.
    El procedimiento según la reivindicación 1, que comprende además aplicar el conjunto seleccionado de parámetros de CPB para la al menos una de las una o más imágenes CRA o las una o más imágenes BLA a una CPB incluida en un dispositivo de descodificación de vídeo para asegurar que la CPB no se desborda durante la descodificación de los datos de vídeo.
    5
    10
    15
    20
    25
    30
    35
  8. 8. El procedimiento según la reivindicación 1, que comprende además aplicar el conjunto seleccionado de parámetros de CPB para la al menos una de las una o más imágenes CRA o las una o más imágenes BLA a una primera CPB incluida en un dispositivo de codificación de vídeo para asegurar que la primera CPB incluida en el dispositivo de codificación de vídeo no se desbordará durante la codificación de los datos de vídeo, y garantizar que una segunda CPB incluida en un dispositivo de descodificación de vídeo no se desborde al recibir un flujo de bits codificado generado por el dispositivo de codificación de vídeo.
  9. 9. Un dispositivo de codificación de vídeo para procesar datos de vídeo, comprendiendo el dispositivo:
    medios para recibir un flujo de bits que representa una pluralidad de imágenes incluyendo una o más imágenes de acceso aleatorio limpio (CRA) que tienen un tipo de unidad NAL que indica una imagen CRA con imágenes etiquetadas para descarte (tFD) asociadas, o una o más imágenes de acceso de enlace interrumpido (BLA) que tienen un tipo de unidad NAL que indica una imagen BLA con imágenes TFD asociadas, en el que las imágenes TFD son imágenes principales no descodificables;
    medios para recibir, desde un medio externo, un mensaje que indica si las imágenes TFD de al menos una de las una o más imágenes CRA o las una o más imágenes BLA fueron descartadas por los medios externos, y por lo tanto si usar un conjunto alternativo de parámetros de memoria intermedia de imágenes codificadas (CPB) para al menos una de las una o más imágenes CRA o las una o más imágenes BLA;
    medios para establecer una variable definida para indicar un conjunto predeterminado de parámetros de CPB para al menos una de las una o más imágenes CRA o las una o más imágenes BLA, basándose en el mensaje recibido, de modo que la variable indique el conjunto alternativo de parámetros CPB cuando las imágenes TFD fueron descartadas por los medios externos; y
    medios para seleccionar el conjunto alternativo de parámetros de CPB para la al menos una de las una o más imágenes CRA o las una o más imágenes BLA basándose en el valor de la variable UseAltCpbParamsFlag cuando la variable indica el conjunto alternativo de parámetros de CPB, o seleccionar un conjunto predeterminado de parámetros de CPB para al menos una de las una o más imágenes CRA o una o más imágenes BLA cuando la variable no indica el conjunto alternativo de parámetros de CPB.
  10. 10. Un medio legible por ordenador que comprende instrucciones para procesar datos de vídeo, en el que las instrucciones, cuando se ejecutan, hacen que uno o más procesadores realicen el procedimiento de cualquiera de las reivindicaciones 1-8.
ES13759642.5T 2012-09-20 2013-08-27 Codificación de vídeo con comportamientos de imagen de punto de acceso aleatorio mejorados Active ES2684546T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261703695P 2012-09-20 2012-09-20
US201261703695P 2012-09-20
US201313952340 2013-07-26
US13/952,340 US9374583B2 (en) 2012-09-20 2013-07-26 Video coding with improved random access point picture behaviors
PCT/US2013/056904 WO2014046850A1 (en) 2012-09-20 2013-08-27 Video coding with improved random access point picture behaviors

Publications (1)

Publication Number Publication Date
ES2684546T3 true ES2684546T3 (es) 2018-10-03

Family

ID=50274437

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13759642.5T Active ES2684546T3 (es) 2012-09-20 2013-08-27 Codificación de vídeo con comportamientos de imagen de punto de acceso aleatorio mejorados

Country Status (24)

Country Link
US (1) US9374583B2 (es)
EP (1) EP2898677B1 (es)
JP (1) JP6271558B2 (es)
KR (1) KR101721344B1 (es)
CN (1) CN104641637B (es)
AR (1) AR093236A1 (es)
AU (1) AU2013318467B2 (es)
BR (1) BR112015006059B1 (es)
CA (1) CA2883439C (es)
DK (1) DK2898677T3 (es)
ES (1) ES2684546T3 (es)
HK (1) HK1205841A1 (es)
HU (1) HUE039076T2 (es)
IL (1) IL237365B (es)
MY (1) MY181728A (es)
PH (1) PH12015500517A1 (es)
PT (1) PT2898677T (es)
RU (1) RU2624100C2 (es)
SG (1) SG11201501407TA (es)
SI (1) SI2898677T1 (es)
TW (1) TWI559774B (es)
UA (1) UA117462C2 (es)
WO (1) WO2014046850A1 (es)
ZA (1) ZA201502302B (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2813075A1 (en) * 2012-02-08 2014-12-17 Thomson Licensing Method and apparatus for using an ultra-low delay mode of a hypothetical reference decoder
US9351016B2 (en) 2012-04-13 2016-05-24 Sharp Kabushiki Kaisha Devices for identifying a leading picture
US20140003520A1 (en) * 2012-07-02 2014-01-02 Cisco Technology, Inc. Differentiating Decodable and Non-Decodable Pictures After RAP Pictures
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
US10264272B2 (en) * 2013-10-15 2019-04-16 Qualcomm Incorporated Device and method for scalable coding of video information
US9794558B2 (en) * 2014-01-08 2017-10-17 Qualcomm Incorporated Support of non-HEVC base layer in HEVC multi-layer extensions
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
US10715833B2 (en) * 2014-05-28 2020-07-14 Apple Inc. Adaptive syntax grouping and compression in video data using a default value and an exception value
US10116576B2 (en) * 2015-10-19 2018-10-30 Samsung Electronics Co., Ltd. Methods and apparatus for random access of HEVC bitstream for MMT
CN113228588A (zh) * 2018-12-27 2021-08-06 华为技术有限公司 关于视频译码中的帧内随机接入点图像和前置图像
MX2021010393A (es) 2019-03-01 2021-11-12 Fraunhofer Ges Forschung Decodificador de referencia hipotetico.
MX2021012094A (es) * 2019-04-03 2021-11-03 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes.
US11695965B1 (en) 2022-10-13 2023-07-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video coding using a coded picture buffer

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI249356B (en) * 2002-11-06 2006-02-11 Nokia Corp Picture buffering for prediction references and display
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US8358665B2 (en) 2008-08-15 2013-01-22 Qualcomm Incorporated Method and apparatus for controlling the presentation of multimedia data from a multiplex signal between devices in a local area network
US20100098156A1 (en) 2008-10-16 2010-04-22 Qualcomm Incorporated Weighted prediction based on vectorized entropy coding
JP5072893B2 (ja) * 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法
US8665964B2 (en) 2009-06-30 2014-03-04 Qualcomm Incorporated Video coding based on first order prediction and pre-defined second order prediction mode
US8537200B2 (en) 2009-10-23 2013-09-17 Qualcomm Incorporated Depth map generation techniques for conversion of 2D video data to 3D video data
US9516379B2 (en) 2011-03-08 2016-12-06 Qualcomm Incorporated Buffer management in video codecs
US8861599B2 (en) * 2011-03-08 2014-10-14 Sony Corporation Context reduction for last transform position coding
US9706227B2 (en) 2011-03-10 2017-07-11 Qualcomm Incorporated Video coding techniques for coding dependent pictures after random access
US9026671B2 (en) 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
JP5993453B2 (ja) 2011-07-15 2016-09-14 テレフオンアクチーボラゲット エルエム エリクソン(パブル) クリーンランダムアクセス画像に最下レイヤ識別情報を割り当てるための符号器およびその方法

Also Published As

Publication number Publication date
RU2015114441A (ru) 2016-11-10
PH12015500517B1 (en) 2015-04-27
SG11201501407TA (en) 2015-04-29
CA2883439C (en) 2017-08-01
DK2898677T3 (en) 2018-08-27
KR101721344B1 (ko) 2017-03-29
TW201424392A (zh) 2014-06-16
EP2898677A1 (en) 2015-07-29
AU2013318467B2 (en) 2017-04-20
PH12015500517A1 (en) 2015-04-27
BR112015006059B1 (pt) 2023-04-11
ZA201502302B (en) 2021-09-29
CN104641637A (zh) 2015-05-20
MY181728A (en) 2021-01-05
JP6271558B2 (ja) 2018-01-31
AU2013318467A1 (en) 2015-03-19
IL237365A0 (en) 2015-04-30
UA117462C2 (uk) 2018-08-10
HUE039076T2 (hu) 2018-12-28
EP2898677B1 (en) 2018-05-30
US20140079140A1 (en) 2014-03-20
US9374583B2 (en) 2016-06-21
SI2898677T1 (en) 2018-08-31
JP2015533048A (ja) 2015-11-16
IL237365B (en) 2018-05-31
WO2014046850A1 (en) 2014-03-27
PT2898677T (pt) 2018-10-08
AR093236A1 (es) 2015-05-27
RU2624100C2 (ru) 2017-06-30
CA2883439A1 (en) 2014-03-27
HK1205841A1 (en) 2015-12-24
TWI559774B (zh) 2016-11-21
BR112015006059A2 (pt) 2017-07-04
CN104641637B (zh) 2019-04-02
KR20150060776A (ko) 2015-06-03

Similar Documents

Publication Publication Date Title
ES2684546T3 (es) Codificación de vídeo con comportamientos de imagen de punto de acceso aleatorio mejorados
ES2744235T3 (es) Actualizaciones de conjuntos de parámetros en la codificación de vídeo
ES2608765T3 (es) Codificación de las unidades de la NAL de SEI para la codificación de vídeo
ES2715314T3 (es) Acceso aleatorio completo desde imágenes de acceso aleatorio limpio en codificación de vídeo
ES2657494T3 (es) Acceso aleatorio y señalización de imágenes de referencia a largo plazo en la codificación de vídeo
ES2780688T3 (es) Señalización para operaciones DPB basadas en un búfer de imágenes subdescodificadas (sub-DPB) en la codificación de vídeo
ES2701786T3 (es) Procesamiento de memoria intermedia de imágenes descodificadas para imágenes de punto de acceso aleatorio en secuencias de vídeo
ES2707892T3 (es) Operaciones de almacenamiento en memoria intermedia de vídeo para acceso aleatorio en la codificación de vídeo
ES2698554T3 (es) Acceso aleatorio con gestión avanzada de memoria intermedia de imágenes codificadas en codificación de vídeo
ES2647948T3 (es) Reutilización de conjuntos de parámetros para la codificación de vídeo
ES2913456T3 (es) Tiempos de llegada y de extracción nominal en memoria intermedia de imágenes codificadas en la codificación de vídeo
ES2884723T3 (es) Señalización de regiones de interés y actualización de decodificación gradual en la codificación de video
ES2899642T3 (es) Procesamiento en paralelo de mosaicos y de frente de onda
ES2748561T3 (es) Unidades de acceso IRAP y conmutación y empalme de flujos de bits
ES2765038T3 (es) Modelo de almacenamiento intermedio de bajo retardo en codificación de vídeo
ES2973247T3 (es) Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo
ES2613136T3 (es) Señalización condicional de información de temporización de recuento del orden de imágenes para la temporización de vídeo en la codificación de vídeo
ES2810202T3 (es) Adaptación de transmisión continua basada en imágenes de acceso aleatorio limpio (CRA)
ES2656470T3 (es) Mejora de los diseños de formato de la carga útil de RTP
ES2736312T3 (es) Señalización de imágenes de referencia a largo plazo para codificación de vídeo
BR112014033008B1 (pt) Conjunto de parâmetros de vídeo para hevc e extensões
ES2856099T3 (es) Señalización mejorada de identificadores de capa para puntos de operación de un codificador de vídeo
ES2696723T3 (es) Diseño del valor de POC para codificación de vídeo multicapa
ES2842082T3 (es) Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa
BR112016029668B1 (pt) Sinalização de parâmetros de hrd para partições de fluxo de bits