ES2824770T3 - Asignación de agrupación de mosaicos y muestras en formatos de archivo HEVC y L-HEVC - Google Patents

Asignación de agrupación de mosaicos y muestras en formatos de archivo HEVC y L-HEVC Download PDF

Info

Publication number
ES2824770T3
ES2824770T3 ES17726535T ES17726535T ES2824770T3 ES 2824770 T3 ES2824770 T3 ES 2824770T3 ES 17726535 T ES17726535 T ES 17726535T ES 17726535 T ES17726535 T ES 17726535T ES 2824770 T3 ES2824770 T3 ES 2824770T3
Authority
ES
Spain
Prior art keywords
fragment
region
mosaic
sample
file
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
ES17726535T
Other languages
English (en)
Inventor
Fnu Hendry
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 ES2824770T3 publication Critical patent/ES2824770T3/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Image Generation (AREA)

Abstract

Un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento: recibir, por un dispositivo informático, un flujo de bits que comprende un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectiva de la pluralidad de unidades NAL de fragmento codificado una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en el que: no se pueden deducir valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente a partir de los valores de cualquier segmento de fragmento precedente, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se puede deducir a partir de los valores para el segmento de fragmento independiente, la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico; y generar, por el dispositivo informático, un archivo que almacena el flujo de bits, en el que generar el archivo comprende: generar, por el dispositivo informático, en el archivo, una caja de muestra a grupo y una caja de descripción de grupo de muestras, conteniendo la caja de descripción de grupo de muestras una entrada de muestras de región de mosaicos asociada a la caja de muestra a grupo, asignando una entrada en la caja de muestra a grupo una muestra a la entrada de muestras de región de mosaicos, definiendo la entrada de muestras de región de mosaicos en la caja de descripción de grupo de muestras una región de mosaicos, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico.

Description

DESCRIPCIÓN
Asignación de agrupación de mosaicos y muestras en formatos de archivo HEVC y L-HEVC
CAMPO TÉCNICO
[0001] La presente divulgación se refiere a dispositivos informáticos para procesar datos de vídeo.
ANTECEDENTES
[0002] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, incluyendo televisiones digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, ordenadores de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos móviles o de radio por satélite, los denominados "teléfonos inteligentes", dispositivos de videoconferencia, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por 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, ITU-T H.264 o ISO/IEC MPEG-4 AVC, incluyendo sus ampliaciones de codificación de vídeo escalable (SVC) y codificación de vídeo multivista (MVC), y la codificación de vídeo de alta eficacia (HEVC), también conocida como ITU-T H.265 e ISO/IEC 23008-2, incluyendo su ampliación de codificación escalable (es decir, codificación de vídeo de alta eficacia escalable, SHVC) y su ampliación multivista (es decir, codificación de vídeo de alta eficacia multivista, MV-HEVC). HEVC y HEVC en capas ("L-HEVC" o "L-HEVC) también describen diversos formatos de archivo para el almacenamiento de HEVC y L-HEVC que se están desarrollando. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente implementando dichas técnicas de compresión de vídeo.
[0003] Las técnicas de compresión de vídeo realizan predicción espacial (intraimagen) y/o predicción temporal (interimagen) para reducir o eliminar la redundancia intrínseca a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo (es decir, una trama de vídeo o una parte de una trama de vídeo) se puede dividir en bloques de vídeo, que también se pueden denominar bloques en árbol, unidades de codificación (CU) y/o nodos de codificación, como se ejemplifica por Tammy Lee etal. (documento US2015/0023406, con fecha de publicación: 22-01-2015). Las imágenes se pueden denominar tramas, y las imágenes de referencia se pueden denominar tramas de referencia.
BREVE EXPLICACIÓN
[0004] Los aspectos de la presente divulgación en general se refieren a mejoras en los dispositivos informáticos que manejan la agrupación de mosaicos en formatos de archivo HEVC y HEVC en capas (L-HEVC). Un dispositivo informático, tal como un dispositivo de codificación de vídeo (por ejemplo, un codificador o descodificador compatible con HEVC, un dispositivo de generación de archivos, un elemento de red con reconocimiento de medios (MANE) u otro tipo de dispositivo informático, puede implementar diversas técnicas de la presente divulgación, independientemente o bien en diversas combinaciones.
[0005] En un ejemplo, la presente divulgación describe un procedimiento, un dispositivo informático correspondiente y un medio de almacenamiento correspondiente de procesamiento de datos de vídeo, comprendiendo el procedimiento, de acuerdo con la reivindicación 1 adjunta: recibir, por un dispositivo informático, un flujo de bits que comprende un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectiva de la pluralidad de unidades NAL de fragmento codificado una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en los que: no hay valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente que se puedan deducir a partir de los valores para cualquier segmento de fragmento precedente, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se pueden deducir a partir de valores para el segmento de fragmento independiente, la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico; y generar, por el dispositivo informático, un archivo que almacena el flujo de bits, en el que generar el archivo comprende:
generar, por el dispositivo informático, en el archivo, una caja de muestra a grupo y una caja de descripción de grupo de muestras, conteniendo la caja de descripción de grupo de muestras una entrada de muestras de muestra de región de mosaicos asociada a la caja de muestra a grupo, asignando una entrada en la caja de muestra a grupo una muestra a la entrada de muestras de región de mosaicos, definiendo la entrada de muestras de región de mosaicos en la caja de descripción de grupo de muestras una región de mosaicos, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico.
[0006] En otro ejemplo, que no es parte de la invención, la presente divulgación describe un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento: recibir, por un dispositivo informático, un archivo que almacena un flujo de bits, comprendiendo el flujo de bits un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectivo de la pluralidad de unidades NAL de fragmento codificado una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en los que: no hay valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente que se puedan deducir a partir de los valores para cualquier segmento de fragmento precedente, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se pueden deducir a partir de los valores para el segmento de fragmento independiente, la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico, y se define una región de mosaicos en el archivo, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico; y usar, por el dispositivo informático, el archivo para al menos uno de: reproducción de archivos de medios locales o descarga progresiva de datos en el archivo a un dispositivo remoto.
[0007] En otro ejemplo, que no es parte de la invención, la presente divulgación describe un dispositivo informático para generar un archivo para el almacenamiento de datos de vídeo, comprendiendo el dispositivo informático: una memoria configurada para almacenar el archivo; y uno o más procesadores configurados para: recibir un flujo de bits que comprende un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectivo de la pluralidad de unidades NAL de fragmento codificado una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en los que: no hay valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente que se puedan deducir a partir de los valores para cualquier segmento de fragmento precedente, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se pueden deducir a partir de los valores para el segmento de fragmento independiente, la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico; y generar un archivo que almacena el flujo de bits, en el que generar el archivo comprende definir una región de mosaicos en el archivo, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico.
[0008] En otro ejemplo, que no es parte de la invención, la presente divulgación describe un dispositivo informático para procesar un archivo para el almacenamiento de datos de vídeo, comprendiendo el dispositivo informático: una memoria configurada para almacenar el archivo; y uno o más procesadores configurados para: recibir un archivo que almacena un flujo de bits, comprendiendo el flujo de bits un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectivo de la pluralidad de unidades NAL de fragmento codificado una carga de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en los que: no hay valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente que se puedan deducir a partir de los valores para cualquier segmento de fragmento precedente, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se pueden deducir a partir de los valores para el segmento de fragmento independiente, la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico, una región de mosaicos se define en el archivo, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico; y usar el archivo para al menos uno de: reproducción de archivos de medios locales o descarga progresiva de datos en el archivo a un dispositivo remoto.
[0009] En otro ejemplo, que no es parte de la invención, la presente divulgación describe un aparato para generar un archivo para almacenamiento de datos de vídeo, comprendiendo el aparato: medios para recibir un flujo de bits que comprende un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectivo de la pluralidad de unidades NAL de fragmento codificado una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en los que: no hay valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente que se puedan deducir a partir de los valores para cualquier segmento de fragmento precedente, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se pueden deducir a partir de los valores para el segmento de fragmento independiente, la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico; y medios para generar un archivo que almacena el flujo de datos, en el que generar el archivo comprende definir una región de mosaicos en el archivo, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico.
[0010] En otro ejemplo, que no es parte de la invención, la presente divulgación describe un aparato para procesar un archivo para almacenamiento de datos de vídeo, comprendiendo el aparato: medios para recibir un archivo que almacena un flujo de bits, comprendiendo el flujo de bits un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectivo de la pluralidad de unidades NAL de fragmento codificado una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en los que: no hay valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente que se puedan deducir a partir de los valores para cualquier segmento de fragmento precedente, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se pueden deducir a partir de los valores para el segmento de fragmento independiente, la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico, y se define una región de mosaicos en el archivo, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico; y medios para usar el archivo para al menos uno de: reproducción de archivos de medios locales o descarga progresiva de datos en el archivo a un dispositivo remoto.
[0011] En otro ejemplo, que no es parte de la invención, la presente divulgación describe un medio de almacenamiento legible por ordenador codificado con instrucciones que, cuando se ejecutan, configuran un procesador de un dispositivo para: recibir un flujo de bits que comprende un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectivo de la pluralidad de unidades NAL de fragmento codificado una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en los que: no hay valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente que se puedan deducir a partir de los valores para cualquier segmento de fragmento precedente, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se pueden deducir a partir de los valores para el segmento de fragmento independiente, la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico; y generar un archivo que almacena el flujo de bits, en el que generar el archivo comprende definir una región de mosaicos en el archivo, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico.
[0012] En otro ejemplo, que no es parte de la invención, la presente divulgación describe un medio de almacenamiento legible por ordenador codificado con instrucciones que, cuando se ejecutan, configuran un procesador de un dispositivo para: recibir un archivo que almacena un flujo de bits, comprendiendo el flujo de bits un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectivo de la pluralidad de unidades NAL de fragmento codificado una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en los que: no hay valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente que se puedan deducir a partir de los valores para cualquier segmento de fragmento precedente, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se pueden deducir a partir de los valores para el segmento de fragmento independiente, la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico, y se define una región de mosaicos en el archivo, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico; y usar el archivo para al menos uno de: reproducción de archivos de medios locales o descarga progresiva de datos en el archivo a un dispositivo remoto.
[0013] Los detalles de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y en la descripción a continuación. Otros rasgos característicos, objetivos y ventajas resultarán evidentes a partir de la descripción, los dibujos y las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0014]
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 usar las técnicas descritas en la presente divulgación.
La FIG. 2 es un diagrama conceptual que ilustra mosaicos y fragmentos de ejemplo.
La FIG. 3 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo que se puede usar con las técnicas descritas en la presente divulgación.
La FIG. 4 es un diagrama de bloques que ilustra un descodificador de vídeo de ejemplo que se puede usar con las técnicas descritas en la presente divulgación.
La FIG. 5 es un diagrama de bloques que ilustra un conjunto de dispositivos de ejemplo que forman parte de una red.
La FIG. 6 es un diagrama conceptual que ilustra una estructura de ejemplo de un archivo, de acuerdo con una o más técnicas de la presente divulgación.
La FIG. 7 es un diagrama de flujo que ilustra un funcionamiento de ejemplo de un dispositivo informático de acuerdo con una técnica de la presente divulgación.
La FIG. 8 es un diagrama de flujo que ilustra un funcionamiento de ejemplo de un dispositivo informático para procesar un archivo, de acuerdo con una técnica de la presente divulgación.
DESCRIPCIÓN DETALLADA
[0015] En la codificación de vídeo de alta eficacia (HEVC) y otras normas de codificación de vídeo, las imágenes se dividen en fragmentos y mosaicos. Un fragmento es un número entero de unidades de árbol de codificación (CTU) contenidas en un segmento de fragmento independiente y todos los segmentos de fragmento dependientes posteriores (si los hubiera) que preceden al siguiente segmento de fragmento independiente (si lo hubiera) dentro de la misma unidad de acceso. Una unidad de árbol de codificación (CTU) de una imagen puede comprender uno o más CTB y puede comprender estructuras de sintaxis usadas para codificar las muestras de los uno o más bloques de árbol de codificación (CTB). Un CTB puede ser un bloque NxN de muestras de píxel en una matriz de muestra de una imagen. Un segmento de fragmento es un número entero de CTU ordenadas consecutivamente en la exploración de mosaicos y contenidas en una única unidad de capa de abstracción de red (NAL). Un segmento de fragmento independiente es un segmento de fragmento para el que los valores de los elementos de sintaxis de la cabecera del segmento de fragmento no se pueden deducir a partir de los valores para un segmento de fragmento precedente. Un segmento de fragmento dependiente es un segmento de fragmento para el que los valores de algunos elementos de sintaxis de la cabecera del segmento de fragmento se pueden deducir a partir de los valores para el segmento de fragmento independiente precedente en orden de descodificación.
[0016] Un mosaico es una región rectangular de las CTU dentro de una columna de mosaicos particular y una fila de mosaicos particular en una imagen. Una columna de mosaicos es una región rectangular de las CTU que tiene una altura igual a una altura de la imagen y un ancho señalado en un flujo de bits, tal como en un conjunto de parámetros de imagen (PPS) en el flujo de bits. Una fila de mosaicos es una región rectangular de las CTU que tiene un ancho igual a un ancho de la imagen y una altura señalada en el flujo de bits, tal como en un PPS. Un mosaico puede consistir en las CTU contenidas en más de un fragmento. De forma similar, un fragmento puede consistir en las CTU contenidas en más de un mosaico. Sin embargo, se debe cumplir una o ambas de las siguientes condiciones para cada fragmento y mosaico: (1) todas las CTU en un fragmento pertenecen al mismo mosaico, y (2) todas las CTU en un mosaico pertenecen al mismo fragmento. Además, se debe cumplir una o ambas de las siguientes condiciones para cada segmento de fragmento y mosaico: (1) todas las CTU en un segmento de fragmento pertenecen al mismo mosaico, y (2) todas las CTU en un mosaico pertenecen al mismo segmento de fragmento.
[0017] En algunos ejemplos, las CTU dentro de uno o más mosaicos de una imagen se pueden descodificar sin referencia a las CTU en otros mosaicos de la imagen, pero pueden depender de imágenes de referencia temporales o entre capas. En los casos donde un descodificador de vídeo puede descodificar un mosaico de una imagen sin referencia a otros mosaicos de la imagen, el descodificador de vídeo puede descodificar las CTU en el mosaico sin acceder a las CTU codificadas de otros mosaicos de la imagen. Por ejemplo, si el mosaico corresponde al cuarto superior derecho de la imagen, el descodificador de vídeo no necesita recibir las CTU codificadas de los otros tres cuartos de la imagen. Esto puede ser útil en una variedad de situaciones. Por ejemplo, si un dispositivo tiene una pantalla pequeña y los mosaicos superiores derechos de las imágenes de un vídeo son de interés principal, puede ser deseable visualizar solo los mosaicos superiores derechos de las imágenes. En consecuencia, el dispositivo puede descargar y descodificar las CTU codificadas de los mosaicos superiores derechos de las imágenes sin descargar o descodificar las CTU codificadas de los otros mosaicos de las imágenes. Además, esto puede ser especialmente útil en el contexto de la realidad virtual (VR). En el contexto de la realidad virtual, un usuario solo ve una parte de una escena de 360 grados en un momento dado. Al dividir la escena de 360 grados en mosaicos, un dispositivo puede descargar y/o descodificar solo los mosaicos de la escena de 360 grados que el usuario está viendo actualmente. Sin embargo, puede haber dependencias de análisis sintáctico entre mosaicos en una imagen. Por ejemplo, las CTU que se producen en primer lugar en el orden de descodificación en un mosaico particular pueden estar en un segmento de fragmento dependiente. Por tanto, en este ejemplo, puede ser necesario analizar sintácticamente un segmento independiente correspondiente que contenga las CTU codificadas de otro mosaico antes de poder analizar sintácticamente las CTU del mosaico particular.
[0018] Los archivos que se ajustan a diversos formatos de archivo se pueden usar para almacenar datos de vídeo codificados. Dichos formatos de archivo incluyen el formato de archivo de medios base de la Organización Internacional de Normalización ("ISO") (ISOBMFF, ISO/IEC 14496-12), y otras normas derivadas de la ISOBMFF, incluyendo el formato de archivo MPEG-4 (ISO/IEC 14496-15), el formato de archivo 3GPP (3GPP TS 26.244) y el formato de archivo AVC (ISO/IEC 14496-15). Los archivos que se ajustan al ISOBMFF pueden incluir metadatos además de los datos de vídeo codificados. Los metadatos pueden ayudar a un dispositivo informático a localizar y extraer los datos de vídeo codificados deseados dentro del archivo sin que el dispositivo informático necesite interpretar o descodificar los datos de vídeo codificados. En algunos ejemplos, después de localizar los datos de vídeo codificados deseados en el archivo, el dispositivo informático puede descodificar los datos de vídeo codificados deseados sin necesidad de descodificar otros datos de vídeo codificados en el archivo. En algunos ejemplos, después de localizar los datos de vídeo codificados deseados en el archivo, el dispositivo informático puede transmitir los datos de vídeo codificados deseados a otro dispositivo sin transmitir otros datos de vídeo codificados en el archivo. Por los motivos analizados anteriormente, los datos de vídeo codificados deseados pueden corresponder a mosaicos particulares de imágenes de los datos de vídeo.
[0019] Una ampliación del ISOBMFF para el transporte de vídeo estructurado de la unidad de capa de abstracción de red (NAL) (a continuación en el presente documento, ISO/IEC FDIS 144916-15:2014) especifica mecanismos que posibilitan a un dispositivo informático localizar datos de vídeo codificados correspondientes a mosaicos particulares. Por ejemplo, ISO/IEC FDIS 144916-15:2014 define los conceptos de una región de mosaicos rectangular y una región de mosaicos sin restricciones. En ISO/IEC FDIS 144916-15:2014, una región de mosaicos rectangular se define como cualquier número entero de mosaicos HEVC que forman una región rectangular codificada en uno o más fragmentos que no contienen ningún otro mosaico HEVC y que pueden, pero no necesariamente, ser contiguos en el orden de descodificación. Además, en ISO/IEC FDIS 144916-15:2014, una región de mosaicos sin restricciones se define como cualquier número de fragmentos completos que consisten en uno o más mosaicos HEVC completos y que no necesitan ser contiguos en el orden de descodificación. Un archivo puede incluir metadatos que indican cómo localizar datos de vídeo codificados para regiones de mosaicos rectangulares y regiones de mosaicos sin restricciones.
[0020] Las definiciones de regiones de mosaicos rectangulares y regiones de mosaicos sin restricciones en ISO/iEc FDIS 144916-15:2014 tienen varias deficiencias. Por ejemplo, ISO/IEC FDIS 144916-15:2014 define las regiones de mosaicos rectangulares y regiones de mosaicos sin restricciones en términos de fragmentos. Sin embargo, debido a que un fragmento puede incluir las CTU de múltiples mosaicos, puede surgir la situación de que una región de mosaicos rectangular o una región de mosaicos sin restricciones puede incluir un fragmento que incluye segmentos de fragmento que contienen las CTU de un mosaico no deseado. Por ejemplo, una imagen puede tener un fragmento y se puede dividir en un primer mosaico y un segundo mosaico. En este ejemplo, un primer grupo de segmentos de fragmento del fragmento puede incluir las CTU en el primer mosaico y un segundo grupo de segmentos de fragmento del fragmento puede incluir las CTU en el segundo mosaico. Además, en este ejemplo, puede ser deseable definir una región de mosaicos rectangular que comprenda el primer mosaico, pero no el segundo mosaico. Sin embargo, debido a que ISO/IEC FDIS 144916-15:2014 define las regiones de mosaicos rectangulares y las regiones de mosaicos sin restricciones en términos de fragmentos en lugar de segmentos de fragmento, en ISO/IEC FDIS 14416-15:2014 no está claro si una región de mosaicos se puede definir para incluir un mosaico particular si un siguiente mosaico en el orden de descodificación no está en la región de mosaicos y no comienza con un segmento de fragmento independiente (es decir, si el mosaico particular incluye las CTU de un fragmento y el fragmento incluye las CTU en un mosaico que no está en la región de mosaicos). Esta falta de claridad puede dar como resultado que los dispositivos informáticos generen errores o que los dispositivos informáticos necesiten una complejidad adicional para manejar la ambigüedad. Los errores o bien la complejidad adicional pueden disminuir el rendimiento de los dispositivos informáticos.
[0021] Como se describe con mayor detalle a continuación, las técnicas de la presente divulgación definen los conceptos de regiones de mosaicos rectangulares y regiones de mosaicos sin restricciones al nivel de un segmento de fragmento en lugar de un fragmento completo. En consecuencia, dichas técnicas pueden ayudar a un dispositivo informático a evitar errores y complejidad adicional, mejorando potencialmente de este modo el dispositivo informático.
[0022] La FIG. 1 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo 10 de ejemplo que puede usar las técnicas descritas en la presente divulgación. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo de origen 12 que genera los datos de vídeo codificados que se van a descodificar en un momento posterior por un dispositivo de destino 14. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera de una amplia gama de dispositivos, incluyendo ordenadores de escritorio, ordenadores plegables (es decir, portátiles), ordenadores de tableta, descodificadores, equipos telefónicos tales como los denominados teléfonos "inteligentes", los denominados paneles "inteligentes", televisiones, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión continua de vídeo o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicación inalámbrica. El dispositivo de origen 12 y el dispositivo de destino 14 se pueden considerar dispositivos de vídeo.
[0023] 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, una memoria 21 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/desmodulador (módem) y/o un transmisor. En el dispositivo de origen 12, la fuente de vídeo 18 puede incluir una fuente tal como un dispositivo de captación de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contenga un vídeo captado previamente, una interfaz de alimentación de vídeo para recibir un vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de gráficos por ordenador como el vídeo de origen, o una combinación de dichas fuentes. Sin embargo, las técnicas descritas en la presente divulgación pueden ser aplicables a la codificación de vídeo en general, y se pueden aplicar a aplicaciones inalámbricas y/o por cable. En cada caso, se puede codificar el vídeo captado, precaptado o generado por ordenador por el codificador de vídeo 20. La memoria 21 se puede configurar para almacenar datos de vídeo en forma codificada o no codificada. En algunos ejemplos, la memoria 21 puede almacenar un archivo para el almacenamiento de datos de vídeo.
[0024] El codificador de vídeo 20 puede codificar el vídeo captado, precaptado o generado por ordenador. El dispositivo de origen 12 puede transmitir los datos de vídeo codificados directamente al dispositivo de destino 14 por medio de una interfaz de salida 22 del dispositivo de origen 12. Los datos de vídeo codificados también se pueden almacenar (o de forma alternativa) en el dispositivo de almacenamiento 33 para un acceso posterior por el dispositivo de destino 14 u otros dispositivos, para su descodificación y/o reproducción.
[0025] El dispositivo de destino 14 incluye una interfaz de entrada 28, una memoria 29, un descodificador de vídeo 30 y un dispositivo de visualización 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de vídeo codificados sobre el enlace 16. Los datos de vídeo codificados comunicados sobre el enlace 16, o proporcionados en el dispositivo de almacenamiento 33, pueden incluir una variedad de elementos de sintaxis generados por el codificador de vídeo 20 para su uso por un descodificador de vídeo, tal como el descodificador de vídeo 30, en la descodificación de los datos de vídeo. Dichos elementos de sintaxis se pueden incluir con los datos de vídeo codificados transmitidos en un medio de comunicación, almacenar en un medio de almacenamiento o almacenar en un servidor de archivos. La memoria 29 se puede configurar para almacenar datos de vídeo, tales como datos de vídeo codificados (por ejemplo, un flujo de bits) recibidos por la interfaz de entrada 28, datos de vídeo descodificados, un archivo para el almacenamiento de datos de vídeo y así sucesivamente.
[0026] El dispositivo de visualización 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también se puede configurar para interactuar con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 32 visualiza los datos de vídeo descodificados ante un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0027] El codificador de vídeo 20 y el descodificador de vídeo 30 se pueden implementar cada uno como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas 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 usando uno o más procesadores para realizar las técnicas de la presente divulgación. Cada uno del codificador de vídeo 20 y el descodificador de vídeo 30 se pueden incluir en uno o más codificadores o descodificadores, de los que cualquiera se puede integrar como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
[0028] La interfaz de salida 22 puede emitir datos codificados a un dispositivo de almacenamiento 33. De forma similar, la interfaz de entrada 28 puede acceder al dispositivo de almacenamiento de datos codificados 33. El dispositivo de almacenamiento 33 puede incluir cualquiera de una variedad de medios de almacenamiento de datos de acceso local o distribuidos, tales como una unidad de disco duro, discos Blu-ray, DVD, CD-ROM, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo de almacenamiento 33 puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que puede contener el vídeo codificado generado por el dispositivo de origen 12. En los ejemplos donde la interfaz de salida 22 comprende un transmisor inalámbrico, la interfaz de salida 22 se puede configurar para transmitir datos, tales como datos de vídeo codificados, modulados de acuerdo con una norma de comunicación móvil, tal como 4G, 4G-LTE, LTE avanzada, 5G y similares. En algunos ejemplos donde la interfaz de salida 22 comprende un transmisor inalámbrico, la interfaz de salida 22 se puede configurar para transmitir datos, tales como datos de vídeo codificados, modulados de acuerdo con otras normas inalámbricas, tales como una norma IEEE 802.11, una norma IEEE 802.15 (por ejemplo, ZigBee™), una norma Bluetooth™ y similares. En algunos ejemplos, los circuitos de la interfaz de salida 22 están integrados en los circuitos del codificador de vídeo 20 y/u otros componentes del dispositivo de origen 12. Por ejemplo, el codificador de vídeo 20 y la interfaz de salida 22 pueden ser partes de un sistema en un chip (SoC). El SoC también puede incluir otros componentes, tales como un microprocesador de propósito general, una unidad de procesamiento gráfico, etc.
[0029] El dispositivo de destino 14 puede recibir los datos de vídeo codificados que se vayan a descodificar por medio de un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo que pueda mover los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicación para posibilitar que el dispositivo de origen 12 transmita los datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados se pueden modular de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitir al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o por cable, tal como un espectro de radiofrecuencia (RF) o una o más líneas físicas de transmisión. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global, tal como Internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
[0030] La interfaz de entrada 28 del dispositivo de destino 14 recibe datos desde el enlace 16. La interfaz de entrada 28 puede comprender diversos tipos de componentes o dispositivos. Por ejemplo, la interfaz de entrada 28 puede comprender un receptor inalámbrico, un módem, un componente de red con cable (por ejemplo, una tarjeta Ethernet) u otro componente físico. En los ejemplos donde la interfaz de entrada 28 comprende un receptor inalámbrico, la interfaz de entrada 28 se puede configurar para recibir datos, tales como el flujo de bits, modular de acuerdo con una norma de comunicación móvil, tal como 4G, 4G-LTE, LTE avanzada, 5g y similares. En algunos ejemplos donde la interfaz de entrada 28 comprende un receptor inalámbrico, la interfaz de entrada 28 se puede configurar para recibir datos, tales como el flujo de bits, modular de acuerdo con otras normas inalámbricas, tales como una especificación IEEE 802.11, una especificación IEEE 802.15 (por ejemplo, ZigBee™), una norma Bluetooth™ y similares. En algunos ejemplos, los circuitos de la interfaz de entrada 28 se puede integrar en los circuitos del descodificador de vídeo 30 y/u otros componentes del dispositivo de destino 14. Por ejemplo, el descodificador de vídeo 30 y la interfaz de entrada 28 pueden ser partes de un SoC. El SoC también puede incluir otros componentes, tales como un microprocesador de propósito general, una unidad de procesamiento gráfico, etc.
[0031] El dispositivo de destino 14 puede acceder a datos de vídeo almacenados desde el dispositivo de almacenamiento 33 por medio de transmisión continua o descarga. El servidor de archivos puede ser cualquier tipo de servidor que pueda almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Los servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para una página web), un servidor FTP, dispositivos de almacenamiento conectados en red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, DSL, módem de cable, etc.) o una combinación de ambas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento 33 puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas.
[0032] Las técnicas de la presente divulgación no están limitadas necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como radiodifusiones de televisión por el aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo por transmisión continua, por ejemplo, por medio de Internet, codificación de vídeo digital para su almacenamiento en un medio de almacenamiento de datos, descodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 se puede configurar para admitir una transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión continua de vídeo, reproducción de vídeo, radiodifusión de vídeo y/o videotelefonía.
[0033] Además, en el ejemplo de la FIG. 1, el sistema de codificación de vídeo 10 incluye un dispositivo de generación de archivos 34. El dispositivo de generación de archivos 34 puede recibir datos de vídeo codificados (por ejemplo, un flujo de bits) generados por el dispositivo de origen 12. El dispositivo de generación de archivos 34 puede generar un archivo que incluye los datos de vídeo codificados. El dispositivo de destino 14 puede recibir el archivo generado por el dispositivo de generación de archivos 34. En diversos ejemplos, el dispositivo de generación de archivos 34 puede incluir diversos tipos de dispositivos informáticos. Por ejemplo, el dispositivo de generación de archivos 34 puede comprender un elemento de red con reconocimiento de medios (MANE), un dispositivo informático de servidor, un dispositivo informático personal, un dispositivo informático de propósito especial, un dispositivo informático comercial u otro tipo de dispositivo informático. En algunos ejemplos, el dispositivo de generación de archivos 34 es parte de una red de entrega de contenido. El dispositivo de generación de archivos 34 puede recibir los datos de vídeo codificados desde el dispositivo de origen 12 por medio de un canal tal como el enlace 16. Además, el dispositivo de destino 14 puede recibir el archivo desde el dispositivo de generación de archivos 34 por medio de un canal tal como el enlace 16. El dispositivo de generación de archivos 34 se puede considerar un dispositivo de vídeo. El dispositivo de generación de archivos 34 se puede implementar cada uno como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas 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 usando uno o más procesadores para realizar las técnicas de la presente divulgación. El dispositivo de generación de archivos 34 puede comprender una memoria configurada para almacenar un archivo para el almacenamiento de datos de vídeo.
[0034] En otros ejemplos, el dispositivo de origen 12 u otro dispositivo informático genera un archivo que incluye los datos de vídeo codificados. Sin embargo, para facilitar la explicación, la presente divulgación describe que el dispositivo de generación de archivos 34 genera el archivo. No obstante, se debe entender que dichas descripciones son aplicables a los dispositivos informáticos en general.
[0035] En algunos ejemplos, el codificador de vídeo 20 y el descodificador de vídeo 30 funcionan de acuerdo con una norma de compresión de vídeo, tal como la norma de codificación de vídeo de alta eficacia (HEVC) o una ampliación de la misma. La norma HEVC también se puede denominar ISO/IEC 23008-2. Un borrador de la especificación de HEVC, y denominado HEVC WD a continuación en el presente documento, está disponible en http://phenix.int-evry.frjct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1 .zip. La ampliación multivista de la HEVC, a saber, la MV-HEVC también se está desarrollando por el JCT-3V. Un reciente borrador de trabajo (WD) de m V-HEVC, titulado "MV-HEVC Draft Text 5" y denominado MV-HEVC WD5 a continuación en el presente documento, está disponible en http://phenix.itsudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1004-v6.zip. La ampliación escalable de la HEVC, denominada SHV, también se está desarrollando por el JCT-VC. Un reciente borrador de trabajo (WD) de SHVC, titulado "High efficiency vídeo coding (HEVC) scalable extension draft 3" y denominado SHVC WD3 a continuación en el presente documento, está disponible en http://phenix.itsudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11JJCTVC-N1008-v3.zip. Un reciente borrador de trabajo (WD) de la ampliación de rango de HEVC, está disponible en http://phenix.intevry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1005-v3.zip. Un reciente borrador de trabajo (WD) de la ampliación 3D de HEVC, a saber, 3D-HEVC, titulado "3D-HEVC Draft Text 1" está disponible en http://phenix.int-evry.fr/jct2/doc_end_user/documents/5_Vienna/wg11JJCT3V-E1001-v3.zip. El codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con una o más de estas normas.
[0036] De forma alternativa, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden funcionar de acuerdo con otras normas privadas o industriales, tales como la norma ITU-T H.264, denominada de forma alternativa MPEG-4, parte 10, codificación avanzada de vídeo (AVC), o ampliaciones de dichas normas. Sin embargo, las técnicas de la presente divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de compresión de vídeo incluyen ITU-T H.261, ISO/IEC MPEG-1 visual, ITU-T H.262 o ISO/IEC MPEG-2 visual, ITU-T H.263, ISO/IEC MPEG-4 visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones de codificación de vídeo escalable (SVC) y codificación de vídeo multivista (MVC).
[0037] Aunque no se muestra en la FIG. 1, en algunos aspectos, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar integrados cada uno con un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX apropiadas, u otro hardware y software, para manejar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si procede, en algunos ejemplos, las unidades MUX-DEMUX se pueden ajustar al protocolo de multiplexación ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0038] En general, HEVC describe que una trama o imagen de vídeo se divide 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 bloques arbolados también se pueden denominar unidades de árbol de codificación (CTU). Un fragmento incluye una serie de bloques arbolados consecutivos en orden de codificación. Una trama o imagen de vídeo se puede dividir en uno o más fragmentos. Cada bloque arbolado se puede separar en unidades de codificación (CU) de acuerdo con un árbol cuaternario. Por ejemplo, un bloque arbolado, como un nodo raíz del árbol cuaternario, se puede separar en cuatro nodos hijo, y cada nodo hijo puede, a su vez, ser un nodo padre y separarse en otros cuatro nodos hijo. Un nodo hijo final, no separado, como un nodo hoja del árbol cuaternario, comprende un nodo de codificación, es decir, un bloque de vídeo codificado. Los datos de sintaxis asociados a un flujo de bits codificado pueden definir un número máximo de veces que se puede separar un bloque arbolado, y también pueden definir un tamaño mínimo de los nodos de codificación.
[0039] Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas al nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y debe tener conformación 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 mayor. Cada CU puede contener una o más PU y una o más TU. Los datos de sintaxis asociados a una CU pueden describir, por ejemplo, la división de la CU en una o más PU. Los modos de división pueden diferir entre si la CU está codificada en modo directo o de salto, codificada en modo de intrapredicción o codificada en modo de interpredicción. Las PU se pueden dividir para tener una conformación no cuadrada. Los datos de sintaxis asociados a una CU también pueden describir, por ejemplo, la división de la CU en una o más TU de acuerdo con un árbol cuaternario. Una TU puede tener una conformación cuadrada o no cuadrada.
[0040] HEVC permite transformaciones de acuerdo con las TU, que pueden ser diferentes para CU diferentes. El tamaño de las TU se basa típicamente en el tamaño de las PU dentro de una CU dada definida para una LCU dividida, aunque puede que no sea siempre así. Las TU son típicamente del mismo tamaño o más pequeñas que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU se pueden subdividir en unidades más pequeñas usando una estructura de árbol cuaternario conocida como "árbol cuaternario residual" (RQT). Los nodos hoja del RQT se pueden denominar TU. Los valores de diferencias de píxeles asociados a las TU se pueden transformar para producir coeficientes de transformada, que se pueden cuantificar.
[0041] En general, una PU incluye datos relacionados con el procedimiento de predicción. Por ejemplo, cuando la PU se codifica en intramodo, la PU puede incluir datos que describen un modo de intrapredicción para la PU. Como otro ejemplo, cuando la PU se codifica en intermodo, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, una componente horizontal del vector de movimiento, una componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, precisión de un cuarto de píxel o precisión de un octavo de píxel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imágenes de referencia (por ejemplo, lista 0, lista 1 o lista C) para el vector de movimiento.
[0042] En general, se usa una TU para los procedimientos de transformada y cuantificación. Una CU dada que tiene una o más PU también puede incluir una o más TU. Tras la predicción, el codificador de vídeo 20 puede calcular valores residuales correspondientes a la PU. Los valores residuales comprenden valores de diferencias de píxeles que se pueden transformar en coeficientes de transformada, cuantificar y explorar usando las TU, para producir coeficientes de transformada en serie para la codificación por entropía. La presente divulgación usa típicamente el término "bloque de vídeo" para referirse a un nodo de codificación (es decir, un bloque de codificación) de una CU. En algunos casos específicos, la presente divulgación también puede usar el término "bloque de vídeo" para referirse a un bloque arbolado, es decir, una LCU o una CU, que incluye un nodo de codificación y PU y TU.
[0043] Una secuencia de vídeo incluye típicamente una serie de tramas o imágenes de vídeo. Un grupo de imágenes (GOP) comprende, en general, una serie de una o más de las imágenes de vídeo. Un GOP puede incluir datos de sintaxis en una cabecera del GOP, una cabecera de una o más de las imágenes, o en otras ubicaciones, que describen una serie de imágenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos de sintaxis de fragmento que describen un modo de codificación para el fragmento respectivo. El codificador de vídeo 20 funciona típicamente en bloques de vídeo dentro de fragmentos de vídeo individuales para codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden tener tamaños fijos o variables y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
[0044] En la presente divulgación, ''NxN'' y "N por N" se pueden usar de manera intercambiable para hacer referencia a las dimensiones de píxeles de un bloque de vídeo en términos de dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 16x16 tiene 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Asimismo, un bloque de NxN tiene, en general, N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles de un bloque se pueden disponer en filas y columnas. Además, no es necesario que los bloques tengan necesariamente el mismo número de píxeles en la dirección horizontal que en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
[0045] T ras la codificación de intrapredicción o interpredicción usando las PU de una CU, el codificador de vídeo 20 puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos de píxeles en el dominio espacial (también denominado dominio de píxel) y las TU pueden comprender coeficientes en el dominio de transformada tras la aplicación de una transformada, por ejemplo, una transformada discreta de coseno (DCT), una transformada de enteros, una transformada de ondículas o una transformada conceptualmente similar a los datos de vídeo residuales. Los datos residuales pueden corresponder a diferencias de píxeles entre píxeles de la imagen no codificada y valores de predicción correspondientes a las PU. El codificador de vídeo 20 puede formar las TU, incluyendo los datos residuales para la CU y, a continuación, transformar las TU para producir coeficientes de transformada para la CU.
[0046] T ras cualquier transformada para producir coeficientes de transformada, el codificador de vídeo 20 puede realizar la cuantificación de los coeficientes de transformada. La cuantificación se refiere, en general, a un procedimiento en el que coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando compresión adicional. El procedimiento de cuantificación puede reducir la profundidad de bits asociada a algunos de, o todos, los coeficientes. Por ejemplo, un valor de n bits se puede redondear a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
[0047] Después de explorar los coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador de vídeo 20 puede codificar por entropía el vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC), la codificación aritmética binaria adaptativa al contexto basada en la sintaxis (SBAC), la codificación por entropía por división de intervalos de probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador de vídeo 20 también puede codificar por entropía los elementos de sintaxis asociados a los datos de vídeo, para su uso por el descodificador de vídeo 30 en la descodificación de los datos de vídeo.
[0048] El codificador de vídeo 20 puede emitir un flujo de bits que incluya una secuencia de bits que forme una representación de imágenes codificadas y datos asociados. El término "flujo de bits" puede ser un término colectivo usado para referirse a un flujo de unidades de capa de abstracción de red (NAL) (por ejemplo, una secuencia de unidades NAL) o bien un flujo de octetos (por ejemplo, una encapsulación de un flujo de unidades NAL que contiene prefijos de código de inicio y unidades NAL como se especifica en el Anexo B de la norma HEVC). Una unidad NAL es una estructura de sintaxis que contiene una indicación del tipo de datos en la unidad NAL y octetos que contienen esos datos en forma de una carga útil de secuencia de octetos sin procesar (RBSP) entremezclados como sea necesario con bits de prevención de emulación. Cada una de las unidades NAL puede incluir una cabecera de unidad NAL y puede encapsular una RBSP. La cabecera de unidad NAL puede incluir un elemento de sintaxis que indica un código de tipo de unidad NAL. El código de tipo de unidad NAL especificado por la cabecera de unidad NAL de una unidad NAL indica el tipo de la unidad NAL. Una RBSP puede ser una estructura de sintaxis que contenga un número entero de octetos que esté encapsulado dentro de una unidad NAL. En algunos casos, una RBSP incluye cero bits.
[0049] Diferentes tipos de unidades NAL pueden encapsular diferentes tipos de RBSP. Por ejemplo, un primer tipo de unidad de NAL puede encapsular una RBSP para un conjunto de parámetros de imagen (PPS), un segundo tipo de unidad de NAL puede encapsular una RBSP para un segmento de fragmento, un tercer tipo de unidad de NAL puede encapsular una RBSP para información de mejora complementaria (SEI) y así sucesivamente. Las unidades NAL que encapsulan las RBSP para datos de codificación de vídeo (a diferencia de las RBSP para conjuntos de parámetros y mensajes SEI) se pueden denominar unidades NAL de capa de codificación de vídeo (VCL). Las unidades NAL que contienen conjuntos de parámetros (por ejemplo, conjuntos de parámetros de vídeo (VPS), conjuntos de parámetros de secuencia (SPS), PPS, etc.) se pueden denominar unidades NAL de conjuntos de parámetros.
[0050] La presente divulgación se puede referir a una unidad NAL que encapsula una RBSP para un sector de fragmento como una unidad NAL de fragmento codificado. Como se define en la HEVC WD, un segmento de fragmento es un número entero de CTU ordenadas consecutivamente en una exploración en mosaico y contenidas en una única unidad NAL. Por el contrario, en la HEVC WD, un fragmento puede ser un número entero de CTU contenidas en un segmento de fragmento independiente y todos los segmentos de fragmento dependientes posteriores (si los hubiera) que preceden al siguiente segmento de fragmento independiente (si lo hubiera) dentro de la misma unidad de acceso. Un segmento de fragmento independiente es un segmento de fragmento para el que los valores de los elementos de sintaxis de la cabecera del segmento de fragmento no se deducen a partir de los valores para un segmento de fragmento precedente. Un segmento de fragmento dependiente es un segmento de fragmento para el que los valores de algunos elementos de sintaxis de la cabecera del segmento de fragmento se deducen a partir de los valores para el segmento de fragmento independiente precedente en el orden de descodificación. Una RBSP de una unidad de NAL de fragmento codificado puede incluir una cabecera de segmento de fragmento y datos de fragmento. Una cabecera de segmento de fragmento es una parte de un segmento de fragmento codificado que contiene los elementos de datos pertenecientes a la primera o todas las CTU representadas en el segmento de fragmento. Una cabecera de fragmento es una cabecera de segmento de fragmento del segmento de fragmento independiente que es un segmento de fragmento actual o el segmento de fragmento independiente más reciente que precede a un segmento de fragmento dependiente actual en el orden de descodificación.
[0051] Un VPS es una estructura de sintaxis que comprende elementos de sintaxis que se aplican a cero o más secuencias de vídeo codificadas (CVS) completas. Un SPS también es una estructura de sintaxis que contiene elementos de sintaxis que se aplican a cero o más CVS completas. Un SPS puede incluir un elemento de sintaxis que identifica un VPS que está activo cuando el SPS está activo. Por tanto, los elementos de sintaxis de un VPS pueden ser más aplicables, en general, que los elementos de sintaxis de un SPS.
[0052] Un conjunto de parámetros (por ejemplo, un VPS, SPS, PPS, etc.) puede contener una identificación a la que se hace referencia, de forma directa o indirecta, desde una cabecera de fragmento de un segmento de fragmento. El procedimiento referenciado se conoce como "activación". Por tanto, cuando el descodificador de vídeo 30 está descodificando un fragmento particular, se dice que un conjunto de parámetros, referenciado, de forma directa o indirecta, por un elemento de sintaxis de una cabecera de fragmento del fragmento particular se "activa". Dependiendo del tipo de conjunto de parámetros, la activación se puede producir por imagen o por secuencia. Por ejemplo, una cabecera de fragmento de un fragmento puede incluir un elemento de sintaxis que identifica un PPS. Por tanto, cuando un codificador de vídeo codifica el fragmento, el PPS se puede activar. Además, el PPS puede incluir un elemento de sintaxis que identifica un SPS. Por tanto, cuando se activa un PPS que identifica el SPS, el SPS se puede activar. El SPS puede incluir un elemento de sintaxis que identifica un VPS. Por tanto, cuando se activa un SPS que identifica el VPS, el VPS se activa.
[0053] El descodificador de vídeo 30 puede recibir un flujo de bits generado por el codificador de vídeo 20. Además, el descodificador de vídeo 30 puede analizar sintácticamente el flujo de bits para obtener elementos de sintaxis del flujo de bits. El descodificador de vídeo 30 puede reconstruir las imágenes de los datos de vídeo en base, al menos en parte, a los elementos de sintaxis obtenidos del flujo de bits. El procedimiento para reconstruir los datos de vídeo puede ser, en general, recíproco al procedimiento realizado por el codificador de vídeo 20. Por ejemplo, el descodificador de vídeo 30 puede usar vectores de movimiento de las PU para determinar bloques predictivos para las PU de una CU actual. Además, el descodificador de vídeo 30 puede realizar una cuantificación inversa de los bloques de coeficientes de TU de la CU actual. El descodificador de vídeo 30 puede realizar transformadas inversas en los bloques de coeficientes para reconstruir los bloques de transformada de las TU de la CU actual. El descodificador de vídeo 30 puede reconstruir los bloques de codificación de la CU actual añadiendo las muestras de los bloques predictivos para las PU de la CU actual a las muestras correspondientes de los bloques de transformada de las TU de la CU actual. Reconstruyendo los bloques de codificación para cada CU de una imagen, el descodificador de vídeo 30 puede reconstruir la imagen. En el HEVC WD, una CVS puede comenzar a partir de una imagen de regeneración instantánea de descodificación (IDR) o una imagen de acceso de enlace roto (BLA), o una imagen de acceso aleatorio limpio (CRA) que es la primera imagen del flujo de bits, incluyendo todas las imágenes posteriores que no son imágenes IDR o BLA.
[0054] En la codificación multivista, puede haber múltiples vistas de la misma escena desde diferentes puntos de vista. El término "unidad de acceso" se puede usar para referirse al conjunto de imágenes que corresponden a la misma instancia de tiempo. Por tanto, los datos de vídeo se pueden conceptualizar como una serie de unidades de acceso que se producen a lo largo del tiempo. Un "componente de vista" puede ser una representación codificada de una vista en una única unidad de acceso. En la presente divulgación, una "vista" se puede referir a una secuencia o un conjunto de componentes de vista asociadas al mismo identificador de vista. Un componente de vista puede contener un componente de vista de textura y un componente de vista de profundidad. En la presente divulgación, una "vista" se puede referir a un conjunto o secuencia de uno o más componentes de vistas asociadas al mismo identificador de vista.
[0055] En MV-HEVC, 3D-HEVC y SHVC, un codificador de vídeo puede generar un flujo de bits que comprende una serie de unidades NAL. Diferentes unidades de NAL del flujo de bits pueden estar asociadas a diferentes capas del flujo de bits. Una capa se puede definir como un conjunto de unidades NAL de VCL y unidades NAL no de VCL asociadas que tienen el mismo identificador de capa. Una capa puede ser equivalente a una vista en la codificación de vídeo multivista. En la codificación de vídeo multivista, una capa puede contener todos los componentes de vista de la misma capa con diferentes instancias de tiempo. Cada componente de vista puede ser una imagen codificada de la escena de vídeo que pertenece a una vista específica en una instancia de tiempo específico. En algunos ejemplos de codificación de vídeo 3D, una capa puede contener todas las imágenes de profundidad codificadas de una vista específica o bien las imágenes de textura codificadas de una vista específica. En otros ejemplos de codificación de vídeo 3D, una capa puede contener tanto componentes de vista de textura como componentes de vista de profundidad de una vista específica. De forma similar, en el contexto de la codificación de vídeo escalable, una capa corresponde típicamente a imágenes codificadas que tienen características de vídeo diferentes de las imágenes codificadas en otras capas. Dichas características de vídeo típicamente incluyen la resolución espacial y el nivel de calidad (por ejemplo, la relación señal-ruido). En HEVC y sus ampliaciones, la escalabilidad temporal se puede lograr dentro de una capa definiendo un grupo de imágenes con un nivel temporal particular como una subcapa.
[0056] Para cada capa respectiva del flujo de bits, los datos en una capa inferior se pueden descodificar sin referencia a los datos en cualquier capa superior. En la codificación de vídeo escalable, por ejemplo, los datos en una capa base se pueden descodificar sin referencia a datos en una capa de mejora. En general, las unidades de NAL solo pueden encapsular datos de una única capa. Por tanto, las unidades de NAL que encapsulan datos de la capa restante más alta del flujo de bits se pueden eliminar del flujo de bits sin afectar a la descodificabilidad de los datos en las capas restantes del flujo de bits. En la codificación multivista y 3D-HEVC, las capas superiores pueden incluir componentes de vista adicionales. En SHVC, las capas superiores pueden incluir datos de mejora de relación señal-ruido (SNR), datos de mejora espacial y/o datos de mejora temporal. En MV-HEVC, 3D-HEVC y SHVC, una capa se puede denominar "capa base" si un descodificador de vídeo puede descodificar imágenes de la capa sin hacer referencia a datos de cualquier otra capa. La capa base se puede ajustar a la especificación base de la HEVC (por ejemplo, la HEVC WD).
[0057] En SVC, las capas distintas de la capa base se pueden denominar "capas de mejora" y pueden proporcionar información que potencia la calidad visual de los datos de vídeo descodificados del flujo de bits. La SVC puede potenciar la resolución espacial, la relación señal-ruido (es decir, la calidad) o la velocidad temporal. En la codificación de vídeo escalable (por ejemplo, SHVC), una "representación de capa" puede ser una representación codificada de una capa espacial de una única unidad de acceso. Para facilitar la explicación, la presente divulgación se puede referir a componentes de vista y/o representaciones de capa como "componentes de vista/representaciones de capa" o simplemente "imágenes".
[0058] Para implementar las capas, las cabeceras de las unidades NAL pueden incluir los elementos de sintaxis nuh_reserved_zero_6bits. En la HEVC WD, el elemento de sintaxis nuh_reserved_zero_6bits está reservado. Sin embargo, en MV-HEVC, 3D-HEVC y SHVC, el elemento de sintaxis nuh_reserved_zero_6bits se denomina elemento de sintaxis nuh_layer_id. El elemento de sintaxis nuh_layer_id especifica un identificador de una capa. Las unidades NAL de un flujo de bits que tienen elementos de sintaxis nuh_layer_id que especifican valores diferentes pertenecen a capas diferentes del flujo de bits.
[0059] En algunos ejemplos, el elemento de sintaxis nuh_layer_id de una unidad NAL es igual a 0 si la unidad NAL se refiere a una capa base en codificación multivista (por ejemplo MV-HEVC), codificación 3DV (por ejemplo, 3D-HEVC) o codificación de vídeo escalable (por ejemplo, SHVC). Los datos en una capa base de un flujo de bits se pueden descodificar sin referencia a los datos en cualquier otra capa del flujo de bits. Si una unidad NAL no se refiere a una capa base en codificación multivista, 3DV o codificación de vídeo escalable, el elemento de sintaxis nuh_layer_id de la unidad NAL puede tener un valor distinto de cero.
[0060] Además, algunos componentes de vista/representaciones de capa dentro de una capa se pueden descodificar sin referencia a otros componentes de vista/representaciones de capa dentro de la misma capa. Por tanto, las unidades NAL que encapsulan datos de determinados componentes de vista/representaciones de capa se pueden eliminar del flujo de bits sin afectar a la descodificabilidad de otros componentes de vista/representaciones de capa de la capa. La eliminación de unidades NAL que encapsulan datos de dichos componentes de vista/representaciones de capa puede reducir la velocidad de tramas del flujo de bits. Un subconjunto de componentes de vista/representaciones de capa dentro de una capa que se puede descodificar sin referencia a otros componentes de vista/representaciones de capa dentro de la capa se puede denominar en el presente documento "subcapa" o "subcapa temporal".
[0061] Las unidades NAL pueden incluir elementos de sintaxis temporal_id que especifican identificadores temporales (es decir, TemporalIds) de las unidades NAL. El identificador temporal de una unidad NAL identifica una subcapa a la que pertenece la unidad NAL. Por tanto, cada subcapa de un flujo de bits puede tener un identificador temporal diferente. En general, si el identificador temporal de una primera unidad NAL de una capa es menor que el identificador temporal de una segunda unidad NAL de la misma capa, los datos encapsulados por la primera unidad NAL se pueden descodificar sin referencia a los datos encapsulados por la segunda unidad NAL.
[0062] Como se describe en la sección 3.160 de HEVC, un mosaico es una región rectangular de bloques de árbol de codificación dentro de una columna de mosaicos particular y una fila de mosaicos particular en una imagen. Los mosaicos de HEVC no tienen dependencias de codificación con otros mosaicos de HEVC en la misma imagen codificada, pero pueden tener dependencias de codificación con otros mosaicos de HEVC de imágenes codificadas previas o se pueden descodificar independientemente. Sin embargo, en algunos ejemplos, puede haber dependencias de análisis sintáctico entre los mosaicos de HEVC. La FIG. 2 es un diagrama conceptual que ilustra mosaicos y fragmentos de ejemplo. En el ejemplo de la FIG. 2, una imagen 40 tiene 64 CTB de luma, representado cada uno como un pequeño cuadrado. Además, la imagen 40 tiene cuatro mosaicos, 42, 44, 46, 48 separados por un límite de mosaico vertical 50 y un límite de mosaico horizontal 52. Los mosaicos 42 y 44 forman una primera fila de mosaicos y los mosaicos 46 y 48 forman una segunda fila de mosaicos diferente. Además, los mosaicos 42 y 46 forman una primera columna de mosaicos y los mosaicos 44 y 48 forman una segunda columna de mosaicos diferente. Los límites de mosaicos se representan como líneas gruesas en la FIG. 2.
[0063] En el ejemplo de la FIG. 2, ningún CTB en el mosaico 46 puede depender de un CTB en el mosaico 42, incluso si el CTB en el mosaico 42 es adyacente al CTB en el mosaico 46. Una columna de mosaicos es una región rectangular de bloques de árbol de codificación que tiene una altura igual a la altura de la imagen y un ancho especificado por elementos de sintaxis (por ejemplo, en el conjunto de parámetros de imagen). Una fila de mosaicos es una región rectangular de bloques de árbol de codificación que tiene una altura especificada por elementos de sintaxis (por ejemplo, en el conjunto de parámetros de imagen) y un ancho igual a un ancho de la imagen.
[0064] La imagen 40 tiene ocho segmentos de fragmento 54, 56, 58, 60, 62, 64, 66 y 68. En el ejemplo de la FIG.
2, los límites de segmento de fragmento se indican con líneas discontinuas. Además, en el ejemplo de la FIG. 2, los segmentos de fragmento con CTB sombreados son segmentos de fragmento independientes y los segmentos de fragmento con CTB blancos son segmentos de fragmento dependientes. En HEVC, cada bloque codificado de un segmento de fragmento está contenido en una unidad NAL para el segmento de fragmento. Además, en HEVC, una unidad NAL no incluye bloques codificados de múltiples segmentos de fragmento.
[0065] En el ejemplo de la FIG. 2, los números en cada uno de los CTB indican un orden de codificación de los CTB. Como se muestra en la FIG. 2, los límites de mosaicos pueden cambiar el orden de codificación de los CTB en la imagen 40. Por ejemplo, en ausencia de los límites de mosaicos 50 y 52, un codificador de vídeo puede codificar todos los CTB en una fila completa de CTB en la imagen 40 antes de codificar cualquier CTB de la siguiente fila inferior de CTB en la imagen 40.
[0066] Como se describe en la Sección 6.3.1 de HEVC, a diferencia de los fragmentos, los mosaicos son siempre rectangulares. Un mosaico siempre contiene un número entero de CTU, y puede consistir en CTU contenidas en más de un fragmento. De forma similar, un fragmento puede comprender o consistir en CTU contenidas en más de un mosaico. Además, como se describe en la Sección 6.3.1 de HEVC, se debe cumplir una o ambas de las siguientes condiciones para cada fragmento y mosaico: (1) todas las CTU en un fragmento pertenecen al mismo mosaico; y (2) todas las CTU en un mosaico pertenecen al mismo fragmento. Adicionalmente, se debe cumplir una o ambas de las siguientes condiciones para cada segmento de fragmento y mosaico: (1) todas las CTU en un segmento de fragmento pertenecen al mismo mosaico; y (2) todas las CTU en un mosaico pertenecen al mismo segmento de fragmento.
[0067] Los formatos de archivo y las normas de formato de archivo se analizarán brevemente ahora. Las normas de formato de archivo incluyen el formato de archivo de medios base ISO (ISOBMFF, ISO/IEC 14496-12, a continuación en el presente documento, "ISO/IEC 14996-12") y otras normas de formato de archivo derivadas de ISOBMFF, incluyendo el formato de archivo MPEG-4 (ISO/IEC 14496-14), el formato de archivo 3GPP (3GPP TS 26.244) y el formato de archivo AVC. Por tanto, la ISO/IEC 14496-12 especifica el formato de archivo de medios base ISO. ISO/IEC 14496-12, 5.a edición, es una versión reciente de ISO/IEC 14496-12. Otros documentos amplían el formato de archivo de medios base ISO para aplicaciones específicas. Por ejemplo, ISO/IEC FDIS 14496-15:2014 describe el transporte de vídeo con estructura de unidad NAL en el formato de archivo de medios base ISO. H.264/AVC y HEVC, así como sus ampliaciones, son ejemplos de vídeo con estructura de unidad NAL. ISO/IEC FDIS 14496-15:2014 incluye secciones que describen el transporte de unidades NAL de H.264/AVC. Adicionalmente, la sección 8 de ISO/IEC FDIS 14496-15:2014 describe el transporte de unidades NAL de HEVC.
[0068] El ISOBMFF se usa como la base para muchos formatos de encapsulación de códec, tales como el formato de archivo AVC, así como para muchos formatos de contenedor multimedia, tales como el formato de archivo MPEG-4, el formato de archivo 3GPP (3GP) y el formato de archivo DVB. Además de los medios continuos, tales como audio y vídeo, los medios estáticos, tales como imágenes, así como los metadatos, se pueden almacenar en un archivo que se ajusta al ISOBMFF. Los archivos estructurados de acuerdo con el ISOBMFF se pueden usar para muchos propósitos, incluyendo la reproducción de archivos de medios locales, la descarga progresiva de un archivo remoto, los segmentos para transmisión continua adaptativa dinámica sobre HTTP (DASH). Los archivos con estructura de ISOBMFF también se pueden usar como contenedores o "envoltorios" para el contenido que se va a transmitir en continuo y las instrucciones de empaquetado del contenido, así como para la grabación de las transmisiones continuas de medios en tiempo real recibidas. Por tanto, aunque originalmente se diseñó para el almacenamiento, el ISOBMFF ha demostrado ser valioso para la transmisión continua, por ejemplo, para descargas progresivas o DASH. Para propósitos de transmisión continua, se pueden usar los fragmentos de película definidos en el ISOBMFF.
[0069] Un archivo que se ajusta al formato de archivo HEVC puede comprender una serie de objetos, denominados cajas. Una caja puede ser un bloque de construcción orientado a objetos definido por un identificador y longitud de tipo exclusivo. Por ejemplo, una caja puede ser la estructura de sintaxis elemental en el ISOBMFF, que incluye un tipo de caja codificada de cuatro caracteres, un recuento de octetos de la caja y una carga útil. En otras palabras, una caja puede ser una estructura de sintaxis que comprende un tipo de caja codificada, un recuento de octetos de la caja y una carga útil. Un archivo conforme con ISOBMFF incluye una secuencia de cajas, y las cajas pueden contener otras cajas. En algunos casos, todos los datos de un archivo que se ajusta al formato de archivo HEVC pueden estar contenidos dentro de cajas y puede no haber ningún dato en el archivo que no esté en una caja. Por tanto, un archivo de ISOBMFF puede incluir una secuencia de cajas, y las cajas pueden contener otras cajas. Por ejemplo, la carga útil de una caja puede incluir una o más cajas adicionales. La FIG. 6, descrita en detalle en otra parte de la presente divulgación, muestra cajas de ejemplo dentro de un archivo, de acuerdo con una o más técnicas de la presente divulgación.
[0070] Un archivo que se ajusta al ISOBMFF puede incluir diversos tipos de cajas. Por ejemplo, un archivo que se ajusta al ISOBMFF puede incluir una caja de tipo de archivo, una caja de datos de medios, una caja de película, una caja de fragmento de película y así sucesivamente. En este ejemplo, una caja de tipo de archivo incluye el tipo de archivo y la información de compatibilidad. Una caja de datos de medios puede contener muestras (por ejemplo, imágenes codificadas). Una caja de película ("moov") contiene metadatos para flujos de medios continuos presentes en el archivo. Cada uno de los flujos de medios continuos se puede representar en el archivo como una pista. Por ejemplo, una caja de película puede contener metadatos con respecto a una película (por ejemplo, relaciones lógicas y de tiempo entre muestras, y también punteros a localizaciones de muestras). Las cajas de películas pueden incluir varios tipos de subcajas. Las subcajas de una caja de película pueden incluir una o más cajas de pista. Una caja de pista puede incluir información sobre una pista individual de una película. Una caja de pista puede incluir una caja de cabecera de pista que especifica información global de una única pista. Además, una caja de pista puede incluir una caja de medios que contiene una caja de información de medios. La caja de información de medios puede incluir una caja de tabla de muestras que contiene una indexación de datos de muestras de medios de la pista. La información de la caja de tabla de muestras se puede usar para localizar muestras en el tiempo y, para cada una de las muestras de la pista, un tipo, tamaño, contenedor y desplazamiento en ese contenedor de la muestra. Por tanto, los metadatos para una pista están encerrados en una caja de pista ("trak"), mientras que el contenido de medios de una pista está encerrado en una caja de datos de medios ("mdat") o bien directamente en un archivo separado. El contenido de medios para las pistas comprende o consiste en una secuencia de muestras, tales como las unidades de acceso de audio o vídeo.
[0071] El ISOBMFF especifica los siguientes tipos de pistas: (I) una pista de medios, que contiene un flujo de medios elemental, (ii) una pista de indicaciones, que incluye instrucciones de transmisión de medios o bien representa un flujo de paquetes recibido, y (iii) una pista de metadatos temporizados, que incluye metadatos sincronizados en el tiempo. Los metadatos para cada pista incluyen una lista de entradas de descripción de muestra, proporcionando cada una el formato de codificación o encapsulación usado en la pista y los datos de inicialización necesarios para procesar ese formato. Cada muestra está asociada a una de las entradas de descripción de muestra de la pista.
[0072] La especificación ISOBMFF especifica seis tipos de puntos de acceso de flujo (SAP) para su uso con DASH. Los dos primeros tipos de SAP (tipos 1 y 2) corresponden a imágenes de actualización de descodificador instantánea (IDR) en H.264/AVC y HEVC. El tercer tipo de SAP (tipo 3) corresponde a puntos de acceso aleatorio de grupo de imágenes abierto (GOP abierto), por consiguiente, a imágenes de acceso de enlace roto (BLA) o acceso aleatorio limpio (CRA) en HEVC. El cuarto tipo de SAP (tipo 4) corresponde a puntos de acceso aleatorio de actualización de descodificador gradual (GDR).
[0073] El ISOBMFF posibilita especificar metadatos específicos de muestra con diversos mecanismos. Las cajas específicas dentro de la caja de tabla de muestras ("stbl") se han normalizado para responder a necesidades comunes. Por ejemplo, una caja de muestras de sincronización ("stss") es una caja dentro de una caja de tabla de muestras. La caja de muestras de sincronización se usa para enumerar las muestras de acceso aleatorio de la pista. La presente divulgación se puede referir a una muestra enumerada por la caja de muestras de sincronización como muestra de sincronización. En otro ejemplo, un mecanismo de agrupación de muestras posibilita la asignación de muestras de acuerdo con un tipo de agrupación de cuatro caracteres a grupos de muestras que comparten la misma propiedad especificada como una entrada de descripción de grupo de muestras en el archivo. Se han especificado varios tipos de agrupación en el ISOBMFF.
[0074] Además, para incluir una unidad NAL en una pista de un archivo, un dispositivo informático puede incluir la unidad NAL en una muestra. En algunos casos, el dispositivo informático almacena las muestras en cajas de datos de medios. En otros casos, el dispositivo informático almacena la muestra directamente en el archivo sin encapsular la muestra en una caja de datos de medios. Las muestras se agrupan en el archivo en "trozos". Además, el dispositivo informático puede generar una caja de tabla de muestras en una caja de pista para la pista. La caja de tabla de muestras incluye una caja de desplazamiento de trozos (por ejemplo, una caja con el identificador 'stco' o 'co64'). Una caja de desplazamiento de trozos para una pista (es decir, una caja de desplazamiento de trozos en una caja de tabla de muestras en una caja de pista para una pista) incluye datos que especifican localizaciones de inicio y/o desplazamientos de trozos que contienen muestras de la pista. Por tanto, generando la caja de desplazamiento de trozos para indicar un trozo que contiene una unidad NAL, un dispositivo puede incluir la unidad NAL en la pista. La caja de desplazamiento de trozos puede especificar las localizaciones de inicio y/o los desplazamientos de los trozos en relación con el comienzo del archivo. La caja de tabla de muestras de la pista también puede incluir una caja de muestra a trozo (por ejemplo, una caja con el identificador 'stsc'). Un dispositivo puede usar la caja de muestra a trozo para construir una tabla que indique qué muestras están en qué trozos. Por ejemplo, la tabla puede indicar que las muestras 20 a 30 están en el trozo 2. Además, la caja de tabla de muestras de la pista incluye una caja de tamaño de muestras (por ejemplo, una caja con el identificador 'stsz' o 'stz2'). Como se describe en la sección 8.5.3.1 de ISOBMFF 14996-12, un dispositivo puede usar información en la caja de tamaño de muestras para generar una tabla que indica los tamaños de las muestras en la pista. Además, cada muestra puede incluir datos que indican el tamaño de cada unidad NAL en la muestra.
[0075] Una caja de tabla de muestras puede incluir una o más cajas SampleToGroup y una o más cajas de descripción de grupo de muestras (es decir, cajas SampleGroupDescription). Se puede usar una caja SampleToGroup para determinar un grupo de muestras al que pertenece una muestra, junto con una descripción asociada del grupo de muestras. En otras palabras, una caja SampleToGroup puede indicar un grupo al que pertenece una muestra. Una caja SampleToGroup puede tener un tipo de caja de "sbgp". Una caja SampleToGroup puede incluir un elemento de tipo de agrupación (por ejemplo, grouping_type). El elemento de tipo de agrupación puede ser un número entero que identifica un tipo (es decir, un criterio usado para formar los grupos de muestras) de una agrupación de muestras. Además, una caja SampleToGroup puede incluir una o más entradas. Adicionalmente, una caja SampleGroupDescription incluye una o más entradas de descripción de grupo de muestras. Cada entrada en una caja SampleToGroup se puede asociar a una serie diferente, no superpuesta de muestras consecutivas de la pista. Cada entrada en una caja SampleToGroup puede indicar un elemento de recuento de muestras (por ejemplo, sample_count) y un elemento de índice de descripción de grupo (por ejemplo, group_description_index). El elemento de recuento de muestras de una entrada puede indicar un número de muestras asociadas a la entrada. En otras palabras, el elemento de recuento de muestras de la entrada puede ser un número entero que da el número de muestras consecutivas con el mismo descriptor de grupo de muestras. El elemento de índice de descripción de grupo puede identificar una entrada de descripción de grupo en una caja SampleGroupDescription. La entrada de descripción de grupo identificada contiene una descripción de las muestras asociadas a la entrada. Los elementos de índice de descripción de grupo de múltiples entradas de una caja SampleToGroup pueden identificar la misma caja SampleGroupDescription.
[0076] La sintaxis de la caja SampleToGroup, como se define en ISO/IEC 14496-12, 5.a edición, se reproduce a continuación:
aligned(8) class SampleToGroupBox
extends FullBox('sbgp', version, 0)
{
unsigned int(32) grouping_type;
if (version == 1) {
unsigned int(32) grouping_type_parameter;
}
unsigned int(32) entry _count;
for (i=1; i <= entry _count;i++)
{
unsigned int(32) sample_count;
unsigned int(32) group_description_index;
}
}
[0077] Lo siguiente resume la semántica de los elementos de sintaxis en la caja SampleToGroup como se define en ISO/IEC 14496-12, 5.a edición:
• "version" es un número entero que especifica la versión de esta caja, 0 o bien 1.
• "grouping_type" es un número entero que identifica el tipo (es decir, el criterio usado para formar los grupos de muestra) de la agrupación de muestras y lo vincula a su tabla de descripción de grupo de muestras con el mismo valor para el tipo de agrupación. Como máximo, existirá una aparición de esta caja con el mismo valor para grouping_type (y, si se usa, grouping_type_parameter) para una pista.
• "grouping_type_parameter" es una indicación del subtipo de la agrupación.
• "entry_count" es un número entero que da el número de entradas en la siguiente tabla.
• "sample_count" es un número entero que da el número de muestras consecutivas con el mismo descriptor de grupo de muestras. Si la suma del recuento de muestras en esta caja es menor que el recuento total de muestras, o no hay una caja de muestra a grupo que se aplique a algunas muestras (por ejemplo, está ausente de un fragmento de pista), entonces el lector debe asociar las muestras que no tienen asociación de grupo explícita al grupo por defecto definido en la caja SampleDescriptionGroup, si lo hubiera, o sino a ningún grupo. Es un error que el total en esta caja sea mayor que el sample_count documentado en otra parte, y el comportamiento del lector sería entonces indefinido.
• "group_description_index" es un número entero que da el índice de la entrada de grupo de muestras que describe las muestras en este grupo. El índice varía de 1 al número de entradas de grupo de muestras en la caja SampleGroupDescription, o adopta el valor 0 para indicar que esta muestra no es miembro de ningún grupo de este tipo.
[0078] La sintaxis de la caja SampleGroupDescription como se define en ISO/IEC 14496-12, 5.a edición, se reproduce a continuación:
aligned(8) class SampleGroupDescriptionBox (unsigned int(32) handler_type)
extends FullBox('sgpd', version, 0){
unsigned int(32) grouping_type;
if (version==1) {unsigned int(32) default_length; }
if (version>=2) {
unsigned int(32) default_sample_description_index;
}
unsigned int(32) entry _count;
int i;
for (i = 1 ; i <= entry_count; i++){
if (version==1) {
if (default_length==0) {
unsigned int(32) description length;
}
}
SampleGroupEntry (grouping_type);
// un caso de una clase derivada de SampleGroupEntry
// que es apropiado y se permite para el tipo de medios
}
}
[0079] ISO/IEC 14496-12, 5.a edición, define la semántica de los elementos de sintaxis de la caja SampleGroupDescription como sigue:
• "version" es un número entero que especifica la versión de esta caja.
• "grouping_type" es un número entero que identifica la caja SampleToGroup que está asociada a esta descripción de grupo de muestras. Si grouping_type_parameter no está definido para un grouping_type dado, entonces solo habrá una aparición de esta caja con este grouping_type.
• "default_sample_description_index" especifica el índice de la entrada de descripción del grupo de muestras que se aplica a todas las muestras en la pista para las que no se proporciona ninguna asignación de muestra a grupo a través de una caja SampleToGroup. El valor por defecto de este campo es cero (lo que indica que las muestras no están asignadas a ningún grupo de este tipo).
• "entry_count" es un número entero que da el número de entradas en la siguiente tabla.
• "default_length" indica la longitud de cada entrada de grupo (si la longitud es constante), o cero (0) si es variable.
• "description_length" indica la longitud de una entrada de grupo individual, en el caso de que varíe de una entrada a otra y, por lo tanto, default_length es 0.
[0080] Como se indica anteriormente, una caja SampleGroupDescription puede incluir una o más entradas de descripción de grupo. Los diferentes tipos de entradas de descripción de grupo pueden incluir diferentes tipos de información. Por ejemplo, las entradas de descripción de grupo que incluyen información con respecto a muestras visuales pertenecen a la clase VisualSampleGroupEntry, las entradas de descripción de grupo que incluyen información con respecto a muestras de audio pertenecen a la clase AudioSampleGroupEntry y así sucesivamente. En ISO/IEC 14496-12, la clase VisualSampleGroupEntry es abstracta. Por tanto, diversas clases más especializadas de entradas de descripción de grupo amplían la clase VisualSampleGroupEntry. Como se describe en detalle en otra parte de la presente divulgación, RectTileRegGroupEntry y UnconstrTileRegGroupEntry son dos clases que amplían la clase VisualSampleGroupEntry. La clase RecTileRegGroupEntry tiene el identificador de tipo de grupo 'trif' y la clase UnconstrTileRegGroupEntry tiene el identificador de tipo de grupo 'tsif'. Las entradas de descripción de grupo que crean instancias de la clase RecTileRegGroupEntry incluyen elementos de sintaxis que describen muestras que contienen regiones de mosaicos rectangulares. Las entradas de descripción de grupo que crean instancias de la clase UnconstrTileRegGroupEntry incluyen elementos de sintaxis que describen muestras que contienen regiones de mosaicos sin restricciones.
[0081] En otro ejemplo, la clase NALUMapEntry amplía la clase VisualSampleGroupEntry. La presente divulgación se puede referir a casos de la clase NALUMapEntry como entradas de mapa NALU. Las entradas de mapa NALU se pueden usar para asignar un identificador (groupID) a las unidades NAL. La sintaxis de la clase NALUMapEntry, como se define en ISO/IEC 144916-15:2014, se reproduce a continuación:
class NALUMapEntry() extends VisualSampleGroupEntry ('nalm') {
bit(6) reserved = 0;
unsigned int(1) large_size;
unsigned int(1) rle;
if (large_size) {
unsigned int(16) entry_count;
} else {
unsigned int(8) entry _count;
}
for (i=1; i<= entry _count; i++) {
if (rle) {
if (large_size) {
unsigned int(16) NALU_start_number;
} else {
unsigned int(8) NALU_start_number;
}
}
unsigned int(16) groupID;
}
}
[0082] ISO/IEC 144916-15:2014 define la semántica de los elementos de sintaxis de la clase NALUMapEntry como sigue:
• "large_size" indica si el número de entradas de unidad NAL en las muestras de pista está representado en 8 o 16 bits.
• "rle" indica si la codificación de longitud de ejecución se usa (1) para asignar el groupID a unidades NAL o no (0).
• "entry_count" especifica el número de entradas en el mapa. Téngase en cuenta que cuando rle es igual a 1, el entry_count corresponde al número de ejecuciones donde unidades NAL consecutivas están asociadas al mismo grupo. Cuando rle es igual a 0, entry_count representa el número total de unidades NAL.
• "NALU_start_number" es el índice de unidad NAL basado en 1 en la muestra de la primera unidad NAL en la ejecución actual asociada al groupID.
• "groupID" especifica el identificador exclusivo del grupo. Se proporciona más información sobre el grupo por la entrada de descripción de grupo de muestras con este groupID y grouping_type igual al grouping_type_parameter de la caja SampleToGroup de tipo 'nalm'.
[0083] Las cajas SampleGroupDescription solo pueden incluir entradas de descripción de grupo de muestras de una clase. Por ejemplo, cada entrada de descripción de grupo de muestras en una caja SampleGroupDescription puede ser un caso de la clase NALUMapEntry.
[0084] Existen supuestos donde es útil obtener información sobre los mosaicos a nivel de archivo, a diferencia de la determinación de la información sobre los mosaicos a nivel de códec (por ejemplo, HEVC). Por ejemplo, en la FIG. 2, supóngase que los mosaicos 46 y 48 corresponden al rastreo en la parte inferior de un noticiero, mientras que los mosaicos 42 y 44 contienen imágenes de un presentador de noticias. En este ejemplo, el rastreo puede incluir texto sobre otras noticias, resultados deportivos, cierre de escuelas, cotizaciones de acciones, etc. En este ejemplo, puede ser deseable transmitir solo la parte de la imagen 40 que incluye las imágenes del presentador de noticias sin transmitir el rastreo. Reducir el contenido transmitido de un vídeo de esta manera puede ser deseable cuando se transmite el vídeo a un dispositivo con una pantalla pequeña, tal como un teléfono inteligente o un reloj inteligente. Al mismo tiempo, la versión completa del mismo vídeo, que incluye los mosaicos 46 y 48, se puede transmitir a un dispositivo para su presentación en una pantalla más grande, tal como un televisor.
[0085] Para facilitar la extracción de diferentes mosaicos de una imagen, se pueden almacenar mosaicos individuales o grupos de mosaicos en diferentes pistas de un archivo. A continuación, un dispositivo puede realizar la extracción a nivel de pista. Por ejemplo, en la FIG. 2, una primera pista puede incluir datos de vídeo codificados para los mosaicos 42 y 44 y una segunda pista puede incluir datos de vídeo codificados para los mosaicos 46 y 48. En este ejemplo, para transmitir los mosaicos 42 y 44 sin transmitir los mosaicos 46 y 48, un dispositivo puede emitir la primera pista del archivo y no la segunda pista. Sin embargo, para extraer las pistas que contienen los mosaicos deseados, un dispositivo puede necesitar información sobre los mosaicos incluidos en las pistas de un archivo.
[0086] En consecuencia, ISO/IEC FDIS 14496-15:2014 proporciona herramientas para describir y manipular mosaicos a nivel de archivo. Por ejemplo, la sección 10.1 de ISO/IEC FDIS 14496-15:2014 define los conceptos de una región de mosaicos y un conjunto de mosaicos. Una región de mosaicos es una región rectangular que incluye uno o más mosaicos. Una región de mosaicos también se puede denominar región de mosaicos rectangular. Por ejemplo, en el ejemplo de la FIG. 2, los mosaicos 42 y 44 pueden formar una región de mosaicos; los mosaicos 42 y 46 pueden formar una región de mosaicos, los mosaicos 44 y 48 pueden formar una región de mosaicos, los mosaicos 46 y 48 pueden formar una región de mosaicos y los mosaicos 42, 44, 46 y 48 pueden formar una región de mosaicos. Varios mosaicos codificados en un único fragmento se pueden agrupar como un conjunto de mosaicos, llamado conjunto de mosaicos. Un conjunto de mosaicos también se puede denominar región de mosaicos sin restricciones. Por ejemplo, en el ejemplo de la FIG. 2, un conjunto de mosaicos puede consistir en el mosaico 42, el mosaico 46 y el mosaico 48. Sin embargo, en el ejemplo de la FIG. 2, el mosaico 42, el mosaico 46 y el mosaico 48 no pueden formar una región de mosaicos porque los mosaicos 42, 46 y 48 no son una única región rectangular. Los conjuntos de mosaicos se pueden usar para representar una región de interés que abarca más de varios mosaicos de HEVC. Por ejemplo, un conjunto de mosaicos puede consistir en los mosaicos 42, 44 y 46. En este ejemplo, los mosaicos 42, 44 y 46 pueden corresponder a flujos de vídeo en vivo, mientras que el mosaico 48 incluye una imagen que es estática a lo largo de muchas imágenes.
[0087] Los diseños de formato de archivo actuales presentan uno o más problemas potenciales. Como se describe a continuación, dichos problemas se pueden referir a uno o más de los siguientes: (i) la relación entre la entrada de muestras para la región de mosaicos, la entrada de mapa NALU y las cajas SampleToGroup; (ii) la presencia de pista(s) base para pistas de mosaico; y (iii) la definición de región de mosaicos rectangular y región de mosaicos sin restricciones.
[0088] Las características de formato de archivo existentes analizadas anteriormente presentan uno o más problemas potenciales. A continuación se analizan diversos problemas potenciales relacionados con la relación entre la entrada de muestras para una región de mosaicos, la entrada de mapa NALU y las cajas SampleToGroup. Como se usa en el presente documento, "NALU" representa una unidad de capa de abstracción de red (NAL).
[0089] Como se menciona anteriormente, una o más regiones de mosaicos se pueden agrupar como una región de mosaicos rectangular y/o una región de mosaicos sin restricciones. Se describen las regiones de mosaicos rectangulares y sin restricciones por RectTileRegGroupEntry ('trif') y UnconstrTileRegGroupEntry ('tsif'), respectivamente, que son ambas ampliaciones de VisualSampleGroupEntry. Una caja SampleGroupDescription puede incluir casos de la clase RectTileRegGroupEntry o casos de UnconstrTileRegGroupEntry.
[0090] El siguiente texto describe la sintaxis y la semántica de la entrada de grupo de región de mosaicos rectangular:
class TileRegionGroupEntry() extends VisualSampleGroupEntry ('trif)
{
unsigned int(16) groupID;
unsigned int(1) tile_region_flag;
if (!tile_region_flag)
bit(7) reserved = 0;
else {
unsigned int(2) independent_idc;
unsigned int(1) full_picture;
unsigned int(1) filtering_disabled;
unsigned int(1) has_dependency list;
bit(2) reserved = 0;
if (!full_picture) {
unsigned int(16) horizontal_offset;
unsigned int(16) vertical_offset;
}
unsigned int(16) region_width;
unsigned int(16) region_height;
if (has_dependency_list) {
unsigned int(16) dependency_tile_count;
for (i=1; i<= dependency_tile_count; i++)
unsigned int(16) dependencyTileGroupID;
}
}
Semántica
[0091] groupID es un identificador exclusivo para el grupo de región de mosaicos descrito por esta entrada de grupo de muestras. El valor de groupID en una entrada de grupo de región de mosaicos será mayor que 0. El valor 0 está reservado para un uso especial.
[0092] Cuando hay SampleToGroupBox de tipo 'nalm' y grouping_type_parameter igual a 'trif', estará presente un SampleGroupDescriptionBox de tipo 'trif', y se aplica lo siguiente:
- El valor de groupID en una entrada de grupo de región de mosaicos será igual al groupID en una de las entradas de NALUMapEntry.
- Una unidad NAL que se está asignando al groupID 0 por una NALUMapEntry implica que se requiere la unidad NAL para descodificar cualquier región de mosaicos en la misma imagen codificada que esta unidad NAL.
NOTA 1: Puede haber múltiples entradas de grupo de región de mosaicos con los mismos valores de horizontal_offset, vertical_offset, region_width y region_height, respectivamente, pero con diferentes valores de groupID, para describir dependencias variadas.
[0093] tile_region_flag igual a 1 especifica que la región cubierta por las unidades NAL dentro de una imagen y asociada a esta entrada de grupo de región de mosaicos es una región de mosaicos, y se proporciona información adicional de la región de mosaicos por los campos posteriores en esta entrada de grupo de región de mosaicos.
El valor 0 especifica que la región cubierta por las unidades NAL dentro de una imagen y asociada con esta entrada de grupo de región de mosaicos no es una región de mosaicos, y no se proporciona información adicional de la región en esta entrada de grupo de región de mosaicos.
[0094] Cuando un flujo de bits de múltiples capas se transporta en una o más pistas, para cualquiera de las dos capas, capa A y capa B del flujo de bits, se aplica la siguiente restricción: Cuando una unidad NAL de la capa A está asociada a un valor de groupID gIdA para el que el tile_region_flag correspondiente es igual a 1, y una unidad NAL de la capa B está asociada a un valor de groupID gIdB para el que el tile_region_flag correspondiente es igual a 1, gIdA no será igual a gIdB.
[0095] independent_idc especifica las dependencias de codificación entre cada región de mosaicos asociada a esta entrada de grupo de región de mosaicos y otras regiones de mosaicos en la misma imagen o en imágenes de referencia de la misma capa. Las dependencias entre capas, si las hubiera, se indican por una lista de dependencyTileGroupID (cuando has_dependency_list es igual a 1).
[0096] Este campo adopta los siguientes valores:
- Si independent_idc es igual a 0, las dependencias de codificación entre esta región de mosaicos y otras regiones de mosaicos en la misma imagen o en imágenes de referencia de la misma capa se describen por una lista de dependencyTileGroupID (cuando has_dependency_list es igual a 1) o bien desconocido (cuando has_dependency_list es igual a 0).
- Si independent_idc es igual a 1, no hay dependencias temporales entre esta región de mosaicos y las regiones de mosaicos con diferente groupID en cualquier imagen de referencia de la misma capa, pero puede haber dependencias de codificación entre esta región de mosaicos y una región de mosaicos con el mismo groupID en una imagen de referencia de la misma capa.
- Si independent_idc es igual a 2, no hay dependencias de codificación entre esta región de mosaicos y cualquier región de mosaicos en una imagen de referencia de la misma capa.
- El valor 3 está reservado.
[0097] full_picture, cuando se establece, indica que cada región de mosaicos asociada a esta entrada de grupo de región de mosaicos es una imagen completa, caso en el que region_width y region_height se establecerán en el ancho y la altura, respectivamente, de la imagen completa, e independent_idc se establecerá en 1 o 2.
[0098] filtering_disabled, cuando se establece, indica que para cada región de mosaicos asociada a esta entrada de grupo de región de mosaicos la operación de filtrado en bucle no requiere acceso a los píxeles adyacentes a esta región de mosaicos, es decir, la reconstrucción exacta de bits de la región de mosaicos es posible sin descodificar los mosaicos adyacentes.
[0099] has_dependency_list, cuando se establece en 1, indica que dependency_tile_count y, cuando dependency_tile_count es mayor que 0, una lista de dependencyTileGroupID está presente. Cuando se establece en 0, dependency_tile_count no está presente y ningún dependencyTileGroupID está presente.
[0100] horizontal_offset y vertical_offset dan respectivamente los desplazamientos horizontal y vertical del píxel superior izquierdo de la región rectangular que está cubierta por los mosaicos en cada región de mosaicos asociada a esta entrada de grupo de región de mosaicos, en relación con el píxel superior izquierdo de la región base, en muestras de luma. Para las pistas de mosaico de HEVC y L-HEVC como se define en esta parte de ISO/IEC 14496­ 15, la región base usada en TileRegionGroupEntry es la imagen a la que pertenecen los mosaicos en una región de mosaicos asociada a esta entrada de grupo de región de mosaicos.
[0101] region_width y region_height dan respectivamente el ancho y la altura de la región rectangular que está cubierta por los mosaicos en cada región de mosaicos asociada a esta entrada de grupo de región de mosaicos, en muestras de luma.
NOTA 2: Para flujos de L-HEVC que usan escalabilidad espacial y mosaicos en las capas base y de mejora, cuando cada capa se transporta en su propia pista, las descripciones de muestra TileRegionGroupEntry de la capa base darán las coordenadas expresadas en muestras de luma de la capa base, mientras que las descripciones de muestra TileRegionGroupEntry de una capa de mejora darán las coordenadas expresadas en muestras de luma de la capa de mejora.
[0102] dependency_tile_count indica el número de regiones de mosaicos de las que depende cada región de mosaicos asociada a esta entrada de grupo de región de mosaicos.
[0103] dependencyTileGroupID da el groupID de una región de mosaicos (como se define por un TileRegionGroupEntry) de la que depende esta región de mosaicos. Para una región de mosaicos particular asociada a esta entrada de grupo de región de mosaicos, las regiones de mosaicos de las que depende pueden ser de la misma capa o de las capas de referencia.
[0104] En muchos casos, cada entrada de agrupación de muestra que está contenida dentro de la caja SampleGroupDescription tiene una correspondencia con la caja SampleToGroup que asigna una muestra a la agrupación de muestras. Sin embargo, para agrupaciones de regiones de mosaicos (es decir, agrupaciones de región de mosaicos rectangular y región de mosaicos sin restricciones), la asignación entre muestras y agrupaciones de regiones de mosaicos se puede describir por una entrada de mapa NALU ('nalm') que también es una ampliación de VisualSampleGroupEntry. Por tanto, hay múltiples maneras de indicar regiones de mosaicos en una caja SampleToGroup.
[0105] Como se indica anteriormente, una caja de tabla de muestra de una pista puede incluir una primera caja SampleGroupDescription, una segunda caja SampleGroupDescription y una caja SampleToGroup. La primera caja SampleGroupDescription tiene un elemento de sintaxis "grouping_type" igual a 'nalm' y comprende entradas de mapa NALU. Cada entrada de mapa NALU en la primera caja SampleGroupDescription especifica una asignación de unidades NAL a los valores "groupID". Por ejemplo, una entrada de mapa NALU en la primera caja SampleGroupDescription puede especificar que las unidades NAL de 0 a 10 están asociadas a un valor "groupID" de 1, que las unidades NAL de 11 a 20 están asociadas a un valor "groupID" de 2 y así sucesivamente. La caja SampleToGroup incluye un elemento de sintaxis "grouping_type" que tiene el valor de 'nalm' y un elemento de sintaxis "grouping_type_parameter" que tiene un valor igual a un segundo identificador de tipo, tal como 'trif' o 'tsif'. La segunda caja SampleGroupDescription tiene un elemento de sintaxis "grouping_type" igual al segundo identificador de tipo especificado por el elemento de sintaxis "grouping_type_parameter" de la caja SampleToGroup. La segunda caja SampleGroupDescription incluye un conjunto de entradas de descripción de grupo, tales como entradas de muestras de región de mosaicos (por ejemplo, entradas de descripción de grupo que pertenecen a las clases RectTileRegGroupEntry o UnconstrTileRegGroupEntry). Cada entrada de descripción de grupo en la segunda caja SampleGroupDescription incluye un elemento de sintaxis "groupID". Una entrada de descripción de grupo en la segunda caja SampleGroupDescription que tiene un valor particular del elemento de sintaxis "groupID" describe las unidades NAL asignadas al valor particular del elemento de sintaxis "groupID" en la primera caja SampleGroupDescription.
[0106] Por tanto, para determinar qué unidades NAL están asociadas a una región de mosaicos deseada, un dispositivo puede identificar una primera caja SampleGroupDescription en una caja de tabla de muestras. Las entradas de descripción de grupo en la primera caja SampleGroupDescription describen regiones de mosaicos, tales como regiones de mosaicos rectangulares o regiones de mosaicos sin restricciones. En otras palabras, las entradas de descripción de grupo en la primera caja SampleGroupDescription son entradas de muestras de región de mosaicos. Las entradas de muestras de región de mosaicos en la primera caja SampleGroupDescription son casos de una clase de entrada de descripción de grupo que tiene un identificador de tipo particular, tal como 'trif' o 'tsif'. A continuación, el dispositivo puede determinar las entradas de muestras de región de mosaicos en la primera caja SampleGroupDescription que corresponden a la región de mosaicos deseada. A continuación, el dispositivo puede identificar una caja SampleToGroup que tiene un elemento de sintaxis "grouping_type" que especifica el identificador de tipo 'nalm' y un elemento de sintaxis "grouping_type_parameter" que especifica el identificador de tipo particular. Seguidamente, el dispositivo puede identificar una segunda caja SampleGroupDescription, donde la segunda caja SampleGroupDescription tiene un identificador de tipo de cuatro caracteres de 'nalm'. A continuación, el dispositivo puede determinar, en base a una NALUMapEntry en la segunda caja SampleGroupDescription, qué unidades NAL están asociadas al valor del elemento de sintaxis "groupID" especificado por la entrada de descripción de grupo identificada en la primera caja SampleGroupDescription. Un dispositivo puede realizar el procedimiento inverso para determinar qué regiones de mosaicos, si las hubiera, están asociadas a una unidad NAL particular.
[0107] Además, la presente divulgación describe que una entrada de muestras de región de mosaicos está "asociada a" una entrada de mapa NALU cuando: (1) la entrada de mapa NALU está en una caja SampleGroupDescription correspondiente, y (2) un elemento de sintaxis de identificador de grupo (por ejemplo, "groupID") en la entrada de mapa NALU especifica un valor igual a un valor especificado por un elemento de sintaxis de identificador de grupo en la entrada de muestras de región de mosaicos. La caja SampleGroupDescription correspondiente tiene un elemento de sintaxis de tipo de agrupación (por ejemplo, grouping_type) que especifica un identificador de tipo (por ejemplo, 'nalm') igual a un identificador de tipo de un elemento de sintaxis de tipo de agrupación de una caja SampleToGroup que tiene un elemento de sintaxis de parámetro de tipo de agrupación (por ejemplo, grouping_type_parameter) que especifica un identificador de tipo (por ejemplo, 'trif' o 'tsif') de la entrada de mapa NALU.
[0108] La presente divulgación puede describir que una entrada de muestras de región de mosaicos está "asociada a" una caja SampleToGroup cuando un elemento de sintaxis de tipo de agrupación de la caja SampleToGroup especifica un identificador de tipo (por ejemplo, 'trif' o 'tsif') que coincide con un elemento de sintaxis de tipo de agrupación de una caja SampleGroupDescription que contiene la entrada de muestras de región de mosaicos.
[0109] Como se indica anteriormente, ISO/IEC 14996-15 permite que diferentes pistas de un archivo contengan datos codificados correspondientes a diferentes mosaicos. Un objetivo de incluir datos codificados correspondientes a diferentes mosaicos en diferentes pistas es permitir que un dispositivo extraiga fácilmente pistas particulares sin extraer otras pistas del mosaico. La presente divulgación se puede referir a una pista que contiene unidades NAL de fragmento codificado para uno o más mosaicos como una pista de mosaicos. En este supuesto, un descodificador de vídeo idealmente puede descodificar solo los datos de vídeo codificados en las pistas de mosaicos extraídas. Sin embargo, un flujo de bits puede incluir conjuntos de parámetros, tales como VPS, SPS y PPS, que son comunes a cada mosaico de una imagen. Por tanto, estos conjuntos de parámetros pueden necesitar estar presentes para que un descodificador de vídeo descodifique los datos de vídeo codificados de cualquier pista de mosaicos o combinación de pistas de mosaicos. Para garantizar que los conjuntos de parámetros estén disponibles, ISO/IEC 14995-15 proporciona una pista de mosaicos base. La presente divulgación también se puede referir a la pista de mosaicos base como una pista base para una pista de mosaicos. Una referencia de pista (indicada como la referencia de pista 'tbas') en los metadatos del archivo puede identificar la pista de mosaicos base. La pista de mosaicos base incluye las muestras que comprenden los conjuntos de parámetros. Las pistas de mosaicos de un archivo no incluyen los conjuntos de parámetros. Cuando se extrae una pista de mosaicos, el dispositivo también extrae la pista de mosaicos base. Por tanto, un dispositivo que recibe la pista de mosaicos extraída también recibe la pista de mosaicos base.
[0110] Una caja de pista puede incluir una caja de referencia de pista. Como se describe en la sección 8.3.3 de ISO/IEC 14496-12, 5.a edición, la caja de referencia de pista proporciona una referencia de la pista contentiva (es decir, la pista que contiene la caja de referencia de pista) a otra pista en una presentación. En el contexto de ISO/IEC 14496-12, 5.a edición, una presentación es una o más secuencias de movimiento, posiblemente combinadas con audio. La caja de referencia de pista incluye una o más cajas de tipo de referencia de pista. Cada caja de tipo de referencia de pista está asociada a un identificador de tipo de cuatro caracteres e incluye un identificador de pista. El identificador de pista identifica otra pista en la presentación. Por ejemplo, una caja de referencia de pista de una primera pista puede incluir una caja de tipo de referencia de pista asociada al identificador de tipo 'tbas'. En este ejemplo, el identificador de grupo en la caja de tipo de referencia de pista puede identificar una segunda pista en la presentación. En este ejemplo, se dice que la primera pista tiene una referencia de pista 'tbas' y que la segunda pista se identifica por la referencia de pista 'tbas'. Al incluir la referencia de pista 'tbas' en la primera pista, el archivo indica que la primera pista depende de la segunda pista. En este ejemplo, la segunda pista es la pista base de mosaicos.
[0111] Dado el diseño de formato de archivo existente descrito en ISO/IEC FDIS 14496-15:2014, la relación entre las entradas de grupo de muestras para regiones de mosaicos (es decir, regiones de mosaicos rectangulares y regiones de mosaicos sin restricciones), la entrada de mapa NALU y las cajas SampleToGroup no está clara. Un ejemplo de ambigüedad es si una entrada de muestras de región de mosaicos ('trif' y/o 'tsif') se puede asignar a las muestras usando una caja SampleToGroup. Otro ejemplo de ambigüedad es si tanto una entrada de mapa NALU como una caja SampleToGroup pueden estar presentes y asociadas a una entrada de muestras de región de mosaicos. Los siguientes supuestos (marcados como viñetas (A) a (D) a continuación) pueden ayudar a aclarar las ambigüedades enumeradas anteriormente.
(A) Hay como máximo una región de mosaicos rectangular en cada imagen: cuando hay como máximo una región de mosaicos rectangular en cada imagen/muestra, la asignación entre 'trif' y la muestra se puede describir usando tanto la entrada de mapa NALU como la caja SampleToGroup. Cuando el flujo de bits transportado en la pista es un flujo de bits basado en la unidad NAL (por ejemplo, AVC, HEVC, etc.) puede ser beneficioso o más deseable usar una entrada de mapa NALU.
(B) Hay múltiples regiones de mosaicos rectangulares y una región de mosaicos sin restricciones en cada imagen: cuando hay múltiples regiones de mosaicos rectangulares en cada imagen y se agrupan en una región de mosaicos sin restricciones, tanto la entrada de mapa NALU como la caja SampleToGroup se pueden usar para asignar las regiones de mosaicos a las muestras. Similar al supuesto anterior (supuesto (A)anterior), cuando el flujo de bits transportado en la pista es un flujo de bits basado en la unidad NAL (por ejemplo, AVC, HEVC, etc.) puede ser beneficioso o más deseable usar una entrada de mapa NALU. De otro modo, se puede usar la siguiente técnica: como máximo, una caja SampleToGroup asociada a una entrada de muestras de región de mosaicos sin restricciones está presente y no está presente ninguna caja SampleToGroup asociada a una entrada de muestras de región de mosaicos rectangular.
(C) Hay múltiples regiones de mosaicos rectangulares en cada imagen y no se agrupan en una región de mosaicos sin restricciones: cuando hay múltiples regiones de mosaicos rectangulares en cada imagen y no se agrupan en una región de mosaicos sin restricciones, no es posible usar la caja SampleToGroup para asignar las regiones de mosaicos a las muestras. En dichas situaciones, aunque es posible usar una caja SampleToGroup para proporcionar una asignación de una de las regiones de mosaicos rectangulares a las muestras, un caso de este tipo de uso puede no ser útil. Más bien, la asignación entre las regiones de mosaicos a las muestras de forma alternativa se puede (o incluso se debe) hacer usando una entrada de mapa NALU.
(D) Hay múltiples regiones de mosaicos rectangulares y regiones de mosaicos sin restricciones en cada imagen: este caso es similar al caso anterior (por ejemplo, el supuesto descrito en la viñeta (C)), en el sentido de que o de modo que la asignación de las regiones de mosaicos a las muestras se puede, o incluso se debe, hacer usando una entrada de mapa NALU.
[0112] En base a los supuestos anteriores (A) a (D), se debe aclarar cuándo la asignación entre las entradas de muestras de región de mosaicos ('trif' y/o 'tsif') y las muestras se deben identificar usando entradas de mapa NALU o entradas de muestras de región de mosaicos en una caja SampleToGroup. Por ejemplo, un dispositivo de codificación de vídeo puede mejorar la operación implementando un esquema de selección con respecto a la entrada de mapa NALU frente a las entradas de muestras de región de mosaicos en las cajas SampleToGroup, para la asignación.
[0113] Las tecnologías de formato de archivo existentes también pueden dar lugar a uno o más problemas potenciales con respecto a la definición de región/regiones de mosaicos rectangular(es) y/o región/regiones de mosaicos sin restricciones. Por ejemplo, una región de mosaicos rectangular se define como cualquier número entero de mosaicos de HEVC que forman una región rectangular codificada en uno o más fragmentos que no contiene ningún otro mosaico de HEVC y que puede ser, pero no necesariamente, contigua en el orden de descodificación. Una región de mosaicos sin restricciones se define como cualquier número de fragmentos completos que consisten en uno o más mosaicos de HEVC completos y pueden ser (pero no necesariamente) contiguos en el orden de descodificación.
[0114] Tanto una región de mosaicos rectangular como una región de mosaicos sin restricciones están definidas para asociarse a un fragmento. En el contexto de HEVC y otras normas de codificación de vídeo determinadas, se define que un fragmento es un número entero de CTU contenidas en un segmento de fragmento independiente y todos los segmentos de fragmento dependientes posteriores (si los hubiera) que preceden al siguiente segmento de fragmento independiente (si lo hubiera) dentro de la misma unidad de acceso (AU). En otras palabras, un fragmento puede incluir uno o más segmentos de fragmento (es decir, un segmento de fragmento independiente con cero o más segmentos de fragmento dependientes).
[0115] Con la definición de regiones de mosaicos rectangulares y regiones de mosaicos sin restricciones proporcionadas anteriormente, en el contexto de HEVC, cuando una imagen se codifica con solo un fragmento, aunque el fragmento esté compuesto de múltiples segmentos de fragmento, solo puede haber como máximo una región de mosaicos rectangular y/o región de mosaicos sin restricciones. Una región de mosaicos de este tipo básicamente (por ejemplo, sustancialmente) puede cubrir toda la imagen. El diseño de formato de archivo existente, por tanto, se limita para dichas situaciones cuando un fragmento incluye o consiste en múltiples segmentos de fragmento. En otras palabras, cuando un fragmento incluye o consiste en múltiples segmentos de fragmento que contienen bloques codificados de múltiples mosaicos, el diseño de formato de archivo existente no proporciona del todo una manera de especificar una región de mosaicos rectangular o una región de mosaicos sin restricciones que incluye uno de los mosaicos pero no el otro.
[0116] Por ejemplo, supóngase que una entrada de muestras de región de mosaicos está asociada a una entrada de mapa NALU y la entrada de muestras de región de mosaicos describe una región de mosaicos (por ejemplo, una región de mosaicos rectangular o una región de mosaicos sin restricciones). En este ejemplo, la entrada de mapa NALU indica las unidades NAL que están asociadas a la región de mosaicos, tales como las unidades NAL que contienen segmentos de fragmento individuales. Puesto que una región de mosaicos se define en términos de fragmentos completos y un fragmento puede incluir segmentos de fragmento para los bloques fuera de la región de mosaicos, no está claro en ISO/IEC FDIS 14496-15:2014 si se debe obligar a la entrada de mapa NALU a que indique las unidades NAL para segmentos de fragmento para bloques fuera de la región de mosaicos, o si la entrada de mapa NALU solo debe indicar las unidades NAL para segmentos de fragmento para los bloques en el interior de la región de mosaicos en conflicto con la definición de la región de mosaicos, o si se permite que el archivo incluya una entrada de muestras de región de mosaicos que describe una región de mosaicos donde un fragmento completo que contiene bloques de la región de mosaicos también contiene bloques fuera de la región de mosaicos. Como resultado de esta falta de claridad, se pueden implementar diferentes archivos y dispositivos de maneras potencialmente incompatibles; o los dispositivos se pueden ver obligados a tener en cuenta la posibilidad de que los archivos usen cualquiera de las interpretaciones, lo que puede aumentar la complejidad del dispositivo (y los costes asociados) y/o ralentizar los archivos de proceso de capacidad del dispositivo.
[0117] El diseño de formato de archivo existente también puede presentar uno o más problemas potenciales con respecto a la presencia de la pista base para las pistas de mosaicos. Para pistas de mosaicos, ISO/IEC 14996-15 especifica lo siguiente:
"Ni las muestras en la pista de mosaicos ni la caja de descripción de muestra contendrán unidades NAL de VPS, SPS o PPS, estas unidades NAL estarán en las muestras o en la caja de descripción de muestra de la pista que contiene la capa asociada, como se identifica por la referencia de pista 'tbas'".
[0118] Una consecuencia de la descripción anterior es que, cuando hay una o más pistas de mosaicos en un archivo, la referencia de pista 'tbas', que también se denomina "pista de mosaicos base", debe estar presente, y cada pista de mosaicos del archivo debe tener una referencia de pista 'tbas'. Una restricción implícita de este tipo puede estar motivada y/o se puede usar para abordar casos de uso donde se puede necesitar que la imagen completa (es decir, una imagen descodificada a partir de muestras en la pista de mosaicos base) se descodifique y se represente.
[0119] En algunos casos de uso, la imagen completa de la pista de mosaicos base nunca se descodifica o reproduce. Por ejemplo, para una aplicación de vídeo de realidad virtual (VR) o una aplicación de vídeo de 360 grados, solo un subconjunto de toda la región de vídeo representada por las imágenes de vídeo, el subconjunto correspondiente al campo visual (FOV) actual, que también denomina "ventana gráfica". En otras palabras, el área que se está viendo actualmente por el usuario se visualiza en estos supuestos. La solicitud provisional de EE. UU. n.° 62/339.009 describe una estrategia de codificación que usa un códec de vídeo escalable, tal como SHVC, para codificar un vídeo VR en múltiples resoluciones, tales como dos resoluciones. De acuerdo con esta estrategia, todo el flujo de bits del vídeo de la menor resolución (o la capa base) siempre se transmite y descodifica, mientras que en cualquier momento solo se descodifica una parte de un vídeo de mayor resolución, que se codifica usando mosaicos con restricción de movimiento. Los flujos de bits de vídeo de mayor resolución se pueden estructurar para almacenarse en múltiples pistas de mosaicos.
[0120] Para dichos casos de uso, puede que no sea necesario que la pista de mosaicos base esté siempre presente, y la presencia de la pista base de hecho puede ser redundante ya que la pista base nunca se descodificará. Para las aplicaciones de vídeo VR, se concibe que su estructura de formato de archivo usará muchas pistas, por lo que es deseable tener solo pistas que sean realmente útiles. Sin embargo, debido a la presencia de la pista anterior de mosaicos, una representación DASH más está presente cuando el vídeo VR se transmite usando DASH. En consecuencia, puede ser necesario solicitar los segmentos de esta representación DASH adicional, y esta consecuencia puede representar una carga innecesaria cuando los conjuntos de parámetros se pueden almacenar realmente en las entradas de muestras de las pistas de mosaicos, que a menudo es el caso.
[0121] Para abordar, mitigar o potencialmente resolver uno o más de los problemas potenciales analizados anteriormente, los dispositivos informáticos pueden implementar diversas técnicas de la presente divulgación, de las que se analizan aspectos en los párrafos a continuación. Dichos dispositivos informáticos pueden implementar una o más de las técnicas individualmente (por ejemplo, independientemente) y/o implementar dos o más de las técnicas en diversas combinaciones y/o secuencias.
[0122] De acuerdo con una primera técnica de la presente divulgación, en los casos donde una entrada de muestras de región de mosaicos (por ejemplo, una región de mosaicos rectangular, región de mosaicos sin restricciones u otras formas de entrada de muestras de región de mosaicos) se puede asignar a las muestras usando una entrada de mapa NALU y directamente usando una caja SampleToGroup, se puede implementar una restricción de modo que una entrada de muestras de región de mosaicos se pueda asociar a una entrada de mapa NALU o una caja SampleToGroup pero no ambas. La implementación de esta restricción en un archivo puede eliminar la necesidad de que los dispositivos informáticos puedan manejar la posibilidad de que el archivo incluya tanto una entrada de mapa NALU asociada a una entrada de muestras de región de mosaicos (por ejemplo, una entrada de descripción de grupo de una clase que tenga un identificador de tipo de cuatro caracteres de 'trif' o un 'tsif') y una caja SampleToGroup asociada a la entrada de muestras de región de mosaicos. Esto puede reducir la complejidad de los dispositivos informáticos.
[0123] De acuerdo con un ejemplo de la primera técnica de la presente divulgación, un dispositivo informático (por ejemplo, el dispositivo de origen 12, el dispositivo de generación de archivos 34 u otro dispositivo) puede generar un archivo que se ajusta a un formato de archivo que impide que el dispositivo incluya en el archivo tanto una entrada de mapa NALU asociada a una entrada de muestras de región de mosaicos (por ejemplo, una entrada de descripción de grupo de una clase que tiene un identificador de tipo de cuatro caracteres de 'trif' o un 'tsif') como una caja SampleToGroup asociada a la entrada de muestras de región de mosaicos.
[0124] De acuerdo con otro ejemplo de la primera técnica de la presente divulgación, un dispositivo informático (por ejemplo, el dispositivo de destino 14, un MANE u otro dispositivo) puede recibir un archivo. Adicionalmente, en este ejemplo, el dispositivo informático puede determinar si el archivo incluye una entrada de mapa NALU asociada a una entrada de muestras de región de mosaicos (por ejemplo, una entrada de descripción de grupo de una clase que tiene un identificador de tipo de cuatro caracteres de 'trif' o un 'tsif') y si el archivo incluye una caja SampleToGroup asociada a una entrada de muestras de región de mosaicos. En respuesta a determinar que el archivo incluye una entrada de mapa NALU asociada a una entrada de muestras de región de mosaicos y una caja SampleToGroup asociada a una entrada de muestras de región de mosaicos, el dispositivo informático puede determinar que el archivo no se ajusta a un formato de archivo. Sin embargo, el dispositivo informático puede determinar que el archivo se ajusta al formato de archivo en respuesta a determinar que el archivo incluye una entrada de mapa NALU asociada a una entrada de muestras de región de mosaicos o bien una caja SampleToGroup asociada a una entrada de muestras de región de mosaicos, pero no ambas.
[0125] En algunos ejemplos, el dispositivo de generación de archivos 34 puede determinar si la entrada de muestras de región de mosaicos (por ejemplo, una entrada de descripción de grupo de una clase que tenga un identificador de tipo de cuatro caracteres de 'trif' o un 'tsif') se puede asignar a las muestras usando tanto la entrada de mapa NALU como la caja SampleToGroup. Si la determinación es positiva (es decir, la entrada de muestras de región de mosaicos se puede asignar a la(s) muestra(s) usando ambas), entonces el dispositivo de generación de archivos 34 puede restringir la asignación de modo que la entrada de muestras de región de mosaicos solo se pueda asignar a la(s) muestra(s) usando una de la entrada de mapa NALU o la caja SampleToGroup, pero no se puede asignar a la(s) muestra(s) usando cualquier combinación de la entrada de mapa NALU y la caja SampleToGroup. Por tanto, en este ejemplo, un dispositivo informático puede determinar que una entrada de muestras de región de mosaicos está asociada a una entrada de mapa NALU o bien una caja SampleToGroup. Además, el dispositivo informático puede determinar que la entrada de muestras de región de mosaicos no está asociada a una combinación de la entrada de mapa NALU y la caja SampleToGroup.
[0126] De acuerdo con una segunda técnica de la presente divulgación, cuando las entradas de muestras de región de mosaicos están asociadas a una caja SampleToGroup, solo habrá una región de mosaicos (una región de mosaicos o bien un conjunto de regiones de mosaicos que se agrupan entre sí para formar una región más grande) presente en una muestra. En otras palabras, cuando una caja de tabla de muestras de un archivo incluye entradas de muestras de región de mosaicos asociadas a una caja de SampleToGroup, una restricción presente en un formato de archivo del archivo impide que una muestra del archivo incluya unidades NAL de fragmento codificado para múltiples regiones de mosaicos. Esta restricción puede reducir la complejidad de los dispositivos informáticos que leen el archivo porque los dispositivos informáticos no necesitan tener en cuenta la posibilidad de que una muestra del archivo incluya unidades NAL de fragmento codificado para múltiples regiones de mosaicos. La reducción de dicha complejidad puede acelerar el funcionamiento de los dispositivos, puede reducir los costes de los dispositivos informáticos o, de otro modo, puede mejorar los dispositivos informáticos.
[0127] De acuerdo con un ejemplo de la segunda técnica de la presente divulgación, un dispositivo informático (por ejemplo, el dispositivo de origen 12, el dispositivo de generación de archivos 34 u otro dispositivo) puede generar un archivo que se ajusta a un formato de archivo que impide que el dispositivo informático genere un archivo que incluya una entrada de muestras de región de mosaicos asociada a una caja SampleToGroup y una muestra en la que están presentes dos o más regiones de mosaicos.
[0128] De acuerdo con otro ejemplo de la segunda técnica de la presente divulgación, un dispositivo informático (por ejemplo, el dispositivo de destino 14, un MANE u otro dispositivo) puede recibir un archivo. Adicionalmente, en este ejemplo, el dispositivo informático puede determinar si el archivo incluye una entrada de muestras de región de mosaicos asociada a una caja SampleToGroup del archivo y si dos o más regiones de mosaicos están presentes en una única muestra del archivo. En respuesta a determinar que el archivo incluye una entrada de muestras de región de mosaicos asociada a una caja SampleToGroup del archivo y que dos o más regiones de mosaicos están presentes en una única muestra del archivo, el dispositivo informático puede determinar que el archivo no se ajusta a un formato de archivo. Por el contrario, el dispositivo informático puede determinar que el archivo se ajusta al formato del archivo en respuesta a determinar que el archivo incluye una entrada de muestras de región de mosaicos asociada a una caja SampleToGroup del archivo y, para cada muestra respectiva del archivo, solo una región de mosaicos única está presente en el archivo respectivo.
[0129] En algunos ejemplos, un dispositivo informático puede determinar que una entrada de muestras de región de mosaicos está asociada a una caja SampleToGroup. En este ejemplo, el dispositivo informático puede determinar que una muestra que se asigna a la entrada de muestras de región de mosaicos incluye exactamente una región de mosaicos o una región consolidada que incluye dos o más regiones de mosaicos. Por ejemplo, el dispositivo informático (por ejemplo, el dispositivo de destino 14, un dispositivo informático que incluye el codificador de vídeo 20 y/o el descodificador de vídeo 30 u otro tipo de dispositivo) puede determinar que las entradas de muestras de región de mosaicos (por ejemplo, un 'trif' o un 'tsif') se asignan a la(s) muestra(s) correspondiente(s) usando una caja SampleToGroup. Si la determinación es positiva (es decir, el trif o tsif, según sea el caso, se asigna a la(s) muestra(s) usando la caja SampleToGroup), entonces el dispositivo informático puede restringir la interacción mosaico-muestra de modo que solo una región de mosaicos esté presente en una muestra dada.
[0130] De acuerdo con una tercera técnica de la presente divulgación, se puede implementar una señalización para indicar si la asignación de regiones de mosaicos y muestras usa una entrada de mapa NALU o usa directamente una caja de muestra a grupo. Por ejemplo, el dispositivo de generación de archivos 34 u otro dispositivo puede implementar la señalización para indicar si la asignación de regiones de mosaicos y muestras usa la entrada de mapa NALU, o directamente usa una caja SampleToGroup. Por ejemplo, el dispositivo de generación de archivos 34 puede codificar y señalar información que indica si una asignación de región de mosaicos a muestra usa una entrada de mapa NALU, o usa una caja de muestra a grupo. A su vez, el dispositivo de generación de archivos 34 puede usar la información señalada para determinar si una asignación de región de mosaicos a muestra usa una entrada de mapa NALU, o usa una caja de muestra a grupo. Dos implementaciones de ejemplo se describen a continuación.
[0131] En una primera implementación de ejemplo de la tercera técnica, se puede usar un campo de versión de la caja de descripción de grupo de muestras ('sgpd') que contiene las entradas de muestras de región de mosaicos para indicar si las entradas de muestras de región de mosaicos pueden estar asociadas con una entrada de mapa NALU o una caja SampleToGroup. En otras palabras, un dispositivo informático puede usar el elemento de sintaxis de versión de una caja SampleGroupDescription para determinar si una entrada de muestras de región de mosaicos en la caja SampleGroupDescription está asociada a una entrada de mapa NALU o con una caja SampleToGroup. Por ejemplo, cuando el elemento de sintaxis de versión de la caja SampleGroupDescription ('sgpd') es igual a 0, las entradas de muestras de región de mosaicos en la caja SampleGroupDescription están asociadas a una caja SampleToGroup, no a una entrada de mapa NALU, y cuando el elemento de sintaxis de versión de la caja SampleGroupDescription ('sgpd') es igual a 1, las entradas de muestras de región de mosaicos en la caja SampleGroupDescription están asociadas a una entrada de mapa NALU, no a una caja SampleToGroup. Por consiguiente, en este ejemplo, si el elemento de sintaxis de versión de la caja SampleGroupDescription es 0, un dispositivo informático puede determinar que una entrada de muestras de región de mosaicos en la caja SampleGroupDescription está asociada a la caja SampleToGroup. Si el elemento de sintaxis de versión es 1, el dispositivo informático puede determinar que la entrada de muestras de región de mosaicos en la caja SampleGroupDescription está asociada a la entrada de mapa NALU.
[0132] Por ejemplo, un primer dispositivo (por ejemplo, el dispositivo de origen 12, el dispositivo de generación de archivos 34) puede señalar un valor 0 en el elemento de sintaxis de versión de la caja SampleGroupDescription ('sgpd') para indicar que las entradas de muestras de región de mosaicos en la caja SampleGroupDescription (por ejemplo, 'trif' o 'tsif', según sea el caso) se asignan a la(s) muestra(s) usando una caja SampleToGroup. A su vez, un segundo dispositivo (por ejemplo, el dispositivo de destino 14) puede usar el valor de cero en el elemento de sintaxis de versión de la caja SampleGroupDescription ('sgpd') para determinar que las entradas de muestras de la región de mosaicos en la caja SampleGroupDescription ('trif o' tsif ', según sea el caso) se asignan a la(s) muestra(s) usando una caja SampleToGroup. Por el contrario, el primer dispositivo puede codificar y señalar un valor de 1 en el elemento de sintaxis de versión de la caja SampleGroupDescription ('sgpd') para indicar que las entradas de muestras de región de mosaicos en la caja SampleGroupDescription ('trif' o 'tsif', según sea el caso) se asignan a la(s) muestra(s) usando una entrada de mapa NALU. A su vez, en este ejemplo, el segundo dispositivo puede usar el valor de 0 en el elemento de sintaxis de versión de la caja SampleGroupDescription para determinar que las entradas de muestras de región de mosaicos en la caja SampleGroupDescription (por ejemplo, 'trif' o 'tsif', según sea el caso) se asignan a la(s) muestra(s) usando una entrada de mapa NALU.
[0133] En una segunda implementación de ejemplo de la tercera técnica, se puede añadir un indicador en cada entrada de muestras de región de mosaicos para indicar si la entrada de muestras de región de mosaicos está asociada a una caja SampleToGroup o una entrada de mapa NALU. Por consiguiente, en este ejemplo, un dispositivo informático puede usar un indicador de un bit para determinar si una entrada de muestras de región de mosaicos está asociada a una entrada de mapa NALU o con una caja SampleToGroup. Por ejemplo, un primer dispositivo (por ejemplo, el dispositivo de origen 12, el dispositivo de generación de archivos 34 u otro dispositivo) puede usar un posible valor binario de un indicador de un bit para indicar que una entrada de muestras de región de mosaicos (por ejemplo, 'trif' o ' tsif ') se asigna a la(s) muestra(s) usando una entrada de mapa NALU, y usa el otro valor binario posible del indicador de un bit para indicar que la entrada de muestras de región de mosaicos se asigna a la(s) muestra(s) usando una caja SampleToGroup. A su vez, un segundo dispositivo (por ejemplo, el dispositivo de destino 14, un MANE u otro dispositivo) puede reconstruir el indicador de un bit señalado. Si el indicador se establece en un primer valor binario posible, el segundo dispositivo puede determinar que la entrada de muestras de región de mosaicos (por ejemplo, 'trif' o 'tsif') se asigna a la(s) muestra(s) usando una entrada de mapa NALU. Si el indicador se establece en un segundo valor binario posible, el segundo dispositivo puede determinar que la entrada de muestras de región de mosaicos se asigna a la(s) muestra(s) usando una caja SampleToGroup
[0134] De acuerdo con una cuarta técnica de la presente divulgación, cuando un flujo de bits en una pista se basa en la unidad NAL (por ejemplo, AVC, HEVC, derivaciones de AVC o HEVC, etc.), las entradas de muestras de región de mosaicos se deben asociar a una entrada de mapa NALU, no a una caja SampleToGroup. Por ejemplo, un primer dispositivo (por ejemplo, el dispositivo de origen 12, el dispositivo de generación de archivos 34 u otro dispositivo) puede determinar si un flujo de bits se basa en la unidad NAL, tal como un flujo de bits que se ajusta a una de las normas AVC o HEVC, o a normas que son derivaciones de las mismas. En base a la determinación de que el flujo de bits se basa en la unidad NAL, el primer dispositivo puede generar un archivo que almacena el flujo de bits de modo que una o más entradas de muestras de región de mosaicos en el archivo estén asociadas a una entrada de mapa NALU y ninguna entrada de muestras de región de mosaicos en el archivo esté asociada a una caja SampleToGroup. Sin embargo, en base a la determinación de que el flujo de bits no se basa en la unidad NAL, el primer dispositivo puede generar el archivo de modo que una entrada de muestras de región de mosaicos esté asociada a una caja SampleToGroup. En algunos ejemplos, un segundo dispositivo (por ejemplo, el dispositivo de destino 14) puede determinar que el archivo no se ajusta a un formato de archivo cuando el archivo almacena un flujo de bits que se basa en la unidad NAL e incluye una entrada de muestras de región de mosaicos asociada a una caja SampleToGroup.
[0135] Por tanto, en el cuarto ejemplo, un dispositivo informático puede determinar que se incluye una región de mosaicos en un flujo de bits basado en la unidad NAL. Adicionalmente, en este ejemplo, el dispositivo informático puede determinar que una entrada de muestras de región de mosaicos del flujo de bits basado en la unidad NAL está asociada a una entrada de mapa NALU.
[0136] De acuerdo con una quinta técnica de la presente divulgación, para HEVC y sus códecs derivados (por ejemplo, SHVC, MV-HEVC, HEVC-SCC, etc.), las definiciones de región de mosaicos rectangular y región de mosaicos sin restricciones se cambian de modo que se definen a nivel de segmento de fragmento en lugar de a nivel de fragmento. Dos ejemplos de la quinta técnica de la presente divulgación se analizan en las subviñetas (a) y (b) a continuación.
a) La región de mosaicos rectangular se define como cualquier número entero de mosaicos de HEVC que forman una región rectangular codificada en uno o más segmentos de fragmento que no contienen ningún otro mosaico de HEVC y que pueden ser (pero no necesariamente) contiguos en el orden de descodificación.
b) La región de mosaicos sin restricciones se define como cualquier número de segmentos de fragmento que incluyen uno o más mosaicos de HEVC completos y pueden ser (pero no necesariamente) contiguos en el orden de descodificación.
[0137] Como resultado de cambiar las definiciones de región de mosaicos rectangular y región de mosaicos sin restricciones de esta manera, el dispositivo de generación de archivos 34 puede generar archivos en los que una entrada de mapa NALU asociada a una región de mosaicos especifica unidades NAL de fragmento codificado que incluyen bloques codificados de la región de mosaicos y no especifica unidades NAL de fragmento codificado que no incluyen bloques codificados fuera de la región de mosaicos. Por ejemplo, supóngase que las unidades NAL 1 a 10 son unidades NAL de fragmento codificado que incluyen bloques codificados en el interior de una región de mosaicos y permiten que las unidades NAL 11 a 20 sean unidades NAL de fragmento codificado que incluyen bloques codificados fuera de la región de mosaicos. Además, en este ejemplo, supóngase que la unidad NAL 1 comprende un segmento de fragmento independiente y la unidad NAL 15 contiene el siguiente segmento de fragmento independiente. Por tanto, en este ejemplo, las unidades NAL 1 a 14 corresponden a un primer fragmento completo y las unidades NAL 15 en adelante corresponden a un segundo fragmento completo. Adicionalmente, en este ejemplo, supóngase que el identificador de grupo (por ejemplo, groupID) de una entrada de región de mosaicos para la región de mosaicos es igual a 55. En este ejemplo, una entrada de mapa NALU asociada con la entrada de muestras de región de mosaicos para la región de mosaicos puede incluir dos entradas. De acuerdo con la quinta técnica de la presente divulgación, dado que la región de mosaicos se define en términos de segmentos de fragmento en lugar de fragmentos completos, la primera entrada en la entrada de mapa NALU especifica un NALU_start_number de 1 y un groupID de 55; la segunda entrada en la entrada de mapa NALU especifica un NALU_start_number de 11 y un groupID igual a algún número distinto de 55. Por el contrario, si la región de mosaicos se hubiera definido en términos de fragmentos completos, la segunda entrada en la entrada de mapa NALU se podría haber obligado a especificar 15 en lugar de 11 de modo que la región de mosaicos incluya el primer fragmento completo.
[0138] Por tanto, en algunos ejemplos, una región de mosaicos rectangular puede comprender un número entero de mosaicos que conjuntamente forman una región rectangular en un segmento de fragmento de los datos de vídeo. En algunos ejemplos, el segmento de fragmento no incluye ningún mosaico que no sean los mosaicos que forman conjuntamente la región rectangular. En algunos ejemplos, los mosaicos que forman conjuntamente una región de mosaicos rectangular se disponen en orden contiguo. Además, en algunos ejemplos, los mosaicos que forman conjuntamente la región de mosaicos rectangular se disponen en un orden no contiguo.
[0139] En algunos ejemplos, una región de mosaicos puede comprender una región de mosaicos sin restricciones. La región de mosaicos sin restricciones que comprende un número entero de mosaicos en un segmento de fragmento de los datos de vídeo. Además, en algunos ejemplos, los mosaicos de la región de mosaicos sin restricciones se disponen en orden contiguo. En algunos ejemplos, los mosaicos de la región de mosaicos sin restricciones se disponen en un orden no contiguo. En algunos ejemplos, el segmento de fragmento no incluye ningún mosaico que no sean los mosaicos de la región sin restricciones.
[0140] De acuerdo con la quinta técnica de la presente divulgación, un dispositivo informático (por ejemplo, el dispositivo de origen 12, el dispositivo de generación de archivos 34, un MANE u otro dispositivo informático) recibe un flujo de bits que comprende un flujo de unidades NAL. El flujo de unidades NAL comprende una pluralidad de unidades NAL de fragmento codificado. Cada unidad NAL de fragmento codificado respectiva de la pluralidad de unidades NAL de fragmento codificado encapsula una RBSP respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo. Cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento comprende un número entero de las CTU de la imagen. La pluralidad de segmentos de fragmento del fragmento incluye un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes. Además, en este ejemplo, la imagen se divide en una pluralidad de mosaicos, la pluralidad de mosaicos incluye un primer mosaico y un segundo mosaico. La pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico.
[0141] Además, en este ejemplo, el dispositivo informático puede generar un archivo que almacena el flujo de bits. Como parte de la generación del archivo, el dispositivo informático puede definir una región de mosaicos en el archivo. La región de mosaicos es una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento. En algunos ejemplos, la región de mosaicos rectangular no contiene ningún mosaico que no sea el número entero de mosaicos que forman la región rectangular. La región de mosaicos rectangular incluye el primer mosaico, la región de mosaicos rectangular no incluye el segundo mosaico. Por tanto, en este ejemplo, la región de mosaicos no está obligada a incluir el segundo mosaico porque las CTU del segundo mosaico están en los mismos fragmentos completos que los bloques del primer mosaico.
[0142] De forma similar, en un ejemplo, un dispositivo informático puede recibir un archivo que almacena un flujo de bits. En este ejemplo, el flujo de bits comprende un flujo de unidades NAL. El flujo de unidades NAL comprende una pluralidad de unidades NAL de fragmento codificado. Cada unidad NAL de fragmento codificado respectiva de la pluralidad de unidades NAL de fragmento codificado encapsula una RBSP respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo. Cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento comprende un número entero de las CTU de la imagen. La pluralidad de segmentos de fragmento del fragmento incluye un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes. En este ejemplo, la imagen se divide en una pluralidad de mosaicos, que incluyen un primer mosaico y un segundo mosaico. La pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico. Una región de mosaicos se define en el archivo. La región de mosaicos es una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento. En algunos ejemplos, la región de mosaicos rectangular no contiene ningún mosaico que no sea el número entero de mosaicos que forman la región rectangular. La región de mosaicos rectangular incluye el primer mosaico, pero la región de mosaicos rectangular no incluye el segundo mosaico. En este ejemplo, el dispositivo informático puede usar el archivo para la reproducción de archivos de medios locales, la descarga progresiva de datos en el archivo a un dispositivo remoto u otros usos.
[0143] De acuerdo con una sexta técnica de la presente divulgación, las pistas de mosaicos pueden tener o no referencias de pista 'tbas'. En otras palabras, una caja de pista para una pista de mosaicos puede incluir, pero no se requiere que incluya, una caja de referencia de pista que incluye una caja de tipo de referencia de pista asociada al identificador de tipo 'tbas'. De acuerdo con la sexta técnica, cuando una pista de mosaicos tiene una referencia de pista 'tbas', ni las muestras ni la caja de descripción de muestra en la pista de mosaicos contendrán unidades NAL de VPS, SPS o PPS. Por el contrario, estas unidades NAL (es decir, unidades NAL de VPS, SPS y PPS) estarán en las muestras o en la caja de descripción de muestra de la referencia de pista 'tbas'. En otras palabras, las unidades NAL de VPS, las unidades NAL de SPS y las unidades NAL de PPS necesarias para descodificar la referencia de pista de mosaicos se almacenan en muestras de o en la caja de descripción de muestra de la pista indicada por el identificador de pista en la caja de tipo de referencia de pista 'tbas' en la caja de referencia de pista de la pista de mosaicos.
[0144] Sin embargo, de acuerdo con la sexta técnica, cuando una pista de mosaicos no tenga una referencia de pista 'tbas', las unidades NAL distintas de VCL necesarias (por ejemplo, unidades NAL de conjuntos de parámetros tales como unidades NAL de VPS, SPS, PPS y SEI) estarán en las muestras de la pista de mosaicos o bien en la caja de descripción de muestra de la pista de mosaicos, con un posicionamiento preferencial solo en las cajas de descripción de muestra siempre que sea posible. Por ejemplo, el dispositivo de generación de archivos 34 puede incluir las unidades NAL distintas de VCL en la caja de descripción de muestra de la pista de mosaicos cuando no haya actualización del conjunto de parámetros, donde el contenido de la unidad NAL de conjuntos de parámetros no cambia en absoluto excepto la ID del conjunto de parámetros por sí misma, y así sucesivamente. De esta manera, el formato de archivo tiene flexibilidad para usar una pista base de mosaicos. Como se describe anteriormente, en algunas circunstancias, el uso de la pista base de mosaicos puede ser perjudicial para el rendimiento del ordenador.
[0145] Por tanto, en un ejemplo de la sexta técnica, un dispositivo informático puede determinar si una pista de mosaicos de los datos de vídeo está asociada a una referencia de pista base (tbas). En algunos casos de la sexta técnica, en respuesta a la determinación de que la pista de mosaicos está asociada a una referencia 'tbas', el dispositivo informático puede determinar que las unidades NAL de conjuntos de parámetros para la pista de mosaicos se incluyen en muestras o en una caja de descripción de muestra de la pista base de mosaicos. En algunos casos del sexto ejemplo, en respuesta a una determinación de que la pista de mosaicos está asociada a una referencia 'tbas', el dispositivo informático puede determinar que no se incluye ninguna unidad NAL de conjuntos de parámetros para la pista de mosaicos en ninguna muestra o caja de descripción de muestra de la pista de mosaicos. En algunos casos de la sexta técnica, en respuesta a una determinación de que la pista de mosaicos no está asociada a ninguna referencia 'tbas', el dispositivo informático puede determinar que una o más unidades NAL de conjuntos de parámetros para la pista de mosaicos se incluyen en una caja descripción de muestra o bien en una o más muestras de la pista de mosaicos. En algunos casos del sexto ejemplo, en respuesta a la determinación de que la pista de mosaicos no está asociada a ninguna referencia 'tbas', el dispositivo informático puede determinar que todas las unidades NAL de conjuntos de parámetros para la pista de mosaicos se incluyen exactamente en una de una descripción de muestra o en una o más muestras de la pista de mosaicos. En algunos casos de la sexta técnica, las unidades NAL de conjuntos de parámetros comprenden una o más unidades NAL de VPS, SPS o PPS.
[0146] De acuerdo con una séptima técnica de la presente divulgación, cuando una pista de mosaicos no tiene la referencia de pista 'tbas', todas las pistas de mosaicos que son parte del mismo flujo de bits tampoco tendrán la referencia de pista 'tbas'. Por ejemplo, el dispositivo de generación de archivos 34 puede generar un archivo de modo que el archivo incluya una pluralidad de pistas de mosaicos. En este ejemplo, ninguna de las pistas de mosaicos tiene una referencia de pista 'tbas'. Además, en algunos ejemplos, un dispositivo informático (por ejemplo, el dispositivo de destino 14, un MANE u otro dispositivo) puede determinar que un archivo incluye una primera pista de mosaicos que no tiene una referencia de pista 'tbas'. En base a la primera pista de mosaicos que no incluye una referencia de pista 'tbas', el dispositivo informático puede determinar que ninguna otra pista de mosaicos del archivo (que también incluye la pista de mosaicos de archivo) incluye una referencia de pista 'tbas'.
[0147] De acuerdo con una octava técnica de la presente divulgación, cuando una pista de mosaicos tiene una referencia de pista 'tbas', todas las pistas de mosaicos que son parte del mismo flujo de bits también tendrán la referencia de pista 'tbas'. Por ejemplo, el dispositivo de generación de archivos 34 puede generar un archivo de modo que el archivo incluya una pluralidad de pistas de mosaicos. En este ejemplo, una restricción especificada por un formato de archivo del archivo requiere que cada pista de mosaicos del archivo tenga una referencia 'tbas' si alguna pista de mosaicos del archivo tiene una referencia 'tbas'. En algunos ejemplos, un dispositivo informático (por ejemplo, el dispositivo de destino 14, un MANE u otro dispositivo) puede determinar que un archivo incluye una primera pista de mosaicos que tiene una referencia de pista 'tbas'. En este ejemplo, el archivo almacena metadatos con respecto a un flujo de bits. En base a la primera pista de mosaicos que incluye la referencia de pista 'tbas', el dispositivo informático puede determinar que cada otra pista de mosaicos del archivo incluye una referencia de pista 'tbas' respectiva.
[0148] De acuerdo con una novena técnica de la presente divulgación, cuando se descodifica más de una pista de mosaicos, para las unidades NAL distintas de VCL que están duplicadas, solo se conservará una copia y el resto se eliminará. Por ejemplo, un dispositivo informático (por ejemplo, el dispositivo de destino 14, un MANE, un descodificador de vídeo 30 u otro dispositivo) puede reconstruir datos de un flujo de bits recibido y determinar que los datos reconstruidos incluyen unidades NAL distintas de VCL duplicadas. En base a la duplicación detectada, el dispositivo informático puede retener una copia de las unidades NAL distintas de VCL que muestran duplicación o redundancia. Adicionalmente, el dispositivo informático puede descartar todas las demás copias (por ejemplo, duplicadas o redundantes) de la(s) unidad(es) NAL distinta(s) de VCL para las que se detecta duplicación.
[0149] La FIG. 3 es un diagrama de bloques que ilustra un codificador de vídeo 20 de ejemplo que se puede usar con las técnicas descritas en la presente divulgación. El codificador de vídeo 20 se puede configurar para emitir datos de vídeo de vista única, multivista, escalable, 3D y otros tipos. El codificador de vídeo 20 se puede configurar para emitir vídeos a una entidad de posprocesamiento 27. La entidad de posprocesamiento 27 está destinada a representar un ejemplo de una entidad de vídeo, tal como un dispositivo MANE o de empalme/edición, que puede procesar datos de vídeo codificados del codificador de vídeo 20. En algunos casos, la entidad de posprocesamiento puede ser un ejemplo de una entidad de red. En algunos sistemas de codificación de vídeo, la entidad de posprocesamiento 27 y el codificador de vídeo 20 pueden ser partes de dispositivos separados, mientras que, en otros casos, la funcionalidad descrita con respecto a la entidad de posprocesamiento 27 se puede realizar por el mismo dispositivo que comprende el codificador de vídeo 20. La entidad de posprocesamiento 27 puede ser un dispositivo de vídeo. En algunos ejemplos, la entidad de posprocesamiento 27 puede ser la misma que el dispositivo de generación de archivos 34 de la FIG. 1.
[0150] El codificador de vídeo 20 puede realizar intra e intercodificación de bloques de vídeo dentro de fragmentos de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial de un 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 de un vídeo dentro de tramas o imágenes adyacentes de una secuencia de vídeo. El intramodo (modo I) se puede referir a cualquiera de varios modos de compresión de base espacial. Los intermodos, tales como la predicción unidireccional (modo P) o la bipredicción (modo B), se pueden referir a cualquiera de varios modos de compresión de base temporal.
[0151] En el ejemplo de la FIG. 3, el codificador de vídeo 20 incluye una unidad de división 135, una unidad de procesamiento de predicción 141, una unidad de filtro 163, una memoria de imágenes de referencia 164, un sumador 150, una unidad de procesamiento de transformada 152, una unidad de cuantificación 154 y una unidad de codificación por entropía 156. La unidad de procesamiento de predicción 141 incluye la unidad de estimación de movimiento 142, la unidad de compensación de movimiento 144 y la unidad de procesamiento de intrapredicción 146. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 también incluye la unidad de cuantificación inversa 158, la unidad de procesamiento de transformada inversa 160 y el sumador 162. La unidad de filtro 163 está destinada a representar uno o más filtros de bucle tales como un filtro de despixelado, un filtro de bucle adaptativo (ALF) y un filtro de desplazamiento adaptativo de muestras (SAO). Aunque la unidad de filtro 163 que se muestra en la FIG. 3 es un filtro en bucle, en otras configuraciones la unidad de filtro 163 se puede implementar como un filtro posbucle.
[0152] Una memoria de datos de vídeo del codificador de vídeo 20 puede almacenar datos de vídeo que se van a codificar por los componentes del codificador de vídeo 20. Los datos de vídeo almacenados en la memoria de datos de vídeo se pueden obtener, por ejemplo, a partir de la fuente de vídeo 18. La memoria de imágenes de referencia 164 puede ser una memoria de imágenes de referencia que almacena datos de vídeo de referencia para su uso en la codificación de datos de vídeo por el codificador de vídeo 20, por ejemplo, en modos de intra o intercodificación. La memoria de datos de vídeo y la memoria imágenes de referencia 164 pueden estar formadas por cualquiera de una variedad de dispositivos de memoria, tales como una memoria dinámica de acceso aleatorio (DRAM), que incluye DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) u otros tipos de dispositivos de memoria. La memoria de datos de vídeo y la memoria de imágenes de referencia 164 se pueden proporcionar por el mismo dispositivo de memoria o por dispositivos de memoria separados. En diversos ejemplos, la memoria de datos de vídeo puede estar en el chip con otros componentes del codificador de vídeo 20, o fuera del chip en relación con esos componentes.
[0153] Como se muestra en la FIG. 3, el codificador de vídeo 20 recibe datos de vídeo, y la unidad de división 135 divide los datos en bloques de vídeo. Esta división también puede incluir la división en fragmentos, mosaicos u otras unidades más grandes, así como la división en bloques de vídeo, por ejemplo, de acuerdo con una estructura de árbol cuaternario de LCU y CU. El codificador de vídeo 20 ilustra, en general, los componentes que codifican los bloques de vídeo dentro de un fragmento de vídeo que se va a codificar. El fragmento se puede dividir en múltiples bloques de vídeo (y, posiblemente, en conjuntos de bloques de vídeo denominados mosaicos). La unidad de procesamiento de predicción 141 puede seleccionar uno de una pluralidad de posibles modos de codificación, tal como uno de una pluralidad de modos de intracodificación, o uno de una pluralidad de modos de intercodificación, para el bloque de vídeo actual en base a resultados de error (por ejemplo, la velocidad de codificación y el nivel de distorsión). La unidad de procesamiento de predicción 141 puede proporcionar el bloque intra o intercodificado resultante al sumador 150 para generar datos de bloque residuales y al sumador 162 para reconstruir el bloque codificado para su uso como imagen de referencia.
[0154] La unidad de procesamiento de intrapredicción 146 dentro de la unidad de procesamiento de predicción 141, puede realizar la codificación intrapredictiva del bloque de vídeo actual en relación con uno o más bloques contiguos en la misma trama o fragmento que el bloque actual que se va a codificar, para proporcionar compresión espacial. La unidad de estimación de movimiento 142 y la unidad de compensación de movimiento 144 dentro de la unidad de procesamiento de predicción 141 realizan la codificación interpredictiva del bloque de vídeo actual en relación con uno o más bloques predictivos en una o más imágenes de referencia, para proporcionar compresión temporal.
[0155] La unidad de estimación de movimiento 142 se puede configurar para determinar el modo de interpredicción para un fragmento de vídeo de acuerdo con un patrón predeterminado para una secuencia de vídeo. El patrón predeterminado puede designar fragmentos de vídeo en la secuencia como fragmentos P, fragmentos B o fragmentos GPB. La estimación de movimiento, realizada por la unidad de estimación de movimiento 142, es el procedimiento de generación de vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar la desviación de una PU de un bloque de vídeo dentro de una trama o imagen de vídeo actual en relación con un bloque predictivo dentro de una imagen de referencia.
[0156] Un bloque predictivo es un bloque que se descubre que coincide estrechamente con la PU del bloque de vídeo que se va a codificar en términos de diferencia de píxel, que se puede determinar por una suma de diferencia absoluta (SAD), una suma de diferencia al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para posiciones fraccionarias de píxeles de imágenes de referencia almacenadas en la memoria de imágenes de referencia 164. Por lo tanto, la unidad de estimación de movimiento 142 puede realizar una búsqueda de movimiento en relación con las posiciones de píxel completo y las posiciones de píxel fraccionario, y emitir un vector de movimiento con una precisión de píxel fraccionario.
[0157] La unidad de estimación de movimiento 142 calcula un vector de movimiento para una PU de un bloque de vídeo en un fragmento intercodificado, comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia se puede seleccionar de una primera lista de imágenes de referencia (lista 0) o de una segunda lista de imágenes de referencia (lista 1), de las que cada una identifica una o más imágenes de referencia almacenadas en la memoria de imágenes de referencia 164. La unidad de estimación de movimiento 142 envía el vector de movimiento calculado a la unidad de codificación por entropía 156 y a la unidad de compensación de movimiento 144.
[0158] La compensación de movimiento, realizada por la unidad de compensación de movimiento 144, puede implicar extraer o generar el bloque predictivo en base al vector de movimiento determinado por la estimación de movimiento, realizando posiblemente interpolaciones con una precisión de subpíxel. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad de compensación de movimiento 144 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El codificador de vídeo 20 puede formar un bloque de vídeo residual restando valores de píxel del bloque predictivo a los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel. Los valores de diferencia de píxel forman datos residuales para el bloque, y pueden incluir componentes de diferencia tanto de luma como de croma. El sumador 150 representa el componente o los componentes que realizan esta operación de resta. La unidad de compensación de movimiento 144 también puede generar elementos de sintaxis asociados a los bloques de vídeo y el fragmento de vídeo para su uso por el descodificador de vídeo 30 en la descodificación de los bloques de vídeo del fragmento de vídeo.
[0159] La unidad de procesamiento de intrapredicción 146 puede intrapredecir un bloque actual, como alternativa a la interpredicción realizada por la unidad de estimación de movimiento 142 y la unidad de compensación de movimiento 144, como se describe anteriormente. En particular, la unidad de procesamiento de intrapredicción 146 puede determinar un modo de intrapredicción para usar para codificar un bloque actual. En algunos ejemplos, la unidad de procesamiento de intrapredicción 146 puede codificar un bloque actual usando diversos modos de intrapredicción, por ejemplo, durante pases de codificación separados, y la unidad de procesamiento de intrapredicción 146 puede seleccionar un modo de intrapredicción apropiado para usar a partir de los modos sometidos a prueba. Por ejemplo, la unidad de procesamiento de intrapredicción 146 puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para los diversos modos de intrapredicción sometidos a prueba, y seleccionar el modo de intrapredicción que tenga las mejores características de velocidaddistorsión entre los modos sometidos a prueba. El análisis de velocidad-distorsión determina, en general, una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado que se codificó para producir el bloque codificado, así como una tasa de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad de procesamiento de intrapredicción 146 puede calcular proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar qué modo de intrapredicción presenta el mejor valor de velocidad-distorsión para el bloque.
[0160] En cualquier caso, después de seleccionar un modo de intrapredicción para un bloque, la unidad de procesamiento de intrapredicción 146 puede proporcionar información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad de codificación por entropía 156. La unidad de codificación por entropía 156 puede codificar la información indicando el modo de intrapredicción seleccionado de acuerdo con las técnicas de la presente divulgación. El codificador de vídeo 20 puede incluir, en el flujo de bits transmitido, datos de configuración que pueden incluir una pluralidad de tablas de índices del modo de intrapredicción y una pluralidad de tablas de índices del modo de intrapredicción modificadas (también denominadas tablas de asignación de palabra de código), definiciones de contextos de codificación para diversos bloques e indicaciones de un modo de intrapredicción lo más probable, una tabla de índices del modo de intrapredicción y una tabla de índices del modo de intrapredicción modificada para usar para cada uno de los contextos.
[0161] Después de que la unidad de procesamiento de predicción 141 genere el bloque predictivo para el bloque de vídeo actual por medio de interpredicción o bien intrapredicción, el codificador de vídeo 20 puede formar un bloque de vídeo residual restando el bloque predictivo al bloque de vídeo actual. Los datos de vídeo residuales del bloque residual se pueden incluir en una o más TU y aplicarse a la unidad de procesamiento de transformada 152. La unidad de procesamiento de transformada 152 transforma los datos de vídeo residuales en coeficientes de transformada residuales usando una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar. La unidad de procesamiento de transformada 152 puede convertir los datos de vídeo residuales de un dominio de píxel en un dominio de transformada, tal como un dominio de frecuencia.
[0162] La unidad de procesamiento de transformada 152 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 154. La unidad de cuantificación 154 cuantifica los coeficientes de transformada para reducir adicionalmente la tasa de bits. El procedimiento de cuantificación puede reducir la profundidad de bits asociada a algunos de, o todos, los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 154 puede realizar a continuación una exploración de la matriz que incluye los coeficientes de transformada cuantificados. De forma alternativa, la unidad de codificación por entropía 156 puede realizar la exploración.
[0163] Después de la cuantificación, la unidad de codificación por entropía 156 puede codificar por entropía los elementos de sintaxis que representan los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación por entropía 156 puede realizar una codificación de longitud variable adaptativa al contexto (CAVLC), una codificación aritmética binaria adaptativa al contexto (CABAC), una codificación aritmética binaria adaptativa al contexto basada en la sintaxis (SBAC), una codificación por entropía por división de intervalos de probabilidad (PIPE) u otra metodología o técnica de codificación por entropía. Tras la codificación por entropía por la unidad de codificación por entropía 156, el flujo de bits codificado se puede transmitir al descodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación por el descodificador de vídeo 30. La unidad de codificación por entropía 156 también puede codificar por entropía los vectores de movimiento y los otros elementos de sintaxis para el fragmento de vídeo actual que se esté codificando.
[0164] La unidad de cuantificación inversa 158 y la unidad de procesamiento de transformada inversa 160 aplican una cuantificación inversa y una transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel para su uso posterior como bloque de referencia de una imagen de referencia. La unidad de compensación de movimiento 144 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. La unidad de compensación de movimiento 144 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 162 añade el bloque residual reconstruido al bloque de predicción compensado por movimiento, producido por la unidad de compensación de movimiento 144 para producir un bloque de referencia para su almacenamiento en la memoria de imágenes de referencia 164. El bloque de referencia se puede usar por la unidad de estimación de movimiento 142 y la unidad de compensación de movimiento 144 como bloque de referencia para interpredecir un bloque en una trama o imagen de vídeo posterior.
[0165] El codificador de vídeo 20 representa un ejemplo de un codificador de vídeo configurado para generar datos de vídeo que se pueden almacenar usando las técnicas de formato de archivo descritas en la presente divulgación.
[0166] La FIG. 4 es un diagrama de bloques que ilustra un descodificador de vídeo 30 de ejemplo que se puede usar con las técnicas descritas en la presente divulgación. El descodificador de vídeo 30 se puede configurar para descodificar datos de vídeo de vista única, multivista, escalable, 3D y de otros tipos. En el ejemplo de la FIG. 4, el descodificador de vídeo 30 incluye una unidad de descodificación por entropía 280, una unidad de procesamiento de predicción 281, una unidad de cuantificación inversa 286, una unidad de procesamiento de transformada inversa 288, un sumador 290, una unidad de filtro 291 y una memoria de imágenes de referencia 292. La unidad de procesamiento de predicción 281 incluye la unidad de compensación de movimiento 282 y la unidad de procesamiento de intrapredicción 284. En algunos ejemplos, el descodificador de vídeo 30 puede realizar un pase de descodificación, en general, recíproco al pase de codificación descrito con respecto al codificador de vídeo 20 de la FIG. 3.
[0167] Una memoria intermedia de imágenes codificadas (CPB) 279 puede recibir y almacenar datos de vídeo codificados (por ejemplo, unidades NAL) de un flujo de bits. Los datos de vídeo almacenados en la CPB 279 se pueden obtener, por ejemplo, a partir del enlace 16, por ejemplo, desde una fuente de vídeo local, tal como una cámara, por medio de una comunicación por red por cable o inalámbrica de datos de vídeo, o accediendo a medios físicos de almacenamiento de datos. La CPB 279 puede formar una memoria de datos de vídeo que almacena datos de vídeo codificados de un flujo de bits de vídeo codificado. La CPB 279 puede ser una memoria de imágenes de referencia que almacena datos de vídeo de referencia para su uso en la descodificación de datos de vídeo por el descodificador de vídeo 30, por ejemplo, en modos de intra o intercodificación. La CPB 279 y la memoria de imágenes de referencia 292 pueden estar formadas por cualquiera de una variedad de dispositivos de memoria, tales como memoria dinámica de acceso aleatorio (DRAM), que incluye DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) u otros tipos de dispositivos de memoria. La CPB 279 y la memoria de imágenes de referencia 292 se pueden proporcionar por el mismo dispositivo de memoria o por dispositivos de memoria separados. En diversos ejemplos, la CPB 279 puede estar en el chip con otros componentes del descodificador de vídeo 30, o fuera del chip en relación con esos componentes.
[0168] Durante el procedimiento de descodificación, el descodificador de vídeo 30 recibe un flujo de bits de vídeo codificado, que representa bloques de vídeo de un fragmento de vídeo codificado y elementos de sintaxis asociados, desde el codificador de vídeo 20. El descodificador de vídeo 30 puede recibir el flujo de bits de vídeo codificado desde una entidad de red 229. La entidad de red 229 puede ser, por ejemplo, un servidor, un MANE, un editor/empalmador de vídeo u otro dispositivo de este tipo configurado para implementar una o más de las técnicas descritas anteriormente. La entidad de red 229 puede incluir o no un codificador de vídeo, tal como el codificador de vídeo 20. Algunas de las técnicas descritas en la presente divulgación se pueden implementar por la entidad de red 229 antes de que la entidad de red 229 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 229 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 229 se puede realizar por el mismo dispositivo que comprende el descodificador de vídeo 30. Se puede considerar que la entidad de red 229 es un dispositivo de vídeo. Además, en algunos ejemplos, la entidad de red 229 es el dispositivo de generación de archivos 34 de la FIG. 1.
[0169] La unidad de descodificación por entropía 280 del descodificador de vídeo 30 descodifica por entropía elementos de sintaxis particulares del flujo de vídeo para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de descodificación por entropía 280 reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad de procesamiento de predicción 281. El descodificador de vídeo 30 puede recibir los elementos de sintaxis a nivel de fragmento de vídeo y/o a nivel de bloque de vídeo.
[0170] La unidad de procesamiento de intrapredicción 284 de la unidad de procesamiento de predicción 281 puede generar datos de predicción para un bloque de vídeo del fragmento de vídeo actual en base a un modo de intrapredicción señalado y datos de bloques previamente descodificados de la trama o imagen actual. La unidad de compensación de movimiento 282 de la unidad de procesamiento de predicción 281 produce bloques predictivos para un bloque de vídeo del fragmento de vídeo actual en base a los vectores de movimiento y otros elementos de sintaxis recibidos desde la unidad de descodificación por entropía 280. Los bloques predictivos se pueden producir a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El descodificador de vídeo 30 puede construir las listas de tramas de referencia, lista 0 y lista 1, usando técnicas de construcción por defecto en base a imágenes de referencia almacenadas en la memoria de imágenes de referencia 292.
[0171] La unidad de cuantificación inversa 286 cuantifica inversamente, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y descodificados por la unidad de descodificación por entropía 280. La unidad de procesamiento de transformada inversa 288 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de entero inversa o un procedimiento de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de píxel.
[0172] Después de que la unidad de compensación de movimiento 282 genera el bloque predictivo para el bloque de vídeo actual en base a los vectores de movimiento y a otros elementos de sintaxis, el descodificador de vídeo 30 forma un bloque de vídeo descodificado sumando los bloques residuales desde la unidad de procesamiento de transformada inversa 288 a los correspondientes bloques predictivos generados por la unidad de compensación de movimiento 282. El sumador 290 representa el componente o los componentes que realizan esta operación de suma. Si se desea, también se pueden usar filtros de bucle (en el bucle de codificación o bien después del bucle de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad de vídeo. La unidad de filtro 291 está destinada a representar uno o más filtros de bucle tales como un filtro de despixelado, un filtro de bucle adaptativo (ALF) y un filtro de desplazamiento adaptativo de muestras (SAO). Aunque se muestra en la FIG.
4 que la unidad de filtro 291 es un filtro en bucle, en otras configuraciones la unidad de filtro 291 se puede implementar como un filtro posbucle. Los bloques de vídeo descodificados en una trama o imagen dada se almacenan a continuación en la memoria de imágenes de referencia 292, que almacena imágenes de referencia usadas para una compensación de movimiento posterior. La memoria de imágenes de referencia 292 también almacena 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.
[0173] El descodificador de vídeo 30 de la FIG. 4 representa un ejemplo de un descodificador de vídeo configurado para descodificar datos de vídeo que se pueden almacenar usando las técnicas de formato de archivo descritas en la presente divulgación.
[0174] La FIG. 5 es un diagrama de bloques que ilustra un conjunto de dispositivos de ejemplo que forman parte de la red 300. En este ejemplo, la red 300 incluye los dispositivos de encaminamiento 304A, 304B (dispositivos de encaminamiento 304) y el dispositivo de transcodificación 306. Los dispositivos de encaminamiento 304 y el dispositivo de transcodificación 306 están destinados para representar un pequeño número de dispositivos que pueden formar parte de la red 300. 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 300. Además, se pueden proporcionar dispositivos de red adicionales a lo largo de un trayecto de red entre un dispositivo servidor 302 y un dispositivo cliente 308. El dispositivo servidor 302 puede corresponder a un dispositivo de origen 12 (FIG.
1), mientras que el dispositivo cliente 308 puede corresponder a un dispositivo de destino 14 (FIG. 1), en algunos ejemplos.
[0175] En general, los dispositivos de encaminamiento 304 implementan uno o más protocolos de encaminamiento para intercambiar datos de red a través de la red 300. En algunos ejemplos, los dispositivos de encaminamiento304 se pueden configurar para realizar operaciones de proxy o de caché. Por lo tanto, en algunos ejemplos, los dispositivos de encaminamiento 304 se pueden denominar dispositivos proxy. En general, los dispositivos de encaminamiento 304 ejecutan protocolos de encaminamiento para descubrir rutas a través de la red 300. Al ejecutar dichos protocolos de encaminamiento, un dispositivo de encaminamiento 304B puede descubrir una ruta de red desde sí mismo hasta el dispositivo servidor 302 por medio del dispositivo de encaminamiento 304A.
[0176] Las técnicas de la presente divulgación se pueden implementar por dispositivos de red, tales como dichos dispositivos de encaminamiento 304 y dispositivo de transcodificación 306, pero también se pueden implementar por un dispositivo cliente 308. De esta manera, los dispositivos de encaminamiento 304, el dispositivo de transcodificación 306 y el dispositivo cliente 308 representan ejemplos de dispositivos configurados para realizar las técnicas de la presente divulgación. Por otro lado, los dispositivos de la FIG. 1, y el codificador de vídeo 20 ilustrado en la FIG. 3 y el descodificador de vídeo 30 ilustrado en la FIG. 4 también son ejemplos de dispositivos que se pueden configurar para realizar una o más de las técnicas de la presente divulgación.
[0177] La FIG. 6 es un diagrama conceptual que ilustra una estructura de ejemplo de un archivo 400 de acuerdo con una o más técnicas de la presente divulgación. En el ejemplo de la FIG. 6, el archivo 400 incluye una caja de película 402 y una pluralidad de cajas de datos de medios 404. Aunque en el ejemplo de la FIG. 6 se ilustra que están en el mismo archivo, en otros ejemplos, la caja de película 402 y las cajas de datos de medios 404 pueden estar en archivos separados. Como se indica anteriormente, una caja puede ser un bloque de construcción orientado a objetos definido por un identificador y longitud de tipo únicos. Por ejemplo, una caja puede ser la estructura de sintaxis elemental en el ISOBMFF, que incluye un tipo de caja codificada de cuatro caracteres, un recuento de octetos de la caja y una carga útil.
[0178] La caja de película 402 puede contener metadatos para las pistas del archivo 400. Cada pista del archivo 400 puede comprender un flujo continuo de datos de medios. Cada una de las cajas de datos de medios 404 puede incluir una o más muestras 405. Cada una de las muestras 405 puede comprender una unidad de acceso de audio o vídeo. Cada unidad de acceso puede comprender múltiples imágenes codificadas en codificación multivista (por ejemplo, MV-HEVC y 3D-HEVC) y codificación de vídeo escalable (por ejemplo, SHVC). Por ejemplo, una unidad de acceso puede incluir una o más imágenes codificadas para cada capa.
[0179] Además, en el ejemplo de la FIG. 6, la caja de película 402 incluye una caja de pista 406. La caja de pista 406 puede encerrar metadatos para una pista del archivo 400. En otros ejemplos, la caja de película 402 puede incluir múltiples cajas de pista para diferentes pistas del archivo 400. La caja de pista 406 incluye una caja de referencia de pista 408 y una caja de medios 410. La caja de referencia de pista 408 puede incluir una caja de tipo de referencia de pista 409. La caja de tipo de referencia de pista 409 puede estar asociada a un tipo (por ejemplo, 'tbas') y un identificador de pista que identifica otra pista. De acuerdo con la sexta técnica de la presente divulgación, las cajas de referencia de pista de pistas de mosaicos pueden incluir o no cajas de tipo de referencia de pista asociadas al identificador de tipo 'tbas'.
[0180] La caja de medios 410 puede contener todos los objetos que declaran información sobre los datos de medios dentro de la pista. La caja de medios 410 incluye una caja de información de medios 412. La caja de información de medios 412 puede contener todos los objetos que declaran información característica de los medios de la pista. La caja de información de medios 412 incluye una caja de tabla de muestras 414. La caja de tabla de muestras 414 puede especificar metadatos específicos de muestra.
[0181] En el ejemplo de la FIG. 6, la caja de tabla de muestras 414 incluye una caja SampleToGroup 416, una caja SampleGroupDescription 418 y una caja SampleGroupDescription 420. En otros ejemplos, la caja de tabla de muestras 414 puede incluir otras cajas además de la caja SampleToGroup 416, la caja SampleGroupDescription 418 y la caja SampleGroupDescription 420. La caja SampleToGroup 416 puede asignar muestras (por ejemplo, muestras particulares de las muestras 405) a un grupo de muestras descritas en una caja SampleGroupDescription, tal como la caja SampleGroupDescription 418 o la caja SampleGroupDescription 420. Cada una de la caja SampleGroupDescription 418, 420 puede especificar propiedades compartidas por las muestras en diversos grupos de muestras (es decir, grupos de muestras).
[0182] Además, en el ejemplo de la FIG. 6, la caja SampleGroupDescription 418 incluye una o más entradas de muestras de región de mosaicos 422. La caja SampleGroupDescription 420 incluye una o más entradas de mapa NALU 424. De acuerdo con la segunda técnica de la presente divulgación, cuando las entradas de muestras de región de mosaicos 422 están asociadas a la caja SampleToGroup 416, solo habrá una región de mosaicos (una región de mosaicos o un conjunto de regiones de mosaicos que se agrupan entre sí para formar una región más grande) presente en una muestra (por ejemplo, cualquiera de las muestras 405). De acuerdo con la tercera técnica de la presente divulgación, un campo de versión de la caja SampleGroupDescription 418 puede indicar si la asignación de regiones de mosaicos y muestras 405 usa una entrada de mapa NALU (por ejemplo, entrada de mapa NALU 424) o usa directamente la caja SampleToGroup 416.
[0183] La FIG. 7 es un diagrama de flujo que ilustra un funcionamiento de ejemplo de un dispositivo informático de acuerdo con una técnica de la presente divulgación. Los diagramas de flujo de la divulgación son ejemplos. Otros ejemplos pueden incluir más, menos o diferentes acciones. En el ejemplo de la FIG. 7, el dispositivo informático puede ser diversos tipos de dispositivos informáticos, incluyendo el dispositivo de origen 12 (FIG. 1), el dispositivo de generación de archivos 34 (FIG. 1), la entidad de posprocesamiento 127 (FIG. 3), el dispositivo servidor 302 (FIG. 5), el dispositivo de transcodificación 306 (FIG. 5) u otro dispositivo.
[0184] En el ejemplo de la FIG. 7, el dispositivo informático recibe un flujo de bits que comprende un flujo de unidades NAL (500). El dispositivo informático puede recibir el flujo de bits de diversas maneras. Por ejemplo, el dispositivo informático puede recibir el flujo de bits desde un medio de almacenamiento de datos, desde una interfaz de red o de otra manera. El flujo de unidades NAL comprende una pluralidad de unidades NAL de fragmento codificado. Cada unidad NAL de fragmento codificado respectiva de la pluralidad de unidades NAL de fragmento codificado encapsula una RBSP respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo. Cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento comprende un número entero de las CTU de la imagen. La pluralidad de segmentos de fragmento del fragmento incluye un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes. No se deducen valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente a partir de los valores para cualquier segmento de fragmento precedente.
[0185] Además, para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo deducido a partir de los valores para el segmento de fragmento independiente. Adicionalmente, la imagen se divide en una pluralidad de mosaicos (por ejemplo, mosaicos de HEVC), que incluyen un primer mosaico y un segundo mosaico. La pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico.
[0186] En el ejemplo de la FIG. 7, el dispositivo informático genera un archivo que almacena el flujo de bits (502). Por ejemplo, el dispositivo informático puede almacenar datos que representan el archivo en un medio de almacenamiento legible por ordenador. Como parte de la generación del archivo, el dispositivo informático define una región de mosaicos en el archivo (504). En el ejemplo de la FIG. 7, la región de mosaicos puede ser una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento. En algunos ejemplos, la región de mosaicos rectangular no contiene ningún mosaico que no sea el número entero de mosaicos que forman la región rectangular. Además, la región de mosaicos rectangular incluye el primer mosaico, pero la región de mosaicos rectangular no incluye el segundo mosaico.
[0187] En algunos ejemplos, el dispositivo informático puede definir, en el archivo, una región de mosaicos sin restricciones que comprende uno o más segmentos de fragmento de la pluralidad de segmentos de fragmento. Cada uno de los uno o más segmentos de fragmento de la región de mosaicos sin restricciones consiste en uno o más mosaicos completos de la pluralidad de mosaicos. Los uno o más mosaicos completos incluyen el primer mosaico y no el segundo mosaico. El dispositivo informático puede definir la región de mosaicos sin restricciones usando una entrada de muestras de región de mosaicos sin restricciones.
[0188] En algunos ejemplos, para definir la región de mosaicos en el archivo, el dispositivo informático puede generar en el archivo una entrada de muestras de región de mosaicos en una caja SampleToGroup en el archivo. Los elementos de sintaxis (por ejemplo, horizontal_offset, vertical_offset, ancho de región, altura de región) en la entrada de muestras de región de mosaicos pueden especificar la región de mosaicos. Adicionalmente, el dispositivo informático puede generar en el archivo una entrada de mapa NALU asociada a la entrada de muestras de región de mosaicos. Como se describe en otra parte de la presente divulgación, la entrada de mapa NALU especifica las unidades NAL asociadas a la región de mosaicos.
[0189] Además, de acuerdo con la segunda técnica de la presente divulgación, como parte de la generación del archivo en acción (502), el dispositivo informático puede generar una muestra en el archivo. Por ejemplo, el dispositivo informático puede almacenar datos que definen una caja de muestra en el archivo. La muestra comprende la pluralidad de unidades NAL de fragmento codificado. Adicionalmente, el dispositivo informático puede generar, en el archivo, una caja SampleToGroup y una caja SampleGroupDescription. La caja SampleGroupDescription contiene una entrada de muestras de región de mosaicos asociada a la caja SampleToGroup. Una entrada en la caja SampleToGroup asigna la muestra a la entrada de muestras de región de mosaicos. La entrada de muestras de región de mosaicos en la caja SampleGroupDescription describe la región de mosaicos. Además, en base al archivo que incluye la entrada de muestras de región de mosaicos asociada a la caja SampleToGroup, una restricción en un formato de archivo del archivo impide que el dispositivo informático defina cualquier región de mosaicos adicional que incluya las CTU en la muestra. Por tanto, el archivo cumple con la disposición de que cuando las entradas de muestras de región de mosaicos estén asociadas a una caja SampleToGroup, solo habrá una región de mosaicos (una región de mosaicos o un conjunto de regiones de mosaicos que se agrupen entre sí para formar una región más grande) presente en una muestra.
[0190] De acuerdo con la tercera técnica de la presente divulgación, como parte de la generación del archivo en acción (500), el dispositivo informático puede generar una muestra en el archivo. La muestra comprende la pluralidad de unidades NAL de fragmento codificado. Adicionalmente, como parte de la generación del archivo, el dispositivo informático puede generar una caja de descripción de grupo de muestras en el archivo. Como parte de la generación de la caja de descripción de grupo de muestras, el dispositivo informático puede generar una entrada de muestras de región de mosaicos en la caja de descripción de grupo de muestras. Adicionalmente, como parte de la generación de la caja de descripción de grupo de muestras, el dispositivo informático puede establecer un elemento de sintaxis de versión de la caja de descripción de grupo de muestras de modo que el elemento de sintaxis de versión de la caja de descripción de grupo de muestras indique a cuál de las siguientes entradas de muestras de región de mosaicos está asociada: una entrada de mapa de unidad NAL o una caja SampleToGroup. Por tanto, el campo de versión de la caja de descripción de grupo de muestras ('sgpd') que contiene la entrada de muestras de región de mosaicos se puede usar para indicar si las entradas de muestras de regiones de mosaicos pueden estar asociadas a la entrada de mapa NALU o la caja de muestra al grupo. Por ejemplo, el elemento de sintaxis de versión que es igual a 0 puede indicar que la entrada de muestras de región de mosaicos está asociada a la caja SampleToGroup y no a la entrada de mapa de unidad NAL; el elemento de sintaxis de versión que es igual a 1 puede indicar que la entrada de muestras de región de mosaicos está asociada a la entrada de mapa de unidad NAL y no a la caja SampleToGroup.
[0191] La FIG. 8 es un diagrama de flujo que ilustra un funcionamiento de ejemplo de un dispositivo informático para procesar un archivo, de acuerdo con una técnica de la presente divulgación. El funcionamiento de la FIG. 8 se puede realizar por diversos tipos de dispositivos informáticos. Por ejemplo, el funcionamiento de la FIG. 8 se puede realizar por el dispositivo de destino 14 (FIG. 1), la entidad de red 229 (FIG. 4), el dispositivo servidor 302 (FIG. 5), el dispositivo de transcodificación 306 (FIG. 5), el dispositivo cliente 308 (FIG. 5) u otro dispositivo.
[0192] En el ejemplo de la FIG. 8, el dispositivo informático recibe un archivo que almacena un flujo de bits (550). El dispositivo informático puede recibir el archivo de diversas maneras. Por ejemplo, el dispositivo informático puede recibir el archivo desde un medio de almacenamiento legible por ordenador, desde una interfaz de red o desde otra fuente.
[0193] El flujo de bits comprende un flujo de unidades NAL. El flujo de unidades NAL en el flujo de bits comprende una pluralidad de unidades NAL de fragmento codificado. Cada unidad NAL de fragmento codificado respectiva de la pluralidad de unidades NAL de fragmento codificado encapsula una RBSP respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo. Cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento comprende un número entero de las CTU de la imagen. La pluralidad de segmentos de fragmento del fragmento incluye un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes. No se pueden deducir valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente (por ejemplo, por el descodificador de vídeo 30) a partir de los valores para cualquier segmento de fragmento precedente. Para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se puede deducir (por ejemplo, por el descodificador de vídeo 30) a partir de los valores para el segmento de fragmento independiente. La imagen se divide en una pluralidad de mosaicos (por ejemplo, mosaicos de HEVC). La pluralidad de mosaicos incluye un primer mosaico y un segundo mosaico. La pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico.
[0194] Una región de mosaicos se define en el archivo. La región de mosaicos es una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento. Una región puede codificar uno o más segmentos de fragmento cuando los segmentos de fragmento incluyen bloques codificados de la región. En algunos ejemplos, la región de mosaicos rectangular no contiene ningún mosaico que no sea el número entero de mosaicos que forman la región rectangular. La región de mosaicos rectangular incluye el primer mosaico, pero la región de mosaicos rectangular no incluye el segundo mosaico.
[0195] En algunos ejemplos, una región de mosaicos sin restricciones se define en el archivo. La región de mosaicos sin restricciones comprende uno o más segmentos de fragmento de la pluralidad de segmentos de fragmento. Cada uno de los uno o más segmentos de fragmento de la región de mosaicos sin restricciones comprende o consiste en uno o más mosaicos completos de la pluralidad de mosaicos. Los uno o más mosaicos completos incluyen el primer mosaico. Los uno o más mosaicos completos no incluyen el segundo mosaico.
[0196] Además, en el ejemplo de la FIG. 8, el dispositivo informático puede usar el archivo para al menos uno de: reproducción de archivos de medios locales o descarga progresiva de datos en el archivo a un dispositivo remoto (552). El dispositivo informático puede usar el archivo de diversas maneras. Por ejemplo, el archivo incluye una pluralidad de cajas de pista que definen una pluralidad de pistas. En este ejemplo, una caja de pista particular de la pluralidad de cajas de pista contiene una caja SampleToGroup que contiene una entrada de muestras de región de mosaicos. En este ejemplo, la entrada de muestras de región de mosaicos comprende elementos de sintaxis (por ejemplo, horizontal_offset, vertical_offset, ancho de región, altura vertical) que definen la región de mosaicos. Además, en este ejemplo, como parte del uso del archivo, el dispositivo informático puede determinar, en base a los elementos de sintaxis en la entrada de muestras de región de mosaicos, que la pista particular está asociada a la región de mosaicos. Por ejemplo, en base a los valores de los elementos de sintaxis en la entrada de muestras de región de mosaicos que coinciden con los valores correspondientes de una región de mosaicos deseada, el dispositivo informático puede determinar que la entrada de muestras de región de mosaicos (y, por consiguiente, la pista que contiene la caja SampleToGroup que contiene la entrada de muestras de región de mosaicos) corresponde a la región de mosaicos deseada. En este ejemplo, en base a la determinación de que la pista particular está asociada a la región de mosaicos, el dispositivo informático puede extraer muestras de la pista particular del archivo sin extraer muestras de las una o más de otras pistas de la pluralidad de pistas del archivo. Las muestras extraídas de la pista particular incluyen unidades NAL que contienen bloques codificados en la región de mosaicos. La extracción de las muestras puede comprender leer o copiar las muestras.
[0197] Además, en algunos ejemplos, el dispositivo informático puede descodificar los bloques codificados en las muestras extraídas y no descodificar los bloques codificados en las muestras de las una o más de otras pistas. El dispositivo informático puede descodificar los bloques codificados de acuerdo con los ejemplos proporcionados en otra parte de la presente divulgación. Adicionalmente o de forma alternativa, el dispositivo informático puede descargar, en el dispositivo remoto, las unidades NAL en las muestras extraídas de la pista particular y no descargar en el dispositivo remoto las unidades NAL en las muestras de las una o más de otras pistas.
[0198] Aunque no se muestra en el ejemplo de la FIG. 8, el dispositivo informático puede, de acuerdo con la segunda técnica de ejemplo de la presente divulgación y como parte de la recepción del archivo, recibir, en el archivo, una muestra, una caja de muestra a grupo (por ejemplo, una caja SampleToGroup), y una caja de descripción de grupo de muestras (por ejemplo, una caja SampleGroupDescription). La muestra comprende la pluralidad de unidades NAL de fragmento codificado. La caja de descripción de grupo de muestras comprende una entrada de muestras de región de mosaicos que describe la región de mosaicos. Por ejemplo, la caja de descripción de grupo de muestras puede incluir una entrada de muestras de región de mosaicos rectangular o una entrada de muestras de región de mosaicos sin restricciones. En este ejemplo, la región de mosaicos es la única región de mosaicos definida en la muestra. En este ejemplo, el dispositivo informático puede determinar, en base a una entrada en la caja de muestra a grupo que identifica la muestra y especifica la entrada de muestras de región de mosaicos, que las unidades NAL de fragmento codificado en la muestra contienen las CTU de los mosaicos en la región de mosaicos.
[0199] Además, aunque no se muestra en el ejemplo de la FIG. 8, el dispositivo informático puede, de acuerdo con la tercera técnica de ejemplo de la presente divulgación y como parte de la recepción del archivo, recibir una muestra en el archivo. La muestra comprende la pluralidad de unidades NAL de fragmento codificado. Adicionalmente, el dispositivo informático puede recibir una caja de descripción de grupo de muestras en el archivo. Como parte de la recepción de la caja de descripción de grupo de muestras, el dispositivo informático puede recibir una entrada de muestras de región de mosaicos en la caja de descripción de grupo de muestras. En este ejemplo, el dispositivo informático puede determinar, en base a un elemento de sintaxis de versión de la caja de descripción de grupo de muestras, si la entrada de muestras de región de mosaicos está asociada a una entrada de mapa de unidad NAL o una caja SampleToGroup. Por ejemplo, el elemento de sintaxis de versión que es igual a 0 puede indicar que la entrada de muestras de región de mosaicos está asociada a la caja SampleToGroup y no a la entrada de mapa de unidad NAL, y el elemento de versión que es igual a 1 puede indicar que la entrada de muestras de región de mosaicos está asociada a la entrada de mapa de unidad NAL y no a la caja SampleToGroup.
[0200] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, software, firmware o en cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en o transmitir sobre un medio legible por ordenador como una o más instrucciones o código, y ejecutarse por una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que correspondan a un medio tangible tal como medios de almacenamiento de datos, o medios de comunicación incluyendo cualquier medio que facilite la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles legibles por ordenador que sean no transitorios o a (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder por 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 la presente divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0201] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se pueda usar para almacenar el código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder por un ordenador. Además, cualquier conexión recibe apropiadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una página web, un servidor u otra fuente remota usando un cable coaxial, cable de fibra óptica, par trenzado, 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 están incluidos en la definición de medio. Sin embargo, se debe entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales ni otros medios transitorios, sino que, en cambio, se refieren a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde algunos discos reproducen normalmente los datos de forma magnética, mientras que otros discos reproducen los datos de forma óptica con láseres. Las combinaciones de los anteriores también se deben incluir dentro del alcance de los medios legibles por ordenador.
[0202] Las instrucciones se pueden ejecutar por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. Por consiguiente, el término "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de módulos de hardware y/o de software dedicados configurados para codificar y descodificar, o incorporar en un códec combinado. Además, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0203] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En la presente divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no se requiere necesariamente su realización por diferentes unidades de hardware. En su lugar, como se describe anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar por un grupo de unidades de hardware interoperativas, que incluya uno o más procesadores como se describe anteriormente, junto con software y/o firmware adecuados.
[0204] Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (15)

REIVINDICACIONES
1. Un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento:
recibir, por un dispositivo informático, un flujo de bits que comprende un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectiva de la pluralidad de unidades NAL de fragmento codificado una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en el que:
no se pueden deducir valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente a partir de los valores de cualquier segmento de fragmento precedente,
para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se puede deducir a partir de los valores para el segmento de fragmento independiente,
la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y
la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico; y
generar, por el dispositivo informático, un archivo que almacena el flujo de bits, en el que generar el archivo comprende:
generar, por el dispositivo informático, en el archivo, una caja de muestra a grupo y una caja de descripción de grupo de muestras, conteniendo la caja de descripción de grupo de muestras una entrada de muestras de región de mosaicos asociada a la caja de muestra a grupo, asignando una entrada en la caja de muestra a grupo una muestra a la entrada de muestras de región de mosaicos, definiendo la entrada de muestras de región de mosaicos en la caja de descripción de grupo de muestras una región de mosaicos, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico.
2. El procedimiento de la reivindicación 1, que comprende además:
definir, en el archivo, una región de mosaicos sin restricciones que comprende uno o más segmentos de fragmento de la pluralidad de segmentos de fragmento, consistiendo cada uno de los uno o más segmentos de fragmento de la región de mosaicos sin restricciones en uno o más mosaicos completos de la pluralidad de mosaicos, incluyendo los uno o más mosaicos completos el primer mosaico, no incluyendo los uno o más mosaicos completos el segundo mosaico.
3. El procedimiento de la reivindicación 1, en el que generar el archivo comprende además:
generar, por el dispositivo informático, la muestra en el archivo, comprendiendo la muestra la pluralidad de unidades NAL de fragmento codificado; y
en el que, en base al archivo que incluye la entrada de muestras de región de mosaicos asociada a la caja de muestra a grupo, una restricción en un formato de archivo del archivo impide que el dispositivo informático defina cualquier región de mosaicos adicional que incluya las CTU en la muestra.
4. El procedimiento de la reivindicación 1, en el que:
generar el archivo comprende además:
generar una muestra en el archivo, comprendiendo la muestra la pluralidad de unidades NAL de fragmento codificado; y
generar una caja de descripción de grupo de muestras en el archivo, en el que generar la caja de descripción de grupo de muestras comprende:
generar una entrada de muestras de región de mosaicos en la caja de descripción de grupo de muestras; y
establecer un elemento de sintaxis de versión de la caja de descripción de grupo de muestras de modo que el elemento de sintaxis de versión de la caja de descripción de grupo de muestras indique a cuál de las siguientes entradas de muestras de región de mosaicos está asociada: una entrada de mapa de unidad NAL o una caja SampleToGroup.
5. El procedimiento de la reivindicación 4, en el que:
el elemento de versión que es igual a 0 indica que la entrada de muestras de región de mosaicos está asociada a la caja SampleToGroup y no a la entrada de mapa de unidad NAL, y
el elemento de versión que es igual a 1 indica que la entrada de muestras de región de mosaicos está asociada a la entrada de mapa de unidad NAL y no a la caja SampleToGroup.
6. Un procedimiento de procesamiento de datos de vídeo, comprendiendo el procedimiento:
recibir, por un dispositivo informático, un archivo que almacena un flujo de bits, comprendiendo el flujo de bits un flujo de unidades de capa de abstracción de red (NAL), comprendiendo el flujo de unidades NAL una pluralidad de unidades NAL de fragmento codificado, encapsulando cada unidad NAL de fragmento codificado respectiva de la pluralidad de unidades NAL de fragmento codificado que encapsulan una carga útil de secuencia de octetos sin procesar (RBSP) respectiva para un segmento de fragmento respectivo de una pluralidad de segmentos de fragmento de un fragmento de una imagen de los datos de vídeo, comprendiendo cada segmento de fragmento respectivo de la pluralidad de segmentos de fragmento del fragmento un número entero de unidades de árbol de codificación (CTU) de la imagen, incluyendo la pluralidad de segmentos de fragmento del fragmento un segmento de fragmento independiente y uno o más segmentos de fragmento dependientes, en el que:
no se pueden deducir valores de elementos de sintaxis en una cabecera de segmento de fragmento del segmento de fragmento independiente a partir de los valores de cualquier segmento de fragmento precedente,
para cada segmento de fragmento dependiente respectivo de los uno o más segmentos de fragmento dependientes, el segmento de fragmento dependiente respectivo tiene valores de uno o más elementos de sintaxis de una cabecera de segmento de fragmento del segmento de fragmento dependiente respectivo que se puede deducir a partir de los valores para el segmento de fragmento independiente,
la imagen se divide en una pluralidad de mosaicos, incluyendo la pluralidad de mosaicos un primer mosaico y un segundo mosaico, y
la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del primer mosaico y la pluralidad de segmentos de fragmento del fragmento incluye uno o más segmentos de fragmento que contienen las CTU del segundo mosaico, y
recibir el archivo comprende recibir, por el dispositivo informático, en el archivo, una muestra, una caja de muestra a grupo y una caja de descripción de grupo de muestras, comprendiendo la caja de descripción de grupo de muestras una entrada de muestras de región de mosaicos que asigna la muestra a la entrada de muestras de región de mosaicos, definiendo la entrada de muestras de región de mosaicos en la caja de descripción de grupo de muestras una región de mosaicos, siendo la región de mosaicos una región de mosaicos rectangular que comprende un número entero de mosaicos de la pluralidad de mosaicos que forman una región rectangular codificada en uno o más de los segmentos de fragmento, incluyendo la región de mosaicos rectangular el primer mosaico, no incluyendo la región de mosaicos rectangular el segundo mosaico; y
usar, por el dispositivo informático, el archivo para al menos uno de: reproducción de archivos de medios locales o descarga progresiva de datos en el archivo a un dispositivo remoto.
7. El procedimiento de la reivindicación 6,
en el que el archivo incluye una pluralidad de cajas de pista que definen una pluralidad de pistas, una caja de pista particular de la pluralidad de cajas de pista que contiene una caja SampleToGroup que contiene una entrada de muestras de región de mosaicos, comprendiendo la entrada de muestras de región de mosaicos elementos de sintaxis que definen la región de mosaicos, y
en el que usar el archivo comprende:
determinar, en base al elemento de sintaxis en la entrada de muestras de región de mosaicos, que la pista particular está asociada a la región de mosaicos; y
en base a la determinación de que la pista particular está asociada a la región de mosaicos, extraer muestras de la pista particular del archivo sin extraer muestras de una o más de otras pistas de la pluralidad de pistas del archivo, incluyendo las muestras extraídas de la pista particular unidades NAL que contienen bloques codificados en la región de mosaicos.
8. El procedimiento de la reivindicación 7, que comprende además al menos uno de:
descodificar los bloques codificados en las muestras extraídas y no descodificar bloques codificados en las muestras de las una o más de otras pistas, o
descargar, en el dispositivo remoto, las unidades NAL en las muestras extraídas de la pista particular y no descargar en el dispositivo remoto las unidades NAL en las muestras de las una o más de otras pistas.
9. El procedimiento de la reivindicación 6, en el que una región de mosaicos sin restricciones se define en el archivo, comprendiendo la región de mosaicos sin restricciones uno o más segmentos de fragmento de la pluralidad de segmentos de fragmento, consistiendo cada uno de los uno o más segmentos de fragmento de la región de mosaicos sin restricciones en uno o más mosaicos completos de la pluralidad de mosaicos, incluyendo los uno o más mosaicos completos el primer mosaico, no incluyendo los uno o más mosaicos completos el segundo mosaico.
10. El procedimiento de la reivindicación 6, en el que:
la muestra comprende la pluralidad de unidades NAL de fragmento codificado,
la región de mosaicos es la única región de mosaicos definida en la muestra, y
el procedimiento comprende además determinar, por el dispositivo informático, en base a una entrada en la caja de muestra a grupo que identifica la muestra y especifica la entrada de muestras de región de mosaicos, que las unidades NAL de fragmento codificado en la muestra contienen las CTU de los mosaicos en la región de mosaicos.
11. El procedimiento de la reivindicación 6, en el que:
recibir el archivo comprende además:
recibir, por el dispositivo informático, una muestra en el archivo, comprendiendo la muestra la pluralidad de unidades NAL de fragmento codificado; y
recibir, por el dispositivo informático, una caja de descripción de grupo de muestras en el archivo, en el que recibir la caja de descripción de grupo de muestras comprende recibir, por el dispositivo informático, una entrada de muestras de región de mosaicos en la caja de descripción de grupo de muestras, y
el procedimiento comprende además determinar, por el dispositivo informático, en base a un elemento de sintaxis de versión de la caja de descripción de grupo de muestras, si la entrada de muestras de región de mosaicos está asociada a una entrada de mapa de unidad NAL o a una caja SampleToGroup.
12. El procedimiento de la reivindicación 11, en el que:
el elemento de sintaxis de versión que es igual a 0 indica que la entrada de muestras de región de mosaicos está asociada a la caja SampleToGroup y no a la entrada de mapa de unidad NAL, y
el elemento de sintaxis versión que es igual a 1 indica que la entrada de muestras de región de mosaicos está asociada a la entrada de mapa de unidad NAL y no a la caja SampleToGroup.
13. Un dispositivo informático para generar un archivo para almacenamiento de datos de vídeo, comprendiendo el dispositivo informático:
una memoria configurada para almacenar el archivo; y
uno o más procesadores configurados para realizar el procedimiento de cualquiera de las reivindicaciones 1 a 5.
14. Un dispositivo informático para procesar un archivo para almacenamiento de datos de vídeo, comprendiendo el dispositivo informático:
una memoria configurada para almacenar el archivo; y
uno o más procesadores configurados para realizar el procedimiento de cualquiera de las reivindicaciones 6 a 12.
15. Un medio de almacenamiento no transitorio legible por ordenador codificado con instrucciones que, cuando se ejecutan, configuran un procesador de un dispositivo para realizar el procedimiento de cualquiera de las reivindicaciones 1 a 12.
ES17726535T 2016-05-24 2017-05-24 Asignación de agrupación de mosaicos y muestras en formatos de archivo HEVC y L-HEVC Active ES2824770T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662341025P 2016-05-24 2016-05-24
US15/602,664 US10291923B2 (en) 2016-05-24 2017-05-23 Mapping of tile grouping and samples in HEVC and L-HEVC file formats
PCT/US2017/034185 WO2017205472A1 (en) 2016-05-24 2017-05-24 Mapping of tile grouping and samples in hevc and l-hevc file formats

Publications (1)

Publication Number Publication Date
ES2824770T3 true ES2824770T3 (es) 2021-05-13

Family

ID=58794275

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17726535T Active ES2824770T3 (es) 2016-05-24 2017-05-24 Asignación de agrupación de mosaicos y muestras en formatos de archivo HEVC y L-HEVC

Country Status (10)

Country Link
US (1) US10291923B2 (es)
EP (1) EP3466078B1 (es)
JP (1) JP6932144B2 (es)
KR (1) KR102485792B1 (es)
CN (1) CN109155860B (es)
AU (1) AU2017271510B2 (es)
BR (1) BR112018073940A2 (es)
ES (1) ES2824770T3 (es)
TW (1) TWI777953B (es)
WO (1) WO2017205472A1 (es)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3013111C (en) * 2016-02-02 2022-08-30 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Scene section and region of interest handling in video streaming
US10291923B2 (en) * 2016-05-24 2019-05-14 Qualcomm Incorporated Mapping of tile grouping and samples in HEVC and L-HEVC file formats
US10999605B2 (en) 2017-01-10 2021-05-04 Qualcomm Incorporated Signaling of important video information in file formats
KR20230079466A (ko) 2017-04-11 2023-06-07 브이아이디 스케일, 인크. 면 연속성을 사용하는 360 도 비디오 코딩
US11114138B2 (en) 2017-09-15 2021-09-07 Groq, Inc. Data structures with multiple read ports
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
US11243880B1 (en) 2017-09-15 2022-02-08 Groq, Inc. Processor architecture
US11418816B2 (en) * 2017-09-20 2022-08-16 Vid Scale, Inc. Handling face discontinuities in 360-degree video coding
US11170307B1 (en) 2017-09-21 2021-11-09 Groq, Inc. Predictive model compiler for generating a statically scheduled binary with known resource constraints
US10638151B2 (en) * 2018-05-31 2020-04-28 Verizon Patent And Licensing Inc. Video encoding methods and systems for color and depth data representative of a virtual reality scene
US11108841B2 (en) 2018-06-19 2021-08-31 At&T Intellectual Property I, L.P. Apparatus, storage medium and method for heterogeneous segmentation of video streaming
EP3846474A4 (en) * 2018-08-29 2022-06-08 Sharp Kabushiki Kaisha VIDEO DECODER AND VIDEO ENCODER
US12340300B1 (en) 2018-09-14 2025-06-24 Groq, Inc. Streaming processor architecture
US11455370B2 (en) 2018-11-19 2022-09-27 Groq, Inc. Flattened input stream generation for convolution with expanded kernel
WO2020064733A1 (en) 2018-09-25 2020-04-02 Telefonaktiebolaget Lm Ericsson (Publ) Media bistream having backwards compatibility
US11582480B2 (en) * 2018-09-25 2023-02-14 Digitalinsights Inc. Method and device for encoding or decoding image on basis of inter mode
KR102578820B1 (ko) * 2018-10-05 2023-09-15 엘지전자 주식회사 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치
US12022059B2 (en) * 2018-12-07 2024-06-25 Beijing Dajia Internet Information Technology Co., Ltd. Video coding using multi-resolution reference picture management
CN118945342A (zh) * 2018-12-20 2024-11-12 瑞典爱立信有限公司 视频编码和解码中改进的片地址信令
US11140403B2 (en) * 2018-12-20 2021-10-05 Tencent America LLC Identifying tile from network abstraction unit header
EP3868103A4 (en) * 2018-12-28 2022-03-23 Huawei Technologies Co., Ltd. APPARATUS AND METHODS FOR ENCODING AN IMAGE BY DIVIDING THE SAME INTO SLICES WITH TILES
US12113997B2 (en) * 2019-01-22 2024-10-08 Tencent America LLC Method for tile group identification
CN113366855B (zh) 2019-02-03 2025-06-24 北京字节跳动网络技术有限公司 基于条件的非对称四叉树分割
CN113906744A (zh) 2019-03-15 2022-01-07 北京达佳互联信息技术有限公司 视频编解码中无损编解码的信令
WO2020209479A1 (ko) * 2019-04-08 2020-10-15 엘지전자 주식회사 시그널링 된 정보에 기반한 픽처 파티셔닝 방법 및 장치
EP3973713A1 (en) 2019-05-23 2022-03-30 VID SCALE, Inc. Video-based point cloud streams
GB2584295A (en) * 2019-05-28 2020-12-02 Canon Kk Method and apparatus for encoding and decoding a video bitstream for merging regions of interest
CN119676447A (zh) * 2019-06-20 2025-03-21 皇家飞利浦有限公司 用于对图像信号进行编码/解码的方法及其设备
MX2021015641A (es) * 2019-06-21 2022-02-03 Ericsson Telefon Ab L M Indicacion de cambio ascendente de capa de codificacion de video.
BR112022005789A2 (pt) 2019-09-27 2022-06-21 Vid Scale Inc Dispositivo de decodificação e codificação de vídeo, e, método para decodificação de vídeo
US11425388B2 (en) * 2020-04-05 2022-08-23 Mediatek Inc. Methods and apparatuses of coding pictures with CTU based slice partitions in video coding system
GB2597642B (en) * 2020-06-16 2023-08-02 Canon Kk Method, device, and computer program for encapsulating media data into a media file
EP3972278A1 (en) * 2020-09-17 2022-03-23 Lemon Inc. Subpicture tracks in coded video
EP3972269A1 (en) 2020-09-17 2022-03-23 Lemon Inc. Subpicture entity groups in video coding
US12041246B2 (en) 2020-10-06 2024-07-16 Samsung Electronics Co., Ltd. Access of essential video coding (EVC) slices in a file
WO2022131870A1 (ko) * 2020-12-17 2022-06-23 엘지전자 주식회사 Nal 유닛 어레이 정보를 포함하는 미디어 파일 생성/수신 방법, 장치 및 미디어 파일 전송 방법
WO2022225306A1 (ko) * 2021-04-19 2022-10-27 엘지전자 주식회사 Eos 샘플 그룹에 기반한 미디어 파일 생성/수신 방법, 장치 및 미디어 파일 전송 방법
EP4364415A1 (en) * 2021-06-29 2024-05-08 Telefonaktiebolaget LM Ericsson (publ) Applying an overlay process to a picture
CN120604517A (zh) * 2023-01-04 2025-09-05 Lg电子株式会社 图像编码/解码方法、发送比特流的方法和存储有比特流的记录介质
US20250392731A1 (en) * 2024-06-21 2025-12-25 Netflix, Inc. Techniques for scaling regions of interest

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7777812B2 (en) * 2005-11-18 2010-08-17 Sharp Laboratories Of America, Inc. Methods and systems for picture resampling
US8023569B2 (en) * 2005-12-15 2011-09-20 Sharp Laboratories Of America, Inc. Methods and systems for block-based residual upsampling
US7991236B2 (en) * 2006-10-16 2011-08-02 Nokia Corporation Discardable lower layer adaptations in scalable video coding
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
FR2932637B1 (fr) * 2008-06-17 2010-08-20 Canon Kk Procede et dispositif de codage d'une sequence d'images
CA2730543C (en) * 2008-07-16 2014-04-22 Nokia Corporation Method and apparatus for track and track subset grouping
US8380790B2 (en) * 2008-12-15 2013-02-19 Microsoft Corporation Video conference rate matching
US20100225655A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Concurrent Encoding/Decoding of Tiled Data
KR101504887B1 (ko) * 2009-10-23 2015-03-24 삼성전자 주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
US9049450B2 (en) * 2010-04-05 2015-06-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
CA2808587C (en) * 2010-08-17 2017-02-14 Samsung Electronics Co., Ltd. Video encoding method and apparatus using transformation unit of variable tree structure, and video decoding method and apparatus
US20120114034A1 (en) * 2010-11-08 2012-05-10 Mediatek Inc. Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding
KR20120118781A (ko) * 2011-04-19 2012-10-29 삼성전자주식회사 다시점 비디오를 위한 단일화된 스케일러블 비디오 부호화 방법 및 그 장치, 다시점 비디오를 위한 단일화된 스케일러블 비디오 복호화 방법 및 그 장치
US10237565B2 (en) * 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
US9077998B2 (en) * 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
US10349077B2 (en) * 2011-11-21 2019-07-09 Canon Kabushiki Kaisha Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium
US9014263B2 (en) * 2011-12-17 2015-04-21 Dolby Laboratories Licensing Corporation Multi-layer interlace frame-compatible enhanced resolution video delivery
TWI562606B (en) * 2012-01-30 2016-12-11 Samsung Electronics Co Ltd Apparatus for decoding video
US20130208808A1 (en) * 2012-02-08 2013-08-15 Panasonic Corporation Image coding method and image decoding method
RS64003B1 (sr) * 2012-04-13 2023-03-31 Ge Video Compression Llc Kodiranje slike sa niskim kašnjenjem
US9736476B2 (en) * 2012-04-27 2017-08-15 Qualcomm Incorporated Full random access from clean random access pictures in video coding
US9621905B2 (en) * 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
US10785482B2 (en) * 2012-09-24 2020-09-22 Texas Instruments Incorporated Method and system for constraining tile processing overhead in video coding
EP2974313B1 (en) * 2013-03-12 2018-07-11 HFI Innovation Inc. Inter-layer motion vector scaling for scalable video coding
GB2516825B (en) * 2013-07-23 2015-11-25 Canon Kk Method, device, and computer program for encapsulating partitioned timed media data using a generic signaling for coding dependencies
GB2519745B (en) * 2013-10-22 2018-04-18 Canon Kk Method of processing disordered frame portion data units
WO2015103032A1 (en) * 2014-01-02 2015-07-09 Vid Scale, Inc. Methods and systems for scalable video coding with mixed interlace and progressive content
KR20150081236A (ko) * 2014-01-03 2015-07-13 삼성전자주식회사 효율적인 파라미터 전달을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9930340B2 (en) * 2014-06-20 2018-03-27 Qualcomm Incorporated Systems and methods for selectively performing a bitstream conformance check
GB2530751A (en) * 2014-09-30 2016-04-06 Sony Corp Video data encoding and decoding
US10034010B2 (en) * 2015-10-14 2018-07-24 Qualcomm Incorporated Alignment of operation point sample group in multi-layer bitstreams file format
US10582201B2 (en) 2016-05-19 2020-03-03 Qualcomm Incorporated Most-interested region in an image
US10291923B2 (en) * 2016-05-24 2019-05-14 Qualcomm Incorporated Mapping of tile grouping and samples in HEVC and L-HEVC file formats

Also Published As

Publication number Publication date
WO2017205472A1 (en) 2017-11-30
KR20190010557A (ko) 2019-01-30
JP2019517218A (ja) 2019-06-20
BR112018073940A2 (pt) 2019-02-26
KR102485792B1 (ko) 2023-01-05
EP3466078A1 (en) 2019-04-10
AU2017271510A1 (en) 2018-11-01
CN109155860A (zh) 2019-01-04
AU2017271510B2 (en) 2021-09-09
TW201743611A (zh) 2017-12-16
CN109155860B (zh) 2021-02-02
EP3466078B1 (en) 2020-07-15
US20170347109A1 (en) 2017-11-30
JP6932144B2 (ja) 2021-09-08
US10291923B2 (en) 2019-05-14
TWI777953B (zh) 2022-09-21

Similar Documents

Publication Publication Date Title
ES2824770T3 (es) Asignación de agrupación de mosaicos y muestras en formatos de archivo HEVC y L-HEVC
ES2781307T3 (es) Mejora en la agrupación de mosaicos en formatos de archivo HEVC y L-HEVC
ES2898452T3 (es) Señalización de la resolución espacial de las vistas de profundidad en el formato de archivo de codificación de múltiples vistas
ES2720662T3 (es) Diseños de formato de archivo de vídeo multicapa
ES2813908T3 (es) Alineación del grupo de muestras de punto de funcionamiento en formato de archivo de flujos de bits multicapa
KR102348538B1 (ko) 360 도 비디오 데이터를 프로세싱하기 위한 방법 및 시스템
US11062738B2 (en) Signalling of video content including sub-picture bitstreams for video coding
ES2637515T3 (es) Indicación y activación de conjuntos de parámetros para codificación de vídeo
ES2902675T3 (es) Diseño de señalización de entrada de muestra y de punto de operación en un formato de archivo de vídeo estratificado
ES2839148T3 (es) Codificación de vídeo multicapa
ES2895927T3 (es) Un aparato, un método y un programa de ordenador para la codificación y decodificación de vídeo
ES2843782T3 (es) Diseño de esquema restringido mejorado para vídeo
TW201715886A (zh) 多層位元流之檔案中之參數集信令
ES2711892T3 (es) Señalización de puntos de operación para el transporte de extensiones de la HEVC
BR112018073877B1 (pt) Unidades nal de extremidade de sequência e de extremidade de fluxo de bits em trilhas de arquivos separados
HK40006365A (en) Signaling of important video information in file formats